diff --git a/README.md b/README.md index 54df067..c459abb 100755 --- a/README.md +++ b/README.md @@ -514,6 +514,17 @@ const uint8_t shakerStop = 60; // Shaker power while engine stop (max. 255, abou ## Changelog (newest on top): +### New in V 9.7.0: +- NEOPIXEL_KNIGHT_RIDER scanner optimized, synchrone with sound +- NEOPIXEL_BLUELIGHT: red & blue bluelight animation for fire trucks etc. +- NEOPIXEL_HIGHBEAM: Neopixel bar now also usable for full beam and headlight flasher. Also working in combination with NEOPIXEL_KNIGHT_RIDER & NEOPIXEL_BLUELIGHT +- "Audio2Header.html" tool now able to remove noise in silent passages (option "remove noise floor") +- ESC state machine hanging in case 1 or 3, if throttle trigger direction changed qickly: bug solved +- Engine volume raising, if throttle trigger direction changed qickly: bug solved +- Improved ESC_DEBUG messages +- 3_adjustmentsESC.h: options better organized, OVERDRIVE now also usable with VIRTUAL_3_SPEED. In this case, the 4th (overdrive) gear is engaged @ full throttle & high RPM in 3rd gear +- 2_adjustmentsRemote.h: CHANNEL_AVERAGING option (recommended, if you have issues with unstable channels) + ### New in V 9.6.0: - New version numbering: mainVersion.subVersion.patch It is also displayed in Serial Monitor, so you always know, which version you have on your vehicle - "Out of fuel" voice message in many languages in "3_adjustmentsESC.h" diff --git a/src/10_adjustmentsTrailer.h b/src/10_adjustmentsTrailer.h index c97aecc..012f47c 100644 --- a/src/10_adjustmentsTrailer.h +++ b/src/10_adjustmentsTrailer.h @@ -11,9 +11,9 @@ // IMPORTANT!! Replace the addresses below with your trailers MAC addresses!! -------------------------- // Trailer 1 -//uint8_t broadcastAddress1[] = {0x4C, 0xEB, 0xD6, 0x7C, 0x02, 0x74}; // Bruder Low Loader +uint8_t broadcastAddress1[] = {0x4C, 0xEB, 0xD6, 0x7C, 0x02, 0x74}; // Bruder Low Loader //uint8_t broadcastAddress1[] = {0x4C, 0xEB, 0xD6, 0x7C, 0x1E, 0x10}; // US flatbed -uint8_t broadcastAddress1[] = {0xAC, 0x67, 0xB2, 0x12, 0x30, 0x28}; // white board +//uint8_t broadcastAddress1[] = {0xAC, 0x67, 0xB2, 0x12, 0x30, 0x28}; // white board //uint8_t broadcastAddress1[] = {0xA0, 0x20, 0xA6, 0x10, 0x46, 0x3B}; // D1 Mini ESP8266 // Trailer 2 diff --git a/src/1_adjustmentsVehicle.h b/src/1_adjustmentsVehicle.h index b00c66a..8ca571c 100644 --- a/src/1_adjustmentsVehicle.h +++ b/src/1_adjustmentsVehicle.h @@ -28,7 +28,7 @@ //#include "vehicles/ScaniaV8_50ton.h" // SCANIA V8 50 ton truck. Unknown model. Bad quality! //#include "vehicles/ScaniaV8.h" // SCANIA V8 truck, unknown model //#include "vehicles/1000HpScaniaV8.h" // 1000 HP SCANIA V8 truck with open pipes. Insane sound! Good bass speakers reqired -#include "vehicles/Scania143.h" // SCANIA 143 V8 - the legend! The best sounding in my opinion +//#include "vehicles/Scania143.h" // SCANIA 143 V8 - the legend! The best sounding in my opinion //#include "vehicles/ScaniaV8Firetruck.h" // SCANIA V8 firetruck, automatic Allison 6 speed transmission with torque converter, "Martinshorn" siren //#include "vehicles/VolvoFH16_750.h" // Volvo FH16 750 truck. Inline 6, 750 horses, open pipes! //#include "vehicles/VolvoFH16_OpenPipe.h" // Volvo FH truck. Inline 6, open pipes, alternative version @@ -84,7 +84,7 @@ // EU SUV -------- //#include "vehicles/DefenderV8Automatic.h" // Land Rover Defender 90 V8 automatic (very nice V8 with lots of bass) //#include "vehicles/DefenderV8OpenPipeAutomatic.h" // Land Rover Defender 90 V8 automatic, open pipes (optimised for smaller speakers) -//#include "vehicles/DefenderV8OpenPipe.h" // Land Rover Defender 90 V8 manual, open pipes (optimised for smaller speakers) +#include "vehicles/DefenderV8OpenPipe.h" // Land Rover Defender 90 V8 manual, open pipes (optimised for smaller speakers) //#include "vehicles/DefenderV8CrawlerAutomatic.h" // Land Rover Defender 90 V8 automatic crawler //#include "vehicles/DefenderTd5.h" // Land Rover Defender 90 Td5 R5 Diesel diff --git a/src/2_adjustmentsRemote.h b/src/2_adjustmentsRemote.h index 0f99153..bf95efd 100644 --- a/src/2_adjustmentsRemote.h +++ b/src/2_adjustmentsRemote.h @@ -1,5 +1,5 @@ #include - + // Select (remove //) the remote configuration profile you have: //#define FLYSKY_FS_I6X // <------- Flysky FS-i6x //#define FLYSKY_FS_I6S_EXCAVATOR // <------- Flysky FS-i6s for KABOLITE K336 hydraulic excavator (use IBUS communication setting) @@ -38,8 +38,11 @@ uint32_t sbusBaud = 100000; // Standard is 100000. Try to lower it, if your chan // CHANNEL LINEARITY SETTINGS **************************************************************************************************************** - //#define EXPONENTIAL_THROTTLE // Exponential throttle curve. Ideal for enhanced slow speed control in crawlers - //#define EXPONENTIAL_STEERING // Exponential steering curve. More steering accuracy around center position +//#define EXPONENTIAL_THROTTLE // Exponential throttle curve. Ideal for enhanced slow speed control in crawlers +//#define EXPONENTIAL_STEERING // Exponential steering curve. More steering accuracy around center position + +// CHANNEL AVERAGING (EXPERIMENTAL!) ********************************************************************************************************** +//#define CHANNEL_AVERAGING // This is recommended, if you have issues with unstable channels // CONFIGURATION PROFILES ********************************************************************************************************************* /* @@ -74,7 +77,7 @@ uint32_t sbusBaud = 100000; // Standard is 100000. Try to lower it, if your chan // // (2) Now go to "Functions" -> "Dual rate/exp.". // Note, that "Normal" changes to "Sport" as soon as the selected Fly mode switch is toggled. -// +// // (3) Now switch to "Sport" and set the "Rate" of "Ch2" from 100 to 75. // Do the exact same thing for "Ch4", but don't change "Ch1" (this one should still be 100 in both modes)! @@ -113,7 +116,7 @@ boolean channelReversed[14] = { false, // CH11 false, // CH12 false // CH13 -}; +}; // Channels auto zero adjustment or not (don't use it for channels without spring centered neutral position, switches or unused channels) boolean channelAutoZero[14] = { @@ -131,7 +134,7 @@ boolean channelAutoZero[14] = { false, // CH11 false, // CH12 false // CH13 -}; +}; // Channels signal range calibration ----- const uint16_t pulseNeutral = 30; @@ -181,7 +184,7 @@ boolean channelReversed[14] = { false, // CH11 false, // CH12 false // CH13 -}; +}; // Channels auto zero adjustment or not (don't use it for channels without spring centered neutral position, switches or unused channels) boolean channelAutoZero[14] = { @@ -199,7 +202,7 @@ boolean channelAutoZero[14] = { false, // CH11 false, // CH12 false // CH13 -}; +}; // Channels signal range calibration ----- const uint16_t pulseNeutral = 30; @@ -249,7 +252,7 @@ boolean channelReversed[14] = { false, // CH11 false, // CH12 false // CH13 -}; +}; // Channels auto zero adjustment or not (don't use it for channels without spring centered neutral position, switches or unused channels) boolean channelAutoZero[14] = { @@ -267,7 +270,7 @@ boolean channelAutoZero[14] = { false, // CH11 false, // CH12 false // CH13 -}; +}; // Channels signal range calibration ----- const uint16_t pulseNeutral = 30; @@ -284,30 +287,30 @@ const uint16_t pulseSpan = 480; #ifdef FLYSKY_GT5 /* Communication settings (above):----------------------- - * #define IBUS_COMMUNICATION // Use IBUS (tested with FS-IA6B receiver) - */ + #define IBUS_COMMUNICATION // Use IBUS (tested with FS-IA6B receiver) +*/ /* Transmitter settings ----------------------- - * Menu EPA: - * select AUX 3 - * L.F.U. 100%, R.B.D. 75% - * select AUX 6 - * L.F.U. 75%, R.B.D. 75% - * - * SVC off - * CRAWL off - * - * Save - */ - - /* Remote channel functions ----------------------- - * Channel 1 = Steering and automatic indicators - * Channel 2 = Throttle & brake- reversing-lights - * Channel 3 = Push button on the transmitter grip = hazards on / off - * Channel 4 = 3 positiion switch on the transmitter grip = gearbox shifting - * Channel 5 = left pot: left turn = blue lights & siren, right turn = horn - * Channel 6 = right pot: left turn = engine start / stop, right turn = light sequences switching (hold it in end position, then return to center pos.) - */ + Menu EPA: + select AUX 3 + L.F.U. 100%, R.B.D. 75% + select AUX 6 + L.F.U. 75%, R.B.D. 75% + + SVC off + CRAWL off + + Save +*/ + +/* Remote channel functions ----------------------- + Channel 1 = Steering and automatic indicators + Channel 2 = Throttle & brake- reversing-lights + Channel 3 = Push button on the transmitter grip = hazards on / off + Channel 4 = 3 positiion switch on the transmitter grip = gearbox shifting + Channel 5 = left pot: left turn = blue lights & siren, right turn = horn + Channel 6 = right pot: left turn = engine start / stop, right turn = light sequences switching (hold it in end position, then return to center pos.) +*/ // Channel assignment (use NONE for non existing channels!) // Remote channel ####### // Sound controller channel ########################################## @@ -341,7 +344,7 @@ boolean channelReversed[14] = { false, // CH11 false, // CH12 false // CH13 -}; +}; // Channels auto zero adjustment or not (don't use it for channels without spring centered neutral position, switches or unused channels) boolean channelAutoZero[14] = { @@ -359,7 +362,7 @@ boolean channelAutoZero[14] = { false, // CH11 false, // CH12 false // CH13 -}; +}; // Channels signal range calibration ----- const uint16_t pulseNeutral = 30; @@ -376,25 +379,25 @@ const uint16_t pulseSpan = 480; #ifdef RGT_EX86100 /* Communication settings (above):----------------------- - * Use PWM commmunication mode - */ + Use PWM commmunication mode +*/ /* Transmitter settings ----------------------- - * CH1 & 2 reverse: R - * CH2 EPA (LO & HI): max. - * CH1 DR: about 60% (so that the steerning servo is not pushing against end stops) - * CH1 center position: 0 - * CH2 center position: around 0, so that vehicle is driving a straight line - * - * NOTE: do not adjust the settings above without rebooting the ESP32! - * - */ - - /* Remote channel functions ----------------------- - * Channel 1 = Steering and automatic indicators - * Channel 2 = Throttle & brake- reversing-lights - * Channel 3 = 2 position switch on the transmitter grip = horn on / off - */ + CH1 & 2 reverse: R + CH2 EPA (LO & HI): max. + CH1 DR: about 60% (so that the steerning servo is not pushing against end stops) + CH1 center position: 0 + CH2 center position: around 0, so that vehicle is driving a straight line + + NOTE: do not adjust the settings above without rebooting the ESP32! + +*/ + +/* Remote channel functions ----------------------- + Channel 1 = Steering and automatic indicators + Channel 2 = Throttle & brake- reversing-lights + Channel 3 = 2 position switch on the transmitter grip = horn on / off +*/ // Channel assignment (use NONE for non existing channels!) // Remote channel ####### // Sound controller channel ########################################## @@ -428,7 +431,7 @@ boolean channelReversed[14] = { false, // CH11 false, // CH12 false // CH13 -}; +}; // Channels auto zero adjustment or not (don't use it for channels without spring centered neutral position, switches or unused channels) boolean channelAutoZero[14] = { @@ -446,7 +449,7 @@ boolean channelAutoZero[14] = { false, // CH11 false, // CH12 false // CH13 -}; +}; // Channels signal range calibration ----- const uint16_t pulseNeutral = 30; @@ -494,7 +497,7 @@ boolean channelReversed[14] = { false, // CH11 false, // CH12 false // CH13 -}; +}; // Channels auto zero adjustment or not (don't use it for channels without spring centered neutral position, switches or unused channels) boolean channelAutoZero[14] = { @@ -512,7 +515,7 @@ boolean channelAutoZero[14] = { false, // CH11 false, // CH12 false // CH13 -}; +}; // Channels signal range calibration ----- const uint16_t pulseNeutral = 30; @@ -560,7 +563,7 @@ boolean channelReversed[14] = { false, // CH11 false, // CH12 false // CH13 -}; +}; // Channels auto zero adjustment or not (don't use it for channels without spring centered neutral position, switches or unused channels) boolean channelAutoZero[14] = { @@ -578,7 +581,7 @@ boolean channelAutoZero[14] = { false, // CH11 false, // CH12 false // CH13 -}; +}; // Channels signal range calibration ----- const uint16_t pulseNeutral = 30; @@ -626,7 +629,7 @@ boolean channelReversed[14] = { false, // CH11 false, // CH12 false // CH13 -}; +}; // Channels auto zero adjustment or not (don't use it for channels without spring centered neutral position, switches or unused channels) boolean channelAutoZero[14] = { @@ -644,7 +647,7 @@ boolean channelAutoZero[14] = { false, // CH11 false, // CH12 false // CH13 -}; +}; // Channels signal range calibration ----- const uint16_t pulseNeutral = 30; diff --git a/src/3_adjustmentsESC.h b/src/3_adjustmentsESC.h index cbaf13b..7644377 100644 --- a/src/3_adjustmentsESC.h +++ b/src/3_adjustmentsESC.h @@ -58,7 +58,7 @@ // General options //#define QUICRUN_FUSION // Linearity compensation for HOBBYWING Quicrun Fusion motor / ESC combo -//#define ESC_DIR // uncomment this, if your motor is spinning in the wrong direction +#define ESC_DIR // uncomment this, if your motor is spinning in the wrong direction /* RZ7886 motor driver IC instead of ESC. Not in combination with #define THIRD_BRAKELIGHT or #define TRAILER_LIGHTS_TRAILER_PRESENCE_SWITCH_DEPENDENT Wiring: @@ -108,23 +108,24 @@ const uint16_t escTakeoffPunch = 0; const uint16_t escReversePlus = 0; // Brake margin: (Experimental!) -// This setting prevents the ESC to go completely back to zero / neutral as long as the braker trigger is pulled. +// This setting prevents the ESC from going completely back to zero / neutral as long as the braker trigger is pulled. // This prevents the vehicle from rolling back as long as brake is applied. 0 = no effect, ca. 20 = strong effect. // How it works? Prevents the ESC from entering the "drag brake range" -// Warning: vehicle may be unable to stop, if too high, especially when driving downhill! -const uint16_t brakeMargin = 10; // For RZ7886 motor driver and 370 motor = 10 +// Warning: vehicle may be unable to stop, if too high, especially when driving downhill! NEVER more than 20! +const uint16_t brakeMargin = 0; // For RZ7886 motor driver and 370 motor = 10 // Battery low discharge protection (only for boards with voltage divider resistors): +// IMPORTANT: adjust RESISTOR_TO_BATTTERY_PLUS & DIODE_DROP until your readings are correct! //#define BATTERY_PROTECTION // This will disable the ESC output, if the battery cutout voltage is reached const float CUTOFF_VOLTAGE = 3.3; // Usually 3.3 V per LiPo cell. NEVER below 3.2 V! const float FULLY_CHARGED_VOLTAGE = 4.2; // Usually 4.2 V per LiPo cell, NEVER above! -const uint16_t RESISTOR_TO_BATTTERY_PLUS = 9650; // 10000 Ohms (9900 for switch mode test board, 9650 for Ural) +const uint16_t RESISTOR_TO_BATTTERY_PLUS = 10000; // 10000 Ohms (9900 for switch mode test board, 9650 for Ural, 9500 for Landy) const uint16_t RESISTOR_TO_GND = 1000; // 1000 Ohms -const float DIODE_DROP = 0.0; // About 0.34V for SS34 diode (0 for Ural) +const float DIODE_DROP = 0.34; // About 0.34V for SS34 diode on switch mode board (0 for Ural & Landy) volatile int outOfFuelVolumePercentage = 80; // Adjust the message volume in % // Select the out of fuel message you want: -//#include "vehicles/sounds/OutOfFuelEnglish.h" -#include "vehicles/sounds/OutOfFuelGerman.h" +#include "vehicles/sounds/OutOfFuelEnglish.h" +//#include "vehicles/sounds/OutOfFuelGerman.h" //#include "vehicles/sounds/OutOfFuelFrench.h" //#include "vehicles/sounds/OutOfFuelDutch.h" //#include "vehicles/sounds/OutOfFuelSpanish.h" diff --git a/src/4_adjustmentsTransmission.h b/src/4_adjustmentsTransmission.h index cde9b6f..b894a82 100644 --- a/src/4_adjustmentsTransmission.h +++ b/src/4_adjustmentsTransmission.h @@ -1,36 +1,46 @@ #include -/* General TRANSMISSION SETTINGS ************************************************************************************************ +/* General TRANSMISSION SETTINGS ************************************************************************************************************ * * Most transmission settings like automatic, double clutch etc. are done in the vehicle configuration files in the /vehicles/ directory. * */ +// The following transmission modes are ignored in "automatic" or "doubleClutch" vehicles ================================================== +// Never uncomment more than one! If no option is defined, you can use a real 3 speed transmission, for example from TAMIYA + // #define VIRTUAL_3_SPEED allows to simulate a 3 speed shifing transmission, if your vehicle doesn't have a real one. -// Gears are shifted, using the 3 position switch. Example: your crawler has a 2 speed transmission, which is used as off road reducer, +// Gears are virtually shifted, using the 3 position switch. Example: your crawler has a 2 speed transmission, which is used as off road reducer, // but no real 3 speed shifting transmission. Don't uncomment if for vehicles with electric or hydrostatic drive or automatic transmissions! -//#define VIRTUAL_3_SPEED -//#define VIRTUAL_16_SPEED_SEQUENTIAL // This is still experimental! +#define VIRTUAL_3_SPEED -//#define TRANSMISSION_NEUTRAL Allows to put the transmission in neutral. This can't be used, if the "Mode 1" button is used for other stuff! -#define TRANSMISSION_NEUTRAL +//#define VIRTUAL_16_SPEED_SEQUENTIAL will enable a sequencial transmission, shifted by up / down impulses via 3 position switch +//#define VIRTUAL_16_SPEED_SEQUENTIAL // This is still experimental and not working properly! Don't use it. + +// Additional transmission options ========================================================================================================= +// Automatic transmission with overdrive (lower RPM in top gear, gear ratio lower than 1:1, 4 & 6 speed only) +// Also usable in combination with VIRTUAL_3_SPEED. The 4th gear is switched automatically in this case, if driving in 3rd gear @ full throttle +//#define OVERDRIVE // Don't use it for: doubleClutch. Not working with SEMI_AUTOMATIC, but you can leave it on in this case. + +// In some cases we want a different reverse acceleration for automatic transmission vehicles. +uint16_t automaticReverseAccelerationPercentage = 100; +// Transmission controls options =========================================================================================================== // #define SEMI_AUTOMATIC This will simulate a semi automatic transmission. Shifting is not controlled by the 3 position switch in this mode! -//#define SEMI_AUTOMATIC +//#define SEMI_AUTOMATIC // Works for VIRTUAL_3_SPEED or real 3 speed transmission. Don't select this @ the same time as VIRTUAL_16_SPEED_SEQUENTIAL -//#define MODE1_SHIFTING The 2 speed transmission is shifted by the "Mode 1" button instead of the 3 position switch (Micro RC remote only). -// This is often used in WPL vehicles with 2 speed transmission, used as off road reducer +//#define MODE1_SHIFTING The 2 speed transmission is shifted by the "Mode 1" button instead of the 3 position switch. +// This is often used in WPL vehicles with 2 speed transmission, used as off road reducer, shifted while driving slowly in order to engage properly. //#define MODE1_SHIFTING +//#define TRANSMISSION_NEUTRAL Allows to put the transmission in neutral. This can't be used, if the "Mode 1" button is used for other stuff! +// You can leave it on, if defined MODE1_SHIFTING. It is disabled automatically in this case. +#define TRANSMISSION_NEUTRAL + +// Clutch options ========================================================================================================================== uint16_t maxClutchSlippingRpm = 250; // The clutch will never slip above this limit! (about 250) 500 for vehicles like locomotives // and the Kirovets tractor with hydrostatic or electric drive! Mainly required for "VIRTUAL_3_SPEED" mode -// In some cases we want a faster reverse acceleration for automatic transmission vehicles. Around 170% for Landy -uint16_t automaticReverseAccelerationPercentage = 100; - -// Automatic transmission with overdrive (lower RPM in top gear, gear ratio lower than 1:1, 4 & 6 speed only) -#define OVERDRIVE // This is usually on, but don't use it for double clutch transmissions! - -//#define DOUBLE_CLUTCH // Double-clutch (Zwischengas) Enable this for older trucks without synchronised gears +//#define DOUBLE_CLUTCH // Double-clutch (Zwischengas) Enable this for older manual transmission trucks without synchronised gears #define HIGH_SLIPPINGPOINT // Clutch will engage @ higher RPM, if defined (EXPERIMENTAL). Comment this out for heavy vehicles like semi trucks diff --git a/src/6_adjustmentsLights.h b/src/6_adjustmentsLights.h index 7c568d7..818f4bf 100644 --- a/src/6_adjustmentsLights.h +++ b/src/6_adjustmentsLights.h @@ -7,14 +7,16 @@ */ // Neopixel settings ----------------------------------------------------------------------------------------------------------------------------- -//#define NEOPIXEL_ENABLED // GPIO0 used for WS2812 Neopixel control, if defined! +#define NEOPIXEL_ENABLED // GPIO0 used for WS2812 Neopixel control, if defined! #define NEOPIXEL_COUNT 8 // How many Neopixels? 8 for Knight Rider, 3 for B33lz3bub -#define NEOPIXEL_BRIGHTNESS 5 // Brightness (255 is the maximum) +#define NEOPIXEL_BRIGHTNESS 127 // Brightness (255 is the maximum) // Choose the mode you want //#define NEOPIXEL_DEMO // Demo -#define NEOPIXEL_KNIGHT_RIDER // Knight Rider scanner animation (use it in combination with "kittScanner.h" "siren" sound in your vehicle file) -//#define NEOPIXEL_B33LZ3BUB // B33lz3bub Austria animation: https://www.rc-modellbau-portal.de/index.php?threads/baubericht-mercedes-actros-1851-gigaspace-tamiya.14349/page-3 +//#define NEOPIXEL_KNIGHT_RIDER // Knight Rider scanner animation for 8 LED (use it in combination with "kittScanner.h" "siren" sound in your vehicle file) +#define NEOPIXEL_BLUELIGHT // Bluelight animation for 8 LED +#define NEOPIXEL_HIGHBEAM // Neopixel bar is used as high beam as well, if defined. Also usable in combination with NEOPIXEL_KNIGHT_RIDER & NEOPIXEL_BLUELIGHT +//#define NEOPIXEL_B33LZ3BUB // B33lz3bub Austria animation for 3 LED: https://www.rc-modellbau-portal.de/index.php?threads/baubericht-mercedes-actros-1851-gigaspace-tamiya.14349/page-3 // The following options may already be defined in the vehicle file. Don't uncomment them in this case or you will get a redefinition error ------ diff --git a/src/9_adjustmentsDashboard.h b/src/9_adjustmentsDashboard.h index 1307395..148b8ec 100644 --- a/src/9_adjustmentsDashboard.h +++ b/src/9_adjustmentsDashboard.h @@ -11,7 +11,7 @@ * modify the Setup43_ST7735_ESP32_80x160.h file if you use other pins for the display connection */ -#define SPI_DASHBOARD // A 0.96" SPI LCD is used as dashboard: https://www.ebay.ch/itm/174458054566?hash=item289e82a7a6:g:LpAAAOSwtL1fdDtI +//#define SPI_DASHBOARD // A 0.96" SPI LCD is used as dashboard: https://www.ebay.ch/itm/174458054566?hash=item289e82a7a6:g:LpAAAOSwtL1fdDtI // WARNING: // Pins 18 (SCL), 19 (DC), 21 (RES) & 23 (SDA) are used for the dashboard in this case! diff --git a/src/src.ino b/src/src.ino index 42edcf6..847570f 100644 --- a/src/src.ino +++ b/src/src.ino @@ -18,7 +18,7 @@ Arduino IDE is supported as before, but stuff was renamed and moved to different folders! */ -char codeVersion[] = "9.6.0"; // Software revision. +char codeVersion[] = "9.7.0"; // Software revision. // This stuff is required for Visual Studio Code IDE, if .ino is renamed into .cpp! #include @@ -69,7 +69,7 @@ float batteryVolts(); #include "10_adjustmentsTrailer.h" // <<------- Trailer related adjustments // DEBUG options can slow down the playback loop! Only uncomment them for debugging, may slow down your system! -//#define CHANNEL_DEBUG // uncomment it for input signal & general debugging informations +#define CHANNEL_DEBUG // uncomment it for input signal & general debugging informations //#define ESC_DEBUG // uncomment it to debug the ESC //#define AUTO_TRANS_DEBUG // uncomment it to debug the automatic transmission //#define MANUAL_TRANS_DEBUG // uncomment it to debug the manual transmission @@ -116,7 +116,7 @@ float batteryVolts(); // The following tasks only required for Arduino IDE! ---- // Install ESP32 board according to: https://randomnerdtutorials.com/installing-the-esp32-board-in-arduino-ide-windows-instructions/ -// Warning: Espressif ESP32 board definition v1.06! v2.x is not working +// Warning: Use Espressif ESP32 board definition v1.06! v2.x is not working // Adjust board settings according to: https://github.com/TheDIYGuy999/Rc_Engine_Sound_ESP32/blob/master/pictures/settings.png // Visual Studio Code IDE instructions: ---- @@ -311,6 +311,7 @@ volatile boolean couplerSwitchInteruptLatch; // this is enabled, if the coupler #define PULSE_ARRAY_SIZE 14 // 13 channels (+ the unused CH0) uint16_t pulseWidthRaw[PULSE_ARRAY_SIZE]; // Current RC signal RAW pulse width [X] = channel number uint16_t pulseWidthRaw2[PULSE_ARRAY_SIZE]; // Current RC signal RAW pulse width with linearity compensation [X] = channel number +uint16_t pulseWidthRaw3[PULSE_ARRAY_SIZE]; // Current RC signal RAW pulse width before averaging [X] = channel number uint16_t pulseWidth[PULSE_ARRAY_SIZE]; // Current RC signal pulse width [X] = channel number int16_t pulseOffset[PULSE_ARRAY_SIZE]; // Offset for auto zero adjustment @@ -430,6 +431,7 @@ volatile boolean neutralGear = false; // Transmission in neut volatile boolean escIsBraking = false; // ESC is in a braking state volatile boolean escIsDriving = false; // ESC is in a driving state volatile boolean escInReverse = false; // ESC is driving or braking backwards +volatile boolean brakeDetect = false; // Additional brake detect signal, enabled immediately, if brake applied int8_t driveState = 0; // for ESC state machine uint16_t escPulseMax = 2000; // ESC calibration variables (values will be changed later) uint16_t escPulseMin = 1000; @@ -1108,6 +1110,7 @@ void IRAM_ATTR fixedPlaybackTimer() { // Mixing sounds together ********************************************************************** a = a1 + a2; // Horn & siren + //if (a < 2 && a > -2) a = 0; // Remove noise floor TODO, experimental b = b0 * 5 + b1 + b2 / 2 + b3 + b4 + b5 + b6 + b7 + b8 + b9; // Other sounds c = c1 + c2 + c3; // Excavator sounds d = d1 + d2; // Additional sounds @@ -1116,7 +1119,7 @@ void IRAM_ATTR fixedPlaybackTimer() { //dacDebug = constrain(((a * 8 / 10) + (b * 2 / 10) + c + d) * masterVolume / 100 + dacOffset, 0, 255); // Mix signals, add 128 offset, write result to DAC dacWrite(DAC2, constrain(((a * 8 / 10) + (b * 2 / 10) + c + d) * masterVolume / 100 + dacOffset, 0, 255)); // Mix signals, add 128 offset, write result to DAC - //dacWrite(DAC2, constrain( c * masterVolume / 100 + dacOffset, 0, 255)); // Mix signals, add 128 offset, write result to DAC + //dacWrite(DAC2, constrain( a2 * masterVolume / 100 + dacOffset, 0, 255)); // Mix signals, add 128 offset, write result to DAC //dacWrite(DAC2, 0); //portEXIT_CRITICAL_ISR(&fixedTimerMux); @@ -1829,7 +1832,7 @@ void readSbusCommands() { } else failSafe = false; - if (sbusInit) { // TODO, experimental! + if (sbusInit) { // Normalize, auto zero and reverse channels processRawChannels(); @@ -2006,21 +2009,21 @@ void processRawChannels() { #endif // -------------------------------------------------- // Take channel raw data, reverse them, if required and store them - if (channelReversed[i]) pulseWidth[i] = map(pulseWidthRaw2[i], 0, 3000, 3000, 0); // Reversed - else pulseWidth[i] = pulseWidthRaw2[i]; // Not reversed + if (channelReversed[i]) pulseWidthRaw3[i] = map(pulseWidthRaw2[i], 0, 3000, 3000, 0); // Reversed + else pulseWidthRaw3[i] = pulseWidthRaw2[i]; // Not reversed // Calculate zero offset (only within certain absolute range) - if (channelAutoZero[i] && !autoZeroDone && pulseWidth[i] > pulseMinValid && pulseWidth[i] < pulseMaxValid) pulseOffset[i] = 1500 - pulseWidth[i]; + if (channelAutoZero[i] && !autoZeroDone && pulseWidthRaw3[i] > pulseMinValid && pulseWidthRaw3[i] < pulseMaxValid) pulseOffset[i] = 1500 - pulseWidthRaw3[i]; - // Center channel, if out of range! TODO, experimental - if (pulseWidth[i] > pulseMaxValid || pulseWidth[i] < pulseMinValid) pulseWidth[i] = pulseZero[i]; + // Center channel, if out of range! + if (pulseWidthRaw3[i] > pulseMaxValid || pulseWidthRaw3[i] < pulseMinValid) pulseWidthRaw3[i] = pulseZero[i]; - // Limit channel, if out of range! TODO, experimental (required for RGT MT-350 @ max. throttle dual rate) - if (pulseWidth[i] > 2000) pulseWidth[i] = 2000; - if (pulseWidth[i] < 1000) pulseWidth[i] = 1000; + // Limit channel, if out of range (required for RGT MT-350 @ max. throttle dual rate) + if (pulseWidthRaw3[i] > 2000) pulseWidthRaw3[i] = 2000; + if (pulseWidthRaw3[i] < 1000) pulseWidthRaw3[i] = 1000; // Compensate pulsewidth with auto zero offset - pulseWidth[i] += pulseOffset[i]; + pulseWidthRaw3[i] += pulseOffset[i]; if (!autoZeroDone) { // Print offsets, if switching on the controller Serial.printf(" CH%i: %i µs\n", i, pulseOffset[i]); } @@ -2035,7 +2038,33 @@ void processRawChannels() { indicatorR.flash(140, 150, 500, channel); } - // Print input signal debug infos +#if defined CHANNEL_AVERAGING // -------------------------------------------------------------------------------- + uint16_t n = 4; // 2 - 4 ! + static bool initDone = false; + static uint32_t smoothed[PULSE_ARRAY_SIZE]; + static unsigned long averagingMillis = millis(); + + if (millis() - averagingMillis > 15) { // Every 15ms (SBUS packets are coming in every 14ms) + averagingMillis = millis(); + for (uint8_t i = 1; i < PULSE_ARRAY_SIZE; i++) { // With averaging ----- + if (initDone) { + smoothed[i] = (smoothed[i] * (n - 1) + pulseWidthRaw3[i]) / n; + pulseWidth[i] = smoothed[i]; + } + else { + smoothed[i] = pulseWidthRaw3[i]; + pulseWidth[i] = pulseWidthRaw3[i]; + if (i >= PULSE_ARRAY_SIZE - 1) initDone = true; + } + } + } +#else // Without averaging ----- + for (uint8_t i = 1; i < PULSE_ARRAY_SIZE; i++) { + pulseWidth[i] = pulseWidthRaw3[i]; + } +#endif + + // Print input signal debug infos ----------------------------------------------------------------------------- #ifdef CHANNEL_DEBUG // can slow down the playback loop! static unsigned long printChannelMillis; if (millis() - printChannelMillis > 1000 && autoZeroDone) { // Every 1000ms @@ -2066,7 +2095,7 @@ void processRawChannels() { // Sub function for channel centering ---- void channelZero() { - for (int i = 1; i < PULSE_ARRAY_SIZE; i++) { + for (uint8_t i = 1; i < PULSE_ARRAY_SIZE; i++) { pulseWidth[i] = 1500; } } @@ -2162,9 +2191,10 @@ void mcpwmOutput() { #if not defined MODE1_SHIFTING if (selectedGear == 1) shiftingServoMicros = CH2L; if (selectedGear == 2) shiftingServoMicros = CH2C; - if (selectedGear == 3) shiftingServoMicros = CH2R; + if (selectedGear >= 3) shiftingServoMicros = CH2R; #else - if (currentSpeed > 100 && currentSpeed < 150) { // Only shift WPL gearbox, if vehicle is moving slowly, so it's engaging properly +#undef TRANSMISSION_NEUTRAL // Not usable in this case! + if (currentSpeed > 50 && currentSpeed < 150) { // Only shift WPL gearbox, if vehicle is moving slowly, so it's engaging properly if (!mode1) shiftingServoMicros = CH2L; else shiftingServoMicros = CH2C; } @@ -2376,11 +2406,9 @@ void mapThrottle() { if (currentThrottleFaded < currentThrottle && !escIsBraking && currentThrottleFaded < 499) currentThrottleFaded += 2; if ((currentThrottleFaded > currentThrottle || escIsBraking) && currentThrottleFaded > 2) currentThrottleFaded -= 2; - //Serial.printf("currentThrottleFaded: %i\n", currentThrottleFaded); - // Calculate throttle dependent engine idle volume - if (!escIsBraking && engineRunning) throttleDependentVolume = map(currentThrottleFaded, 0, 500, engineIdleVolumePercentage, fullThrottleVolumePercentage); + if (!escIsBraking && !brakeDetect && engineRunning) throttleDependentVolume = map(currentThrottleFaded, 0, 500, engineIdleVolumePercentage, fullThrottleVolumePercentage); //else throttleDependentVolume = engineIdleVolumePercentage; // TODO else { if (throttleDependentVolume > engineIdleVolumePercentage) throttleDependentVolume--; @@ -2388,7 +2416,7 @@ void mapThrottle() { } // Calculate throttle dependent engine rev volume - if (!escIsBraking && engineRunning) throttleDependentRevVolume = map(currentThrottleFaded, 0, 500, engineRevVolumePercentage, fullThrottleVolumePercentage); + if (!escIsBraking && !brakeDetect && engineRunning) throttleDependentRevVolume = map(currentThrottleFaded, 0, 500, engineRevVolumePercentage, fullThrottleVolumePercentage); //else throttleDependentRevVolume = engineRevVolumePercentage; // TODO else { if (throttleDependentRevVolume > engineRevVolumePercentage) throttleDependentRevVolume--; @@ -2396,7 +2424,7 @@ void mapThrottle() { } // Calculate throttle dependent Diesel knock volume - if (!escIsBraking && engineRunning && (currentThrottleFaded > dieselKnockStartPoint)) throttleDependentKnockVolume = map(currentThrottleFaded, dieselKnockStartPoint, 500, dieselKnockIdleVolumePercentage, 100); + if (!escIsBraking && !brakeDetect && engineRunning && (currentThrottleFaded > dieselKnockStartPoint)) throttleDependentKnockVolume = map(currentThrottleFaded, dieselKnockStartPoint, 500, dieselKnockIdleVolumePercentage, 100); //else throttleDependentKnockVolume = dieselKnockIdleVolumePercentage; else { if (throttleDependentKnockVolume > dieselKnockIdleVolumePercentage) throttleDependentKnockVolume--; @@ -2422,7 +2450,7 @@ void mapThrottle() { else throttleDependentFanVolume = fanIdleVolumePercentage; // Calculate throttle dependent supercharger volume - if (!escIsBraking && engineRunning && (currentRpm > chargerStartPoint)) throttleDependentChargerVolume = map(currentThrottleFaded, chargerStartPoint, 500, chargerIdleVolumePercentage, 100); + if (!escIsBraking && !brakeDetect && engineRunning && (currentRpm > chargerStartPoint)) throttleDependentChargerVolume = map(currentThrottleFaded, chargerStartPoint, 500, chargerIdleVolumePercentage, 100); else throttleDependentChargerVolume = chargerIdleVolumePercentage; // Calculate engine rpm dependent wastegate volume @@ -2433,7 +2461,7 @@ void mapThrottle() { // Calculate engine load (used for torque converter slip simulation) engineLoad = currentThrottle - currentRpm; - if (engineLoad < 0 || escIsBraking) engineLoad = 0; // Range is 0 - 180 + if (engineLoad < 0 || escIsBraking || brakeDetect) engineLoad = 0; // Range is 0 - 180 if (engineLoad > 180) engineLoad = 180; @@ -2539,7 +2567,6 @@ void engineMassSimulation() { #if defined VIRTUAL_3_SPEED || defined VIRTUAL_16_SPEED_SEQUENTIAL // Virtual 3 speed or sequential 16 speed transmission - //targetRpm = currentSpeed * virtualManualGearRatio[selectedGear] / 10; // Add virtual gear ratios TODO targetRpm = reMap(curveLinear, (currentSpeed * virtualManualGearRatio[selectedGear] / 10)); // Add virtual gear ratios if (targetRpm > 500) targetRpm = 500; @@ -2936,34 +2963,52 @@ void shaker() { // // ======================================================================================================= -// MANUAL TAMIYA 3 SPEED GEARBOX DETECTION +// MANUAL GEARBOX DETECTION (Real 3 speed, virtual 3 speed, virtual 16 speed, semi automatic) // ======================================================================================================= // void gearboxDetection() { static uint8_t previousGear = 1; - static boolean previousReverse; - static boolean sequentialLock; + static bool previousReverse; + static bool sequentialLock; + static bool overdrive = false; static unsigned long upShiftingMillis; static unsigned long downShiftingMillis; - static unsigned long lastShiftingMillis; + static unsigned long lastShiftingMillis; // This timer is used to prevent transmission from oscillating! #if defined TRACKED_MODE // CH2 is used for left throttle in TRACKED_MODE -------------------------------- selectedGear = 2; #else // only active, if not in TRACKED_MODE ------------------------------------------------------------- - // if automatic transmission, always 2nd gear - if (automatic || doubleClutch) selectedGear = 2; -#if not defined VIRTUAL_16_SPEED_SEQUENTIAL && not defined SEMI_AUTOMATIC// 3 gears, directly selected by 3 position switch ---- +#if defined OVERDRIVE && defined VIRTUAL_3_SPEED // Additional 4th gear mode for virtual 3 speed ******************************** + // The 4th gear (overdrive) is engaged automatically, if driving @ full throttle in 3rd gear + if (currentRpm > 490 && selectedGear == 3 && engineLoad < 5 && currentThrottle > 490 && millis() - lastShiftingMillis > 2000) { + overdrive = true; + } + if (!escIsBraking) { // Lower downshift point, if not braking + if (currentRpm < 200 && millis() - lastShiftingMillis > 2000) { + overdrive = false; + } + } + else { // Higher downshift point, if braking + if ((currentRpm < 400 || engineLoad > 150) && millis() - lastShiftingMillis > 2000) { + overdrive = false; + } + } + if (selectedGear < 3) overdrive = false; +#endif // End of overdrive ****************************************************************************************************** + +#if not defined VIRTUAL_16_SPEED_SEQUENTIAL && not defined SEMI_AUTOMATIC// 3 gears, selected by 3 position switch ************** // Gear detection if (pulseWidth[2] > 1700) selectedGear = 3; else if (pulseWidth[2] < 1300) selectedGear = 1; else selectedGear = 2; -#endif // End of manual 3 speed ---- + if (overdrive && selectedGear == 3) selectedGear = 4; +#endif // End of manual 3 speed ************************************************************************************************* -#if defined VIRTUAL_16_SPEED_SEQUENTIAL // 16 gears, selected by up / down impulses ---- +#if defined VIRTUAL_16_SPEED_SEQUENTIAL // 16 gears, selected by up / down impulses ********************************************* if (pulseWidth[2] > 1700 && selectedGear < 16 && !sequentialLock) { sequentialLock = true; selectedGear ++; @@ -2973,27 +3018,24 @@ void gearboxDetection() { selectedGear --; } if (pulseWidth[2] > 1400 && pulseWidth[2] < 1600) sequentialLock = false; -#endif // End of VIRTUAL_16_SPEED_SEQUENTIAL ---- +#endif // End of VIRTUAL_16_SPEED_SEQUENTIAL ************************************************************************************* -#if defined SEMI_AUTOMATIC // gears not controlled by the 3 position switch but by RPM limits ---- - if (currentRpm > 490 && selectedGear < 3 && !gearUpShiftingInProgress && !gearDownShiftingInProgress && engineLoad < 5 && currentThrottle > 490) { +#if defined SEMI_AUTOMATIC // gears not controlled by the 3 position switch but by RPM limits ************************************ + if (currentRpm > 490 && selectedGear < 3 && engineLoad < 5 && currentThrottle > 490 && millis() - lastShiftingMillis > 2000) { selectedGear ++; - lastShiftingMillis = millis(); - } // Lower downshift point, if not braking - if (!escIsBraking) { - if (currentRpm < 200 && selectedGear > 1 && !gearUpShiftingInProgress && !gearDownShiftingInProgress && millis() - lastShiftingMillis > 2000) { + } + if (!escIsBraking) { // Lower downshift point, if not braking + if (currentRpm < 200 && selectedGear > 1 && millis() - lastShiftingMillis > 2000) { selectedGear --; // - lastShiftingMillis = millis(); } } else { // Higher downshift point, if braking - if ((currentRpm < 400 || engineLoad > 150) && selectedGear > 1 && !gearUpShiftingInProgress && !gearDownShiftingInProgress && millis() - lastShiftingMillis > 2000) { + if ((currentRpm < 400 || engineLoad > 150) && selectedGear > 1 && millis() - lastShiftingMillis > 2000) { selectedGear --; // Higher downshift point, if braking - lastShiftingMillis = millis(); } } if (neutralGear || escInReverse) selectedGear = 1; -#endif // End of SEMI_AUTOMATIC ---- +#endif // End of SEMI_AUTOMATIC ************************************************************************************************** // Gear upshifting detection if (selectedGear > previousGear) { @@ -3001,6 +3043,7 @@ void gearboxDetection() { gearUpShiftingPulse = true; shiftingTrigger = true; previousGear = selectedGear; + lastShiftingMillis = millis(); } // Gear upshifting duration @@ -3020,6 +3063,7 @@ void gearboxDetection() { gearDownShiftingPulse = true; shiftingTrigger = true; previousGear = selectedGear; + lastShiftingMillis = millis(); } // Gear downshifting duration @@ -3041,6 +3085,7 @@ void gearboxDetection() { Serial.printf("MANUAL_TRANS_DEBUG:\n"); Serial.printf("currentThrottle: %i\n", currentThrottle); Serial.printf("selectedGear: %i\n", selectedGear); + Serial.printf("overdrive: %i\n", overdrive); Serial.printf("engineLoad: %i\n", engineLoad); Serial.printf("sequentialLock: %s\n", sequentialLock ? "true" : "false"); Serial.printf("currentRpm: %i\n", currentRpm); @@ -3117,11 +3162,41 @@ void automaticGearSelector() { // ======================================================================================================= // +static uint16_t escPulseWidth = 1500; +static uint16_t escPulseWidthOut = 1500; +static uint16_t escSignal = 1500; +static uint8_t motorDriverDuty = 0; +static unsigned long escMillis; +static unsigned long lastStateTime; +//static int8_t pulse; // -1 = reverse, 0 = neutral, 1 = forward +//static int8_t escPulse; // -1 = reverse, 0 = neutral, 1 = forward +static int8_t driveRampRate; +static int8_t driveRampGain; +static int8_t brakeRampRate; +uint8_t escRampTime; + +// ESC sub functions ============================================= +// We always need the data up to date, so these comparators are programmed as sub functions! +int8_t pulse() { // Throttle direction + int8_t pulse; + if (pulseWidth[3] > pulseMaxNeutral[3] && pulseWidth[3] < pulseMaxLimit[3]) pulse = 1; // 1 = Forward + else if (pulseWidth[3] < pulseMinNeutral[3] && pulseWidth[3] > pulseMinLimit[3]) pulse = -1; // -1 = Backwards + else pulse = 0; // 0 = Neutral + return pulse; +} +int8_t escPulse() { // ESC direction + int8_t escPulse; + if (escPulseWidth > pulseMaxNeutral[3] && escPulseWidth < pulseMaxLimit[3]) escPulse = 1; // 1 = Forward + else if (escPulseWidth < pulseMinNeutral[3] && escPulseWidth > pulseMinLimit[3]) escPulse = -1; // -1 = Backwards + else escPulse = 0; // 0 = Neutral + return escPulse; +} + // If you connect your ESC to pin 33, the vehicle inertia is simulated. Direct brake (crawler) ESC required // *** WARNING!! Do it at your own risk!! There is a falisafe function in case, the signal input from the // receiver is lost, but if the ESP32 crashes, the vehicle could get out of control!! *** -void esc() { +void esc() { // ESC main function ================================ // Battery protection -------------------------------- #if defined BATTERY_PROTECTION @@ -3147,19 +3222,6 @@ void esc() { #endif // -------------------------------------------- #if not defined TRACKED_MODE && not defined AIRPLANE_MODE // No ESC control in TRACKED_MODE or in AIRPLANE_MODE - static uint16_t escPulseWidth = 1500; - static uint16_t escPulseWidthOut = 1500; - static uint16_t escSignal = 1500; - static uint8_t motorDriverDuty = 0; - static unsigned long escMillis; - static unsigned long lastStateTime; - static int8_t pulse; // -1 = reverse, 0 = neutral, 1 = forward - static int8_t escPulse; // -1 = reverse, 0 = neutral, 1 = forward - static int8_t driveRampRate; - static int8_t driveRampGain; - static int8_t brakeRampRate; - uint8_t escRampTime; - // Gear dependent ramp speed for acceleration & deceleration #if defined VIRTUAL_3_SPEED escRampTime = escRampTimeThirdGear * 10 / virtualManualGearRatio[selectedGear]; @@ -3179,53 +3241,48 @@ void esc() { if (escInReverse) escRampTime = escRampTime * 100 / automaticReverseAccelerationPercentage; // faster acceleration in automatic reverse, EXPERIMENTAL, TODO! } - if (millis() - escMillis > escRampTime) { // About very 20 - 75ms - escMillis = millis(); - - // calulate throttle dependent brake & acceleration steps - brakeRampRate = map (currentThrottle, 0, 500, 1, escBrakeSteps); - driveRampRate = map (currentThrottle, 0, 500, 1, escAccelerationSteps); - - // Emergency ramp rates for falisafe - if (failSafe) { - brakeRampRate = escBrakeSteps; - driveRampRate = escBrakeSteps; - } + // calulate throttle dependent brake & acceleration steps + brakeRampRate = map (currentThrottle, 0, 500, 1, escBrakeSteps); + driveRampRate = map (currentThrottle, 0, 500, 1, escAccelerationSteps); - // Comparators - if (pulseWidth[3] > pulseMaxNeutral[3] && pulseWidth[3] < pulseMaxLimit[3]) pulse = 1; // 1 = Forward - else if (pulseWidth[3] < pulseMinNeutral[3] && pulseWidth[3] > pulseMinLimit[3]) pulse = -1; // -1 = Backwards - else pulse = 0; // 0 = Neutral + // Emergency ramp rates for falisafe + if (failSafe) { + brakeRampRate = escBrakeSteps; + driveRampRate = escBrakeSteps; + } - if (escPulseWidth > pulseMaxNeutral[3] && escPulseWidth < pulseMaxLimit[3]) escPulse = 1; // 1 = Forward - else if (escPulseWidth < pulseMinNeutral[3] && escPulseWidth > pulseMinLimit[3]) escPulse = -1; // -1 = Backwards - else escPulse = 0; // 0 = Neutral + // Additional brake detection signal, applied immediately. Used to prevent sound issues, if braking very quickly + brakeDetect = ((pulse() == 1 && escPulse() == -1) || (pulse() == -1 && escPulse() == 1)); #ifdef ESC_DEBUG - if (millis() - lastStateTime > 300) { // Print the data every 300ms - lastStateTime = millis(); - Serial.printf("ESC_DEBUG:\n"); - Serial.printf("driveState: %i\n", driveState); - Serial.printf("pulse: %i\n", pulse); - Serial.printf("escPulse: %i\n", escPulse); - Serial.printf("escPulseMin: %i\n", escPulseMin); - Serial.printf("escPulseMinNeutral: %i\n", escPulseMinNeutral); - Serial.printf("escPulseMaxNeutral: %i\n", escPulseMaxNeutral); - Serial.printf("escPulseMax: %i\n", escPulseMax); - Serial.printf("brakeRampRate: %i\n", brakeRampRate); - Serial.printf("currentRpm: %i\n", currentRpm); - Serial.printf("escPulseWidth: %i\n", escPulseWidth); - Serial.printf("escPulseWidthOut: %i\n", escPulseWidthOut); - Serial.printf("escSignal: %i\n", escSignal); - Serial.printf("motorDriverDuty: %i\n", motorDriverDuty); - Serial.printf("currentSpeed: %i\n", currentSpeed); - Serial.printf("speedLimit: %i\n", speedLimit); - Serial.printf("batteryProtection: %i\n", batteryProtection); - Serial.printf("batteryVoltage: %i\n", batteryVoltage); - Serial.printf("--------------------------------------\n"); - } + if (millis() - lastStateTime > 300) { // Print the data every 300ms + lastStateTime = millis(); + Serial.printf("ESC_DEBUG:\n"); + Serial.printf("driveState: %i\n", driveState); + Serial.printf("pulse(): %i\n", pulse()); + Serial.printf("escPulse(): %i\n", escPulse()); + Serial.printf("brakeDetect: %s\n", brakeDetect ? "true" : "false"); + Serial.printf("escPulseMin: %i\n", escPulseMin); + Serial.printf("escPulseMinNeutral: %i\n", escPulseMinNeutral); + Serial.printf("escPulseMaxNeutral: %i\n", escPulseMaxNeutral); + Serial.printf("escPulseMax: %i\n", escPulseMax); + Serial.printf("brakeRampRate: %i\n", brakeRampRate); + Serial.printf("currentRpm: %i\n", currentRpm); + Serial.printf("escPulseWidth: %i\n", escPulseWidth); + Serial.printf("escPulseWidthOut: %i\n", escPulseWidthOut); + Serial.printf("escSignal: %i\n", escSignal); + Serial.printf("motorDriverDuty: %i\n", motorDriverDuty); + Serial.printf("currentSpeed: %i\n", currentSpeed); + Serial.printf("speedLimit: %i\n", speedLimit); + Serial.printf("batteryProtection: %s\n", batteryProtection ? "true" : "false"); + Serial.printf("batteryVoltage: %.2f\n", batteryVoltage); + Serial.printf("--------------------------------------\n"); + } #endif // ESC_DEBUG + if (millis() - escMillis > escRampTime) { // About very 20 - 75ms + escMillis = millis(); + // Drive state state machine ********************************************************************************** switch (driveState) { @@ -3238,8 +3295,8 @@ void esc() { selectedGear = 1; #endif - if (pulse == 1 && engineRunning && !neutralGear) driveState = 1; // Driving forward - if (pulse == -1 && engineRunning && !neutralGear) driveState = 3; // Driving backwards + if (pulse() == 1 && engineRunning && !neutralGear) driveState = 1; // Driving forward + if (pulse() == -1 && engineRunning && !neutralGear) driveState = 3; // Driving backwards break; case 1: // Driving forward --------------------------------------------------------------------- @@ -3269,8 +3326,9 @@ void esc() { escPulseWidth = constrain(escPulseWidth, pulseZero[3], pulseMax[3]); } - if (pulse == -1 && escPulse == 1) driveState = 2; // Braking forward - if (pulse == 0 && escPulse == 0) driveState = 0; // standing still + if (pulse() == -1 && escPulse() == 1) driveState = 2; // Braking forward + if (pulse() == -1 && escPulse() == 0) driveState = 3; // Driving backwards, if ESC not yet moving. Prevents state machine from hanging! v9.7.0 + if (pulse() == 0 && escPulse() == 0) driveState = 0; // standing still break; case 2: // Braking forward --------------------------------------------------------------------- @@ -3278,14 +3336,14 @@ void esc() { escInReverse = false; escIsDriving = false; if (escPulseWidth > pulseZero[3]) escPulseWidth -= brakeRampRate; // brake with variable deceleration - if (escPulseWidth < pulseZero[3] + brakeMargin && pulse == -1) escPulseWidth = pulseZero[3] + brakeMargin; // Don't go completely back to neutral, if brake applied - if (escPulseWidth < pulseZero[3] && pulse == 0) escPulseWidth = pulseZero[3]; // Overflow prevention! + if (escPulseWidth < pulseZero[3] + brakeMargin && pulse() == -1) escPulseWidth = pulseZero[3] + brakeMargin; // Don't go completely back to neutral, if brake applied + if (escPulseWidth < pulseZero[3] && pulse() == 0) escPulseWidth = pulseZero[3]; // Overflow prevention! - if (pulse == 0 && escPulse == 1 && !neutralGear) { + if (pulse() == 0 && escPulse() == 1 && !neutralGear) { driveState = 1; // Driving forward airBrakeTrigger = true; } - if (pulse == 0 && escPulse == 0) { + if (pulse() == 0 && escPulse() == 0) { driveState = 0; // standing still airBrakeTrigger = true; } @@ -3316,8 +3374,9 @@ void esc() { escPulseWidth = constrain(escPulseWidth, pulseMin[3], pulseZero[3]); } - if (pulse == 1 && escPulse == -1) driveState = 4; // Braking backwards - if (pulse == 0 && escPulse == 0) driveState = 0; // standing still + if (pulse() == 1 && escPulse() == -1) driveState = 4; // Braking backwards + if (pulse() == 1 && escPulse() == 0) driveState = 1; // Driving forward, if ESC not yet moving. Prevents state machine from hanging! v9.7.0 + if (pulse() == 0 && escPulse() == 0) driveState = 0; // standing still break; case 4: // Braking backwards --------------------------------------------------------------------- @@ -3325,14 +3384,14 @@ void esc() { escInReverse = true; escIsDriving = false; if (escPulseWidth < pulseZero[3]) escPulseWidth += brakeRampRate; // brake with variable deceleration - if (escPulseWidth > pulseZero[3] - brakeMargin && pulse == 1) escPulseWidth = pulseZero[3] - brakeMargin; // Don't go completely back to neutral, if brake applied - if (escPulseWidth > pulseZero[3] && pulse == 0) escPulseWidth = pulseZero[3]; // Overflow prevention! + if (escPulseWidth > pulseZero[3] - brakeMargin && pulse() == 1) escPulseWidth = pulseZero[3] - brakeMargin; // Don't go completely back to neutral, if brake applied + if (escPulseWidth > pulseZero[3] && pulse() == 0) escPulseWidth = pulseZero[3]; // Overflow prevention! - if (pulse == 0 && escPulse == -1 && !neutralGear) { + if (pulse() == 0 && escPulse() == -1 && !neutralGear) { driveState = 3; // Driving backwards airBrakeTrigger = true; } - if (pulse == 0 && escPulse == 0) { + if (pulse() == 0 && escPulse() == 0) { driveState = 0; // standing still airBrakeTrigger = true; } @@ -3492,10 +3551,12 @@ void triggerHorn() { #endif // detect bluelight trigger ( impulse length < 1300us) ---------- + static uint32_t bluelightOffDelay = millis(); if ((pulseWidth[4] < 1300 && pulseWidth[4] > pulseMinLimit[4]) || sirenLatch) { + bluelightOffDelay = millis(); blueLightTrigger = true; } - else { + if (millis() - bluelightOffDelay > 50) { // Switch off delay blueLightTrigger = false; } } @@ -3957,13 +4018,14 @@ void updateDashboard() { // // ======================================================================================================= -// NEOPIXEL WS2812 LED MB STAR BY Gamadril: https://github.com/Gamadril/Rc_Engine_Sound_ESP32 +// NEOPIXEL WS2812 LED // ======================================================================================================= // void updateRGBLEDs() { static uint32_t lastNeopixelTime = millis(); + static bool knightRiderLatch = false; #ifdef NEOPIXEL_DEMO // Demo ------------------------------------------------------------- if (millis() - lastNeopixelTime > 20) { // Every 20 ms @@ -3977,7 +4039,6 @@ void updateRGBLEDs() { rgbLEDs[3] = CRGB::Yellow; rgbLEDs[4] = CRGB::Blue; rgbLEDs[5] = CRGB::Green; - FastLED.show(); } #endif @@ -3985,19 +4046,70 @@ void updateRGBLEDs() { static int16_t increment = 1; static int16_t counter = 0; - if (millis() - lastNeopixelTime > 98) { // Every 98 ms (must match with sound) + if (millis() - lastNeopixelTime > 91) { // Every 91 ms (must match with sound) lastNeopixelTime = millis(); - if (sirenTrigger) { // Only active, if siren signal! - counter += increment; - if (counter == NEOPIXEL_COUNT - 1) increment = -1; - if (counter == 0) increment = 1; + if (sirenTrigger || knightRiderLatch) { // Only active, if siren signal! + if (counter >= NEOPIXEL_COUNT - 1) increment = -1; + if (counter <= 0) increment = 1; + knightRiderLatch = (counter > 0); rgbLEDs[counter] = CRGB::Red; + counter += increment; + } + else { + counter = 0; } for (int i = 0; i < NEOPIXEL_COUNT; i++) { - rgbLEDs[i].nscale8(190); //190 + rgbLEDs[i].nscale8(160); //160 + } + } +#endif + +#ifdef NEOPIXEL_BLUELIGHT // Bluelight ---------------------------------------------------- + static uint32_t lastNeopixelBluelightTime = millis(); + + if (millis() - lastNeopixelTime > 20) { // Every 20 ms + lastNeopixelTime = millis(); + if (blueLightTrigger) { + if (millis() - lastNeopixelBluelightTime > 0) { // Step 1 + rgbLEDs[0] = CRGB::Red; + rgbLEDs[1] = CRGB::Blue; + rgbLEDs[3] = CRGB::Red; + rgbLEDs[4] = CRGB::Blue; + rgbLEDs[6] = CRGB::Red; + rgbLEDs[7] = CRGB::Blue; + } + if (millis() - lastNeopixelBluelightTime > 80) { // Step 2 + fill_solid(rgbLEDs, NEOPIXEL_COUNT, CRGB::Black); + } + if (millis() - lastNeopixelBluelightTime > 300) { // Step 3 + rgbLEDs[0] = CRGB::Blue; + rgbLEDs[1] = CRGB::Red; + rgbLEDs[3] = CRGB::Blue; + rgbLEDs[4] = CRGB::Red; + rgbLEDs[6] = CRGB::Blue; + rgbLEDs[7] = CRGB::Red; + } + if (millis() - lastNeopixelBluelightTime > 380) { // Step 4 + fill_solid(rgbLEDs, NEOPIXEL_COUNT, CRGB::Black); + } + if (millis() - lastNeopixelBluelightTime > 600) { // Step 5 + lastNeopixelBluelightTime = millis(); + } + } + else fill_solid(rgbLEDs, NEOPIXEL_COUNT, CRGB::Black); // Off + } +#endif + +#ifdef NEOPIXEL_HIGHBEAM // Neopixel bar is used as high beam as well -------------------- + static uint32_t lastNeopixelHighbeamTime = millis(); + if (millis() - lastNeopixelHighbeamTime > 20) { // Every 20 ms + lastNeopixelHighbeamTime = millis(); + + if (!knightRiderLatch && !sirenTrigger && !blueLightTrigger) { + if (headLightsHighBeamOn || headLightsFlasherOn) fill_solid(rgbLEDs, NEOPIXEL_COUNT, CRGB::White); + else fill_solid(rgbLEDs, NEOPIXEL_COUNT, CRGB::Black); } - FastLED.show(); } #endif @@ -4014,7 +4126,7 @@ void updateRGBLEDs() { rgbLEDs[i] = CHSV(hue, hue < 255 ? 255 : 0, hue > 0 ? 255 : 0); } } - else if (hue >= 235 && hue < 250) { // colors red-white-red -> flag color for Austria ;-) + else if (hue >= 235 && hue < 250) { // colors red-white-red -> flag color of Austria ;-) rgbLEDs[0] = CRGB::Red; rgbLEDs[1] = CRGB::White; rgbLEDs[2] = CRGB::Red; @@ -4022,9 +4134,15 @@ void updateRGBLEDs() { else { fill_solid(rgbLEDs, NEOPIXEL_COUNT, CRGB::White); // only white } - FastLED.show(); } #endif + + // Neopixel refresh for all option above ------------------------------------------------ + static uint32_t lastNeopixelRefreshTime = millis(); + if (millis() - lastNeopixelRefreshTime > 20) { // Every 20 ms + lastNeopixelRefreshTime = millis(); + FastLED.show(); + } } // @@ -4210,14 +4328,10 @@ void trailerControl() { // This will confirm if a message was SENT successfully (callback will later check if RECEIVED and by whom). Serial.printf("ESP-NOW data sent: %s\n", result == ESP_NOW_SEND_SUCCESS ? "OK" : "FAILED"); - #endif - } } - #endif - } // diff --git a/src/src/curves.h b/src/src/curves.h index d69ca12..2945ebb 100644 --- a/src/src/curves.h +++ b/src/src/curves.h @@ -41,7 +41,7 @@ uint8_t torqueconverterSlipPercentage = 100; // Use it, if your vecicle does't have a real shifting transmission and you still want to shift // your gears manually, using the 3 position switch #if defined VIRTUAL_3_SPEED -int32_t virtualManualGearRatio[4] = {10, 23, 14, 10}; // unused, 1st, 2nd, 3rd gear 23, 14, 10 +int32_t virtualManualGearRatio[5] = {10, 23, 14, 10, 8}; // unused, 1st, 2nd, 3rd, (4rd overdrive) gear 23, 14, 10, 8 #endif // Virtual 16 speed sequential transmission gear ratios (times 10!, for example 15 means 1.5) ---------------- diff --git a/src/vehicles/DefenderTd5.h b/src/vehicles/DefenderTd5.h index e7d81e3..eeac74a 100644 --- a/src/vehicles/DefenderTd5.h +++ b/src/vehicles/DefenderTd5.h @@ -84,13 +84,14 @@ volatile int hornVolumePercentage = 100; // Adjust the horn volume (usually = 10 // Choose the siren / additional horn sound (uncomment the one you want) -------- volatile int sirenVolumePercentage = 100; // Adjust the siren volume (usually = 100%) -#include "sounds/sirenDummy.h" // If you don't want siren sound +//#include "sounds/sirenDummy.h" // If you don't want siren sound //#include "sounds/UsPoliceSiren.h" // US Police siren //#include "sounds/FireTruckAirSiren.h" // US fire truck air siren (King Hauler) //#include "sounds/FeuerwehrMartinshorn.h" // European Feuerwehr Martinshorn //#include "sounds/IrishFireEngineHorn.h" // Irish fire truck horn //#include "sounds/siren01norskere22.h" // Norwegian siren //#include "sounds/PostAutoHorn.h" // The typical Swiss post bus horn +#include "sounds/BritishNationalAnthemSiren.h" // The British national anthem ;-) // Choose the air brake release sound (uncomment the one you want) -------- volatile int brakeVolumePercentage = 200; // Adjust the brake volume (usually = 200%) @@ -134,9 +135,9 @@ const boolean doubleFlashBlueLight = true; // double flash blue lights if "true" // Acceleration & deceleration settings ---------------------------------------------------------------------------------- const uint8_t escRampTimeFirstGear = 20; // determines, how fast the acceleration and deceleration happens (about 15 - 25, 20 for King Hauler) -const uint8_t escRampTimeSecondGear = 80; // 50 for King Hauler (this value is always in use for automatic transmission, about 80) +const uint8_t escRampTimeSecondGear = 50; // 50 for King Hauler (this value is always in use for automatic transmission, about 80) const uint8_t escRampTimeThirdGear = 75; // 75 for King Hauler -const uint8_t escBrakeSteps = 30; // determines, how fast the ESC is able to brake down (20 - 30, 30 for King Hauler) +const uint8_t escBrakeSteps = 45; // determines, how fast the ESC is able to brake down (20 - 30, 30 for King Hauler) const uint8_t escAccelerationSteps = 3; // determines, how fast the ESC is able to accelerate (2 - 3, 3 for King Hauler) // Gearbox parameters (select number of automatic gears in curves.h)----------------------------------------------------- diff --git a/src/vehicles/DefenderV8OpenPipe.h b/src/vehicles/DefenderV8OpenPipe.h index 26998b3..a09803a 100644 --- a/src/vehicles/DefenderV8OpenPipe.h +++ b/src/vehicles/DefenderV8OpenPipe.h @@ -164,7 +164,7 @@ uint16_t clutchEngagingPoint = 100; // CEP. The "clutch" is engaging above this // Engine parameters ---------------------------------------------------------------------------------------------------- // Engine max. RPM in % of idle RPM. About 200% for big Diesels, 390% for fast running motors. -uint32_t MAX_RPM_PERCENTAGE = 330; // NOTE! Was called TOP_SPEED_MULTIPLIER (TSM) in earlier versions and was a multiplier instead of a percentage! +uint32_t MAX_RPM_PERCENTAGE = 300; // NOTE! Was called TOP_SPEED_MULTIPLIER (TSM) in earlier versions and was a multiplier instead of a percentage! // Engine mass simulation const int8_t acc = 2; // Acceleration step (2) 1 = slow for locomotive engine, 9 = fast for trophy truck diff --git a/src/vehicles/JeepWranglerRubicon392V8_2.h b/src/vehicles/JeepWranglerRubicon392V8_2.h index 5f6c240..b532ae2 100644 --- a/src/vehicles/JeepWranglerRubicon392V8_2.h +++ b/src/vehicles/JeepWranglerRubicon392V8_2.h @@ -93,7 +93,7 @@ volatile int hornVolumePercentage = 100; // Adjust the horn volume (usually = 10 //#include "sounds/2ToneTruckHorn.h" // A 2 tone truck horn // Choose the siren / additional horn sound (uncomment the one you want) -------- -volatile int sirenVolumePercentage = 60; // Adjust the siren volume (usually = 100%) +volatile int sirenVolumePercentage = 30; // Adjust the siren volume (usually = 100%) //#include "sounds/sirenDummy.h" // If you don't want siren sound //#include "sounds/UsPoliceSiren.h" // US Police siren //#include "sounds/FireTruckAirSiren.h" // US fire truck air siren (King Hauler) diff --git a/src/vehicles/URAL375.h b/src/vehicles/URAL375.h index a8c7202..5fcfb63 100644 --- a/src/vehicles/URAL375.h +++ b/src/vehicles/URAL375.h @@ -17,13 +17,14 @@ volatile int fullThrottleVolumePercentage = 130; // Volume Percentage while full // Choose the motor revving sound (uncomment the one you want) -------- #define REV_SOUND // uncomment this, if you want to use the separate, optional rev sound -volatile int revVolumePercentage = 150; // Adjust the idle volume (usually = 100%, more also working, depending on sound) +volatile int revVolumePercentage = 150; // Adjust the idle volume (usually = 100%, more also working, depending on sound) 150 volatile int engineRevVolumePercentage = 55; // the engine volume will be throttle dependent (usually = 40%, never more than 100%!) 50 volatile const uint16_t revSwitchPoint = 150; // The rev sound is played instead of the idle sound above this point volatile const uint16_t idleEndPoint = 400; // above this point, we have 100% rev and 0% idle sound volume (usually 500, min. 50 more than revSwitchPoint) volatile const uint16_t idleVolumeProportionPercentage = 100; // The idle sound volume proportion (rest is rev proportion) below "revSwitchPoint" (about 90 - 100%, never more than 100) #ifdef REV_SOUND #include "sounds/URAL375rev.h" // Ural 375D +//#include "sounds/URAL375rev3.h" // Ural 375D #endif // Choose the jake brake sound (uncomment the one you want) -------- diff --git a/src/vehicles/sounds/URAL375rev2.h b/src/vehicles/sounds/URAL375rev2.h new file mode 100644 index 0000000..f38ce98 --- /dev/null +++ b/src/vehicles/sounds/URAL375rev2.h @@ -0,0 +1,212 @@ +const unsigned int revSampleRate = 22050; +const unsigned int revSampleCount = 3335; +const signed char revSamples[] = {//0 +0, -1, -1, -2, -3, -2, -2, -1, -1, 0, 0, 1, 3, 3, 4, 4, //16 +6, 10, 10, 10, 10, 10, 10, 13, 14, 13, 13, 12, 12, 14, 16, 16, //32 +16, 15, 12, 10, 9, 9, 11, 14, 15, 14, 12, 9, 8, 9, 9, 7, //48 +3, 1, 1, 1, 1, 1, 0, 0, 0, -1, -2, -4, -6, -6, -4, -1, //64 +-2, -4, -6, -7, -6, -6, -7, -9, -12, -15, -16, -15, -14, -14, -16, -17, //80 +-20, -19, -16, -16, -16, -17, -17, -17, -16, -14, -14, -14, -15, -14, -13, -10, //96 +-7, -9, -11, -11, -9, -7, -4, -4, -5, -6, -7, -7, -5, -3, -2, -3, //112 +-2, -3, 1, 5, 10, 12, 12, 12, 12, 12, 13, 14, 13, 15, 17, 19, //128 +21, 22, 22, 23, 25, 25, 24, 25, 27, 29, 32, 32, 33, 34, 36, 37, //144 +38, 39, 40, 38, 38, 39, 40, 42, 43, 43, 43, 44, 46, 49, 49, 49, //160 +48, 47, 47, 50, 55, 55, 53, 50, 48, 48, 52, 54, 55, 56, 54, 52, //176 +52, 53, 54, 55, 56, 57, 57, 57, 56, 57, 58, 58, 58, 57, 56, 57, //192 +56, 58, 59, 60, 61, 61, 59, 57, 55, 55, 56, 59, 59, 57, 54, 52, //208 +52, 54, 55, 52, 50, 48, 48, 51, 50, 49, 49, 49, 50, 50, 50, 51, //224 +50, 48, 47, 46, 45, 46, 47, 45, 42, 38, 35, 34, 34, 35, 37, 37, //240 +34, 30, 27, 24, 23, 25, 27, 26, 24, 18, 14, 13, 14, 14, 16, 14, //256 +9, 5, 2, 3, 4, 5, 2, -3, -7, -8, -6, -4, -3, -6, -11, -16, //272 +-17, -17, -17, -19, -21, -22, -26, -26, -27, -28, -30, -33, -36, -38, -38, -38, //288 +-38, -37, -39, -41, -44, -47, -45, -43, -41, -42, -46, -51, -55, -54, -51, -47, //304 +-46, -48, -55, -60, -62, -59, -55, -54, -56, -60, -63, -64, -63, -60, -60, -60, //320 +-63, -66, -66, -61, -56, -55, -57, -59, -63, -62, -58, -55, -53, -53, -55, -56, //336 +-57, -56, -54, -52, -52, -53, -55, -56, -57, -55, -53, -50, -48, -48, -48, -48, //352 +-48, -47, -46, -45, -46, -45, -47, -46, -43, -39, -37, -37, -39, -42, -44, -41, //368 +-35, -32, -32, -33, -33, -32, -27, -25, -25, -27, -27, -25, -21, -18, -16, -15, //384 +-15, -15, -15, -12, -8, -5, -2, -5, -7, -8, -9, -7, -3, 0, 1, 1, //400 +1, 1, 2, 4, 5, 5, 4, 3, 2, 3, 5, 8, 10, 9, 9, 8, //416 +7, 8, 9, 10, 10, 9, 8, 9, 11, 14, 15, 13, 11, 11, 10, 10, //432 +11, 12, 12, 10, 8, 6, 6, 7, 8, 6, 4, 4, 4, 4, 6, 5, //448 +5, 5, 5, 5, 4, 4, 3, 2, 3, 4, 1, 0, -1, -1, -1, 2, //464 +6, 6, 6, 5, 3, 2, 4, 4, 4, 3, 2, 1, 1, 2, 4, 6, //480 +6, 5, 3, 1, 2, 5, 7, 7, 6, 5, 5, 5, 6, 7, 6, 5, //496 +3, 2, 0, 0, 1, 2, 3, 2, 1, 1, 2, 3, 4, 2, -2, -6, //512 +-6, -5, -2, -1, -3, -6, -7, -8, -9, -10, -10, -10, -10, -10, -12, -11, //528 +-12, -12, -13, -14, -13, -15, -14, -13, -14, -14, -14, -15, -13, -11, -12, -13, //544 +-16, -18, -19, -18, -18, -18, -18, -18, -16, -15, -14, -11, -9, -8, -7, -9, //560 +-9, -6, -1, 3, 5, 6, 7, 10, 13, 15, 16, 19, 23, 25, 27, 28, //576 +28, 32, 35, 39, 42, 45, 46, 48, 50, 52, 55, 58, 60, 64, 67, 70, //592 +73, 74, 74, 76, 78, 81, 83, 84, 86, 87, 89, 90, 88, 88, 92, 96, //608 +99, 100, 98, 95, 95, 95, 96, 96, 96, 97, 96, 95, 93, 91, 90, 89, //624 +86, 83, 81, 81, 80, 78, 75, 71, 69, 68, 66, 65, 63, 59, 55, 47, //640 +44, 43, 42, 42, 41, 38, 34, 29, 25, 22, 20, 16, 14, 11, 7, 4, //656 +1, 1, 0, -3, -7, -12, -16, -17, -17, -17, -17, -18, -23, -27, -28, -28, //672 +-25, -26, -29, -33, -38, -38, -35, -31, -31, -33, -36, -37, -36, -33, -32, -31, //688 +-31, -33, -36, -37, -36, -34, -31, -30, -32, -31, -31, -31, -30, -29, -27, -26, //704 +-27, -29, -31, -30, -28, -28, -28, -28, -28, -27, -25, -23, -21, -21, -22, -26, //720 +-27, -25, -23, -21, -22, -23, -24, -26, -27, -28, -29, -30, -30, -32, -34, -34, //736 +-34, -34, -36, -39, -42, -45, -47, -48, -47, -46, -48, -51, -54, -56, -57, -56, //752 +-58, -59, -61, -63, -66, -68, -71, -72, -73, -75, -77, -78, -79, -79, -79, -79, //768 +-81, -85, -86, -85, -83, -81, -81, -82, -84, -84, -84, -83, -81, -79, -79, -80, //784 +-80, -80, -76, -73, -69, -68, -67, -66, -64, -62, -60, -57, -52, -49, -46, -44, //800 +-44, -41, -37, -34, -34, -35, -34, -31, -27, -21, -19, -17, -18, -19, -18, -14, //816 +-9, -6, -4, -4, -5, -3, 1, 4, 7, 8, 9, 9, 9, 9, 12, 17, //832 +22, 23, 23, 23, 23, 24, 25, 24, 25, 24, 23, 22, 23, 25, 26, 25, //848 +23, 22, 22, 24, 25, 25, 25, 22, 20, 19, 18, 17, 18, 20, 20, 18, //864 +14, 10, 9, 11, 13, 14, 11, 7, 7, 8, 10, 8, 5, 1, 1, 2, //880 +3, 2, 1, -1, -3, -4, -5, -4, -3, -3, -3, -4, -4, -6, -8, -9, //896 +-7, -5, -5, -6, -6, -6, -6, -6, -5, -5, -5, -5, -5, -5, -4, -3, //912 +-1, -1, -2, -2, 0, 3, 6, 7, 6, 4, 4, 7, 12, 14, 16, 16, //928 +12, 11, 13, 17, 20, 23, 25, 24, 26, 26, 27, 31, 32, 32, 30, 29, //944 +31, 33, 34, 36, 39, 40, 42, 43, 43, 43, 44, 47, 49, 49, 49, 48, //960 +48, 49, 52, 54, 55, 55, 55, 54, 54, 55, 57, 59, 59, 58, 57, 56, //976 +54, 54, 54, 54, 55, 56, 57, 58, 57, 54, 53, 55, 56, 57, 59, 58, //992 +56, 55, 55, 54, 53, 52, 51, 49, 49, 48, 48, 50, 52, 50, 48, 44, //1008 +44, 44, 45, 46, 45, 44, 42, 41, 41, 42, 45, 47, 46, 44, 40, 36, //1024 +33, 34, 36, 38, 38, 36, 36, 36, 36, 37, 37, 37, 35, 31, 30, 32, //1040 +33, 34, 33, 32, 29, 27, 28, 29, 30, 28, 25, 22, 22, 24, 26, 27, //1056 +27, 25, 19, 16, 15, 15, 17, 18, 17, 15, 13, 11, 8, 6, 5, 4, //1072 +3, 2, 0, -1, -2, -4, -4, -7, -11, -14, -17, -16, -15, -14, -17, -19, //1088 +-22, -25, -28, -29, -31, -34, -38, -42, -44, -44, -44, -45, -46, -49, -53, -57, //1104 +-61, -64, -64, -65, -65, -65, -65, -66, -67, -69, -74, -77, -82, -85, -85, -84, //1120 +-81, -81, -83, -86, -89, -92, -95, -95, -94, -93, -91, -91, -92, -91, -90, -89, //1136 +-88, -89, -89, -91, -91, -90, -89, -88, -88, -89, -90, -89, -84, -82, -82, -83, //1152 +-84, -85, -83, -79, -77, -74, -73, -72, -74, -75, -74, -72, -70, -68, -67, -65, //1168 +-63, -62, -61, -59, -58, -57, -56, -55, -53, -51, -48, -46, -45, -44, -42, -40, //1184 +-36, -33, -31, -31, -32, -32, -32, -30, -28, -25, -23, -23, -23, -24, -24, -21, //1200 +-19, -17, -18, -19, -17, -14, -11, -10, -9, -8, -9, -9, -8, -6, -6, -6, //1216 +-3, -2, -3, -3, -1, 1, 2, 4, 4, 4, 3, 2, 4, 6, 8, 10, //1232 +10, 8, 7, 7, 9, 11, 12, 12, 13, 14, 17, 20, 21, 20, 19, 18, //1248 +19, 21, 26, 27, 26, 25, 24, 23, 23, 24, 24, 22, 20, 16, 17, 20, //1264 +23, 25, 23, 21, 20, 19, 21, 24, 25, 26, 27, 27, 27, 26, 26, 26, //1280 +27, 26, 25, 24, 23, 24, 26, 27, 28, 28, 27, 26, 26, 27, 28, 28, //1296 +28, 27, 27, 28, 28, 28, 28, 28, 27, 27, 27, 30, 31, 31, 30, 29, //1312 +31, 31, 31, 31, 31, 31, 31, 31, 32, 32, 31, 31, 30, 29, 30, 31, //1328 +33, 31, 29, 29, 27, 28, 29, 29, 30, 33, 34, 34, 31, 30, 29, 31, //1344 +33, 33, 33, 33, 33, 34, 35, 36, 37, 36, 34, 33, 33, 36, 37, 36, //1360 +34, 31, 30, 31, 33, 35, 38, 38, 37, 36, 35, 35, 36, 38, 39, 39, //1376 +38, 38, 40, 42, 45, 46, 44, 43, 43, 43, 44, 45, 46, 46, 45, 44, //1392 +45, 47, 49, 49, 48, 48, 47, 45, 44, 45, 47, 52, 54, 54, 53, 52, //1408 +52, 52, 52, 52, 52, 51, 53, 52, 50, 47, 46, 44, 43, 42, 42, 42, //1424 +42, 43, 43, 43, 43, 43, 42, 41, 41, 40, 38, 38, 37, 34, 33, 32, //1440 +32, 32, 31, 29, 26, 24, 22, 22, 23, 23, 22, 21, 19, 17, 17, 16, //1456 +13, 10, 6, 4, 4, 3, 1, -2, -3, -6, -7, -8, -9, -9, -9, -10, //1472 +-13, -16, -16, -15, -15, -16, -17, -19, -21, -23, -23, -22, -22, -22, -22, -23, //1488 +-24, -26, -28, -29, -31, -32, -32, -32, -32, -33, -33, -33, -34, -35, -37, -37, //1504 +-37, -37, -37, -36, -34, -33, -34, -36, -39, -41, -42, -42, -42, -42, -43, -44, //1520 +-46, -48, -47, -45, -42, -41, -43, -48, -50, -50, -48, -47, -46, -48, -48, -49, //1536 +-50, -50, -50, -50, -49, -49, -49, -49, -48, -49, -50, -50, -50, -51, -54, -54, //1552 +-55, -56, -57, -59, -60, -60, -61, -62, -61, -61, -62, -61, -59, -59, -58, -58, //1568 +-57, -56, -57, -56, -57, -56, -57, -59, -59, -59, -59, -58, -57, -56, -57, -56, //1584 +-58, -58, -57, -56, -55, -54, -55, -56, -56, -54, -51, -49, -49, -48, -47, -47, //1600 +-46, -44, -43, -41, -37, -33, -30, -29, -30, -30, -29, -27, -22, -19, -17, -17, //1616 +-19, -19, -16, -13, -10, -10, -12, -13, -12, -9, -7, -5, -4, -1, 1, 2, //1632 +3, 4, 4, 5, 6, 8, 9, 11, 13, 12, 11, 12, 16, 19, 21, 21, //1648 +21, 21, 22, 27, 29, 32, 31, 29, 26, 22, 21, 22, 23, 23, 23, 22, //1664 +22, 22, 24, 25, 26, 27, 27, 27, 26, 25, 23, 23, 23, 24, 25, 25, //1680 +24, 21, 19, 17, 17, 17, 17, 16, 15, 14, 12, 10, 10, 8, 6, 6, //1696 +7, 6, 6, 5, 4, 4, 4, 3, 2, 1, -1, -1, 1, 1, 1, 0, //1712 +-3, -5, -8, -11, -11, -12, -13, -12, -11, -11, -11, -11, -11, -11, -12, -13, //1728 +-14, -16, -16, -15, -14, -12, -13, -14, -16, -17, -18, -20, -19, -18, -19, -17, //1744 +-17, -17, -14, -13, -11, -12, -13, -13, -14, -15, -13, -11, -11, -12, -13, -15, //1760 +-15, -14, -13, -11, -6, -5, -4, -4, -4, -3, 0, 2, 4, 3, 2, 0, //1776 +0, 2, 4, 8, 12, 16, 16, 14, 12, 13, 14, 17, 18, 20, 23, 24, //1792 +26, 29, 30, 29, 30, 29, 33, 37, 39, 40, 39, 40, 41, 40, 42, 42, //1808 +42, 42, 44, 45, 48, 52, 54, 57, 56, 53, 52, 53, 56, 59, 58, 55, //1824 +53, 54, 57, 58, 56, 54, 53, 51, 50, 52, 54, 56, 58, 57, 54, 54, //1840 +55, 56, 57, 58, 55, 52, 50, 48, 49, 49, 49, 48, 48, 46, 42, 39, //1856 +39, 39, 38, 38, 39, 43, 43, 41, 39, 37, 34, 33, 32, 30, 28, 26, //1872 +22, 21, 21, 21, 20, 18, 15, 14, 14, 13, 13, 17, 18, 19, 19, 17, //1888 +15, 14, 12, 13, 14, 13, 12, 9, 7, 7, 4, 3, 5, 6, 5, 3, //1904 +1, -1, -1, -1, 2, 4, 3, -1, -6, -8, -11, -10, -10, -10, -11, -12, //1920 +-13, -14, -13, -12, -13, -15, -16, -15, -14, -12, -12, -12, -12, -13, -14, -13, //1936 +-13, -15, -18, -22, -25, -24, -21, -20, -20, -23, -27, -28, -28, -28, -26, -27, //1952 +-29, -31, -32, -34, -35, -32, -32, -34, -36, -38, -39, -39, -38, -38, -37, -37, //1968 +-38, -40, -43, -45, -46, -46, -48, -49, -50, -50, -48, -46, -46, -49, -51, -52, //1984 +-51, -48, -46, -44, -43, -44, -45, -48, -50, -51, -50, -48, -49, -50, -52, -54, //2000 +-53, -52, -47, -43, -41, -42, -44, -44, -44, -44, -43, -42, -41, -41, -41, -40, //2016 +-39, -40, -41, -41, -38, -36, -33, -31, -31, -30, -29, -29, -27, -26, -23, -22, //2032 +-22, -23, -24, -25, -23, -19, -16, -16, -18, -21, -21, -18, -14, -13, -11, -10, //2048 +-12, -12, -9, -6, -3, -1, -2, -4, -4, -4, -1, 1, 3, 5, 5, 4, //2064 +4, 5, 7, 8, 9, 11, 11, 12, 13, 14, 13, 10, 9, 9, 9, 11, //2080 +14, 15, 15, 14, 14, 12, 10, 10, 10, 11, 11, 10, 9, 9, 11, 12, //2096 +12, 12, 9, 7, 7, 7, 9, 11, 11, 9, 8, 10, 10, 12, 11, 10, //2112 +8, 6, 6, 8, 11, 11, 9, 8, 7, 6, 7, 8, 10, 10, 10, 9, //2128 +8, 10, 11, 12, 13, 13, 11, 10, 7, 6, 7, 6, 5, 5, 6, 7, //2144 +8, 9, 9, 8, 9, 10, 11, 12, 13, 14, 15, 15, 15, 15, 16, 17, //2160 +18, 18, 16, 15, 15, 17, 19, 21, 20, 17, 15, 15, 16, 18, 20, 18, //2176 +16, 15, 16, 17, 18, 19, 18, 18, 17, 17, 16, 16, 17, 17, 17, 16, //2192 +16, 15, 15, 17, 18, 18, 19, 18, 17, 18, 18, 20, 21, 20, 18, 16, //2208 +16, 17, 18, 19, 20, 20, 18, 17, 17, 18, 18, 17, 17, 17, 17, 18, //2224 +18, 20, 22, 23, 23, 23, 24, 26, 26, 26, 28, 27, 26, 25, 23, 20, //2240 +20, 20, 20, 19, 18, 16, 16, 17, 17, 18, 20, 21, 21, 20, 19, 17, //2256 +17, 21, 23, 25, 26, 24, 19, 16, 15, 15, 18, 20, 22, 20, 18, 16, //2272 +15, 15, 16, 17, 17, 17, 16, 12, 11, 11, 11, 11, 11, 10, 8, 5, //2288 +4, 3, 1, 2, 3, 2, 2, 1, -2, -2, 0, 2, 3, 5, 3, 0, //2304 +-2, -3, -2, -2, -3, -7, -9, -12, -13, -12, -11, -10, -10, -10, -10, -11, //2320 +-14, -16, -15, -14, -12, -13, -16, -15, -14, -13, -14, -13, -14, -17, -18, -16, //2336 +-16, -17, -18, -19, -18, -16, -15, -14, -13, -12, -12, -11, -10, -10, -10, -11, //2352 +-14, -13, -13, -12, -12, -11, -10, -9, -7, -4, -3, -3, -5, -6, -7, -8, //2368 +-9, -10, -10, -10, -10, -11, -12, -13, -16, -17, -18, -19, -18, -16, -15, -15, //2384 +-14, -13, -16, -17, -17, -17, -18, -19, -18, -17, -16, -16, -17, -18, -22, -23, //2400 +-23, -20, -19, -18, -20, -23, -25, -27, -27, -27, -25, -24, -25, -27, -29, -31, //2416 +-30, -28, -27, -27, -31, -34, -37, -36, -36, -35, -34, -34, -32, -32, -33, -36, //2432 +-39, -41, -40, -38, -35, -32, -30, -28, -27, -27, -30, -30, -28, -27, -27, -28, //2448 +-29, -30, -29, -27, -23, -20, -21, -21, -20, -19, -16, -14, -14, -13, -15, -14, //2464 +-12, -9, -6, -6, -6, -7, -7, -7, -5, -4, -3, -2, -2, -4, -4, -3, //2480 +-1, 1, 4, 10, 10, 10, 9, 8, 9, 11, 12, 13, 13, 12, 12, 12, //2496 +12, 12, 13, 15, 16, 15, 13, 11, 9, 9, 9, 9, 8, 9, 10, 10, //2512 +11, 10, 10, 9, 9, 10, 11, 12, 12, 11, 11, 9, 7, 8, 7, 6, //2528 +5, 5, 5, 4, 4, 3, 1, -1, -4, -6, -5, -1, -1, -2, -4, -6, //2544 +-6, -5, -4, -4, -5, -9, -15, -16, -16, -16, -15, -12, -14, -17, -19, -22, //2560 +-24, -23, -21, -20, -19, -18, -19, -21, -21, -20, -19, -20, -22, -22, -22, -22, //2576 +-21, -21, -21, -24, -26, -25, -24, -23, -25, -27, -27, -25, -24, -23, -21, -22, //2592 +-23, -24, -24, -23, -20, -18, -18, -19, -19, -18, -19, -17, -17, -18, -18, -17, //2608 +-16, -16, -14, -13, -14, -15, -14, -14, -12, -9, -6, -7, -8, -9, -9, -9, //2624 +-9, -7, -4, -2, -1, -2, -2, -2, -3, -2, 0, 0, -1, -2, -4, -2, //2640 +0, 4, 5, 6, 8, 9, 12, 14, 14, 13, 11, 11, 12, 13, 14, 17, //2656 +18, 19, 19, 18, 20, 23, 24, 27, 28, 28, 27, 27, 28, 28, 29, 31, //2672 +31, 31, 32, 32, 33, 34, 36, 38, 38, 40, 42, 43, 44, 46, 48, 49, //2688 +48, 48, 48, 48, 50, 50, 50, 50, 49, 49, 50, 51, 53, 53, 53, 54, //2704 +54, 54, 54, 55, 55, 56, 60, 61, 61, 61, 58, 56, 54, 54, 55, 56, //2720 +57, 56, 52, 51, 50, 49, 53, 54, 54, 54, 53, 52, 52, 53, 53, 53, //2736 +52, 48, 46, 45, 45, 43, 43, 44, 43, 41, 39, 37, 34, 34, 35, 34, //2752 +33, 33, 32, 31, 29, 26, 26, 26, 28, 27, 26, 25, 23, 22, 22, 21, //2768 +20, 18, 16, 15, 13, 11, 10, 10, 12, 12, 13, 15, 14, 13, 10, 8, //2784 +7, 8, 9, 8, 10, 9, 8, 6, 5, 3, 0, -1, -2, -3, -4, -5, //2800 +-5, -4, -3, -2, -2, -2, -2, -4, -5, -5, -4, -4, -4, -4, -4, -6, //2816 +-7, -7, -6, -6, -6, -6, -4, -4, -5, -5, -5, -7, -7, -8, -9, -9, //2832 +-10, -13, -13, -10, -9, -8, -10, -13, -16, -17, -18, -17, -12, -10, -10, -11, //2848 +-12, -16, -17, -17, -15, -14, -15, -15, -16, -18, -21, -23, -23, -23, -23, -25, //2864 +-28, -28, -29, -30, -29, -30, -29, -28, -28, -28, -29, -31, -30, -29, -29, -28, //2880 +-27, -27, -27, -28, -32, -35, -36, -34, -35, -36, -37, -37, -38, -39, -40, -42, //2896 +-44, -45, -46, -45, -43, -43, -43, -43, -44, -46, -48, -50, -51, -52, -51, -52, //2912 +-53, -53, -54, -55, -55, -56, -57, -59, -59, -60, -61, -62, -63, -64, -64, -65, //2928 +-65, -65, -64, -65, -65, -65, -66, -68, -69, -69, -68, -66, -64, -64, -65, -65, //2944 +-66, -67, -66, -66, -66, -66, -66, -67, -68, -68, -67, -66, -63, -59, -58, -59, //2960 +-59, -60, -61, -58, -57, -55, -53, -52, -51, -52, -51, -50, -49, -47, -45, -44, //2976 +-44, -45, -45, -43, -42, -40, -38, -38, -37, -37, -37, -35, -31, -29, -27, -26, //2992 +-26, -26, -27, -27, -27, -26, -25, -25, -25, -25, -25, -25, -25, -25, -25, -26, //3008 +-26, -25, -24, -22, -20, -20, -20, -20, -20, -20, -20, -20, -20, -19, -17, -17, //3024 +-18, -21, -21, -21, -20, -17, -14, -12, -12, -13, -14, -16, -16, -15, -14, -13, //3040 +-12, -13, -14, -11, -8, -5, -3, -3, -4, -4, -2, 0, 4, 8, 10, 10, //3056 +10, 14, 17, 23, 28, 30, 32, 35, 37, 39, 41, 45, 48, 51, 53, 55, //3072 +56, 57, 60, 63, 67, 72, 77, 80, 82, 84, 85, 87, 89, 92, 96, 100, //3088 +102, 103, 105, 107, 108, 112, 114, 116, 118, 118, 118, 119, 121, 124, 126, 127, //3104 +124, 122, 121, 120, 120, 121, 122, 120, 117, 115, 112, 112, 114, 113, 112, 110, //3120 +108, 107, 107, 107, 105, 103, 101, 96, 93, 90, 89, 88, 87, 86, 83, 78, //3136 +75, 71, 68, 65, 63, 62, 60, 58, 56, 53, 50, 47, 44, 41, 39, 38, //3152 +38, 37, 36, 31, 27, 24, 21, 20, 19, 17, 15, 13, 9, 8, 9, 10, //3168 +11, 10, 9, 7, 4, 4, 5, 4, 4, 3, 0, -1, 0, 1, 2, 2, //3184 +3, 4, 5, 4, 3, 4, 4, 4, 3, 2, 2, 4, 5, 6, 6, 3, //3200 +2, 1, 3, 6, 10, 12, 9, 5, 4, 4, 4, 6, 6, 5, 4, 3, //3216 +2, 2, 4, 4, 2, -1, -2, -4, -4, -5, -7, -8, -10, -13, -15, -15, //3232 +-15, -17, -22, -26, -28, -29, -30, -29, -29, -31, -33, -37, -40, -41, -44, -47, //3248 +-48, -52, -55, -58, -60, -61, -63, -65, -67, -69, -71, -72, -74, -77, -79, -82, //3264 +-84, -86, -85, -84, -86, -86, -88, -90, -93, -94, -96, -96, -96, -95, -95, -96, //3280 +-96, -97, -97, -97, -98, -98, -97, -95, -94, -93, -91, -91, -91, -91, -90, -87, //3296 +-84, -79, -78, -79, -78, -76, -71, -67, -63, -61, -60, -61, -61, -59, -57, -54, //3312 +-50, -47, -43, -44, -44, -41, -38, -31, -27, -25, -22, -18, -15, -10, -9, -8, //3328 +-6, -5, -4, -3, -1, -1, 0, }; diff --git a/src/vehicles/sounds/URAL375rev3.h b/src/vehicles/sounds/URAL375rev3.h new file mode 100644 index 0000000..e63bf7b --- /dev/null +++ b/src/vehicles/sounds/URAL375rev3.h @@ -0,0 +1,211 @@ +const unsigned int revSampleRate = 22050; +const unsigned int revSampleCount = 3319; +const signed char revSamples[] = {//0 +0, 0, 0, 1, 1, 1, 3, 2, 2, 3, 3, 4, 8, 11, 14, 17, //16 +21, 20, 20, 21, 23, 29, 33, 33, 37, 41, 43, 46, 51, 54, 51, 50, //32 +50, 51, 58, 61, 59, 58, 58, 60, 61, 67, 76, 80, 83, 87, 94, 97, //48 +103, 108, 109, 110, 104, 105, 110, 108, 108, 107, 103, 104, 100, 94, 91, 85, //64 +84, 81, 78, 77, 75, 77, 76, 79, 85, 81, 82, 83, 86, 86, 74, 67, //80 +69, 69, 75, 74, 72, 71, 63, 62, 57, 50, 51, 46, 41, 38, 37, 39, //96 +37, 33, 37, 35, 32, 33, 25, 14, 14, 16, 11, 7, 5, 6, 9, 12, //112 +11, 9, 7, 8, 12, 10, 7, 11, 11, 9, 7, 8, 9, 10, 14, 16, //128 +11, 4, 3, -3, -15, -16, -12, -13, -14, -12, -10, -8, -7, -10, -11, -7, //144 +-10, -6, 0, -9, 0, 5, -3, -9, -11, -9, -7, -10, -7, -2, 0, -7, //160 +-6, -2, -11, -17, -14, -17, -12, -1, 5, 6, 8, 14, 10, 9, 17, 21, //176 +26, 27, 26, 32, 31, 30, 34, 30, 25, 21, 16, 21, 23, 22, 26, 28, //192 +27, 30, 32, 32, 35, 40, 39, 39, 40, 38, 41, 49, 54, 55, 51, 51, //208 +57, 58, 43, 38, 36, 30, 26, 21, 11, 13, 16, 10, 11, 15, 9, 10, //224 +15, 16, 16, 23, 25, 23, 24, 21, 21, 24, 16, 9, 4, -4, -3, -2, //240 +-5, -4, 2, 6, 5, 3, 2, 7, 10, 6, 5, 6, 8, 7, 2, 8, //256 +14, 10, 9, 9, 5, 8, 3, -3, -6, -13, -26, -30, -31, -32, -31, -28, //272 +-28, -28, -28, -28, -20, -10, -18, -20, -17, -16, -12, -2, 4, 2, -5, -12, //288 +-16, -18, -19, -15, -10, -10, -5, -8, -8, -3, -5, -7, -10, -16, -18, -25, //304 +-32, -34, -36, -34, -29, -28, -31, -37, -43, -46, -43, -45, -48, -38, -35, -39, //320 +-48, -55, -62, -73, -75, -77, -77, -73, -76, -73, -70, -73, -72, -68, -65, -60, //336 +-57, -62, -60, -51, -52, -54, -57, -63, -63, -66, -71, -68, -67, -66, -61, -60, //352 +-62, -62, -61, -62, -66, -60, -51, -50, -53, -53, -64, -69, -65, -64, -65, -66, //368 +-65, -63, -66, -67, -62, -65, -69, -62, -58, -57, -59, -56, -49, -47, -48, -46, //384 +-40, -38, -41, -42, -36, -32, -35, -35, -42, -43, -38, -43, -47, -42, -40, -45, //400 +-51, -44, -34, -39, -35, -25, -20, -21, -13, -6, -6, -10, -14, -6, -2, -6, //416 +-2, 2, 0, 6, 8, 14, 20, 22, 23, 15, 19, 19, 15, 20, 16, 19, //432 +17, 13, 14, 10, 10, 5, -1, 2, 0, 3, 1, -8, -9, -17, -25, -16, //448 +-20, -24, -22, -20, -16, -6, -1, 6, 16, 16, 11, 13, 12, 15, 15, 9, //464 +17, 19, 15, 14, 16, 18, 3, 1, 5, 6, 7, -1, -1, 3, 2, 1, //480 +1, 7, 12, 15, 16, 9, 3, 5, 0, -6, -8, -5, -8, -12, -8, -6, //496 +-9, -16, -22, -21, -22, -21, -18, -15, -8, -14, -15, -11, -12, -17, -16, -13, //512 +-11, -7, -8, -13, -9, -12, -13, -5, -6, -9, -5, -3, 0, 1, -3, -4, //528 +-6, -8, -8, -11, -14, -8, -4, -4, -6, -9, -9, -10, -10, -8, -10, -12, //544 +-15, -12, -8, -10, -5, 3, 3, 6, 7, 11, 18, 26, 32, 31, 30, 36, //560 +41, 40, 44, 44, 39, 40, 38, 35, 37, 38, 41, 39, 32, 35, 34, 36, //576 +43, 46, 50, 48, 42, 45, 49, 54, 61, 68, 73, 71, 70, 68, 68, 74, //592 +72, 67, 73, 72, 68, 64, 59, 57, 60, 56, 55, 61, 64, 62, 65, 68, //608 +69, 67, 66, 70, 76, 80, 85, 90, 93, 93, 89, 84, 86, 86, 82, 83, //624 +79, 77, 80, 76, 74, 78, 77, 71, 67, 68, 75, 81, 81, 83, 88, 86, //640 +81, 75, 70, 72, 76, 77, 77, 75, 75, 73, 68, 64, 55, 51, 53, 52, //656 +53, 56, 54, 52, 48, 45, 45, 47, 53, 55, 53, 55, 60, 57, 49, 43, //672 +39, 33, 32, 26, 16, 13, 13, 11, 13, 10, 5, 8, 6, -3, 0, 4, //688 +5, 6, 4, 1, -6, -5, -1, -1, 9, 10, 5, -2, -8, -12, -32, -41, //704 +-44, -49, -50, -55, -61, -57, -53, -56, -57, -54, -55, -61, -63, -61, -60, -68, //720 +-77, -80, -75, -73, -79, -76, -68, -67, -68, -67, -80, -87, -86, -84, -82, -78, //736 +-79, -78, -72, -78, -94, -94, -100, -112, -115, -121, -124, -109, -107, -106, -104, -103, //752 +-99, -105, -114, -109, -100, -102, -103, -102, -107, -115, -120, -122, -127, -126, -122, -122, //768 +-117, -104, -102, -102, -105, -107, -102, -93, -90, -85, -82, -82, -81, -73, -66, -64, //784 +-64, -55, -42, -45, -42, -40, -46, -43, -40, -48, -50, -47, -51, -56, -51, -47, //800 +-45, -46, -49, -52, -56, -57, -57, -59, -53, -45, -51, -53, -48, -43, -34, -15, //816 +-16, -16, -10, -9, -8, 0, 0, 2, 9, 16, 25, 35, 43, 46, 46, 49, //832 +51, 50, 52, 53, 50, 45, 45, 43, 40, 45, 57, 65, 67, 73, 84, 91, //848 +87, 84, 85, 77, 72, 73, 62, 56, 57, 56, 48, 48, 56, 58, 56, 49, //864 +46, 50, 54, 53, 49, 49, 54, 50, 50, 51, 48, 48, 51, 55, 61, 70, //880 +78, 76, 83, 87, 79, 73, 71, 69, 71, 72, 75, 75, 67, 63, 63, 60, //896 +61, 59, 51, 47, 47, 44, 42, 45, 44, 35, 32, 25, 20, 19, 19, 18, //912 +11, 3, 0, -7, -12, -11, -18, -19, -11, -5, 0, 4, 8, 7, 1, 4, //928 +4, -4, -8, -9, -10, -8, -9, -7, -2, 3, 7, 12, 16, 21, 22, 21, //944 +18, 11, 8, 1, -10, -16, -18, -21, -24, -27, -29, -32, -45, -51, -54, -63, //960 +-68, -60, -50, -46, -38, -27, -17, -11, 0, 8, 7, 12, 21, 18, 14, 13, //976 +13, 11, 9, 12, 11, 10, 12, 11, 3, 0, 8, 17, 19, 21, 20, 20, //992 +29, 30, 22, 20, 33, 31, 31, 41, 45, 44, 46, 46, 45, 40, 41, 51, //1008 +53, 53, 45, 33, 33, 34, 32, 31, 29, 25, 17, 19, 22, 25, 34, 41, //1024 +43, 40, 28, 22, 21, 13, 10, 11, 16, 25, 32, 28, 29, 36, 36, 34, //1040 +32, 35, 40, 39, 35, 37, 34, 31, 30, 28, 27, 27, 25, 19, 19, 22, //1056 +18, 16, 17, 12, 6, 2, 0, 4, 5, 9, 14, 17, 20, 23, 22, 22, //1072 +25, 26, 21, 14, 10, 8, 8, 5, -5, -14, -24, -30, -31, -29, -26, -26, //1088 +-23, -22, -25, -26, -21, -22, -18, -12, -13, -15, -14, -10, -5, -7, -11, -10, //1104 +-13, -14, -13, -17, -20, -22, -29, -32, -30, -30, -40, -39, -41, -48, -47, -44, //1120 +-46, -47, -51, -56, -58, -57, -51, -54, -56, -55, -55, -61, -62, -59, -64, -68, //1136 +-63, -66, -67, -72, -86, -90, -87, -84, -80, -84, -89, -90, -86, -84, -84, -85, //1152 +-85, -79, -75, -77, -72, -70, -75, -78, -76, -74, -75, -73, -68, -69, -68, -67, //1168 +-69, -69, -65, -65, -64, -61, -64, -67, -64, -65, -71, -80, -82, -84, -97, -95, //1184 +-95, -101, -101, -102, -99, -96, -97, -94, -90, -81, -79, -77, -71, -68, -65, -55, //1200 +-53, -54, -53, -50, -45, -45, -44, -41, -40, -39, -33, -31, -29, -26, -27, -30, //1216 +-18, -17, -14, -6, 0, 8, 18, 16, 13, 14, 21, 28, 31, 38, 40, 38, //1232 +36, 32, 30, 27, 23, 15, 12, 17, 16, 18, 23, 25, 22, 20, 23, 26, //1248 +22, 16, 16, 15, 14, 14, 14, 11, 15, 19, 19, 23, 30, 41, 48, 49, //1264 +53, 61, 65, 71, 73, 74, 69, 59, 59, 62, 61, 64, 64, 65, 67, 62, //1280 +59, 59, 57, 52, 47, 43, 35, 27, 23, 23, 20, 16, 15, 13, 11, 11, //1296 +10, 12, 17, 20, 22, 27, 28, 30, 32, 31, 34, 43, 42, 42, 46, 49, //1312 +50, 49, 48, 44, 42, 41, 32, 30, 26, 21, 19, 13, 10, 9, 11, 13, //1328 +13, 18, 17, 11, 8, 4, 3, 5, 3, 0, 0, 3, 2, 2, 1, 2, //1344 +10, 15, 8, 8, 4, -2, -2, -2, -6, -7, -2, 1, 3, 17, 27, 34, //1360 +40, 41, 40, 33, 30, 30, 33, 35, 34, 44, 42, 38, 43, 45, 43, 46, //1376 +49, 51, 47, 39, 29, 23, 22, 24, 24, 25, 31, 27, 28, 32, 34, 36, //1392 +33, 30, 30, 30, 32, 27, 27, 27, 26, 34, 40, 44, 54, 61, 69, 74, //1408 +70, 70, 69, 65, 63, 65, 60, 57, 61, 61, 57, 61, 68, 64, 60, 60, //1424 +60, 56, 57, 60, 59, 54, 49, 51, 55, 53, 51, 51, 48, 44, 43, 39, //1440 +39, 46, 49, 47, 50, 50, 49, 55, 58, 55, 54, 50, 45, 46, 44, 42, //1456 +40, 36, 34, 32, 31, 33, 37, 42, 44, 42, 39, 37, 35, 29, 13, 6, //1472 +2, 1, 3, 8, 16, 17, 22, 25, 23, 30, 34, 32, 35, 35, 34, 37, //1488 +38, 34, 32, 32, 23, 15, 17, 9, 1, 0, -9, -20, -24, -29, -30, -28, //1504 +-28, -27, -23, -19, -17, -14, -1, 1, -2, -4, -6, -13, -16, -18, -21, -24, //1520 +-31, -41, -40, -39, -42, -40, -36, -34, -31, -34, -39, -36, -32, -33, -31, -35, //1536 +-40, -37, -43, -44, -45, -50, -52, -53, -59, -69, -81, -85, -89, -91, -84, -91, //1552 +-99, -102, -106, -110, -113, -115, -113, -113, -119, -119, -117, -113, -107, -100, -92, -84, //1568 +-81, -77, -73, -69, -67, -68, -63, -62, -68, -73, -81, -90, -97, -102, -103, -102, //1584 +-103, -102, -104, -104, -100, -93, -90, -90, -92, -91, -87, -82, -84, -86, -87, -88, //1600 +-89, -85, -79, -77, -79, -81, -79, -80, -82, -84, -83, -77, -71, -67, -58, -54, //1616 +-54, -51, -50, -46, -42, -42, -41, -38, -37, -34, -32, -34, -33, -22, -18, -18, //1632 +-19, -20, -18, -16, -15, -12, -10, -11, -6, -4, -1, 1, 1, 3, 8, 6, //1648 +9, 14, 14, 17, 15, 12, 10, 8, 10, 15, 14, 17, 26, 30, 31, 33, //1664 +30, 27, 32, 33, 29, 32, 30, 27, 29, 29, 32, 39, 44, 47, 49, 52, //1680 +51, 54, 56, 54, 52, 49, 47, 46, 45, 45, 46, 44, 41, 40, 38, 35, //1696 +34, 27, 17, 12, 10, 8, -2, -9, -10, -12, -18, -21, -20, -19, -15, -6, //1712 +-1, 2, 6, 6, 4, 1, 1, 6, 2, 0, -1, -6, -11, -18, -16, -16, //1728 +-20, -20, -21, -20, -21, -21, -16, -14, -15, -11, -9, -5, 2, 5, -2, -2, //1744 +-5, -11, -14, -17, -23, -26, -30, -29, -29, -29, -25, -25, -26, -30, -35, -38, //1760 +-41, -44, -47, -49, -45, -40, -34, -31, -31, -29, -24, -21, -18, -14, -10, -6, //1776 +3, 9, 15, 18, 22, 28, 24, 19, 17, 16, 16, 19, 28, 31, 30, 30, //1792 +28, 26, 27, 29, 33, 33, 37, 42, 39, 38, 39, 40, 36, 35, 37, 33, //1808 +30, 35, 41, 42, 48, 52, 56, 63, 66, 67, 69, 69, 69, 76, 79, 82, //1824 +86, 85, 84, 89, 88, 86, 89, 93, 92, 93, 92, 91, 89, 84, 81, 86, //1840 +91, 94, 95, 95, 98, 99, 101, 97, 91, 93, 92, 85, 85, 88, 85, 80, //1856 +77, 75, 73, 68, 65, 65, 59, 52, 52, 53, 48, 47, 47, 42, 40, 45, //1872 +54, 58, 61, 60, 61, 63, 66, 69, 70, 67, 66, 63, 57, 56, 59, 58, //1888 +55, 55, 52, 49, 47, 43, 41, 35, 27, 23, 20, 16, 8, 7, 11, 8, //1904 +4, 4, 0, 5, 11, 9, 7, 4, 1, -2, -5, -9, -9, -13, -20, -22, //1920 +-25, -30, -35, -42, -37, -34, -35, -36, -38, -32, -28, -29, -31, -31, -25, -24, //1936 +-19, -16, -31, -37, -32, -42, -43, -46, -52, -59, -67, -70, -72, -71, -70, -72, //1952 +-66, -69, -73, -70, -70, -67, -63, -64, -63, -57, -56, -54, -50, -53, -54, -53, //1968 +-69, -72, -73, -81, -87, -88, -89, -96, -97, -92, -95, -98, -104, -109, -108, -112, //1984 +-116, -117, -121, -116, -113, -112, -109, -108, -105, -102, -97, -91, -86, -85, -84, -84, //2000 +-86, -87, -88, -91, -92, -93, -94, -90, -89, -93, -98, -97, -94, -99, -94, -91, //2016 +-89, -82, -80, -81, -74, -69, -69, -72, -71, -69, -73, -76, -74, -68, -63, -61, //2032 +-58, -57, -54, -51, -51, -47, -46, -43, -36, -32, -20, -12, -9, -2, 1, 2, //2048 +1, 0, 1, -2, -7, -3, -4, 0, 10, 12, 15, 21, 19, 17, 22, 25, //2064 +27, 29, 25, 22, 23, 21, 19, 19, 27, 35, 34, 46, 51, 53, 57, 54, //2080 +56, 65, 61, 59, 59, 63, 64, 60, 64, 67, 67, 67, 68, 73, 78, 78, //2096 +78, 80, 82, 82, 89, 96, 95, 95, 98, 102, 105, 108, 114, 112, 114, 110, //2112 +96, 89, 87, 79, 75, 72, 69, 62, 58, 56, 52, 50, 46, 44, 48, 44, //2128 +39, 35, 30, 29, 26, 23, 22, 23, 24, 26, 30, 34, 40, 39, 40, 51, //2144 +50, 48, 47, 49, 53, 44, 42, 38, 29, 22, 16, 14, 15, 15, 14, 14, //2160 +20, 21, 18, 22, 25, 24, 27, 22, 21, 24, 22, 17, 17, 15, 7, 3, //2176 +1, -3, -6, -7, -8, -9, -11, -9, -5, -7, -9, -12, -17, -22, -26, -24, //2192 +-15, -10, 4, 12, 13, 15, 20, 23, 16, 17, 22, 13, 6, 7, 5, 7, //2208 +3, -4, -7, -18, -24, -25, -23, -22, -21, -14, -9, -3, 4, 6, 11, 21, //2224 +27, 22, 21, 31, 30, 24, 22, 20, 19, 18, 13, 10, 9, 13, 18, 18, //2240 +18, 19, 21, 22, 22, 24, 23, 21, 22, 22, 21, 24, 22, 22, 29, 38, //2256 +47, 49, 58, 66, 67, 71, 65, 63, 67, 64, 60, 63, 59, 57, 53, 49, //2272 +50, 45, 46, 45, 37, 31, 28, 21, 13, 9, 7, 1, -3, -7, -11, -13, //2288 +-12, -8, -9, -9, -6, -8, -5, 4, 9, 14, 13, 16, 23, 19, 18, 19, //2304 +19, 22, 20, 14, 8, 5, 5, 1, 0, -1, -3, 3, 3, -1, 3, 8, //2320 +3, -1, -4, -13, -24, -19, -18, -20, -21, -24, -23, -23, -27, -24, -19, -18, //2336 +-20, -23, -28, -34, -38, -43, -42, -42, -43, -44, -46, -42, -45, -47, -41, -44, //2352 +-45, -42, -50, -51, -42, -38, -39, -27, -23, -30, -28, -25, -32, -27, -26, -24, //2368 +-22, -22, -25, -35, -41, -48, -62, -61, -65, -71, -71, -75, -79, -89, -94, -93, //2384 +-96, -96, -93, -94, -86, -79, -71, -66, -72, -69, -65, -66, -67, -65, -62, -64, //2400 +-59, -57, -65, -65, -64, -63, -63, -62, -53, -50, -53, -44, -41, -39, -37, -45, //2416 +-49, -56, -59, -57, -64, -67, -75, -81, -79, -79, -80, -80, -78, -71, -65, -61, //2432 +-64, -67, -65, -70, -70, -58, -63, -60, -52, -53, -54, -51, -52, -44, -36, -33, //2448 +-29, -26, -24, -28, -34, -38, -47, -45, -41, -38, -28, -16, -19, -17, -11, -11, //2464 +-11, -10, -10, -1, 7, 9, 16, 23, 22, 18, 14, 17, 22, 17, 16, 14, //2480 +13, 17, 14, 2, 1, 1, -2, -2, 9, 16, 17, 15, 16, 18, 9, 7, //2496 +8, 6, 5, 0, 1, 1, 1, 7, 12, 20, 27, 30, 39, 47, 45, 45, //2512 +41, 37, 35, 31, 28, 25, 22, 21, 19, 16, 8, 4, 2, -1, -5, -9, //2528 +-10, -10, -7, 1, 6, 12, 13, 10, 10, 12, 13, 15, 14, 17, 17, 14, //2544 +16, 11, 8, 12, 14, 16, 11, 7, 13, 18, 18, 14, 5, 5, 4, 5, //2560 +8, 7, 15, 15, 13, 11, 3, -5, -5, -2, 0, -4, -1, 4, 3, 9, //2576 +7, -3, -8, -5, -1, 1, 0, -4, -14, -13, -14, -14, -13, -16, -14, -18, //2592 +-25, -21, -13, -9, -8, -12, -11, -12, -20, -22, -19, -18, -15, -10, 0, 3, //2608 +1, 7, 13, 16, 24, 30, 31, 34, 38, 45, 43, 45, 49, 47, 48, 42, //2624 +28, 34, 32, 26, 28, 31, 28, 29, 32, 32, 32, 34, 39, 42, 38, 38, //2640 +42, 38, 36, 38, 42, 47, 46, 49, 52, 57, 64, 70, 72, 68, 71, 70, //2656 +62, 64, 63, 62, 65, 63, 62, 68, 72, 74, 73, 78, 83, 83, 86, 91, //2672 +95, 95, 97, 103, 99, 103, 104, 100, 101, 97, 91, 83, 75, 77, 83, 87, //2688 +91, 89, 89, 93, 84, 73, 72, 78, 76, 77, 81, 80, 77, 73, 68, 57, //2704 +55, 56, 60, 67, 70, 65, 67, 69, 65, 61, 59, 51, 46, 45, 49, 57, //2720 +56, 54, 56, 52, 48, 45, 38, 35, 33, 34, 33, 23, 22, 25, 23, 22, //2736 +25, 21, 9, 2, -2, -6, -8, -9, -16, -19, -17, -20, -23, -18, -17, -20, //2752 +-17, -14, -20, -26, -25, -20, -17, -19, -20, -11, -13, -18, -16, -10, -8, -17, //2768 +-23, -17, -18, -29, -38, -42, -43, -52, -62, -68, -65, -65, -77, -81, -77, -81, //2784 +-82, -89, -96, -94, -100, -107, -111, -114, -115, -114, -110, -112, -115, -112, -111, -111, //2800 +-114, -115, -113, -112, -110, -121, -123, -116, -118, -120, -109, -110, -112, -114, -120, -120, //2816 +-113, -114, -115, -111, -104, -102, -110, -110, -108, -110, -114, -113, -112, -115, -115, -113, //2832 +-117, -110, -107, -113, -117, -121, -126, -117, -120, -121, -111, -105, -102, -96, -94, -97, //2848 +-94, -89, -84, -77, -69, -59, -50, -47, -42, -40, -38, -35, -35, -35, -33, -34, //2864 +-34, -34, -35, -27, -20, -24, -29, -31, -37, -33, -22, -21, -19, -12, -14, -16, //2880 +-13, -11, -8, -3, 10, 13, 7, 2, 6, 11, 11, 17, 20, 19, 22, 25, //2896 +30, 38, 44, 47, 51, 61, 63, 66, 75, 80, 77, 79, 80, 79, 75, 77, //2912 +83, 87, 97, 99, 93, 94, 83, 73, 73, 73, 73, 73, 67, 68, 71, 71, //2928 +67, 63, 60, 55, 48, 42, 41, 42, 42, 45, 46, 50, 52, 51, 56, 59, //2944 +62, 63, 59, 58, 54, 46, 44, 46, 53, 56, 56, 56, 59, 64, 59, 57, //2960 +56, 52, 52, 51, 51, 53, 49, 46, 46, 42, 38, 36, 33, 31, 33, 27, //2976 +25, 28, 25, 22, 25, 24, 24, 22, 17, 19, 18, 11, 9, 8, 8, 4, //2992 +0, -1, -4, -8, -11, -12, -13, -16, -16, -15, -12, -3, -2, -5, -5, -6, //3008 +-2, 2, 1, 1, -4, -9, -12, -18, -18, -22, -29, -23, -25, -30, -23, -15, //3024 +-12, -3, 1, 4, 5, 4, 9, 18, 17, 14, 13, 7, -2, 0, 5, 8, //3040 +12, 15, 19, 17, 10, 4, -4, -7, -2, -7, -8, -6, -2, 2, -1, 7, //3056 +13, 11, 15, 18, 25, 29, 20, 20, 26, 28, 28, 24, 24, 22, 17, 27, //3072 +26, 29, 35, 32, 44, 48, 48, 48, 43, 41, 38, 34, 36, 36, 39, 43, //3088 +41, 42, 35, 24, 18, 11, 10, 8, 5, 7, 4, 3, 12, 13, 15, 22, //3104 +24, 25, 26, 31, 36, 35, 39, 42, 41, 42, 40, 38, 41, 39, 41, 47, //3120 +50, 49, 49, 53, 54, 56, 57, 48, 47, 48, 43, 40, 39, 37, 39, 36, //3136 +29, 27, 26, 18, 10, 3, 2, 1, -9, -15, -14, -14, -17, -17, -12, -13, //3152 +-17, -20, -14, -5, -11, -13, -10, -8, -8, -18, -23, -23, -25, -31, -35, -35, //3168 +-36, -33, -26, -24, -24, -21, -18, -20, -21, -19, -19, -18, -19, -22, -28, -37, //3184 +-50, -51, -49, -50, -52, -54, -54, -58, -62, -63, -65, -81, -91, -99, -104, -106, //3200 +-112, -113, -110, -108, -102, -96, -93, -94, -96, -92, -90, -94, -94, -96, -98, -96, //3216 +-94, -91, -88, -85, -82, -79, -74, -78, -81, -81, -81, -80, -78, -81, -86, -87, //3232 +-85, -85, -88, -83, -83, -85, -85, -91, -102, -105, -104, -104, -108, -108, -104, -104, //3248 +-100, -93, -86, -75, -73, -74, -78, -76, -71, -71, -66, -64, -64, -57, -58, -61, //3264 +-55, -51, -46, -41, -43, -41, -38, -35, -29, -24, -24, -24, -20, -12, -8, -7, //3280 +-3, 4, 5, 2, 6, 19, 20, 16, 14, 18, 19, 11, 13, 17, 16, 14, //3296 +13, 9, 4, -1, -1, -2, -2, -3, -6, -6, -3, -2, 1, 1, 2, 2, //3312 +3, 5, 3, 2, 2, 2, 0, }; diff --git a/src/vehicles/sounds/kittScanner.h b/src/vehicles/sounds/kittScanner.h index 98fd97a..dd8c10f 100644 --- a/src/vehicles/sounds/kittScanner.h +++ b/src/vehicles/sounds/kittScanner.h @@ -1,1938 +1,1770 @@ const unsigned int sirenSampleRate = 22050; -const unsigned int sirenSampleCount = 30910; +const unsigned int sirenSampleCount = 28221; #define SIREN_LOOP const unsigned int sirenLoopBegin = 0; // Adjust start of loop manually -const unsigned int sirenLoopEnd = 30910; // Adjust end of loop manually +const unsigned int sirenLoopEnd = 28221; // Adjust end of loop manually const signed char sirenSamples[] = {//0 -0, 0, -1, -3, 1, -2, -1, -1, -3, -3, -1, 1, -1, -1, -2, -4, //16 --2, -3, -3, -2, 2, -3, -4, -4, -3, 2, -2, -3, -3, -1, -4, -2, //32 --2, -1, 0, -1, -2, -2, -4, -1, -4, 2, -2, -3, -2, -1, -3, 1, //48 --2, -2, -2, -1, -2, -4, -2, 1, 1, -1, -1, -3, 0, 0, 0, 0, //64 -1, -2, -1, -1, 0, 1, -1, -3, -2, -1, -3, 1, -1, -2, -2, -2, //80 --2, -2, -2, -4, -1, -4, 1, -1, -3, -2, 0, 1, -1, -3, 2, -2, //96 --3, -2, -2, -2, -2, -2, -1, -2, -3, 0, -2, 0, 0, 0, 0, -3, //112 --2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -1, 1, -1, -2, -2, //128 --2, -2, -3, -1, -4, -2, 2, -3, -1, -2, -2, -3, 1, -3, -1, -4, //144 --2, -1, 1, -1, -1, -2, -2, -4, -1, -4, 1, -1, -4, -2, 0, 0, //160 --1, -2, -3, 0, -4, 1, 0, -3, -2, -1, 1, -3, -2, 0, -2, -2, //176 --3, -2, 2, -2, -4, -4, -4, 1, -1, -2, -3, -1, -4, -2, 0, -2, //192 --1, -3, 2, -1, -4, -2, -3, -3, 1, -2, 1, -3, -2, -2, -2, -2, //208 --3, -4, -4, -3, -2, 2, -3, -2, -2, -2, -2, -2, -4, -4, -3, 1, //224 -1, -3, 0, 0, -2, 0, 1, -2, -2, -2, -2, -2, -2, -2, -1, -2, //240 --5, 0, 0, -1, -3, 0, -2, -3, 1, -1, -1, -2, -3, -2, -1, -3, //256 --2, 1, 1, -3, -4, -4, -3, 1, -2, 0, 0, -1, -4, -2, -2, -1, //272 -1, -1, -3, -3, -1, -1, 1, -1, -2, -2, -2, -2, -1, -2, 0, -1, //288 -0, 1, -3, -2, -2, -1, 0, -1, -2, -2, -3, 0, -4, 1, -1, -2, //304 --2, -2, -1, -2, -4, -1, 1, -1, -1, -2, -3, 0, -1, -3, -2, -2, //320 --2, -2, -2, -2, -2, -2, 0, -2, -3, -3, 1, -2, -2, -3, -1, -2, //336 --4, -1, 2, -3, -1, -2, -3, -2, 2, 0, -1, -4, -1, -1, -3, -1, //352 --2, -4, -2, -1, 0, 0, -4, -2, -1, -1, -3, -3, -2, -1, -2, -3, //368 --1, -2, -3, -2, -1, -1, -3, -3, -2, -2, 0, 0, 0, -2, -2, -2, //384 --2, -1, -2, 0, 0, -2, -1, 1, -2, -3, -1, 1, 0, -4, -3, -2, //400 --1, 1, -1, -1, -3, -3, -1, -1, -3, -2, 1, 0, 1, -1, -2, 0, //416 --2, -2, -2, -2, -2, -2, 0, 0, -1, -3, -2, -2, -2, -2, -3, 1, //432 --1, -3, 1, -2, -1, -1, -3, -3, -1, 1, 0, -3, -2, -2, -2, -2, //448 --3, -2, 2, -3, -3, -2, -2, -2, -4, -2, -3, -3, 1, -2, -2, -3, //464 --1, -4, -3, -1, 1, -3, -1, -2, -4, -1, 1, -1, -1, -2, -3, -2, //480 --1, 1, -3, -1, -1, -3, -5, -3, -2, -2, -1, 0, 0, -1, -1, 1, //496 --2, -4, -4, 1, -2, -2, 1, -3, -1, -4, 2, -2, -3, -1, 0, -2, //512 --3, 2, -3, -1, -4, -2, 2, -2, -3, -2, -2, -2, -2, -2, -1, -2, //528 --4, -2, -1, 1, 0, -1, -6, -2, -1, 0, 0, -1, -2, -2, -3, -1, //544 --4, -2, 1, -2, -2, -3, -3, -2, 2, -3, -3, -2, -2, -2, -2, -3, //560 --1, -4, -2, 1, 1, -3, -1, -2, -1, 1, -2, -3, -2, -2, -2, -2, //576 --3, -1, -4, 1, -2, -4, 0, 0, -1, -2, -4, -1, -1, -1, -2, -1, //592 --2, -1, -3, 1, -1, -3, -1, -1, -3, -2, -2, -2, -2, -2, -2, -2, //608 -0, -3, -2, -3, 1, -1, -2, -3, -3, 0, 0, -3, -1, 1, 1, -4, //624 --3, -2, -1, 1, -1, -1, -2, -3, -2, -1, 1, -3, -2, -1, 0, 0, //640 --1, -2, -3, -2, -1, 1, 1, -3, -2, -2, -1, 1, 1, -2, -3, -3, //656 --1, 0, -2, -6, -1, 1, -1, -1, -3, -3, -1, -1, -2, -2, 1, -3, //672 --2, -3, 1, -3, -2, -2, -2, -2, -2, 1, -3, -2, -2, -3, -2, 1, //688 -1, -3, -2, -2, -2, -3, 0, 0, -4, -3, 2, -2, -4, -1, -3, -2, //704 -2, -2, -3, -2, -2, -2, -3, -2, 1, 0, -1, -2, -2, -2, -2, -2, //720 --2, -3, -2, 0, 0, -1, -3, -3, 2, -3, -1, -4, -2, 2, -3, -1, //736 -0, -1, -3, -2, -1, -2, -2, -2, -2, 0, -1, -3, -3, -1, -1, -3, //752 --1, -1, -3, -3, -1, 1, -1, -1, -2, -3, -2, -1, -3, 1, -1, -2, //768 --2, -1, -2, 0, 0, -5, -1, -4, 1, -1, -2, -2, -3, -2, 0, -3, //784 --2, 0, 0, -1, -4, -2, 2, -3, 0, -4, -2, -1, 0, -1, 1, -1, //800 --3, -1, 0, -3, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -1, 1, //816 --1, -3, -3, -1, -2, -2, -2, -1, 1, -5, -4, -3, -2, 2, -3, -3, //832 --1, 0, -3, -2, -2, -2, -2, -2, -2, -2, -2, -2, -3, -2, 2, -3, //848 --3, -1, -2, -3, -2, -1, 1, -3, -2, -2, 0, -1, 1, 0, -3, -2, //864 --1, -1, 0, -3, -1, -2, -4, -3, -3, -2, -2, -2, 0, 0, -1, -3, //880 -1, -3, 0, -4, -3, 2, -2, -3, 0, -4, -2, -2, -2, -1, 1, -2, //896 --3, 2, -2, -1, -2, -1, 0, 1, -4, 0, -4, -3, -1, 1, -3, -1, //912 --2, -3, 1, -4, -4, -3, 1, 0, -1, -2, -3, -3, 2, -2, -3, -4, //928 --4, -3, 2, -3, -2, -4, 1, -1, -3, -2, 1, 0, -4, -2, 2, -3, //944 --4, -1, 0, 0, 1, -3, -1, -2, -4, -1, -2, -4, -4, 1, -1, -4, //960 --2, 0, 1, -1, -2, -4, -2, -3, -2, -2, 0, -3, -1, -3, 1, -1, //976 --2, -3, -4, -4, -3, -2, 2, -3, -1, -1, 1, -2, -4, -1, -3, -2, //992 -1, -2, 1, -3, -2, -2, -2, -2, -2, -1, -1, -2, -3, -1, -2, -2, //1008 --2, -2, -1, 1, -3, -1, -3, 1, -2, -3, 0, -4, -2, -2, -2, -2, //1024 --2, 1, -3, -2, -2, -3, -3, 1, -2, -3, 0, -1, -1, -2, -3, -1, //1040 -1, -1, -4, 1, -2, -3, 0, -4, -3, -2, 2, -3, -1, -2, -2, -3, //1056 --2, -1, -3, 1, 1, -3, -1, -4, 0, 1, -2, -3, -4, -4, -3, 2, //1072 --2, -4, -1, -3, -3, 2, -2, -3, -1, -1, -4, -2, -1, 1, 0, -2, //1088 -0, 0, 0, -1, -3, -2, 1, -1, -1, 0, -1, -2, -3, -2, 1, -1, //1104 --2, 0, -3, -2, -1, -2, -2, -2, -2, -2, -2, -2, -2, -2, -1, 1, //1120 --1, -1, -3, -3, -1, 0, 0, -4, -2, 1, -4, -3, -3, -2, 0, -2, //1136 --1, 0, -1, 0, -2, -3, -3, -1, -1, -3, -2, 1, 0, -2, -4, 2, //1152 --2, -3, -1, -4, -2, -1, 1, -5, -4, -3, 2, -2, -3, -1, -2, -4, //1168 --2, -1, -1, -3, -3, 2, -2, -3, -2, -2, -2, -2, -2, -3, -1, -4, //1184 --2, 2, -2, -3, -1, -2, -3, -3, 0, 0, -1, -2, 0, 0, 1, 0, //1200 --2, -4, -2, 0, -4, -1, -4, -1, -1, -3, -1, -1, -2, 0, 0, -1, //1216 -1, -3, -2, 1, -4, -1, -3, -3, 2, -2, -3, -1, -1, -4, -2, -2, //1232 --2, -2, -2, -2, -2, -2, -1, 1, -1, -2, -3, -4, -4, -3, -2, 2, //1248 --4, -2, -3, 1, -3, 2, -3, -4, -4, 1, -3, -2, 1, -1, -2, 0, //1264 --2, -2, -2, -1, -2, -3, -2, -2, -2, -3, -2, 1, 1, -3, -1, -2, //1280 --4, -2, 1, 0, 0, 0, 0, 1, -2, -3, -1, -6, -2, 2, -3, -4, //1296 --3, 2, -3, -2, -1, -2, -2, -2, -1, 1, -3, -1, -2, -3, -3, -1, //1312 --4, 1, -1, -2, -4, -1, -3, -2, 2, -2, -4, -4, 1, -2, -3, -1, //1328 -1, 0, -5, -3, -2, -1, 0, 0, -4, -2, 1, -1, -3, -3, -2, -2, //1344 --1, 0, 0, -5, -2, -1, -4, -1, -3, -2, 2, -2, -4, -3, -3, -2, //1360 --2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -1, -3, -3, //1376 --2, -2, 0, -1, 0, 1, -2, -1, -2, -1, 1, -1, -4, -2, -1, 0, //1392 --1, -2, -3, -2, -1, -3, 2, -2, -3, -1, 0, 1, -3, -2, 0, -2, //1408 --2, -2, -2, -2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 2, //1424 --3, -1, -2, -3, 0, 1, -3, -1, -6, -2, -1, -3, -3, -1, -4, -2, //1440 -2, -3, -2, -2, -2, -2, -2, -2, -2, -2, -2, -3, -2, -1, -3, 1, //1456 --2, -2, -3, -1, -2, -3, -2, -2, -2, -2, -2, -2, -1, 1, 0, -1, //1472 --4, -2, -1, 0, 0, -1, -2, -2, -3, 1, -1, -1, 1, -2, -3, -1, //1488 -0, -1, -3, -3, -1, -3, 1, -1, -2, -4, -1, -3, -3, -2, 2, -3, //1504 --1, -4, 1, -2, -4, -1, -4, 1, -1, -4, -2, 0, 1, -1, -3, -3, //1520 --1, 1, -3, -3, -1, -2, -4, -4, -3, -2, 0, -2, -1, 1, -1, -3, //1536 --3, 0, 0, -1, -3, -3, 1, -3, -1, 0, -2, -2, -2, -2, -2, -2, //1552 --2, -2, -2, -1, -1, -4, -2, -2, -2, -2, -2, -2, -2, -2, -1, 1, //1568 --3, 1, -1, -2, -4, 1, -1, -2, -2, -2, -1, -2, -3, -2, -2, -2, //1584 --3, -2, 2, -4, -2, -3, -2, 1, -3, -1, 1, -1, -2, -2, -2, -2, //1600 --3, 0, 0, -3, 1, 0, 0, 0, 0, 0, -1, -1, -3, 2, -2, -3, //1616 --1, 1, 0, -3, 1, -2, -3, -1, -2, -3, -2, -2, -2, -3, -3, 2, //1632 --2, -3, -2, -2, -2, -2, -2, -2, -1, -1, -3, -3, -1, 0, 0, -2, //1648 --1, 0, 1, -1, -1, -5, -2, -2, -2, -2, -2, -2, -2, -2, -2, -3, //1664 --3, 2, -2, -3, -2, -2, 0, -2, -2, -2, -2, -2, -2, -2, -2, -3, //1680 --1, -1, -2, -3, 0, -1, 0, -1, -2, -3, -3, -1, -1, -2, -2, -2, //1696 --3, -1, -2, -2, -2, -2, -1, -1, -2, -3, -1, -1, 0, -1, -2, -2, //1712 --2, -2, -2, -2, -3, -2, 0, 0, -1, -2, -2, -4, -1, -3, -3, 2, //1728 --2, -3, -3, -1, -2, -1, -2, 0, 0, -1, -2, -2, -3, -4, -4, -3, //1744 --2, -2, -1, 0, -1, -2, -2, -4, 0, 0, 0, -2, -3, -1, -1, 1, //1760 --1, -2, -4, -2, -3, -3, 2, -2, -3, -4, -5, 0, -1, -2, -2, -2, //1776 --1, -2, 0, 0, -2, -3, -3, -2, -1, -3, -5, -4, -1, -2, -2, -2, //1792 --3, -1, -1, 0, 0, 0, 0, 0, 0, 0, 1, -3, -1, -2, -4, -1, //1808 -2, -3, -2, -2, -2, -2, -2, -1, -1, -4, -2, -1, -1, -3, -3, 2, //1824 --2, -3, -4, -4, -3, -2, 2, -3, -1, -1, -2, -3, -2, -1, -2, -2, //1840 --2, -2, -2, -2, -2, -2, -2, -1, 1, -1, -2, -2, -2, -4, -1, -4, //1856 -1, -2, 0, -3, 0, 0, -2, -3, 0, -2, -1, -1, -3, -3, -2, -1, //1872 --3, 1, 1, -2, -3, -3, -1, -4, -2, -2, -1, -3, 2, -2, -3, -1, //1888 -0, -4, 1, -2, -3, 1, -3, -1, -2, -3, -1, 1, 0, -4, -3, -1, //1904 -1, -3, -1, -1, -3, -3, -1, -2, -2, -2, -2, -2, -2, -2, -2, -2, //1920 -1, 0, 1, -1, -2, 0, -2, -3, 0, -4, -3, 2, -3, -4, -5, 1, //1936 --1, -3, 1, -2, -1, -2, -6, -2, -1, 1, 0, -3, -2, -2, -2, -3, //1952 --3, 1, -2, -3, -2, -2, -2, -2, -2, -2, -1, -1, -4, -2, 0, -2, //1968 --3, 1, -2, -3, 1, -3, -2, 0, -2, -3, 0, 0, 0, 1, -2, -6, //1984 --1, -3, -2, 1, -3, -2, -1, -3, 1, -1, -2, -3, -1, -4, 1, -2, //2000 --2, -2, -1, -1, -3, -3, -1, -1, -3, -2, 2, -3, -4, -5, 0, -1, //2016 --2, -4, -1, -3, -3, 2, -2, -3, -3, -1, -2, -6, -2, 0, 0, -2, //2032 --4, 2, -2, -3, -1, -2, -1, -2, -1, 1, -1, -1, -2, -4, -1, -3, //2048 --3, -1, -2, -1, -1, -4, -3, 2, -2, -3, -1, -2, 0, -2, -3, -1, //2064 -0, -1, -4, -2, -1, 0, 0, -1, -3, -3, -1, -2, -2, -2, -2, -1, //2080 -1, 0, -2, -4, -1, 2, -4, -1, -4, -2, -2, -2, -3, -3, 1, 0, //2096 -0, 0, -1, 0, -2, -2, -2, -3, -1, 0, -3, -2, -1, -3, 1, -1, //2112 --3, -3, -1, -2, -2, -2, -2, -2, -1, 1, 1, -2, -4, -1, 0, 0, //2128 --2, -3, -1, 1, -1, -1, -3, 0, -4, -1, -3, 1, -2, 0, 1, -1, //2144 --2, -2, -2, -2, -2, -2, -2, -3, 1, -2, -4, -4, -2, -2, -2, -2, //2160 --3, -3, 1, 0, 0, 1, -1, -2, -2, -2, -3, -3, -5, 1, -1, -2, //2176 --2, -2, -2, -3, -3, 2, -3, -1, -2, -2, -3, 1, -2, -2, -2, -2, //2192 --2, -2, -1, -1, -3, -3, -1, 0, -1, -4, 1, -2, -3, 0, -5, -3, //2208 --2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -3, -2, 1, -4, -1, 0, //2224 --1, -2, -3, -4, -4, -3, 2, -2, -3, -4, -4, -3, -2, -2, -1, 0, //2240 --1, -2, -2, -2, -2, -2, 0, -2, -2, -3, 1, -1, -2, -3, 0, -2, //2256 -0, -5, -3, -2, -1, 0, 1, -1, -3, -2, -2, -2, -2, -2, 1, -1, //2272 --1, 0, -1, -3, -3, 2, -3, -1, -2, -2, -3, -2, -1, 1, -3, 1, //2288 -1, -3, 0, -4, -2, 2, -3, -4, -4, -3, 1, 0, -2, -2, -3, -3, //2304 --2, 1, -3, -2, -2, -2, -2, -4, 0, 0, -1, -2, -4, -1, 1, 0, //2320 --2, -3, -2, -2, -2, -2, -2, -2, -2, -1, -3, -2, 1, -3, -2, -1, //2336 -1, -3, -1, -2, -2, -1, -1, -3, -3, -2, -1, -3, -2, 1, -3, -1, //2352 --1, -1, -1, -2, -4, -1, -4, 1, -1, -4, -2, 1, -1, -2, -2, -2, //2368 --3, 0, -4, -3, 2, -2, -3, -2, -1, -1, -2, -3, -4, -4, -3, 2, //2384 --2, -3, -2, -2, -2, -2, -4, -1, -4, 1, -1, -2, -4, -1, -3, 2, //2400 --2, -3, -1, 1, -4, 1, -2, -3, -4, -4, -3, -2, -2, 1, 0, -1, //2416 --2, -3, 0, 0, 0, 0, 0, 1, -3, 0, -1, -1, -2, -2, -3, -4, //2432 --4, -3, -2, -2, -1, 1, 0, -6, -2, -1, 0, 1, -3, -2, -2, -2, //2448 --2, -3, -2, 2, -3, -4, -5, 0, -1, -2, -3, 0, -3, -3, -2, 1, //2464 --1, -1, 1, 0, -3, 2, -3, -1, -2, -2, -3, -2, -1, -2, -2, -2, //2480 --2, -2, -1, 1, -1, -2, -4, -1, 1, -3, -2, -2, 0, -1, -3, 1, //2496 -0, 0, -2, -3, -3, -2, 1, -6, -1, 0, -1, -2, -2, -2, -3, -1, //2512 --4, -2, 1, -1, -1, -1, -2, -2, -2, -3, 0, -3, -2, -2, -2, -2, //2528 --2, -2, 0, -2, -1, 0, 0, -1, -2, -3, -3, -1, 0, -1, -3, -1, //2544 -1, -1, -1, -3, 2, -3, -1, -1, -4, -2, -2, -1, -3, 1, -2, -1, //2560 --2, 0, 0, -1, -2, -3, -3, -1, 0, -1, -2, -3, -3, -1, 0, -1, //2576 --2, -3, -3, -4, 1, -2, -2, 0, 1, -3, -3, -1, -2, -4, -4, -3, //2592 -2, -3, -1, 1, -1, -2, -2, -2, -4, -4, -3, -2, 2, -2, -3, -2, //2608 --2, 0, -2, -4, -1, -3, 1, 1, -2, -3, -1, -1, 0, -2, -2, -3, //2624 --2, 0, -2, -2, -3, -3, -1, 0, -2, -4, -1, 0, -1, -2, -3, 0, //2640 --1, -3, 1, 0, 0, -6, -3, -3, 1, 1, -2, -3, -1, -2, -4, -2, //2656 --1, 0, 0, -1, -3, -3, -1, 0, -1, -2, -2, -2, -3, -1, -4, -2, //2672 --2, -2, -1, 1, -1, -3, -3, -1, -3, 1, -1, -6, -1, 1, 0, -1, //2688 --3, 2, -2, -3, -1, -2, -4, -2, -1, 0, -1, -2, -2, -2, -2, -2, //2704 --2, -2, -2, -3, -3, -4, 1, -2, -2, 1, 0, -4, -3, 2, -2, -4, //2720 -0, -3, -2, -2, 0, -3, -1, -2, -3, -3, -1, -3, 1, -3, -2, -1, //2736 --1, -3, -3, -2, 0, -2, -1, -3, 1, -1, -3, -3, -5, -4, 1, -2, //2752 --2, -3, -1, -2, -4, -2, -1, 0, -1, 0, 1, -3, -5, -3, -3, 1, //2768 --3, -1, 0, 0, 0, 0, 0, 1, -4, -4, -3, -2, 2, -3, 0, -4, //2784 --3, -1, 1, -4, -1, -4, -2, -2, -1, 1, -1, -4, -2, 2, -3, 0, //2800 --4, -2, -2, -2, -2, -3, 2, -2, -3, -2, -3, -2, -2, 1, -1, -2, //2816 --3, -3, 2, -2, -4, 1, -1, -1, -2, -3, 1, -1, -1, 0, -3, -2, //2832 --1, -3, 1, -2, -1, -2, 0, 1, -1, -3, -3, -1, -3, -3, -3, -2, //2848 -1, -3, -1, 0, -2, -3, 0, 1, -1, -4, -2, 1, 0, 0, 0, -1, //2864 --3, -2, -1, -2, -2, -2, -2, -2, -2, -3, -2, 1, 1, -4, -1, 0, //2880 --1, -3, -2, -1, -3, 2, -2, -3, -1, -1, 1, -1, -2, -2, -2, -2, //2896 --2, -2, -3, 0, 0, 0, -1, -2, -2, -2, -3, -1, -1, -3, 0, -3, //2912 --1, 0, -1, -3, -2, 0, 1, -1, -3, -2, 1, -3, -1, -4, 1, 1, //2928 --4, -4, -3, 2, -5, -2, -2, -2, -2, -2, -2, -1, -4, 0, -2, 0, //2944 --2, -3, -1, -5, -3, 1, -1, -1, -3, 1, 0, -3, -1, 0, -1, -1, //2960 -1, -2, -2, -1, -1, -3, -3, -1, -2, -2, -3, -2, 1, -3, -2, -2, //2976 --2, -2, -4, -1, -4, 1, -1, -3, -5, 0, 1, 0, -3, -2, -2, -2, //2992 --2, -2, 0, -2, 0, 0, -1, -2, -2, -4, -1, -4, 1, -1, -3, -4, //3008 -0, -4, 1, -2, -2, -2, -1, -1, -6, -2, -1, -1, 1, -1, -3, -6, //3024 --1, 0, -1, 0, -2, -4, -1, -3, -3, 2, -2, -3, -3, -5, 0, 1, //3040 --2, -3, -1, -2, 0, -2, 1, -3, -1, 0, -2, -2, -2, -3, -1, -3, //3056 -1, -2, -2, -2, -2, -2, 1, 0, -1, -3, -3, -2, -1, 1, -3, -2, //3072 --2, -2, -2, -2, -2, -2, -3, -2, 2, -3, -1, -2, -3, -2, -1, -3, //3088 -1, -3, -2, -2, -2, -3, 1, -1, -4, -2, -1, -3, -2, 2, -3, -6, //3104 --3, -3, -2, -2, 0, -1, 0, 0, -2, -2, -2, -2, -1, -2, -6, -1, //3120 -1, 0, 0, -1, -6, -2, -1, -3, -2, -1, 1, -2, -3, -2, -1, -2, //3136 --1, -3, -1, -4, 1, -1, -3, -5, -4, 1, 0, -3, -1, 1, -1, -2, //3152 --2, -2, -2, -1, -1, -4, -2, -2, -2, -2, -2, -2, -2, -2, -2, -3, //3168 -2, -2, -1, -2, -3, -3, -2, 2, -2, -3, -2, 0, -2, -2, -3, -3, //3184 --1, -3, 2, -2, -4, -4, -4, -2, 2, -2, -3, -1, 0, 0, -3, -1, //3200 --1, 1, 1, -3, -3, 0, 0, 0, -3, -3, -1, 0, 1, 0, -3, -2, //3216 --2, -1, 1, -2, 0, 1, -2, -2, -2, -2, -2, -4, -1, -3, -2, -2, //3232 --2, -1, 1, 1, -2, -3, -1, 1, 0, -2, -3, -3, -2, 0, 0, -1, //3248 --2, -4, -2, -3, -3, -2, 2, -2, -3, -1, -2, -4, -2, 0, -1, -4, //3264 -1, -1, -3, -4, -4, -4, 1, -2, -2, -3, -2, -2, 0, -3, 0, -1, //3280 --3, 1, -3, -2, -2, -3, 1, -1, -2, -4, 0, -4, 1, -1, -3, -1, //3296 --1, -3, -2, -2, -1, 1, 0, -1, -4, -2, 1, 1, -1, -2, -1, -2, //3312 -0, -1, -3, -3, -2, 2, -3, -1, -1, -3, -3, 2, -3, -2, -2, -2, //3328 --2, -2, -2, -2, -2, -3, -1, -3, -1, 0, -1, -2, -3, 0, -4, -1, //3344 --2, 1, -2, -2, -2, -2, -2, -2, -3, -1, 0, -3, -2, -1, 0, 0, //3360 --1, -3, -1, -2, -4, -5, -3, -2, -2, -2, -2, -2, -2, -2, -2, -1, //3376 -1, 0, -3, -2, -2, -2, -2, -2, 1, 0, -1, -4, 0, 1, -3, 0, //3392 --4, -4, -3, 2, -3, -2, -3, -3, -1, -1, -6, -1, -3, 1, -2, -1, //3408 --2, -3, -2, -2, -3, -2, 0, 1, -3, -3, -2, 0, -1, -3, 1, -3, //3424 --2, -1, -1, -3, 1, 1, -4, -2, -3, -3, -2, -1, -2, -3, -1, -2, //3440 --4, -1, -2, -3, -5, -1, -2, -2, -2, -1, -2, -1, 0, 1, -3, -1, //3456 --2, -3, 0, 0, -1, -3, 1, 1, -2, -3, -1, -1, -3, 2, -2, -3, //3472 --1, -2, -2, -2, -2, -2, -2, -2, -2, -2, -3, -4, -3, -2, -1, -2, //3488 --3, -1, -5, -3, -2, -1, 0, 1, 0, 0, -3, -1, -3, 1, 1, -2, //3504 --2, -2, -1, -2, -1, -2, 1, -3, -1, -1, 0, 0, 0, -4, 1, -1, //3520 --2, -3, -3, 0, -1, -6, -2, -1, -2, -2, -2, 1, -6, -1, 1, -1, //3536 --4, -2, 2, -3, -1, -2, -4, -1, 1, -1, -2, 0, -2, -2, -2, -1, //3552 --2, -3, 2, -2, -4, -1, 0, 0, 0, 0, -3, 1, -3, 1, -1, -2, //3568 --3, -2, -2, -2, -2, -2, -3, -2, -1, -3, 0, 0, 0, 0, -3, 1, //3584 -0, -1, 0, 1, -3, 0, 0, 0, -1, -2, -2, -2, -2, -2, -2, -3, //3600 --1, 1, -1, -2, -2, -2, -2, -2, -1, -2, -3, 0, -2, -1, -2, -2, //3616 --2, -5, 0, -3, -3, -2, -5, -1, 0, 0, -2, -3, 1, 1, 0, 0, //3632 --3, 0, -2, 0, 0, -3, 1, 0, 0, 0, 0, -3, -2, -1, 0, 0, //3648 --4, -3, -2, -1, 0, 1, 0, -3, -2, -2, -2, -2, -2, -2, -1, -4, //3664 --3, -3, -2, -1, -2, -3, -2, -2, -2, -2, -4, -4, 1, -3, -2, 1, //3680 -0, 0, 0, -2, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, -1, -3, //3696 -0, 1, -1, -2, -2, -2, -2, -3, -1, 0, -1, -3, 0, -3, -3, -2, //3712 --2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -3, -5, -2, -2, -3, -3, //3728 -0, -2, -4, -3, -5, -4, 1, -2, -3, -3, -2, -2, 0, 1, -3, 0, //3744 -0, 0, 0, -1, -1, -4, 1, -1, -2, -3, -3, 0, -4, -2, 1, 1, //3760 -0, -1, -4, -2, -2, -1, -3, 2, -2, -6, -2, -1, -3, 2, -2, -4, //3776 --1, -4, 0, -5, -2, -5, -1, -3, 0, -5, -2, -2, -2, -3, -2, -1, //3792 --3, 1, -1, -1, -2, -3, -1, 1, -1, 0, -2, -3, 0, 0, 0, 0, //3808 --3, 1, 0, 0, 0, -3, -2, -1, 0, 0, -1, -6, -2, 0, -1, -1, //3824 --2, -2, -2, -2, -1, -5, -3, -2, -2, -1, -4, -3, -1, -2, -3, -5, //3840 --1, -2, -3, 1, -3, -1, 0, -3, -2, 1, 0, -1, -2, -3, 1, 1, //3856 -0, -1, 0, 1, -2, -2, -2, -2, -2, 0, -1, -5, -3, -2, -1, -5, //3872 --2, -3, -3, 2, -2, -4, 0, -4, 1, -3, -2, -2, -1, 1, -3, -2, //3888 -1, 0, 0, 0, -2, -1, -2, -1, 1, 0, 0, 0, 0, 0, 0, -3, //3904 --2, -2, -2, -3, 1, -1, -2, -3, -4, -5, 1, -1, -2, -2, -3, -2, //3920 --1, 0, 1, -3, -5, -1, -2, -2, -2, -3, -1, -6, -2, 2, -3, -5, //3936 --3, -2, -4, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, //3952 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //3968 -0, 0, 0, -3, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //3984 --4, -3, -5, -4, -4, -4, -4, -4, -4, -4, -4, -4, -3, 0, 0, 0, //4000 -0, 0, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, //4016 -4, -1, 0, 0, 0, 0, 0, -5, -4, -4, -4, -4, -4, -6, -8, -8, //4032 --8, -8, -8, -8, -8, -8, -8, -8, -8, -9, -4, -4, -4, -4, -4, -4, //4048 --4, 0, 0, 0, 0, 0, 0, 5, 4, 4, 4, 4, 4, 4, 4, 4, //4064 -4, 4, 4, 5, -1, 0, 0, 0, 0, 0, 0, 0, -4, -4, -4, -4, //4080 --4, -4, -4, -4, -4, -4, -9, -8, -8, -8, -8, -8, -8, -8, -8, -9, //4096 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, 1, 0, 0, 0, 0, //4112 -0, 0, 0, 0, 0, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, //4128 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4, -4, -4, -4, -4, -4, //4144 --4, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -9, -4, //4160 --4, -4, -4, -4, -5, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 4, //4176 -4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 0, 0, 0, 0, 0, //4192 --2, -4, -4, -4, -4, -4, -9, -8, -8, -8, -8, -8, -8, -8, -8, -8, //4208 --8, -8, -8, -8, -8, -8, -8, -8, -9, -4, -4, -4, -4, -2, 0, 0, //4224 -0, 0, 5, 4, 4, 4, 4, 4, 9, 8, 8, 8, 8, 8, 8, 7, //4240 -4, 4, 4, 4, 5, 0, 0, 0, 0, -2, -4, -4, -4, -4, -9, -8, //4256 --8, -8, -8, -8, -10, -12, -12, -12, -12, -12, -13, -8, -8, -8, -8, -8, //4272 --8, -7, -4, -4, -4, 1, 0, 0, 0, 4, 4, 4, 5, 8, 8, 8, //4288 -8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 4, 4, 5, 0, 0, //4304 -0, -5, -4, -4, -8, -8, -8, -10, -12, -12, -12, -12, -17, -16, -16, -16, //4320 --16, -12, -12, -12, -12, -13, -8, -8, -9, -4, -4, -4, 0, 0, 2, 4, //4336 -4, 8, 8, 8, 10, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 8, //4352 -8, 9, 4, 4, 2, 0, -1, -4, -4, -9, -8, -13, -12, -16, -16, -16, //4368 --16, -16, -21, -20, -20, -21, -16, -16, -17, -17, -12, -12, -11, -8, -5, -4, //4384 --2, -1, 4, 4, 8, 8, 11, 12, 13, 13, 16, 16, 16, 16, 17, 16, //4400 -17, 12, 12, 13, 8, 8, 5, 4, 2, 0, -4, -4, -4, -9, -8, -12, //4416 --13, -12, -17, -16, -16, -16, -16, -16, -16, -16, -16, -17, -13, -13, -12, -11, //4432 --8, -8, -4, -4, -2, 0, 1, 4, 4, 9, 8, 8, 12, 12, 12, 12, //4448 -12, 12, 12, 12, 10, 8, 8, 8, 5, 4, 5, -1, 0, -4, -4, -4, //4464 --6, -8, -8, -8, -13, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, //4480 --8, -8, -8, -8, -5, -4, -4, -4, -4, 0, 0, 0, 0, 0, 0, 0, //4496 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //4512 -0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 4, 4, 4, 4, 4, 4, //4528 -4, 4, 0, 0, 0, 0, 0, -4, -4, -4, -4, -9, -8, -8, -8, -13, //4544 --12, -12, -12, -12, -17, -16, -16, -16, -12, -12, -12, -13, -8, -8, -5, -4, //4560 --5, 0, 0, 5, 4, 9, 8, 13, 12, 12, 17, 17, 16, 16, 16, 16, //4576 -16, 17, 17, 12, 12, 9, 9, 4, 4, 0, -4, -3, -9, -10, -12, -16, //4592 --20, -20, -22, -24, -24, -25, -29, -29, -28, -27, -24, -25, -22, -20, -19, -17, //4608 --12, -9, -6, -5, 0, 5, 8, 11, 12, 17, 16, 20, 21, 25, 25, 25, //4624 -25, 25, 25, 25, 23, 21, 20, 17, 12, 9, 7, 5, 0, -4, -9, -11, //4640 --13, -16, -20, -24, -24, -26, -29, -29, -29, -29, -29, -29, -29, -25, -25, -20, //4656 --18, -17, -12, -8, -5, -2, -1, 4, 9, 12, 15, 16, 21, 21, 21, 24, //4672 -25, 25, 25, 25, 25, 25, 20, 21, 16, 17, 12, 9, 9, 4, -1, 0, //4688 --4, -9, -10, -12, -13, -16, -19, -20, -20, -20, -20, -20, -20, -20, -20, -20, //4704 --16, -17, -17, -12, -12, -11, -8, -5, -4, -5, 0, 0, 4, 4, 6, 8, //4720 -8, 8, 13, 13, 12, 12, 12, 12, 12, 12, 12, 12, 13, 12, 8, 8, //4736 -8, 7, 4, 4, 0, 0, -1, -4, -4, -9, -8, -8, -13, -12, -12, -15, //4752 --16, -16, -16, -16, -16, -16, -16, -17, -17, -12, -12, -12, -11, -8, -8, -4, //4768 --4, 1, 0, 1, 4, 4, 9, 9, 10, 12, 12, 12, 15, 16, 17, 17, //4784 -16, 17, 12, 12, 13, 12, 8, 8, 6, 4, 4, 0, 0, -5, -4, -9, //4800 --8, -12, -12, -12, -17, -16, -16, -16, -16, -16, -21, -20, -17, -16, -16, -16, //4816 --17, -12, -12, -13, -8, -8, -7, -4, -5, 0, 0, 1, 4, 4, 9, 8, //4832 -8, 8, 9, 12, 12, 12, 12, 13, 12, 8, 8, 8, 8, 8, 5, 4, //4848 -4, 2, 0, 0, -3, -4, -4, -9, -8, -8, -11, -12, -12, -13, -13, -16, //4864 --16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -12, -12, -13, -8, -8, //4880 --5, -4, -2, -1, 4, 4, 9, 11, 12, 14, 17, 20, 20, 20, 25, 25, //4896 -25, 25, 25, 25, 20, 20, 17, 17, 14, 11, 9, 4, -1, -5, -8, -12, //4912 --16, -21, -24, -27, -31, -33, -34, -37, -37, -37, -37, -37, -37, -37, -32, -30, //4928 --27, -25, -19, -13, -10, -4, 2, 4, 12, 17, 24, 27, 30, 34, 37, 42, //4944 -41, 46, 45, 46, 41, 41, 37, 32, 33, 25, 17, 14, 8, 3, -5, -11, //4960 --20, -22, -31, -33, -41, -45, -50, -51, -53, -53, -53, -53, -54, -48, -47, -44, //4976 --37, -33, -26, -20, -15, -8, -1, 7, 12, 19, 21, 29, 33, 37, 42, 42, //4992 -45, 45, 45, 45, 44, 42, 37, 33, 31, 25, 20, 15, 8, 4, 0, -7, //5008 --10, -13, -19, -23, -26, -28, -33, -33, -37, -37, -37, -36, -36, -33, -33, -28, //5024 --27, -25, -20, -17, -17, -12, -8, -4, 0, 3, 3, 8, 13, 13, 16, 19, //5040 -20, 21, 22, 25, 25, 25, 25, 25, 25, 25, 21, 21, 21, 16, 17, 12, //5056 -13, 8, 7, 5, 0, -4, -7, -7, -13, -13, -16, -19, -20, -22, -24, -24, //5072 --24, -29, -29, -29, -24, -25, -25, -20, -21, -16, -16, -12, -8, -5, -2, -1, //5088 -5, 8, 8, 13, 14, 16, 16, 21, 21, 21, 21, 21, 20, 21, 16, 16, //5104 -15, 12, 9, 9, 3, 2, 0, 0, -4, -9, -8, -13, -12, -12, -17, -16, //5120 --16, -16, -16, -16, -13, -12, -12, -13, -8, -8, -9, -4, -4, -3, 0, 0, //5136 -0, 2, 4, 4, 4, 4, 4, 2, 0, 0, 0, 0, -5, -4, -4, -8, //5152 --8, -8, -8, -8, -8, -8, -8, -8, -8, -9, -4, -4, -1, 0, 1, 4, //5168 -8, 11, 12, 14, 17, 17, 20, 21, 21, 21, 20, 21, 17, 16, 14, 13, //5184 -9, 3, -1, -4, -8, -12, -16, -21, -25, -29, -33, -33, -37, -37, -37, -37, //5200 --37, -37, -33, -29, -26, -23, -19, -16, -8, -1, 2, 8, 14, 21, 25, 29, //5216 -34, 34, 37, 41, 41, 41, 41, 40, 37, 34, 30, 27, 23, 20, 12, 4, //5232 -2, -4, -9, -16, -21, -28, -31, -34, -38, -41, -45, -45, -45, -45, -45, -45, //5248 --40, -41, -37, -33, -29, -24, -20, -13, -11, -4, 1, 8, 10, 16, 20, 24, //5264 -29, 34, 36, 37, 37, 37, 37, 37, 37, 35, 34, 29, 24, 20, 17, 13, //5280 -8, 0, -3, -6, -12, -16, -20, -25, -29, -34, -34, -36, -37, -41, -41, -41, //5296 --41, -36, -37, -34, -34, -28, -27, -24, -17, -14, -10, -7, -4, 5, 9, 13, //5312 -17, 21, 21, 28, 28, 33, 33, 32, 37, 37, 34, 33, 33, 32, 29, 25, //5328 -20, 18, 15, 12, 5, 0, -4, -11, -13, -16, -25, -29, -33, -37, -41, -41, //5344 --45, -45, -45, -45, -45, -41, -38, -38, -32, -27, -24, -16, -9, -6, 1, 8, //5360 -16, 19, 25, 32, 34, 38, 41, 44, 45, 45, 45, 45, 41, 37, 33, 29, //5376 -24, 16, 9, 4, -2, -10, -13, -24, -27, -32, -37, -41, -45, -49, -49, -49, //5392 --49, -49, -45, -42, -38, -36, -29, -24, -12, -10, -2, 6, 12, 17, 29, 31, //5408 -37, 41, 45, 50, 50, 49, 50, 50, 45, 42, 38, 35, 27, 24, 16, 8, //5424 -1, -6, -14, -22, -28, -36, -41, -45, -49, -53, -53, -58, -58, -53, -54, -49, //5440 --45, -37, -35, -27, -24, -13, -5, 3, 10, 17, 25, 33, 37, 44, 47, 49, //5456 -54, 54, 53, 54, 54, 50, 45, 41, 34, 32, 24, 16, 9, 1, -6, -14, //5472 --17, -28, -32, -40, -43, -46, -50, -53, -58, -57, -57, -57, -57, -53, -49, -45, //5488 --41, -35, -29, -21, -18, -11, -4, 1, 12, 16, 23, 31, 33, 41, 46, 50, //5504 -54, 58, 57, 58, 58, 58, 57, 56, 53, 46, 43, 37, 31, 23, 20, 9, //5520 -1, -8, -18, -26, -36, -44, -47, -55, -62, -67, -73, -73, -76, -77, -77, -74, //5536 --69, -65, -58, -56, -48, -33, -26, -18, -5, 2, 13, 29, 39, 47, 60, 67, //5552 -75, 81, 86, 91, 91, 91, 90, 86, 82, 76, 69, 61, 46, 34, 22, 10, //5568 --3, -13, -31, -43, -55, -67, -74, -86, -93, -98, -103, -102, -102, -99, -96, -90, //5584 --84, -75, -62, -51, -40, -29, -15, -2, 16, 27, 38, 49, 59, 66, 78, 82, //5600 -87, 91, 91, 90, 86, 82, 76, 69, 61, 50, 37, 28, 20, 7, -4, -20, //5616 --31, -39, -47, -54, -66, -70, -74, -78, -78, -77, -78, -74, -71, -68, -61, -57, //5632 --45, -38, -30, -21, -11, 0, 7, 15, 23, 30, 38, 45, 53, 56, 57, 62, //5648 -62, 62, 62, 57, 56, 53, 46, 38, 35, 27, 19, 12, 0, -7, -15, -22, //5664 --30, -38, -44, -52, -55, -57, -62, -61, -61, -61, -62, -57, -53, -45, -42, -35, //5680 --27, -19, -12, -1, 12, 19, 26, 34, 45, 48, 53, 58, 62, 62, 62, 62, //5696 -59, 56, 53, 45, 37, 25, 18, 11, -1, -12, -24, -31, -41, -51, -54, -65, //5712 --68, -71, -73, -74, -74, -69, -65, -58, -56, -48, -33, -26, -15, -6, 2, 13, //5728 -29, 36, 44, 51, 58, 66, 66, 70, 71, 65, 66, 58, 55, 50, 43, 36, //5744 -29, 12, 5, -2, -9, -22, -33, -36, -43, -49, -53, -58, -61, -61, -61, -62, //5760 --56, -56, -50, -47, -41, -34, -32, -21, -17, -10, -4, 2, 9, 16, 20, 28, //5776 -31, 34, 37, 41, 44, 45, 45, 45, 45, 45, 45, 43, 42, 36, 33, 30, //5792 -27, 24, 16, 11, 5, -3, -6, -14, -21, -29, -36, -39, -45, -51, -54, -57, //5808 --62, -61, -61, -61, -61, -58, -54, -52, -45, -40, -29, -21, -14, -6, 2, 10, //5824 -24, 32, 39, 47, 54, 62, 70, 73, 74, 74, 74, 74, 71, 68, 62, 56, //5840 -49, 37, 30, 18, 11, -2, -9, -27, -35, -45, -55, -62, -73, -76, -81, -86, //5856 --86, -86, -86, -82, -77, -72, -64, -57, -45, -39, -26, -14, -6, 12, 19, 32, //5872 -41, 51, 58, 70, 74, 78, 83, 82, 83, 82, 79, 77, 70, 65, 53, 46, //5888 -34, 27, 15, 7, -11, -19, -31, -38, -50, -61, -64, -72, -75, -78, -78, -78, //5904 --78, -75, -73, -65, -61, -49, -42, -35, -22, -15, 0, 7, 18, 26, 34, 42, //5920 -53, 57, 60, 63, 66, 66, 66, 66, 62, 57, 52, 45, 38, 30, 23, 15, //5936 -7, -8, -15, -23, -30, -38, -45, -53, -56, -59, -61, -61, -61, -61, -57, -53, //5952 --47, -45, -33, -26, -18, -10, -3, 5, 16, 23, 32, 34, 42, 45, 45, 50, //5968 -49, 48, 46, 41, 37, 30, 25, 20, 12, 1, -7, -14, -22, -29, -37, -40, //5984 --45, -44, -49, -49, -45, -46, -41, -36, -31, -28, -17, -9, -1, 1, 9, 21, //6000 -25, 29, 33, 38, 37, 41, 41, 39, 38, 33, 28, 22, 13, 11, 3, -5, //6016 --12, -20, -25, -31, -34, -36, -41, -41, -41, -41, -40, -37, -33, -25, -23, -16, //6032 --12, -4, 4, 8, 13, 18, 20, 25, 28, 29, 29, 29, 29, 24, 22, 21, //6048 -17, 13, 8, 0, -3, -6, -9, -12, -16, -19, -20, -20, -20, -21, -21, -18, //6064 --16, -15, -12, -9, -9, -3, -2, 0, 0, 4, 4, 4, 4, 4, 4, 4, //6080 -5, -1, 0, 0, -4, -4, -4, -9, -8, -8, -8, -8, -8, -8, -8, -4, //6096 --4, -4, -2, 0, 0, 0, 5, 4, 4, 4, 4, 4, 4, 4, 3, 0, //6112 -0, 0, -3, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -5, 0, //6128 -0, 0, 0, -1, 5, 4, 4, 0, 0, 0, 1, -4, -4, -4, -9, -8, //6144 --10, -12, -12, -12, -12, -12, -12, -12, -12, -8, -6, -5, 1, 1, 7, 7, //6160 -13, 14, 17, 20, 20, 21, 21, 20, 20, 17, 13, 10, 9, 4, 0, -8, //6176 --11, -14, -17, -20, -25, -24, -29, -29, -29, -25, -24, -20, -16, -12, -9, -3, //6192 -0, 4, 11, 14, 17, 20, 25, 25, 25, 25, 25, 21, 17, 14, 11, 8, //6208 -0, -8, -10, -16, -22, -25, -28, -33, -35, -37, -37, -32, -29, -26, -23, -16, //6224 --11, 0, 8, 15, 21, 26, 34, 40, 44, 47, 49, 49, 49, 46, 43, 40, //6240 -31, 24, 12, 5, -2, -15, -22, -29, -40, -48, -56, -59, -62, -66, -65, -65, //6256 --63, -60, -57, -45, -38, -30, -23, -10, -3, 12, 24, 34, 43, 50, 58, 66, //6272 -69, 70, 72, 70, 69, 65, 59, 54, 49, 36, 25, 14, 7, -6, -14, -25, //6288 --41, -48, -55, -61, -65, -70, -74, -74, -74, -70, -65, -57, -54, -47, -39, -32, //6304 --20, -9, 2, 10, 18, 26, 37, 45, 47, 53, 58, 58, 62, 61, 59, 59, //6320 -54, 49, 41, 39, 31, 23, 16, 4, -3, -11, -18, -25, -32, -41, -45, -49, //6336 --53, -53, -57, -57, -58, -52, -51, -48, -41, -38, -33, -27, -20, -16, -5, 3, //6352 -6, 14, 21, 29, 33, 37, 42, 43, 45, 49, 49, 50, 45, 46, 42, 37, //6368 -33, 26, 24, 15, 4, 1, -7, -14, -22, -30, -36, -41, -48, -51, -53, -57, //6384 --57, -57, -58, -52, -52, -45, -41, -34, -27, -19, -12, 0, 10, 19, 26, 33, //6400 -37, 45, 53, 56, 57, 58, 57, 58, 53, 47, 44, 36, 25, 17, 7, -1, //6416 --9, -21, -32, -40, -47, -53, -58, -61, -66, -66, -60, -60, -57, -49, -42, -34, //6432 --27, -18, -8, 3, 14, 22, 30, 37, 45, 49, 52, 53, 54, 53, 50, 47, //6448 -38, 36, 28, 20, 9, 2, -9, -14, -21, -32, -36, -39, -40, -45, -45, -45, //6464 --40, -38, -36, -29, -20, -16, -9, -1, 1, 9, 16, 20, 25, 27, 29, 29, //6480 -29, 29, 24, 23, 20, 12, 8, 1, -4, -9, -16, -24, -28, -31, -32, -37, //6496 --37, -37, -37, -34, -31, -27, -21, -13, -10, -2, 4, 9, 21, 23, 29, 33, //6512 -37, 41, 41, 46, 45, 44, 42, 37, 33, 28, 22, 15, 8, -4, -11, -19, //6528 --26, -34, -41, -49, -53, -57, -62, -62, -65, -66, -61, -59, -57, -49, -41, -33, //6544 --24, -15, -2, 5, 23, 34, 43, 53, 63, 74, 77, 82, 87, 86, 86, 83, //6560 -80, 72, 64, 55, 44, 26, 16, -1, -11, -27, -44, -56, -69, -78, -87, -95, //6576 --101, -102, -102, -102, -97, -94, -83, -72, -61, -51, -35, -16, -1, 14, 29, 39, //6592 -54, 70, 80, 86, 93, 96, 99, 99, 95, 90, 85, 78, 62, 51, 40, 30, //6608 -16, 4, -12, -24, -36, -42, -55, -61, -69, -69, -74, -74, -73, -70, -70, -65, //6624 --59, -56, -48, -42, -34, -26, -23, -16, -8, 0, 4, 9, 15, 17, 24, 24, //6640 -29, 33, 38, 38, 41, 44, 45, 46, 46, 49, 49, 50, 45, 45, 45, 41, //6656 -37, 33, 29, 24, 16, 5, -1, -10, -18, -25, -37, -49, -56, -64, -66, -75, //6672 --81, -84, -85, -86, -86, -82, -74, -71, -64, -51, -43, -25, -14, 1, 12, 28, //6688 -38, 57, 69, 79, 88, 96, 100, 106, 107, 108, 103, 98, 87, 79, 69, 58, //6704 -43, 28, 9, -6, -21, -36, -51, -67, -84, -95, -104, -112, -115, -118, -118, -116, //6720 --113, -105, -98, -82, -70, -56, -42, -27, -12, 11, 26, 41, 57, 72, 90, 98, //6736 -106, 114, 116, 119, 116, 113, 105, 97, 88, 77, 55, 42, 25, 9, -7, -32, //6752 --47, -62, -78, -88, -100, -114, -117, -121, -122, -122, -114, -107, -100, -88, -75, -60, //6768 --37, -22, -5, 12, 28, 46, 65, 81, 88, 101, 103, 111, 111, 112, 107, 102, //6784 -95, 78, 66, 52, 38, 22, 7, -15, -30, -46, -56, -67, -82, -89, -94, -99, //6800 --98, -97, -91, -86, -77, -67, -59, -48, -30, -18, -6, 8, 17, 33, 40, 48, //6816 -56, 59, 62, 62, 62, 59, 57, 49, 45, 33, 26, 16, 7, -1, -12, -20, //6832 --22, -28, -33, -33, -37, -37, -32, -31, -29, -24, -17, -12, -6, 0, 5, 12, //6848 -20, 23, 25, 26, 29, 25, 21, 18, 16, 8, 3, -8, -10, -18, -27, -29, //6864 --40, -44, -49, -51, -53, -53, -53, -49, -45, -39, -32, -24, -9, 2, 12, 21, //6880 -34, 45, 57, 65, 67, 74, 79, 82, 79, 79, 74, 69, 62, 50, 38, 26, //6896 -13, 3, -20, -32, -46, -59, -71, -82, -94, -98, -102, -107, -106, -103, -99, -91, //6912 --83, -74, -64, -46, -31, -15, 0, 15, 30, 52, 68, 79, 90, 100, 111, 114, //6928 -115, 116, 111, 107, 98, 92, 80, 68, 56, 41, 17, 2, -12, -32, -47, -69, //6944 --85, -95, -104, -112, -119, -122, -123, -118, -114, -109, -101, -87, -71, -61, -46, -31, //6960 --8, 11, 26, 41, 56, 72, 90, 97, 105, 113, 115, 115, 112, 109, 101, 94, //6976 -81, 62, 51, 36, 21, 6, -9, -32, -47, -59, -71, -83, -90, -102, -105, -106, //6992 --105, -103, -94, -87, -80, -67, -54, -44, -21, -11, 5, 18, 30, 41, 57, 65, //7008 -73, 76, 79, 82, 82, 78, 74, 69, 61, 50, 38, 28, 17, 8, -5, -19, //7024 --27, -35, -42, -49, -54, -58, -57, -57, -58, -53, -49, -42, -34, -27, -19, -12, //7040 --1, 4, 11, 18, 21, 29, 33, 33, 38, 33, 33, 28, 26, 21, 14, 7, //7056 -0, -7, -15, -21, -27, -30, -36, -36, -37, -37, -36, -36, -29, -26, -18, -15, //7072 --7, 4, 12, 19, 27, 30, 38, 45, 48, 49, 49, 50, 50, 45, 37, 35, //7088 -27, 20, 4, -4, -14, -22, -30, -38, -49, -56, -61, -66, -66, -69, -70, -66, //7104 --63, -60, -52, -41, -34, -21, -12, -1, 10, 28, 36, 46, 55, 63, 66, 74, //7120 -77, 78, 79, 74, 70, 66, 59, 49, 40, 31, 13, 3, -10, -22, -34, -45, //7136 --61, -68, -76, -84, -86, -90, -94, -92, -90, -84, -81, -70, -59, -51, -37, -27, //7152 --12, 7, 20, 33, 46, 58, 74, 82, 89, 95, 99, 99, 99, 96, 93, 85, //7168 -78, 66, 50, 35, 23, 9, -6, -28, -43, -56, -70, -80, -91, -101, -110, -113, //7184 --114, -113, -110, -103, -96, -83, -75, -61, -41, -26, -11, 4, 20, 39, 56, 72, //7200 -83, 92, 100, 111, 115, 115, 113, 110, 103, 91, 84, 71, 58, 43, 28, 5, //7216 --10, -25, -45, -55, -77, -88, -96, -104, -110, -114, -115, -111, -108, -100, -92, -85, //7232 --67, -54, -40, -25, -10, 12, 23, 38, 51, 64, 72, 86, 89, 95, 95, 94, //7248 -94, 87, 80, 72, 63, 53, 37, 22, 11, 1, -14, -26, -40, -48, -55, -61, //7264 --67, -69, -74, -71, -70, -65, -61, -53, -46, -38, -29, -19, -11, 0, 7, 15, //7280 -22, 28, 32, 37, 42, 41, 41, 40, 37, 33, 29, 23, 16, 11, 5, -3, //7296 --6, -12, -17, -17, -20, -23, -24, -23, -20, -16, -17, -12, -8, -4, -1, 5, //7312 -8, 12, 17, 17, 20, 21, 20, 18, 17, 13, 8, 4, -3, -5, -12, -17, //7328 --24, -28, -33, -38, -38, -41, -41, -41, -39, -37, -32, -25, -22, -13, -11, -3, //7344 -5, 16, 21, 27, 33, 39, 45, 48, 49, 49, 50, 50, 45, 42, 39, 33, //7360 -27, 20, 9, 6, -2, -10, -17, -29, -33, -40, -42, -50, -50, -53, -53, -53, //7376 --53, -54, -49, -45, -41, -37, -31, -25, -16, -9, -1, 6, 14, 22, 28, 36, //7392 -39, 45, 49, 53, 54, 58, 58, 53, 54, 49, 45, 41, 35, 29, 24, 13, //7408 -5, -2, -10, -17, -25, -36, -44, -46, -53, -58, -61, -61, -61, -62, -56, -57, //7424 --50, -45, -38, -31, -23, -16, -5, 3, 6, 14, 21, 29, 37, 40, 43, 45, //7440 -50, 50, 49, 47, 46, 41, 38, 33, 28, 22, 20, 13, 4, 0, -8, -9, //7456 --16, -20, -25, -29, -34, -34, -36, -36, -41, -41, -39, -37, -36, -33, -33, -29, //7472 --24, -24, -17, -12, -8, -4, 0, 6, 9, 16, 16, 21, 22, 24, 29, 29, //7488 -29, 29, 29, 29, 24, 25, 21, 16, 15, 9, 5, 5, 0, -5, -5, -8, //7504 --13, -12, -17, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, //7520 --16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -13, -13, -10, -6, -2, //7536 -1, 8, 12, 20, 22, 29, 34, 41, 40, 46, 47, 49, 49, 46, 46, 41, //7552 -35, 33, 21, 14, 1, -6, -18, -25, -40, -47, -60, -65, -70, -78, -82, -82, //7568 --81, -80, -77, -70, -59, -51, -41, -30, -20, -1, 14, 27, 38, 50, 66, 73, //7584 -81, 89, 92, 95, 95, 92, 89, 81, 73, 65, 47, 36, 20, 10, -6, -24, //7600 --40, -50, -61, -71, -78, -89, -94, -96, -98, -97, -93, -87, -79, -72, -59, -51, //7616 --33, -22, -6, 4, 15, 26, 44, 52, 60, 68, 75, 78, 83, 82, 83, 78, //7632 -74, 66, 58, 51, 42, 32, 19, 5, -6, -14, -27, -33, -49, -57, -61, -68, //7648 --71, -73, -74, -74, -71, -68, -64, -56, -50, -43, -30, -23, -14, 0, 11, 19, //7664 -27, 34, 42, 50, 57, 57, 62, 62, 62, 57, 53, 49, 44, 37, 29, 21, //7680 -14, 7, -6, -13, -20, -27, -33, -39, -42, -45, -48, -49, -47, -45, -44, -38, //7696 --34, -30, -27, -20, -16, -8, -1, 3, 6, 10, 13, 16, 21, 20, 25, 25, //7712 -25, 25, 22, 21, 20, 20, 17, 17, 12, 13, 8, 9, 4, 4, 2, 0, //7728 -0, -4, -4, -9, -8, -12, -12, -17, -16, -21, -20, -20, -25, -25, -25, -24, //7744 --23, -21, -21, -16, -13, -11, -9, -4, 0, 5, 11, 12, 16, 21, 24, 24, //7760 -25, 25, 25, 25, 21, 21, 17, 12, 8, 0, -3, -8, -13, -18, -21, -24, //7776 --29, -28, -33, -32, -29, -29, -26, -23, -19, -16, -8, -1, 4, 11, 13, 20, //7792 -25, 28, 28, 33, 33, 33, 29, 26, 23, 19, 16, 5, 2, -6, -12, -17, //7808 --25, -33, -35, -36, -41, -41, -41, -41, -38, -35, -32, -24, -17, -9, -4, 2, //7824 -9, 21, 28, 31, 37, 41, 46, 49, 49, 47, 46, 41, 37, 29, 21, 19, //7840 -9, -1, -12, -20, -27, -35, -42, -49, -57, -60, -61, -63, -64, -61, -58, -55, //7856 --49, -43, -36, -24, -13, -5, 4, 14, 21, 36, 41, 48, 56, 58, 62, 66, //7872 -66, 66, 61, 61, 53, 46, 38, 31, 24, 16, 0, -7, -19, -26, -33, -46, //7888 --53, -60, -65, -69, -74, -74, -74, -73, -71, -69, -61, -53, -46, -38, -31, -22, //7904 --11, 3, 14, 22, 35, 42, 58, 65, 70, 77, 80, 83, 86, 86, 84, 81, //7920 -77, 69, 58, 51, 39, 27, 16, -4, -14, -30, -40, -54, -66, -82, -89, -96, //7936 --102, -106, -107, -106, -103, -101, -93, -85, -70, -54, -44, -29, -14, 1, 27, 43, //7952 -56, 69, 83, 99, 107, 111, 116, 115, 115, 111, 104, 97, 84, 71, 61, 34, //7968 -19, 1, -15, -35, -57, -72, -88, -98, -108, -116, -122, -122, -122, -121, -113, -105, //7984 --91, -81, -65, -50, -34, -9, 10, 26, 41, 56, 72, 90, 97, 106, 109, 111, //8000 -112, 107, 100, 92, 83, 73, 50, 38, 23, 8, -7, -22, -44, -55, -66, -75, //8016 --84, -87, -93, -94, -89, -89, -81, -70, -62, -50, -41, -31, -16, 0, 12, 24, //8032 -31, 38, 46, 57, 60, 62, 62, 62, 58, 55, 50, 43, 37, 32, 21, 13, //8048 -6, -2, -10, -12, -20, -25, -29, -30, -33, -32, -33, -33, -28, -29, -24, -21, //8064 --18, -17, -12, -11, -8, -5, -4, -5, 0, 0, 0, 0, 0, 0, 0, 4, //8080 -4, 4, 4, 4, 5, 8, 8, 11, 12, 12, 17, 17, 17, 16, 16, 17, //8096 -17, 12, 13, 8, 3, 3, -4, -8, -12, -16, -20, -24, -29, -33, -37, -37, //8112 --37, -37, -37, -37, -33, -29, -25, -16, -9, -6, 2, 10, 17, 25, 32, 37, //8128 -44, 46, 49, 54, 54, 51, 50, 45, 37, 34, 26, 19, 6, -1, -16, -23, //8144 --33, -43, -50, -58, -65, -69, -74, -74, -74, -69, -65, -58, -51, -44, -32, -17, //8160 --6, 6, 18, 30, 42, 57, 64, 72, 78, 83, 83, 82, 79, 77, 70, 61, //8176 -49, 38, 26, 13, -1, -13, -32, -44, -55, -67, -74, -82, -86, -91, -90, -85, //8192 --85, -74, -66, -60, -47, -35, -24, -5, 5, 18, 30, 42, 53, 61, 69, 72, //8208 -74, 74, 74, 70, 64, 58, 48, 41, 26, 19, 6, -6, -14, -28, -36, -43, //8224 --52, -55, -58, -61, -61, -62, -57, -57, -49, -41, -34, -27, -19, -12, 0, 7, //8240 -15, 23, 25, 33, 37, 37, 42, 42, 37, 36, 33, 29, 25, 19, 12, 4, //8256 -1, -7, -9, -16, -20, -25, -28, -28, -29, -29, -29, -25, -25, -20, -19, -15, //8272 --9, -6, 0, 2, 5, 8, 13, 12, 17, 17, 17, 12, 12, 10, 9, 3, //8288 -3, -4, -4, -8, -13, -12, -16, -17, -16, -16, -16, -16, -12, -8, -5, -2, //8304 --1, 4, 9, 13, 15, 16, 16, 21, 21, 18, 16, 15, 13, 8, 4, -3, //8320 --6, -9, -12, -21, -25, -29, -33, -32, -37, -37, -37, -32, -31, -29, -21, -18, //8336 --9, -7, 1, 8, 16, 24, 26, 33, 37, 41, 45, 45, 45, 46, 42, 36, //8352 -32, 26, 21, 15, 8, -4, -11, -19, -26, -33, -41, -49, -52, -55, -57, -62, //8368 --62, -57, -54, -51, -48, -40, -29, -22, -14, -6, 2, 16, 24, 31, 44, 46, //8384 -54, 62, 66, 69, 70, 70, 66, 62, 58, 51, 44, 36, 21, 14, 1, -9, //8400 --19, -29, -45, -52, -60, -67, -75, -78, -81, -82, -82, -77, -72, -65, -58, -46, //8416 --39, -27, -16, 0, 15, 25, 34, 47, 54, 70, 73, 78, 83, 82, 83, 79, //8432 -76, 68, 60, 53, 41, 30, 18, 7, -5, -16, -33, -43, -51, -59, -67, -73, //8448 --77, -77, -77, -76, -73, -66, -58, -51, -43, -36, -29, -12, -6, 7, 14, 21, //8464 -33, 41, 43, 49, 54, 53, 53, 53, 54, 50, 45, 41, 34, 26, 23, 15, //8480 -8, 0, -8, -10, -16, -22, -24, -29, -33, -33, -33, -33, -33, -33, -30, -29, //8496 --24, -23, -17, -17, -12, -7, -7, -4, 0, 0, 2, 4, 4, 4, 4, 4, //8512 -4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 9, 8, 9, 13, //8528 -12, 12, 17, 16, 17, 17, 16, 15, 12, 12, 9, 4, 2, -2, -5, -11, //8544 --15, -19, -23, -26, -28, -33, -33, -32, -38, -32, -33, -29, -29, -25, -20, -15, //8560 --8, -4, 3, 5, 12, 18, 24, 28, 31, 32, 38, 37, 37, 37, 38, 33, //8576 -29, 24, 21, 16, 10, 7, -1, -8, -12, -20, -22, -25, -33, -36, -37, -39, //8592 --41, -41, -41, -36, -37, -32, -31, -28, -21, -18, -13, -8, -3, 0, 8, 12, //8608 -17, 21, 25, 29, 28, 33, 33, 33, 33, 33, 28, 29, 25, 20, 21, 12, //8624 -8, 1, -1, -4, -12, -16, -24, -26, -28, -33, -36, -37, -37, -37, -37, -37, //8640 --33, -33, -29, -25, -21, -16, -12, -5, -2, 0, 8, 13, 17, 21, 25, 26, //8656 -29, 32, 33, 33, 33, 32, 29, 26, 25, 20, 19, 16, 12, 8, 4, 0, //8672 --4, -9, -13, -15, -18, -20, -25, -25, -29, -29, -29, -30, -33, -33, -30, -29, //8688 --28, -27, -25, -21, -21, -17, -12, -8, -5, -1, 2, 6, 8, 12, 17, 21, //8704 -23, 25, 26, 29, 29, 29, 29, 29, 28, 25, 22, 21, 16, 15, 11, 5, //8720 -1, -2, -5, -8, -12, -17, -19, -20, -25, -24, -29, -29, -28, -33, -33, -33, //8736 --33, -28, -28, -29, -29, -24, -25, -20, -19, -17, -12, -8, -5, -5, 0, 4, //8752 -9, 16, 19, 23, 26, 30, 37, 36, 42, 43, 45, 45, 45, 46, 41, 39, //8768 -36, 32, 26, 18, 12, 6, -1, -12, -20, -27, -35, -42, -50, -57, -61, -66, //8784 --66, -67, -66, -65, -61, -54, -52, -44, -33, -22, -14, -4, 5, 17, 29, 39, //8800 -47, 53, 58, 66, 71, 70, 70, 70, 69, 62, 58, 51, 43, 36, 28, 13, //8816 -2, -6, -18, -26, -37, -44, -52, -60, -62, -65, -70, -70, -70, -65, -64, -61, //8832 --50, -47, -39, -31, -24, -8, -1, 7, 14, 22, 30, 41, 44, 49, 54, 55, //8848 -58, 57, 55, 54, 50, 45, 37, 34, 26, 19, 11, 3, -8, -12, -19, -26, //8864 --34, -38, -44, -47, -49, -51, -54, -49, -49, -44, -43, -37, -32, -25, -17, -12, //8880 --6, 1, 8, 16, 21, 28, 30, 32, 37, 37, 42, 42, 37, 38, 32, 29, //8896 -25, 20, 15, 12, 5, 0, -7, -10, -13, -20, -20, -25, -24, -29, -28, -29, //8912 --29, -29, -24, -25, -21, -20, -16, -14, -13, -8, -4, -4, 0, 0, 4, 4, //8928 -8, 8, 11, 12, 12, 12, 12, 12, 13, 14, 16, 12, 12, 12, 12, 12, //8944 -12, 8, 9, 4, 4, 0, 0, -4, -9, -8, -13, -13, -16, -21, -21, -22, //8960 --24, -25, -25, -25, -24, -23, -20, -16, -17, -12, -8, -3, -3, 4, 7, 7, //8976 -12, 17, 17, 20, 20, 21, 21, 21, 21, 17, 17, 12, 11, 8, 4, 0, //8992 --4, -9, -9, -12, -16, -19, -20, -20, -20, -20, -20, -21, -16, -17, -12, -8, //9008 --5, -5, 1, 1, 4, 9, 8, 13, 12, 12, 12, 13, 8, 8, 7, 5, //9024 -0, -5, -7, -7, -13, -13, -16, -21, -21, -22, -25, -24, -20, -20, -19, -17, //9040 --13, -8, -4, 0, 7, 10, 13, 20, 23, 24, 30, 30, 33, 33, 33, 31, //9056 -30, 25, 20, 16, 12, 7, 0, -4, -12, -19, -25, -31, -34, -40, -44, -44, //9072 --50, -49, -49, -44, -45, -41, -36, -31, -28, -17, -14, -6, 1, 8, 16, 24, //9088 -27, 33, 39, 41, 46, 45, 50, 50, 45, 46, 41, 37, 33, 27, 24, 13, //9104 -8, 1, -7, -9, -17, -24, -32, -35, -38, -42, -45, -49, -49, -49, -49, -48, //9120 --45, -41, -37, -33, -28, -24, -17, -12, -6, 0, 5, 13, 21, 23, 28, 33, //9136 -37, 41, 41, 46, 45, 45, 45, 42, 38, 35, 31, 28, 21, 13, 10, 2, //9152 --4, -9, -20, -23, -28, -35, -38, -41, -44, -49, -49, -49, -49, -45, -42, -38, //9168 --35, -32, -23, -17, -9, -1, 1, 10, 17, 24, 32, 35, 38, 41, 45, 45, //9184 -45, 45, 44, 41, 33, 30, 27, 19, 12, 8, -4, -12, -14, -22, -28, -33, //9200 --37, -41, -45, -45, -45, -45, -45, -40, -40, -33, -29, -21, -13, -11, -3, 5, //9216 -12, 20, 22, 29, 34, 34, 37, 40, 41, 39, 37, 36, 30, 26, 23, 16, //9232 -12, 4, -3, -8, -15, -17, -24, -29, -33, -35, -37, -37, -37, -37, -32, -30, //9248 --27, -24, -17, -13, -8, -1, 0, 8, 13, 17, 21, 25, 25, 29, 28, 29, //9264 -24, 25, 20, 17, 14, 10, 6, 3, 0, -8, -13, -15, -18, -21, -24, -24, //9280 --24, -25, -25, -20, -20, -16, -14, -10, -7, -4, 0, 4, 8, 13, 13, 16, //9296 -20, 20, 21, 21, 21, 16, 17, 12, 10, 7, 3, -3, -3, -8, -13, -13, //9312 --16, -21, -21, -20, -25, -24, -21, -21, -20, -19, -17, -12, -8, -9, -4, 1, //9328 -1, 4, 9, 8, 13, 12, 12, 12, 12, 12, 12, 13, 13, 8, 8, 9, //9344 -4, 4, 4, 0, 0, 0, 0, -1, -4, -4, -4, -4, -4, -4, -4, -1, //9360 -0, -2, -4, -4, -4, -4, -9, -8, -12, -12, -17, -19, -20, -22, -25, -24, //9376 --27, -28, -29, -28, -25, -25, -22, -21, -16, -12, -4, -1, 7, 10, 18, 21, //9392 -32, 35, 41, 45, 50, 53, 53, 53, 54, 49, 49, 41, 34, 29, 23, 15, //9408 -0, -7, -20, -26, -39, -46, -57, -64, -72, -75, -79, -82, -81, -82, -77, -71, //9424 --69, -57, -46, -39, -26, -17, -7, 12, 24, 36, 48, 54, 66, 78, 81, 87, //9440 -88, 90, 87, 83, 80, 72, 65, 57, 41, 30, 21, 7, -6, -18, -36, -43, //9456 --56, -63, -71, -81, -85, -86, -86, -86, -85, -78, -75, -67, -60, -52, -40, -25, //9472 --18, -5, 3, 13, 29, 36, 44, 50, 56, 58, 61, 66, 67, 61, 60, 57, //9488 -50, 45, 39, 31, 24, 12, 5, -2, -8, -14, -21, -28, -33, -37, -41, -40, //9504 --45, -45, -45, -40, -41, -36, -33, -30, -26, -23, -20, -12, -8, -4, 1, 2, //9520 -5, 9, 12, 12, 12, 17, 16, 17, 16, 16, 16, 16, 16, 13, 13, 12, //9536 -12, 12, 12, 12, 10, 8, 8, 8, 8, 8, 4, 4, 5, 0, 0, -5, //9552 --6, -8, -13, -16, -20, -20, -25, -24, -29, -29, -28, -33, -33, -33, -29, -29, //9568 --24, -22, -19, -15, -9, -5, 0, 6, 13, 17, 24, 29, 36, 39, 41, 45, //9584 -45, 50, 50, 45, 46, 41, 37, 29, 27, 19, 16, 5, -3, -11, -18, -26, //9600 --33, -44, -47, -56, -59, -62, -65, -65, -65, -65, -64, -60, -54, -46, -41, -35, //9616 --23, -16, -5, 6, 15, 24, 34, 45, 53, 60, 66, 72, 75, 78, 78, 78, //9632 -79, 74, 69, 63, 55, 47, 38, 28, 13, 2, -9, -20, -29, -42, -56, -64, //9648 --72, -80, -82, -90, -93, -94, -94, -89, -90, -81, -74, -67, -55, -48, -37, -20, //9664 --9, 6, 16, 27, 38, 52, 63, 72, 80, 83, 91, 95, 95, 94, 93, 90, //9680 -83, 75, 68, 61, 49, 37, 21, 9, -2, -13, -25, -41, -53, -59, -72, -78, //9696 --83, -89, -93, -94, -94, -89, -86, -83, -75, -67, -60, -53, -37, -26, -19, -6, //9712 -2, 13, 29, 36, 43, 51, 59, 65, 69, 69, 75, 75, 70, 70, 66, 58, //9728 -56, 48, 45, 34, 26, 18, 11, 3, -8, -16, -23, -29, -35, -38, -44, -48, //9744 --48, -54, -53, -53, -53, -53, -48, -48, -46, -40, -36, -33, -29, -24, -19, -13, //9760 --9, -7, 0, 4, 8, 13, 17, 21, 22, 24, 29, 32, 33, 33, 33, 37, //9776 -37, 33, 33, 33, 32, 29, 25, 25, 21, 17, 13, 8, 4, -3, -5, -12, //9792 --16, -21, -28, -31, -34, -36, -41, -41, -45, -45, -45, -45, -41, -41, -38, -35, //9808 --31, -28, -21, -13, -10, -2, 1, 9, 15, 20, 28, 30, 34, 37, 41, 41, //9824 -41, 41, 41, 37, 38, 33, 29, 25, 20, 13, 5, 2, -6, -9, -20, -23, //9840 --28, -33, -37, -37, -41, -44, -45, -45, -44, -41, -37, -37, -33, -29, -24, -16, //9856 --14, -8, -2, 0, 8, 12, 20, 23, 26, 28, 33, 33, 38, 37, 37, 36, //9872 -33, 33, 29, 24, 23, 20, 13, 10, 4, 0, -5, -12, -16, -24, -27, -30, //9888 --33, -36, -41, -41, -41, -41, -41, -41, -38, -38, -33, -29, -24, -16, -14, -8, //9904 --2, 1, 12, 15, 20, 27, 30, 34, 40, 41, 43, 45, 46, 45, 41, 41, //9920 -37, 33, 29, 20, 18, 13, 7, 0, -4, -12, -20, -22, -28, -33, -37, -40, //9936 --40, -45, -45, -45, -45, -45, -40, -39, -35, -32, -25, -22, -17, -12, -7, 0, //9952 -4, 11, 14, 18, 22, 28, 32, 32, 37, 37, 41, 41, 41, 39, 37, 36, //9968 -33, 29, 25, 21, 17, 13, 4, 2, -4, -8, -14, -17, -23, -27, -31, -34, //9984 --37, -41, -41, -41, -41, -41, -41, -36, -33, -33, -29, -25, -20, -16, -12, -5, //10000 --3, 1, 7, 11, 15, 18, 20, 25, 29, 29, 33, 33, 33, 33, 33, 33, //10016 -28, 29, 25, 25, 20, 18, 17, 12, 8, 5, 1, -2, -5, -8, -13, -17, //10032 --21, -25, -26, -29, -32, -36, -36, -36, -41, -41, -41, -36, -36, -35, -33, -28, //10048 --24, -20, -16, -12, -7, -1, 7, 10, 19, 21, 29, 37, 40, 43, 45, 50, //10064 -50, 49, 49, 48, 46, 41, 37, 29, 27, 19, 12, 8, -4, -11, -19, -26, //10080 --33, -41, -45, -52, -55, -57, -58, -61, -61, -57, -58, -53, -49, -41, -38, -31, //10096 --23, -16, -8, -1, 7, 14, 22, 29, 37, 41, 45, 49, 54, 53, 54, 54, //10112 -54, 49, 49, 42, 37, 30, 27, 19, 12, 4, -3, -11, -18, -26, -29, -40, //10128 --43, -49, -54, -54, -57, -57, -57, -58, -52, -52, -46, -43, -37, -31, -23, -17, //10144 --9, -1, 7, 9, 17, 29, 32, 37, 41, 45, 49, 50, 49, 49, 49, 48, //10160 -46, 38, 34, 31, 23, 20, 9, 1, -2, -10, -16, -21, -29, -36, -39, -40, //10176 --46, -49, -49, -49, -47, -45, -44, -41, -37, -29, -27, -24, -16, -9, -4, 3, //10192 -6, 8, 17, 21, 26, 27, 28, 33, 33, 33, 33, 33, 32, 29, 25, 25, //10208 -21, 17, 13, 7, 4, 0, -5, -6, -9, -16, -16, -21, -22, -24, -24, -29, //10224 --29, -29, -29, -28, -29, -25, -25, -22, -20, -20, -17, -12, -7, -6, -3, 0, //10240 -4, 9, 10, 12, 17, 20, 20, 21, 23, 25, 25, 25, 20, 20, 19, 16, //10256 -16, 9, 9, 4, 0, -4, -9, -12, -17, -19, -22, -25, -28, -28, -29, -29, //10272 --29, -28, -25, -25, -20, -19, -15, -9, -5, 0, 4, 8, 12, 17, 21, 26, //10288 -26, 29, 29, 29, 29, 29, 28, 28, 21, 21, 17, 12, 6, 4, -3, -8, //10304 --15, -18, -22, -28, -28, -33, -33, -32, -37, -33, -33, -33, -28, -27, -24, -17, //10320 --14, -11, -4, 0, 8, 11, 15, 18, 22, 24, 29, 29, 33, 33, 33, 29, //10336 -29, 26, 25, 21, 17, 11, 8, 4, 0, -4, -8, -13, -17, -21, -22, -25, //10352 --25, -28, -29, -29, -29, -28, -25, -25, -25, -20, -19, -17, -12, -9, -9, -4, //10368 -0, 0, 4, 7, 8, 10, 12, 12, 12, 17, 17, 16, 16, 13, 13, 12, //10384 -12, 11, 8, 8, 9, 4, 4, 5, 0, 0, 0, -5, -4, -4, -9, -8, //10400 --8, -8, -13, -12, -12, -12, -12, -12, -12, -12, -13, -8, -8, -8, -8, -8, //10416 --5, -4, -4, -4, -4, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, //10432 -4, 4, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //10448 -0, 0, 0, 0, 2, 4, 4, 4, 4, 6, 8, 8, 8, 5, 4, 4, //10464 -5, 0, 0, -3, -4, -6, -8, -12, -12, -15, -16, -18, -21, -20, -24, -24, //10480 --25, -24, -24, -21, -21, -21, -15, -15, -8, -9, -4, 1, 2, 5, 12, 12, //10496 -17, 18, 20, 25, 25, 25, 25, 25, 25, 25, 21, 21, 16, 11, 11, 5, //10512 -2, -4, -8, -12, -16, -21, -24, -26, -29, -30, -32, -33, -33, -33, -33, -29, //10528 --28, -24, -20, -18, -15, -12, -4, 0, 4, 8, 13, 17, 16, 21, 21, 21, //10544 -21, 21, 21, 21, 21, 16, 16, 13, 8, 6, 3, 1, -4, -9, -11, -12, //10560 --13, -16, -16, -16, -16, -16, -16, -17, -12, -12, -8, -9, -4, 0, 0, 3, //10576 -4, 4, 8, 8, 8, 8, 8, 8, 8, 8, 8, 6, 4, 3, 0, -4, //10592 --4, -9, -8, -12, -13, -12, -17, -16, -16, -16, -16, -16, -17, -12, -12, -12, //10608 --9, -8, -6, -4, -3, 0, 3, 4, 4, 9, 8, 8, 8, 8, 8, 8, //10624 -8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 4, 4, 4, 5, 0, //10640 -0, 0, 0, -5, -4, -4, -5, -8, -8, -13, -12, -16, -17, -21, -20, -25, //10656 --25, -25, -28, -29, -29, -28, -28, -25, -25, -20, -18, -15, -11, -5, -1, 2, //10672 -5, 13, 17, 24, 29, 36, 39, 42, 45, 50, 50, 50, 49, 49, 46, 42, //10688 -39, 33, 27, 24, 13, 5, -2, -10, -17, -25, -36, -44, -52, -54, -61, -70, //10704 --69, -74, -73, -72, -70, -65, -61, -55, -47, -40, -32, -21, -14, -2, 5, 17, //10720 -29, 36, 48, 56, 59, 67, 74, 73, 79, 78, 77, 74, 70, 63, 58, 52, //10736 -45, 29, 21, 11, 2, -7, -17, -28, -39, -47, -53, -58, -66, -70, -74, -74, //10752 --73, -73, -70, -66, -64, -57, -52, -44, -33, -26, -18, -11, -3, 8, 16, 20, //10768 -27, 35, 38, 44, 48, 52, 53, 54, 54, 53, 51, 50, 45, 41, 37, 29, //10784 -27, 21, 14, 12, 0, -2, -8, -15, -18, -21, -28, -31, -32, -37, -36, -41, //10800 --41, -41, -41, -39, -37, -33, -33, -28, -27, -25, -21, -16, -12, -8, -4, 0, //10816 -4, 8, 11, 14, 16, 21, 24, 25, 27, 29, 29, 29, 29, 29, 29, 24, //10832 -25, 21, 21, 16, 14, 13, 9, 4, 0, -4, -9, -9, -13, -19, -23, -24, //10848 --29, -29, -33, -32, -37, -37, -36, -36, -33, -33, -28, -27, -25, -21, -16, -12, //10864 --8, -2, 0, 8, 12, 20, 23, 26, 29, 33, 36, 37, 37, 37, 37, 37, //10880 -32, 30, 27, 24, 17, 14, 8, 2, -4, -8, -17, -24, -26, -32, -36, -42, //10896 --45, -50, -49, -49, -49, -49, -46, -46, -41, -36, -32, -25, -17, -15, -7, 1, //10912 -8, 16, 23, 31, 34, 41, 49, 53, 53, 58, 58, 57, 58, 55, 51, 48, //10928 -44, 38, 30, 22, 14, 7, -1, -12, -19, -27, -35, -42, -45, -57, -59, -66, //10944 --67, -70, -73, -70, -70, -67, -64, -61, -53, -46, -38, -31, -23, -16, -1, 7, //10960 -15, 24, 34, 45, 53, 56, 64, 67, 70, 74, 74, 74, 75, 70, 66, 58, //10976 -55, 47, 40, 32, 21, 13, 1, -6, -13, -25, -37, -44, -51, -57, -63, -66, //10992 --73, -73, -78, -77, -77, -74, -70, -68, -61, -55, -53, -41, -34, -26, -19, -12, //11008 -0, 12, 19, 27, 35, 42, 49, 53, 61, 61, 66, 65, 70, 67, 66, 64, //11024 -62, 58, 50, 47, 39, 33, 28, 17, 9, 2, -6, -13, -21, -32, -37, -44, //11040 --46, -53, -57, -61, -61, -63, -65, -66, -61, -61, -57, -53, -49, -45, -37, -33, //11056 --26, -19, -11, -4, 3, 11, 16, 22, 29, 37, 40, 45, 50, 51, 54, 57, //11072 -57, 57, 56, 53, 50, 50, 45, 38, 36, 32, 21, 18, 10, 2, -1, -8, //11088 --16, -23, -29, -35, -38, -44, -48, -51, -53, -55, -57, -57, -57, -53, -54, -49, //11104 --46, -40, -36, -30, -27, -19, -13, -5, 0, 6, 12, 17, 25, 29, 36, 39, //11120 -41, 45, 45, 50, 50, 50, 45, 45, 41, 37, 33, 29, 24, 17, 13, 5, //11136 -3, -5, -8, -16, -21, -28, -30, -33, -36, -41, -41, -43, -45, -45, -40, -41, //11152 --36, -35, -33, -29, -24, -20, -13, -11, -7, 0, 4, 8, 12, 16, 20, 25, //11168 -28, 29, 30, 33, 33, 33, 33, 33, 29, 29, 25, 21, 18, 17, 13, 9, //11184 -3, 0, -4, -8, -12, -17, -21, -23, -24, -29, -28, -33, -33, -33, -33, -32, //11200 --32, -29, -26, -25, -20, -19, -12, -13, -8, -4, 0, 4, 9, 12, 15, 16, //11216 -21, 20, 25, 25, 25, 25, 25, 25, 25, 20, 21, 16, 16, 13, 8, 5, //11232 -3, 1, -4, -9, -11, -12, -17, -17, -20, -25, -25, -27, -28, -29, -28, -29, //11248 --29, -24, -24, -24, -21, -18, -17, -12, -12, -8, -4, 1, 2, 5, 8, 12, //11264 -16, 16, 21, 21, 21, 24, 25, 25, 25, 25, 25, 22, 21, 19, 16, 16, //11280 -13, 8, 3, 2, -1, -4, -8, -12, -17, -18, -20, -25, -24, -29, -29, -29, //11296 --29, -29, -29, -29, -28, -27, -24, -21, -21, -18, -17, -12, -8, -5, -2, 1, //11312 -4, 9, 12, 15, 16, 18, 21, 24, 25, 25, 24, 29, 29, 29, 29, 24, //11328 -25, 25, 21, 20, 16, 11, 10, 8, 4, 0, -4, -8, -12, -17, -20, -23, //11344 --27, -28, -33, -33, -37, -36, -41, -41, -41, -41, -41, -36, -37, -32, -32, -25, //11360 --22, -17, -12, -7, -4, 4, 12, 15, 17, 24, 29, 33, 37, 42, 42, 45, //11376 -45, 45, 45, 45, 46, 42, 37, 33, 28, 23, 20, 8, 5, -2, -8, -13, //11392 --20, -28, -33, -40, -43, -46, -49, -53, -56, -57, -57, -58, -53, -50, -50, -45, //11408 --39, -36, -25, -22, -14, -6, -3, 5, 16, 19, 27, 33, 39, 45, 48, 52, //11424 -53, 58, 58, 58, 57, 55, 54, 50, 45, 37, 35, 27, 21, 16, 4, -3, //11440 --11, -14, -22, -29, -37, -45, -47, -53, -58, -58, -61, -61, -61, -61, -62, -57, //11456 --53, -49, -42, -40, -32, -21, -18, -10, -2, 5, 17, 24, 29, 35, 43, 46, //11472 -53, 56, 57, 62, 62, 62, 58, 58, 54, 49, 45, 37, 33, 26, 19, 11, //11488 -3, -8, -11, -19, -26, -34, -37, -45, -53, -55, -57, -58, -61, -61, -62, -57, //11504 --58, -53, -49, -41, -39, -33, -27, -20, -12, -5, 2, 10, 16, 25, 33, 35, //11520 -41, 45, 50, 53, 53, 53, 54, 54, 54, 49, 46, 43, 40, 37, 29, 21, //11536 -16, 10, 3, -4, -12, -20, -22, -31, -33, -41, -45, -49, -54, -53, -57, -58, //11552 --57, -55, -53, -51, -48, -42, -38, -35, -29, -23, -16, -9, -1, 7, 9, 17, //11568 -25, 33, 35, 41, 45, 50, 53, 53, 53, 54, 54, 54, 49, 46, 43, 40, //11584 -36, 25, 22, 14, 6, -2, -5, -16, -23, -31, -34, -43, -46, -52, -56, -59, //11600 --61, -61, -61, -61, -62, -57, -53, -53, -45, -38, -33, -27, -20, -8, -1, 7, //11616 -15, 23, 25, 37, 41, 46, 52, 53, 58, 58, 62, 59, 58, 58, 53, 49, //11632 -42, 40, 31, 28, 17, 9, 2, -6, -14, -21, -28, -35, -41, -47, -50, -57, //11648 --57, -62, -61, -61, -61, -61, -57, -53, -49, -43, -40, -29, -26, -18, -11, -4, //11664 -4, 12, 16, 23, 29, 34, 41, 44, 45, 50, 49, 53, 54, 51, 49, 48, //11680 -44, 42, 34, 30, 27, 19, 16, 8, 1, -4, -10, -16, -21, -28, -31, -35, //11696 --38, -41, -45, -45, -50, -49, -49, -48, -45, -42, -42, -36, -36, -33, -25, -20, //11712 --16, -10, -8, 0, 4, 12, 14, 18, 22, 28, 28, 34, 35, 37, 37, 37, //11728 -37, 37, 38, 33, 33, 29, 24, 22, 19, 15, 9, 5, 3, -4, -8, -12, //11744 --17, -21, -23, -26, -29, -32, -32, -33, -33, -33, -33, -33, -33, -28, -29, -24, //11760 --20, -21, -16, -11, -11, -8, -4, 0, 5, 6, 8, 12, 12, 17, 17, 18, //11776 -20, 21, 21, 21, 20, 19, 17, 16, 17, 12, 13, 8, 8, 5, 4, 2, //11792 -0, -1, -4, -4, -7, -8, -8, -8, -8, -8, -13, -12, -12, -12, -8, -8, //11808 --8, -8, -8, -8, -8, -9, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //11824 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -2, 0, 0, 0, //11840 -0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 8, //11856 -8, 8, 8, 8, 7, 4, 4, 4, 4, 2, 0, 0, 0, -4, -4, -4, //11872 --5, -8, -8, -8, -13, -12, -12, -12, -12, -17, -16, -16, -16, -16, -17, -12, //11888 --12, -12, -12, -12, -8, -8, -8, -7, -4, -5, 1, 0, 1, 4, 4, 9, //11904 -8, 8, 13, 12, 12, 12, 13, 14, 16, 16, 17, 16, 15, 12, 12, 12, //11920 -13, 8, 8, 7, 4, 4, 0, 0, -4, -4, -9, -8, -13, -12, -16, -16, //11936 --21, -21, -20, -25, -24, -25, -24, -24, -25, -25, -20, -20, -17, -16, -15, -12, //11952 --12, -9, -4, -2, -1, 5, 8, 8, 13, 14, 16, 16, 21, 21, 21, 21, //11968 -21, 20, 21, 18, 17, 17, 12, 12, 8, 9, 3, 3, 0, -4, -4, -9, //11984 --8, -13, -12, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -13, -12, //12000 --10, -8, -8, -8, -4, -4, -4, -4, -3, 0, 0, 0, 0, 0, 0, -4, //12016 --4, -4, -4, -4, -8, -8, -8, -8, -8, -8, -8, -8, -6, -4, -4, -3, //12032 -0, 3, 4, 6, 9, 9, 12, 15, 16, 18, 21, 24, 24, 25, 25, 25, //12048 -25, 25, 20, 21, 16, 12, 9, 5, 1, -2, -5, -12, -17, -21, -28, -31, //12064 --34, -37, -40, -45, -47, -49, -49, -49, -49, -49, -47, -46, -41, -36, -29, -27, //12080 --21, -15, -7, -1, 7, 15, 18, 25, 33, 41, 45, 49, 53, 57, 62, 62, //12096 -62, 62, 61, 61, 54, 51, 48, 41, 36, 25, 17, 10, 2, -5, -13, -24, //12112 --32, -39, -47, -53, -57, -66, -70, -74, -75, -78, -77, -78, -73, -71, -68, -65, //12128 --57, -50, -42, -35, -28, -20, -4, 3, 10, 17, 30, 41, 44, 52, 60, 63, //12144 -67, 70, 74, 74, 74, 74, 73, 67, 63, 60, 53, 48, 37, 30, 22, 15, //12160 -7, -5, -16, -23, -31, -39, -42, -50, -56, -61, -66, -67, -69, -69, -69, -67, //12176 --66, -61, -61, -53, -45, -43, -35, -29, -24, -13, -5, 2, 9, 17, 25, 33, //12192 -35, 41, 45, 50, 53, 53, 53, 58, 57, 54, 54, 49, 47, 44, 40, 33, //12208 -29, 22, 16, 11, 3, -3, -11, -14, -21, -26, -32, -36, -39, -43, -44, -49, //12224 --49, -49, -49, -49, -49, -45, -41, -38, -37, -30, -28, -21, -17, -9, -7, 0, //12240 -5, 12, 15, 20, 25, 29, 33, 37, 36, 42, 41, 41, 41, 41, 42, 36, //12256 -36, 34, 29, 24, 17, 15, 12, 4, 0, -8, -10, -16, -20, -25, -29, -34, //12272 --35, -36, -41, -41, -41, -41, -41, -41, -40, -37, -32, -30, -27, -23, -17, -14, //12288 --9, -4, 2, 5, 12, 16, 21, 25, 29, 33, 37, 37, 39, 41, 41, 41, //12304 -41, 42, 37, 37, 32, 29, 26, 23, 20, 12, 8, 0, -3, -5, -12, -18, //12320 --24, -27, -31, -35, -38, -41, -45, -45, -50, -49, -49, -49, -49, -44, -45, -41, //12336 --36, -33, -30, -27, -20, -15, -12, -4, 4, 6, 12, 18, 25, 28, 33, 38, //12352 -38, 41, 46, 45, 50, 49, 49, 49, 45, 42, 42, 37, 33, 28, 24, 17, //12368 -15, 8, 4, -4, -12, -14, -20, -26, -30, -36, -39, -43, -44, -50, -53, -53, //12384 --53, -53, -53, -54, -49, -49, -44, -43, -40, -36, -30, -25, -20, -14, -12, 0, //12400 -3, 8, 15, 18, 21, 29, 33, 37, 42, 42, 45, 49, 49, 49, 49, 49, //12416 -49, 50, 45, 43, 42, 37, 33, 25, 22, 20, 12, 8, 0, -8, -10, -18, //12432 --21, -28, -36, -39, -43, -46, -50, -53, -57, -58, -59, -61, -61, -58, -57, -55, //12448 --54, -49, -45, -37, -35, -29, -23, -16, -8, -1, 2, 10, 16, 21, 29, 36, //12464 -41, 45, 49, 54, 58, 60, 61, 62, 62, 62, 59, 58, 54, 50, 45, 37, //12480 -35, 26, 24, 16, 4, -3, -11, -19, -21, -29, -40, -43, -52, -55, -59, -65, //12496 --68, -69, -69, -70, -70, -70, -65, -62, -60, -57, -49, -41, -34, -29, -23, -15, //12512 --4, 3, 11, 19, 26, 33, 42, 49, 53, 58, 62, 66, 66, 71, 70, 68, //12528 -65, 62, 59, 55, 52, 45, 40, 29, 21, 19, 11, 3, -5, -16, -23, -31, //12544 --37, -42, -49, -53, -57, -62, -62, -62, -65, -62, -61, -60, -58, -53, -49, -41, //12560 --39, -33, -28, -16, -12, -5, 2, 10, 13, 24, 27, 33, 37, 41, 45, 49, //12576 -49, 49, 49, 50, 49, 45, 42, 42, 37, 33, 25, 22, 19, 13, 7, 0, //12592 --8, -11, -14, -20, -24, -29, -33, -35, -37, -38, -41, -41, -41, -41, -39, -37, //12608 --36, -33, -29, -24, -21, -17, -11, -8, -4, 0, 6, 8, 12, 16, 21, 22, //12624 -24, 29, 29, 29, 29, 29, 29, 29, 24, 25, 20, 20, 17, 12, 8, 6, //12640 -2, -1, -8, -8, -12, -17, -18, -20, -25, -25, -24, -29, -29, -28, -25, -25, //12656 --24, -23, -20, -17, -17, -12, -10, -9, -4, 0, 3, 3, 9, 9, 12, 17, //12672 -17, 19, 20, 21, 21, 21, 21, 20, 19, 17, 17, 12, 10, 9, 4, 4, //12688 -0, -3, -3, -9, -9, -12, -12, -17, -17, -18, -20, -20, -20, -20, -20, -20, //12704 --20, -17, -16, -14, -12, -11, -9, -5, -4, -2, 0, 1, 4, 4, 9, 8, //12720 -8, 9, 12, 12, 12, 12, 12, 8, 8, 8, 9, 4, 4, 0, 0, 1, //12736 --5, -4, -4, -8, -8, -8, -10, -12, -12, -12, -12, -12, -12, -12, -12, -8, //12752 --8, -8, -7, -4, -4, -1, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, //12768 -4, 4, 4, 5, 0, 0, 0, -5, -4, -4, -8, -8, -11, -12, -13, -13, //12784 --16, -16, -16, -16, -16, -16, -13, -13, -13, -8, -8, -4, -5, 0, 0, 5, //12800 -4, 8, 13, 12, 17, 16, 21, 21, 21, 21, 21, 21, 21, 21, 18, 16, //12816 -15, 13, 8, 4, 1, -2, -5, -12, -12, -16, -21, -25, -25, -29, -33, -32, //12832 --37, -37, -37, -37, -37, -37, -35, -32, -29, -25, -25, -21, -16, -12, -4, -1, //12848 -2, 8, 12, 16, 25, 28, 28, 33, 38, 41, 41, 41, 41, 46, 41, 41, //12864 -42, 37, 32, 32, 28, 22, 17, 9, 7, -1, -8, -12, -20, -22, -29, -34, //12880 --40, -44, -47, -48, -54, -53, -53, -58, -53, -53, -52, -49, -45, -41, -37, -32, //12896 --25, -16, -12, -6, 1, 8, 13, 24, 27, 33, 39, 42, 49, 52, 53, 55, //12912 -58, 58, 58, 55, 54, 49, 48, 45, 37, 30, 27, 19, 11, 5, -3, -11, //12928 --16, -22, -29, -36, -41, -45, -49, -53, -58, -57, -62, -61, -60, -57, -57, -53, //12944 --49, -45, -41, -36, -29, -21, -19, -11, -3, 4, 12, 16, 23, 29, 34, 41, //12960 -44, 47, 49, 54, 54, 54, 54, 54, 54, 49, 46, 42, 39, 36, 29, 23, //12976 -17, 9, 6, 0, -5, -12, -20, -24, -32, -34, -38, -45, -44, -49, -49, -54, //12992 --53, -53, -49, -49, -47, -46, -41, -37, -32, -25, -23, -20, -12, -4, -2, 4, //13008 -10, 12, 21, 25, 29, 33, 38, 37, 41, 44, 45, 45, 45, 42, 41, 39, //13024 -38, 32, 32, 25, 22, 19, 13, 8, 4, -4, -7, -9, -16, -20, -25, -29, //13040 --31, -34, -37, -38, -41, -41, -41, -41, -41, -40, -37, -34, -33, -28, -27, -21, //13056 --18, -14, -10, -7, -3, 4, 3, 8, 13, 17, 17, 20, 25, 27, 29, 29, //13072 -29, 29, 29, 29, 29, 29, 25, 25, 22, 21, 16, 12, 13, 8, 3, 2, //13088 --1, -4, -8, -11, -14, -16, -21, -20, -25, -25, -26, -28, -28, -29, -29, -29, //13104 --29, -29, -29, -24, -24, -25, -20, -21, -16, -13, -12, -11, -9, -4, -1, -1, //13120 -5, 6, 8, 12, 12, 15, 16, 16, 21, 21, 21, 21, 21, 21, 21, 21, //13136 -21, 21, 20, 20, 17, 17, 12, 13, 8, 8, 4, -1, -2, -3, -8, -8, //13152 --13, -15, -16, -21, -20, -25, -25, -27, -28, -29, -29, -28, -34, -28, -29, -29, //13168 --29, -25, -25, -23, -21, -16, -13, -13, -7, -7, -5, 0, 5, 7, 10, 12, //13184 -17, 17, 21, 20, 25, 25, 24, 29, 29, 29, 24, 25, 25, 21, 21, 19, //13200 -17, 12, 8, 5, 5, 0, -5, -5, -12, -12, -16, -21, -21, -24, -29, -29, //13216 --31, -32, -33, -33, -33, -33, -33, -28, -28, -25, -25, -22, -19, -17, -12, -8, //13232 --5, -2, 1, 4, 8, 13, 15, 16, 21, 21, 24, 25, 27, 29, 29, 29, //13248 -29, 24, 25, 25, 21, 20, 16, 14, 13, 8, 4, 0, -3, -3, -9, -9, //13264 --12, -17, -19, -20, -20, -25, -25, -25, -25, -24, -24, -24, -21, -21, -21, -16, //13280 --17, -12, -9, -8, -6, -5, 1, 4, 4, 7, 8, 8, 13, 13, 12, 12, //13296 -12, 12, 12, 12, 12, 13, 8, 8, 4, 4, 5, 0, 0, -4, -4, -7, //13312 --8, -8, -8, -12, -12, -12, -12, -12, -13, -8, -8, -9, -4, -4, -4, 0, //13328 -3, 4, 6, 9, 12, 12, 12, 17, 17, 16, 16, 16, 16, 17, 17, 12, //13344 -12, 10, 9, 3, 3, 0, -4, -7, -10, -12, -16, -21, -24, -24, -29, -28, //13360 --33, -33, -33, -33, -33, -32, -29, -29, -26, -25, -20, -16, -12, -8, -4, 0, //13376 -6, 12, 16, 18, 24, 29, 33, 37, 40, 41, 41, 46, 45, 46, 41, 41, //13392 -39, 36, 30, 26, 22, 19, 12, 8, 0, -8, -15, -17, -25, -29, -36, -41, //13408 --45, -49, -53, -54, -58, -57, -57, -58, -53, -50, -46, -43, -40, -33, -28, -17, //13424 --14, -6, 2, 10, 16, 24, 29, 35, 41, 46, 53, 53, 58, 57, 62, 62, //13440 -57, 58, 54, 49, 45, 37, 34, 26, 21, 15, 8, -4, -11, -19, -22, -30, //13456 --37, -44, -49, -53, -58, -57, -62, -61, -61, -62, -56, -56, -50, -46, -43, -37, //13472 --31, -24, -17, -10, -2, 6, 9, 20, 25, 32, 35, 38, 42, 45, 50, 50, //13488 -50, 50, 45, 45, 41, 37, 33, 28, 21, 13, 10, 2, -4, -9, -17, -24, //13504 --28, -32, -36, -40, -45, -48, -49, -49, -50, -45, -45, -40, -39, -36, -28, -21, //13520 --18, -12, -6, 1, 8, 16, 19, 25, 31, 34, 41, 41, 46, 45, 45, 45, //13536 -45, 42, 42, 37, 33, 24, 20, 14, 8, 3, -4, -12, -20, -27, -33, -38, //13552 --41, -49, -53, -58, -59, -61, -61, -61, -59, -58, -53, -49, -41, -38, -30, -27, //13568 --19, -12, 0, 7, 15, 22, 29, 37, 45, 47, 53, 58, 62, 62, 65, 63, //13584 -62, 62, 58, 54, 49, 43, 37, 32, 21, 13, 6, -2, -9, -17, -28, -36, //13600 --44, -46, -55, -57, -65, -70, -69, -74, -74, -69, -70, -65, -63, -60, -52, -46, //13616 --38, -30, -23, -15, -8, 4, 11, 19, 26, 34, 42, 49, 53, 58, 62, 66, //13632 -66, 69, 67, 66, 67, 62, 57, 50, 48, 39, 36, 25, 17, 10, 2, -5, //13648 --13, -21, -28, -35, -41, -47, -50, -56, -60, -61, -61, -66, -65, -61, -62, -56, //13664 --56, -53, -45, -37, -35, -27, -24, -12, -8, -1, 7, 9, 18, 25, 29, 33, //13680 -37, 41, 45, 45, 50, 49, 49, 50, 45, 45, 40, 39, 38, 33, 25, 21, //13696 -18, 16, 8, 4, -4, -7, -10, -14, -18, -24, -24, -29, -31, -32, -32, -37, //13712 --37, -37, -37, -32, -33, -29, -29, -27, -25, -20, -17, -13, -10, -9, -3, -3, //13728 -4, 3, 9, 10, 12, 17, 17, 19, 20, 21, 21, 25, 24, 22, 21, 21, //13744 -20, 21, 17, 17, 17, 12, 13, 8, 8, 4, 5, 0, 0, -5, -4, -9, //13760 --8, -12, -12, -15, -16, -16, -16, -21, -21, -20, -20, -20, -20, -20, -20, -20, //13776 --20, -20, -20, -17, -16, -14, -13, -13, -8, -8, -4, -5, 1, 1, 4, 7, //13792 -8, 10, 13, 13, 16, 19, 20, 20, 20, 25, 25, 25, 25, 25, 24, 21, //13808 -21, 21, 16, 17, 12, 8, 9, 4, -1, -1, -8, -8, -13, -15, -17, -20, //13824 --24, -28, -29, -30, -32, -32, -37, -37, -37, -35, -33, -33, -29, -29, -26, -23, //13840 --21, -16, -12, -7, -6, -4, 4, 8, 13, 17, 18, 21, 24, 29, 32, 33, //13856 -34, 37, 37, 37, 38, 32, 33, 33, 29, 25, 20, 19, 15, 9, 5, 2, //13872 --4, -8, -12, -17, -21, -25, -28, -33, -37, -40, -41, -41, -42, -45, -45, -42, //13888 --41, -41, -36, -36, -33, -28, -24, -20, -17, -13, -8, -4, 3, 6, 9, 16, //13904 -19, 20, 25, 30, 29, 33, 33, 35, 37, 37, 37, 33, 33, 31, 29, 24, //13920 -20, 21, 16, 12, 8, 4, 0, -3, -6, -10, -13, -16, -21, -23, -25, -26, //13936 --29, -28, -32, -32, -33, -33, -33, -28, -29, -28, -27, -24, -24, -21, -16, -17, //13952 --12, -12, -8, -4, -4, 0, -1, 4, 4, 9, 9, 10, 12, 12, 12, 15, //13968 -16, 16, 17, 16, 16, 16, 16, 16, 16, 16, 17, 17, 16, 16, 13, 13, //13984 -12, 12, 12, 13, 8, 8, 6, 5, 5, 0, 0, -3, -4, -6, -8, -13, //14000 --12, -17, -16, -21, -20, -25, -24, -29, -29, -28, -28, -29, -33, -33, -31, -28, //14016 --29, -25, -25, -23, -21, -16, -12, -9, -6, -2, 1, 5, 11, 15, 19, 22, //14032 -25, 29, 32, 32, 37, 37, 41, 41, 41, 41, 39, 37, 37, 33, 28, 26, //14048 -23, 20, 12, 8, 1, -1, -8, -13, -20, -24, -29, -33, -36, -40, -46, -48, //14064 --48, -53, -53, -53, -53, -49, -49, -44, -44, -37, -34, -31, -25, -19, -13, -4, //14080 -0, 6, 12, 17, 25, 29, 36, 39, 42, 46, 49, 54, 54, 54, 54, 54, //14096 -54, 49, 47, 44, 41, 33, 25, 23, 15, 8, 3, -8, -11, -19, -22, -30, //14112 --37, -40, -45, -49, -53, -53, -58, -57, -57, -57, -58, -53, -50, -46, -43, -40, //14128 --32, -25, -21, -13, -11, -3, 4, 12, 17, 24, 26, 32, 37, 41, 46, 48, //14144 -49, 49, 49, 49, 49, 47, 46, 41, 37, 33, 28, 22, 20, 13, 4, 0, //14160 --7, -9, -16, -25, -28, -32, -38, -38, -40, -45, -45, -47, -49, -45, -45, -45, //14176 --41, -36, -35, -32, -25, -21, -16, -10, -8, 0, 8, 11, 14, 20, 25, 29, //14192 -32, 33, 35, 37, 37, 37, 37, 37, 32, 34, 29, 24, 20, 16, 12, 8, //14208 -3, -3, -7, -9, -16, -21, -24, -28, -28, -33, -32, -37, -37, -37, -37, -35, //14224 --33, -32, -29, -25, -19, -19, -16, -8, -4, 0, 4, 9, 9, 16, 16, 21, //14240 -20, 25, 25, 25, 25, 25, 24, 24, 21, 17, 14, 13, 8, 5, -1, -4, //14256 --8, -12, -17, -20, -24, -24, -27, -29, -29, -29, -29, -29, -29, -29, -24, -21, //14272 --21, -16, -12, -8, -4, 4, 7, 10, 14, 18, 24, 24, 29, 31, 33, 33, //14288 -33, 33, 33, 33, 28, 25, 22, 18, 14, 11, 8, 0, -7, -12, -19, -21, //14304 --28, -33, -37, -41, -46, -46, -49, -49, -49, -49, -48, -46, -41, -37, -32, -26, //14320 --24, -16, -9, -1, 4, 10, 17, 25, 32, 40, 43, 46, 54, 57, 57, 58, //14336 -58, 58, 58, 53, 49, 45, 40, 33, 25, 17, 10, 2, -5, -13, -24, -32, //14352 --39, -46, -53, -57, -66, -70, -74, -78, -77, -78, -74, -74, -70, -65, -61, -49, //14368 --42, -34, -27, -19, -11, 3, 11, 23, 30, 38, 49, 57, 64, 70, 76, 79, //14384 -82, 82, 82, 82, 81, 78, 70, 63, 55, 48, 40, 25, 18, 7, -1, -14, //14400 --22, -36, -43, -56, -63, -69, -78, -82, -86, -91, -90, -90, -90, -87, -84, -78, //14416 --72, -65, -54, -46, -36, -28, -15, 0, 7, 20, 29, 38, 46, 57, 65, 72, //14432 -78, 82, 86, 87, 86, 86, 87, 83, 78, 70, 63, 61, 48, 40, 25, 18, //14448 -7, -1, -14, -21, -37, -44, -51, -58, -65, -74, -78, -82, -81, -86, -85, -82, //14464 --82, -77, -71, -69, -61, -50, -42, -35, -27, -20, -4, 4, 10, 23, 30, 38, //14480 -45, 52, 57, 62, 66, 70, 70, 70, 70, 70, 66, 62, 58, 53, 47, 40, //14496 -32, 25, 18, 10, 2, -5, -13, -24, -29, -36, -37, -45, -49, -54, -56, -57, //14512 --57, -57, -57, -54, -54, -49, -45, -41, -33, -30, -22, -20, -12, -4, 0, 8, //14528 -9, 16, 20, 25, 29, 34, 32, 37, 37, 37, 37, 37, 38, 33, 33, 29, //14544 -26, 23, 19, 15, 9, 6, 2, -2, -5, -8, -12, -15, -16, -18, -20, -20, //14560 --25, -25, -24, -24, -24, -21, -20, -18, -16, -15, -12, -8, -8, -4, -5, 0, //14576 -0, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -1, 0, 1, //14592 --4, -4, -4, -9, -8, -9, -12, -12, -12, -12, -12, -12, -12, -9, -8, -8, //14608 --7, -4, -4, 0, 3, 4, 5, 9, 12, 12, 15, 16, 16, 21, 21, 21, //14624 -21, 21, 16, 16, 13, 13, 7, 7, 5, 0, -4, -8, -13, -13, -20, -23, //14640 --27, -28, -33, -33, -36, -37, -39, -41, -37, -37, -37, -32, -30, -27, -25, -17, //14656 --13, -10, -4, 1, 8, 16, 19, 25, 31, 34, 38, 44, 45, 50, 50, 49, //14672 -50, 49, 47, 46, 41, 37, 32, 25, 21, 15, 7, 0, -8, -15, -23, -30, //14688 --37, -45, -49, -53, -57, -61, -65, -65, -70, -70, -65, -66, -61, -57, -50, -47, //14704 --40, -32, -21, -13, -6, 2, 9, 17, 28, 36, 41, 47, 55, 61, 65, 68, //14720 -70, 70, 70, 70, 67, 67, 62, 56, 53, 42, 34, 27, 19, 11, 0, -11, //14736 --19, -26, -34, -42, -53, -56, -64, -67, -70, -73, -78, -78, -78, -78, -74, -69, //14752 --65, -58, -53, -48, -40, -29, -22, -9, -2, 5, 17, 28, 36, 43, 50, 55, //14768 -62, 66, 70, 70, 75, 74, 70, 70, 66, 59, 57, 49, 42, 34, 27, 20, //14784 -7, -4, -12, -19, -26, -34, -41, -49, -57, -60, -63, -66, -66, -69, -70, -65, //14800 --64, -60, -54, -50, -43, -37, -31, -24, -13, -5, 2, 10, 17, 25, 33, 41, //14816 -43, 46, 49, 54, 54, 54, 53, 52, 50, 45, 41, 37, 31, 28, 20, 13, //14832 -6, 0, -6, -13, -20, -24, -29, -33, -37, -37, -41, -41, -41, -41, -40, -37, //14848 --32, -30, -27, -21, -16, -8, -5, 0, 4, 10, 13, 20, 23, 27, 28, 33, //14864 -33, 33, 33, 33, 28, 28, 21, 18, 14, 11, 4, -1, -7, -12, -19, -22, //14880 --25, -33, -37, -41, -40, -45, -45, -45, -45, -40, -39, -37, -32, -25, -21, -14, //14896 --6, -3, 8, 16, 24, 26, 34, 41, 49, 52, 56, 59, 62, 62, 62, 62, //14912 -57, 57, 49, 41, 33, 31, 23, 11, 4, -8, -20, -27, -34, -46, -53, -65, //14928 --70, -76, -82, -86, -86, -86, -86, -84, -80, -77, -66, -63, -50, -43, -35, -25, //14944 --9, 3, 15, 27, 35, 53, 60, 73, 80, 88, 91, 99, 103, 103, 103, 98, //14960 -99, 91, 84, 77, 64, 56, 38, 27, 16, 2, -11, -21, -41, -52, -64, -76, //14976 --84, -94, -102, -110, -112, -114, -115, -114, -110, -103, -96, -89, -82, -66, -54, -39, //14992 --30, -16, 4, 16, 31, 41, 55, 67, 82, 90, 97, 103, 107, 111, 111, 108, //15008 -108, 101, 98, 86, 74, 68, 55, 42, 31, 13, -2, -13, -26, -38, -49, -65, //15024 --75, -84, -92, -95, -102, -105, -106, -107, -102, -102, -94, -86, -80, -67, -61, -49, //15040 --33, -21, -10, 2, 10, 29, 36, 48, 56, 63, 70, 78, 82, 87, 88, 91, //15056 -86, 83, 80, 77, 68, 61, 49, 42, 30, 23, 10, 3, -12, -24, -31, -38, //15072 --50, -57, -65, -70, -76, -77, -82, -82, -82, -79, -78, -72, -69, -58, -55, -47, //15088 --37, -28, -20, -9, 3, 11, 18, 26, 37, 44, 53, 55, 62, 66, 66, 70, //15104 -70, 68, 67, 62, 57, 50, 48, 40, 32, 21, 13, 6, -2, -9, -17, -28, //15120 --36, -41, -46, -53, -57, -62, -64, -65, -65, -66, -65, -61, -57, -53, -49, -44, //15136 --33, -30, -22, -15, -8, 0, 8, 15, 23, 26, 34, 41, 45, 50, 54, 53, //15152 -58, 58, 58, 55, 53, 52, 46, 42, 39, 33, 27, 21, 13, 5, 2, -6, //15168 --14, -17, -28, -31, -37, -43, -46, -53, -53, -58, -57, -57, -58, -53, -53, -49, //15184 --45, -41, -37, -29, -26, -19, -12, -7, 4, 12, 16, 23, 31, 34, 45, 48, //15200 -52, 55, 58, 58, 62, 62, 57, 58, 54, 49, 45, 38, 33, 27, 20, 9, //15216 -1, -6, -14, -22, -29, -40, -48, -51, -59, -63, -69, -72, -73, -73, -73, -73, //15232 --70, -65, -58, -56, -48, -41, -29, -17, -10, -1, 9, 24, 32, 39, 52, 59, //15248 -67, 74, 78, 82, 87, 87, 87, 82, 80, 74, 68, 61, 50, 37, 28, 20, //15264 -7, -5, -24, -35, -42, -55, -63, -74, -85, -93, -96, -99, -102, -102, -102, -98, //15280 --92, -85, -77, -66, -54, -42, -29, -19, 4, 15, 31, 41, 55, 67, 83, 93, //15296 -101, 107, 111, 115, 115, 116, 111, 105, 98, 86, 74, 64, 54, 40, 27, 8, //15312 --7, -21, -36, -50, -63, -81, -91, -100, -108, -116, -122, -122, -122, -123, -118, -114, //15328 --102, -95, -85, -74, -64, -48, -30, -15, 1, 16, 26, 49, 61, 76, 86, 96, //15344 -104, 115, 119, 124, 123, 122, 119, 108, 105, 92, 85, 73, 58, 47, 35, 20, //15360 -5, -10, -28, -43, -58, -68, -83, -91, -106, -113, -118, -123, -123, -122, -123, -118, //15376 --112, -105, -97, -83, -75, -60, -50, -34, -24, -1, 14, 25, 41, 52, 69, 80, //15392 -89, 97, 104, 112, 115, 115, 116, 111, 107, 103, 91, 84, 77, 65, 53, 37, //15408 -22, 10, -4, -18, -30, -48, -59, -67, -75, -83, -90, -98, -102, -107, -106, -106, //15424 --102, -99, -94, -88, -81, -73, -57, -47, -39, -27, -16, 1, 12, 24, 33, 42, //15440 -50, 62, 69, 74, 81, 82, 87, 87, 87, 82, 80, 77, 70, 63, 55, 47, //15456 -40, 32, 17, 9, 1, -8, -17, -25, -36, -44, -51, -57, -63, -69, -73, -76, //15472 --77, -78, -78, -74, -74, -69, -63, -60, -52, -41, -38, -31, -23, -11, 0, 8, //15488 -15, 23, 30, 38, 49, 52, 57, 62, 66, 66, 69, 67, 66, 67, 62, 57, //15504 -53, 46, 44, 36, 28, 17, 9, 2, -10, -17, -25, -36, -44, -51, -57, -62, //15520 --65, -70, -72, -73, -74, -69, -66, -62, -60, -53, -48, -40, -29, -19, -10, -1, //15536 -9, 24, 32, 40, 47, 55, 58, 66, 71, 72, 74, 73, 70, 66, 61, 55, //15552 -53, 45, 33, 21, 14, 4, -5, -17, -28, -40, -47, -55, -63, -66, -73, -76, //15568 --77, -76, -74, -69, -65, -58, -51, -44, -36, -21, -14, -1, 7, 17, 33, 41, //15584 -48, 56, 63, 70, 74, 74, 74, 74, 73, 69, 58, 55, 48, 35, 28, 12, //15600 -5, -7, -19, -27, -37, -49, -56, -64, -69, -73, -78, -78, -78, -73, -72, -69, //15616 --57, -50, -42, -35, -28, -16, -4, 8, 17, 26, 34, 42, 53, 58, 65, 65, //15632 -70, 70, 70, 70, 66, 61, 57, 50, 42, 35, 27, 19, 12, 1, -7, -14, //15648 --22, -28, -37, -41, -45, -49, -53, -53, -58, -57, -57, -55, -53, -53, -49, -45, //15664 --41, -37, -33, -25, -21, -18, -15, -8, -4, 4, 7, 12, 17, 22, 25, 32, //15680 -35, 39, 43, 46, 49, 54, 56, 57, 58, 58, 58, 55, 54, 49, 44, 41, //15696 -33, 26, 18, 11, 4, -12, -20, -30, -39, -47, -58, -69, -77, -84, -90, -94, //15712 --98, -98, -98, -96, -93, -85, -74, -66, -56, -45, -35, -20, -1, 14, 30, 40, //15728 -56, 74, 86, 96, 105, 111, 115, 120, 116, 116, 109, 102, 94, 79, 69, 55, //15744 -42, 27, 4, -11, -26, -41, -56, -70, -86, -98, -105, -110, -114, -119, -119, -114, //15760 --108, -103, -92, -78, -67, -57, -43, -30, -15, 3, 15, 30, 38, 51, 58, 70, //15776 -74, 78, 83, 82, 79, 79, 71, 68, 60, 53, 41, 34, 22, 15, 7, 0, //15792 --12, -19, -25, -31, -33, -37, -41, -41, -41, -41, -40, -37, -33, -28, -26, -23, //15808 --19, -13, -10, -9, -3, -4, 0, 0, 0, 0, 0, 0, -4, -4, -4, -6, //15824 --8, -8, -8, -8, -8, -8, -9, -4, -4, 1, 2, 5, 8, 12, 17, 19, //15840 -20, 25, 24, 29, 29, 29, 29, 24, 21, 18, 14, 11, 8, 0, -8, -12, //15856 --20, -21, -28, -32, -37, -42, -43, -45, -45, -41, -41, -37, -33, -29, -24, -16, //15872 --9, -2, 6, 13, 21, 28, 33, 40, 41, 45, 46, 45, 45, 43, 40, 36, //15888 -25, 22, 14, 6, -1, -16, -24, -31, -37, -42, -49, -53, -58, -60, -61, -60, //15904 --57, -49, -46, -39, -31, -24, -12, 0, 7, 19, 26, 34, 45, 53, 61, 63, //15920 -65, 70, 70, 65, 63, 61, 53, 41, 34, 27, 14, 7, -5, -20, -27, -35, //15936 --43, -50, -57, -62, -66, -65, -65, -66, -61, -57, -53, -47, -40, -33, -25, -17, //15952 --10, -2, 6, 9, 20, 23, 29, 30, 33, 37, 37, 38, 33, 33, 29, 25, //15968 -25, 20, 19, 16, 16, 13, 12, 13, 8, 8, 8, 8, 11, 12, 12, 12, //15984 -12, 12, 12, 11, 8, 8, 5, 0, -7, -9, -16, -25, -29, -36, -43, -46, //16000 --54, -60, -64, -67, -69, -70, -70, -65, -63, -57, -52, -44, -33, -21, -11, 0, //16016 -11, 21, 41, 53, 64, 76, 83, 95, 102, 106, 107, 107, 106, 99, 92, 84, //16032 -77, 64, 57, 37, 23, 8, -7, -22, -45, -60, -70, -84, -96, -103, -114, -122, //16048 --122, -123, -123, -118, -111, -104, -91, -82, -72, -49, -34, -24, -8, 7, 22, 45, //16064 -57, 69, 78, 88, 96, 102, 102, 108, 102, 102, 95, 91, 81, 72, 65, 53, //16080 -37, 25, 13, 4, -6, -17, -28, -36, -43, -49, -53, -58, -62, -61, -61, -61, //16096 --62, -57, -57, -53, -49, -44, -44, -38, -34, -31, -29, -24, -21, -17, -17, -12, //16112 --11, -8, -4, -1, 2, 6, 10, 13, 20, 23, 29, 35, 38, 45, 49, 54, //16128 -56, 57, 58, 58, 58, 53, 52, 49, 41, 33, 26, 14, 6, -2, -16, -27, //16144 --35, -43, -50, -58, -69, -72, -76, -77, -77, -77, -70, -67, -59, -51, -44, -29, //16160 --22, -10, 3, 11, 21, 36, 44, 49, 56, 59, 62, 62, 62, 60, 57, 49, //16176 -37, 30, 22, 13, 3, -5, -20, -27, -35, -43, -46, -53, -53, -53, -53, -52, //16192 --49, -41, -33, -26, -19, -7, 1, 15, 23, 31, 39, 42, 49, 54, 57, 58, //16208 -53, 53, 46, 41, 34, 27, 20, 8, -4, -16, -25, -34, -42, -53, -61, -65, //16224 --70, -69, -70, -69, -65, -58, -56, -48, -40, -29, -19, -10, -3, 9, 21, 28, //16240 -35, 41, 47, 50, 53, 54, 54, 53, 52, 49, 42, 34, 31, 23, 15, 4, //16256 --3, -6, -15, -18, -21, -24, -27, -28, -29, -24, -25, -20, -16, -14, -12, -4, //16272 -0, 5, 7, 10, 12, 13, 16, 13, 12, 10, 7, 4, -4, -11, -19, -21, //16288 --30, -41, -44, -49, -53, -57, -56, -58, -58, -55, -52, -44, -36, -25, -15, -4, //16304 -7, 19, 36, 47, 58, 67, 80, 87, 95, 102, 103, 103, 102, 95, 88, 80, //16320 -70, 59, 48, 25, 10, -5, -20, -35, -50, -73, -85, -96, -109, -116, -122, -122, //16336 --122, -120, -117, -109, -95, -84, -73, -58, -42, -28, -5, 10, 25, 41, 51, 70, //16352 -82, 89, 95, 99, 99, 99, 96, 93, 85, 77, 69, 55, 42, 32, 22, 12, //16368 --4, -12, -19, -27, -35, -37, -41, -41, -41, -41, -39, -36, -30, -26, -23, -17, //16384 --12, -8, -5, -4, -4, -4, -4, -7, -11, -15, -17, -25, -29, -37, -41, -45, //16400 --50, -50, -53, -50, -50, -45, -39, -36, -21, -14, -2, 10, 22, 34, 52, 64, //16416 -77, 84, 91, 103, 103, 108, 102, 102, 94, 83, 72, 62, 46, 31, 16, -11, //16432 --29, -44, -65, -80, -98, -110, -117, -122, -127, -126, -123, -116, -108, -99, -85, -73, //16448 --46, -28, -10, 9, 27, 53, 68, 83, 97, 104, 112, 115, 115, 113, 110, 101, //16464 -83, 72, 56, 39, 22, 2, -24, -39, -57, -68, -83, -95, -106, -109, -110, -109, //16480 --106, -94, -83, -73, -57, -42, -27, 0, 18, 34, 49, 64, 79, 94, 102, 105, //16496 -107, 108, 102, 95, 83, 74, 59, 49, 21, 6, -14, -28, -47, -62, -81, -93, //16512 --103, -107, -115, -114, -115, -110, -104, -97, -85, -66, -55, -40, -25, -9, 9, 32, //16528 -44, 59, 69, 79, 90, 98, 99, 99, 99, 95, 87, 79, 69, 61, 48, 36, //16544 -17, 2, -8, -22, -33, -49, -57, -64, -69, -74, -73, -74, -73, -72, -65, -60, //16560 --53, -42, -34, -24, -15, -6, 8, 15, 23, 31, 39, 42, 45, 50, 50, 44, //16576 -44, 41, 34, 26, 18, 11, 3, -8, -15, -23, -31, -38, -41, -49, -52, -53, //16592 --53, -52, -48, -42, -37, -30, -21, -11, 3, 15, 22, 35, 42, 54, 66, 68, //16608 -75, 76, 78, 75, 71, 68, 60, 51, 40, 21, 10, -5, -21, -31, -46, -68, //16624 --79, -90, -99, -106, -110, -114, -110, -108, -101, -93, -78, -68, -52, -37, -22, -7, //16640 -19, 39, 54, 69, 84, 103, 111, 118, 124, 123, 123, 116, 108, 100, 92, 77, //16656 -65, 38, 23, 3, -13, -30, -53, -69, -84, -94, -103, -111, -118, -118, -116, -113, //16672 --105, -97, -83, -72, -62, -46, -31, -8, 7, 22, 35, 48, 58, 74, 81, 86, //16688 -91, 90, 90, 87, 84, 75, 71, 61, 46, 38, 26, 14, 3, -8, -25, -32, //16704 --44, -51, -53, -61, -66, -65, -71, -65, -65, -57, -54, -49, -43, -35, -27, -13, //16720 --5, 3, 12, 21, 29, 36, 44, 48, 51, 54, 57, 54, 54, 52, 49, 41, //16736 -33, 26, 18, 9, -1, -8, -24, -32, -39, -46, -53, -61, -64, -65, -65, -65, //16752 --64, -58, -55, -47, -39, -31, -16, -5, 7, 19, 28, 38, 53, 61, 68, 74, //16768 -79, 78, 78, 79, 74, 68, 61, 49, 37, 26, 14, 1, -13, -32, -43, -54, //16784 --65, -75, -82, -90, -95, -94, -94, -93, -86, -78, -68, -60, -47, -35, -17, -2, //16800 -9, 25, 35, 47, 61, 69, 77, 80, 83, 87, 83, 80, 77, 69, 61, 50, //16816 -39, 28, 19, 6, -1, -15, -28, -35, -43, -45, -53, -58, -57, -57, -57, -58, //16832 --53, -49, -42, -39, -31, -28, -17, -12, -5, -3, 4, 8, 13, 15, 16, 16, //16848 -21, 17, 17, 17, 17, 12, 13, 8, 8, 3, 3, 0, 0, -4, -4, -4, //16864 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, 1, 0, 0, 0, 0, 0, //16880 -5, 4, 4, 4, 4, 6, 8, 8, 8, 8, 8, 8, 8, 8, 5, 4, //16896 -4, 2, 1, -4, -8, -11, -15, -18, -22, -28, -28, -33, -37, -36, -41, -41, //16912 --41, -41, -39, -38, -33, -28, -24, -18, -11, -3, 8, 16, 23, 31, 37, 42, //16928 -54, 58, 62, 66, 66, 66, 66, 63, 60, 57, 48, 37, 29, 19, 11, -2, //16944 --9, -24, -36, -43, -55, -62, -69, -77, -80, -81, -82, -81, -78, -75, -72, -63, //16960 --56, -48, -37, -25, -18, -6, 1, 13, 24, 32, 39, 47, 55, 61, 65, 66, //16976 -66, 66, 66, 62, 62, 58, 51, 49, 40, 34, 26, 18, 11, 3, -4, -11, //16992 --19, -27, -29, -37, -45, -48, -51, -55, -57, -57, -62, -59, -58, -58, -52, -49, //17008 --46, -41, -35, -29, -24, -13, -5, 2, 10, 18, 25, 37, 40, 47, 53, 58, //17024 -62, 65, 66, 66, 61, 61, 54, 46, 43, 35, 27, 16, 2, -7, -17, -26, //17040 --34, -49, -56, -61, -68, -69, -74, -73, -74, -69, -65, -60, -49, -42, -34, -24, //17056 --14, -4, 12, 24, 34, 43, 51, 58, 70, 74, 79, 78, 78, 74, 71, 63, //17072 -56, 48, 41, 25, 14, 3, -7, -17, -30, -44, -52, -59, -68, -71, -77, -77, //17088 --78, -78, -73, -73, -65, -58, -51, -43, -36, -24, -13, -5, 5, 14, 21, 33, //17104 -37, 45, 47, 54, 54, 57, 58, 58, 57, 57, 54, 49, 46, 44, 37, 33, //17120 -25, 22, 14, 11, 2, 0, -8, -15, -21, -27, -29, -36, -41, -45, -49, -53, //17136 --57, -58, -62, -61, -61, -60, -57, -54, -51, -45, -38, -36, -28, -17, -9, -2, //17152 -10, 17, 29, 36, 44, 52, 54, 62, 66, 69, 70, 70, 69, 65, 59, 55, //17168 -47, 40, 32, 21, 10, 2, -6, -15, -25, -33, -40, -45, -49, -53, -53, -53, //17184 --53, -53, -51, -48, -41, -38, -33, -26, -24, -16, -9, -5, -2, 1, 4, 8, //17200 -8, 8, 8, 8, 8, 4, 4, 5, -1, 0, 0, -4, -4, -5, 1, 0, //17216 -4, 4, 8, 12, 16, 20, 25, 30, 31, 32, 37, 37, 37, 37, 38, 32, //17232 -32, 25, 21, 13, 6, -1, -8, -16, -24, -31, -38, -45, -50, -57, -60, -61, //17248 --61, -62, -61, -57, -54, -52, -43, -40, -29, -21, -14, -6, 1, 9, 16, 23, //17264 -29, 35, 38, 41, 46, 45, 45, 45, 46, 41, 38, 35, 31, 27, 24, 17, //17280 -13, 8, 4, 0, -4, -4, -9, -8, -13, -12, -12, -12, -12, -12, -12, -12, //17296 --12, -12, -12, -12, -12, -12, -17, -16, -21, -21, -24, -29, -33, -35, -36, -41, //17312 --40, -45, -45, -43, -41, -40, -37, -29, -26, -18, -15, -7, 4, 14, 23, 31, //17328 -38, 46, 61, 66, 72, 78, 83, 82, 82, 83, 78, 74, 70, 58, 47, 40, //17344 -27, 15, -4, -15, -27, -39, -50, -62, -74, -81, -88, -94, -98, -98, -98, -94, //17360 --90, -84, -77, -65, -54, -47, -35, -23, -12, 4, 15, 23, 33, 43, 46, 57, //17376 -60, 61, 62, 62, 61, 62, 58, 54, 50, 45, 37, 34, 29, 24, 19, 16, //17392 -13, 8, 3, 3, 0, 0, -4, -4, -6, -8, -8, -13, -16, -16, -20, -24, //17408 --28, -33, -40, -43, -46, -53, -57, -61, -61, -66, -66, -66, -61, -58, -53, -47, //17424 --40, -32, -18, -7, 4, 16, 27, 44, 56, 64, 77, 83, 90, 95, 100, 99, //17440 -97, 93, 90, 75, 68, 56, 44, 31, 8, -6, -19, -33, -48, -58, -73, -85, //17456 --90, -96, -98, -98, -95, -92, -84, -76, -67, -50, -39, -23, -13, 3, 13, 32, //17472 -45, 52, 59, 67, 71, 74, 74, 70, 66, 61, 49, 39, 31, 19, 7, -5, //17488 --20, -27, -39, -46, -53, -61, -61, -61, -61, -60, -57, -45, -38, -30, -23, -10, //17504 --3, 12, 24, 31, 39, 46, 57, 61, 62, 64, 61, 61, 54, 51, 43, 35, //17520 -26, 16, 1, -6, -19, -26, -38, -49, -57, -59, -65, -70, -69, -69, -70, -65, //17536 --61, -56, -53, -42, -34, -24, -15, -7, 4, 12, 19, 27, 35, 37, 45, 50, //17552 -49, 54, 53, 53, 50, 46, 43, 40, 33, 25, 22, 13, 11, 4, 0, -8, //17568 --13, -19, -20, -24, -29, -29, -31, -32, -33, -28, -28, -29, -24, -23, -21, -16, //17584 --12, -9, -9, -3, -3, 0, 4, 4, 4, 4, 4, 4, 4, 5, 0, 1, //17600 --4, -4, -9, -11, -12, -13, -16, -16, -16, -16, -16, -16, -12, -13, -8, -4, //17616 -0, 4, 12, 16, 18, 24, 29, 33, 38, 40, 41, 43, 46, 41, 41, 36, //17632 -36, 29, 24, 13, 5, -2, -10, -18, -32, -40, -48, -55, -63, -66, -73, -78, //17648 --80, -81, -81, -78, -70, -67, -59, -51, -43, -29, -13, -3, 7, 22, 33, 50, //17664 -61, 73, 80, 88, 91, 98, 99, 99, 97, 94, 82, 75, 68, 56, 44, 32, //17680 -12, -2, -17, -30, -44, -54, -72, -80, -88, -96, -103, -106, -106, -101, -101, -94, //17696 --90, -73, -66, -55, -41, -31, -16, 3, 14, 25, 36, 47, 61, 64, 73, 76, //17712 -78, 83, 78, 78, 74, 68, 62, 57, 46, 35, 27, 19, 11, -4, -11, -19, //17728 --27, -30, -38, -44, -44, -50, -49, -49, -49, -49, -46, -43, -42, -36, -29, -25, //17744 --22, -19, -12, -8, 0, 3, 6, 7, 12, 16, 17, 21, 21, 21, 21, 20, //17760 -20, 21, 16, 17, 12, 9, 9, 3, 2, 0, -4, -8, -8, -13, -12, -17, //17776 --16, -16, -16, -16, -17, -12, -12, -8, -5, -2, 1, 4, 8, 13, 17, 18, //17792 -21, 24, 24, 25, 25, 25, 20, 17, 17, 12, 6, 4, -4, -12, -16, -23, //17808 --25, -33, -41, -40, -46, -47, -49, -49, -45, -46, -41, -36, -31, -25, -17, -10, //17824 --2, 6, 13, 25, 28, 35, 41, 45, 49, 54, 54, 54, 53, 52, 46, 43, //17840 -37, 31, 23, 20, 9, 1, -7, -15, -17, -26, -32, -35, -39, -41, -41, -45, //17856 --41, -41, -39, -36, -33, -29, -21, -18, -15, -11, -7, -1, 3, 4, 6, 8, //17872 -8, 13, 13, 13, 8, 8, 8, 4, 4, 2, 0, 0, 0, -3, -4, -4, //17888 --3, 0, 0, 0, 2, 4, 4, 8, 8, 8, 10, 12, 12, 12, 12, 12, //17904 -13, 13, 8, 8, 6, 4, 3, 0, -3, -4, -6, -8, -8, -12, -12, -12, //17920 --12, -12, -16, -17, -13, -13, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, //17936 --12, -14, -16, -16, -16, -17, -12, -12, -12, -12, -8, -5, -5, 0, 4, 9, //17952 -13, 17, 21, 24, 28, 33, 38, 40, 41, 41, 45, 42, 41, 39, 37, 32, //17968 -25, 21, 13, 6, -1, -9, -16, -24, -31, -39, -46, -49, -57, -62, -64, -65, //17984 --65, -66, -62, -59, -55, -52, -44, -37, -30, -22, -15, -3, 5, 16, 24, 26, //18000 -34, 41, 50, 49, 54, 56, 58, 58, 53, 54, 49, 45, 41, 38, 29, 25, //18016 -18, 12, 8, 0, -8, -10, -16, -20, -24, -29, -33, -37, -36, -41, -41, -41, //18032 --41, -41, -41, -36, -37, -33, -34, -29, -24, -24, -17, -14, -10, -6, -3, 1, //18048 -7, 11, 15, 18, 21, 24, 29, 32, 33, 32, 37, 37, 34, 33, 34, 29, //18064 -25, 21, 17, 12, 6, 4, -4, -12, -17, -23, -25, -32, -37, -42, -43, -45, //18080 --45, -45, -45, -42, -42, -36, -32, -25, -21, -14, -6, 1, 8, 16, 23, 29, //18096 -35, 38, 45, 48, 49, 49, 50, 50, 45, 41, 37, 30, 28, 20, 9, 1, //18112 --2, -10, -17, -29, -33, -40, -43, -46, -50, -53, -53, -53, -53, -52, -49, -45, //18128 --41, -34, -31, -23, -17, -9, -6, 2, 5, 12, 17, 21, 25, 30, 30, 33, //18144 -33, 36, 37, 32, 33, 33, 30, 29, 27, 25, 24, 21, 16, 14, 13, 8, //18160 -8, 5, 0, -2, -4, -5, -8, -13, -12, -17, -18, -21, -24, -24, -27, -29, //18176 --29, -29, -32, -33, -33, -33, -32, -29, -29, -29, -24, -23, -20, -16, -12, -8, //18192 --4, 0, 5, 12, 15, 18, 20, 25, 29, 29, 33, 33, 33, 33, 33, 33, //18208 -28, 29, 24, 24, 17, 14, 13, 8, 4, 0, -5, -7, -7, -13, -13, -16, //18224 --16, -19, -20, -20, -20, -20, -21, -16, -16, -16, -16, -13, -13, -12, -12, -12, //18240 --9, -8, -8, -10, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -11, //18256 --8, -8, -4, -2, -1, 5, 8, 8, 12, 17, 18, 21, 25, 29, 28, 33, //18272 -33, 33, 33, 33, 33, 33, 28, 25, 25, 21, 16, 10, 8, 1, -4, -11, //18288 --13, -20, -25, -33, -36, -36, -41, -45, -45, -48, -49, -49, -48, -45, -45, -41, //18304 --38, -35, -32, -28, -21, -16, -9, -7, -4, 4, 12, 15, 19, 22, 25, 29, //18320 -33, 33, 38, 37, 37, 37, 37, 37, 37, 38, 33, 33, 28, 27, 26, 21, //18336 -16, 13, 10, 7, 5, 0, -5, -8, -12, -17, -17, -24, -24, -29, -34, -34, //18352 --37, -40, -41, -41, -41, -41, -41, -41, -41, -39, -37, -32, -29, -26, -22, -18, //18368 --15, -12, -4, 4, 6, 12, 17, 24, 28, 31, 35, 36, 41, 41, 46, 45, //18384 -45, 46, 41, 41, 37, 34, 31, 28, 21, 17, 9, 7, 0, -5, -12, -16, //18400 --24, -26, -29, -32, -37, -41, -41, -42, -45, -45, -42, -41, -41, -36, -36, -33, //18416 --28, -24, -20, -17, -13, -7, -4, 0, 4, 9, 12, 16, 16, 21, 21, 21, //18432 -25, 25, 25, 25, 25, 25, 20, 20, 18, 16, 15, 13, 9, 9, 4, 4, //18448 -0, -4, -4, -6, -8, -8, -12, -12, -12, -14, -16, -16, -16, -16, -16, -16, //18464 --17, -12, -12, -12, -12, -11, -8, -8, -8, -4, -4, -4, -5, 0, 0, 0, //18480 -0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, //18496 --1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -4, //18512 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //18528 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //18544 --3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //18560 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4, -4, -4, //18576 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //18592 --4, -4, -4, -4, 0, 0, 0, 0, 0, 0, 0, 3, 4, 4, 4, 4, //18608 -4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, //18624 --4, -4, -4, -4, -5, -8, -8, -8, -8, -13, -12, -12, -12, -12, -12, -12, //18640 --12, -12, -12, -12, -13, -8, -8, -8, -5, -4, -2, 0, 0, 4, 4, 9, //18656 -9, 9, 12, 12, 17, 17, 17, 17, 20, 20, 20, 19, 17, 16, 17, 12, //18672 -12, 11, 9, 4, 4, -1, -2, -4, -9, -12, -12, -17, -16, -21, -21, -25, //18688 --25, -24, -29, -29, -29, -29, -29, -29, -24, -25, -25, -20, -18, -16, -16, -12, //18704 --8, -3, -2, 1, 4, 8, 12, 15, 16, 21, 21, 25, 28, 28, 28, 33, //18720 -33, 33, 33, 33, 28, 29, 25, 25, 20, 18, 15, 11, 5, 1, -2, -6, //18736 --9, -17, -21, -25, -29, -33, -33, -37, -41, -40, -45, -45, -45, -45, -40, -40, //18752 --39, -37, -32, -28, -24, -20, -16, -11, -4, -2, 4, 8, 12, 17, 20, 25, //18768 -30, 30, 33, 37, 37, 37, 37, 37, 37, 33, 33, 28, 27, 25, 20, 17, //18784 -14, 10, 7, 3, 0, -4, -8, -12, -17, -17, -20, -25, -24, -29, -29, -29, //18800 --32, -33, -33, -33, -33, -33, -29, -29, -29, -24, -25, -20, -21, -16, -15, -13, //18816 --8, -5, -5, 1, 1, 4, 8, 12, 12, 14, 16, 16, 21, 21, 21, 21, //18832 -21, 21, 21, 21, 20, 19, 16, 17, 13, 12, 11, 8, 8, 4, 4, 0, //18848 -0, -4, -4, -8, -8, -8, -8, -12, -12, -12, -12, -12, -12, -12, -12, -12, //18864 --12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -9, -8, -8, -8, -8, -8, //18880 --8, -8, -7, -4, -4, -4, -4, -4, -3, 0, 0, 0, 0, 5, 4, 4, //18896 -4, 7, 8, 8, 8, 8, 8, 11, 12, 12, 12, 12, 12, 12, 11, 8, //18912 -8, 8, 9, 4, 4, 4, 0, 0, 1, -5, -4, -5, -8, -8, -11, -12, //18928 --12, -12, -17, -17, -16, -16, -16, -16, -16, -16, -16, -17, -12, -12, -13, -8, //18944 --8, -7, -4, -4, 0, 0, 5, 4, 8, 8, 8, 13, 12, 13, 16, 16, //18960 -16, 17, 17, 17, 17, 16, 14, 13, 12, 12, 8, 8, 6, 4, 4, 0, //18976 -0, -2, -4, -5, -8, -8, -13, -13, -14, -16, -16, -16, -16, -21, -20, -20, //18992 --20, -20, -20, -21, -16, -16, -16, -17, -12, -12, -13, -8, -8, -6, -4, -3, //19008 -0, 3, 4, 6, 8, 8, 12, 13, 15, 16, 16, 16, 16, 21, 21, 21, //19024 -21, 21, 16, 16, 17, 17, 12, 12, 12, 8, 9, 4, 4, 1, 0, -2, //19040 --4, -5, -9, -12, -12, -12, -17, -16, -17, -21, -21, -20, -21, -21, -24, -24, //19056 --24, -25, -25, -25, -20, -20, -20, -20, -20, -16, -17, -12, -12, -11, -9, -4, //19072 --4, 0, 0, 5, 5, 8, 11, 12, 14, 17, 20, 20, 20, 25, 25, 25, //19088 -25, 25, 25, 25, 25, 25, 25, 22, 21, 21, 16, 13, 12, 10, 9, 3, //19104 -4, 0, -4, -9, -10, -12, -16, -20, -20, -23, -25, -25, -29, -28, -33, -33, //19120 --33, -33, -33, -33, -33, -32, -32, -29, -29, -24, -24, -23, -21, -16, -13, -13, //19136 --7, -7, -4, 0, 5, 6, 8, 13, 16, 16, 19, 20, 20, 25, 25, 25, //19152 -25, 25, 25, 25, 25, 25, 24, 23, 21, 21, 16, 16, 14, 12, 11, 8, //19168 -5, 5, 0, 0, -4, -4, -9, -9, -10, -12, -12, -17, -16, -16, -21, -20, //19184 --20, -20, -20, -20, -21, -21, -24, -20, -20, -20, -20, -20, -20, -20, -21, -16, //19200 --16, -16, -17, -12, -12, -13, -8, -8, -9, -4, -4, -3, 0, 0, 5, 4, //19216 -5, 8, 8, 13, 12, 12, 17, 16, 16, 21, 21, 21, 21, 21, 21, 21, //19232 -21, 21, 21, 21, 20, 18, 17, 17, 12, 12, 8, 9, 3, 3, 0, -3, //19248 --3, -9, -9, -12, -16, -19, -20, -22, -25, -28, -28, -29, -28, -33, -33, -33, //19264 --33, -33, -28, -29, -28, -25, -25, -22, -21, -16, -12, -9, -9, -3, -2, 1, //19280 -4, 8, 13, 14, 16, 21, 21, 25, 25, 24, 29, 29, 29, 29, 29, 27, //19296 -25, 25, 22, 21, 19, 17, 12, 9, 9, 4, -1, -1, -4, -9, -11, -12, //19312 --17, -16, -21, -20, -25, -25, -24, -24, -25, -25, -25, -24, -24, -21, -21, -21, //19328 --16, -15, -12, -9, -9, -3, -2, 0, 4, 8, 8, 13, 12, 17, 17, 16, //19344 -21, 21, 21, 21, 21, 21, 20, 19, 16, 16, 13, 12, 10, 9, 4, 0, //19360 -0, -5, -6, -8, -12, -12, -17, -19, -20, -20, -25, -25, -25, -24, -24, -25, //19376 --24, -24, -25, -25, -20, -21, -16, -17, -12, -11, -9, -4, 0, -1, 4, 9, //19392 -9, 12, 17, 19, 21, 22, 25, 28, 29, 29, 29, 29, 29, 29, 29, 29, //19408 -27, 24, 21, 21, 18, 17, 12, 8, 4, 1, 1, -4, -8, -12, -16, -19, //19424 --20, -25, -25, -28, -32, -32, -32, -37, -37, -37, -37, -37, -37, -37, -36, -32, //19440 --33, -28, -29, -24, -20, -21, -16, -11, -11, -8, -4, 0, 4, 9, 9, 16, //19456 -16, 21, 23, 24, 29, 29, 33, 33, 33, 33, 34, 37, 32, 33, 33, 33, //19472 -29, 29, 24, 23, 21, 16, 13, 9, 9, 4, 0, -4, -8, -11, -11, -16, //19488 --21, -25, -24, -29, -28, -33, -33, -36, -37, -37, -37, -37, -37, -37, -32, -33, //19504 --33, -29, -28, -24, -22, -21, -16, -16, -12, -8, -3, -2, -1, 4, 8, 8, //19520 -13, 14, 17, 20, 20, 21, 23, 25, 25, 25, 25, 25, 24, 24, 21, 21, //19536 -21, 16, 17, 12, 12, 9, 9, 4, 5, 0, 0, -5, -4, -6, -8, -8, //19552 --13, -12, -12, -12, -17, -16, -16, -16, -16, -16, -16, -16, -13, -12, -12, -12, //19568 --12, -8, -8, -8, -8, -7, -4, -4, -4, -4, -4, -3, 0, 0, 0, 0, //19584 -0, 0, 0, 0, 0, 0, 0, 0, -5, -4, -4, -4, -4, -4, -4, -4, //19600 --4, -4, -4, -4, -4, -4, -4, -4, 0, 0, 0, 0, 0, 0, 4, 4, //19616 -4, 4, 4, 4, 4, 7, 8, 8, 8, 8, 8, 8, 9, 4, 4, 4, //19632 -4, 4, 4, 3, 0, 0, 0, 1, -4, -4, -4, -4, -6, -8, -8, -8, //19648 --8, -8, -10, -12, -12, -12, -12, -12, -12, -13, -8, -8, -8, -8, -8, -8, //19664 --8, -4, -4, -4, -4, -4, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, //19680 -4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 0, 0, 0, 0, 0, //19696 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, //19712 -4, 4, 4, 4, 4, 1, 0, 0, 0, 0, 0, 0, 0, -1, -4, -4, //19728 --4, -6, -8, -8, -8, -8, -13, -12, -12, -12, -12, -17, -16, -16, -16, -16, //19744 --16, -16, -14, -12, -12, -12, -9, -8, -8, -7, -4, -4, 0, 0, 5, 4, //19760 -5, 8, 11, 12, 13, 13, 16, 16, 16, 16, 21, 20, 21, 17, 17, 17, //19776 -17, 17, 12, 12, 10, 8, 7, 4, 1, 1, -5, -4, -8, -8, -13, -13, //19792 --14, -16, -16, -21, -21, -20, -20, -20, -20, -20, -20, -20, -20, -20, -17, -16, //19808 --14, -13, -13, -8, -8, -4, -4, -3, 0, 0, 4, 4, 4, 5, 8, 8, //19824 -8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 4, 4, 4, 2, 0, 0, //19840 -0, -5, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //19856 --3, 0, 0, 0, 2, 4, 4, 4, 7, 8, 8, 8, 8, 8, 8, 8, //19872 -8, 8, 8, 4, 4, 4, 3, 0, 0, -5, -4, -8, -8, -12, -12, -15, //19888 --16, -18, -20, -20, -20, -25, -25, -24, -25, -25, -25, -24, -23, -21, -21, -16, //19904 --16, -15, -13, -8, -5, -5, 1, 1, 4, 8, 8, 13, 14, 16, 16, 21, //19920 -21, 21, 22, 25, 25, 25, 22, 21, 21, 21, 16, 16, 12, 13, 8, 8, //19936 -4, 0, -3, -4, -5, -8, -13, -12, -17, -17, -17, -20, -20, -20, -20, -20, //19952 --20, -20, -20, -20, -19, -17, -16, -12, -12, -10, -8, -7, -5, -1, 0, 2, //19968 -4, 4, 9, 8, 8, 13, 12, 12, 12, 12, 12, 12, 12, 8, 8, 9, //19984 -4, 4, 3, 0, -3, -4, -4, -8, -8, -8, -13, -12, -12, -13, -16, -16, //20000 --16, -16, -16, -16, -13, -12, -12, -13, -8, -8, -5, -4, -2, 0, 0, 4, //20016 -4, 7, 8, 8, 13, 12, 12, 13, 14, 16, 16, 17, 12, 12, 12, 13, //20032 -12, 8, 8, 6, 4, 4, 0, 0, -2, -4, -4, -8, -8, -11, -12, -12, //20048 --13, -16, -16, -16, -16, -16, -16, -16, -17, -12, -12, -12, -12, -8, -8, -9, //20064 --4, -4, -4, -1, 0, 0, 1, 4, 4, 4, 4, 4, 9, 8, 8, 8, //20080 -8, 7, 4, 4, 4, 4, 4, 3, 0, 0, 0, 0, -2, -4, -4, -4, //20096 --4, -4, -4, -8, -8, -8, -8, -6, -4, -4, -4, -4, -4, -4, -3, 0, //20112 -0, 0, 0, 5, 4, 4, 4, 4, 9, 8, 8, 8, 8, 8, 8, 8, //20128 -8, 8, 9, 4, 4, 4, 4, 0, 0, 0, -1, -4, -4, -7, -8, -8, //20144 --9, -12, -12, -12, -12, -17, -16, -16, -16, -16, -16, -16, -16, -16, -17, -12, //20160 --12, -12, -12, -8, -8, -9, -4, -4, 0, 0, -1, 5, 4, 4, 9, 8, //20176 -8, 13, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 8, 8, //20192 -8, 9, 4, 4, 0, 0, 1, -5, -4, -5, -8, -8, -10, -12, -12, -12, //20208 --17, -16, -16, -16, -16, -16, -16, -16, -16, -16, -17, -16, -12, -12, -12, -11, //20224 --8, -8, -6, -4, -4, -3, 0, 0, 5, 4, 4, 8, 8, 8, 10, 12, //20240 -12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 8, 8, 8, 5, 4, //20256 -5, 0, 0, 0, -5, -4, -5, -8, -8, -13, -12, -12, -12, -16, -16, -16, //20272 --16, -16, -16, -16, -16, -16, -16, -16, -17, -12, -12, -12, -13, -8, -8, -8, //20288 --4, -4, -3, 0, 0, 0, 5, 4, 4, 5, 8, 8, 8, 8, 8, 8, //20304 -8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 4, 4, 4, 5, -1, 0, //20320 -0, 0, -5, -4, -4, -4, -8, -8, -8, -8, -8, -8, -8, -8, -13, -12, //20336 --12, -12, -12, -13, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -6, //20352 --4, -4, -4, -4, -4, -4, -4, -4, -4, 0, 0, 0, 0, 0, 0, 0, //20368 -0, 0, 0, 0, 0, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, //20384 -4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 0, 0, //20400 -0, 0, 1, -5, -4, -4, -4, -4, -6, -8, -8, -8, -8, -8, -10, -12, //20416 --12, -12, -12, -12, -12, -12, -12, -12, -13, -8, -8, -8, -8, -9, -4, -4, //20432 --4, 0, 0, 0, 2, 4, 4, 4, 9, 8, 8, 8, 12, 13, 12, 12, //20448 -12, 12, 12, 12, 13, 8, 8, 8, 8, 5, 4, 4, 3, 0, 0, -4, //20464 --4, -6, -8, -8, -11, -12, -12, -13, -13, -16, -16, -16, -16, -16, -16, -16, //20480 --16, -16, -15, -12, -12, -12, -8, -8, -9, -4, -4, -1, 0, -1, 5, 4, //20496 -8, 8, 8, 10, 12, 12, 12, 13, 14, 16, 17, 17, 16, 14, 13, 12, //20512 -12, 12, 9, 8, 8, 9, 4, 4, 4, 0, 0, 0, -4, -4, -4, -9, //20528 --8, -8, -12, -12, -12, -12, -12, -12, -12, -15, -16, -16, -16, -13, -13, -12, //20544 --12, -12, -12, -12, -12, -13, -8, -8, -8, -8, -8, -6, -4, -4, -4, -4, //20560 --5, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 4, 4, 4, 8, 8, //20576 -8, 8, 8, 8, 8, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, //20592 -12, 13, 8, 8, 8, 8, 5, 4, 4, 3, 0, 0, -4, -4, -9, -8, //20608 --9, -12, -15, -16, -16, -21, -20, -24, -24, -24, -25, -25, -28, -28, -29, -29, //20624 --29, -29, -24, -24, -24, -23, -21, -20, -16, -17, -12, -11, -8, -5, -5, 1, //20640 -2, 4, 9, 12, 12, 15, 17, 18, 20, 24, 24, 25, 25, 25, 29, 29, //20656 -29, 29, 28, 25, 25, 25, 20, 20, 20, 17, 13, 13, 8, 9, 4, 0, //20672 -1, -5, -6, -8, -9, -12, -17, -16, -21, -21, -24, -24, -24, -25, -26, -29, //20688 --29, -29, -29, -28, -28, -24, -25, -25, -25, -20, -21, -20, -16, -16, -14, -12, //20704 --12, -8, -9, -4, -4, -3, 0, 0, 3, 4, 4, 5, 8, 8, 8, 8, //20720 -13, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, //20736 -10, 8, 8, 8, 8, 9, 4, 4, 4, 4, 5, 0, 0, 0, 0, -3, //20752 --4, -4, -4, -4, -8, -8, -8, -8, -9, -12, -12, -12, -12, -12, -12, -16, //20768 --16, -16, -16, -16, -16, -16, -16, -16, -15, -12, -12, -12, -12, -12, -11, -8, //20784 --8, -8, -9, -4, -4, -4, -1, 0, 0, 0, 1, 4, 4, 4, 4, 9, //20800 -8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, //20816 -8, 8, 8, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, -3, -4, //20832 --4, -4, -4, -4, -4, -4, -6, -8, -8, -8, -8, -8, -8, -8, -8, -8, //20848 --8, -8, -8, -8, -8, -5, -4, -4, -4, -4, -4, -4, -4, -4, -3, 0, //20864 -0, 0, 0, 0, 0, 0, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, //20880 -4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, -4, -4, -4, -4, //20896 --5, -8, -8, -8, -8, -9, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, //20912 --13, -8, -8, -8, -9, -4, -4, -4, 0, 0, 2, 4, 4, 8, 8, 11, //20928 -12, 13, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 12, 12, //20944 -13, 8, 9, 4, 4, 0, 0, -5, -5, -8, -12, -12, -17, -16, -21, -20, //20960 --24, -24, -24, -24, -29, -29, -29, -29, -29, -28, -28, -25, -25, -25, -20, -20, //20976 --17, -17, -14, -12, -11, -8, -4, -4, 1, 2, 4, 5, 8, 13, 13, 14, //20992 -16, 16, 21, 21, 21, 21, 21, 24, 24, 22, 21, 21, 20, 21, 20, 18, //21008 -17, 16, 13, 13, 10, 9, 9, 4, 4, -1, 0, -4, -4, -9, -8, -13, //21024 --13, -14, -16, -16, -20, -20, -20, -20, -25, -25, -25, -24, -24, -25, -25, -25, //21040 --25, -25, -24, -24, -21, -21, -20, -20, -19, -16, -17, -12, -12, -11, -8, -4, //21056 --4, -5, 0, 0, 4, 4, 9, 8, 13, 13, 13, 16, 16, 19, 20, 21, //21072 -20, 20, 21, 23, 20, 21, 21, 21, 21, 20, 20, 17, 17, 12, 12, 11, //21088 -8, 4, 5, -1, -2, -4, -5, -8, -13, -12, -17, -17, -17, -20, -20, -25, //21104 --25, -24, -25, -25, -24, -24, -25, -25, -24, -20, -20, -21, -16, -17, -12, -12, //21120 --8, -9, -4, -4, 1, 3, 4, 4, 9, 8, 11, 12, 12, 13, 13, 16, //21136 -16, 17, 12, 12, 12, 12, 10, 8, 8, 8, 4, 5, -1, 0, 0, -4, //21152 --4, -7, -8, -8, -8, -12, -12, -12, -12, -12, -12, -12, -12, -10, -8, -8, //21168 --8, -4, -4, -5, 0, 0, 4, 4, 4, 6, 8, 8, 8, 13, 12, 12, //21184 -12, 12, 12, 12, 12, 11, 8, 8, 9, 4, 4, 3, 0, 0, -4, -4, //21200 --9, -8, -12, -12, -12, -14, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, //21216 --14, -12, -12, -8, -8, -9, -4, -5, 0, 0, 3, 4, 4, 9, 8, 12, //21232 -12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 10, 8, 8, 8, //21248 -4, 4, 2, 0, 0, -4, -4, -4, -6, -8, -8, -8, -8, -8, -8, -8, //21264 --8, -8, -8, -8, -8, -8, -8, -5, -4, -4, -4, -4, 0, 0, 0, 0, //21280 -0, 0, 0, 0, 5, 4, 4, 0, 0, 0, 0, 0, 0, 0, -3, -4, //21296 --4, -4, -4, -7, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, //21312 --8, -8, -8, -8, -4, -4, -4, -4, -3, 0, 0, 0, 5, 4, 4, 4, //21328 -7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 4, //21344 -4, 4, 2, 0, 0, 0, -5, -4, -4, -4, -8, -8, -8, -8, -10, -12, //21360 --12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -13, -8, -8, //21376 --8, -8, -8, -9, -4, -4, -4, -4, -4, -5, 1, 0, 0, 0, 0, 0, //21392 -0, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, //21408 -4, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0, -5, -4, -4, -4, -4, //21424 --4, -4, -9, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, //21440 --5, -4, -4, -4, -4, -4, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, //21456 -4, 4, 4, 4, 4, 4, 4, 4, -1, 0, 0, 0, -4, -4, -4, -6, //21472 --8, -8, -8, -13, -12, -12, -12, -16, -16, -16, -16, -16, -17, -16, -12, -12, //21488 --12, -11, -8, -8, -4, -4, -2, 0, 4, 4, 9, 8, 13, 12, 17, 17, //21504 -16, 21, 21, 20, 21, 21, 21, 21, 20, 21, 17, 17, 17, 12, 12, 8, //21520 -4, 2, 1, -5, -5, -12, -12, -17, -18, -20, -25, -24, -29, -29, -28, -28, //21536 --33, -33, -30, -29, -29, -29, -24, -25, -20, -19, -17, -12, -8, -5, -2, 1, //21552 -4, 8, 13, 15, 16, 21, 21, 24, 27, 29, 29, 29, 29, 29, 29, 29, //21568 -27, 25, 21, 21, 16, 14, 12, 9, 4, 0, -5, -6, -9, -16, -16, -21, //21584 --23, -25, -25, -28, -28, -33, -33, -33, -33, -28, -28, -29, -24, -25, -20, -17, //21600 --14, -13, -8, -4, 0, 3, 6, 10, 12, 16, 20, 20, 25, 25, 25, 29, //21616 -29, 29, 29, 29, 29, 24, 24, 22, 21, 16, 12, 13, 8, 6, 3, 0, //21632 --4, -9, -11, -14, -16, -17, -20, -25, -25, -24, -29, -29, -29, -29, -28, -27, //21648 --25, -24, -20, -21, -16, -17, -12, -9, -9, -3, -3, -1, 5, 9, 8, 13, //21664 -12, 17, 17, 20, 20, 21, 21, 21, 20, 21, 16, 17, 17, 12, 12, 10, //21680 -9, 4, 5, 0, 0, -5, -6, -8, -9, -12, -12, -17, -16, -16, -16, -16, //21696 --16, -16, -16, -16, -16, -16, -14, -13, -13, -8, -8, -5, -4, -3, 0, 0, //21712 -4, 4, 6, 8, 8, 8, 11, 12, 12, 12, 12, 12, 12, 10, 8, 8, //21728 -8, 5, 4, 5, -1, 0, -4, -4, -3, -9, -8, -9, -12, -12, -12, -14, //21744 --16, -16, -16, -16, -16, -16, -16, -16, -13, -12, -12, -12, -12, -8, -8, -9, //21760 --4, -4, -4, 0, 0, -1, 4, 4, 4, 7, 8, 8, 8, 8, 8, 8, //21776 -8, 8, 8, 8, 8, 8, 8, 7, 4, 4, 4, 5, -1, 0, 0, 0, //21792 --5, -4, -4, -4, -4, -9, -8, -8, -8, -8, -8, -8, -8, -13, -12, -12, //21808 --12, -12, -12, -11, -8, -8, -8, -8, -8, -8, -8, -8, -8, -9, -4, -4, //21824 --4, -4, -4, -4, -5, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 4, //21840 -4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, //21856 -5, 0, 0, 0, 0, 0, -1, -4, -4, -4, -4, -9, -8, -8, -8, -8, //21872 --13, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -8, //21888 --8, -8, -7, -4, -4, -4, 1, 0, -1, 4, 4, 4, 6, 8, 8, 8, //21904 -8, 11, 12, 12, 12, 12, 12, 12, 12, 13, 13, 8, 8, 8, 8, 7, //21920 -4, 4, 5, -1, 0, 0, -4, -4, -4, -4, -4, -8, -8, -8, -8, -8, //21936 --8, -8, -13, -12, -12, -13, -8, -8, -8, -8, -8, -8, -8, -8, -5, -4, //21952 --4, -4, -4, -4, -5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21968 -5, 4, 4, 4, 4, 4, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0, //21984 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //16 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //32 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //48 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //64 +0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2, -2, -2, -2, -3, -3, //80 +-3, -4, -4, -4, -4, -3, -3, -3, -2, -2, -2, 0, 0, 0, 0, 0, //96 +0, 2, 2, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, //112 +3, 3, 2, 2, 0, 0, 0, 0, 0, -2, -2, -3, -3, -3, -4, -4, //128 +-4, -5, -5, -5, -5, -5, -5, -5, -4, -4, -4, -3, -3, -3, -2, -2, //144 +0, 0, 0, 0, 0, 2, 2, 3, 3, 3, 4, 4, 4, 4, 4, 4, //160 +4, 4, 4, 3, 3, 3, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, //176 +-2, -2, -3, -3, -3, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //192 +-4, -4, -4, -3, -3, -3, -3, -2, -2, 0, 0, 0, 0, 0, 0, 0, //208 +0, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, //224 +3, 3, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2, -3, //240 +-4, -4, -4, -5, -5, -5, -6, -6, -6, -6, -6, -5, -5, -5, -4, -4, //256 +-4, -3, -3, -3, 0, 0, 0, 0, 0, 2, 2, 3, 3, 4, 4, 4, //272 +5, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 3, 3, 2, 0, 0, //288 +0, 0, 0, -2, -3, -3, -4, -5, -5, -6, -6, -6, -7, -7, -7, -8, //304 +-8, -8, -7, -7, -7, -7, -6, -6, -5, -4, -4, -3, -2, 0, 0, 0, //320 +0, 2, 3, 4, 5, 5, 6, 6, 7, 7, 7, 8, 8, 8, 7, 7, //336 +7, 6, 6, 6, 4, 4, 3, 2, 0, 0, 0, -2, -2, -3, -4, -5, //352 +-5, -6, -7, -7, -7, -8, -8, -8, -8, -8, -8, -8, -8, -7, -7, -6, //368 +-6, -5, -4, -3, -2, 0, 0, 0, 2, 3, 4, 5, 6, 7, 8, 9, //384 +9, 10, 10, 10, 10, 10, 10, 10, 10, 9, 8, 7, 6, 5, 4, 3, //400 +2, 0, 0, -2, -4, -5, -6, -7, -8, -9, -10, -11, -12, -12, -12, -12, //416 +-12, -12, -12, -11, -10, -9, -8, -7, -6, -5, -4, -2, 0, 0, 2, 3, //432 +5, 6, 7, 9, 10, 11, 12, 12, 12, 13, 13, 13, 13, 13, 12, 11, //448 +10, 9, 8, 7, 6, 3, 2, 0, 0, -3, -6, -7, -9, -10, -11, -13, //464 +-14, -15, -16, -16, -16, -16, -16, -15, -15, -14, -13, -11, -9, -8, -7, -5, //480 +-3, 0, 2, 4, 5, 7, 9, 11, 13, 14, 14, 16, 16, 16, 16, 16, //496 +16, 15, 14, 13, 12, 10, 9, 8, 5, 3, 2, 0, 0, -4, -6, -7, //512 +-8, -10, -11, -13, -14, -14, -15, -15, -15, -15, -14, -14, -13, -12, -11, -9, //528 +-8, -7, -6, -4, -2, 0, 2, 3, 5, 6, 8, 9, 10, 11, 12, 12, //544 +12, 12, 12, 12, 11, 11, 10, 9, 8, 7, 6, 4, 2, 0, 0, -2, //560 +-3, -5, -6, -7, -8, -9, -9, -10, -10, -11, -11, -11, -11, -10, -10, -9, //576 +-8, -8, -7, -6, -5, -4, -3, -2, 0, 0, 0, 0, 0, 0, 2, 2, //592 +2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, //608 +0, 0, 0, 0, 0, 0, 2, 2, 2, 3, 3, 3, 4, 4, 4, 4, //624 +4, 4, 3, 3, 2, 2, 0, 0, 0, -2, -3, -4, -5, -6, -7, -8, //640 +-9, -10, -11, -11, -11, -12, -12, -12, -12, -11, -11, -10, -9, -7, -6, -5, //656 +-3, 0, 0, 2, 4, 6, 8, 10, 12, 13, 14, 16, 17, 17, 18, 18, //672 +18, 17, 16, 15, 14, 13, 12, 9, 6, 4, 2, 0, -3, -6, -8, -11, //688 +-13, -15, -18, -20, -22, -23, -23, -24, -25, -25, -25, -24, -23, -22, -19, -17, //704 +-15, -13, -10, -6, -2, 0, 3, 7, 10, 14, 17, 18, 21, 23, 24, 26, //720 +27, 28, 28, 27, 27, 25, 24, 23, 20, 17, 13, 10, 7, 4, 0, -4, //736 +-7, -11, -14, -17, -20, -23, -25, -27, -28, -28, -29, -30, -29, -28, -27, -26, //752 +-23, -20, -18, -16, -12, -9, -4, 0, 2, 6, 10, 13, 17, 19, 22, 24, //768 +26, 28, 29, 30, 30, 29, 28, 27, 26, 24, 22, 20, 17, 13, 10, 8, //784 +4, 0, -3, -6, -8, -11, -13, -15, -18, -20, -21, -22, -22, -22, -22, -22, //800 +-21, -20, -19, -18, -16, -15, -14, -12, -10, -7, -5, -3, -2, 0, 2, 5, //816 +7, 8, 9, 11, 13, 14, 14, 15, 16, 16, 16, 16, 16, 16, 16, 15, //832 +14, 13, 12, 11, 10, 8, 6, 5, 4, 2, 0, -3, -5, -6, -7, -9, //848 +-10, -13, -14, -15, -16, -17, -17, -18, -18, -18, -17, -17, -16, -15, -14, -12, //864 +-11, -10, -7, -5, -3, -2, 0, 4, 6, 7, 9, 11, 12, 15, 16, 17, //880 +18, 18, 20, 20, 20, 19, 19, 18, 17, 16, 15, 14, 12, 10, 7, 5, //896 +3, 2, 0, -4, -6, -8, -9, -11, -13, -15, -17, -18, -18, -20, -20, -20, //912 +-20, -20, -20, -19, -18, -17, -15, -14, -13, -11, -8, -6, -4, -3, 0, 0, //928 +4, 6, 8, 9, 10, 12, 13, 14, 15, 15, 15, 16, 16, 15, 15, 14, //944 +13, 12, 11, 10, 9, 8, 6, 4, 3, 2, 0, 0, -3, -4, -5, -7, //960 +-8, -10, -12, -13, -14, -15, -16, -17, -18, -18, -18, -19, -19, -19, -18, -18, //976 +-17, -16, -15, -14, -12, -10, -9, -8, -4, -2, 0, 2, 4, 6, 11, 13, //992 +15, 18, 20, 22, 26, 28, 29, 29, 30, 32, 32, 31, 30, 29, 27, 23, //1008 +20, 18, 14, 10, 6, 0, -4, -8, -12, -17, -24, -27, -31, -35, -38, -40, //1024 +-44, -45, -47, -47, -46, -44, -42, -39, -36, -32, -28, -21, -16, -10, -5, 0, //1040 +7, 16, 22, 28, 33, 38, 45, 48, 51, 53, 55, 56, 56, 55, 53, 51, //1056 +46, 42, 35, 30, 23, 17, 10, 0, -7, -14, -22, -28, -35, -43, -48, -53, //1072 +-57, -60, -62, -63, -64, -63, -61, -58, -53, -48, -43, -37, -30, -24, -13, -6, //1088 +0, 8, 15, 22, 30, 36, 41, 46, 49, 53, 54, 56, 56, 55, 54, 50, //1104 +47, 43, 39, 34, 28, 20, 15, 9, 4, -2, -10, -15, -20, -24, -27, -31, //1120 +-35, -37, -38, -40, -40, -40, -39, -37, -35, -33, -31, -27, -24, -21, -18, -14, //1136 +-11, -5, -2, 0, 5, 8, 11, 15, 17, 19, 21, 23, 25, 26, 27, 27, //1152 +27, 28, 27, 27, 26, 25, 24, 23, 20, 18, 16, 14, 12, 8, 5, 3, //1168 +0, -2, -5, -9, -11, -13, -15, -18, -20, -21, -24, -25, -25, -25, -26, -25, //1184 +-24, -23, -22, -21, -18, -15, -13, -11, -8, -4, 0, 0, 4, 7, 10, 13, //1200 +15, 16, 18, 20, 20, 22, 22, 22, 21, 20, 19, 18, 16, 14, 13, 10, //1216 +7, 4, 2, 0, -2, -4, -7, -9, -10, -11, -12, -13, -14, -14, -14, -13, //1232 +-13, -12, -11, -10, -9, -8, -7, -5, -3, -2, 0, 0, 2, 3, 4, 4, //1248 +4, 4, 4, 4, 3, 2, 0, 0, 0, -2, -3, -4, -5, -6, -7, -7, //1264 +-7, -8, -7, -7, -6, -5, -4, -3, 0, 2, 4, 5, 8, 10, 13, 15, //1280 +16, 18, 20, 20, 22, 22, 22, 21, 20, 18, 15, 12, 10, 6, 3, -3, //1296 +-7, -11, -15, -19, -22, -27, -29, -31, -33, -34, -35, -35, -35, -33, -31, -29, //1312 +-24, -20, -17, -12, -8, -3, 5, 10, 15, 19, 23, 29, 32, 35, 37, 39, //1328 +40, 41, 41, 40, 38, 36, 33, 28, 24, 20, 15, 10, 2, -4, -8, -13, //1344 +-18, -23, -30, -33, -36, -39, -41, -42, -44, -44, -43, -42, -41, -37, -34, -30, //1360 +-27, -23, -19, -12, -8, -3, 2, 6, 11, 18, 22, 26, 29, 32, 36, 38, //1376 +39, 39, 39, 38, 37, 35, 32, 30, 27, 24, 18, 14, 10, 6, 0, -6, //1392 +-10, -14, -18, -21, -25, -30, -32, -34, -35, -36, -37, -38, -37, -36, -35, -34, //1408 +-30, -27, -24, -21, -18, -15, -9, -5, 0, 3, 7, 11, 17, 20, 23, 26, //1424 +29, 32, 33, 35, 35, 36, 36, 35, 34, 32, 30, 28, 25, 20, 16, 13, //1440 +9, 4, -3, -7, -12, -17, -20, -25, -31, -34, -37, -39, -41, -43, -44, -44, //1456 +-43, -41, -39, -35, -31, -27, -22, -18, -13, -4, 2, 8, 13, 19, 27, 31, //1472 +35, 39, 42, 44, 46, 46, 46, 45, 43, 40, 35, 30, 25, 20, 15, 6, //1488 +0, -6, -12, -18, -23, -31, -35, -39, -43, -45, -46, -48, -48, -46, -44, -42, //1504 +-37, -32, -28, -22, -16, -10, 0, 6, 13, 19, 25, 31, 38, 43, 46, 49, //1520 +51, 52, 52, 51, 48, 46, 42, 35, 30, 24, 18, 11, 5, -5, -12, -18, //1536 +-25, -31, -39, -43, -47, -51, -53, -54, -55, -53, -51, -49, -45, -41, -32, -27, //1552 +-21, -13, -7, 4, 11, 18, 25, 31, 36, 44, 48, 51, 54, 55, 56, 56, //1568 +54, 51, 48, 44, 37, 31, 25, 19, 12, 5, -5, -11, -17, -24, -30, -34, //1584 +-41, -45, -49, -51, -53, -55, -55, -54, -53, -51, -48, -43, -38, -34, -29, -23, //1600 +-18, -9, -3, 3, 9, 15, 24, 30, 35, 40, 44, 48, 54, 56, 58, 59, //1616 +60, 59, 58, 56, 53, 49, 45, 38, 32, 26, 20, 13, 5, -6, -14, -21, //1632 +-28, -36, -46, -52, -58, -64, -67, -70, -73, -74, -73, -72, -70, -66, -59, -53, //1648 +-45, -37, -29, -15, -6, 4, 14, 24, 34, 49, 58, 66, 73, 79, 84, 90, //1664 +91, 92, 91, 89, 82, 76, 69, 60, 51, 41, 24, 13, 0, -12, -24, -36, //1680 +-53, -63, -72, -81, -88, -95, -98, -100, -100, -98, -95, -87, -81, -72, -64, -54, //1696 +-43, -26, -14, 0, 11, 23, 40, 50, 60, 68, 75, 81, 87, 89, 90, 90, //1712 +88, 84, 76, 70, 62, 53, 44, 29, 19, 8, -3, -13, -23, -37, -45, -54, //1728 +-61, -66, -70, -75, -76, -76, -76, -74, -69, -64, -59, -52, -46, -39, -27, -19, //1744 +-11, -3, 6, 14, 25, 32, 39, 45, 50, 55, 58, 60, 61, 62, 61, 58, //1760 +55, 52, 47, 42, 33, 26, 20, 13, 5, -2, -14, -20, -27, -34, -39, -45, //1776 +-51, -55, -57, -58, -59, -59, -57, -54, -51, -46, -41, -32, -25, -17, -9, 0, //1792 +7, 19, 27, 34, 41, 47, 55, 58, 61, 62, 63, 62, 60, 56, 51, 45, //1808 +39, 32, 19, 10, 0, -8, -17, -31, -39, -46, -54, -60, -64, -69, -70, -70, //1824 +-70, -68, -64, -57, -51, -44, -36, -27, -13, -4, 6, 16, 26, 34, 45, 53, //1840 +59, 62, 66, 68, 68, 68, 65, 62, 57, 49, 42, 34, 27, 19, 10, -3, //1856 +-11, -19, -27, -33, -40, -47, -52, -55, -57, -58, -59, -58, -56, -53, -50, -46, //1872 +-39, -34, -28, -23, -16, -11, -2, 4, 9, 15, 20, 27, 31, 35, 39, 42, //1888 +44, 47, 48, 48, 48, 47, 46, 44, 41, 38, 36, 32, 27, 23, 18, 13, //1904 +8, 3, -7, -12, -18, -25, -31, -39, -43, -48, -52, -55, -58, -60, -61, -61, //1920 +-59, -57, -55, -48, -43, -37, -31, -24, -13, -5, 4, 13, 21, 29, 41, 49, //1936 +55, 61, 66, 70, 74, 75, 76, 74, 72, 67, 62, 56, 49, 41, 33, 19, //1952 +10, 0, -10, -20, -29, -43, -52, -60, -66, -72, -79, -81, -83, -84, -82, -80, //1968 +-74, -68, -62, -55, -47, -38, -24, -13, -4, 7, 18, 33, 42, 50, 58, 65, //1984 +71, 77, 81, 82, 82, 81, 79, 74, 69, 63, 57, 49, 36, 27, 17, 7, //2000 +-3, -13, -28, -38, -46, -53, -60, -66, -72, -75, -76, -77, -75, -72, -68, -63, //2016 +-57, -51, -42, -30, -22, -13, -4, 5, 14, 27, 35, 42, 48, 54, 61, 64, //2032 +66, 67, 67, 65, 62, 58, 54, 48, 41, 34, 23, 15, 7, 0, -9, -21, //2048 +-28, -35, -41, -46, -52, -56, -59, -61, -60, -59, -56, -51, -47, -41, -35, -28, //2064 +-16, -9, 0, 7, 14, 21, 30, 36, 41, 44, 47, 49, 50, 48, 46, 44, //2080 +40, 33, 27, 20, 13, 6, 0, -12, -19, -25, -31, -36, -42, -44, -46, -46, //2096 +-45, -44, -39, -35, -30, -24, -19, -12, -3, 5, 11, 17, 23, 31, 34, 37, //2112 +39, 40, 41, 40, 37, 34, 30, 25, 19, 11, 4, -2, -9, -15, -23, -28, //2128 +-32, -36, -38, -39, -40, -39, -37, -35, -31, -27, -19, -14, -8, -3, 2, 10, //2144 +14, 19, 23, 26, 28, 30, 31, 30, 29, 28, 25, 20, 17, 13, 9, 5, //2160 +0, -4, -8, -12, -14, -17, -19, -20, -20, -20, -19, -18, -15, -13, -11, -9, //2176 +-6, -3, 0, 0, 2, 4, 6, 6, 7, 6, 6, 6, 4, 3, 2, 0, //2192 +0, 0, -4, -5, -6, -6, -7, -7, -6, -6, -5, -4, -3, 0, 0, 0, //2208 +2, 3, 4, 5, 5, 5, 5, 5, 4, 3, 2, 0, 0, 0, -2, -3, //2224 +-3, -4, -4, -4, -4, -4, -3, -3, -2, 0, 0, 0, 2, 3, 4, 4, //2240 +5, 5, 5, 4, 3, 2, 0, 0, -2, -3, -5, -8, -9, -10, -12, -13, //2256 +-13, -13, -13, -12, -11, -9, -6, -3, 0, 2, 6, 9, 13, 16, 17, 19, //2272 +21, 22, 22, 22, 20, 18, 17, 13, 9, 6, 2, -2, -6, -12, -15, -19, //2288 +-21, -23, -26, -26, -25, -24, -23, -20, -15, -12, -8, -4, 0, 4, 10, 14, //2304 +18, 21, 23, 25, 26, 25, 24, 23, 20, 15, 11, 7, 2, -2, -7, -15, //2320 +-19, -23, -27, -29, -32, -33, -33, -31, -29, -26, -19, -14, -7, 0, 5, 12, //2336 +22, 28, 33, 39, 43, 48, 49, 50, 50, 48, 44, 38, 32, 25, 18, 10, //2352 +-3, -11, -20, -29, -36, -44, -52, -57, -61, -63, -64, -64, -62, -58, -54, -48, //2368 +-41, -29, -20, -10, 0, 10, 20, 34, 43, 50, 57, 63, 67, 71, 72, 73, //2384 +71, 67, 61, 54, 47, 39, 30, 21, 6, -4, -14, -24, -33, -41, -52, -59, //2400 +-64, -67, -70, -70, -70, -68, -65, -60, -55, -45, -37, -28, -21, -12, -2, 10, //2416 +18, 27, 34, 41, 49, 53, 57, 59, 61, 62, 60, 58, 55, 51, 46, 42, //2432 +32, 25, 18, 11, 2, -9, -16, -23, -29, -35, -40, -46, -49, -51, -53, -54, //2448 +-53, -52, -49, -46, -42, -38, -31, -25, -20, -14, -7, 0, 9, 15, 21, 26, //2464 +31, 35, 41, 44, 46, 48, 49, 49, 48, 46, 44, 40, 36, 29, 24, 17, //2480 +11, 5, -2, -12, -20, -26, -32, -37, -45, -49, -52, -54, -56, -57, -55, -53, //2496 +-50, -46, -41, -32, -25, -17, -10, -2, 6, 19, 26, 33, 40, 46, 51, 56, //2512 +58, 59, 60, 58, 54, 50, 45, 38, 30, 23, 10, 0, -8, -17, -26, -34, //2528 +-45, -51, -55, -60, -61, -61, -61, -58, -54, -49, -44, -33, -25, -17, -8, 2, //2544 +10, 22, 30, 36, 42, 47, 53, 54, 55, 54, 52, 49, 41, 35, 28, 20, //2560 +13, 5, -7, -13, -19, -26, -31, -37, -39, -41, -43, -42, -41, -36, -32, -28, //2576 +-23, -17, -11, -2, 4, 10, 14, 19, 25, 28, 29, 31, 31, 30, 27, 23, //2592 +20, 15, 11, 6, -3, -8, -14, -18, -23, -29, -31, -33, -35, -36, -35, -32, //2608 +-29, -26, -21, -16, -10, 0, 5, 11, 17, 22, 31, 34, 38, 41, 43, 44, //2624 +45, 44, 42, 40, 36, 32, 23, 16, 9, 2, -6, -18, -25, -32, -39, -45, //2640 +-49, -56, -59, -61, -62, -63, -61, -57, -52, -47, -41, -33, -21, -11, 0, 10, //2656 +20, 31, 45, 54, 63, 70, 76, 83, 86, 87, 87, 85, 81, 72, 64, 55, //2672 +44, 32, 21, 0, -12, -25, -38, -50, -68, -76, -85, -92, -97, -100, -101, -99, //2688 +-95, -90, -83, -74, -58, -46, -33, -20, -5, 16, 29, 43, 55, 67, 77, 88, //2704 +94, 97, 99, 99, 97, 91, 85, 77, 67, 57, 40, 29, 16, 4, -7, -18, //2720 +-34, -44, -51, -58, -63, -68, -71, -72, -72, -70, -68, -63, -58, -53, -47, -41, //2736 +-35, -25, -19, -12, -7, 0, 4, 12, 16, 20, 23, 27, 32, 34, 37, 40, //2752 +42, 44, 47, 48, 48, 49, 49, 48, 47, 45, 43, 41, 38, 33, 28, 23, //2768 +17, 10, 3, -8, -16, -24, -32, -40, -49, -59, -65, -71, -76, -80, -83, -83, //2784 +-82, -79, -75, -70, -59, -51, -41, -29, -18, 2, 15, 27, 40, 52, 64, 79, //2800 +88, 96, 101, 104, 107, 105, 103, 99, 92, 84, 69, 57, 44, 31, 16, 0, //2816 +-21, -36, -51, -65, -77, -88, -102, -108, -113, -116, -116, -113, -109, -103, -95, -84, //2832 +-74, -54, -40, -26, -11, 5, 21, 45, 58, 72, 84, 94, 107, 113, 117, 118, //2848 +118, 114, 106, 99, 89, 77, 64, 50, 27, 11, -5, -21, -38, -60, -74, -87, //2864 +-98, -106, -112, -118, -119, -118, -114, -109, -101, -85, -73, -59, -44, -28, -3, 13, //2880 +30, 45, 60, 73, 90, 98, 105, 109, 111, 111, 107, 100, 93, 83, 72, 53, //2896 +38, 24, 8, -7, -21, -43, -55, -67, -77, -84, -90, -95, -95, -95, -91, -86, //2912 +-75, -65, -56, -45, -33, -21, -3, 8, 19, 30, 38, 46, 55, 60, 63, 64, //2928 +63, 60, 56, 51, 45, 38, 30, 17, 9, 0, -7, -13, -23, -27, -30, -32, //2944 +-34, -34, -32, -30, -27, -23, -18, -13, -5, 0, 7, 12, 17, 23, 26, 27, //2960 +27, 26, 24, 19, 15, 10, 4, -2, -8, -18, -24, -30, -35, -40, -46, -48, //2976 +-50, -51, -49, -47, -41, -35, -29, -20, -11, 0, 14, 24, 34, 44, 52, 63, //2992 +69, 74, 78, 79, 80, 78, 74, 68, 62, 54, 43, 28, 15, 2, -11, -25, //3008 +-44, -57, -69, -78, -86, -94, -100, -102, -102, -101, -97, -92, -81, -72, -61, -49, //3024 +-36, -15, 0, 16, 31, 46, 61, 79, 90, 99, 106, 111, 113, 114, 112, 107, //3040 +101, 93, 79, 69, 56, 42, 27, 12, -13, -29, -45, -60, -74, -87, -102, -109, //3056 +-114, -117, -118, -115, -111, -105, -97, -87, -76, -57, -43, -27, -12, 4, 20, 43, //3072 +59, 72, 84, 95, 106, 112, 115, 115, 114, 110, 100, 92, 82, 70, 57, 36, //3088 +20, 6, -10, -25, -39, -59, -70, -80, -88, -95, -100, -102, -102, -99, -94, -88, //3104 +-75, -65, -53, -40, -27, -13, 7, 19, 31, 42, 53, 62, 72, 77, 80, 81, //3120 +81, 77, 73, 68, 61, 52, 43, 28, 17, 7, -3, -13, -22, -34, -42, -47, //3136 +-51, -55, -57, -57, -55, -52, -47, -42, -33, -26, -18, -11, -4, 3, 13, 19, //3152 +25, 29, 32, 36, 36, 36, 34, 32, 29, 21, 16, 10, 4, -2, -9, -18, //3168 +-23, -28, -31, -34, -36, -36, -35, -33, -29, -25, -18, -12, -5, 0, 8, 15, //3184 +25, 32, 37, 42, 46, 50, 51, 51, 49, 46, 42, 34, 27, 20, 12, 3, //3200 +-6, -19, -28, -36, -43, -50, -58, -62, -65, -66, -67, -66, -61, -56, -50, -43, //3216 +-35, -25, -11, 0, 11, 22, 32, 46, 55, 61, 68, 72, 75, 77, 77, 76, //3232 +73, 68, 59, 51, 42, 31, 21, 9, -9, -20, -32, -42, -53, -62, -74, -80, //3248 +-85, -89, -90, -90, -88, -84, -78, -71, -63, -48, -36, -24, -12, 2, 15, 34, //3264 +47, 59, 70, 79, 90, 96, 99, 101, 101, 99, 92, 85, 77, 67, 56, 44, //3280 +24, 10, -4, -19, -34, -55, -67, -78, -89, -97, -103, -109, -111, -111, -108, -103, //3296 +-96, -82, -71, -60, -46, -32, -9, 6, 22, 37, 52, 65, 83, 93, 102, 108, //3312 +111, 114, 112, 109, 103, 96, 87, 71, 58, 44, 29, 14, -2, -25, -41, -55, //3328 +-68, -79, -89, -101, -106, -109, -110, -109, -103, -97, -90, -81, -70, -58, -37, -24, //3344 +-9, 5, 19, 33, 52, 63, 72, 81, 87, 92, 94, 94, 91, 87, 82, 71, //3360 +62, 51, 40, 29, 18, 0, -11, -22, -32, -41, -52, -59, -64, -67, -68, -69, //3376 +-67, -63, -59, -53, -46, -35, -27, -18, -9, 0, 7, 18, 23, 29, 34, 37, //3392 +39, 41, 41, 39, 37, 34, 28, 23, 19, 13, 8, 2, -5, -9, -12, -16, //3408 +-19, -19, -21, -20, -18, -17, -14, -10, -6, -3, 0, 5, 8, 14, 17, 19, //3424 +20, 21, 20, 19, 16, 14, 10, 6, 0, -6, -11, -16, -20, -24, -31, -33, //3440 +-36, -38, -38, -38, -36, -33, -30, -25, -20, -12, -6, 0, 7, 14, 20, 29, //3456 +34, 39, 43, 47, 49, 51, 50, 48, 46, 43, 37, 32, 27, 21, 14, 7, //3472 +-3, -10, -17, -23, -29, -35, -42, -46, -48, -50, -51, -52, -51, -50, -48, -44, //3488 +-41, -33, -28, -22, -16, -10, -3, 7, 15, 21, 28, 33, 41, 46, 50, 53, //3504 +55, 56, 57, 55, 53, 51, 47, 43, 35, 30, 23, 15, 8, -4, -11, -18, //3520 +-26, -32, -39, -47, -51, -54, -57, -58, -59, -59, -56, -53, -49, -44, -36, -30, //3536 +-22, -15, -8, 0, 10, 17, 23, 29, 34, 41, 44, 47, 49, 50, 50, 48, //3552 +46, 43, 40, 36, 31, 24, 19, 14, 9, 3, -5, -10, -14, -19, -23, -26, //3568 +-31, -33, -35, -37, -39, -39, -38, -37, -36, -34, -32, -28, -24, -21, -16, -12, //3584 +-8, 0, 2, 7, 11, 14, 18, 23, 25, 27, 29, 30, 32, 32, 31, 30, //3600 +28, 25, 22, 18, 16, 12, 9, 6, 0, -3, -5, -7, -10, -12, -14, -15, //3616 +-15, -17, -17, -17, -17, -16, -16, -15, -15, -15, -14, -14, -14, -14, -15, -15, //3632 +-16, -16, -16, -17, -16, -16, -15, -13, -12, -9, -5, -2, 3, 7, 13, 20, //3648 +25, 30, 34, 39, 43, 47, 49, 51, 51, 49, 48, 43, 39, 33, 25, 18, //3664 +4, -5, -15, -25, -35, -45, -57, -65, -70, -75, -79, -81, -81, -79, -75, -70, //3680 +-63, -50, -40, -28, -16, -4, 9, 29, 41, 53, 63, 73, 84, 90, 94, 96, //3696 +97, 95, 88, 82, 74, 65, 53, 41, 23, 9, -5, -18, -32, -50, -60, -70, //3712 +-78, -85, -89, -94, -95, -94, -90, -86, -80, -68, -58, -48, -37, -25, -7, 6, //3728 +18, 29, 39, 49, 62, 69, 74, 78, 82, 83, 81, 79, 75, 70, 63, 52, //3744 +43, 33, 23, 13, 2, -14, -23, -33, -42, -50, -56, -65, -69, -71, -72, -72, //3760 +-69, -66, -61, -56, -49, -42, -30, -21, -12, -3, 7, 17, 29, 37, 44, 50, //3776 +55, 60, 61, 62, 61, 59, 56, 50, 45, 39, 32, 25, 17, 5, -2, -10, //3792 +-17, -23, -32, -36, -40, -43, -45, -46, -46, -44, -42, -39, -35, -31, -24, -20, //3808 +-14, -9, -4, 3, 7, 11, 15, 18, 21, 24, 25, 26, 26, 25, 25, 24, //3824 +23, 21, 19, 18, 16, 14, 12, 10, 9, 7, 4, 2, 0, 0, -3, -6, //3840 +-8, -10, -11, -13, -15, -18, -20, -21, -22, -22, -22, -22, -21, -20, -18, -17, //3856 +-13, -10, -7, -3, 0, 4, 11, 14, 17, 21, 23, 25, 27, 28, 28, 26, //3872 +25, 21, 18, 15, 10, 6, 0, -6, -11, -15, -19, -23, -25, -29, -30, -30, //3888 +-29, -28, -24, -21, -17, -12, -7, -2, 6, 11, 16, 20, 24, 28, 32, 33, //3904 +34, 33, 32, 28, 24, 20, 15, 9, 3, -6, -12, -18, -23, -28, -32, -37, //3920 +-39, -41, -41, -40, -37, -33, -30, -25, -18, -12, 0, 5, 12, 19, 25, 32, //3936 +39, 43, 46, 48, 49, 49, 46, 43, 39, 34, 28, 17, 10, 2, -6, -14, //3952 +-23, -34, -41, -46, -52, -56, -59, -61, -62, -60, -58, -54, -47, -41, -33, -25, //3968 +-17, -3, 6, 15, 24, 32, 40, 49, 55, 59, 62, 65, 66, 66, 63, 59, //3984 +55, 50, 40, 32, 24, 15, 6, -3, -17, -25, -33, -41, -48, -54, -63, -67, //4000 +-70, -71, -72, -71, -69, -65, -60, -55, -48, -37, -29, -20, -11, 0, 9, 23, //4016 +33, 43, 51, 60, 70, 76, 81, 84, 86, 86, 84, 81, 76, 71, 64, 55, //4032 +40, 30, 18, 5, -7, -27, -39, -51, -63, -74, -83, -95, -101, -105, -106, -106, //4048 +-104, -98, -92, -83, -72, -61, -41, -26, -11, 5, 20, 36, 58, 71, 84, 94, //4064 +103, 110, 116, 117, 116, 113, 107, 94, 85, 72, 58, 43, 27, 0, -16, -33, //4080 +-49, -65, -78, -96, -106, -113, -118, -120, -119, -117, -111, -103, -93, -82, -61, -46, //4096 +-30, -13, 4, 21, 44, 59, 72, 84, 94, 104, 109, 110, 110, 107, 102, 91, //4112 +81, 69, 57, 43, 22, 7, -8, -22, -36, -49, -65, -74, -81, -86, -89, -90, //4128 +-89, -84, -79, -72, -63, -49, -38, -27, -15, -3, 8, 24, 34, 42, 49, 55, //4144 +59, 62, 63, 63, 61, 57, 51, 45, 39, 32, 25, 18, 7, 0, -6, -12, //4160 +-17, -21, -26, -28, -30, -31, -30, -29, -28, -26, -24, -21, -19, -15, -12, -10, //4176 +-8, -5, -5, -2, 0, 0, 0, 0, 2, 2, 3, 3, 3, 5, 6, 7, //4192 +8, 9, 11, 12, 15, 17, 18, 18, 20, 20, 20, 19, 18, 17, 14, 10, //4208 +7, 4, 0, -5, -9, -15, -20, -25, -29, -32, -36, -38, -39, -39, -38, -36, //4224 +-32, -28, -24, -19, -13, -6, 4, 11, 18, 25, 32, 41, 45, 49, 52, 54, //4240 +55, 54, 52, 49, 43, 37, 31, 19, 10, 0, -9, -18, -33, -42, -49, -56, //4256 +-63, -67, -72, -73, -73, -71, -67, -58, -50, -42, -33, -22, -10, 8, 19, 31, //4272 +42, 53, 62, 73, 79, 82, 84, 85, 81, 77, 71, 64, 54, 44, 26, 13, //4288 +0, -12, -25, -37, -54, -63, -72, -78, -82, -86, -86, -84, -81, -75, -68, -55, //4304 +-45, -33, -21, -10, 2, 20, 32, 42, 52, 60, 68, 72, 74, 75, 73, 71, //4320 +64, 57, 50, 41, 32, 22, 7, -3, -13, -23, -31, -43, -48, -53, -57, -58, //4336 +-59, -58, -56, -52, -47, -41, -35, -24, -17, -9, 0, 6, 17, 22, 28, 33, //4352 +36, 39, 41, 41, 40, 38, 35, 32, 26, 21, 16, 11, 5, -3, -8, -12, //4368 +-17, -20, -22, -26, -27, -27, -27, -26, -24, -20, -16, -14, -10, -6, 0, 3, //4384 +6, 8, 11, 13, 14, 15, 15, 14, 13, 11, 8, 5, 3, 0, -3, -7, //4400 +-9, -11, -13, -13, -13, -13, -12, -10, -8, -7, -3, 0, 4, 6, 10, 12, //4416 +16, 18, 19, 20, 20, 19, 18, 15, 13, 9, 5, 0, -6, -10, -14, -18, //4432 +-22, -28, -31, -32, -34, -35, -34, -33, -30, -27, -23, -17, -9, -3, 3, 9, //4448 +16, 21, 30, 34, 39, 42, 44, 46, 47, 45, 43, 40, 36, 28, 22, 15, //4464 +8, 0, -7, -18, -26, -32, -39, -45, -49, -54, -57, -58, -59, -58, -54, -50, //4480 +-45, -38, -32, -25, -12, -4, 5, 13, 22, 31, 42, 49, 56, 61, 65, 68, //4496 +69, 70, 68, 65, 60, 52, 45, 36, 27, 18, 8, -8, -18, -28, -38, -48, //4512 +-59, -66, -72, -76, -78, -79, -78, -75, -71, -65, -58, -49, -35, -25, -14, -3, //4528 +9, 26, 36, 47, 56, 64, 71, 78, 81, 82, 82, 80, 76, 69, 62, 54, //4544 +45, 35, 19, 8, -4, -15, -25, -34, -48, -56, -62, -67, -71, -73, -73, -73, //4560 +-70, -65, -60, -51, -43, -34, -26, -16, -7, 5, 14, 23, 30, 36, 45, 49, //4576 +52, 54, 55, 55, 53, 50, 46, 42, 38, 33, 23, 17, 10, 5, 0, -10, //4592 +-14, -19, -23, -27, -29, -32, -33, -33, -32, -31, -30, -27, -24, -22, -18, -15, //4608 +-11, -8, -5, -3, 0, 2, 4, 6, 7, 7, 7, 7, 7, 6, 6, 5, //4624 +5, 4, 4, 4, 5, 5, 5, 7, 8, 9, 10, 12, 12, 15, 16, 16, //4640 +17, 17, 16, 15, 14, 13, 10, 7, 3, 0, -4, -8, -11, -15, -20, -23, //4656 +-26, -28, -30, -32, -32, -32, -31, -29, -27, -22, -18, -14, -9, -4, 0, 8, //4672 +14, 19, 23, 27, 33, 35, 36, 38, 39, 38, 36, 34, 31, 27, 23, 19, //4688 +11, 6, 0, -4, -9, -17, -21, -26, -29, -32, -35, -37, -38, -38, -37, -36, //4704 +-34, -31, -27, -24, -20, -17, -10, -5, 0, 4, 8, 13, 19, 22, 25, 28, //4720 +30, 32, 33, 34, 33, 32, 31, 28, 25, 22, 18, 14, 10, 3, -2, -7, //4736 +-11, -15, -21, -24, -27, -30, -33, -34, -36, -36, -35, -34, -33, -30, -25, -22, //4752 +-18, -14, -10, -3, 0, 5, 10, 14, 17, 23, 26, 27, 29, 31, 32, 32, //4768 +32, 31, 29, 28, 24, 21, 18, 16, 12, 9, 4, 0, -3, -6, -9, -13, //4784 +-17, -19, -20, -22, -24, -26, -27, -28, -28, -28, -28, -27, -26, -24, -22, -21, //4800 +-18, -14, -11, -8, -5, -2, 4, 7, 10, 13, 16, 20, 23, 25, 27, 28, //4816 +29, 30, 30, 29, 28, 27, 24, 21, 18, 15, 12, 8, 5, 0, -4, -7, //4832 +-11, -14, -17, -20, -22, -25, -25, -26, -28, -29, -29, -29, -29, -28, -27, -26, //4848 +-24, -22, -21, -18, -16, -13, -11, -8, -5, 0, 3, 6, 10, 14, 18, 23, //4864 +27, 31, 34, 37, 41, 42, 44, 44, 45, 44, 42, 39, 36, 32, 27, 21, //4880 +12, 6, 0, -9, -16, -27, -34, -41, -46, -51, -56, -60, -62, -63, -63, -61, //4896 +-59, -52, -47, -40, -33, -24, -12, -2, 7, 16, 26, 34, 45, 53, 58, 63, //4912 +67, 69, 70, 70, 67, 64, 59, 50, 42, 35, 27, 17, 8, -6, -15, -24, //4928 +-32, -40, -47, -55, -60, -63, -65, -66, -65, -63, -60, -56, -51, -45, -35, -28, //4944 +-20, -11, -3, 5, 17, 25, 31, 38, 43, 51, 53, 55, 56, 57, 56, 53, //4960 +50, 47, 41, 36, 30, 20, 13, 6, 0, -9, -19, -25, -32, -37, -40, -44, //4976 +-48, -48, -49, -48, -47, -44, -39, -35, -30, -25, -19, -10, -4, 3, 9, 15, //4992 +20, 28, 32, 35, 38, 39, 41, 41, 39, 37, 35, 32, 26, 22, 18, 12, //5008 +8, 3, -4, -8, -13, -16, -19, -24, -26, -27, -28, -28, -28, -27, -25, -23, //5024 +-21, -19, -16, -12, -10, -8, -5, -2, 0, 4, 6, 7, 9, 10, 13, 14, //5040 +15, 16, 16, 16, 17, 17, 17, 16, 16, 15, 14, 13, 11, 10, 9, 6, //5056 +4, 2, 0, -3, -6, -9, -11, -13, -16, -18, -21, -22, -23, -24, -24, -23, //5072 +-22, -21, -19, -17, -14, -11, -7, -4, 0, 4, 7, 12, 15, 17, 20, 22, //5088 +23, 25, 25, 24, 23, 22, 20, 16, 12, 10, 6, 3, -2, -6, -8, -11, //5104 +-14, -16, -19, -20, -21, -21, -20, -19, -17, -14, -12, -10, -7, -3, 0, 2, //5120 +5, 7, 9, 12, 13, 13, 13, 13, 12, 10, 8, 6, 3, 0, -4, -7, //5136 +-9, -11, -14, -16, -18, -20, -20, -20, -19, -18, -16, -13, -11, -7, -4, 3, //5152 +7, 10, 15, 19, 22, 26, 28, 30, 32, 32, 31, 30, 28, 26, 22, 18, //5168 +12, 7, 2, -3, -9, -14, -22, -27, -32, -36, -39, -42, -43, -45, -44, -43, //5184 +-42, -37, -33, -29, -24, -19, -13, -4, 2, 9, 14, 19, 28, 32, 37, 41, //5200 +44, 45, 47, 47, 46, 44, 42, 40, 33, 29, 24, 19, 13, 4, -2, -8, //5216 +-13, -19, -24, -31, -35, -38, -41, -43, -45, -46, -46, -45, -43, -41, -37, -33, //5232 +-29, -24, -20, -14, -6, 0, 5, 10, 16, 21, 27, 32, 36, 39, 42, 44, //5248 +44, 46, 45, 43, 42, 38, 34, 30, 25, 20, 15, 6, 0, -6, -12, -17, //5264 +-26, -31, -35, -39, -42, -45, -47, -47, -47, -45, -43, -40, -34, -30, -24, -18, //5280 +-12, -2, 4, 11, 16, 22, 28, 34, 39, 42, 44, 46, 47, 46, 44, 41, //5296 +38, 34, 26, 21, 14, 8, 2, -5, -14, -20, -25, -29, -34, -39, -41, -44, //5312 +-44, -43, -42, -39, -36, -32, -27, -22, -17, -7, 0, 5, 11, 16, 25, 28, //5328 +33, 36, 38, 39, 40, 40, 38, 36, 33, 30, 23, 18, 12, 7, 0, -7, //5344 +-12, -18, -22, -25, -29, -33, -34, -35, -35, -34, -32, -28, -25, -21, -17, -12, //5360 +-5, 0, 4, 9, 13, 17, 22, 24, 26, 27, 29, 28, 27, 25, 22, 20, //5376 +17, 11, 7, 3, 0, -5, -9, -14, -17, -19, -21, -23, -23, -23, -22, -20, //5392 +-19, -16, -12, -8, -5, -2, 2, 5, 11, 14, 16, 18, 20, 22, 22, 22, //5408 +21, 20, 18, 14, 11, 8, 5, 2, -2, -8, -11, -13, -15, -18, -19, -22, //5424 +-22, -22, -22, -21, -19, -17, -15, -13, -10, -7, -2, 0, 3, 6, 8, 11, //5440 +13, 14, 15, 16, 16, 15, 15, 14, 13, 12, 11, 9, 7, 6, 5, 3, //5456 +2, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, -2, //5472 +-3, -4, -6, -8, -9, -11, -14, -17, -19, -20, -22, -24, -26, -26, -26, -26, //5488 +-25, -24, -21, -18, -15, -10, -6, 0, 8, 13, 19, 25, 31, 36, 42, 47, //5504 +50, 52, 53, 54, 53, 50, 47, 44, 38, 29, 22, 14, 5, -4, -12, -26, //5520 +-35, -44, -52, -59, -69, -73, -76, -78, -79, -78, -74, -70, -64, -57, -49, -40, //5536 +-25, -14, -3, 9, 20, 36, 47, 57, 65, 73, 79, 85, 88, 89, 88, 85, //5552 +81, 72, 65, 56, 46, 36, 19, 7, -5, -16, -27, -38, -52, -60, -68, -74, //5568 +-79, -82, -83, -83, -81, -78, -73, -64, -57, -48, -38, -29, -20, -5, 5, 16, //5584 +24, 32, 44, 50, 55, 59, 62, 63, 63, 63, 60, 57, 53, 47, 39, 32, //5600 +25, 18, 11, 0, -6, -13, -19, -24, -29, -35, -37, -39, -41, -41, -41, -39, //5616 +-37, -35, -32, -29, -24, -20, -16, -12, -8, -5, 0, 4, 6, 8, 10, 12, //5632 +14, 15, 16, 17, 17, 17, 17, 16, 16, 15, 15, 14, 14, 13, 13, 12, //5648 +12, 11, 11, 10, 9, 8, 7, 6, 4, 2, 0, 0, -4, -7, -9, -12, //5664 +-15, -17, -22, -24, -25, -27, -29, -29, -29, -29, -28, -26, -25, -21, -17, -14, //5680 +-9, -5, 0, 7, 13, 18, 23, 28, 35, 39, 42, 45, 47, 48, 48, 47, //5696 +45, 43, 39, 35, 27, 22, 15, 8, 0, -10, -17, -24, -31, -38, -44, -52, //5712 +-57, -61, -63, -64, -65, -64, -61, -58, -53, -48, -39, -32, -24, -15, -7, 2, //5728 +15, 24, 34, 42, 50, 61, 67, 72, 75, 79, 80, 80, 79, 75, 71, 66, //5744 +59, 48, 39, 29, 19, 9, -7, -18, -29, -39, -49, -58, -70, -78, -83, -87, //5760 +-90, -92, -92, -90, -86, -82, -76, -64, -56, -45, -35, -24, -12, 6, 17, 28, //5776 +39, 50, 60, 73, 80, 86, 91, 94, 96, 96, 95, 91, 86, 80, 69, 60, //5792 +50, 39, 28, 16, -2, -13, -25, -36, -46, -60, -69, -75, -81, -86, -89, -91, //5808 +-91, -89, -86, -81, -76, -66, -58, -50, -40, -30, -15, -5, 6, 15, 25, 34, //5824 +46, 53, 59, 64, 67, 70, 72, 72, 72, 69, 67, 61, 55, 50, 44, 37, //5840 +29, 18, 11, 3, -4, -11, -18, -26, -32, -37, -40, -44, -48, -49, -51, -51, //5856 +-51, -50, -48, -45, -42, -40, -36, -32, -26, -22, -18, -14, -9, -3, 0, 5, //5872 +9, 13, 16, 21, 23, 26, 29, 31, 34, 35, 35, 36, 36, 35, 35, 33, //5888 +32, 30, 27, 25, 21, 18, 14, 9, 5, 0, -6, -10, -15, -19, -23, -29, //5904 +-31, -35, -37, -39, -41, -42, -42, -42, -40, -39, -35, -32, -28, -24, -20, -14, //5920 +-6, 0, 5, 10, 15, 20, 27, 31, 34, 37, 39, 42, 42, 42, 41, 39, //5936 +37, 33, 29, 25, 20, 16, 11, 2, -3, -9, -14, -19, -26, -29, -33, -36, //5952 +-38, -39, -41, -41, -40, -39, -37, -35, -30, -26, -23, -18, -14, -7, -2, 3, //5968 +8, 12, 17, 23, 26, 29, 32, 34, 35, 37, 37, 36, 35, 34, 30, 27, //5984 +24, 21, 17, 13, 6, 2, -3, -8, -13, -17, -24, -28, -32, -35, -38, -40, //6000 +-41, -41, -40, -39, -38, -34, -31, -28, -23, -19, -14, -6, 0, 4, 10, 16, //6016 +23, 28, 32, 35, 40, 42, 45, 46, 46, 45, 43, 41, 38, 34, 30, 25, //6032 +21, 13, 8, 2, -3, -9, -14, -22, -26, -30, -34, -37, -41, -43, -43, -44, //6048 +-44, -43, -40, -37, -34, -30, -26, -22, -15, -11, -5, 0, 4, 11, 15, 20, //6064 +25, 29, 32, 36, 38, 40, 41, 42, 41, 40, 39, 37, 34, 31, 26, 22, //6080 +18, 13, 9, 4, -4, -8, -12, -16, -21, -25, -30, -33, -35, -37, -39, -40, //6096 +-40, -40, -38, -36, -34, -30, -26, -23, -19, -15, -11, -4, 0, 3, 7, 10, //6112 +16, 19, 22, 25, 28, 30, 32, 33, 34, 34, 33, 32, 31, 29, 27, 26, //6128 +23, 19, 16, 13, 11, 8, 5, 0, -4, -6, -10, -14, -16, -21, -24, -27, //6144 +-30, -32, -35, -37, -37, -37, -37, -36, -35, -33, -30, -28, -24, -21, -15, -11, //6160 +-5, 0, 4, 13, 19, 24, 29, 34, 39, 45, 47, 49, 50, 51, 50, 48, //6176 +45, 42, 38, 34, 26, 20, 14, 8, 0, -6, -16, -24, -30, -36, -41, -49, //6192 +-52, -55, -57, -58, -58, -56, -54, -51, -47, -42, -37, -29, -23, -16, -8, 0, //6208 +10, 16, 23, 30, 36, 41, 48, 51, 54, 55, 56, 56, 54, 52, 49, 45, //6224 +40, 33, 27, 20, 14, 7, 0, -11, -17, -23, -30, -36, -40, -47, -51, -54, //6240 +-56, -57, -56, -55, -53, -51, -46, -42, -35, -30, -23, -17, -10, -4, 6, 13, //6256 +19, 26, 32, 39, 43, 47, 50, 51, 52, 53, 52, 49, 46, 43, 39, 32, //6272 +26, 20, 14, 8, -2, -8, -14, -20, -26, -31, -37, -40, -43, -45, -46, -47, //6288 +-47, -45, -43, -40, -37, -31, -26, -22, -17, -11, -5, 2, 7, 12, 16, 20, //6304 +24, 29, 30, 32, 33, 34, 35, 34, 33, 31, 29, 26, 22, 18, 15, 11, //6320 +7, 2, -2, -5, -8, -11, -14, -18, -20, -23, -24, -26, -26, -27, -27, -27, //6336 +-26, -25, -23, -21, -19, -17, -14, -12, -7, -4, -2, 0, 5, 8, 12, 14, //6352 +16, 19, 21, 23, 24, 25, 25, 24, 23, 22, 20, 18, 16, 13, 10, 5, //6368 +2, -2, -6, -9, -14, -17, -19, -22, -24, -26, -27, -28, -27, -26, -25, -23, //6384 +-19, -16, -13, -9, -5, 0, 5, 9, 14, 18, 21, 25, 27, 30, 30, 31, //6400 +32, 31, 30, 28, 25, 23, 17, 13, 9, 4, 0, -5, -12, -16, -20, -23, //6416 +-26, -29, -32, -33, -33, -33, -32, -30, -28, -25, -22, -18, -15, -8, -4, 0, //6432 +5, 9, 14, 20, 22, 26, 28, 30, 32, 33, 33, 32, 31, 29, 26, 23, //6448 +20, 16, 12, 9, 3, 0, -5, -9, -12, -17, -20, -22, -23, -25, -27, -27, //6464 +-27, -26, -25, -24, -22, -20, -17, -14, -13, -10, -6, -3, 0, 0, 4, 6, //6480 +9, 11, 12, 13, 15, 15, 16, 16, 16, 16, 15, 14, 13, 12, 11, 10, //6496 +9, 7, 6, 4, 3, 3, 0, 0, -2, -4, -5, -5, -7, -8, -9, -9, //6512 +-10, -10, -10, -10, -10, -10, -9, -9, -8, -7, -6, -5, -5, -4, -3, 0, //6528 +0, 0, 2, 3, 4, 5, 5, 6, 6, 6, 6, 6, 5, 5, 4, 3, //6544 +3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //6560 +2, 3, 4, 5, 5, 7, 7, 8, 8, 7, 7, 6, 5, 4, 3, 0, //6576 +-2, -4, -6, -7, -9, -11, -14, -16, -17, -18, -20, -21, -22, -22, -21, -20, //6592 +-19, -17, -15, -13, -10, -7, -4, 0, 4, 7, 10, 13, 17, 19, 22, 24, //6608 +25, 26, 28, 28, 27, 26, 25, 21, 18, 15, 12, 8, 3, -2, -6, -10, //6624 +-14, -18, -21, -25, -27, -29, -30, -31, -32, -31, -30, -28, -26, -24, -19, -16, //6640 +-12, -8, -5, 0, 6, 9, 13, 16, 19, 22, 23, 24, 25, 24, 24, 22, //6656 +21, 19, 17, 14, 11, 7, 4, 0, -2, -5, -9, -11, -13, -14, -16, -16, //6672 +-16, -16, -14, -13, -12, -10, -7, -5, -4, 0, 0, 4, 6, 8, 9, 10, //6688 +10, 12, 12, 12, 11, 10, 9, 7, 5, 4, 0, 0, -5, -7, -8, -11, //6704 +-12, -12, -14, -14, -15, -15, -14, -14, -13, -12, -11, -10, -9, -6, -4, -2, //6720 +0, 0, 3, 6, 8, 9, 10, 11, 12, 12, 12, 12, 12, 11, 11, 11, //6736 +10, 10, 9, 9, 8, 8, 7, 6, 5, 4, 4, 3, 2, 0, 0, 0, //6752 +-2, -3, -4, -6, -6, -9, -11, -12, -14, -16, -19, -21, -23, -24, -24, -25, //6768 +-26, -25, -24, -23, -22, -20, -16, -13, -10, -6, -3, 4, 9, 13, 18, 23, //6784 +28, 34, 39, 43, 46, 49, 50, 52, 52, 50, 48, 45, 40, 35, 30, 24, //6800 +17, 10, 0, -8, -15, -23, -31, -38, -48, -54, -59, -63, -67, -71, -70, -70, //6816 +-68, -65, -61, -53, -46, -39, -32, -24, -14, 0, 8, 18, 27, 35, 47, 55, //6832 +61, 67, 71, 74, 77, 77, 77, 74, 71, 66, 57, 51, 43, 35, 26, 12, //6848 +3, -6, -15, -24, -33, -44, -52, -57, -62, -66, -69, -71, -71, -71, -69, -66, //6864 +-60, -55, -49, -43, -36, -28, -17, -9, -2, 6, 13, 20, 29, 35, 40, 44, //6880 +48, 53, 54, 54, 55, 54, 53, 49, 45, 42, 38, 33, 28, 20, 16, 11, //6896 +5, 0, -8, -12, -17, -21, -24, -28, -33, -35, -36, -38, -38, -38, -38, -36, //6912 +-35, -33, -30, -27, -24, -21, -18, -14, -11, -5, -2, 0, 5, 8, 13, 16, //6928 +18, 21, 23, 25, 28, 29, 30, 30, 30, 29, 28, 26, 25, 23, 20, 17, //6944 +14, 11, 9, 5, 2, -3, -7, -10, -14, -17, -20, -25, -26, -29, -31, -32, //6960 +-33, -33, -33, -32, -31, -30, -27, -24, -21, -18, -14, -11, -4, 0, 4, 10, //6976 +13, 20, 24, 27, 31, 33, 35, 38, 38, 38, 38, 37, 35, 31, 27, 24, //6992 +20, 16, 8, 3, -3, -8, -14, -19, -26, -31, -36, -40, -43, -45, -48, -48, //7008 +-48, -47, -46, -42, -38, -34, -30, -25, -19, -11, -5, 2, 9, 15, 22, 30, //7024 +37, 42, 46, 50, 55, 57, 58, 59, 58, 57, 53, 49, 45, 40, 34, 28, //7040 +18, 10, 3, -5, -13, -25, -32, -38, -45, -51, -57, -62, -66, -68, -69, -70, //7056 +-68, -66, -62, -58, -53, -47, -37, -30, -22, -13, -4, 4, 17, 26, 34, 41, //7072 +49, 58, 63, 68, 71, 73, 74, 74, 73, 70, 67, 62, 57, 48, 41, 34, //7088 +26, 17, 4, -5, -14, -23, -31, -39, -49, -56, -61, -65, -69, -72, -74, -75, //7104 +-74, -72, -70, -64, -59, -54, -48, -42, -34, -23, -15, -7, 2, 9, 17, 28, //7120 +35, 42, 48, 53, 60, 63, 66, 67, 67, 68, 66, 64, 61, 57, 53, 48, //7136 +39, 33, 26, 20, 13, 2, -5, -12, -20, -27, -32, -40, -45, -50, -54, -56, //7152 +-58, -60, -61, -61, -59, -57, -54, -51, -47, -42, -37, -31, -23, -17, -10, -4, //7168 +2, 9, 17, 24, 30, 34, 39, 45, 48, 51, 53, 55, 56, 56, 56, 54, //7184 +52, 49, 46, 40, 35, 31, 26, 20, 11, 6, 0, -7, -13, -18, -27, -31, //7200 +-36, -40, -44, -49, -51, -52, -54, -54, -54, -52, -50, -47, -44, -40, -36, -29, //7216 +-24, -18, -13, -7, 2, 7, 14, 19, 24, 29, 35, 39, 42, 45, 47, 48, //7232 +49, 48, 47, 45, 43, 38, 34, 30, 25, 21, 15, 8, 3, -3, -8, -13, //7248 +-18, -25, -28, -32, -35, -37, -40, -41, -42, -41, -40, -39, -36, -33, -30, -27, //7264 +-23, -20, -13, -9, -5, 0, 4, 10, 14, 18, 22, 25, 28, 31, 32, 34, //7280 +34, 34, 34, 32, 31, 29, 27, 24, 20, 16, 13, 10, 6, 3, -3, -6, //7296 +-10, -14, -17, -20, -24, -25, -27, -29, -30, -31, -31, -30, -29, -28, -26, -22, //7312 +-19, -17, -14, -10, -7, -2, 0, 4, 8, 11, 15, 18, 20, 22, 24, 26, //7328 +26, 27, 26, 25, 24, 23, 20, 18, 16, 14, 11, 7, 3, 0, -2, -5, //7344 +-8, -12, -15, -17, -19, -21, -23, -25, -25, -25, -26, -26, -25, -24, -22, -20, //7360 +-19, -17, -14, -11, -9, -6, -3, 0, 4, 6, 10, 12, 14, 19, 21, 22, //7376 +24, 25, 26, 27, 26, 26, 25, 24, 22, 20, 17, 15, 13, 10, 6, 2, //7392 +0, -4, -7, -10, -15, -17, -19, -22, -24, -26, -27, -28, -28, -28, -28, -27, //7408 +-26, -24, -23, -22, -19, -15, -13, -10, -7, -4, 0, 4, 7, 9, 12, 15, //7424 +18, 20, 23, 23, 25, 26, 28, 28, 28, 28, 28, 27, 26, 24, 22, 21, //7440 +18, 14, 11, 8, 5, 2, -2, -7, -10, -14, -17, -20, -25, -28, -29, -32, //7456 +-34, -36, -38, -38, -39, -38, -37, -36, -33, -31, -28, -25, -21, -15, -11, -6, //7472 +0, 4, 9, 16, 20, 25, 29, 32, 36, 40, 43, 45, 46, 47, 47, 46, //7488 +44, 41, 39, 36, 29, 24, 19, 14, 8, 0, -6, -13, -18, -24, -29, -36, //7504 +-40, -44, -48, -50, -52, -54, -54, -54, -52, -50, -46, -41, -36, -32, -27, -21, //7520 +-12, -6, 0, 7, 14, 19, 28, 34, 39, 43, 47, 53, 54, 56, 57, 58, //7536 +58, 56, 53, 49, 46, 42, 36, 28, 22, 15, 9, 2, -8, -14, -21, -27, //7552 +-33, -38, -46, -50, -54, -57, -59, -60, -61, -60, -58, -56, -52, -47, -41, -36, //7568 +-30, -24, -17, -7, 0, 7, 14, 20, 27, 36, 42, 46, 51, 55, 59, 60, //7584 +61, 62, 60, 58, 55, 51, 47, 41, 36, 30, 20, 14, 7, 0, -8, -18, //7600 +-24, -31, -36, -42, -47, -52, -55, -57, -59, -60, -59, -57, -55, -52, -48, -44, //7616 +-37, -31, -25, -19, -14, -6, 4, 10, 16, 23, 29, 34, 41, 46, 49, 52, //7632 +54, 55, 56, 56, 54, 52, 50, 46, 42, 37, 32, 27, 18, 12, 6, 0, //7648 +-7, -13, -22, -28, -33, -37, -42, -46, -50, -52, -54, -55, -55, -54, -53, -50, //7664 +-47, -44, -40, -33, -28, -22, -16, -10, -4, 6, 12, 18, 24, 30, 38, 42, //7680 +46, 50, 52, 54, 56, 56, 56, 55, 54, 51, 45, 41, 36, 31, 25, 16, //7696 +9, 2, -5, -12, -18, -28, -34, -40, -44, -49, -52, -56, -59, -60, -61, -60, //7712 +-58, -56, -53, -49, -44, -39, -31, -25, -17, -11, -4, 3, 14, 21, 27, 34, //7728 +40, 47, 51, 54, 57, 59, 60, 61, 60, 57, 54, 51, 47, 40, 34, 27, //7744 +21, 14, 4, -3, -11, -17, -23, -30, -38, -43, -48, -52, -55, -57, -59, -60, //7760 +-59, -58, -56, -52, -47, -43, -37, -32, -26, -17, -11, -4, 2, 8, 15, 23, //7776 +29, 34, 38, 42, 46, 49, 51, 52, 52, 52, 50, 48, 45, 42, 38, 32, //7792 +26, 21, 17, 11, 5, -3, -8, -13, -17, -23, -27, -32, -36, -39, -41, -43, //7808 +-45, -46, -46, -45, -43, -42, -38, -35, -32, -28, -24, -20, -14, -10, -5, 0, //7824 +4, 11, 15, 19, 23, 26, 29, 33, 35, 37, 37, 39, 38, 38, 36, 34, //7840 +33, 30, 26, 22, 19, 16, 12, 8, 2, -2, -6, -10, -13, -17, -21, -23, //7856 +-26, -28, -29, -31, -32, -32, -31, -30, -29, -27, -25, -23, -21, -18, -15, -11, //7872 +-8, -5, -2, 0, 5, 8, 10, 12, 14, 16, 18, 19, 20, 20, 20, 20, //7888 +20, 19, 18, 17, 16, 14, 12, 10, 9, 8, 6, 3, 0, 0, 0, -3, //7904 +-3, -5, -6, -7, -8, -8, -8, -8, -8, -8, -8, -7, -7, -7, -6, -6, //7920 +-6, -5, -5, -4, -4, -3, -3, -3, -2, -2, -2, -2, -2, -2, -2, 0, //7936 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 3, 3, 4, //7952 +4, 5, 5, 5, 6, 6, 7, 7, 7, 8, 8, 8, 8, 7, 7, 7, //7968 +6, 5, 5, 4, 3, 2, 2, 0, 0, 0, -2, -3, -4, -5, -6, -7, //7984 +-8, -9, -10, -10, -11, -11, -12, -12, -12, -12, -12, -12, -11, -11, -10, -9, //8000 +-8, -7, -6, -5, -4, -2, 0, 0, 3, 4, 5, 7, 9, 10, 11, 12, //8016 +13, 13, 15, 16, 16, 16, 16, 16, 16, 16, 15, 14, 13, 11, 10, 8, //8032 +6, 5, 3, 0, -2, -3, -5, -7, -10, -12, -14, -15, -17, -18, -20, -21, //8048 +-22, -22, -22, -22, -21, -21, -20, -18, -17, -15, -13, -11, -8, -6, -4, 0, //8064 +2, 4, 7, 9, 11, 15, 16, 17, 19, 19, 21, 21, 21, 21, 20, 19, //8080 +18, 17, 15, 13, 12, 9, 7, 5, 3, 0, 0, -4, -6, -8, -9, -11, //8096 +-12, -14, -14, -15, -15, -15, -14, -14, -13, -12, -11, -11, -10, -9, -8, -7, //8112 +-6, -5, -4, -3, -3, -2, -2, -2, -2, -2, -2, -3, -3, -4, -4, -5, //8128 +-5, -6, -6, -6, -6, -6, -5, -4, -3, 0, 0, 0, 3, 5, 8, 10, //8144 +12, 13, 15, 17, 20, 22, 23, 25, 26, 26, 27, 26, 25, 24, 23, 20, //8160 +17, 14, 11, 8, 3, -3, -7, -11, -15, -20, -26, -30, -34, -38, -41, -43, //8176 +-47, -47, -48, -49, -48, -47, -45, -42, -39, -35, -31, -23, -17, -12, -6, 0, //8192 +7, 17, 23, 29, 34, 39, 45, 51, 55, 59, 61, 62, 63, 63, 62, 60, //8208 +57, 53, 47, 41, 36, 30, 23, 15, 5, -4, -12, -19, -27, -38, -45, -51, //8224 +-56, -62, -66, -70, -73, -74, -74, -74, -71, -69, -65, -61, -56, -49, -40, -33, //8240 +-25, -16, -8, 0, 13, 22, 29, 37, 44, 53, 59, 64, 68, 71, 73, 74, //8256 +74, 74, 72, 69, 65, 59, 53, 47, 41, 34, 22, 14, 6, -2, -10, -18, //8272 +-29, -36, -42, -48, -53, -57, -62, -64, -66, -67, -67, -65, -63, -60, -57, -52, //8288 +-47, -39, -34, -27, -20, -13, -7, 5, 11, 17, 24, 29, 38, 42, 46, 50, //8304 +52, 54, 56, 56, 56, 55, 53, 52, 47, 43, 40, 35, 30, 22, 16, 11, //8320 +5, 0, -6, -15, -20, -25, -29, -33, -37, -42, -44, -46, -47, -48, -48, -47, //8336 +-46, -44, -42, -38, -33, -29, -25, -20, -16, -11, -3, 2, 7, 11, 17, 23, //8352 +27, 31, 34, 37, 40, 42, 43, 44, 44, 43, 42, 39, 36, 33, 30, 26, //8368 +20, 15, 11, 6, 2, -3, -11, -14, -19, -23, -27, -32, -34, -37, -39, -40, //8384 +-41, -41, -41, -39, -38, -36, -33, -29, -25, -22, -17, -13, -7, -2, 2, 7, //8400 +11, 16, 22, 25, 29, 33, 36, 38, 41, 42, 42, 43, 42, 41, 40, 37, //8416 +35, 32, 29, 24, 19, 15, 10, 6, 0, -6, -10, -15, -19, -24, -30, -33, //8432 +-37, -40, -42, -44, -46, -46, -48, -47, -46, -45, -42, -40, -37, -34, -30, -24, //8448 +-19, -15, -10, -5, 0, 9, 13, 19, 24, 27, 32, 37, 40, 43, 45, 47, //8464 +49, 49, 49, 48, 46, 45, 41, 38, 35, 31, 27, 22, 14, 10, 4, 0, //8480 +-5, -14, -18, -23, -28, -31, -36, -41, -43, -46, -48, -49, -50, -51, -51, -50, //8496 +-48, -47, -43, -40, -37, -33, -29, -25, -18, -14, -8, -3, 2, 7, 14, 19, //8512 +24, 27, 32, 37, 40, 43, 45, 47, 49, 51, 51, 51, 50, 49, 47, 44, //8528 +41, 38, 34, 31, 24, 19, 14, 9, 4, 0, -10, -15, -21, -25, -30, -37, //8544 +-41, -45, -49, -52, -54, -56, -58, -58, -58, -58, -57, -54, -51, -47, -44, -40, //8560 +-33, -27, -22, -16, -10, -4, 5, 11, 18, 23, 29, 34, 41, 46, 51, 54, //8576 +56, 60, 62, 62, 63, 62, 60, 58, 54, 50, 47, 43, 38, 28, 23, 17, //8592 +9, 3, -8, -14, -21, -28, -34, -40, -48, -53, -58, -61, -63, -66, -67, -68, //8608 +-68, -67, -65, -60, -57, -53, -47, -42, -36, -26, -20, -13, -5, 2, 9, 20, //8624 +28, 34, 41, 46, 54, 58, 62, 65, 67, 68, 68, 68, 67, 65, 61, 57, //8640 +51, 46, 40, 34, 28, 17, 10, 2, -5, -11, -18, -29, -34, -39, -45, -49, //8656 +-53, -57, -59, -60, -61, -61, -60, -57, -54, -52, -48, -43, -36, -31, -24, -19, //8672 +-13, -3, 3, 10, 15, 21, 26, 34, 37, 41, 44, 47, 48, 49, 50, 50, //8688 +49, 48, 44, 41, 37, 34, 30, 25, 18, 13, 8, 3, -2, -7, -14, -18, //8704 +-22, -26, -29, -33, -36, -37, -37, -39, -38, -38, -36, -34, -32, -30, -27, -22, //8720 +-18, -15, -11, -8, 0, 3, 7, 11, 15, 18, 22, 24, 26, 28, 29, 30, //8736 +31, 31, 30, 29, 28, 25, 22, 20, 18, 14, 11, 6, 2, 0, -4, -7, //8752 +-10, -15, -17, -19, -21, -23, -25, -26, -26, -26, -25, -24, -23, -21, -19, -17, //8768 +-15, -12, -8, -5, -3, 0, 3, 8, 10, 12, 14, 16, 18, 21, 22, 22, //8784 +22, 23, 22, 21, 20, 18, 16, 15, 12, 9, 7, 5, 2, 0, -4, -6, //8800 +-8, -10, -12, -14, -16, -17, -18, -19, -19, -19, -19, -18, -17, -16, -15, -13, //8816 +-11, -9, -8, -6, -3, 0, 2, 4, 5, 6, 9, 10, 11, 12, 13, 13, //8832 +13, 13, 13, 12, 11, 10, 9, 7, 6, 5, 3, 0, 0, -2, -3, -5, //8848 +-5, -8, -8, -9, -10, -10, -11, -11, -10, -10, -9, -9, -8, -7, -5, -4, //8864 +-4, -2, 0, 0, 2, 3, 4, 5, 6, 6, 6, 6, 6, 5, 5, 4, //8880 +3, 2, 2, 0, -2, -3, -5, -6, -8, -10, -11, -12, -13, -14, -14, -14, //8896 +-14, -13, -12, -12, -9, -8, -7, -5, -3, 0, 3, 5, 6, 9, 11, 14, //8912 +16, 17, 19, 21, 21, 23, 23, 22, 22, 21, 19, 17, 15, 13, 10, 7, //8928 +3, 0, -3, -7, -10, -13, -18, -21, -24, -27, -29, -32, -34, -35, -35, -35, //8944 +-35, -34, -33, -31, -29, -26, -23, -18, -15, -10, -6, -2, 4, 8, 13, 17, //8960 +21, 25, 30, 33, 36, 38, 40, 43, 44, 44, 43, 42, 41, 38, 35, 31, //8976 +28, 24, 19, 12, 7, 2, -3, -9, -16, -21, -26, -30, -35, -39, -45, -47, //8992 +-49, -51, -52, -53, -52, -51, -49, -47, -44, -39, -34, -30, -24, -19, -13, -4, //9008 +2, 9, 14, 20, 26, 33, 39, 43, 47, 51, 54, 57, 57, 58, 58, 57, //9024 +54, 51, 47, 44, 40, 34, 26, 20, 13, 8, 2, -8, -14, -21, -26, -32, //9040 +-37, -43, -47, -51, -54, -56, -57, -58, -57, -56, -54, -52, -47, -43, -39, -34, //9056 +-29, -23, -14, -9, -3, 4, 10, 16, 24, 29, 34, 39, 43, 48, 50, 52, //9072 +54, 55, 55, 54, 52, 50, 48, 44, 40, 35, 30, 25, 20, 14, 6, 0, //9088 +-5, -10, -16, -21, -28, -32, -36, -40, -43, -45, -48, -48, -49, -50, -49, -47, //9104 +-45, -42, -40, -36, -32, -26, -22, -17, -12, -7, 0, 6, 11, 16, 20, 25, //9120 +31, 34, 37, 40, 42, 43, 45, 46, 45, 44, 43, 41, 38, 35, 32, 28, //9136 +24, 19, 14, 10, 5, 0, -3, -10, -14, -18, -22, -25, -30, -33, -34, -36, //9152 +-38, -39, -40, -39, -38, -37, -35, -34, -30, -27, -25, -22, -18, -13, -9, -6, //9168 +-2, 2, 5, 11, 14, 17, 20, 23, 25, 28, 30, 31, 31, 32, 32, 32, //9184 +31, 29, 28, 27, 24, 21, 18, 16, 14, 11, 6, 3, 0, -2, -5, -10, //9200 +-13, -15, -17, -19, -21, -24, -26, -27, -28, -28, -28, -28, -28, -27, -26, -25, //9216 +-23, -21, -19, -17, -16, -14, -10, -8, -6, -3, 0, 2, 5, 7, 10, 12, //9232 +14, 17, 18, 19, 21, 21, 22, 24, 24, 24, 24, 24, 23, 22, 21, 20, //9248 +19, 17, 14, 12, 10, 8, 6, 3, 0, -2, -5, -7, -10, -14, -16, -18, //9264 +-19, -21, -23, -25, -27, -28, -29, -29, -29, -29, -28, -28, -27, -25, -23, -21, //9280 +-19, -17, -14, -11, -7, -4, -2, 0, 4, 7, 12, 14, 16, 19, 21, 24, //9296 +26, 27, 27, 29, 29, 29, 28, 27, 26, 25, 23, 20, 17, 15, 12, 9, //9312 +5, 0, -2, -5, -8, -11, -16, -18, -21, -23, -26, -28, -30, -31, -32, -32, //9328 +-32, -31, -30, -29, -27, -25, -24, -20, -17, -14, -12, -8, -5, 0, 3, 6, //9344 +10, 13, 17, 20, 22, 23, 25, 27, 29, 30, 30, 30, 29, 28, 27, 25, //9360 +23, 22, 19, 15, 12, 9, 7, 4, 0, -4, -6, -9, -12, -14, -16, -20, //9376 +-21, -22, -22, -24, -24, -24, -23, -22, -21, -20, -18, -16, -13, -11, -10, -7, //9392 +-4, -2, 0, 3, 5, 8, 10, 12, 13, 14, 14, 16, 16, 16, 15, 15, //9408 +14, 12, 11, 9, 8, 7, 4, 2, 0, 0, -2, -4, -6, -7, -8, -9, //9424 +-9, -10, -10, -9, -9, -8, -7, -6, -4, -2, 0, 0, 2, 6, 8, 9, //9440 +11, 12, 15, 16, 17, 18, 18, 18, 18, 17, 16, 15, 14, 12, 9, 7, //9456 +5, 2, 0, -5, -8, -11, -14, -17, -20, -23, -25, -28, -28, -30, -31, -31, //9472 +-31, -30, -29, -28, -25, -22, -19, -17, -13, -10, -3, 0, 5, 9, 14, 18, //9488 +24, 28, 32, 35, 37, 42, 43, 43, 45, 44, 44, 42, 40, 38, 34, 30, //9504 +26, 19, 15, 9, 4, -2, -11, -16, -22, -27, -32, -37, -43, -46, -49, -52, //9520 +-53, -54, -55, -54, -52, -50, -47, -41, -37, -32, -26, -20, -14, -4, 2, 8, //9536 +15, 21, 27, 35, 41, 45, 50, 54, 57, 59, 60, 61, 60, 58, 54, 51, //9552 +47, 42, 37, 29, 23, 16, 9, 2, -5, -15, -21, -28, -33, -39, -44, -50, //9568 +-53, -56, -57, -58, -59, -58, -56, -54, -51, -47, -40, -34, -29, -24, -17, -11, //9584 +0, 5, 11, 18, 24, 31, 35, 39, 43, 46, 47, 49, 49, 49, 47, 45, //9600 +43, 37, 33, 28, 23, 18, 10, 5, -2, -8, -13, -18, -27, -31, -35, -39, //9616 +-42, -44, -46, -46, -45, -44, -43, -39, -36, -32, -28, -23, -17, -9, -4, 2, //9632 +7, 13, 18, 26, 31, 35, 38, 42, 45, 47, 47, 47, 46, 45, 41, 37, //9648 +34, 29, 24, 18, 9, 3, -3, -10, -15, -25, -30, -36, -41, -46, -50, -54, //9664 +-56, -58, -59, -59, -58, -55, -51, -47, -43, -38, -29, -23, -17, -10, -3, 5, //9680 +15, 22, 29, 35, 41, 46, 54, 58, 61, 63, 64, 65, 64, 62, 59, 56, //9696 +52, 44, 39, 32, 25, 18, 8, 0, -8, -16, -23, -30, -41, -46, -51, -57, //9712 +-61, -65, -68, -69, -70, -69, -67, -64, -61, -56, -51, -46, -39, -29, -22, -14, //9728 +-6, 0, 9, 21, 28, 34, 41, 46, 54, 58, 62, 65, 67, 68, 68, 67, //9744 +65, 62, 59, 55, 47, 42, 35, 29, 23, 12, 5, -3, -10, -17, -23, -32, //9760 +-38, -43, -48, -52, -55, -58, -60, -61, -60, -60, -58, -56, -52, -49, -45, -39, //9776 +-32, -27, -20, -15, -9, -3, 6, 12, 17, 22, 28, 34, 38, 41, 44, 46, //9792 +47, 49, 49, 49, 47, 45, 44, 40, 37, 34, 29, 25, 19, 14, 10, 6, //9808 +2, -3, -9, -13, -17, -20, -23, -26, -29, -30, -32, -34, -34, -34, -34, -32, //9824 +-31, -30, -28, -25, -22, -19, -17, -14, -11, -6, -4, 0, 2, 5, 9, 12, //9840 +14, 16, 18, 20, 21, 23, 24, 24, 24, 24, 24, 23, 22, 21, 20, 18, //9856 +17, 15, 13, 12, 10, 7, 4, 2, 0, 0, -4, -6, -8, -9, -11, -12, //9872 +-15, -16, -17, -18, -18, -18, -20, -20, -20, -19, -19, -19, -18, -17, -16, -15, //9888 +-14, -12, -10, -8, -7, -5, -3, 0, 2, 4, 6, 8, 11, 13, 15, 16, //9904 +18, 20, 21, 22, 23, 24, 24, 24, 25, 24, 24, 23, 21, 19, 17, 15, //9920 +13, 12, 9, 5, 2, 0, -4, -7, -10, -14, -16, -19, -22, -24, -27, -29, //9936 +-30, -32, -32, -33, -33, -33, -32, -30, -29, -28, -24, -21, -19, -15, -12, -7, //9952 +-3, 0, 4, 8, 11, 17, 20, 23, 26, 29, 31, 34, 36, 36, 37, 37, //9968 +36, 36, 34, 32, 30, 27, 22, 19, 16, 12, 9, 4, -3, -7, -11, -15, //9984 +-19, -25, -28, -31, -34, -37, -39, -41, -42, -42, -42, -42, -41, -39, -36, -33, //10000 +-31, -27, -23, -19, -15, -11, -7, -2, 4, 8, 12, 16, 19, 24, 27, 30, //10016 +32, 34, 35, 37, 37, 37, 37, 35, 34, 31, 29, 27, 24, 21, 16, 12, //10032 +9, 5, 2, 0, -7, -10, -13, -16, -19, -21, -24, -26, -27, -29, -29, -30, //10048 +-30, -30, -29, -28, -27, -25, -23, -21, -20, -17, -15, -12, -9, -7, -6, -3, //10064 +0, 2, 4, 5, 7, 8, 11, 12, 13, 14, 15, 15, 16, 16, 17, 17, //10080 +17, 18, 17, 17, 17, 17, 17, 17, 16, 16, 15, 14, 13, 13, 12, 12, //10096 +11, 9, 7, 6, 4, 3, 2, 0, -3, -5, -7, -9, -11, -13, -16, -18, //10112 +-19, -21, -23, -25, -26, -27, -28, -28, -28, -29, -29, -28, -26, -25, -23, -20, //10128 +-18, -16, -12, -8, -4, 0, 3, 7, 11, 14, 20, 22, 26, 29, 32, 35, //10144 +36, 38, 40, 41, 41, 41, 40, 38, 36, 35, 32, 27, 23, 19, 14, 10, //10160 +3, -2, -6, -11, -16, -21, -28, -32, -36, -39, -42, -45, -48, -50, -50, -51, //10176 +-50, -49, -47, -44, -41, -38, -34, -28, -22, -17, -12, -6, 0, 8, 14, 19, //10192 +25, 30, 37, 40, 44, 48, 51, 53, 55, 55, 56, 55, 54, 52, 48, 44, //10208 +40, 35, 30, 22, 16, 10, 4, -3, -9, -17, -23, -28, -33, -38, -42, -48, //10224 +-51, -54, -55, -56, -57, -57, -56, -54, -51, -47, -42, -37, -32, -26, -21, -16, //10240 +-7, 0, 5, 11, 16, 25, 30, 35, 39, 42, 46, 50, 51, 53, 53, 53, //10256 +52, 50, 47, 44, 40, 37, 29, 24, 19, 13, 8, 3, -6, -11, -16, -21, //10272 +-26, -30, -35, -39, -41, -43, -45, -47, -47, -46, -44, -42, -40, -36, -32, -29, //10288 +-24, -20, -13, -7, -3, 2, 7, 12, 19, 22, 26, 30, 33, 35, 38, 39, //10304 +40, 40, 39, 38, 35, 33, 30, 27, 24, 18, 14, 9, 4, 0, -5, -11, //10320 +-14, -18, -22, -25, -29, -31, -33, -34, -35, -35, -34, -33, -31, -29, -27, -24, //10336 +-19, -15, -12, -8, -4, 2, 6, 9, 13, 16, 19, 22, 24, 25, 27, 27, //10352 +28, 27, 26, 24, 22, 20, 16, 13, 10, 6, 2, -2, -8, -11, -14, -18, //10368 +-21, -23, -26, -28, -29, -29, -29, -29, -28, -26, -24, -22, -19, -14, -10, -7, //10384 +-2, 2, 6, 13, 16, 20, 24, 27, 31, 33, 34, 36, 36, 36, 35, 33, //10400 +31, 29, 25, 22, 16, 12, 7, 2, -3, -11, -16, -21, -25, -30, -34, -39, //10416 +-42, -44, -46, -47, -48, -47, -45, -42, -40, -37, -30, -25, -20, -14, -9, -3, //10432 +6, 12, 18, 25, 31, 40, 44, 49, 53, 56, 58, 60, 60, 59, 57, 55, //10448 +51, 45, 40, 35, 29, 22, 11, 4, -4, -12, -19, -26, -38, -44, -50, -57, //10464 +-62, -66, -71, -73, -74, -74, -74, -71, -67, -62, -57, -51, -45, -33, -25, -17, //10480 +-8, 0, 9, 23, 31, 40, 48, 55, 64, 70, 75, 78, 82, 83, 83, 82, //10496 +79, 76, 71, 66, 56, 49, 41, 32, 23, 8, 0, -11, -20, -29, -39, -51, //10512 +-59, -66, -72, -77, -82, -86, -87, -88, -87, -85, -80, -75, -70, -63, -55, -48, //10528 +-34, -25, -15, -5, 5, 15, 29, 38, 47, 55, 63, 71, 77, 81, 84, 86, //10544 +87, 87, 86, 82, 79, 74, 68, 57, 50, 41, 32, 23, 8, 0, -10, -20, //10560 +-29, -37, -49, -56, -62, -68, -72, -76, -79, -81, -82, -80, -78, -74, -70, -65, //10576 +-58, -52, -44, -33, -24, -16, -8, 0, 14, 22, 30, 37, 43, 50, 58, 62, //10592 +65, 68, 70, 71, 70, 69, 66, 63, 60, 53, 47, 41, 35, 28, 20, 9, //10608 +2, -5, -12, -18, -24, -32, -38, -42, -46, -50, -53, -54, -55, -56, -55, -54, //10624 +-50, -46, -42, -38, -34, -28, -21, -16, -10, -5, 0, 8, 13, 17, 21, 26, //10640 +28, 33, 35, 36, 38, 38, 38, 38, 36, 34, 32, 30, 26, 23, 20, 16, //10656 +12, 9, 3, 0, -3, -7, -9, -11, -15, -16, -19, -20, -20, -21, -21, -21, //10672 +-20, -19, -18, -16, -14, -12, -11, -8, -6, -3, 0, 0, 2, 3, 5, 6, //10688 +7, 7, 7, 7, 7, 6, 5, 5, 5, 3, 0, 0, -2, -3, -4, -6, //10704 +-8, -9, -10, -11, -11, -11, -11, -10, -10, -10, -8, -6, -4, -3, -2, 0, //10720 +4, 6, 8, 10, 12, 14, 17, 18, 19, 21, 21, 21, 21, 20, 19, 18, //10736 +17, 13, 11, 9, 5, 2, 0, -7, -10, -13, -17, -20, -25, -27, -30, -33, //10752 +-35, -36, -38, -38, -37, -36, -35, -33, -29, -26, -23, -18, -14, -7, -2, 3, //10768 +8, 14, 19, 27, 31, 36, 40, 43, 46, 49, 50, 51, 52, 51, 49, 46, //10784 +43, 39, 34, 30, 21, 15, 8, 2, -5, -12, -21, -28, -34, -40, -45, -53, //10800 +-56, -60, -63, -64, -65, -66, -65, -62, -59, -56, -52, -44, -38, -31, -24, -17, //10816 +-5, 2, 9, 18, 25, 32, 42, 49, 54, 59, 63, 66, 69, 71, 72, 71, //10832 +69, 66, 62, 58, 52, 46, 39, 28, 21, 13, 5, -4, -12, -24, -32, -39, //10848 +-45, -52, -60, -65, -69, -72, -74, -75, -75, -74, -72, -69, -65, -61, -51, -45, //10864 +-38, -30, -23, -9, 0, 8, 17, 24, 32, 42, 49, 55, 60, 64, 69, 71, //10880 +72, 73, 71, 69, 66, 61, 57, 51, 45, 38, 26, 19, 11, 3, -5, -18, //10896 +-25, -32, -39, -45, -50, -57, -60, -63, -65, -66, -65, -64, -61, -57, -54, -49, //10912 +-41, -35, -28, -22, -15, -7, 5, 12, 19, 25, 31, 37, 43, 47, 50, 52, //10928 +53, 54, 53, 52, 49, 47, 44, 37, 32, 28, 23, 16, 11, 2, -4, -9, //10944 +-15, -20, -27, -30, -33, -36, -38, -38, -39, -38, -36, -34, -32, -29, -23, -19, //10960 +-15, -10, -6, 0, 5, 10, 15, 19, 22, 28, 30, 31, 33, 34, 34, 32, //10976 +30, 28, 25, 21, 16, 11, 7, 2, -3, -8, -16, -20, -25, -29, -32, -36, //10992 +-40, -41, -43, -43, -42, -40, -37, -34, -30, -25, -21, -12, -7, 0, 6, 12, //11008 +19, 28, 35, 40, 46, 51, 56, 59, 61, 62, 63, 62, 59, 55, 51, 45, //11024 +40, 30, 22, 14, 6, -3, -12, -25, -34, -42, -50, -58, -65, -73, -78, -82, //11040 +-84, -84, -83, -82, -78, -74, -69, -62, -50, -42, -32, -22, -12, 0, 15, 26, //11056 +37, 47, 57, 71, 80, 86, 92, 97, 100, 102, 101, 100, 97, 92, 86, 74, //11072 +65, 55, 45, 34, 16, 3, -9, -21, -34, -45, -62, -72, -81, -90, -97, -103, //11088 +-109, -111, -111, -110, -107, -100, -94, -86, -77, -67, -56, -38, -26, -14, 0, 12, //11104 +25, 43, 55, 66, 75, 84, 96, 101, 105, 108, 108, 108, 104, 100, 95, 88, //11120 +79, 70, 53, 43, 31, 18, 6, -13, -25, -36, -48, -58, -67, -80, -87, -93, //11136 +-97, -100, -102, -101, -100, -96, -91, -85, -75, -66, -56, -46, -35, -25, -8, 2, //11152 +13, 24, 34, 44, 57, 64, 71, 77, 81, 86, 87, 87, 87, 85, 81, 74, //11168 +68, 62, 53, 45, 32, 22, 12, 3, -7, -16, -30, -38, -46, -53, -60, -65, //11184 +-72, -75, -77, -78, -79, -76, -74, -69, -65, -60, -53, -42, -35, -27, -18, -9, //11200 +0, 12, 20, 28, 36, 42, 51, 56, 61, 64, 67, 68, 68, 68, 65, 62, //11216 +58, 54, 45, 39, 32, 25, 17, 6, -2, -10, -17, -23, -30, -40, -45, -50, //11232 +-53, -57, -61, -63, -63, -63, -62, -60, -55, -51, -46, -40, -35, -29, -19, -13, //11248 +-6, 0, 6, 13, 23, 29, 34, 40, 44, 49, 52, 54, 55, 56, 56, 55, //11264 +53, 50, 47, 43, 39, 32, 27, 21, 15, 9, 0, -5, -11, -16, -22, -27, //11280 +-36, -40, -44, -48, -50, -52, -54, -54, -53, -51, -49, -46, -43, -40, -35, -31, //11296 +-25, -17, -11, -4, 2, 8, 15, 24, 30, 35, 41, 46, 52, 54, 57, 59, //11312 +60, 60, 59, 57, 54, 52, 48, 41, 35, 29, 22, 15, 8, -4, -11, -18, //11328 +-26, -34, -41, -50, -56, -60, -64, -67, -70, -71, -71, -71, -69, -65, -59, -52, //11344 +-46, -39, -31, -22, -8, 0, 10, 19, 28, 42, 50, 58, 66, 72, 77, 83, //11360 +86, 87, 87, 85, 82, 75, 69, 61, 53, 45, 30, 20, 9, -3, -14, -25, //11376 +-42, -52, -62, -71, -79, -87, -94, -98, -100, -100, -100, -95, -91, -85, -77, -67, //11392 +-57, -40, -28, -16, -3, 10, 23, 42, 54, 66, 77, 87, 99, 106, 110, 114, //11408 +115, 114, 110, 105, 98, 90, 81, 71, 53, 42, 29, 16, 2, -19, -33, -47, //11424 +-59, -71, -82, -98, -106, -113, -117, -120, -120, -118, -116, -111, -104, -96, -83, -72, //11440 +-60, -47, -34, -20, 0, 15, 29, 43, 56, 69, 85, 96, 104, 111, 116, 121, //11456 +121, 120, 116, 111, 105, 94, 85, 75, 64, 53, 34, 21, 7, -7, -21, -35, //11472 +-55, -68, -79, -89, -99, -106, -115, -119, -121, -121, -120, -115, -110, -103, -95, -86, //11488 +-76, -58, -45, -32, -19, -5, 8, 28, 41, 53, 65, 75, 89, 98, 104, 108, //11504 +111, 113, 112, 110, 106, 101, 95, 87, 74, 64, 53, 42, 29, 10, -3, -16, //11520 +-28, -39, -51, -65, -73, -82, -88, -93, -98, -102, -103, -102, -101, -98, -90, -85, //11536 +-77, -69, -60, -50, -35, -24, -13, -2, 9, 19, 34, 43, 52, 59, 66, 74, //11552 +79, 82, 84, 85, 85, 82, 80, 76, 72, 66, 60, 49, 41, 33, 25, 16, //11568 +2, -6, -14, -22, -31, -38, -48, -55, -60, -64, -68, -71, -74, -75, -75, -73, //11584 +-71, -67, -62, -57, -51, -45, -38, -27, -20, -13, -5, 4, 11, 23, 31, 38, //11600 +45, 50, 58, 62, 65, 67, 68, 69, 68, 67, 64, 61, 56, 49, 43, 37, //11616 +30, 22, 15, 2, -6, -15, -23, -32, -39, -49, -55, -59, -64, -68, -70, -71, //11632 +-70, -69, -66, -64, -58, -51, -45, -38, -30, -22, -9, 0, 10, 20, 28, 41, //11648 +49, 56, 61, 65, 69, 72, 72, 73, 71, 68, 64, 57, 51, 44, 36, 28, //11664 +15, 5, -4, -14, -24, -33, -45, -53, -59, -64, -68, -71, -73, -73, -71, -69, //11680 +-65, -56, -49, -42, -33, -24, -15, 0, 10, 20, 29, 38, 47, 58, 64, 68, //11696 +72, 74, 74, 74, 71, 67, 62, 56, 45, 37, 28, 19, 9, 0, -17, -26, //11712 +-35, -45, -53, -62, -67, -71, -74, -75, -75, -72, -69, -65, -59, -52, -45, -33, //11728 +-24, -14, -5, 5, 19, 28, 36, 44, 50, 56, 63, 67, 69, 70, 70, 69, //11744 +66, 61, 57, 52, 46, 35, 28, 20, 12, 5, -2, -13, -20, -26, -32, -37, //11760 +-43, -46, -49, -52, -53, -54, -55, -54, -52, -49, -47, -44, -39, -35, -31, -27, //11776 +-23, -16, -11, -7, -2, 2, 7, 14, 18, 23, 28, 31, 35, 41, 44, 48, //11792 +51, 53, 57, 57, 58, 59, 58, 57, 53, 49, 45, 40, 35, 29, 18, 11, //11808 +3, -6, -15, -29, -38, -47, -55, -63, -71, -81, -87, -91, -94, -95, -95, -92, //11824 +-88, -83, -76, -67, -54, -43, -31, -19, -5, 9, 29, 43, 56, 69, 80, 90, //11840 +104, 109, 113, 116, 116, 112, 108, 101, 93, 83, 73, 55, 42, 27, 13, -3, //11856 +-18, -40, -54, -67, -79, -89, -102, -108, -112, -114, -114, -112, -105, -99, -91, -81, //11872 +-70, -59, -40, -26, -12, 0, 13, 31, 41, 52, 60, 67, 73, 78, 80, 81, //11888 +80, 78, 74, 66, 60, 52, 44, 36, 23, 15, 7, -2, -9, -16, -24, -29, //11904 +-33, -35, -37, -39, -39, -38, -36, -34, -32, -27, -23, -20, -17, -13, -10, -6, //11920 +-3, 0, 0, 0, 2, 0, 0, 0, 0, -2, -3, -4, -5, -6, -6, -6, //11936 +-6, -6, -4, -3, 0, 2, 5, 8, 10, 13, 16, 21, 23, 25, 27, 29, //11952 +29, 29, 28, 26, 24, 20, 15, 10, 6, 0, -4, -9, -18, -22, -27, -31, //11968 +-35, -38, -42, -43, -43, -41, -39, -36, -31, -27, -21, -16, -10, 0, 7, 14, //11984 +21, 27, 33, 40, 44, 46, 48, 49, 47, 45, 42, 37, 32, 26, 15, 7, //12000 +0, -8, -17, -24, -35, -42, -47, -52, -56, -59, -59, -58, -56, -53, -47, -38, //12016 +-31, -23, -14, -5, 4, 18, 27, 36, 44, 51, 61, 65, 68, 70, 70, 68, //12032 +65, 59, 53, 46, 38, 30, 16, 6, -3, -13, -22, -35, -42, -48, -54, -59, //12048 +-63, -65, -65, -63, -61, -57, -50, -44, -38, -32, -25, -17, -7, 0, 6, 12, //12064 +18, 23, 29, 32, 34, 35, 37, 36, 35, 33, 31, 28, 26, 22, 19, 17, //12080 +15, 14, 13, 12, 12, 11, 11, 12, 12, 13, 13, 13, 13, 13, 13, 12, //12096 +10, 9, 5, 2, -3, -8, -13, -19, -25, -34, -40, -46, -51, -57, -61, -65, //12112 +-67, -68, -68, -66, -62, -56, -50, -43, -35, -25, -10, 0, 13, 24, 37, 49, //12128 +66, 76, 85, 94, 100, 105, 108, 108, 106, 102, 96, 85, 76, 66, 56, 44, //12144 +30, 10, -5, -20, -35, -50, -64, -82, -94, -103, -110, -116, -120, -121, -119, -115, //12160 +-111, -103, -90, -79, -66, -54, -40, -26, -4, 10, 25, 39, 52, 68, 78, 87, //12176 +94, 99, 102, 104, 103, 101, 97, 92, 85, 72, 63, 53, 42, 32, 16, 5, //12192 +-4, -13, -22, -31, -40, -46, -51, -54, -56, -60, -60, -60, -59, -57, -55, -51, //12208 +-48, -45, -42, -38, -35, -31, -27, -24, -22, -19, -15, -12, -9, -7, -4, 0, //12224 +4, 7, 11, 15, 20, 25, 31, 36, 41, 45, 49, 55, 57, 58, 59, 60, //12240 +59, 55, 51, 47, 41, 35, 28, 16, 7, -2, -11, -21, -35, -43, -51, -58, //12256 +-64, -69, -73, -75, -75, -73, -70, -66, -57, -50, -42, -33, -23, -8, 2, 12, //12272 +22, 32, 39, 50, 55, 60, 62, 63, 62, 59, 55, 49, 43, 36, 23, 15, //12288 +6, -3, -13, -21, -32, -39, -44, -48, -50, -51, -51, -48, -44, -39, -34, -23, //12304 +-15, -7, 0, 10, 19, 30, 38, 44, 48, 52, 54, 55, 53, 50, 47, 42, //12320 +33, 26, 18, 10, 0, -9, -23, -33, -41, -48, -55, -59, -65, -66, -67, -65, //12336 +-63, -57, -51, -45, -38, -30, -21, -8, 0, 9, 17, 26, 36, 42, 47, 51, //12352 +54, 55, 56, 55, 52, 49, 45, 39, 30, 24, 17, 10, 4, -6, -11, -15, //12368 +-19, -22, -24, -26, -25, -24, -23, -20, -17, -12, -8, -5, 0, 3, 7, 10, //12384 +12, 14, 15, 14, 13, 10, 7, 3, -2, -7, -15, -22, -28, -34, -39, -47, //12400 +-50, -53, -55, -56, -55, -51, -46, -40, -34, -26, -16, -2, 9, 20, 31, 43, //12416 +59, 69, 79, 86, 93, 98, 102, 102, 100, 96, 91, 84, 69, 58, 47, 34, //12432 +19, -4, -19, -35, -50, -63, -77, -95, -105, -113, -118, -121, -122, -118, -114, -107, //12448 +-99, -88, -70, -56, -42, -27, -12, 4, 27, 41, 54, 67, 78, 86, 96, 99, //12464 +101, 100, 97, 92, 85, 77, 68, 58, 48, 32, 22, 12, 2, -7, -15, -26, //12480 +-32, -36, -39, -41, -40, -39, -36, -34, -30, -26, -20, -16, -12, -8, -5, -2, //12496 +0, 0, -2, -5, -8, -14, -18, -24, -29, -34, -39, -44, -47, -49, -50, -50, //12512 +-47, -43, -39, -32, -24, -15, 0, 12, 24, 37, 49, 61, 77, 86, 95, 100, //12528 +104, 106, 104, 101, 95, 87, 78, 60, 46, 31, 15, -2, -20, -45, -62, -77, //12544 +-91, -103, -116, -122, -125, -125, -123, -118, -106, -96, -83, -68, -52, -35, -7, 12, //12560 +30, 48, 64, 85, 97, 106, 113, 117, 117, 114, 109, 101, 90, 78, 64, 40, //12576 +23, 5, -14, -31, -55, -70, -82, -93, -100, -105, -108, -106, -103, -96, -87, -76, //12592 +-56, -41, -24, -7, 9, 35, 51, 66, 79, 90, 98, 106, 108, 108, 104, 98, //12608 +90, 74, 62, 47, 31, 15, -11, -27, -43, -59, -74, -86, -100, -107, -112, -113, //12624 +-113, -110, -102, -93, -83, -71, -58, -37, -22, -6, 9, 25, 39, 59, 70, 80, //12640 +88, 94, 99, 99, 98, 94, 89, 83, 70, 59, 48, 36, 23, 11, -8, -20, //12656 +-31, -42, -50, -61, -66, -70, -72, -73, -71, -68, -63, -58, -52, -44, -36, -23, //12672 +-13, -4, 5, 14, 26, 33, 39, 43, 47, 49, 50, 49, 46, 43, 38, 33, //12688 +22, 15, 7, 0, -9, -21, -28, -35, -40, -45, -49, -52, -52, -51, -49, -45, //12704 +-40, -29, -21, -12, -3, 7, 23, 33, 43, 52, 60, 67, 73, 76, 77, 76, //12720 +74, 69, 60, 51, 41, 31, 19, -2, -16, -30, -44, -58, -71, -87, -95, -102, //12736 +-107, -109, -109, -105, -99, -92, -82, -71, -51, -36, -19, -2, 15, 33, 58, 73, //12752 +87, 99, 109, 116, 123, 124, 123, 119, 113, 99, 89, 76, 62, 46, 29, 4, //12768 +-14, -32, -48, -64, -77, -95, -104, -111, -115, -116, -114, -111, -105, -96, -86, -75, //12784 +-55, -42, -27, -12, 3, 25, 39, 51, 62, 71, 79, 88, 91, 92, 93, 91, //12800 +87, 78, 70, 62, 52, 41, 25, 14, 2, -8, -18, -29, -41, -48, -54, -58, //12816 +-62, -64, -65, -64, -61, -58, -54, -46, -38, -31, -24, -15, -7, 6, 13, 21, //12832 +28, 34, 40, 46, 50, 53, 54, 55, 53, 50, 46, 41, 35, 29, 17, 9, //12848 +0, -8, -17, -25, -36, -43, -48, -54, -58, -62, -62, -62, -60, -57, -52, -43, //12864 +-36, -27, -17, -7, 3, 20, 30, 40, 50, 57, 68, 73, 77, 79, 80, 79, //12880 +73, 67, 60, 52, 42, 31, 14, 0, -12, -24, -37, -54, -65, -74, -82, -88, //12896 +-91, -94, -93, -90, -85, -79, -71, -56, -45, -33, -21, -7, 13, 25, 37, 48, //12912 +59, 68, 78, 83, 86, 86, 86, 83, 77, 71, 63, 55, 45, 30, 19, 9, //12928 +0, -11, -21, -33, -40, -46, -51, -55, -58, -58, -58, -55, -53, -50, -42, -37, //12944 +-31, -25, -19, -13, -5, 0, 5, 9, 12, 17, 19, 20, 21, 21, 20, 19, //12960 +18, 16, 14, 13, 10, 7, 5, 3, 0, 0, -3, -4, -4, -4, -4, -4, //12976 +-4, -3, -3, -2, -2, 0, 0, 0, 0, 0, 0, 3, 4, 5, 6, 7, //12992 +8, 8, 9, 9, 10, 10, 10, 10, 9, 9, 9, 7, 5, 3, 0, -2, //13008 +-6, -9, -14, -17, -21, -25, -28, -30, -35, -36, -37, -38, -39, -39, -37, -34, //13024 +-32, -28, -23, -15, -9, -2, 6, 13, 20, 31, 38, 45, 51, 56, 62, 65, //13040 +67, 68, 67, 65, 60, 54, 48, 41, 33, 25, 11, 0, -8, -18, -28, -42, //13056 +-51, -58, -65, -71, -75, -79, -80, -79, -78, -74, -70, -61, -54, -47, -38, -29, //13072 +-16, -6, 3, 12, 21, 29, 40, 47, 52, 57, 61, 65, 66, 67, 66, 64, //13088 +62, 57, 53, 48, 42, 37, 31, 21, 15, 8, 0, -5, -15, -21, -27, -32, //13104 +-38, -43, -48, -51, -54, -56, -57, -58, -57, -55, -53, -50, -46, -40, -34, -29, //13120 +-23, -16, -9, 2, 9, 17, 25, 32, 39, 48, 53, 57, 62, 64, 66, 66, //13136 +64, 61, 57, 52, 43, 36, 28, 19, 10, 0, -15, -24, -33, -42, -50, -59, //13152 +-65, -69, -71, -72, -71, -68, -64, -59, -52, -45, -36, -22, -12, 0, 10, 20, //13168 +36, 45, 53, 60, 67, 73, 77, 78, 78, 76, 73, 67, 57, 49, 40, 30, //13184 +20, 4, -7, -17, -27, -36, -46, -57, -64, -69, -72, -75, -76, -75, -72, -68, //13200 +-64, -58, -49, -41, -33, -25, -16, -7, 6, 14, 21, 28, 35, 41, 48, 52, //13216 +55, 57, 58, 59, 59, 57, 55, 53, 49, 44, 39, 35, 30, 25, 17, 11, //13232 +6, 0, -5, -10, -19, -23, -29, -34, -38, -43, -48, -51, -54, -56, -58, -59, //13248 +-58, -58, -56, -54, -50, -44, -38, -32, -26, -19, -11, 0, 10, 18, 26, 34, //13264 +46, 52, 58, 62, 66, 69, 70, 71, 69, 66, 63, 57, 48, 41, 34, 25, //13280 +16, 3, -6, -14, -22, -29, -36, -44, -48, -51, -53, -54, -54, -52, -50, -47, //13296 +-43, -39, -32, -26, -22, -16, -11, -7, 0, 3, 5, 7, 9, 10, 11, 10, //13312 +9, 8, 7, 5, 3, 2, 0, 0, 0, 0, 0, 3, 4, 7, 9, 15, //13328 +17, 21, 25, 28, 33, 34, 36, 38, 39, 38, 36, 34, 31, 26, 22, 17, //13344 +7, 0, -7, -14, -20, -31, -37, -43, -48, -53, -57, -59, -61, -61, -59, -57, //13360 +-54, -47, -42, -36, -29, -23, -12, -5, 2, 10, 17, 22, 30, 35, 40, 43, //13376 +45, 47, 47, 47, 45, 43, 40, 36, 31, 27, 23, 19, 16, 10, 6, 3, //13392 +0, -2, -5, -7, -8, -9, -9, -9, -10, -9, -9, -9, -9, -9, -10, -10, //13408 +-11, -13, -14, -17, -19, -22, -25, -28, -32, -36, -38, -40, -42, -43, -43, -43, //13424 +-41, -38, -35, -31, -24, -18, -11, -4, 4, 12, 25, 34, 42, 50, 58, 66, //13440 +75, 80, 83, 85, 86, 83, 81, 76, 69, 62, 54, 38, 27, 16, 4, -8, //13456 +-21, -39, -50, -60, -69, -78, -88, -93, -96, -97, -97, -95, -89, -82, -75, -67, //13472 +-58, -48, -32, -21, -10, 0, 12, 27, 35, 42, 49, 55, 59, 63, 65, 65, //13488 +64, 62, 59, 54, 50, 46, 41, 36, 29, 24, 21, 16, 13, 10, 5, 3, //13504 +0, 0, -2, -2, -5, -6, -7, -9, -11, -15, -18, -21, -25, -29, -34, -40, //13520 +-44, -49, -53, -55, -59, -61, -61, -61, -59, -57, -51, -45, -38, -30, -22, -12, //13536 +4, 15, 27, 38, 49, 65, 74, 81, 88, 93, 96, 97, 96, 92, 87, 80, //13552 +72, 56, 44, 31, 18, 3, -18, -31, -44, -56, -67, -76, -87, -92, -95, -96, //13568 +-94, -90, -82, -74, -64, -53, -41, -22, -9, 4, 16, 29, 39, 53, 62, 67, //13584 +71, 74, 74, 71, 66, 61, 54, 44, 31, 20, 9, -2, -13, -23, -37, -45, //13600 +-51, -56, -60, -61, -61, -58, -54, -49, -42, -30, -21, -11, 0, 9, 19, 33, //13616 +42, 49, 55, 60, 63, 65, 65, 62, 59, 54, 44, 36, 27, 17, 8, -2, //13632 +-17, -27, -36, -43, -51, -57, -64, -67, -68, -69, -68, -64, -60, -55, -48, -42, //13648 +-34, -21, -13, -4, 5, 12, 20, 30, 36, 41, 45, 49, 53, 53, 54, 52, //13664 +50, 48, 43, 38, 34, 29, 24, 15, 9, 4, 0, -6, -11, -17, -20, -23, //13680 +-26, -28, -29, -30, -30, -29, -28, -27, -24, -21, -18, -16, -13, -10, -6, -3, //13696 +0, 2, 3, 5, 7, 7, 8, 7, 6, 5, 4, 2, 0, 0, -4, -7, //13712 +-9, -11, -12, -12, -14, -14, -14, -13, -12, -10, -6, -3, 0, 4, 8, 12, //13728 +19, 23, 27, 31, 35, 37, 40, 42, 42, 42, 41, 37, 34, 30, 24, 18, //13744 +11, 0, -8, -16, -24, -32, -41, -52, -59, -64, -69, -72, -75, -76, -76, -73, //13760 +-70, -65, -56, -48, -39, -29, -18, -7, 11, 23, 35, 46, 57, 71, 80, 86, //13776 +91, 95, 97, 97, 95, 90, 85, 78, 69, 54, 43, 30, 17, 4, -17, -29, //13792 +-42, -54, -65, -75, -87, -93, -98, -101, -101, -100, -96, -90, -84, -76, -66, -50, //13808 +-39, -27, -14, -2, 10, 28, 39, 49, 57, 65, 74, 78, 80, 81, 81, 79, //13824 +74, 69, 63, 56, 49, 41, 28, 19, 10, 2, -7, -18, -25, -31, -36, -41, //13840 +-44, -49, -50, -50, -50, -48, -46, -43, -39, -36, -31, -27, -20, -15, -11, -6, //13856 +-2, 2, 8, 11, 14, 17, 19, 21, 23, 24, 24, 24, 23, 22, 20, 18, //13872 +16, 13, 11, 6, 3, 0, -2, -5, -7, -11, -13, -14, -15, -16, -16, -15, //13888 +-14, -13, -11, -8, -4, 0, 2, 6, 10, 13, 18, 20, 22, 24, 25, 27, //13904 +27, 26, 24, 22, 19, 13, 9, 3, -2, -8, -13, -21, -27, -32, -36, -40, //13920 +-45, -46, -47, -48, -46, -45, -40, -35, -31, -25, -18, -12, 0, 7, 14, 21, //13936 +29, 38, 43, 48, 52, 54, 55, 56, 55, 52, 50, 46, 40, 32, 25, 18, //13952 +12, 5, -6, -12, -19, -24, -29, -33, -38, -40, -42, -42, -41, -40, -37, -34, //13968 +-31, -27, -23, -17, -13, -9, -5, 0, 2, 6, 8, 11, 12, 13, 13, 13, //13984 +12, 11, 10, 8, 6, 5, 3, 2, 0, 0, 0, 0, 0, 0, 0, 2, //14000 +3, 4, 5, 7, 8, 9, 11, 11, 11, 13, 13, 13, 12, 11, 10, 9, //14016 +7, 5, 3, 2, 0, -2, -4, -6, -7, -8, -9, -10, -10, -10, -11, -11, //14032 +-11, -10, -10, -10, -10, -10, -10, -11, -11, -12, -12, -12, -14, -14, -15, -15, //14048 +-15, -15, -15, -14, -12, -11, -9, -7, -3, 0, 4, 8, 12, 16, 22, 26, //14064 +30, 35, 37, 42, 43, 45, 45, 45, 44, 41, 38, 34, 29, 24, 18, 8, //14080 +0, -6, -13, -21, -32, -38, -44, -49, -54, -58, -62, -63, -64, -64, -62, -59, //14096 +-54, -49, -43, -36, -30, -18, -11, -3, 5, 13, 21, 30, 36, 41, 46, 50, //14112 +55, 56, 57, 57, 56, 54, 51, 47, 43, 38, 34, 29, 19, 14, 8, 3, //14128 +-3, -11, -16, -20, -24, -27, -31, -35, -37, -38, -39, -40, -41, -40, -39, -38, //14144 +-36, -34, -31, -27, -24, -21, -17, -14, -8, -4, 0, 4, 8, 12, 18, 22, //14160 +25, 28, 32, 35, 37, 38, 38, 38, 37, 35, 33, 30, 27, 23, 19, 12, //14176 +7, 0, -4, -10, -18, -23, -28, -33, -37, -39, -43, -45, -45, -45, -44, -42, //14192 +-38, -35, -30, -25, -19, -10, -4, 4, 10, 16, 23, 31, 36, 41, 45, 48, //14208 +50, 52, 51, 50, 48, 44, 39, 33, 28, 22, 15, 9, -3, -9, -16, -23, //14224 +-29, -34, -41, -45, -48, -51, -52, -53, -52, -50, -47, -45, -41, -34, -30, -24, //14240 +-19, -13, -7, 2, 6, 11, 16, 21, 27, 29, 32, 34, 36, 37, 38, 38, //14256 +37, 36, 35, 32, 30, 27, 25, 23, 20, 16, 13, 11, 9, 6, 3, 0, //14272 +-3, -5, -7, -10, -13, -15, -18, -19, -21, -24, -26, -27, -29, -30, -32, -32, //14288 +-32, -32, -31, -30, -29, -26, -24, -21, -18, -15, -12, -5, 0, 3, 7, 10, //14304 +15, 21, 23, 27, 29, 32, 34, 35, 36, 36, 35, 33, 32, 29, 27, 24, //14320 +21, 18, 13, 10, 6, 3, 0, -5, -8, -10, -12, -14, -16, -17, -18, -18, //14336 +-18, -18, -17, -17, -16, -15, -14, -13, -12, -11, -11, -10, -10, -9, -9, -10, //14352 +-10, -10, -11, -11, -11, -11, -11, -11, -11, -10, -9, -8, -6, -5, -3, 0, //14368 +2, 5, 8, 11, 13, 19, 21, 24, 27, 29, 33, 34, 35, 36, 36, 36, //14384 +35, 33, 31, 29, 26, 23, 16, 12, 7, 3, -2, -10, -14, -19, -23, -28, //14400 +-32, -37, -40, -42, -44, -46, -47, -47, -46, -45, -44, -41, -37, -33, -30, -25, //14416 +-21, -16, -9, -5, 0, 6, 10, 17, 20, 24, 28, 31, 34, 37, 38, 40, //14432 +40, 41, 41, 40, 39, 38, 36, 35, 31, 29, 26, 22, 20, 17, 11, 8, //14448 +5, 0, -2, -6, -11, -14, -18, -21, -24, -28, -30, -33, -35, -37, -39, -41, //14464 +-41, -41, -41, -40, -39, -37, -35, -33, -30, -26, -21, -16, -13, -8, -3, 2, //14480 +9, 13, 19, 23, 27, 31, 36, 39, 42, 44, 45, 46, 46, 45, 44, 42, //14496 +40, 35, 31, 28, 23, 19, 14, 6, 0, -5, -9, -14, -21, -25, -29, -32, //14512 +-35, -37, -40, -41, -41, -42, -41, -40, -38, -36, -34, -31, -28, -22, -19, -15, //14528 +-11, -7, -4, 2, 6, 8, 12, 15, 17, 21, 22, 23, 25, 25, 26, 26, //14544 +25, 24, 23, 22, 20, 18, 16, 14, 13, 9, 7, 5, 2, 0, 0, -4, //14560 +-6, -8, -9, -11, -11, -13, -13, -14, -14, -14, -14, -14, -13, -13, -12, -11, //14576 +-10, -9, -8, -7, -6, -4, -3, -2, 0, 0, 0, 0, 2, 3, 3, 4, //14592 +4, 4, 4, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 3, 3, 3, //14608 +2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //14624 +-2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, //14640 +-2, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //14656 +2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, //14672 +2, 2, 2, 0, 0, 0, 0, 0, 0, 0, -2, -2, -3, -3, -3, -3, //14688 +-4, -4, -4, -4, -4, -4, -4, -3, -3, -3, -2, -2, -2, 0, 0, 0, //14704 +0, 0, 2, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 6, 6, //14720 +6, 6, 5, 5, 5, 4, 3, 3, 3, 0, 0, 0, 0, 0, -3, -4, //14736 +-5, -6, -7, -7, -9, -9, -10, -10, -10, -11, -11, -11, -11, -11, -10, -10, //14752 +-9, -8, -7, -5, -5, -2, 0, 2, 3, 5, 7, 9, 11, 12, 14, 15, //14768 +17, 18, 19, 20, 20, 20, 20, 20, 19, 18, 17, 16, 13, 11, 9, 7, //14784 +5, 0, -2, -4, -6, -9, -11, -15, -17, -18, -20, -21, -23, -25, -26, -26, //14800 +-26, -27, -26, -25, -24, -23, -22, -20, -17, -14, -12, -10, -7, -4, 0, 2, //14816 +6, 9, 12, 16, 19, 21, 24, 26, 28, 31, 32, 33, 34, 34, 34, 33, //14832 +32, 30, 28, 27, 23, 19, 16, 13, 9, 5, 0, -5, -9, -13, -17, -24, //14848 +-28, -30, -33, -36, -38, -41, -42, -42, -43, -42, -41, -39, -37, -34, -32, -28, //14864 +-23, -18, -14, -10, -6, 0, 6, 10, 14, 18, 23, 26, 30, 32, 34, 36, //14880 +37, 39, 39, 38, 37, 36, 35, 31, 29, 26, 22, 20, 17, 11, 8, 5, //14896 +0, -2, -8, -11, -13, -17, -19, -21, -25, -26, -28, -30, -30, -31, -31, -31, //14912 +-31, -30, -29, -28, -26, -24, -22, -21, -18, -15, -12, -9, -7, -5, -2, 2, //14928 +4, 7, 9, 11, 14, 16, 18, 19, 20, 22, 22, 23, 23, 23, 22, 22, //14944 +21, 20, 18, 17, 16, 14, 12, 10, 9, 7, 5, 2, 0, 0, -2, -4, //14960 +-6, -7, -8, -9, -10, -11, -11, -12, -12, -13, -13, -13, -13, -12, -12, -12, //14976 +-12, -11, -11, -10, -10, -9, -9, -8, -8, -7, -7, -6, -6, -5, -5, -4, //14992 +-3, -3, -2, 0, 0, 0, 2, 3, 4, 5, 6, 6, 6, 8, 9, 10, //15008 +11, 11, 11, 12, 12, 13, 13, 13, 13, 12, 12, 11, 10, 9, 8, 7, //15024 +6, 4, 3, 2, 0, -2, -3, -4, -6, -8, -9, -11, -12, -13, -14, -14, //15040 +-15, -15, -16, -16, -15, -15, -14, -13, -12, -11, -10, -8, -6, -5, -4, -2, //15056 +0, 3, 5, 6, 7, 9, 11, 13, 14, 15, 16, 17, 17, 18, 18, 18, //15072 +17, 17, 16, 15, 14, 13, 12, 10, 8, 6, 5, 4, 2, 0, -3, -5, //15088 +-6, -8, -9, -11, -13, -14, -14, -16, -17, -18, -18, -18, -18, -18, -18, -18, //15104 +-17, -16, -15, -14, -13, -11, -10, -9, -7, -4, -2, 0, 0, 2, 4, 7, //15120 +9, 11, 12, 14, 15, 17, 18, 19, 20, 20, 21, 21, 21, 20, 20, 19, //15136 +18, 17, 15, 14, 13, 11, 9, 7, 6, 4, 2, 0, -3, -5, -7, -8, //15152 +-9, -12, -13, -14, -16, -16, -18, -19, -20, -21, -21, -21, -22, -22, -22, -21, //15168 +-21, -20, -19, -18, -17, -15, -14, -12, -10, -8, -6, -5, -3, 0, 3, 4, //15184 +7, 9, 11, 14, 16, 19, 19, 21, 24, 25, 26, 27, 27, 27, 28, 27, //15200 +27, 26, 25, 24, 22, 20, 18, 16, 15, 11, 9, 7, 4, 0, -2, -6, //15216 +-9, -10, -13, -16, -18, -22, -24, -25, -27, -28, -30, -31, -32, -32, -32, -32, //15232 +-31, -31, -30, -28, -27, -26, -23, -21, -19, -16, -14, -10, -7, -5, -2, 0, //15248 +4, 8, 11, 12, 15, 17, 19, 22, 24, 25, 25, 26, 28, 28, 28, 28, //15264 +27, 26, 25, 24, 23, 21, 20, 19, 16, 14, 12, 10, 8, 5, 3, 0, //15280 +-2, -3, -5, -8, -9, -10, -12, -14, -15, -17, -18, -19, -19, -19, -20, -21, //15296 +-21, -21, -21, -21, -21, -20, -20, -19, -19, -18, -17, -16, -15, -14, -13, -11, //15312 +-10, -9, -7, -6, -5, -3, 0, 0, 0, 3, 5, 7, 8, 9, 11, 12, //15328 +14, 15, 16, 18, 18, 19, 21, 21, 22, 22, 22, 22, 22, 22, 21, 20, //15344 +19, 18, 17, 15, 14, 13, 11, 8, 6, 4, 2, 0, -4, -7, -9, -11, //15360 +-13, -15, -18, -20, -21, -23, -24, -26, -28, -28, -29, -29, -29, -28, -27, -26, //15376 +-25, -24, -22, -19, -17, -15, -12, -9, -6, -2, 0, 3, 6, 9, 13, 16, //15392 +18, 20, 22, 24, 26, 27, 28, 29, 29, 29, 28, 27, 26, 24, 23, 21, //15408 +18, 16, 14, 12, 9, 5, 2, 0, -3, -6, -9, -12, -14, -17, -18, -20, //15424 +-22, -23, -24, -24, -25, -24, -24, -23, -22, -21, -20, -17, -15, -13, -11, -9, //15440 +-6, -2, 0, 2, 5, 7, 10, 13, 15, 16, 18, 20, 21, 22, 22, 22, //15456 +22, 22, 21, 20, 19, 17, 16, 14, 11, 9, 7, 5, 2, -2, -4, -6, //15472 +-8, -11, -13, -16, -18, -19, -21, -22, -24, -24, -24, -25, -24, -24, -23, -21, //15488 +-20, -18, -16, -15, -11, -9, -7, -4, 0, 2, 6, 9, 11, 14, 17, 20, //15504 +22, 23, 25, 27, 28, 30, 31, 31, 31, 30, 30, 29, 27, 25, 23, 22, //15520 +18, 16, 14, 11, 7, 4, 0, -3, -6, -10, -13, -15, -20, -22, -24, -27, //15536 +-29, -32, -33, -33, -35, -35, -36, -36, -35, -35, -33, -32, -31, -28, -26, -24, //15552 +-21, -18, -14, -11, -8, -5, 0, 2, 6, 9, 12, 16, 19, 21, 26, 27, //15568 +29, 31, 33, 35, 36, 37, 37, 37, 36, 36, 34, 33, 32, 29, 27, 24, //15584 +21, 19, 16, 13, 8, 5, 2, -2, -5, -8, -13, -15, -18, -21, -24, -27, //15600 +-29, -30, -32, -33, -34, -35, -36, -35, -35, -34, -33, -32, -30, -28, -26, -25, //15616 +-21, -18, -15, -13, -10, -7, -3, 0, 2, 5, 8, 11, 14, 16, 17, 19, //15632 +21, 23, 24, 25, 26, 26, 26, 25, 25, 24, 23, 22, 21, 19, 17, 15, //15648 +14, 12, 9, 7, 5, 2, 0, 0, -4, -5, -7, -8, -9, -11, -12, -13, //15664 +-13, -14, -14, -14, -14, -14, -14, -13, -13, -12, -11, -10, -9, -8, -7, -6, //15680 +-5, -4, -4, -3, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //15696 +0, 0, 0, 0, 0, 0, 0, -2, -2, -2, -2, -2, -2, -2, -2, -2, //15712 +-2, -2, 0, 0, 0, 0, 0, 2, 3, 3, 4, 5, 6, 6, 7, 8, //15728 +8, 8, 9, 9, 9, 9, 9, 9, 8, 8, 8, 7, 6, 5, 4, 4, //15744 +3, 2, 0, 0, -2, -3, -4, -5, -6, -7, -8, -8, -8, -10, -10, -10, //15760 +-11, -11, -11, -11, -10, -10, -10, -9, -8, -8, -7, -6, -5, -4, -3, -2, //15776 +-2, 0, 0, 0, 2, 3, 3, 4, 5, 5, 5, 6, 6, 6, 6, 6, //15792 +6, 6, 6, 5, 5, 5, 4, 4, 4, 3, 3, 3, 3, 3, 2, 2, //15808 +2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, //15824 +4, 3, 3, 3, 2, 2, 2, 0, 0, 0, -2, -3, -4, -5, -6, -7, //15840 +-8, -9, -9, -11, -11, -12, -13, -13, -14, -14, -14, -14, -14, -13, -13, -12, //15856 +-11, -10, -9, -9, -6, -5, -4, -2, 0, 3, 4, 5, 7, 9, 11, 14, //15872 +15, 16, 18, 19, 19, 20, 20, 20, 21, 20, 20, 19, 18, 17, 16, 14, //15888 +12, 10, 8, 7, 5, 0, 0, -3, -4, -7, -9, -12, -13, -14, -16, -16, //15904 +-17, -19, -20, -20, -20, -20, -20, -19, -18, -17, -16, -15, -13, -11, -10, -9, //15920 +-7, -5, -2, 0, 0, 3, 4, 6, 7, 8, 9, 10, 10, 11, 11, 11, //15936 +11, 11, 10, 10, 9, 8, 7, 6, 5, 4, 3, 2, 0, 0, -2, -3, //15952 +-3, -4, -4, -4, -5, -5, -4, -4, -4, -3, -2, -2, 0, 0, 0, 2, //15968 +4, 5, 6, 7, 8, 8, 9, 10, 10, 10, 10, 10, 10, 9, 8, 7, //15984 +6, 5, 4, 3, 0, 0, -3, -5, -7, -8, -10, -13, -15, -17, -18, -19, //16000 +-21, -22, -22, -23, -23, -23, -22, -22, -21, -19, -18, -17, -14, -12, -10, -8, //16016 +-6, -3, 0, 4, 6, 8, 10, 14, 16, 17, 19, 21, 21, 23, 24, 25, //16032 +25, 24, 24, 23, 22, 20, 18, 17, 14, 12, 10, 8, 6, 3, 0, -3, //16048 +-5, -7, -9, -11, -14, -16, -17, -18, -18, -20, -20, -20, -20, -20, -19, -18, //16064 +-17, -15, -14, -13, -11, -8, -6, -4, -3, 0, 2, 4, 6, 7, 8, 10, //16080 +11, 12, 13, 13, 13, 13, 13, 12, 12, 11, 10, 8, 7, 5, 4, 3, //16096 +0, -2, -3, -4, -7, -8, -8, -11, -12, -13, -14, -14, -14, -14, -14, -13, //16112 +-13, -12, -11, -9, -8, -7, -5, -4, 0, 0, 2, 3, 5, 8, 9, 10, //16128 +12, 12, 13, 15, 15, 16, 16, 16, 15, 15, 14, 13, 12, 11, 9, 8, //16144 +6, 5, 4, 2, 0, -2, -4, -5, -6, -8, -9, -11, -11, -11, -13, -13, //16160 +-13, -14, -13, -13, -12, -12, -11, -10, -9, -8, -7, -5, -4, -3, -2, 0, //16176 +0, 2, 3, 5, 5, 5, 7, 7, 8, 8, 8, 8, 8, 7, 7, 6, //16192 +6, 5, 4, 4, 3, 2, 0, 0, 0, 0, -2, -3, -3, -4, -4, -5, //16208 +-5, -5, -5, -4, -4, -4, -3, -2, -2, 0, 0, 0, 0, 2, 3, 4, //16224 +5, 6, 6, 8, 8, 9, 9, 9, 10, 10, 10, 9, 9, 8, 8, 7, //16240 +6, 5, 4, 3, 2, 0, 0, -2, -3, -5, -6, -7, -8, -10, -10, -12, //16256 +-13, -13, -14, -14, -14, -15, -14, -14, -14, -13, -13, -12, -11, -10, -9, -8, //16272 +-6, -5, -3, -2, 0, 0, 3, 4, 5, 7, 8, 10, 11, 12, 13, 14, //16288 +14, 15, 15, 15, 15, 15, 14, 14, 13, 13, 12, 11, 10, 8, 7, 5, //16304 +4, 3, 0, 0, -3, -4, -5, -7, -9, -10, -11, -12, -13, -14, -15, -15, //16320 +-15, -16, -16, -16, -15, -15, -14, -13, -12, -11, -10, -9, -8, -7, -5, -3, //16336 +-2, 0, 0, 2, 4, 6, 7, 7, 9, 11, 12, 13, 13, 14, 14, 15, //16352 +15, 15, 14, 14, 13, 13, 12, 11, 10, 9, 8, 6, 4, 3, 2, 0, //16368 +-2, -3, -4, -7, -8, -8, -11, -12, -13, -14, -14, -14, -15, -15, -16, -16, //16384 +-15, -15, -14, -14, -13, -12, -11, -10, -9, -7, -6, -5, -4, -2, 0, 0, //16400 +2, 2, 5, 6, 7, 8, 9, 9, 10, 11, 11, 11, 11, 11, 11, 11, //16416 +11, 10, 10, 9, 8, 7, 7, 6, 5, 4, 3, 2, 0, 0, 0, -2, //16432 +-3, -4, -5, -5, -6, -7, -7, -8, -8, -8, -9, -9, -9, -9, -9, -9, //16448 +-9, -8, -8, -8, -7, -7, -7, -6, -6, -5, -5, -4, -4, -3, -3, -2, //16464 +-2, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 3, 3, //16480 +3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, //16496 +6, 6, 6, 6, 6, 5, 5, 5, 4, 3, 3, 2, 0, 0, 0, 0, //16512 +-2, -2, -2, -4, -5, -6, -6, -6, -8, -8, -9, -9, -10, -10, -10, -10, //16528 +-10, -10, -10, -9, -9, -8, -8, -7, -6, -5, -4, -2, 0, 0, 0, 2, //16544 +4, 5, 6, 7, 8, 10, 11, 11, 11, 13, 13, 13, 13, 13, 13, 12, //16560 +12, 11, 10, 9, 8, 7, 6, 4, 3, 2, 0, 0, -3, -5, -6, -6, //16576 +-8, -10, -11, -12, -13, -14, -14, -15, -15, -15, -15, -14, -14, -13, -13, -12, //16592 +-10, -9, -9, -6, -5, -3, -2, 0, 2, 3, 5, 6, 7, 9, 11, 12, //16608 +13, 14, 15, 15, 16, 16, 16, 16, 16, 15, 15, 14, 13, 12, 11, 10, //16624 +9, 8, 7, 5, 4, 2, 0, 0, 0, -3, -4, -5, -6, -7, -8, -8, //16640 +-10, -11, -11, -12, -12, -12, -13, -13, -12, -12, -12, -12, -12, -11, -11, -10, //16656 +-9, -9, -8, -7, -7, -6, -5, -5, -4, -3, -3, -2, 0, 0, 0, 0, //16672 +0, 0, 3, 3, 4, 5, 5, 6, 7, 7, 8, 9, 9, 10, 10, 11, //16688 +11, 11, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 12, 11, 10, //16704 +9, 8, 7, 7, 4, 3, 0, 0, 0, -4, -6, -8, -9, -10, -12, -15, //16720 +-16, -17, -19, -20, -22, -23, -24, -25, -26, -26, -26, -26, -26, -25, -24, -23, //16736 +-22, -21, -19, -17, -16, -14, -11, -9, -7, -5, -2, 2, 4, 6, 8, 11, //16752 +13, 17, 19, 20, 22, 23, 26, 27, 28, 28, 28, 29, 29, 29, 28, 27, //16768 +26, 25, 23, 22, 20, 18, 16, 13, 11, 8, 6, 4, 0, -2, -5, -7, //16784 +-9, -11, -13, -16, -18, -19, -21, -22, -24, -25, -25, -25, -26, -26, -26, -26, //16800 +-25, -25, -24, -23, -22, -20, -19, -18, -16, -14, -12, -10, -9, -8, -6, -3, //16816 +-2, 0, 2, 3, 3, 6, 7, 8, 9, 10, 11, 12, 12, 13, 13, 13, //16832 +14, 14, 14, 14, 14, 14, 14, 14, 13, 13, 13, 12, 11, 11, 10, 10, //16848 +9, 8, 7, 7, 6, 5, 4, 3, 2, 0, 0, 0, 0, -2, -3, -4, //16864 +-5, -6, -7, -8, -9, -9, -9, -11, -11, -12, -12, -13, -13, -13, -13, -13, //16880 +-13, -13, -13, -13, -13, -12, -12, -11, -11, -10, -9, -8, -7, -6, -5, -4, //16896 +-3, -2, 0, 0, 2, 3, 4, 5, 6, 7, 7, 8, 9, 10, 10, 11, //16912 +11, 11, 11, 11, 11, 11, 11, 11, 11, 10, 10, 10, 9, 8, 8, 7, //16928 +7, 6, 5, 4, 4, 4, 2, 0, 0, 0, 0, -2, -2, -3, -3, -4, //16944 +-4, -4, -5, -5, -5, -6, -6, -6, -6, -6, -6, -6, -6, -6, -5, -5, //16960 +-5, -4, -4, -3, -3, -3, -2, -2, 0, 0, 0, 0, 0, 0, 2, 2, //16976 +3, 3, 3, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, //16992 +4, 4, 3, 3, 2, 0, 0, 0, 0, 0, -3, -4, -5, -5, -5, -7, //17008 +-8, -9, -9, -9, -10, -10, -10, -10, -10, -10, -9, -9, -8, -8, -7, -6, //17024 +-4, -3, -2, 0, 0, 2, 4, 6, 7, 8, 10, 11, 13, 14, 15, 16, //17040 +16, 18, 18, 19, 19, 18, 18, 18, 17, 16, 15, 14, 12, 10, 8, 6, //17056 +5, 3, 0, -2, -4, -7, -8, -10, -14, -16, -17, -18, -20, -22, -23, -24, //17072 +-25, -26, -26, -26, -26, -25, -25, -24, -23, -21, -20, -18, -16, -15, -12, -10, //17088 +-8, -6, -5, -2, 0, 3, 5, 7, 9, 11, 14, 16, 17, 18, 20, 21, //17104 +22, 23, 23, 23, 23, 23, 23, 22, 22, 21, 20, 19, 18, 16, 15, 14, //17120 +11, 10, 8, 6, 5, 3, 0, -2, -4, -5, -6, -8, -11, -12, -13, -15, //17136 +-16, -18, -19, -20, -20, -20, -22, -22, -22, -23, -23, -23, -22, -22, -22, -21, //17152 +-20, -19, -18, -17, -16, -15, -14, -12, -10, -8, -7, -6, -4, -2, 0, 3, //17168 +5, 6, 8, 10, 12, 14, 15, 16, 18, 19, 20, 21, 22, 23, 23, 23, //17184 +23, 23, 23, 22, 21, 20, 19, 18, 17, 15, 13, 11, 9, 8, 5, 2, //17200 +0, -3, -4, -6, -9, -12, -14, -16, -17, -18, -19, -22, -23, -23, -24, -24, //17216 +-24, -24, -23, -22, -21, -20, -19, -17, -15, -13, -12, -10, -7, -5, -3, 0, //17232 +0, 4, 6, 8, 9, 10, 12, 14, 15, 15, 16, 16, 16, 16, 15, 15, //17248 +14, 13, 12, 10, 9, 8, 7, 5, 3, 0, 0, 0, -3, -4, -6, -7, //17264 +-8, -9, -10, -10, -10, -10, -10, -10, -9, -8, -7, -6, -5, -4, -3, 0, //17280 +0, 2, 3, 5, 7, 8, 9, 10, 11, 11, 13, 13, 13, 13, 13, 13, //17296 +12, 11, 10, 9, 8, 6, 5, 3, 0, 0, 0, -4, -6, -7, -8, -10, //17312 +-10, -13, -14, -14, -15, -15, -16, -15, -15, -15, -14, -13, -12, -11, -9, -8, //17328 +-7, -5, -3, 0, 0, 2, 4, 6, 8, 9, 10, 12, 12, 14, 14, 15, //17344 +15, 15, 15, 15, 14, 14, 13, 12, 11, 10, 9, 7, 6, 6, 3, 2, //17360 +0, 0, 0, -4, -5, -5, -6, -7, -7, -8, -8, -8, -8, -8, -7, -7, //17376 +-6, -6, -5, -4, -4, -3, -2, 0, 0, 0, 0, 2, 2, 3, 3, 3, //17392 +4, 4, 3, 3, 3, 2, 2, 0, 0, 0, 0, 0, -2, -3, -4, -5, //17408 +-5, -6, -7, -7, -8, -8, -8, -8, -8, -8, -8, -8, -7, -6, -6, -5, //17424 +-4, -3, -2, 0, 0, 0, 2, 3, 5, 6, 7, 7, 7, 9, 10, 10, //17440 +11, 11, 11, 11, 11, 11, 11, 10, 10, 9, 8, 7, 6, 5, 4, 3, //17456 +0, 0, 0, -2, -3, -4, -5, -6, -7, -8, -9, -10, -10, -11, -11, -11, //17472 +-11, -11, -12, -11, -11, -11, -11, -10, -10, -9, -9, -8, -7, -6, -6, -5, //17488 +-4, -3, -3, -2, 0, 0, 0, 0, 0, 2, 2, 3, 3, 4, 4, 4, //17504 +5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 3, //17520 +3, 2, 2, 0, 0, 0, 0, 0, -2, -2, -3, -3, -4, -4, -5, -5, //17536 +-6, -6, -6, -6, -7, -7, -7, -7, -6, -6, -6, -5, -5, -5, -3, -3, //17552 +-2, 0, 0, 0, 0, 2, 3, 4, 4, 5, 5, 6, 6, 6, 6, 6, //17568 +6, 5, 5, 4, 3, 2, 0, 0, 0, -2, -3, -5, -6, -7, -8, -9, //17584 +-10, -11, -12, -13, -13, -13, -14, -13, -13, -13, -12, -11, -10, -9, -7, -6, //17600 +-5, -2, 0, 2, 3, 5, 7, 10, 12, 14, 15, 17, 19, 21, 22, 22, //17616 +22, 23, 23, 22, 22, 21, 20, 19, 16, 14, 12, 10, 7, 4, 0, 0, //17632 +-4, -7, -10, -14, -16, -19, -20, -22, -25, -26, -27, -28, -28, -29, -29, -28, //17648 +-27, -25, -24, -23, -19, -17, -15, -12, -9, -4, 0, 2, 5, 8, 11, 16, //17664 +18, 20, 23, 25, 27, 29, 30, 31, 31, 31, 30, 29, 27, 26, 25, 22, //17680 +18, 15, 13, 10, 6, 3, -2, -5, -8, -11, -14, -18, -21, -23, -24, -26, //17696 +-27, -29, -29, -29, -29, -28, -27, -25, -23, -21, -20, -17, -13, -9, -6, -3, //17712 +0, 3, 8, 10, 14, 17, 19, 22, 25, 26, 28, 28, 30, 30, 30, 29, //17728 +28, 27, 26, 23, 21, 19, 17, 14, 11, 7, 4, 0, -2, -5, -10, -12, //17744 +-14, -17, -19, -21, -23, -24, -26, -26, -26, -26, -26, -25, -23, -22, -21, -18, //17760 +-16, -13, -11, -9, -6, -2, 0, 2, 5, 7, 10, 13, 15, 17, 17, 19, //17776 +21, 21, 21, 21, 21, 20, 19, 18, 17, 16, 14, 11, 9, 7, 5, 3, //17792 +0, -2, -4, -6, -8, -9, -11, -13, -14, -15, -16, -16, -16, -16, -16, -15, //17808 +-14, -13, -12, -11, -9, -8, -7, -5, -2, 0, 0, 2, 4, 6, 8, 9, //17824 +10, 11, 12, 12, 13, 13, 13, 12, 12, 11, 11, 10, 8, 7, 6, 4, //17840 +3, 2, 0, 0, -4, -5, -6, -8, -9, -11, -12, -13, -13, -14, -14, -14, //17856 +-14, -14, -14, -13, -13, -12, -11, -10, -9, -8, -7, -5, -4, -2, 0, 0, //17872 +2, 3, 4, 5, 6, 7, 8, 9, 9, 10, 10, 10, 10, 10, 10, 10, //17888 +9, 9, 8, 7, 7, 6, 5, 4, 3, 2, 0, 0, 0, -2, -3, -3, //17904 +-4, -5, -6, -6, -7, -7, -8, -8, -8, -9, -9, -9, -9, -9, -9, -9, //17920 +-8, -8, -8, -7, -7, -7, -6, -6, -5, -5, -4, -4, -3, -3, -2, 0, //17936 +0, 0, 0, 0, 0, 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 6, //17952 +6, 7, 7, 7, 7, 7, 6, 6, 6, 5, 5, 4, 4, 3, 3, 3, //17968 +0, 0, 0, 0, -2, -3, -4, -5, -6, -7, -8, -8, -9, -10, -10, -11, //17984 +-11, -11, -11, -11, -11, -11, -11, -10, -10, -9, -8, -8, -8, -6, -5, -3, //18000 +-2, 0, 0, 2, 3, 4, 5, 5, 8, 9, 10, 10, 10, 12, 12, 13, //18016 +13, 13, 13, 13, 13, 12, 12, 11, 10, 10, 9, 8, 7, 5, 4, 3, //18032 +2, 0, 0, 0, -3, -3, -4, -5, -6, -7, -7, -8, -8, -8, -9, -9, //18048 +-9, -9, -8, -8, -8, -7, -7, -6, -6, -6, -4, -4, -3, -2, -2, 0, //18064 +0, 0, 0, 0, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 3, //18080 +3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, //18096 +2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, //18112 +3, 2, 2, 2, 0, 0, 0, 0, 0, 0, -2, -2, -3, -3, -4, -4, //18128 +-5, -5, -6, -6, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -6, -6, //18144 +-6, -5, -4, -4, -3, -2, 0, 0, 0, 0, 0, 3, 4, 5, 6, 7, //18160 +7, 8, 9, 9, 9, 10, 10, 10, 10, 10, 10, 9, 9, 9, 8, 7, //18176 +7, 7, 5, 4, 3, 2, 0, 0, -2, -3, -4, -5, -6, -7, -8, -9, //18192 +-10, -11, -12, -12, -13, -13, -13, -13, -13, -13, -13, -12, -12, -12, -10, -10, //18208 +-9, -8, -7, -5, -4, -3, 0, 0, 0, 3, 4, 6, 7, 8, 9, 10, //18224 +11, 12, 13, 13, 14, 14, 14, 14, 14, 14, 13, 13, 12, 11, 10, 9, //18240 +8, 7, 5, 4, 3, 0, 0, -2, -3, -5, -7, -8, -10, -11, -12, -13, //18256 +-13, -15, -16, -16, -17, -17, -17, -17, -17, -16, -16, -15, -14, -13, -12, -11, //18272 +-10, -9, -7, -6, -5, -4, -2, 0, 0, 2, 3, 3, 5, 6, 7, 8, //18288 +9, 9, 9, 10, 10, 10, 10, 9, 9, 9, 8, 8, 7, 6, 6, 5, //18304 +4, 4, 3, 2, 2, 0, 0, 0, 0, 0, 0, -2, -2, -2, -2, -2, //18320 +-2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //18336 +0, 0, 0, 0, 0, -3, -3, -4, -5, -6, -7, -8, -9, -9, -10, -11, //18352 +-12, -12, -13, -13, -13, -14, -14, -13, -13, -13, -12, -11, -10, -9, -8, -7, //18368 +-6, -4, -2, 0, 2, 3, 5, 7, 9, 11, 13, 14, 15, 17, 18, 19, //18384 +20, 21, 21, 21, 21, 21, 21, 20, 19, 18, 17, 15, 14, 13, 10, 8, //18400 +6, 5, 3, 0, -2, -5, -7, -8, -10, -12, -14, -15, -16, -18, -18, -19, //18416 +-20, -20, -20, -20, -19, -19, -18, -17, -16, -15, -13, -12, -10, -8, -7, -6, //18432 +-3, -2, 0, 0, 2, 4, 6, 7, 8, 9, 10, 11, 11, 12, 12, 12, //18448 +12, 12, 12, 12, 11, 11, 11, 9, 9, 8, 7, 6, 6, 5, 4, 3, //18464 +3, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //18480 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2, //18496 +-3, -3, -4, -4, -5, -5, -6, -6, -6, -7, -7, -7, -7, -8, -8, -7, //18512 +-7, -7, -7, -6, -6, -5, -5, -4, -3, -2, -2, 0, 0, 0, 2, 3, //18528 +3, 4, 5, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 8, 7, 7, //18544 +7, 6, 5, 5, 4, 3, 3, 2, 0, 0, 0, 0, 0, -2, -2, -3, //18560 +-3, -3, -4, -4, -4, -4, -4, -4, -3, -3, -3, -3, -2, -2, 0, 0, //18576 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //18592 +0, 0, -2, -2, -3, -4, -4, -5, -5, -5, -6, -6, -6, -7, -7, -7, //18608 +-7, -6, -6, -6, -6, -5, -5, -4, -3, -3, -3, 0, 0, 0, 0, 2, //18624 +3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 5, 5, 5, 4, 4, 3, //18640 +2, 0, 0, 0, -2, -3, -4, -5, -6, -7, -7, -7, -9, -9, -10, -10, //18656 +-10, -10, -10, -10, -10, -9, -9, -9, -7, -6, -4, -3, -2, 0, 0, 2, //18672 +3, 5, 5, 8, 9, 10, 11, 12, 12, 13, 13, 13, 13, 13, 12, 12, //18688 +11, 10, 9, 8, 6, 4, 3, 2, 0, -2, -4, -6, -8, -9, -11, -13, //18704 +-14, -15, -16, -17, -17, -19, -19, -19, -19, -18, -18, -17, -16, -15, -14, -13, //18720 +-11, -9, -7, -5, -4, -2, 0, 2, 4, 5, 7, 9, 11, 13, 14, 14, //18736 +16, 17, 17, 17, 17, 17, 17, 17, 16, 16, 15, 14, 13, 11, 10, 8, //18752 +7, 6, 4, 2, 0, 0, -2, -3, -4, -6, -7, -8, -8, -8, -10, -10, //18768 +-11, -11, -11, -11, -11, -11, -11, -10, -10, -10, -9, -9, -8, -8, -7, -7, //18784 +-6, -6, -5, -5, -4, -4, -3, -3, -3, -2, -2, 0, 0, 0, 0, 0, //18800 +0, 0, 2, 2, 3, 3, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, //18816 +9, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 10, 10, 9, 9, 8, //18832 +7, 6, 5, 4, 3, 2, 0, 0, -2, -3, -4, -5, -6, -8, -9, -9, //18848 +-9, -11, -11, -12, -12, -12, -12, -12, -11, -11, -10, -10, -9, -8, -7, -6, //18864 +-4, -3, -3, 0, 0, 2, 3, 5, 5, 7, 8, 9, 10, 10, 10, 11, //18880 +11, 11, 11, 11, 11, 10, 9, 9, 8, 7, 6, 4, 3, 2, 0, 0, //18896 +-2, -3, -4, -5, -6, -7, -8, -9, -10, -10, -10, -11, -11, -10, -10, -10, //18912 +-9, -9, -8, -7, -6, -5, -4, -3, 0, 0, 0, 2, 3, 5, 6, 6, //18928 +7, 7, 9, 9, 9, 10, 10, 10, 9, 9, 9, 8, 7, 6, 5, 4, //18944 +3, 2, 0, 0, 0, -2, -3, -4, -5, -6, -7, -7, -7, -9, -9, -9, //18960 +-9, -9, -9, -9, -9, -8, -8, -7, -7, -6, -5, -4, -4, -3, -2, 0, //18976 +0, 0, 2, 2, 3, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 4, //18992 +4, 3, 3, 2, 2, 0, 0, 0, 0, -2, -2, -3, -3, -4, -4, -5, //19008 +-5, -5, -6, -6, -6, -6, -6, -5, -5, -5, -5, -4, -4, -3, -3, -2, //19024 +-2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, //19040 +2, 0, 0, 0, 0, 0, 0, 0, -2, -2, -2, -3, -3, -4, -4, -5, //19056 +-5, -5, -6, -6, -6, -6, -6, -5, -5, -5, -5, -4, -4, -3, -3, -2, //19072 +-2, 0, 0, 0, 0, 0, 2, 2, 3, 3, 4, 4, 4, 5, 5, 5, //19088 +5, 5, 5, 5, 5, 4, 4, 4, 3, 3, 3, 0, 0, 0, 0, 0, //19104 +0, -2, -3, -3, -3, -4, -4, -5, -5, -5, -6, -6, -6, -6, -6, -6, //19120 +-6, -5, -5, -5, -4, -4, -4, -3, -3, -2, -2, 0, 0, 0, 0, 0, //19136 +0, 0, 0, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, //19152 +3, 3, 3, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, //19168 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //19184 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //19200 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //19216 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //19232 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //19248 +0, 0, 0, 0, 0, 2, 2, 2, 3, 3, 3, 4, 4, 4, 4, 4, //19264 +5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 3, 3, 2, 2, 0, 0, //19280 +0, 0, 0, -2, -2, -3, -3, -4, -5, -5, -5, -6, -6, -7, -7, -7, //19296 +-7, -7, -7, -7, -7, -7, -6, -6, -5, -5, -4, -3, -3, -2, 0, 0, //19312 +0, 0, 2, 2, 3, 4, 4, 5, 5, 6, 6, 6, 6, 6, 6, 6, //19328 +6, 5, 5, 4, 4, 3, 3, 3, 0, 0, 0, 0, -2, -3, -4, -5, //19344 +-5, -6, -7, -7, -8, -8, -8, -9, -9, -9, -9, -8, -8, -8, -7, -6, //19360 +-6, -5, -4, -3, -3, -2, 0, 0, 0, 2, 2, 4, 4, 5, 5, 6, //19376 +6, 7, 7, 7, 7, 7, 7, 6, 6, 5, 5, 5, 3, 2, 2, 0, //19392 +0, 0, -2, -3, -4, -5, -5, -6, -7, -7, -8, -8, -9, -9, -9, -9, //19408 +-9, -9, -9, -9, -8, -8, -7, -6, -5, -5, -4, -3, -2, 0, 0, 0, //19424 +2, 2, 2, 4, 5, 5, 6, 6, 6, 7, 7, 7, 7, 6, 6, 6, //19440 +5, 5, 4, 4, 3, 2, 2, 0, 0, 0, -2, -2, -3, -4, -4, -5, //19456 +-6, -6, -6, -7, -7, -7, -7, -7, -6, -6, -6, -5, -5, -4, -4, -4, //19472 +-2, -2, 0, 0, 0, 0, 2, 3, 3, 4, 4, 4, 5, 5, 5, 6, //19488 +6, 5, 5, 5, 5, 4, 4, 3, 3, 2, 0, 0, 0, 0, 0, -2, //19504 +-3, -4, -4, -5, -5, -6, -6, -6, -7, -7, -7, -7, -6, -6, -6, -6, //19520 +-5, -5, -5, -3, -3, -2, 0, 0, 0, 0, 2, 3, 4, 4, 5, 5, //19536 +6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 5, 5, 4, //19552 +3, 3, 2, 0, 0, 0, 0, 0, -2, -2, -3, -3, -3, -4, -4, -4, //19568 +-4, -4, -4, -4, -4, -4, -4, -3, -3, -3, -2, -2, -2, 0, 0, 0, //19584 +0, 0, 0, 0, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, //19600 +2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //19616 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //19632 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //19648 +0, 0, -2, -2, -2, -3, -3, -3, -3, -3, -3, -4, -4, -4, -4, -4, //19664 +-3, -3, -3, -3, -2, -2, -2, 0, 0, 0, 0, 0, 0, 0, 2, 2, //19680 +2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, //19696 +0, 0, 0, 0, 0, 0, 0, -3, -3, -4, -4, -4, -5, -5, -5, -5, //19712 +-5, -6, -6, -5, -5, -5, -5, -5, -4, -4, -4, -3, -3, -2, -2, 0, //19728 +0, 0, 0, 0, 0, 0, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, //19744 +3, 3, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //19760 +0, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, 0, 0, 0, 0, 0, //19776 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //19792 +0, 0, 0, 0, 0, 0, 0, -2, -2, -2, -3, -3, -3, -3, -3, -3, //19808 +-4, -4, -4, -4, -4, -3, -3, -3, -3, -3, -2, -2, -2, 0, 0, 0, //19824 +0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, //19840 +2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, //19856 +-2, -2, -2, -2, -3, -3, -3, -3, -3, -3, -3, -3, -2, -2, -2, -2, //19872 +-2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, //19888 +2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //19904 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //19920 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //19936 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //19952 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //19968 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //19984 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20000 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20016 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20032 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20048 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20064 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20080 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20096 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20112 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20128 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20144 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20160 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20176 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20192 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20208 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20224 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20240 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20256 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20272 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20288 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20304 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20320 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20336 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20352 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20368 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20384 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20400 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20416 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20432 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20448 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20464 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20480 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20496 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20512 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20528 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20544 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20560 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20576 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20592 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20608 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20624 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20640 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20656 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20672 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20688 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20704 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20720 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20736 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20752 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20768 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20784 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20800 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20816 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20832 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20848 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20864 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20880 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20896 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20912 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20928 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20944 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20960 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20976 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //20992 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21008 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21024 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21040 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21056 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21072 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21088 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21104 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21120 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21136 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21152 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21168 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21184 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21200 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21216 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21232 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21248 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21264 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21280 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21296 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21312 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21328 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21344 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21360 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21376 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21392 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21408 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21424 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21440 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21456 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21472 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21488 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21504 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21520 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21536 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21552 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21568 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21584 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21600 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21616 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21632 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21648 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21664 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21680 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21696 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21712 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21728 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21744 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21760 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21776 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21792 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21808 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21824 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21840 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21856 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21872 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21888 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21904 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21920 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21936 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21952 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21968 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //21984 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22000 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5, -4, -4, //22016 --4, -4, -4, -4, -6, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, //22032 --8, -8, -8, -8, -8, -8, -7, -4, -4, -4, -4, -5, 0, 0, 0, 0, //22048 -2, 4, 4, 4, 4, 4, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, //22064 -8, 8, 8, 4, 4, 4, 4, 4, 3, 0, 0, 0, -5, -4, -4, -4, //22080 --9, -8, -8, -9, -12, -12, -12, -12, -12, -13, -16, -16, -16, -16, -15, -12, //22096 --12, -12, -12, -12, -13, -8, -8, -8, -6, -4, -4, -1, 0, 0, 2, 4, //22112 -4, 8, 8, 8, 9, 9, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, //22128 -13, 8, 8, 8, 9, 4, 4, 4, 0, 0, -2, -4, -4, -9, -8, -8, //22144 --13, -12, -12, -17, -16, -16, -16, -16, -16, -20, -20, -21, -16, -16, -16, -16, //22160 --16, -17, -12, -12, -12, -10, -8, -8, -7, -4, -4, -2, 0, 0, 1, 4, //22176 -4, 4, 4, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, //22192 -4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, -3, -4, -4, -4, //22208 --4, -4, -4, -4, -4, -4, -4, -4, -4, -5, 0, 0, 0, 0, 0, 0, //22224 -0, 0, 0, 0, 0, -5, -4, -4, -4, -4, -4, -5, -8, -8, -8, -8, //22240 --10, -12, -12, -12, -12, -15, -16, -16, -16, -16, -16, -16, -16, -16, -13, -13, //22256 --12, -12, -11, -8, -8, -4, -4, -2, 0, 4, 4, 4, 9, 8, 13, 12, //22272 -16, 16, 16, 16, 21, 21, 21, 21, 21, 21, 21, 21, 18, 17, 17, 17, //22288 -12, 12, 8, 9, 4, 5, -1, 0, -5, -4, -8, -9, -13, -12, -17, -16, //22304 --16, -21, -21, -20, -20, -20, -20, -20, -20, -20, -21, -21, -16, -16, -17, -12, //22320 --12, -13, -8, -8, -4, -4, -3, 0, 0, 3, 4, 4, 5, 8, 8, 8, //22336 -8, 8, 12, 13, 12, 12, 12, 11, 8, 8, 8, 8, 8, 8, 4, 4, //22352 -4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22368 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, //22384 --4, -4, -4, -4, -4, -4, -4, -4, -4, -9, -8, -8, -8, -8, -8, -8, //22400 --8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -7, -4, -4, -4, -4, -5, //22416 -0, 0, 0, 0, 0, 5, 4, 4, 4, 4, 4, 4, 9, 8, 8, 8, //22432 -8, 7, 4, 4, 4, 4, 4, 4, 4, 1, 0, 0, 0, 0, 0, -4, //22448 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //22464 --4, -4, -4, -4, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22480 -0, 0, 0, -2, -4, -4, -4, -4, -4, -4, -4, -8, -8, -8, -8, -8, //22496 --8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -7, -4, -4, -4, -4, -4, //22512 --3, 0, 0, 0, 0, -1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, //22528 -4, 4, 3, 0, 0, 0, 0, -1, -4, -4, -4, -6, -8, -8, -8, -8, //22544 --13, -12, -12, -12, -12, -12, -12, -12, -12, -12, -9, -8, -8, -8, -7, -4, //22560 --4, -1, 0, 0, 1, 4, 4, 7, 8, 8, 8, 8, 13, 12, 12, 12, //22576 -12, 12, 13, 8, 8, 8, 8, 4, 4, 5, 0, 0, -3, -4, -6, -8, //22592 --8, -12, -12, -15, -16, -16, -16, -21, -21, -20, -20, -20, -20, -20, -20, -21, //22608 --16, -17, -16, -12, -12, -10, -8, -8, -4, -4, 0, 0, 4, 4, 8, 8, //22624 -8, 13, 12, 12, 16, 16, 16, 17, 17, 17, 17, 16, 16, 15, 13, 13, //22640 -12, 10, 9, 9, 4, 4, 5, -1, 0, -1, -4, -4, -4, -9, -8, -8, //22656 --8, -13, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, //22672 --8, -8, -8, -8, -8, -8, -8, -8, -9, -4, -4, -4, -4, -4, -4, -4, //22688 --4, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 4, 4, 4, //22704 -4, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, //22720 -8, 8, 8, 8, 4, 4, 4, 4, 3, 0, 0, 1, -5, -4, -4, -8, //22736 --8, -8, -8, -13, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, //22752 --12, -8, -8, -8, -7, -4, -4, -5, 1, 0, 0, 4, 4, 4, 6, 8, //22768 -8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 4, 4, 4, //22784 -3, 0, 0, -3, -4, -4, -4, -8, -8, -8, -8, -9, -12, -12, -12, -12, //22800 --12, -12, -12, -12, -12, -10, -8, -8, -8, -8, -4, -4, -4, -4, 0, 0, //22816 --1, 5, 4, 4, 4, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, //22832 -4, 4, 4, 4, 0, 0, 0, 0, -1, -4, -4, -4, -9, -8, -8, -8, //22848 --8, -11, -12, -12, -12, -12, -12, -12, -13, -8, -8, -8, -8, -8, -8, -7, //22864 --4, -4, -4, -5, 0, 0, 0, 0, 0, 5, 4, 4, 4, 4, 4, 4, //22880 -4, 4, 4, 4, 4, 5, 0, 0, 0, 0, 0, 0, -4, -4, -4, -4, //22896 --4, -4, -5, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -5, //22912 --4, -4, -4, -4, -4, -4, -4, -5, 0, 0, 0, 0, 0, 0, 0, 0, //22928 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4, -4, -4, -4, -4, -4, //22944 --4, -4, -4, -6, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -9, -4, //22960 --4, -4, -4, -4, -4, -4, 0, 0, 0, 0, 0, 0, 0, 3, 4, 4, //22976 -4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 0, 0, 0, //22992 -0, 0, 0, -4, -4, -4, -4, -4, -4, -4, -7, -8, -8, -8, -8, -8, //23008 --8, -8, -8, -8, -8, -8, -8, -8, -8, -4, -4, -4, -4, -4, -4, -4, //23024 --4, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23040 -4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23056 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22016 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22032 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22048 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22064 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22080 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22096 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22112 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22128 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22144 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22160 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22176 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22192 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22208 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22224 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22240 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22256 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22272 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22288 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22304 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22320 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22336 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22352 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22368 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22384 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22400 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22416 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22432 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22448 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22464 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22480 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22496 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22512 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22528 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22544 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22560 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22576 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22592 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22608 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22624 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22640 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22656 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22672 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22688 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22704 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22720 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22736 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22752 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22768 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22784 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22800 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22816 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22832 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22848 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22864 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22880 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22896 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22912 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22928 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22944 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22960 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22976 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //22992 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23008 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23024 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23040 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23056 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23072 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23088 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23104 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23120 -0, -5, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //23136 --4, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 4, //23152 -4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, //23168 -0, 0, 0, 0, 0, -2, -4, -4, -4, -4, -4, -6, -8, -8, -8, -8, //23184 --8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -4, //23200 --4, -4, -4, -4, 0, 0, 0, 0, 1, 4, 4, 4, 4, 4, 4, 4, //23216 -4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, -1, -4, //23232 --4, -4, -7, -8, -8, -8, -8, -8, -13, -12, -12, -12, -12, -12, -12, -12, //23248 --12, -12, -9, -8, -8, -8, -8, -5, -4, -4, -5, 0, 0, 0, 0, 5, //23264 -4, 4, 4, 4, 7, 8, 8, 8, 8, 8, 8, 7, 4, 4, 4, 4, //23280 -5, 0, 0, 0, 0, -5, -4, -4, -4, -9, -8, -8, -8, -13, -12, -12, //23296 --12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -9, -8, -8, -8, -7, -4, //23312 --4, -4, -2, 0, 0, 0, 5, 4, 4, 4, 4, 4, 9, 8, 8, 8, //23328 -8, 8, 9, 4, 4, 4, 4, 4, 5, -1, 0, 0, 0, -5, -4, -4, //23344 --4, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, //23360 --8, -8, -4, -4, -4, -4, -5, 0, 0, 0, 0, -1, 4, 4, 4, 4, //23376 -4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 0, 0, 0, //23392 -0, -2, -4, -4, -4, -4, -9, -8, -8, -8, -8, -8, -8, -8, -8, -8, //23408 --8, -8, -8, -8, -8, -8, -8, -4, -4, -4, -4, 0, 0, 0, 0, 1, //23424 -4, 4, 4, 4, 4, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, //23440 -4, 4, 4, 4, 4, 3, 0, 0, 0, 0, -2, -4, -4, -4, -4, -4, //23456 --4, -8, -8, -8, -8, -8, -8, -8, -8, -8, -6, -4, -4, -4, -4, -4, //23472 --4, -4, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 4, 4, //23488 -4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23504 -0, -5, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -2, 0, 0, //23520 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23136 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23152 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23168 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23184 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23200 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23216 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23232 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23248 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23264 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23280 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23296 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23312 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23328 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23344 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23360 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23376 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23392 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23408 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23424 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23440 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23456 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23472 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23488 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23504 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23520 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23536 -0, 0, 0, -5, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -6, //23552 --8, -8, -8, -5, -4, -4, -4, -4, -4, -4, -4, -4, -5, 0, 0, 0, //23568 -0, 0, 0, 0, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, //23584 -4, 2, 0, 0, 0, 0, 0, 1, -4, -4, -4, -4, -4, -6, -8, -8, //23600 --8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -9, -4, //23616 --4, -4, -4, -4, -4, -3, 0, 0, 0, 0, 0, 0, 0, 5, 4, 4, //23632 -4, 4, 4, 4, 4, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23648 --2, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //23664 --4, -4, -4, -4, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23680 -0, 0, 0, 0, 0, 0, 0, -5, -4, -4, -4, -4, -4, -4, -4, -4, //23696 --4, -4, -4, -9, -8, -8, -8, -8, -8, -8, -7, -4, -4, -4, -4, -4, //23712 --4, -4, -4, -4, -3, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 4, //23728 -4, 4, 4, 4, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23744 --5, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //23760 --4, -4, -4, -4, -4, -4, -4, -4, -4, 0, 0, 0, 0, 0, 0, 0, //23776 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23552 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23568 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23584 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23600 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23616 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23632 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23648 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23664 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23680 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23696 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23712 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23728 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23744 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23760 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23776 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23792 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23808 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23824 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5, -4, -4, -4, -4, -4, //23840 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, 0, //23856 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 4, 4, 4, //23872 -4, 4, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4, //23888 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //23904 --4, -4, -4, -4, -4, -4, -4, -4, -4, -2, 0, 0, 0, 0, 0, 0, //23920 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23840 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23856 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23872 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23888 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23904 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23920 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23936 --5, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -5, 0, 0, 0, 0, //23952 -0, 0, 0, 0, 0, 0, 0, -1, 4, 4, 4, 4, 4, 4, 4, 4, //23968 -4, 4, 4, 5, 0, 0, 0, 0, 0, 0, -4, -4, -4, -4, -4, -4, //23984 --8, -8, -8, -8, -8, -8, -8, -11, -12, -12, -12, -12, -12, -12, -10, -8, //24000 --8, -8, -8, -8, -8, -7, -4, -4, -4, -5, 0, 0, 0, 0, 0, 5, //24016 -4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, //24032 --1, 0, 0, 0, 0, 0, 1, -4, -4, -4, -4, -4, -4, -4, -4, -4, //24048 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, 0, //24064 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, -4, -4, -4, //24080 --4, -4, -4, -4, -4, -4, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, //24096 --8, -8, -8, -4, -4, -4, -4, -4, -4, -5, 0, 0, 0, 0, 0, 2, //24112 -4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, //24128 -5, 0, 0, 0, 0, 0, -2, -4, -4, -4, -4, -4, -4, -4, -8, -8, //24144 --8, -8, -8, -8, -8, -8, -8, -6, -4, -4, -4, -4, -4, -4, -4, 0, //24160 -0, 0, 0, 0, 0, 0, 3, 4, 4, 4, 4, 4, 4, 4, 5, 0, //24176 -0, 0, 0, 0, 0, 0, -4, -4, -4, -4, -4, -4, -4, -4, -9, -8, //24192 --8, -8, -8, -8, -8, -9, -4, -4, -4, -4, -4, -4, -4, -1, 0, 0, //24208 -0, 0, 0, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, //24224 -4, 4, 4, 4, 4, 0, 0, 0, 0, 0, -3, -4, -4, -4, -4, -7, //24240 --8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -6, -4, -4, -4, //24256 --4, -4, 1, 0, 0, 0, 0, 3, 4, 4, 4, 4, 4, 4, 4, 4, //24272 -4, 4, 4, 4, 4, 4, 4, 4, 5, -1, 0, 0, 0, 0, -5, -4, //24288 --4, -4, -4, -9, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, //24304 --8, -8, -8, -8, -4, -4, -4, -4, 0, 0, 0, 0, 0, 1, 4, 4, //24320 -4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, //24336 -5, -1, 0, 0, 0, 0, -3, -4, -4, -4, -4, -4, -6, -8, -8, -8, //24352 --8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -4, -4, -4, -4, //24368 --4, -4, -4, -4, -4, -4, -4, -1, 0, 0, 0, 0, 0, 0, 0, 0, //24384 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -1, -3, 1, 0, //24400 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23952 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23968 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //23984 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24000 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24016 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24032 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24048 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24064 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24080 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24096 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24112 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24128 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24144 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24160 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24176 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24192 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24208 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24224 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24240 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24256 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24272 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24288 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24304 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24320 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24336 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24352 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24368 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24384 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24400 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24416 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -4, //24432 --4, -4, -4, -4, -4, -4, -4, -4, -4, -8, -8, -8, -8, -8, -8, -8, //24448 --8, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, 0, 0, 0, 0, 0, //24464 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24432 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24448 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24464 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24480 -0, 0, 0, -3, -4, -4, -4, -4, -4, -4, -4, -5, -8, -8, -8, -8, //24496 --8, -8, -8, -8, -8, -8, -9, -4, -4, -4, -4, -4, -4, -4, -4, 0, //24512 -0, 0, 0, 0, 0, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, //24528 -4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, -5, -4, -4, -4, //24544 --4, -4, -4, -4, -4, -4, -7, -8, -8, -9, -4, -4, -4, -4, -4, -4, //24560 --4, -4, -4, -4, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24576 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24496 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24512 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24528 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24544 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24560 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24576 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24592 -0, 0, 0, -3, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //24608 --4, -4, -4, -4, -4, -4, -4, -5, 0, 0, 0, 0, 0, 0, 0, 0, //24624 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24608 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24624 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24640 -0, 0, 0, 1, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //24656 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, 0, 0, 0, 0, //24672 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24656 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24672 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24688 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -5, -4, -4, -4, //24704 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //24720 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, 0, 0, 0, 0, 0, //24736 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24704 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24720 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24736 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24752 -0, 0, -5, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //24768 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -3, 0, 0, 0, 0, //24784 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -4, -4, -4, //24800 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //24816 --4, -4, -4, -4, -4, -4, -4, -5, -2, -1, 0, 0, 0, 0, 0, 0, //24832 -0, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //24848 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //24864 --4, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24880 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -4, -4, -4, //24896 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //24912 --4, -4, -4, -4, -4, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24928 -0, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 0, 0, 0, 0, 0, //24944 -0, 0, 0, 0, 0, -1, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //24960 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, 0, 0, //24976 -0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 4, 4, 4, 4, 1, //24992 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5, -4, -4, -4, -4, //25008 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //25024 --4, -4, -4, -4, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25040 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24768 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24784 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24800 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24816 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24832 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24848 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24864 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24880 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24896 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24912 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24928 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24944 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24960 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24976 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //24992 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25008 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25024 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25040 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25056 -0, 0, 0, 0, 0, 0, 0, 0, -4, -4, -4, -4, -4, -4, -4, -4, //25072 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //25088 --4, -4, -4, -4, -4, -4, -4, -5, 0, 0, 0, 0, 0, 0, 0, 0, //25104 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25072 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25088 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25104 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25120 -0, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //25136 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //25152 --5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 4, 4, 4, 4, //25168 -4, 4, 4, 4, 4, 4, 2, 0, 0, 0, 0, 0, 0, 0, -4, -4, //25184 --4, -4, -4, -4, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, //25200 --8, -8, -8, -8, -9, -4, -4, -4, -4, -4, -4, 0, 0, 0, 0, 0, //25216 -0, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, //25232 -0, 0, 0, 0, 0, 0, 0, -4, -4, -4, -4, -4, -4, -4, -7, -8, //25248 --8, -8, -8, -8, -8, -8, -8, -8, -4, -4, -4, -4, -4, -4, -4, -4, //25264 --4, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25280 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5, -4, -4, -4, //25296 --4, -4, -4, -4, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25312 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25136 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25152 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25168 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25184 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25200 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25216 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25232 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25248 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25264 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25280 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25296 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25312 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25328 -0, 0, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //25344 --4, -4, -4, -4, -4, -4, -4, -4, -4, 0, 0, 0, 0, 0, 0, 0, //25360 -0, 0, 1, 4, 4, 4, 4, 4, 4, 4, 4, 5, -1, 0, 0, 0, //25376 -0, 0, 0, 0, -1, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //25392 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -3, 0, 0, 0, 0, 0, //25408 -0, 0, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -1, 0, //25424 -0, 0, 0, 0, -5, -4, -4, -4, -4, -4, -9, -8, -8, -8, -8, -8, //25440 --8, -8, -8, -8, -8, -8, -8, -8, -4, -4, -4, -4, -4, -3, 0, 0, //25456 -0, 0, 5, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 9, 4, 4, //25472 -4, 4, 4, 4, 4, 0, 0, 0, 0, -4, -4, -4, -7, -8, -8, -8, //25488 --8, -11, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -9, -8, -8, -8, //25504 --8, -8, -4, -4, -4, -5, 0, 0, 0, 0, 2, 4, 4, 4, 4, 4, //25520 -4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 0, 0, 0, 0, -5, //25536 --4, -4, -4, -4, -7, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, //25552 --9, -4, -4, -4, -4, -4, -4, -2, 0, 0, 0, 0, 0, 0, 0, 0, //25568 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -4, -4, //25584 --4, -4, -4, -4, -4, -4, -4, -9, -8, -8, -8, -8, -8, -8, -8, -7, //25600 --4, -4, -4, -4, -4, -4, -4, 0, 0, 0, 0, 0, 0, 3, 4, 4, //25616 -4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 0, 0, 0, 0, 0, //25632 -0, -1, -4, -4, -4, -4, -4, -5, -8, -8, -8, -8, -8, -8, -8, -8, //25648 --8, -8, -8, -8, -5, -4, -4, -4, -4, -4, -4, -4, -2, 0, 0, 0, //25664 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25344 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25360 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25376 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25392 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25408 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25424 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25440 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25456 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25472 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25488 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25504 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25520 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25536 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25552 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25568 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25584 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25600 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25616 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25632 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25648 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25664 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25680 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25696 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25712 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -4, -4, -4, //25728 --4, -4, -4, -4, -7, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, //25744 --8, -9, -4, -4, -4, -4, -4, -4, -3, 0, 0, 0, 0, 0, 1, 4, //25760 -4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, //25776 -0, 0, 0, 0, 0, 0, 0, 0, -5, -4, -4, -4, -4, -4, -4, -4, //25792 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //25808 --3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25824 -0, 0, 0, 0, 0, 0, -5, -4, -4, -4, -4, -4, -4, -4, -4, -4, //25840 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -5, 0, //25856 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25728 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25744 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25760 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25776 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25792 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25808 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25824 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25840 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25856 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25872 -0, 0, 0, 0, 0, 0, 0, 0, -3, -4, -4, -4, -4, -4, -4, -4, //25888 --4, -4, -4, -4, -9, -8, -8, -8, -8, -8, -8, -8, -8, -8, -5, -4, //25904 --4, -4, -4, -4, -4, -4, -4, -4, 0, 0, 0, 0, 0, 0, 0, 0, //25920 -0, 0, 0, 4, 4, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25936 -0, 0, 1, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -9, -8, -8, //25952 --8, -8, -8, -8, -8, -8, -8, -6, -4, -4, -4, -4, -4, -4, -4, -5, //25968 -0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, //25984 -4, 4, 4, 1, 0, 0, 0, 0, 0, 0, -5, -4, -4, -4, -4, -4, //26000 --6, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -5, //26016 --4, -4, -4, -4, 0, 0, 0, -1, 4, 4, 4, 4, 4, 5, 8, 8, //26032 -8, 8, 8, 8, 8, 8, 8, 8, 7, 4, 4, 4, 4, 5, 0, 0, //26048 -0, 0, -5, -4, -4, -8, -8, -8, -8, -8, -12, -12, -12, -12, -12, -12, //26064 --12, -12, -12, -13, -8, -8, -8, -8, -9, -4, -4, -4, 0, 0, 0, 0, //26080 -5, 4, 4, 4, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, //26096 -8, 8, 8, 5, 4, 4, 4, 3, 0, 0, 0, -5, -4, -4, -8, -8, //26112 --8, -8, -8, -8, -8, -11, -12, -12, -11, -8, -8, -8, -8, -8, -8, -5, //26128 --4, -4, -4, -4, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, //26144 -4, 4, 4, 4, 4, 4, 4, 5, -1, 0, 0, 0, 0, 0, 0, -1, //26160 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //26176 --4, -4, -1, 0, 0, 0, 0, 0, 0, 0, -1, 5, 4, 4, 4, 4, //26192 -4, 4, 4, 0, 0, 0, 0, 0, 0, 0, -3, -4, -4, -4, -4, -4, //26208 --9, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, //26224 --8, -4, -4, -4, -4, -4, 0, 0, 0, 0, 0, 3, 4, 4, 4, 4, //26240 -4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 0, 0, 0, 0, 0, 0, //26256 --4, -4, -4, -4, -4, -5, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, //26272 --8, -8, -8, -8, -8, -8, -9, -4, -4, -4, -4, -4, -4, 0, 0, 0, //26288 -0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, //26304 -2, 0, 0, 0, 0, 0, 0, 1, -4, -4, -4, -4, -4, -4, -4, -4, //26320 --4, -4, -4, -9, -8, -8, -9, -4, -4, -4, -4, -4, -4, -4, -4, -4, //26336 --4, -4, -4, -4, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26352 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25888 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25904 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25920 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25936 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25952 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25968 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //25984 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26000 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26016 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26032 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26048 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26064 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26080 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26096 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26112 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26128 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26144 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26160 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26176 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26192 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26208 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26224 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26240 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26256 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26272 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26288 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26304 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26320 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26336 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26352 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26368 -0, 0, 0, -3, -2, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //26384 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //26400 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -1, 0, 0, 0, 0, 0, //26416 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26384 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26400 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26416 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26432 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -4, //26448 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, 0, 0, 0, //26464 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 4, 4, //26480 -4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5, -4, -4, -4, //26496 --4, -4, -4, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, //26512 --8, -9, -4, -4, -4, -4, -4, -4, -5, 0, 0, 0, 0, 0, 0, 0, //26528 -4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, -1, 0, //26544 -0, 0, 0, 0, 0, 0, 0, -4, -4, -4, -4, -4, -4, -4, -4, -4, //26560 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //26576 --4, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26592 -0, 0, 0, 0, 0, 0, -5, -4, -4, -4, -4, -4, -4, -4, -4, -4, //26608 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //26624 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //26640 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //26656 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, 1, 0, 0, 0, 0, 0, //26672 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26448 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26464 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26480 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26496 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26512 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26528 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26544 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26560 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26576 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26592 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26608 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26624 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26640 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26656 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26672 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26688 -0, 0, 0, 0, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //26704 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -3, //26720 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26704 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26720 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26736 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26752 -0, 0, 0, 0, 0, 0, 0, -1, -4, -4, -4, -4, -4, -4, -4, -4, //26768 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -5, 0, 0, 0, //26784 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26768 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26784 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26800 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26816 -0, 0, 0, 0, 0, 0, 0, -3, -4, -4, -4, -4, -4, -4, -4, -4, //26832 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -2, //26848 -0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, //26864 -4, 4, 4, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, -4, -4, //26880 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //26896 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, 0, 0, 0, 0, 0, //26912 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26832 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26848 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26864 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26880 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26896 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26912 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26928 -0, 0, 0, 0, 0, 0, 0, 0, 0, -5, -4, -4, -4, -4, -4, -4, //26944 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //26960 --1, -2, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //26976 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //26992 --4, -4, -4, -4, -4, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27008 -0, 0, 0, -2, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //27024 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -5, //27040 -1, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, //27056 -4, 4, 4, 4, 4, 1, 0, 0, 0, 0, 0, 0, -2, -4, -4, -4, //27072 --4, -4, -4, -4, -5, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, //27088 --8, -8, -4, -4, -4, -4, -4, -4, -4, -3, 0, 0, 0, 0, 0, 0, //27104 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, //27120 --5, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //27136 --4, -4, -4, -4, -4, -4, -4, -4, -4, -1, 0, 0, 0, 0, 0, 0, //27152 -0, 0, 1, 4, 4, 4, 4, 4, 5, 0, 0, 0, 0, 0, 0, 0, //27168 -0, 0, 1, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //27184 --4, -4, -4, -4, -4, -3, 0, 0, 0, 0, 0, 0, 0, 5, 4, 4, //27200 -4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, //27216 -0, 0, 0, 0, 0, 1, -4, -4, -4, -4, -4, -4, -4, -4, -7, -8, //27232 --8, -8, -8, -8, -4, -4, -4, -4, -4, -4, -4, -4, -5, 0, 0, 0, //27248 -0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, //27264 -0, 0, 0, 0, 0, 0, 0, -5, -4, -4, -4, -4, -4, -9, -8, -8, //27280 --8, -8, -8, -8, -8, -8, -8, -8, -8, -9, -4, -4, -4, -4, -4, -4, //27296 --4, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, //27312 -4, 4, 4, 4, 4, 4, 4, 3, 0, 0, 0, 0, 0, 0, 0, -5, //27328 --4, -4, -4, -4, -4, -4, -4, -9, -8, -8, -8, -8, -8, -8, -8, -8, //27344 --8, -9, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, 1, 0, 0, 0, //27360 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26944 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26960 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26976 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //26992 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27008 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27024 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27040 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27056 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27072 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27088 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27104 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27120 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27136 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27152 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27168 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27184 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27200 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27216 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27232 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27248 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27264 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27280 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27296 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27312 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27328 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27344 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27360 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27376 -0, 0, 0, 0, 0, 0, 0, 0, -5, -4, -4, -4, -4, -4, -4, -4, //27392 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //27408 --4, -4, -4, -4, -4, -4, -4, -4, 0, 0, 0, 0, 0, 0, 0, 0, //27424 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27392 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27408 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27424 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27440 -0, -2, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -5, -5, //27456 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -5, 0, 0, //27472 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27456 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27472 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27488 -0, 0, 0, 0, -2, -4, -4, -4, -4, -4, -4, -4, -8, -8, -8, -8, //27504 --8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -4, -4, -4, -4, -4, -4, //27520 --2, 0, 0, 0, 0, 0, -1, 5, 4, 4, 4, 4, 4, 4, 4, 4, //27536 -4, 4, 4, 4, 4, 4, 4, 4, 5, 0, 0, 0, 0, 0, 0, 0, //27552 -0, -5, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //27568 --4, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27584 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -4, -4, -4, -4, -4, //27600 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, 0, //27616 -0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 4, 4, 4, 4, 4, //27632 -4, 4, 4, 4, 4, 4, 4, 5, 0, 0, 0, 0, 0, 0, 0, -1, //27648 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //27664 --4, -4, -4, -4, -4, -4, -4, -4, -1, 0, 0, 0, 0, 0, 0, 0, //27680 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5, //27696 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //27712 --4, -4, -4, -4, -4, -4, -4, -4, -3, 0, 0, 0, 0, 0, 0, 0, //27728 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27504 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27520 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27536 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27552 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27568 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27584 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27600 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27616 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27632 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27648 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27664 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27680 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27696 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27712 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27728 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27744 -0, 0, -2, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //27760 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //27776 --4, -4, -4, -4, -4, -2, 0, 0, 0, 0, 1, -5, -4, -4, -4, -4, //27792 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //27808 --4, -4, -4, -4, -4, -4, -4, -2, 0, 0, 0, 0, 0, 0, 0, 0, //27824 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, -4, -4, -4, -4, //27840 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //27856 --4, -4, -4, -4, -4, -4, -4, -4, -1, 0, 0, 0, 0, 0, 0, 0, //27872 -0, 0, 0, 0, 0, 0, 0, 0, -4, -4, -4, -4, -4, -4, -4, -4, //27888 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //27904 --5, 1, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, //27920 -4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 0, 0, 0, 0, 0, 0, //27936 -0, -3, -4, -4, -4, -4, -4, -4, -4, -4, -4, -8, -8, -8, -9, -4, //27952 --4, -4, -4, -4, -4, -4, -4, -4, 0, 0, 0, 0, 0, 0, 5, 4, //27968 -4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, //27984 -2, 0, 0, 0, 0, 0, 1, -4, -4, -4, -4, -4, -4, -4, -8, -8, //28000 --8, -8, -8, -8, -8, -8, -9, -4, -4, -4, -4, -4, -4, -4, -3, 0, //28016 -0, 0, 0, 0, 0, 0, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, //28032 -4, 4, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4, -4, -4, -4, //28048 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //28064 --3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //28080 -0, 0, 0, 0, 0, 0, 1, -4, -4, -4, -4, -4, -4, -4, -4, -4, //28096 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //28112 --4, -4, -4, -4, -4, -4, -4, -4, -2, 0, 0, 0, 0, 0, 0, 0, //28128 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5, -4, -4, //28144 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //28160 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //28176 --4, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //28192 -0, 0, 0, 0, 0, 0, -3, -4, -4, -4, -4, -4, -4, -4, -4, -4, //28208 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //28224 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //28240 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //28256 --4, -4, -5, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //28272 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //28288 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //28304 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //28320 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //28336 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //28352 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //28368 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //28384 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //28400 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, -4, -4, -4, //28416 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //28432 --4, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //28448 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4, -4, //28464 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -6, -8, -7, -5, //28480 --5, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -2, 0, 0, //28496 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //28512 -0, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //28528 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //28544 --4, -4, -4, -4, -4, -4, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, //28560 -0, 0, 0, 1, -1, -5, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //28576 --4, -4, -4, -4, -4, -4, -4, -4, -4, -3, 0, 0, 0, 0, 0, 0, //28592 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5, -4, //28608 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //28624 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -3, 0, 0, 0, 0, //28640 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //28656 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //28672 -0, 0, 0, 0, 0, 0, 0, 1, -2, -3, 0, 0, 0, 0, 0, 0, //28688 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //28704 -0, 0, 0, 0, 0, 0, 0, -4, -4, -4, -4, -4, -4, -4, -4, -5, //28720 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //28736 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //28752 -0, 0, 0, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //28768 --4, -4, -4, -4, -4, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //28784 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //28800 -0, 0, 0, -5, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //28816 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //28832 --5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //28848 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5, -4, -4, -4, -4, //28864 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //28880 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //28896 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //28912 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -5, 0, 0, 0, 0, 0, //28928 -0, 0, 0, 0, 0, 0, 0, -1, -4, -4, -4, -4, -4, -4, -4, -4, //28944 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //28960 --4, -4, -4, -4, -4, -4, -4, -4, -4, -3, 0, 0, 0, 0, 0, 0, //28976 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //28992 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //29008 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //29024 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //29040 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //29056 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //29072 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -3, //29088 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //29104 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //29120 -0, 0, 0, 0, 0, -5, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //29136 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, 1, 0, 0, 0, //29152 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //29168 -0, 0, 0, 0, 0, -1, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //29184 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -1, 0, //29200 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //29216 -0, 0, 0, 0, 0, 0, -2, -4, -4, -4, -4, -4, -4, -4, -4, -8, //29232 --8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -4, -4, -4, -4, //29248 --4, -4, -4, -4, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //29264 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4, -4, -4, -4, -4, //29280 --4, -4, -4, -4, -4, -9, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, //29296 --6, -4, -4, -4, -4, -4, -4, -4, 0, 0, 0, 0, 0, 0, 0, 0, //29312 -0, 0, 0, 1, 4, 4, 4, 4, 5, 0, 0, 0, 0, 0, 0, 0, //29328 -0, 0, 0, 0, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //29344 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //29360 --4, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //29376 -0, 0, 0, 0, 0, 0, 0, 0, -4, -4, -4, -4, -4, -4, -4, -4, //29392 --4, -4, -4, -4, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //29408 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //29424 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //29440 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //29456 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, -4, //29472 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //29488 --1, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //29504 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //29520 -0, 0, 0, -1, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //29536 --4, -4, -4, -4, -4, -4, -4, -1, 0, 0, 0, 0, 0, 0, 0, 0, //29552 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //29568 -0, 0, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //29584 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -3, 0, 0, //29600 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //29616 -0, 0, -5, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //29632 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -1, 0, 0, //29648 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //29664 -0, 0, 0, 0, 0, -2, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //29680 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, 0, 0, //29696 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //29712 -0, 0, 0, 0, 0, -4, -4, -4, -4, -4, -4, -4, -4, -4, -9, -8, //29728 --8, -8, -8, -8, -8, -8, -8, -8, -6, -4, -4, -4, -4, -4, -4, -4, //29744 --4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, //29760 -4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -4, -4, -4, -4, //29776 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //29792 --4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 4, 4, //29808 -4, 4, 4, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //29824 -0, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //29840 --4, -4, -4, -4, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //29856 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4, -4, //29872 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //29888 --1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //29904 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -4, //29920 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //29936 --4, -4, -4, -4, -4, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //29952 -0, 1, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, //29968 -0, 0, -1, -4, -4, -4, -4, -4, -4, -4, -4, -7, -8, -8, -8, -8, //29984 --8, -8, -8, -8, -8, -8, -8, -9, -4, -4, -4, -4, -4, -4, -4, -4, //30000 --4, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //30016 -0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -4, -4, -4, -4, -4, -4, //30032 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //30048 --4, -4, -4, -4, -4, -4, -4, -3, 0, 0, 0, 0, 0, 0, 0, 0, //30064 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4, //30080 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -6, -4, //30096 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -5, 1, 0, //30112 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //30128 -0, 0, 0, 0, 0, 0, 0, 0, 0, -5, -4, -4, -4, -4, -4, -4, //30144 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //30160 --4, -4, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //30176 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //30192 -0, 0, 0, 0, 0, 0, 0, -5, -4, -4, -4, -4, -4, -4, -4, -4, //30208 --4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //30224 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //30240 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //30256 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4, //30272 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //30288 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, 0, 0, 0, //30304 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //30320 -0, 0, 0, 0, 0, 0, 0, -1, -4, -4, -4, -4, -4, -4, -4, -4, //30336 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -1, //30352 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //30368 -0, 0, 0, 0, 0, 0, -5, -4, -4, -4, -4, -4, -4, -4, -4, -4, //30384 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //30400 --4, -4, -4, -4, -4, -4, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, //30416 -0, 0, 0, 0, 0, 0, 0, 0, 0, -5, -4, -4, -4, -4, -4, -4, //30432 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //30448 --4, -4, -4, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //30464 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -4, -4, -4, -4, -4, //30480 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //30496 --4, -4, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //30512 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //30528 --5, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -3, 0, 0, //30544 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //30560 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //30576 -0, 0, 0, 0, 0, 0, 0, -3, -2, -4, -4, -4, -4, -4, -4, -4, //30592 --4, -4, -4, -5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //30608 -0, 0, 0, 0, 0, 0, 0, 0, -4, -4, -4, -4, -4, -4, -4, -4, //30624 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //30640 --1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //30656 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //30672 -0, 0, 0, 0, 0, 0, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //30688 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -2, -4, 0, 0, 0, //30704 -0, 0, 0, 0, 0, -5, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //30720 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //30736 --4, -4, -4, -4, -4, -4, -4, -4, -3, 0, 0, 0, 0, 0, 0, 0, //30752 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //30768 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //30784 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -2, //30800 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //30816 -0, 0, 0, 0, 0, 0, 1, -5, -4, -4, -4, -4, -4, -4, -4, -4, //30832 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //30848 --4, -4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //30864 -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -4, -4, -4, -4, //30880 --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, //30896 --4, -4, -5, -3, -2, 1, -2, 0, 0, 0, 0, 0, 0, 0, }; +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27760 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27776 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27792 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27808 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27824 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27840 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27856 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27872 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27888 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27904 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27920 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27936 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27952 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27968 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //27984 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //28000 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //28016 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //28032 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //28048 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //28064 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //28080 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //28096 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //28112 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //28128 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //28144 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //28160 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //28176 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //28192 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //28208 +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; diff --git a/tools/Audio2Header.html b/tools/Audio2Header.html index 3ac3e8b..ba2ddfa 100644 --- a/tools/Audio2Header.html +++ b/tools/Audio2Header.html @@ -3,7 +3,7 @@ window.AudioContext = window.AudioContext || window.webkitAudioContext; var context = new AudioContext(); -function audioBufferToText(audioBuffer, normalize, resample, sampleRate, fileType) +function audioBufferToText(audioBuffer, normalize, resample, removeNoiseFloor, sampleRate, fileType) { var buffer = audioBuffer.getChannelData(0); @@ -51,14 +51,23 @@ var max = 0; if(normalize) + { for(var i = 0; i < buffer.length; i++) max = Math.max(Math.abs(buffer[i]), max); + } if(max == 0) max = 1; + // Array output + var out = 0; for(var i = 0; i < buffer.length; i++) { - if((i & 15) == 0) text += "//" + i + "\r\n"; - text += Math.round(buffer[i] / max * 127) + ", "; + out = Math.round(buffer[i] / max * 127); + if(removeNoiseFloor) //removeNoiseFloor + { + if (out < 2 && out > -2) out = 0; + } + if((i & 15) == 0) text += "//" + i + "\r\n"; // new line with sample number + text += out + ", "; } text += "};\r\n"; return text; @@ -75,7 +84,7 @@ var link = document.createElement("a"); link.download = file.name.split('.', 1)[0] + ".h"; link.href = URL.createObjectURL(new Blob( - [audioBufferToText(buffer, document.getElementById("normalize").checked, document.getElementById("resample").checked, document.getElementById("samplerate").value)], {type: "text/plain"})); + [audioBufferToText(buffer, document.getElementById("normalize").checked, document.getElementById("resample").checked, document.getElementById("removeNoiseFloor").checked, document.getElementById("samplerate").value)], {type: "text/plain"})); document.body.appendChild(document.createElement("br")); document.body.appendChild(link); link.innerHTML = link.download; @@ -92,7 +101,7 @@ @@ -101,13 +110,18 @@

bitluni's audio to header converter

Modified by TheDIYGuy999 for my ESP32 RC Engine Sound & Light Controller

-1. Select the export file format (it is recommended to leave the settings as they are):
-normalize +

1. Select the export file format (it is recommended to leave the settings as they are):

+normalize (Use this, if your wav file does not use the entire dynamic range and is too silent) +
resample - +Hz (22050 Hz is standard) +

+ +

2. Select noise reduction options:

+remove noise floor (recommended for sounds with silent passages)

-2. Select the export file type you want (for idle, rev, horn etc. sound):
+

3. Select the export file type you want (for idle, rev, horn etc. sound):



-3. Open the unsigned 8bit PCM, 22050Hz wav file, which was previously made with Audacity:
+

4. Open the unsigned 8bit PCM, 22050Hz wav file, which was previously made with Audacity:



-4. Your .h file is generated and downloaded. -> Save it in /vehicles/sounds
+

5. Your .h file is generated and downloaded.

+ -> Save it in /vehicles/sounds
+ -> Add link to your vehicle file