diff --git a/boards/asterix/defconfig b/boards/asterix/defconfig index d748126a15..25413682e4 100644 --- a/boards/asterix/defconfig +++ b/boards/asterix/defconfig @@ -71,3 +71,5 @@ CONFIG_RNG_STUB=y CONFIG_ACCEL_SENSITIVITY=y CONFIG_ORIENTATION_MANAGER=y +# 1 MB code flash cannot fit the sampled sound pack +# CONFIG_NOTIFICATION_SOUND_SAMPLES is not set diff --git a/boards/getafix/defconfig b/boards/getafix/defconfig index e7c219aaca..da8c89fc78 100644 --- a/boards/getafix/defconfig +++ b/boards/getafix/defconfig @@ -79,3 +79,5 @@ CONFIG_ACCEL_SENSITIVITY=y CONFIG_APP_SCALING=y CONFIG_ORIENTATION_MANAGER=y CONFIG_MODDABLE_XS=y +# 1 MB code flash cannot fit the sampled sound pack +# CONFIG_NOTIFICATION_SOUND_SAMPLES is not set diff --git a/include/pbl/services/notifications/alerts.h b/include/pbl/services/notifications/alerts.h index 0a665c6f5b..81d1e2456b 100644 --- a/include/pbl/services/notifications/alerts.h +++ b/include/pbl/services/notifications/alerts.h @@ -27,6 +27,12 @@ bool alerts_should_enable_backlight_for_type(AlertType type); bool alerts_should_vibrate_for_type(AlertType type); +//! Whether the notification sound should play for this alert. Master alert +//! gating and DND follow the vibe rules, but the on-charger suppression does +//! not apply: a docked watch can still usefully chirp. Speaker mute and +//! volume are enforced downstream by the speaker service. +bool alerts_should_play_sound_for_type(AlertType type); + //! When vibrating for an incoming notification, call this function to prevent multiple vibes //! within a short period of time. void alerts_set_notification_vibe_timestamp(); diff --git a/include/pbl/services/notifications/alerts_preferences.h b/include/pbl/services/notifications/alerts_preferences.h index b6c7b5f299..399558aefb 100644 --- a/include/pbl/services/notifications/alerts_preferences.h +++ b/include/pbl/services/notifications/alerts_preferences.h @@ -7,6 +7,7 @@ #include #include "alerts_private.h" +#include "pbl/services/notifications/notification_sounds.h" typedef enum FirstUseSource { FirstUseSourceManualDNDActionMenu = 0, @@ -79,6 +80,14 @@ void alerts_preferences_set_speaker_volume(uint8_t volume); //! @return The system-wide speaker volume cap (0-100). Defaults to 100. uint8_t alerts_preferences_get_speaker_volume(void); +//! Set the sound played when a notification arrives. +void alerts_preferences_set_notification_sound(NotificationSound sound); + +//! @return The sound played when a notification arrives. Defaults to +//! NotificationSound_None (silent); out-of-range stored values also read +//! back as None. +NotificationSound alerts_preferences_get_notification_sound(void); + //! Checks whether a given "first use" dialog has been shown and sets it as complete //! @param source The "first use" bit to check //! @return true if the dialog has already been shown, false otherwise diff --git a/include/pbl/services/notifications/notification_sounds.h b/include/pbl/services/notifications/notification_sounds.h new file mode 100644 index 0000000000..741ac9ae77 --- /dev/null +++ b/include/pbl/services/notifications/notification_sounds.h @@ -0,0 +1,43 @@ +/* SPDX-FileCopyrightText: 2026 Core Devices LLC */ +/* SPDX-License-Identifier: Apache-2.0 */ + +#pragma once + +#include "pbl/services/speaker/note_sequence.h" + +#include + +//! Short chirps played when a notification arrives, deliberately briefer than +//! the alarm tones: a notification sound must not outstay the vibe. +typedef enum NotificationSound { + NotificationSound_None = 0, + NotificationSound_Ping, + NotificationSound_Doorbell, + NotificationSound_Trill, + NotificationSound_Ascent, + NotificationSound_Glass, // replaced Bell; existing stored prefs map here + NotificationSound_Pop, + NotificationSound_Kalimba, + NotificationSound_Coin, + NotificationSound_Sonar, + NotificationSound_Bounce, + NotificationSound_Chirp, + NotificationSound_Bloom, + NotificationSound_Sparkle, + NotificationSound_Count, +} NotificationSound; + +//! Play a notification sound on the speaker at the given volume. Synthesized +//! sounds go through the note-sequence source; sampled sounds (e.g. Bell) +//! through the track player. Out-of-range values fall back to Ping; +//! NotificationSound_None is a no-op. +//! @return true if playback started. +bool notification_sounds_play(NotificationSound sound, uint8_t volume); + +//! Get the i18n_noop()'d display name for a sound (including "Off" for None). +//! Caller wraps with i18n_get() at display time. +const char *notification_sounds_get_name(NotificationSound sound); + +//! Next sound in the cycle order for the settings UI, wrapping from the last +//! sound back to None. +NotificationSound notification_sounds_cycle_next(NotificationSound sound); diff --git a/src/fw/apps/system/settings/notifications.c b/src/fw/apps/system/settings/notifications.c index bc133d4315..bc465c0172 100644 --- a/src/fw/apps/system/settings/notifications.c +++ b/src/fw/apps/system/settings/notifications.c @@ -13,8 +13,10 @@ #include "applib/ui/ui.h" #include "kernel/pbl_malloc.h" #include "pbl/services/i18n/i18n.h" +#include "pbl/services/notifications/alerts_preferences.h" #include "pbl/services/notifications/alerts_preferences_private.h" #include "pbl/services/notifications/alerts_private.h" +#include "pbl/services/notifications/notification_sounds.h" #include "system/passert.h" #include "pbl/util/size.h" #include "util/time/time.h" @@ -22,6 +24,12 @@ // Offset between vibe intensity menu item index and vibe intensity enum values #define INTENSITY_ROW_OFFSET 1 +#ifdef CONFIG_SPEAKER +//! Matches NOTIFICATION_SOUND_VOLUME in notification_window.c so the preview +//! is heard at the volume the real notification will use. +#define NOTIFICATION_SOUND_PREVIEW_VOLUME 50 +#endif + typedef struct { SettingsCallbacks callbacks; EventServiceInfo battery_connection_event_info; @@ -33,6 +41,9 @@ enum NotificationsItem { NotificationsItemWindowTimeout, #if PBL_BW NotificationsItemDesignStyle, +#endif +#ifdef CONFIG_SPEAKER + NotificationsItemSound, #endif NotificationsItemVibeDelay, NotificationsItemBacklight, @@ -328,6 +339,14 @@ static void prv_draw_row_cb(SettingsCallbacks *context, GContext *ctx, const Lay break; } #endif /* PBL_BW */ +#ifdef CONFIG_SPEAKER + case NotificationsItemSound: { + /// String within Settings->Notifications that selects the notification sound + title = i18n_noop("Sound"); + subtitle = notification_sounds_get_name(alerts_preferences_get_notification_sound()); + break; + } +#endif /* CONFIG_SPEAKER */ case NotificationsItemVibeDelay: { /// String within Settings->Notifications that describes when vibration happens title = i18n_noop("Vibe Timing"); @@ -378,6 +397,18 @@ static void prv_select_click_cb(SettingsCallbacks *context, uint16_t row) { prv_design_style_menu_push(data); break; #endif /* PBL_BW */ +#ifdef CONFIG_SPEAKER + case NotificationsItemSound: { + const NotificationSound sound = + notification_sounds_cycle_next(alerts_preferences_get_notification_sound()); + alerts_preferences_set_notification_sound(sound); + if (sound != NotificationSound_None) { + // Preview the newly selected sound + notification_sounds_play(sound, NOTIFICATION_SOUND_PREVIEW_VOLUME); + } + break; + } +#endif /* CONFIG_SPEAKER */ case NotificationsItemVibeDelay: prv_vibe_delay_menu_push(data); break; diff --git a/src/fw/apps/system/settings/vibe_patterns.c b/src/fw/apps/system/settings/vibe_patterns.c index ff13052f47..576697a52e 100644 --- a/src/fw/apps/system/settings/vibe_patterns.c +++ b/src/fw/apps/system/settings/vibe_patterns.c @@ -132,7 +132,7 @@ static void prv_selection_changed_cb(SettingsCallbacks *context, uint16_t new_ro #ifdef CONFIG_SPEAKER case VibeSettingsRow_MuteSpeaker: case VibeSettingsRow_SpeakerVolume: { - // No vibe preview — this row controls a non-vibe setting. + // No vibe preview — these rows control non-vibe settings. return; } #endif diff --git a/src/fw/popups/notifications/notification_window.c b/src/fw/popups/notifications/notification_window.c index c59d4054e0..33a26163c4 100644 --- a/src/fw/popups/notifications/notification_window.c +++ b/src/fw/popups/notifications/notification_window.c @@ -36,6 +36,7 @@ #include "pbl/services/blob_db/reminder_db.h" #include "pbl/services/notifications/alerts.h" #include "pbl/services/notifications/alerts_preferences.h" +#include "pbl/services/notifications/notification_sounds.h" #include "pbl/services/notifications/alerts_preferences_private.h" #include "pbl/services/notifications/alerts_private.h" #include "pbl/services/notifications/ancs/ancs_filtering.h" @@ -84,6 +85,7 @@ static void prv_handle_notification_removed_common(Uuid *, NotificationType); static bool prv_should_pop_due_to_inactivity(void); static void prv_do_notification_vibe(NotificationWindowData *data, Uuid *id); +static void prv_do_notification_sound(void); ///////////////////// // Helpers @@ -302,6 +304,10 @@ static void prv_peek_anim_stopped(Animation *animation, bool finished, void *con data->pending_vibe = false; prv_do_notification_vibe(data, &data->pending_vibe_id); } + if (data->pending_sound) { + data->pending_sound = false; + prv_do_notification_sound(); + } if (data->pending_backlight) { data->pending_backlight = false; if (!data->color_preempted) { @@ -321,6 +327,10 @@ static void prv_hide_peek_layer(void *context) { data->pending_vibe = false; prv_do_notification_vibe(data, &data->pending_vibe_id); } + if (data->pending_sound) { + data->pending_sound = false; + prv_do_notification_sound(); + } if (data->pending_backlight) { data->pending_backlight = false; if (!data->color_preempted) { @@ -1101,6 +1111,7 @@ static void prv_window_unload(Window *window) { vibes_cancel(); data->pending_vibe = false; + data->pending_sound = false; if (data->color_preempted) { data->color_preempted = false; light_system_color_release(); @@ -1290,6 +1301,7 @@ static void prv_init_notification_window(bool is_modal) { data->action_menu = NULL; data->dnd_icon_visible = false; data->pending_vibe = false; + data->pending_sound = false; Window *window = &data->window; window_init(window, "Notification Window"); @@ -1486,6 +1498,20 @@ static void prv_handle_notification_acted_upon(Uuid *id) { } } +//! Notification chirps play noticeably quieter than alarms: they announce, +//! they don't wake. +#define NOTIFICATION_SOUND_VOLUME 50 + +static void prv_do_notification_sound(void) { + if (notification_sounds_play(alerts_preferences_get_notification_sound(), + NOTIFICATION_SOUND_VOLUME)) { + // Stamp the shared holdoff clock so sound-only setups (vibe disabled) + // still get storm throttling. Callers evaluate both alert gates before + // firing either, so this cannot suppress this notification's own vibe. + alerts_set_notification_vibe_timestamp(); + } +} + static void prv_do_notification_vibe(NotificationWindowData *data, Uuid *id) { PBL_LOG_DBG("Notification vibe: do_vibe called"); TimelineItem *item = prv_get_current_notification(data); @@ -1581,7 +1607,14 @@ static void prv_handle_notification_added_common(Uuid *id, NotificationType type } } - if (alerts_should_vibrate_for_type(prv_alert_type_for_notification_type(type))) { + // Evaluate both gates before acting on either: firing the vibe (or sound) + // stamps the shared holdoff timestamp, which would otherwise suppress the + // other alert for this same notification. + const AlertType alert_type = prv_alert_type_for_notification_type(type); + const bool should_vibe = alerts_should_vibrate_for_type(alert_type); + const bool should_sound = alerts_should_play_sound_for_type(alert_type); + + if (should_vibe) { // Check if we should delay the vibration until the animation completes if (alerts_preferences_get_notification_vibe_delay() && data->peek_layer) { // Delay vibration until peek animation finishes @@ -1593,6 +1626,15 @@ static void prv_handle_notification_added_common(Uuid *id, NotificationType type } } + if (should_sound) { + // Sound follows the same delay-until-peek-settles choice as the vibe + if (alerts_preferences_get_notification_vibe_delay() && data->peek_layer) { + data->pending_sound = true; + } else { + prv_do_notification_sound(); + } + } + if (alerts_should_enable_backlight_for_type(prv_alert_type_for_notification_type(type))) { // Check if we should delay the backlight until the animation completes (same as vibe delay) if (alerts_preferences_get_notification_vibe_delay() && data->peek_layer) { diff --git a/src/fw/popups/notifications/notification_window_private.h b/src/fw/popups/notifications/notification_window_private.h index 6a95585539..872481f769 100644 --- a/src/fw/popups/notifications/notification_window_private.h +++ b/src/fw/popups/notifications/notification_window_private.h @@ -53,6 +53,7 @@ typedef struct NotificationWindowData { bool pending_vibe; Uuid pending_vibe_id; bool pending_backlight; + bool pending_sound; // Set once we've pushed a modal color preempt for this notification's // backlight pulse, so window_unload knows to balance it with a pop. diff --git a/src/fw/services/notifications/CMakeLists.txt b/src/fw/services/notifications/CMakeLists.txt index 10ea3baca7..d5e9c4eaf0 100644 --- a/src/fw/services/notifications/CMakeLists.txt +++ b/src/fw/services/notifications/CMakeLists.txt @@ -14,6 +14,7 @@ set(sources do_not_disturb.c do_not_disturb_toggle.c notification_image.c + notification_sounds.c notification_storage.c notifications.c ) diff --git a/src/fw/services/notifications/Kconfig b/src/fw/services/notifications/Kconfig index 2027de6a05..618fcfe580 100644 --- a/src/fw/services/notifications/Kconfig +++ b/src/fw/services/notifications/Kconfig @@ -8,6 +8,15 @@ config SERVICE_NOTIFICATIONS if SERVICE_NOTIFICATIONS +config NOTIFICATION_SOUND_SAMPLES + bool "Sampled notification sounds" + depends on SPEAKER + default y + help + Include the sampled (PCM) notification sounds. Costs ~55 KB of code + flash; boards with a 1 MB code budget keep only the synthesized + chirps. + module = SERVICE_NOTIFICATIONS module-str = Notifications source "subsys/logging/Kconfig.template.log_level" diff --git a/src/fw/services/notifications/alerts.c b/src/fw/services/notifications/alerts.c index 3d3d12ce96..9a1ccddc5e 100644 --- a/src/fw/services/notifications/alerts.c +++ b/src/fw/services/notifications/alerts.c @@ -80,6 +80,29 @@ bool alerts_should_vibrate_for_type(AlertType type) { return alerts_preferences_get_vibrate(); } +bool alerts_should_play_sound_for_type(AlertType type) { + if (alerts_preferences_get_notification_sound() == NotificationSound_None) { + return false; + } + + if (do_not_disturb_is_active() && !(alerts_preferences_dnd_get_mask() & type)) { + return false; + } + + if (!alerts_should_notify_for_type(type)) { + return false; + } + + // Reuse the vibe holdoff so a notification storm doesn't chirp continuously. + // Unlike vibes, sounds still play on the charger: the watch may be off-wrist + // where a vibe would go unnoticed but a chirp would not. + if (prv_get_ms_since_last_notification_vibe() < NOTIFICATION_VIBE_HOLDOFF_MS) { + return false; + } + + return true; +} + bool alerts_get_vibrate(void) { return alerts_preferences_get_vibrate(); } diff --git a/src/fw/services/notifications/alerts_preferences.c b/src/fw/services/notifications/alerts_preferences.c index 7a08903c95..4d646c1813 100644 --- a/src/fw/services/notifications/alerts_preferences.c +++ b/src/fw/services/notifications/alerts_preferences.c @@ -49,6 +49,9 @@ static bool s_speaker_muted = false; #define PREF_KEY_SPEAKER_VOLUME "speakerVolume" static uint8_t s_speaker_volume = 100; +#define PREF_KEY_NOTIFICATION_SOUND "notificationSound" +static uint8_t s_notification_sound = NotificationSound_None; + #define PREF_KEY_VIBE "vibe" static bool s_vibe_on_notification = true; @@ -327,6 +330,7 @@ void alerts_preferences_init(void) { RESTORE_PREF(PREF_KEY_DND_MUTE_SPEAKER, s_dnd_mute_speaker); RESTORE_PREF(PREF_KEY_SPEAKER_MUTED, s_speaker_muted); RESTORE_PREF(PREF_KEY_SPEAKER_VOLUME, s_speaker_volume); + RESTORE_PREF(PREF_KEY_NOTIFICATION_SOUND, s_notification_sound); RESTORE_PREF(PREF_KEY_LEGACY_DND_SCHEDULE, s_legacy_dnd_schedule); RESTORE_PREF(PREF_KEY_LEGACY_DND_SCHEDULE_ENABLED, s_legacy_dnd_schedule_enabled); RESTORE_PREF(s_dnd_schedule_keys[WeekdaySchedule].schedule_pref_key, @@ -478,6 +482,18 @@ void alerts_preferences_set_speaker_volume(uint8_t volume) { SET_PREF(PREF_KEY_SPEAKER_VOLUME, s_speaker_volume); } +NotificationSound alerts_preferences_get_notification_sound(void) { + if (s_notification_sound >= NotificationSound_Count) { + return NotificationSound_None; + } + return (NotificationSound)s_notification_sound; +} + +void alerts_preferences_set_notification_sound(NotificationSound sound) { + s_notification_sound = sound; + SET_PREF(PREF_KEY_NOTIFICATION_SOUND, s_notification_sound); +} + /////////////////////////////////////////////////////////////////////////////////////////////////// //! Vibes diff --git a/src/fw/services/notifications/notification_sounds.c b/src/fw/services/notifications/notification_sounds.c new file mode 100644 index 0000000000..621e4da5e1 --- /dev/null +++ b/src/fw/services/notifications/notification_sounds.c @@ -0,0 +1,245 @@ +/* SPDX-FileCopyrightText: 2026 Core Devices LLC */ +/* SPDX-License-Identifier: Apache-2.0 */ + +#include "pbl/services/notifications/notification_sounds.h" + +#include "pbl/services/i18n/i18n.h" +#include "pbl/services/speaker/speaker_service.h" +#include "pbl/services/speaker/track.h" + +#define NOTE(midi, wave, ms) \ + {.midi_note = (midi), .waveform = (wave), .duration_ms = (ms), .velocity = 0, .reserved = 0} + +// MIDI: C5=72, E5=76, G5=79, B5=83, C6=84. + +// Ping — a single soft sine C6. The least intrusive option. +static const SpeakerNote s_ping[] = { + NOTE(84, SpeakerWaveformSine, 200), +}; + +// Doorbell — classic two-note ding-dong, E5 down to C5. +static const SpeakerNote s_doorbell[] = { + NOTE(76, SpeakerWaveformSine, 250), + NOTE(0, SpeakerWaveformSine, 40), + NOTE(72, SpeakerWaveformSine, 400), +}; + +// Trill — SMS-style double beep on B5 squares. +static const SpeakerNote s_trill[] = { + NOTE(83, SpeakerWaveformSquare, 80), + NOTE(0, SpeakerWaveformSquare, 50), + NOTE(83, SpeakerWaveformSquare, 80), +}; + +// Ascent — quick rising triangle flourish, C5-E5-G5. +static const SpeakerNote s_ascent[] = { + NOTE(72, SpeakerWaveformTriangle, 100), + NOTE(76, SpeakerWaveformTriangle, 100), + NOTE(79, SpeakerWaveformTriangle, 220), +}; + +#undef NOTE + +#if CONFIG_NOTIFICATION_SOUND_SAMPLES + +#include "notification_sounds_pcm.inc" + +// Sampled sounds play through the track player. The note pitches the sample; +// at the sample's base note it plays unshifted, and its duration covers the +// full one-shot (waveform is ignored for sampled tracks). +static const SpeakerSample s_glass_sample = { + .data = s_glass_pcm, + .num_bytes = sizeof(s_glass_pcm), + .format = SpeakerPcmFormat_16kHz_8bit, + .base_midi_note = 95, // B6, the sample's own fundamental + .loop = false, +}; + +static const SpeakerNote s_glass_notes[] = { + {.midi_note = 95, .waveform = 0, .duration_ms = 280, .velocity = 0, .reserved = 0}, +}; + +static const SpeakerSample s_pop_sample = { + .data = s_pop_pcm, + .num_bytes = sizeof(s_pop_pcm), + .format = SpeakerPcmFormat_16kHz_8bit, + .base_midi_note = 91, // G6, the ding the chirp lands on + .loop = false, +}; + +static const SpeakerNote s_pop_notes[] = { + {.midi_note = 91, .waveform = 0, .duration_ms = 270, .velocity = 0, .reserved = 0}, +}; + +static const SpeakerSample s_kalimba_sample = { + .data = s_kalimba_pcm, + .num_bytes = sizeof(s_kalimba_pcm), + .format = SpeakerPcmFormat_16kHz_8bit, + .base_midi_note = 81, + .loop = false, +}; + +static const SpeakerNote s_kalimba_notes[] = { + {.midi_note = 81, .waveform = 0, .duration_ms = 550, .velocity = 0, .reserved = 0}, +}; + +static const SpeakerSample s_coin_sample = { + .data = s_coin_pcm, + .num_bytes = sizeof(s_coin_pcm), + .format = SpeakerPcmFormat_16kHz_8bit, + .base_midi_note = 88, + .loop = false, +}; + +static const SpeakerNote s_coin_notes[] = { + {.midi_note = 88, .waveform = 0, .duration_ms = 430, .velocity = 0, .reserved = 0}, +}; + +static const SpeakerSample s_sonar_sample = { + .data = s_sonar_pcm, + .num_bytes = sizeof(s_sonar_pcm), + .format = SpeakerPcmFormat_16kHz_8bit, + .base_midi_note = 78, + .loop = false, +}; + +static const SpeakerNote s_sonar_notes[] = { + {.midi_note = 78, .waveform = 0, .duration_ms = 580, .velocity = 0, .reserved = 0}, +}; + +static const SpeakerSample s_bounce_sample = { + .data = s_bounce_pcm, + .num_bytes = sizeof(s_bounce_pcm), + .format = SpeakerPcmFormat_16kHz_8bit, + .base_midi_note = 84, + .loop = false, +}; + +static const SpeakerNote s_bounce_notes[] = { + {.midi_note = 84, .waveform = 0, .duration_ms = 470, .velocity = 0, .reserved = 0}, +}; + +static const SpeakerSample s_chirp_sample = { + .data = s_chirp_pcm, + .num_bytes = sizeof(s_chirp_pcm), + .format = SpeakerPcmFormat_16kHz_8bit, + .base_midi_note = 101, + .loop = false, +}; + +static const SpeakerNote s_chirp_notes[] = { + {.midi_note = 101, .waveform = 0, .duration_ms = 270, .velocity = 0, .reserved = 0}, +}; + +static const SpeakerSample s_bloom_sample = { + .data = s_bloom_pcm, + .num_bytes = sizeof(s_bloom_pcm), + .format = SpeakerPcmFormat_16kHz_8bit, + .base_midi_note = 72, + .loop = false, +}; + +static const SpeakerNote s_bloom_notes[] = { + {.midi_note = 72, .waveform = 0, .duration_ms = 600, .velocity = 0, .reserved = 0}, +}; + +static const SpeakerSample s_sparkle_sample = { + .data = s_sparkle_pcm, + .num_bytes = sizeof(s_sparkle_pcm), + .format = SpeakerPcmFormat_16kHz_8bit, + .base_midi_note = 100, + .loop = false, +}; + +static const SpeakerNote s_sparkle_notes[] = { + {.midi_note = 100, .waveform = 0, .duration_ms = 500, .velocity = 0, .reserved = 0}, +}; + +#endif // CONFIG_NOTIFICATION_SOUND_SAMPLES + +static const struct { + const SpeakerNote *notes; + uint32_t count; + const char *name; + const SpeakerSample *sample; // non-NULL: play via the track player +} s_sounds[NotificationSound_Count] = { + [NotificationSound_None] = {NULL, 0, i18n_noop("Off")}, + [NotificationSound_Ping] = {s_ping, sizeof(s_ping) / sizeof(s_ping[0]), i18n_noop("Ping")}, + [NotificationSound_Doorbell] = + {s_doorbell, sizeof(s_doorbell) / sizeof(s_doorbell[0]), i18n_noop("Doorbell")}, + [NotificationSound_Trill] = {s_trill, sizeof(s_trill) / sizeof(s_trill[0]), i18n_noop("Trill")}, + [NotificationSound_Ascent] = + {s_ascent, sizeof(s_ascent) / sizeof(s_ascent[0]), i18n_noop("Ascent")}, +#if CONFIG_NOTIFICATION_SOUND_SAMPLES + [NotificationSound_Glass] = + {s_glass_notes, sizeof(s_glass_notes) / sizeof(s_glass_notes[0]), i18n_noop("Glass"), + &s_glass_sample}, + [NotificationSound_Pop] = + {s_pop_notes, sizeof(s_pop_notes) / sizeof(s_pop_notes[0]), i18n_noop("Pop"), &s_pop_sample}, + [NotificationSound_Kalimba] = + {s_kalimba_notes, sizeof(s_kalimba_notes) / sizeof(s_kalimba_notes[0]), i18n_noop("Kalimba"), + &s_kalimba_sample}, + [NotificationSound_Coin] = + {s_coin_notes, sizeof(s_coin_notes) / sizeof(s_coin_notes[0]), i18n_noop("Coin"), + &s_coin_sample}, + [NotificationSound_Sonar] = + {s_sonar_notes, sizeof(s_sonar_notes) / sizeof(s_sonar_notes[0]), i18n_noop("Sonar"), + &s_sonar_sample}, + [NotificationSound_Bounce] = + {s_bounce_notes, sizeof(s_bounce_notes) / sizeof(s_bounce_notes[0]), i18n_noop("Bounce"), + &s_bounce_sample}, + [NotificationSound_Chirp] = + {s_chirp_notes, sizeof(s_chirp_notes) / sizeof(s_chirp_notes[0]), i18n_noop("Chirp"), + &s_chirp_sample}, + [NotificationSound_Bloom] = + {s_bloom_notes, sizeof(s_bloom_notes) / sizeof(s_bloom_notes[0]), i18n_noop("Bloom"), + &s_bloom_sample}, + [NotificationSound_Sparkle] = { + s_sparkle_notes, sizeof(s_sparkle_notes) / sizeof(s_sparkle_notes[0]), i18n_noop("Sparkle"), + &s_sparkle_sample + }, +#endif // CONFIG_NOTIFICATION_SOUND_SAMPLES +}; + +_Static_assert(NotificationSound_Sparkle + 1 == NotificationSound_Count, + "notification_sounds table must cover every NotificationSound enum value"); + +//! Sampled sounds are compiled out on flash-constrained boards +//! (CONFIG_NOTIFICATION_SOUND_SAMPLES=n), leaving zeroed table rows. +static bool prv_sound_is_available(NotificationSound sound) { + return (sound == NotificationSound_None) || (s_sounds[sound].notes != NULL); +} + +bool notification_sounds_play(NotificationSound sound, uint8_t volume) { + if (sound == NotificationSound_None) { + return false; + } + if ((unsigned)sound >= NotificationSound_Count || !prv_sound_is_available(sound)) { + sound = NotificationSound_Ping; + } + if (s_sounds[sound].sample) { + const SpeakerTrack track = { + .notes = s_sounds[sound].notes, + .num_notes = s_sounds[sound].count, + .sample = s_sounds[sound].sample, + }; + return speaker_service_play_tracks(&track, 1, SpeakerPriorityNotification, volume); + } + return speaker_service_play_note_seq(s_sounds[sound].notes, s_sounds[sound].count, + SpeakerPriorityNotification, volume); +} + +const char *notification_sounds_get_name(NotificationSound sound) { + if ((unsigned)sound >= NotificationSound_Count || !prv_sound_is_available(sound)) { + sound = NotificationSound_Ping; + } + return s_sounds[sound].name; +} + +NotificationSound notification_sounds_cycle_next(NotificationSound sound) { + NotificationSound next = sound; + do { + next = (NotificationSound)(((unsigned)next + 1) % NotificationSound_Count); + } while (!prv_sound_is_available(next) && next != sound); + return next; +} diff --git a/src/fw/services/notifications/notification_sounds_pcm.inc b/src/fw/services/notifications/notification_sounds_pcm.inc new file mode 100644 index 0000000000..2a6626f7fe --- /dev/null +++ b/src/fw/services/notifications/notification_sounds_pcm.inc @@ -0,0 +1,3982 @@ +// Generated audio data (additive/FM synthesis rendered offline). +// All arrays are mono signed 8-bit PCM at 16 kHz. + +// Glass tink: three inharmonic partials on B6, fast per-partial decay. +static const int8_t s_glass_pcm[4479] = { + 0, 3, 4, 1, 6, -8, -17, -16, 13, 2, 21, 22, 16, -41, -23, -18, + -8, 3, 61, 41, -13, -22, -30, -51, -41, 65, 53, 38, 4, 17, -104, -66, + -11, 62, 15, 87, 44, -40, -99, -30, -19, -10, 78, 91, 19, -61, -18, -77, + -48, 10, 116, 26, 33, -6, -38, -120, -15, 37, 46, 44, 73, -7, -98, -53, + -21, 0, 23, 120, 30, -24, -64, -22, -89, 6, 69, 90, 0, 20, -32, -90, + -69, 33, 56, 31, 73, 18, -59, -103, -3, -22, 31, 65, 100, -37, -42, -52, + -42, -54, 65, 90, 34, -1, -9, -64, -100, 11, 49, 56, 31, 69, -55, -80, + -63, 21, -12, 69, 82, 32, -70, -42, -44, -53, 18, 92, 68, -13, 6, -54, + -78, -57, 72, 38, 54, 34, 19, -104, -62, -14, 20, 22, 91, 57, -44, -61, + -42, -37, -29, 89, 73, 28, -32, -4, -93, -55, 11, 86, 25, 51, 19, -52, + -100, -24, 20, 15, 70, 72, 3, -86, -32, -49, -18, 24, 116, 25, -4, -34, + -38, -95, -3, 64, 60, 27, 35, -20, -102, -50, 6, 35, 27, 96, 16, -47, + -81, -13, -48, 21, 75, 85, -18, -21, -38, -72, -48, 49, 79, 25, 37, -5, + -63, -99, 11, 17, 45, 50, 75, -49, -67, -50, -13, -21, 66, 90, 20, -33, + -33, -49, -76, 26, 70, 61, 5, 32, -59, -80, -51, 48, 20, 58, 60, 11, + -84, -56, -19, -18, 32, 87, 61, -38, -26, -52, -54, -36, 85, 55, 35, 1, + -2, -96, -58, 10, 49, 31, 63, 37, -60, -74, -34, -1, -5, 85, 67, 9, + -62, -20, -68, -33, 28, 97, 26, 15, -7, -55, -89, -12, 51, 33, 53, 45, + -13, -98, -36, -19, 13, 31, 102, 16, -34, -55, -30, -63, 11, 78, 63, 6, + -2, -28, -91, -38, 30, 60, 24, 65, -2, -60, -86, 1, -9, 34, 68, 69, + -34, -51, -38, -46, -23, 57, 87, 14, 2, -26, -56, -84, 26, 46, 51, 28, + 45, -56, -77, -41, 16, 8, 59, 77, 3, -57, -49, -29, -46, 38, 77, 58, + -21, -1, -57, -67, -33, 67, 41, 41, 31, -7, -87, -58, 5, 14, 39, 70, + 45, -57, -49, -43, -24, -14, 87, 59, 15, -31, -18, -78, -44, 30, 69, 32, + 31, 14, -66, -75, -21, 31, 15, 71, 50, -9, -80, -28, -39, -8, 38, 94, + 20, -18, -28, -49, -67, 2, 72, 43, 31, 14, -24, -96, -31, 10, 38, 31, + 78, 3, -54, -65, -16, -27, 23, 79, 56, -14, -33, -31, -70, -21, 46, 74, + 15, 30, -19, -62, -79, 16, 25, 41, 51, 47, -47, -69, -32, -17, 2, 58, + 82, -1, -28, -41, -41, -60, 38, 64, 50, 3, 15, -57, -74, -27, 41, 31, + 46, 54, -13, -70, -54, -6, -14, 45, 71, 46, -43, -27, -49, -44, -14, 77, + 52, 20, 1, -22, -78, -50, 27, 39, 40, 45, 26, -68, -59, -29, 7, 6, + 79, 52, -5, -55, -27, -53, -24, 44, 76, 27, -1, -8, -63, -64, -6, 56, + 28, 50, 27, -23, -87, -27, -8, 16, 41, 80, 9, -44, -43, -36, -39, 15, + 80, 43, 7, -15, -30, -83, -19, 33, 56, 24, 49, -12, -64, -65, 0, 6, + 32, 69, 42, -32, -55, -28, -43, -2, 54, 77, 3, -3, -32, -54, -62, 31, + 49, 41, 29, 21, -53, -73, -21, 12, 23, 50, 66, -15, -50, -48, -21, -32, + 46, 68, 41, -21, -12, -52, -59, -10, 58, 44, 27, 27, -26, -72, -50, 17, + 14, 46, 56, 29, -59, -44, -35, -17, 4, 77, 51, -1, -26, -30, -61, -35, + 43, 55, 34, 17, 6, -70, -58, -12, 34, 20, 63, 36, -22, -69, -28, -25, + -3, 49, 73, 16, -28, -24, -52, -45, 9, 71, 33, 26, 2, -31, -82, -20, + 18, 35, 36, 58, -4, -60, -49, -18, -10, 25, 77, 35, -15, -38, -29, -61, + -5, 48, 64, 12, 17, -24, -63, -56, 17, 33, 34, 50, 23, -44, -66, -20, + -14, 16, 53, 68, -11, -30, -40, -38, -40, 41, 61, 35, 4, -2, -52, -67, + -7, 35, 37, 36, 44, -28, -61, -46, 1, -5, 48, 62, 28, -42, -31, -41, + -38, 6, 67, 48, 7, 0, -34, -64, -39, 36, 34, 40, 34, 11, -66, -50, + -19, 9, 18, 68, 42, -19, -46, -32, -38, -16, 53, 60, 23, -10, -12, -63, + -47, 4, 54, 27, 41, 16, -34, -73, -23, 3, 16, 48, 59, 3, -49, -34, + -36, -22, 21, 75, 30, 2, -21, -33, -68, -8, 39, 47, 26, 31, -17, -65, + -46, 1, 17, 30, 64, 22, -33, -53, -23, -34, 10, 54, 62, -2, -11, -32, + -53, -41, 31, 50, 31, 27, 3, -49, -66, -7, 12, 30, 45, 52, -24, -48, + -41, -18, -16, 46, 63, 25, -20, -22, -45, -51, 7, 51, 43, 18, 19, -36, + -62, -38, 22, 18, 44, 47, 12, -55, -42, -25, -13, 19, 66, 43, -12, -23, + -36, -47, -23, 49, 46, 29, 9, -5, -65, -46, -1, 32, 26, 51, 26, -33, + -57, -28, -12, 2, 55, 55, 9, -33, -24, -49, -30, 18, 64, 28, 17, -4, + -39, -66, -13, 26, 31, 39, 39, -10, -61, -37, -16, 2, 28, 69, 21, -20, + -37, -29, -47, 5, 51, 50, 11, 5, -26, -61, -37, 18, 37, 29, 45, 6, + -44, -59, -12, -8, 23, 51, 52, -16, -33, -35, -36, -21, 41, 58, 23, 3, + -15, -47, -57, 6, 33, 37, 30, 31, -34, -56, -35, 3, 6, 45, 54, 11, + -38, -34, -32, -30, 20, 58, 42, -2, -4, -39, -53, -26, 38, 33, 35, 26, + -3, -60, -44, -8, 10, 27, 56, 32, -29, -39, -33, -26, -7, 55, 49, 16, + -15, -18, -56, -35, 15, 48, 28, 30, 9, -41, -58, -19, 12, 17, 49, 43, + -5, -50, -29, -31, -10, 28, 65, 22, -6, -22, -37, -52, -1, 43, 38, 25, + 17, -21, -63, -32, 4, 23, 30, 55, 9, -35, -47, -20, -23, 17, 54, 46, + -4, -18, -30, -49, -23, 32, 49, 23, 22, -9, -47, -55, 1, 16, 31, 41, + 36, -28, -47, -32, -15, -2, 44, 56, 11, -19, -28, -38, -41, 18, 47, 38, + 12, 9, -39, -54, -25, 23, 23, 39, 39, -3, -50, -39, -16, -8, 28, 55, + 34, -19, -23, -37, -37, -11, 49, 41, 22, 4, -15, -57, -38, 9, 29, 30, + 40, 17, -40, -47, -24, -4, 8, 54, 43, 1, -34, -25, -41, -20, 27, 55, + 24, 8, -8, -43, -51, -7, 31, 27, 37, 25, -16, -57, -28, -11, 9, 32, + 58, 12, -25, -34, -30, -33, 11, 52, 38, 9, -5, -27, -56, -22, 20, 37, + 26, 36, -4, -44, -49, -8, 1, 25, 49, 35, -19, -35, -29, -32, -7, 40, + 52, 13, -1, -21, -43, -45, 13, 34, 33, 26, 17, -36, -51, -24, 5, 14, + 41, 46, -2, -35, -34, -25, -22, 27, 51, 33, -6, -10, -39, -45, -12, 37, + 33, 28, 20, -15, -53, -37, 1, 12, 32, 45, 22, -33, -35, -29, -18, 3, + 52, 40, 7, -16, -23, -47, -26, 23, 41, 27, 20, 2, -45, -47, -13, 17, + 20, 45, 31, -12, -46, -26, -23, -3, 33, 54, 16, -13, -22, -38, -38, 5, + 44, 31, 22, 6, -25, -56, -22, 8, 24, 30, 43, 1, -38, -39, -18, -12, + 20, 52, 32, -7, -23, -28, -43, -10, 33, 45, 18, 14, -16, -45, -43, 5, + 20, 29, 38, 21, -29, -45, -23, -12, 8, 41, 48, 2, -20, -29, -33, -29, + 24, 44, 31, 8, -1, -38, -48, -13, 22, 26, 33, 31, -13, -45, -35, -9, + -2, 32, 47, 23, -23, -24, -33, -30, 1, 46, 36, 14, 0, -23, -49, -29, + 17, 27, 30, 30, 8, -42, -40, -18, 2, 15, 49, 33, -7, -32, -26, -32, + -12, 33, 46, 20, 0, -12, -43, -39, 0, 33, 26, 32, 15, -22, -51, -23, + -4, 12, 35, 46, 5, -29, -30, -28, -21, 15, 50, 29, 5, -11, -28, -48, + -12, 24, 34, 24, 25, -10, -44, -38, -5, 8, 25, 45, 22, -21, -36, -24, + -26, 3, 39, 45, 7, -6, -24, -40, -32, 17, 34, 28, 22, 6, -35, -46, + -14, 7, 20, 37, 37, -10, -34, -31, -20, -12, 31, 46, 23, -9, -15, -36, + -37, -1, 35, 32, 21, 14, -22, -46, -30, 7, 14, 33, 37, 11, -34, -32, + -24, -12, 12, 47, 33, -1, -17, -27, -39, -18, 28, 36, 25, 12, -5, -44, + -37, -6, 19, 22, 39, 21, -19, -41, -24, -15, 2, 37, 43, 10, -17, -21, + -36, -26, 11, 42, 26, 16, -1, -28, -48, -15, 13, 24, 30, 32, -5, -39, + -32, -15, -3, 23, 48, 22, -10, -25, -26, -35, -1, 34, 38, 14, 6, -19, + -43, -31, 9, 24, 26, 33, 9, -30, -41, -17, -7, 15, 39, 38, -5, -22, + -28, -29, -18, 26, 41, 23, 5, -9, -36, -41, -3, 22, 27, 28, 22, -20, + -41, -29, -4, 4, 33, 41, 13, -23, -26, -28, -23, 10, 41, 32, 7, -4, + -27, -41, -20, 21, 26, 28, 23, -1, -41, -34, -12, 5, 20, 42, 25, -14, + -29, -26, -24, -5, 35, 38, 15, -5, -15, -40, -29, 6, 32, 24, 26, 8, + -27, -43, -18, 2, 15, 35, 35, 0, -31, -26, -25, -11, 20, 45, 22, 0, + -15, -29, -39, -5, 27, 30, 22, 16, -15, -43, -29, -1, 13, 25, 39, 12, + -23, -33, -21, -18, 10, 38, 36, 3, -11, -24, -36, -20, 20, 33, 23, 18, + -3, -34, -40, -7, 10, 23, 33, 27, -15, -33, -27, -15, -3, 31, 40, 14, + -11, -19, -32, -30, 7, 33, 29, 15, 7, -26, -41, -22, 11, 17, 31, 30, + 2, -33, -30, -18, -7, 18, 41, 26, -7, -18, -28, -31, -9, 30, 32, 20, + 7, -11, -41, -30, 1, 20, 24, 32, 14, -24, -36, -21, -8, 7, 37, 34, + 5, -20, -22, -32, -17, 16, 39, 22, 10, -6, -30, -39, -9, 17, 23, 29, + 22, -10, -38, -26, -11, 4, 24, 41, 14, -14, -25, -25, -26, 5, 34, 31, + 11, 0, -21, -40, -21, 11, 25, 24, 27, 1, -30, -36, -12, -2, 18, 36, + 28, -9, -24, -25, -25, -8, 27, 37, 16, 2, -14, -33, -33, 4, 23, 26, + 23, 14, -23, -37, -22, -1, 10, 31, 34, 4, -23, -26, -23, -16, 16, 37, + 26, 2, -7, -28, -35, -12, 22, 25, 24, 17, -8, -37, -29, -5, 8, 23, + 35, 17, -18, -27, -24, -17, 2, 35, 32, 10, -9, -18, -36, -21, 12, 29, + 23, 19, 2, -30, -36, -13, 7, 16, 33, 25, -6, -30, -23, -20, -4, 23, + 39, 16, -5, -16, -29, -30, 1, 28, 26, 19, 8, -18, -39, -21, 2, 16, + 25, 32, 4, -25, -30, -18, -11, 14, 36, 27, -1, -14, -23, -32, -11, 21, + 31, 19, 12, -9, -33, -32, -2, 13, 23, 29, 18, -18, -31, -22, -11, 4, + 30, 35, 7, -12, -21, -28, -22, 13, 31, 25, 11, 0, -27, -35, -14, 13, + 19, 27, 24, -6, -31, -27, -12, -2, 22, 36, 19, -11, -18, -26, -24, -2, + 30, 28, 15, 2, -16, -36, -23, 6, 20, 24, 25, 7, -26, -31, -17, -3, + 11, 35, 27, -1, -21, -22, -26, -10, 20, 34, 18, 5, -9, -31, -31, -3, + 20, 21, 25, 14, -15, -35, -21, -6, 8, 26, 34, 8, -17, -23, -23, -18, + 10, 34, 25, 7, -6, -22, -35, -13, 14, 24, 21, 20, -5, -30, -30, -8, + 3, 20, 33, 19, -12, -24, -22, -20, 0, 27, 32, 11, -2, -17, -31, -25, + 8, 23, 23, 19, 6, -24, -33, -15, 2, 14, 29, 28, -2, -23, -24, -19, + -10, 20, 33, 20, -2, -11, -27, -29, -4, 23, 24, 19, 11, -14, -34, -24, + 0, 10, 24, 29, 10, -21, -25, -20, -12, 8, 33, 26, 4, -11, -20, -30, + -14, 16, 27, 20, 13, -3, -30, -29, -8, 10, 18, 30, 18, -11, -28, -21, + -14, 1, 25, 33, 11, -9, -17, -27, -22, 6, 28, 22, 15, 2, -20, -34, + -15, 6, 17, 24, 25, -1, -26, -25, -14, -5, 16, 34, 20, -4, -17, -22, + -26, -4, 23, 28, 15, 7, -13, -31, -25, 2, 15, 22, 25, 10, -20, -29, + -17, -7, 9, 29, 29, 2, -14, -21, -24, -15, 16, 29, 20, 7, -5, -26, + -30, -7, 14, 20, 23, 17, -11, -29, -23, -8, 2, 23, 31, 13, -13, -19, + -23, -18, 5, 29, 25, 10, -2, -19, -31, -17, 10, 19, 22, 19, 1, -27, + -27, -12, 1, 15, 31, 20, -6, -20, -21, -21, -5, 23, 29, 14, 0, -12, + -29, -24, 1, 21, 20, 21, 8, -18, -31, -16, -2, 11, 26, 27, 3, -19, + -21, -20, -11, 13, 31, 19, 3, -9, -22, -29, -7, 16, 23, 19, 14, -9, + -29, -24, -5, 7, 20, 29, 12, -14, -23, -19, -15, 5, 27, 27, 6, -6, + -18, -27, -17, 11, 23, 20, 15, 0, -24, -29, -10, 5, 16, 26, 21, -7, + -23, -22, -14, -4, 21, 30, 14, -5, -14, -25, -23, 2, 22, 22, 15, 6, + -17, -30, -18, 3, 12, 23, 24, 4, -21, -23, -16, -7, 12, 30, 21, 0, + -12, -21, -25, -8, 19, 24, 17, 8, -8, -29, -24, -3, 12, 18, 25, 12, + -14, -26, -18, -9, 5, 26, 27, 6, -11, -17, -24, -15, 10, 27, 19, 11, + -3, -22, -29, -10, 9, 17, 22, 18, -6, -25, -21, -11, 0, 18, 30, 14, + -7, -17, -21, -20, 2, 23, 24, 11, 2, -15, -29, -18, 5, 17, 20, 21, + 3, -21, -26, -13, -3, 12, 27, 22, -2, -16, -20, -20, -8, 18, 27, 16, + 4, -9, -25, -25, -2, 15, 20, 20, 11, -14, -27, -18, -4, 6, 23, 26, + 7, -15, -19, -20, -13, 9, 27, 21, 5, -5, -20, -26, -11, 13, 19, 20, + 14, -4, -26, -23, -8, 4, 17, 27, 15, -10, -20, -19, -15, 0, 24, 25, + 10, -4, -14, -26, -18, 6, 20, 19, 16, 3, -20, -27, -12, 2, 12, 24, + 21, -2, -20, -19, -17, -5, 16, 28, 15, 0, -11, -22, -23, -2, 18, 21, + 16, 8, -12, -28, -18, -1, 10, 20, 24, 6, -16, -22, -16, -10, 9, 26, + 22, 3, -9, -18, -24, -11, 13, 22, 17, 11, -5, -24, -24, -5, 8, 17, + 23, 15, -10, -22, -18, -11, 1, 22, 26, 9, -7, -15, -22, -17, 6, 22, + 20, 11, 1, -19, -26, -13, 6, 14, 21, 19, -1, -21, -21, -12, -3, 15, + 27, 16, -4, -13, -20, -20, -3, 20, 22, 14, 4, -11, -26, -19, 1, 13, + 18, 20, 7, -17, -23, -15, -5, 8, 25, 21, 2, -13, -17, -21, -9, 13, + 24, 16, 6, -6, -22, -24, -5, 12, 17, 20, 12, -9, -24, -18, -7, 4, + 19, 25, 9, -10, -17, -19, -15, 5, 23, 20, 8, -2, -16, -25, -12, 8, + 17, 18, 16, -2, -21, -22, -9, 1, 14, 24, 16, -6, -16, -18, -16, -2, + 19, 24, 11, 0, -12, -23, -19, 3, 16, 18, 16, 6, -16, -24, -14, -1, + 9, 22, 21, 1, -15, -18, -16, -8, 12, 24, 17, 2, -8, -20, -22, -6, + 14, 18, 17, 10, -8, -24, -19, -4, 7, 18, 23, 9, -12, -19, -17, -11, + 5, 23, 21, 6, -6, -15, -23, -12, 9, 19, 17, 12, -2, -20, -23, -9, + 5, 14, 22, 15, -5, -19, -17, -13, -1, 17, 24, 11, -3, -13, -21, -18, + 2, 18, 18, 13, 3, -14, -25, -14, 2, 12, 19, 19, 1, -17, -20, -13, + -5, 11, 24, 17, 0, -11, -18, -20, -5, 15, 21, 14, 7, -8, -23, -20, + -2, 10, 17, 20, 9, -12, -21, -15, -7, 5, 21, 22, 5, -9, -16, -19, + -12, 9, 21, 17, 8, -3, -19, -23, -8, 8, 15, 19, 14, -6, -20, -18, + -9, 1, 16, 23, 11, -7, -14, -18, -15, 2, 20, 19, 10, 0, -13, -23, + -14, 4, 14, 17, 16, 2, -18, -20, -12, -1, 10, 23, 17, -1, -14, -17, + -17, -5, 15, 22, 13, 3, -8, -21, -19, -1, 13, 16, 17, 7, -11, -22, + -14, -4, 7, 19, 21, 4, -12, -16, -16, -10, 8, 22, 16, 5, -5, -17, + -22, -8, 10, 17, 16, 12, -5, -20, -19, -6, 4, 15, 22, 11, -8, -17, + -16, -12, 2, 19, 20, 8, -3, -13, -21, -14, 6, 16, 16, 13, 1, -17, + -21, -10, 2, 11, 20, 16, -2, -15, -17, -13, -4, 14, 22, 13, -1, -10, + -19, -18, -1, 15, 17, 14, 6, -11, -22, -15, -1, 8, 17, 19, 5, -13, + -17, -14, -7, 8, 21, 17, 3, -8, -16, -19, -8, 11, 18, 15, 8, -5, + -20, -19, -5, 7, 14, 19, 10, -8, -18, -15, -9, 3, 18, 20, 7, -6, + -13, -19, -13, 5, 18, 16, 10, -1, -15, -22, -10, 4, 13, 17, 15, -2, + -17, -17, -10, -1, 13, 22, 12, -3, -12, -16, -16, -1, 15, 18, 11, 3, + -11, -21, -15, 1, 11, 16, 16, 4, -14, -19, -12, -4, 8, 20, 17, 1, + -10, -15, -16, -7, 11, 19, 14, 5, -6, -18, -19, -4, 9, 15, 16, 9, + -8, -19, -15, -5, 4, 17, 20, 7, -8, -14, -16, -11, 5, 19, 16, 7, + -3, -14, -20, -10, 7, 14, 16, 12, -2, -18, -18, -8, 2, 12, 20, 12, + -4, -14, -15, -13, -1, 16, 19, 10, 0, -10, -19, -14, 2, 14, 15, 14, + 3, -13, -20, -11, -1, 9, 18, 16, 1, -13, -15, -14, -5, 10, 20, 13, + 2, -8, -16, -18, -4, 11, 16, 14, 7, -8, -19, -15, -3, 6, 15, 18, + 7, -10, -16, -14, -9, 5, 18, 17, 5, -5, -14, -18, -10, 8, 16, 14, + 9, -2, -17, -18, -7, 4, 12, 18, 12, -5, -15, -15, -10, 0, 15, 19, + 9, -3, -11, -17, -14, 2, 15, 15, 10, 2, -13, -19, -11, 2, 10, 16, + 15, 1, -14, -16, -11, -3, 10, 19, 13, 0, -9, -15, -16, -4, 12, 16, + 12, 4, -7, -19, -15, -2, 9, 14, 16, 6, -10, -17, -13, -6, 5, 18, + 17, 4, -8, -13, -16, -8, 8, 17, 13, 7, -3, -16, -18, -6, 7, 13, + 16, 10, -5, -17, -15, -7, 2, 14, 19, 8, -5, -12, -15, -12, 2, 16, + 16, 8, 0, -12, -19, -11, 4, 12, 15, 13, 0, -14, -17, -9, -1, 10, + 18, 13, -2, -11, -14, -13, -3, 12, 17, 11, 2, -8, -17, -15, -1, 10, + 14, 13, 6, -10, -18, -12, -3, 6, 16, 16, 3, -10, -14, -14, -7, 8, + 17, 14, 4, -5, -15, -17, -6, 8, 14, 14, 8, -5, -17, -15, -5, 4, + 13, 17, 8, -7, -14, -14, -9, 2, 16, 16, 7, -3, -11, -17, -11, 4, + 14, 14, 10, 0, -14, -17, -8, 2, 10, 17, 12, -2, -13, -14, -11, -2, + 12, 18, 10, -1, -9, -16, -14, 0, 12, 14, 11, 4, -10, -18, -12, -1, + 8, 14, 15, 3, -11, -15, -11, -5, 7, 17, 14, 2, -7, -13, -15, -6, + 9, 15, 12, 6, -5, -16, -15, -4, 6, 13, 15, 8, -7, -15, -13, -7, + 3, 15, 16, 6, -5, -12, -15, -10, 5, 15, 14, 8, -1, -13, -17, -8, + 4, 11, 15, 11, -2, -14, -14, -8, 0, 11, 17, 10, -3, -10, -14, -12, + 0, 13, 15, 9, 2, -9, -17, -12, 1, 9, 13, 13, 3, -11, -15, -10, + -3, 7, 16, 13, 1, -9, -13, -13, -5, 9, 16, 11, 4, -6, -15, -15, + -3, 8, 12, 13, 7, -7, -16, -12, -5, 4, 14, 16, 5, -7, -12, -13, + -8, 5, 15, 13, 6, -3, -12, -16, -7, 5, 12, 13, 10, -3, -14, -15, + -7, 2, 11, 16, 10, -4, -12, -13, -10, 0, 13, 15, 8, 0, -9, -16, + -12, 2, 11, 13, 11, 2, -11, -16, -9, 0, 8, 15, 13, 0, -10, -13, + -11, -4, 9, 16, 11, 1, -6, -14, -14, -3, 9, 13, 11, 5, -7, -16, + -12, -3, 6, 13, 15, 5, -8, -13, -12, -6, 5, 15, 13, 4, -5, -12, + -15, -7, 6, 13, 12, 7, -3, -14, -15, -6, 4, 10, 15, 9, -4, -13, + -12, -8, 1, 12, 16, 7, -3, -10, -14, -11, 2, 12, 13, 9, 1, -11, + -16, -9, 2, 9, 13, 12, 0, -11, -13, -9, -2, 9, 16, 11, 0, -8, + -13, -13, -2, 10, 14, 10, 3, -7, -15, -12, -1, 7, 12, 13, 4, -9, + -14, -10, -4, 5, 14, 14, 3, -6, -12, -13, -6, 7, 14, 11, 5, -3, + -13, -14, -5, 6, 11, 13, 8, -5, -14, -12, -6, 2, 12, 15, 7, -5, + -10, -13, -9, 2, 13, 13, 7, -1, -10, -15, -9, 3, 10, 12, 10, 0, + -12, -14, -8, 0, 9, 15, 10, -1, -9, -12, -11, -2, 10, 14, 9, 1, + -7, -14, -12, 0, 9, 12, 11, 4, -9, -14, -10, -2, 6, 13, 13, 2, + -8, -12, -11, -5, 7, 14, 11, 3, -5, -12, -14, -4, 7, 12, 11, 7, + -5, -14, -12, -4, 4, 11, 14, 6, -6, -11, -11, -8, 3, 13, 13, 5, + -3, -10, -14, -8, 4, 11, 12, 8, -1, -12, -14, -7, 2, 9, 14, 10, + -2, -11, -12, -9, -1, 10, 14, 8, -1, -8, -13, -11, 0, 10, 12, 9, + 2, -8, -14, -10, 0, 7, 12, 12, 2, -9, -12, -10, -4, 6, 14, 11, + 2, -6, -11, -12, -4, 8, 12, 10, 5, -5, -13, -12, -3, 5, 11, 13, + 6, -6, -12, -11, -6, 3, 12, 13, 5, -4, -10, -13, -7, 4, 12, 11, + 6, -2, -11, -14, -6, 3, 9, 12, 9, -2, -11, -12, -7, 0, 10, 14, + 8, -2, -9, -12, -10, 0, 11, 12, 8, 1, -8, -14, -9, 1, 8, 11, + 10, 2, -9, -13, -8, -2, 7, 13, 11, 0, -7, -11, -11, -3, 8, 13, + 9, 3, -5, -13, -12, -2, 7, 11, 11, 5, -6, -13, -10, -4, 4, 12, + 13, 4, -6, -10, -11, -6, 4, 12, 11, 4, -3, -11, -13, -6, 5, 10, + 11, 7, -2, -12, -12, -5, 2, 9, 13, 7, -3, -10, -11, -8, 1, 11, + 12, 6, -1, -8, -13, -9, 2, 9, 11, 9, 1, -9, -13, -8, 0, 7, + 12, 10, 0, -9, -11, -9, -2, 8, 13, 9, 1, -6, -12, -11, -2, 8, + 11, 9, 4, -6, -13, -10, -2, 5, 11, 12, 4, -7, -11, -10, -5, 5, + 12, 11, 3, -4, -10, -12, -5, 5, 11, 10, 6, -3, -11, -12, -4, 3, + 9, 12, 7, -4, -10, -10, -6, 1, 10, 12, 6, -2, -8, -12, -8, 2, + 10, 11, 7, 0, -9, -13, -7, 2, 8, 11, 9, 0, -9, -11, -8, -1, + 8, 13, 8, 0, -7, -11, -10, -1, 8, 11, 8, 2, -6, -13, -10, -1, + 6, 10, 10, 3, -7, -11, -9, -3, 5, 12, 11, 2, -6, -10, -11, -5, + 6, 11, 9, 4, -3, -11, -12, -4, 5, 9, 11, 6, -4, -11, -10, -5, + 2, 10, 12, 5, -4, -9, -10, -7, 2, 11, 11, 5, -1, -9, -12, -7, + 3, 8, 10, 8, -1, -10, -11, -6, 0, 8, 12, 8, -1, -8, -10, -9, + -1, 9, 12, 7, 1, -6, -12, -9, 0, 7, 10, 9, 3, -7, -12, -8, + -2, 5, 11, 10, 2, -7, -10, -9, -4, 6, 12, 9, 2, -4, -10, -11, + -3, 6, 10, 9, 5, -4, -11, -10, -3, 3, 9, 11, 5, -5, -9, -10, + -6, 3, 11, 11, 4, -2, -8, -11, -6, 3, 9, 10, 6, -1, -10, -11, + -5, 2, 8, 11, 8, -2, -9, -10, -7, 0, 8, 12, 6, -1, -7, -11, + -9, 0, 8, 10, 7, 2, -7, -12, -8, 0, 6, 10, 9, 1, -7, -10, + -8, -3, 6, 11, 9, 1, -5, -10, -10, -3, 6, 10, 8, 4, -4, -11, + -10, -2, 4, 9, 10, 4, -5, -10, -9, -4, 3, 10, 10, 4, -4, -9, + -10, -6, 4, 10, 9, 5, -2, -9, -11, -5, 3, 8, 10, 7, -2, -9, + -10, -6, 1, 8, 11, 6, -2, -7, -10, -8, 1, 9, 10, 6, 0, -7, + -11, -7, 1, 7, 10, 8, 1, -8, -10, -7, -1, 6, 11, 8, 0, -6, + -9, -9, -2, 7, 10, 8, 2, -5, -10, -9, -2, 6, 9, 9, 4, -5, + -10, -8, -3, 4, 10, 10, 3, -5, -9, -9, -5, 4, 10, 9, 4, -3, + -9, -11, -4, 4, 8, 9, 6, -3, -10, -10, -4, 2, 8, 11, 6, -3, + -8, -9, -6, 1, 9, 10, 5, -1, -7, -11, -7, 2, 8, 9, 7, 0, + -8, -10, -6, 0, 6, 10, 8, 0, -7, -9, -7, -2, 7, 11, 7, 1, + -5, -10, -9, -1, 6, 9, 8, 3, -5, -10, -8, -2, 4, 9, 9, 3, + -6, -9, -8, -4, 4, 10, 9, 2, -4, -8, -10, -4, 5, 9, 8, 4, + -3, -10, -9, -3, 3, 8, 10, 5, -3, -9, -8, -5, 2, 9, 10, 5, + -2, -7, -10, -6, 2, 8, 9, 6, 0, -8, -10, -6, 1, 7, 9, 7, + -1, -8, -9, -6, -1, 7, 10, 7, 0, -6, -9, -8, -1, 7, 9, 7, + 2, -5, -10, -8, -1, 5, 9, 8, 2, -6, -9, -7, -2, 4, 10, 9, + 2, -5, -8, -9, -3, 5, 9, 8, 3, -3, -9, -9, -3, 4, 8, 9, + 5, -4, -9, -8, -4, 2, 8, 10, 4, -3, -7, -9, -5, 2, 9, 9, + 4, -1, -7, -10, -5, 2, 7, 9, 6, -1, -8, -9, -5, 0, 6, 10, + 6, -1, -7, -8, -7, 0, 7, 9, 6, 0, -6, -10, -7, 0, 6, 8, + 7, 2, -6, -10, -7, -1, 5, 9, 8, 1, -6, -8, -8, -3, 5, 10, + 7, 2, -4, -9, -9, -2, 5, 8, 8, 4, -4, -9, -8, -3, 3, 8, + 9, 4, -4, -8, -8, -4, 3, 9, 9, 3, -2, -7, -9, -5, 3, 8, + 8, 5, -1, -8, -9, -4, 2, 7, 9, 6, -2, -7, -8, -6, 0, 7, + 9, 5, -1, -6, -9, -7, 1, 7, 8, 6, 1, -6, -9, -6, 0, 5, + 9, 7, 1, -6, -8, -6, -2, 5, 9, 7, 1, -5, -8, -8, -2, 5, + 8, 7, 3, -4, -9, -8, -2, 4, 8, 8, 3, -4, -8, -7, -3, 3, + 9, 8, 3, -3, -7, -8, -4, 3, 8, 8, 4, -2, -8, -9, -4, 3, + 7, 8, 5, -2, -8, -8, -4, 1, 7, 9, 5, -2, -6, -8, -6, +}; + +// Pop: 45 ms rising sine chirp into a bright G6 ding. +static const int8_t s_pop_pcm[4320] = { + 0, 0, 0, 1, 1, 2, 2, 2, 2, 3, 2, 2, 2, 1, 0, -1, + -2, -3, -4, -5, -6, -7, -7, -7, -7, -6, -5, -4, -2, -1, 1, 3, + 5, 7, 9, 10, 11, 12, 12, 11, 10, 8, 6, 3, 1, -2, -6, -8, + -11, -13, -15, -16, -16, -16, -15, -13, -10, -7, -3, 1, 5, 9, 12, 16, + 18, 20, 21, 21, 20, 17, 14, 11, 6, 1, -4, -9, -14, -18, -21, -24, + -25, -25, -24, -22, -18, -14, -9, -3, 3, 9, 15, 20, 24, 27, 29, 29, + 28, 26, 22, 16, 10, 4, -3, -10, -17, -23, -28, -31, -33, -33, -32, -29, + -24, -18, -11, -3, 5, 13, 20, 27, 32, 36, 37, 37, 35, 31, 25, 18, + 9, 0, -9, -17, -25, -32, -37, -40, -41, -40, -36, -31, -24, -15, -5, 5, + 15, 24, 32, 38, 42, 44, 44, 41, 36, 28, 19, 9, -2, -13, -23, -32, + -39, -45, -47, -48, -45, -40, -32, -23, -12, 0, 12, 23, 33, 41, 47, 50, + 51, 48, 42, 34, 24, 12, 0, -13, -25, -36, -44, -50, -53, -53, -50, -44, + -35, -24, -11, 3, 16, 29, 40, 48, 54, 56, 55, 51, 44, 33, 21, 7, + -7, -21, -34, -45, -53, -58, -59, -56, -50, -41, -29, -15, 0, 15, 29, 42, + 52, 58, 61, 60, 55, 47, 35, 21, 6, -10, -25, -39, -50, -58, -63, -63, + -59, -51, -40, -26, -10, 7, 23, 38, 50, 59, 64, 65, 61, 54, 42, 28, + 12, -6, -23, -38, -51, -60, -66, -67, -63, -55, -43, -28, -11, 7, 24, 40, + 53, 63, 68, 68, 63, 54, 41, 26, 8, -11, -28, -44, -57, -65, -69, -68, + -62, -52, -38, -20, -2, 17, 35, 50, 62, 69, 71, 68, 59, 47, 31, 12, + -7, -26, -43, -57, -67, -71, -71, -65, -54, -39, -21, -1, 19, 37, 53, 64, + 71, 72, 68, 58, 44, 27, 7, -13, -32, -49, -62, -70, -73, -70, -61, -48, + -30, -11, 10, 30, 47, 61, 70, 73, 71, 62, 49, 32, 12, -9, -29, -47, + -61, -70, -73, -71, -62, -49, -31, -11, 10, 31, 48, 62, 71, 73, 70, 61, + 46, 28, 7, -14, -34, -52, -64, -72, -73, -68, -57, -41, -22, -1, 20, 40, + 56, 67, 73, 72, 64, 52, 34, 14, -8, -29, -47, -61, -70, -72, -69, -59, + -43, -24, -3, 19, 38, 55, 66, 72, 70, 63, 50, 32, 11, -10, -31, -49, + -62, -70, -71, -65, -54, -37, -17, 4, 25, 44, 59, 68, 70, 66, 56, 40, + 21, 0, -21, -41, -56, -66, -69, -66, -57, -42, -23, -2, 19, 39, 54, 64, + 68, 65, 56, 41, 22, 1, -20, -39, -54, -63, -67, -64, -54, -39, -20, 1, + 21, 40, 54, 63, 65, 61, 51, 35, 16, -5, -25, -42, -56, -63, -63, -58, + -46, -29, -10, 11, 30, 46, 57, 62, 61, 53, 39, 22, 2, -18, -36, -50, + -58, -61, -56, -46, -31, -12, 7, 26, 42, 53, 59, 57, 50, 37, 20, 1, + -18, -35, -48, -55, -57, -52, -41, -26, -8, 11, 28, 42, 52, 55, 52, 44, + 30, 13, -5, -23, -38, -48, -53, -52, -44, -32, -16, 2, 19, 34, 45, 51, + 50, 44, 32, 17, 0, -17, -32, -42, -48, -48, -42, -32, -17, -1, 16, 30, + 41, 46, 46, 40, 30, 16, 0, -16, -29, -39, -44, -44, -38, -27, -13, 2, + 17, 29, 38, 42, 41, 34, 24, 10, -5, -19, -30, -37, -40, -37, -30, -19, + -6, 8, 21, 31, 36, 37, 33, 25, 14, 1, -12, -23, -31, -35, -34, -29, + -20, -8, 4, 16, 25, 31, 33, 30, 23, 13, 2, -9, -19, -27, -30, -29, + -25, -17, -7, 4, 14, 22, 27, 28, 25, 19, 10, 0, -10, -18, -23, -25, + -24, -19, -12, -3, 6, 14, 20, 23, 22, 19, 12, 5, -4, -11, -17, -20, + -20, -17, -12, -5, 2, 9, 14, 17, 18, 16, 11, 5, -1, -7, -12, -15, + -15, -14, -10, -5, 1, 6, 10, 12, 13, 11, 8, 4, 0, -5, -8, -10, + -10, -9, -6, -3, 1, 4, 6, 8, 8, 6, 4, 2, -1, -3, -5, -5, + -5, -4, -3, -1, 1, 2, 3, 3, 2, 2, 1, 0, 0, -1, -1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3, 8, 8, 4, 0, -4, -15, -29, -30, -7, 27, 46, 37, 17, 3, + -8, -31, -62, -68, -27, 40, 82, 73, 36, 9, -8, -40, -88, -108, -58, 39, + 113, 110, 59, 17, -6, -38, -90, -120, -79, 19, 103, 115, 70, 23, -2, -29, + -79, -118, -93, -2, 90, 118, 81, 31, 2, -22, -67, -113, -104, -23, 75, 118, + 91, 39, 7, -15, -56, -106, -111, -43, 57, 115, 100, 49, 12, -10, -46, -97, + -115, -62, 37, 108, 107, 59, 17, -5, -37, -87, -116, -78, 17, 98, 112, 70, + 24, -1, -28, -76, -114, -91, -4, 86, 114, 80, 31, 3, -21, -65, -109, -101, + -24, 70, 114, 89, 40, 7, -15, -54, -102, -108, -44, 53, 110, 98, 49, 12, + -10, -45, -93, -111, -61, 34, 104, 104, 59, 18, -5, -35, -83, -112, -76, 14, + 94, 109, 69, 25, -1, -27, -73, -110, -89, -6, 81, 111, 79, 32, 3, -21, + -63, -105, -98, -25, 66, 110, 88, 41, 8, -15, -53, -98, -105, -44, 49, 106, + 96, 50, 13, -9, -43, -90, -108, -60, 31, 99, 102, 59, 19, -5, -34, -80, + -108, -75, 12, 89, 106, 69, 25, 0, -27, -71, -106, -87, -8, 77, 107, 78, + 33, 4, -20, -61, -101, -96, -26, 62, 106, 86, 41, 8, -14, -51, -95, -101, + -44, 46, 102, 94, 50, 14, -9, -42, -87, -104, -60, 28, 95, 99, 59, 19, + -4, -33, -78, -105, -73, 9, 85, 103, 68, 26, 0, -26, -68, -102, -85, -9, + 73, 104, 77, 33, 4, -19, -58, -98, -93, -27, 58, 102, 85, 41, 9, -14, + -49, -91, -98, -44, 42, 98, 92, 50, 14, -9, -40, -83, -101, -59, 25, 91, + 97, 59, 20, -4, -32, -75, -101, -72, 7, 81, 100, 67, 26, 0, -25, -66, + -99, -82, -11, 69, 100, 76, 34, 5, -19, -56, -94, -90, -28, 55, 98, 83, + 42, 10, -13, -47, -88, -95, -44, 39, 94, 90, 50, 15, -8, -39, -80, -98, + -58, 22, 87, 94, 58, 21, -4, -31, -72, -98, -71, 5, 77, 97, 67, 27, + 1, -24, -63, -95, -80, -12, 65, 97, 75, 34, 5, -18, -54, -91, -88, -28, + 51, 95, 82, 42, 10, -13, -46, -85, -93, -44, 36, 90, 87, 50, 15, -8, + -38, -78, -95, -57, 20, 83, 92, 58, 21, -3, -30, -69, -94, -69, 3, 73, + 94, 66, 27, 1, -24, -61, -92, -78, -13, 62, 94, 74, 34, 6, -17, -52, + -88, -85, -29, 48, 91, 80, 42, 11, -12, -44, -82, -90, -44, 33, 86, 85, + 50, 16, -7, -36, -75, -92, -57, 18, 79, 89, 58, 22, -3, -29, -67, -91, + -68, 2, 70, 91, 65, 28, 2, -23, -59, -89, -76, -14, 58, 90, 72, 35, + 6, -17, -51, -85, -83, -29, 45, 88, 78, 42, 11, -12, -43, -79, -87, -43, + 31, 83, 83, 50, 16, -7, -35, -72, -89, -56, 15, 76, 87, 57, 22, -2, + -28, -65, -88, -66, 0, 66, 88, 64, 28, 2, -22, -57, -86, -75, -15, 55, + 87, 71, 35, 7, -16, -49, -82, -81, -30, 42, 84, 77, 42, 12, -11, -41, + -76, -84, -43, 28, 79, 81, 49, 17, -6, -34, -70, -86, -55, 13, 72, 84, + 57, 22, -2, -27, -62, -85, -65, -1, 63, 85, 64, 29, 3, -21, -55, -83, + -73, -16, 52, 84, 70, 35, 7, -16, -47, -79, -78, -30, 39, 81, 75, 42, + 12, -11, -40, -73, -82, -43, 26, 76, 79, 49, 17, -6, -33, -67, -83, -54, + 11, 69, 82, 56, 23, -1, -26, -60, -82, -63, -3, 60, 83, 63, 29, 3, + -20, -53, -80, -71, -17, 49, 81, 69, 35, 8, -15, -46, -76, -76, -30, 37, + 78, 74, 42, 12, -10, -38, -71, -79, -42, 23, 73, 77, 49, 18, -5, -32, + -65, -81, -53, 10, 66, 79, 55, 23, -1, -25, -58, -80, -62, -4, 57, 80, + 62, 29, 4, -20, -51, -77, -69, -18, 46, 79, 67, 35, 8, -14, -44, -73, + -74, -30, 34, 75, 72, 42, 13, -9, -37, -68, -77, -42, 21, 70, 75, 48, + 18, -5, -31, -62, -78, -52, 8, 63, 77, 55, 23, 0, -25, -56, -77, -61, + -5, 54, 77, 61, 29, 4, -19, -49, -75, -67, -18, 43, 76, 66, 35, 9, + -14, -42, -71, -72, -30, 32, 72, 70, 42, 13, -9, -36, -66, -75, -42, 19, + 67, 73, 48, 18, -4, -30, -60, -75, -51, 6, 60, 75, 54, 24, 0, -24, + -54, -75, -59, -6, 51, 75, 60, 29, 4, -18, -48, -72, -66, -19, 41, 73, + 65, 35, 9, -13, -41, -68, -70, -30, 29, 69, 69, 42, 14, -8, -35, -64, + -72, -41, 17, 64, 71, 48, 19, -4, -29, -58, -73, -50, 5, 57, 73, 53, + 24, 0, -23, -52, -72, -58, -7, 48, 72, 59, 30, 5, -18, -46, -70, -64, + -19, 38, 70, 63, 35, 9, -13, -40, -66, -68, -30, 27, 67, 67, 41, 14, + -8, -33, -61, -70, -41, 16, 61, 69, 47, 19, -3, -28, -56, -71, -49, 4, + 54, 70, 53, 24, 1, -22, -50, -70, -57, -8, 46, 70, 58, 30, 5, -17, + -44, -67, -62, -20, 36, 68, 62, 35, 10, -12, -38, -64, -66, -30, 25, 64, + 65, 41, 14, -7, -32, -59, -68, -40, 14, 58, 67, 47, 19, -3, -27, -54, + -69, -48, 2, 51, 68, 52, 24, 1, -21, -49, -67, -55, -9, 43, 68, 57, + 30, 6, -16, -43, -65, -61, -20, 34, 65, 61, 35, 10, -11, -37, -62, -64, + -30, 23, 61, 64, 41, 15, -7, -31, -57, -66, -40, 12, 56, 66, 46, 19, + -3, -26, -52, -66, -48, 1, 49, 66, 51, 24, 2, -20, -47, -65, -54, -10, + 41, 65, 56, 30, 6, -15, -41, -63, -59, -20, 31, 63, 59, 35, 10, -11, + -36, -60, -62, -30, 21, 59, 62, 40, 15, -6, -30, -55, -64, -39, 11, 53, + 64, 46, 20, -2, -25, -50, -64, -47, 0, 47, 64, 50, 25, 2, -20, -45, + -63, -53, -11, 38, 63, 55, 30, 6, -15, -40, -61, -57, -21, 29, 60, 58, + 35, 11, -10, -34, -58, -60, -30, 20, 56, 61, 40, 15, -6, -29, -53, -62, + -38, 9, 51, 62, 45, 20, -2, -24, -49, -62, -46, -1, 44, 62, 49, 25, + 3, -19, -44, -61, -51, -11, 36, 61, 53, 30, 7, -14, -38, -59, -56, -21, + 27, 58, 57, 35, 11, -10, -33, -56, -59, -30, 18, 54, 59, 40, 15, -5, + -28, -52, -60, -38, 8, 49, 60, 44, 20, -1, -23, -47, -60, -45, -2, 42, + 60, 49, 25, 3, -18, -42, -59, -50, -12, 34, 59, 52, 30, 7, -13, -37, + -57, -54, -21, 26, 56, 55, 34, 11, -9, -32, -54, -57, -30, 16, 52, 57, + 39, 16, -5, -27, -50, -58, -37, 7, 46, 58, 44, 20, -1, -22, -45, -58, + -44, -3, 40, 58, 48, 25, 3, -17, -41, -57, -49, -12, 32, 57, 51, 30, + 7, -13, -36, -55, -53, -21, 24, 54, 54, 34, 12, -9, -31, -52, -55, -29, + 15, 50, 56, 39, 16, -4, -26, -48, -57, -37, 6, 44, 57, 43, 20, 0, + -21, -44, -57, -43, -4, 38, 56, 47, 25, 4, -17, -39, -55, -48, -13, 30, + 55, 50, 29, 8, -12, -34, -53, -51, -21, 22, 52, 53, 34, 12, -8, -30, + -50, -54, -29, 13, 48, 54, 38, 16, -4, -25, -46, -55, -36, 5, 42, 55, + 42, 20, 0, -20, -42, -55, -42, -4, 36, 54, 46, 25, 4, -16, -38, -54, + -47, -13, 29, 53, 49, 29, 8, -12, -33, -51, -50, -21, 21, 50, 51, 34, + 12, -8, -29, -48, -52, -29, 12, 46, 53, 38, 16, -4, -24, -45, -53, -36, + 3, 40, 53, 42, 20, 0, -20, -41, -53, -41, -5, 34, 53, 45, 25, 4, + -15, -37, -52, -46, -14, 27, 51, 48, 29, 8, -11, -32, -50, -49, -21, 19, + 48, 50, 33, 12, -7, -28, -47, -51, -29, 11, 44, 51, 37, 16, -3, -23, + -43, -52, -35, 3, 38, 52, 41, 20, 1, -19, -39, -51, -40, -6, 32, 51, + 44, 25, 5, -15, -35, -50, -44, -14, 25, 49, 47, 29, 9, -10, -31, -48, + -47, -21, 18, 46, 49, 33, 12, -7, -27, -45, -49, -28, 10, 42, 50, 37, + 16, -3, -22, -42, -50, -34, 2, 37, 50, 40, 21, 1, -18, -38, -50, -39, + -6, 30, 49, 43, 25, 5, -14, -34, -49, -43, -14, 24, 47, 46, 29, 9, + -10, -30, -46, -46, -21, 16, 44, 48, 33, 13, -6, -26, -44, -48, -28, 9, + 40, 49, 36, 17, -2, -21, -40, -49, -34, 1, 35, 48, 40, 21, 1, -17, + -37, -48, -39, -7, 29, 47, 43, 25, 5, -13, -33, -47, -42, -14, 22, 45, + 45, 28, 9, -9, -29, -45, -45, -21, 15, 42, 46, 32, 13, -6, -25, -42, + -47, -28, 8, 38, 47, 36, 17, -2, -21, -39, -47, -33, 0, 33, 47, 39, + 21, 2, -17, -35, -47, -38, -7, 27, 46, 42, 24, 6, -13, -32, -45, -41, + -15, 21, 44, 44, 28, 9, -9, -28, -43, -44, -21, 14, 41, 45, 32, 13, + -5, -24, -41, -45, -27, 7, 36, 46, 35, 17, -1, -20, -38, -46, -33, -1, + 31, 45, 38, 20, 2, -16, -34, -45, -37, -8, 26, 44, 41, 24, 6, -12, + -31, -44, -40, -15, 19, 42, 43, 28, 9, -8, -27, -42, -42, -21, 13, 39, + 44, 31, 13, -5, -23, -39, -44, -27, 6, 35, 44, 35, 17, -1, -19, -36, + -44, -32, -1, 30, 44, 37, 20, 2, -15, -33, -44, -36, -8, 24, 43, 40, + 24, 6, -11, -30, -43, -39, -15, 18, 40, 42, 28, 10, -8, -26, -41, -41, + -21, 12, 37, 43, 31, 13, -4, -22, -38, -43, -27, 5, 33, 43, 34, 17, + -1, -18, -35, -43, -31, -2, 28, 43, 37, 20, 3, -15, -32, -42, -35, -9, + 23, 41, 39, 24, 6, -11, -28, -41, -38, -15, 17, 39, 41, 27, 10, -7, + -25, -39, -40, -21, 11, 36, 42, 31, 13, -4, -21, -37, -41, -26, 4, 32, + 42, 33, 17, 0, -18, -34, -42, -31, -3, 27, 41, 36, 20, 3, -14, -31, + -41, -34, -9, 22, 40, 38, 24, 7, -10, -27, -40, -37, -15, 16, 37, 40, + 27, 10, -7, -24, -38, -39, -21, 10, 34, 40, 30, 13, -3, -20, -36, -40, + -26, 3, 30, 41, 33, 17, 0, -17, -33, -40, -30, -3, 26, 40, 35, 20, + 3, -13, -30, -40, -34, -9, 20, 38, 37, 24, 7, -10, -26, -39, -36, -15, + 15, 36, 39, 27, 10, -6, -23, -37, -38, -21, 9, 33, 39, 30, 13, -3, + -20, -34, -39, -25, 2, 29, 39, 32, 17, 0, -16, -32, -39, -29, -4, 24, + 38, 35, 20, 4, -13, -29, -39, -33, -10, 19, 37, 36, 23, 7, -9, -26, + -37, -35, -15, 14, 35, 38, 26, 10, -6, -22, -36, -37, -20, 8, 31, 38, + 29, 14, -3, -19, -33, -38, -25, 2, 27, 38, 32, 17, 1, -15, -31, -38, + -29, -4, 23, 37, 34, 20, 4, -12, -28, -37, -32, -10, 18, 36, 36, 23, + 7, -9, -25, -36, -34, -15, 13, 33, 37, 26, 10, -5, -21, -34, -36, -20, + 7, 30, 37, 29, 14, -2, -18, -32, -37, -25, 1, 26, 37, 31, 17, 1, + -15, -30, -37, -28, -5, 22, 36, 33, 20, 4, -12, -27, -36, -31, -10, 17, + 34, 35, 23, 7, -8, -24, -35, -34, -15, 12, 32, 36, 26, 10, -5, -21, + -33, -35, -20, 6, 29, 36, 28, 14, -2, -17, -31, -36, -24, 1, 25, 36, + 31, 17, 1, -14, -29, -36, -28, -5, 21, 35, 32, 20, 4, -11, -26, -35, + -31, -10, 16, 33, 34, 23, 7, -8, -23, -34, -33, -15, 11, 31, 35, 25, + 11, -5, -20, -32, -34, -20, 5, 27, 35, 28, 14, -2, -17, -30, -35, -24, + 0, 24, 35, 30, 17, 2, -14, -28, -35, -27, -5, 20, 34, 32, 20, 5, + -10, -25, -34, -30, -10, 15, 32, 33, 22, 8, -7, -22, -33, -32, -15, 10, + 29, 34, 25, 11, -4, -19, -31, -33, -20, 5, 26, 34, 27, 14, -1, -16, + -29, -34, -23, -1, 23, 33, 29, 17, 2, -13, -27, -34, -27, -6, 18, 32, + 31, 19, 5, -10, -24, -33, -29, -11, 14, 31, 32, 22, 8, -7, -21, -32, + -31, -15, 9, 28, 33, 25, 11, -4, -18, -30, -32, -19, 4, 25, 33, 27, + 14, -1, -15, -28, -33, -23, -1, 21, 32, 29, 16, 2, -12, -26, -33, -26, + -6, 17, 31, 30, 19, 5, -9, -23, -32, -28, -11, 13, 29, 31, 22, 8, + -6, -20, -31, -30, -15, 8, 27, 32, 24, 11, -4, -18, -29, -31, -19, 3, + 24, 32, 26, 14, -1, -15, -27, -32, -23, -1, 20, 31, 28, 16, 2, -12, + -25, -32, -25, -6, 16, 30, 30, 19, 5, -9, -22, -31, -28, -11, 12, 28, + 31, 22, 8, -6, -20, -30, -29, -15, 8, 26, 31, 24, 11, -3, -17, -28, + -30, -19, 3, 23, 31, 26, 14, 0, -14, -26, -31, -22, -2, 19, 30, 28, + 16, 3, -11, -24, -31, -25, -6, 16, 29, 29, 19, 5, -8, -22, -30, -27, + -11, 11, 27, 30, 21, 8, -6, -19, -29, -29, -15, 7, 25, 30, 23, 11, + -3, -16, -27, -30, -19, 2, 22, 30, 25, 14, 0, -14, -25, -30, -22, -2, + 18, 29, 27, 16, 3, -11, -23, -30, -24, -7, 15, 28, 28, 19, 6, -8, + -21, -29, -26, -11, 10, 26, 29, 21, 8, -5, -18, -28, -28, -15, 6, 24, + 29, 23, 11, -2, -16, -26, -29, -18, 2, 21, 29, 25, 14, 0, -13, -24, + -29, -21, -3, 17, 28, 26, 16, 3, -10, -22, -29, -24, -7, 14, 27, 28, + 18, 6, -8, -20, -28, -26, -11, 10, 25, 28, 21, 8, -5, -18, -27, -27, + -15, 6, 23, 28, 23, 11, -2, -15, -25, -28, -18, 1, 20, 28, 24, 13, + 1, -12, -24, -28, -21, -3, 17, 27, 26, 16, 3, -10, -22, -28, -23, -7, + 13, 26, 27, 18, 6, -7, -19, -27, -25, -11, 9, 24, 27, 20, 8, -4, + -17, -26, -26, -15, 5, 22, 28, 22, 11, -2, -14, -25, -27, -18, 1, 19, + 27, 24, 13, 1, -12, -23, -27, -21, -3, 16, 26, 25, 16, 3, -9, -21, + -27, -23, -7, 12, 25, 26, 18, 6, -7, -19, -26, -24, -11, 8, 23, 27, + 20, 8, -4, -16, -25, -26, -14, 4, 21, 27, 22, 11, -2, -14, -24, -26, + -17, 0, 18, 26, 23, 13, 1, -11, -22, -27, -20, -4, 15, 26, 25, 16, + 4, -9, -20, -26, -22, -7, 11, 24, 26, 18, 6, -6, -18, -26, -24, -11, + 8, 22, 26, 20, 9, -4, -16, -24, -25, -14, 4, 20, 26, 21, 11, -1, + -13, -23, -26, -17, 0, 17, 26, 23, 13, 1, -11, -21, -26, -20, -4, 14, + 25, 24, 15, 4, -8, -19, -25, -22, -8, 11, 23, 25, 18, 6, -6, -17, + -25, -23, -11, 7, 21, 25, 19, 9, -3, -15, -24, -24, -14, 3, 19, 25, + 21, 11, -1, -13, -22, -25, -17, 0, 16, 25, 22, 13, 1, -10, -21, -25, + -19, -4, 13, 24, 24, 15, 4, -8, -19, -25, -21, -8, 10, 22, 24, 17, + 6, -6, -17, -24, -23, -11, 7, 21, 25, 19, 9, -3, -14, -23, -24, -14, + 3, 18, 24, 21, 11, -1, -12, -21, -24, -17, -1, 16, 24, 22, 13, 2, + -10, -20, -24, -19, -4, 13, 23, 23, 15, 4, -8, -18, -24, -21, -8, 9, + 22, 24, 17, 6, -5, -16, -23, -22, -11, 6, 20, 24, 19, 9, -3, -14, + -22, -23, -14, 2, 17, 24, 20, 11, 0, -12, -21, -24, -16, -1, 15, 23, + 21, 13, 2, -9, -19, -24, -19, -4, 12, 22, 22, 15, 4, -7, -17, -23, + -20, -8, 9, 21, 23, 17, 6, -5, -15, -22, -22, -11, 5, 19, 23, 18, + 9, -3, -13, -21, -22, -14, 2, 17, 23, 20, 11, 0, -11, -20, -23, -16, + -1, 14, 22, 21, 13, 2, -9, -19, -23, -18, -5, 11, 21, 22, 15, 4, + -7, -17, -22, -20, -8, 8, 20, 22, 17, 7, -5, -15, -22, -21, -11, 5, + 18, 23, 18, 9, -2, -13, -21, -22, -13, 2, 16, 22, 19, 11, 0, -11, + -19, -22, -16, -2, 13, 22, 21, 13, 2, -9, -18, -22, -18, -5, 11, 21, + 21, 15, 4, -6, -16, -22, -19, -8, 8, 19, 22, 16, 7, -4, -14, -21, + -21, -11, 4, 17, 22, 18, 9, -2, -12, -20, -21, -13, 1, 15, 22, 19, + 11, 0, -10, -19, -22, -16, -2, 13, 21, 20, 13, 2, -8, -17, -22, -17, + -5, 10, 20, 21, 14, 5, -6, -16, -21, -19, -8, 7, 18, 21, 16, 7, + -4, -14, -20, -20, -11, 4, 17, 21, 17, 9, -2, -12, -19, -21, -13, 1, + 14, 21, 19, 11, 0, -10, -18, -21, -15, -2, 12, 20, 20, 12, 3, -8, + -17, -21, -17, -5, 9, 19, 20, 14, 5, -6, -15, -20, -18, -8, 7, 18, + 21, 16, 7, -4, -13, -20, -19, -11, 4, 16, 21, 17, 9, -1, -11, -19, + -20, -13, 1, 14, 20, 18, 11, 1, -9, -18, -20, -15, -2, 11, 20, 19, + 12, 3, -7, -16, -20, -17, -5, 9, 18, 20, 14, 5, -5, -14, -20, -18, + -8, 6, 17, 20, 15, 7, -3, -13, -19, -19, -10, 3, 15, 20, 17, 9, + -1, -11, -18, -20, -13, 0, 13, 20, 18, 10, 1, -9, -17, -20, -15, -3, + 11, 19, 19, 12, 3, -7, -15, -20, -16, -5, 8, 18, 19, 14, 5, -5, + -14, -19, -18, -8, 6, 16, 19, 15, 7, -3, -12, -19, -18, -10, 3, 15, + 19, 16, 9, -1, -10, -18, -19, -13, 0, 13, 19, 17, 10, 1, -9, -16, + -19, -14, -3, 10, 18, 18, 12, 3, -7, -15, -19, -16, -5, 8, 17, 19, + 14, 5, -5, -13, -19, -17, -8, 5, 16, 19, 15, 7, -3, -12, -18, -18, + -10, 2, 14, 19, 16, 9, -1, -10, -17, -19, -12, 0, 12, 18, 17, 10, + 1, -8, -16, -19, -14, -3, 10, 18, 18, 12, 3, -6, -14, -19, -16, -6, + 7, 16, 18, 13, 5, -4, -13, -18, -17, -8, 5, 15, 18, 15, 7, -2, + -11, -17, -18, -10, 2, 13, 18, 16, 9, -1, -10, -16, -18, -12, -1, 11, + 18, 17, 10, 1, -8, -15, -18, -14, -3, 9, 17, 17, 12, 3, -6, -14, + -18, -15, -6, 7, 16, 18, 13, 5, -4, -12, -18, -16, -8, 4, 14, 18, + 14, 7, -2, -11, -17, -17, -10, 2, 13, 18, 15, 8, 0, -9, -16, -17, + -12, -1, 11, 17, 16, 10, 1, -7, -15, -18, -14, -3, 9, 16, 17, 12, + 3, -6, -13, -17, -15, -6, 6, 15, 17, 13, 5, -4, -12, -17, -16, -8, + 4, 14, 17, 14, 7, -2, -10, -16, -17, -10, 1, 12, 17, 15, 8, 0, + -9, -15, -17, -12, -1, 10, 17, 16, 10, 2, -7, -14, -17, -13, -3, 8, + 16, 17, 11, 3, -5, -13, -17, -15, -6, 6, 15, 17, 13, 5, -4, -12, + -16, -16, -8, 4, 13, 17, 14, 7, -2, -10, -16, -16, -10, 1, 12, 17, + 15, 8, 0, -8, -15, -17, -12, -1, 10, 16, 16, 10, 2, -7, -14, -17, + -13, -4, 8, 15, 16, 11, 3, -5, -12, -16, -14, -6, 6, 14, 16, 13, + 5, -3, -11, -16, -15, -8, 3, 13, 16, 14, 7, -2, -10, -15, -16, -10, + 1, 11, 16, 15, 8, 0, -8, -14, -16, -11, -1, 9, 16, 15, 10, 2, + -6, -13, -16, -13, -4, 7, 15, 16, 11, 4, -5, -12, -16, -14, -6, 5, + 14, 16, 12, 5, -3, -11, -15, -15, -8, 3, 12, 16, 13, 7, -1, -9, + -15, -15, -10, 1, 11, 16, 14, 8, 0, -8, -14, -16, -11, -2, 9, 15, + 15, 10, 2, -6, -13, -16, -13, -4, 7, 14, 15, 11, 4, -4, -12, -15, + -14, -6, 5, 13, 15, 12, 5, -3, -10, -15, -14, -8, 3, 12, 15, 13, + 7, -1, -9, -14, -15, -9, 0, 10, 15, 14, 8, 0, -7, -13, -15, -11, + -2, 8, 14, 15, 10, 2, -6, -12, -15, -12, -4, 6, 14, 15, 11, 4, + -4, -11, -15, -13, -6, 4, 13, 15, 12, 5, -3, -10, -14, -14, -8, 2, + 11, 15, 13, 7, -1, -8, -14, -15, -9, 0, 10, 15, 14, 8, 1, -7, + -13, -15, -11, -2, 8, 14, 14, 9, 2, -5, -12, -15, -12, -4, 6, 13, + 15, 11, 4, -4, -11, -14, -13, -6, 4, 12, 15, 12, 5, -2, -9, -14, + -14, -8, 2, 11, 14, 13, 7, -1, -8, -13, -14, -9, 0, 9, 14, 13, + 8, 1, -7, -12, -14, -11, -2, 8, 14, 14, 9, 2, -5, -11, -14, -12, +}; + +// Kalimba: two plucked thumb-piano notes, A5 then E6. +static const int8_t s_kalimba_pcm[8800] = { + 0, 1, 2, 4, 7, 6, 5, 5, 3, -1, -2, -4, -11, -18, -19, -22, + -23, -12, 1, 9, 22, 33, 31, 26, 25, 18, 6, 4, 0, -16, -27, -33, + -47, -56, -42, -26, -11, 19, 46, 50, 52, 57, 42, 23, 22, 15, -8, -19, + -29, -59, -79, -74, -69, -56, -12, 30, 49, 71, 88, 72, 52, 51, 36, 10, + 3, -10, -50, -77, -85, -100, -99, -57, -16, 13, 56, 88, 81, 72, 73, 53, + 28, 27, 15, -21, -44, -61, -94, -109, -86, -62, -35, 17, 59, 68, 78, 86, + 66, 46, 46, 34, 5, -9, -29, -71, -96, -94, -94, -77, -28, 16, 39, 68, + 87, 73, 61, 62, 47, 26, 20, 3, -38, -66, -81, -103, -103, -67, -32, -3, + 41, 72, 70, 70, 74, 58, 41, 42, 28, -6, -29, -52, -90, -106, -91, -74, + -48, 2, 40, 53, 69, 80, 65, 54, 58, 45, 21, 7, -17, -61, -87, -93, + -99, -85, -40, -2, 22, 55, 74, 66, 62, 67, 55, 40, 36, 16, -25, -53, + -74, -102, -104, -75, -47, -18, 26, 55, 58, 65, 72, 60, 52, 55, 40, 9, + -13, -42, -83, -100, -93, -83, -59, -12, 22, 38, 59, 71, 61, 58, 65, 55, + 35, 23, -5, -49, -76, -89, -101, -90, -51, -19, 7, 40, 60, 57, 61, 69, + 61, 52, 50, 28, -10, -39, -66, -97, -102, -80, -59, -31, 11, 37, 44, 57, + 67, 60, 59, 65, 51, 24, 3, -30, -73, -93, -92, -89, -67, -25, 4, 22, + 46, 59, 55, 60, 70, 62, 49, 38, 8, -35, -64, -83, -100, -91, -60, -33, + -8, 25, 44, 46, 56, 67, 64, 61, 62, 40, 5, -24, -56, -90, -97, -83, + -68, -42, -4, 20, 30, 47, 59, 58, 64, 73, 61, 39, 18, -18, -60, -83, + -89, -91, -73, -37, -12, 7, 32, 46, 48, 59, 72, 68, 60, 51, 21, -21, + -50, -75, -96, -91, -66, -46, -21, 10, 28, 34, 49, 63, 64, 68, 71, 52, + 20, -9, -44, -80, -91, -84, -75, -51, -17, 3, 16, 36, 49, 53, 65, 77, + 68, 51, 32, -4, -47, -71, -84, -91, -76, -47, -26, -7, 18, 32, 38, 55, + 70, 71, 69, 63, 33, -6, -36, -65, -89, -87, -70, -55, -33, -4, 12, 21, + 40, 56, 62, 72, 78, 61, 34, 6, -31, -68, -82, -82, -78, -58, -29, -12, + 2, 23, 38, 46, 64, 78, 74, 62, 45, 9, -32, -58, -76, -87, -76, -54, + -38, -20, 4, 18, 28, 48, 66, 72, 76, 72, 45, 9, -21, -53, -79, -82, + -72, -62, -42, -17, -4, 8, 29, 47, 58, 74, 82, 69, 46, 20, -18, -54, + -71, -77, -78, -62, -39, -26, -11, 10, 25, 38, 60, 77, 77, 71, 56, 21, + -17, -44, -66, -81, -74, -59, -47, -31, -10, 3, 16, 39, 59, 70, 80, 78, + 55, 23, -6, -40, -68, -74, -71, -65, -49, -29, -18, -5, 17, 36, 51, 72, + 83, 75, 57, 33, -4, -40, -59, -70, -75, -63, -47, -37, -24, -4, 11, 28, + 53, 73, 78, 77, 65, 33, -2, -30, -55, -72, -70, -61, -54, -40, -23, -11, + 4, 29, 51, 66, 80, 82, 63, 36, 7, -27, -55, -65, -67, -66, -54, -39, + -31, -17, 4, 24, 43, 68, 82, 78, 66, 44, 9, -25, -46, -61, -69, -63, + -52, -46, -34, -17, -3, 17, 44, 66, 77, 81, 72, 44, 12, -16, -43, -62, + -63, -61, -58, -47, -34, -25, -9, 17, 40, 60, 79, 84, 69, 47, 20, -14, + -41, -54, -61, -64, -56, -47, -41, -29, -9, 11, 34, 61, 78, 80, 73, 53, + 21, -10, -32, -51, -62, -59, -55, -53, -44, -29, -16, 5, 34, 58, 73, 82, + 76, 52, 25, -2, -30, -50, -55, -58, -59, -52, -44, -36, -21, 5, 29, 52, + 74, 83, 73, 56, 32, -1, -27, -42, -53, -59, -56, -52, -50, -39, -21, -2, + 23, 52, 72, 79, 76, 61, 32, 4, -19, -39, -52, -54, -55, -57, -51, -40, + -28, -7, 23, 48, 67, 80, 78, 59, 36, 11, -17, -37, -46, -53, -57, -55, + -51, -46, -32, -8, 17, 42, 68, 79, 75, 63, 41, 12, -13, -29, -43, -53, + -54, -55, -56, -48, -33, -15, 11, 42, 64, 75, 78, 66, 41, 16, -6, -27, + -41, -47, -53, -58, -56, -49, -39, -19, 10, 37, 59, 76, 78, 64, 45, 22, + -4, -23, -35, -45, -54, -55, -56, -55, -42, -20, 4, 32, 59, 74, 75, 67, + 49, 23, 1, -16, -33, -44, -49, -55, -60, -55, -43, -27, 0, 31, 55, 70, + 76, 68, 48, 27, 7, -15, -30, -38, -48, -57, -58, -56, -49, -30, -2, 25, + 50, 70, 75, 66, 52, 32, 8, -10, -23, -37, -48, -54, -59, -60, -50, -31, + -8, 20, 49, 66, 72, 69, 55, 32, 13, -4, -21, -34, -43, -53, -61, -60, + -52, -37, -12, 19, 44, 62, 73, 69, 54, 37, 18, -2, -17, -28, -42, -53, + -59, -61, -57, -40, -14, 13, 40, 62, 70, 67, 57, 40, 19, 3, -11, -27, + -40, -50, -59, -64, -57, -42, -20, 9, 38, 57, 67, 68, 58, 40, 24, 8, + -9, -23, -35, -49, -60, -63, -59, -47, -23, 6, 32, 54, 67, 67, 57, 44, + 28, 10, -5, -18, -34, -48, -57, -64, -62, -48, -25, 1, 28, 52, 64, 65, + 59, 46, 29, 14, 0, -16, -31, -44, -57, -65, -62, -50, -31, -3, 26, 47, + 60, 65, 59, 46, 33, 19, 2, -12, -26, -43, -57, -64, -64, -54, -33, -5, + 20, 44, 60, 63, 58, 49, 36, 20, 7, -7, -24, -41, -54, -64, -66, -55, + -35, -11, 17, 41, 55, 61, 59, 50, 37, 25, 12, -5, -21, -36, -53, -64, + -65, -57, -40, -14, 14, 36, 52, 60, 58, 50, 40, 28, 14, 0, -16, -35, + -52, -62, -66, -60, -42, -17, 8, 33, 51, 57, 57, 52, 42, 30, 18, 4, + -14, -32, -48, -62, -67, -60, -44, -22, 5, 30, 46, 55, 57, 52, 43, 34, + 22, 6, -10, -28, -47, -61, -66, -62, -48, -24, 2, 25, 43, 54, 55, 51, + 46, 36, 24, 11, -5, -26, -45, -59, -66, -64, -49, -27, -3, 21, 40, 50, + 53, 52, 46, 37, 28, 15, -3, -22, -41, -58, -67, -63, -51, -31, -6, 18, + 35, 47, 53, 51, 47, 41, 31, 17, 1, -18, -40, -56, -65, -65, -54, -33, + -9, 13, 32, 45, 50, 50, 49, 42, 33, 21, 5, -16, -37, -53, -65, -66, + -54, -36, -14, 10, 29, 41, 48, 51, 48, 43, 37, 25, 7, -12, -33, -52, + -64, -64, -56, -39, -16, 7, 25, 38, 47, 49, 48, 46, 39, 27, 12, -8, + -31, -50, -61, -65, -58, -41, -19, 2, 22, 36, 44, 48, 49, 47, 40, 31, + 15, -6, -27, -46, -61, -65, -58, -43, -23, -1, 18, 32, 41, 47, 48, 47, + 43, 34, 18, -2, -23, -45, -59, -64, -59, -46, -25, -4, 14, 29, 39, 45, + 48, 49, 45, 35, 22, 2, -21, -42, -57, -64, -60, -46, -28, -9, 11, 26, + 36, 43, 48, 49, 46, 39, 25, 5, -17, -38, -55, -63, -59, -48, -32, -11, + 7, 21, 33, 42, 47, 49, 48, 41, 27, 9, -14, -36, -53, -61, -60, -50, + -33, -15, 3, 19, 31, 39, 46, 50, 49, 43, 31, 12, -11, -33, -50, -60, + -60, -50, -36, -18, 0, 15, 27, 37, 45, 49, 50, 46, 33, 15, -7, -29, + -48, -59, -59, -52, -38, -20, -3, 11, 24, 35, 43, 49, 51, 47, 36, 19, + -3, -27, -45, -56, -59, -53, -39, -23, -7, 8, 21, 32, 42, 49, 51, 48, + 39, 22, -1, -23, -42, -55, -58, -53, -41, -26, -10, 5, 18, 30, 40, 48, + 52, 50, 41, 24, 3, -20, -40, -53, -57, -53, -43, -28, -13, 1, 15, 27, + 38, 47, 52, 51, 43, 28, 6, -17, -37, -50, -56, -53, -44, -31, -17, -2, + 12, 24, 36, 46, 52, 52, 45, 30, 9, -13, -33, -49, -55, -53, -45, -33, + -19, -5, 8, 21, 34, 44, 52, 53, 47, 32, 13, -10, -31, -46, -53, -53, + -46, -34, -22, -9, 5, 18, 31, 43, 52, 53, 48, 35, 16, -7, -27, -43, + -52, -52, -46, -37, -25, -11, 2, 15, 29, 42, 50, 54, 50, 37, 18, -3, + -24, -41, -50, -51, -47, -38, -27, -15, -2, 12, 27, 39, 50, 54, 51, 39, + 22, 0, -21, -37, -47, -51, -47, -39, -29, -18, -5, 9, 23, 38, 49, 54, + 52, 42, 24, 3, -17, -35, -46, -49, -47, -41, -31, -20, -8, 6, 21, 36, + 47, 54, 53, 43, 27, 7, -14, -32, -43, -48, -47, -42, -33, -23, -11, 3, + 18, 33, 46, 54, 53, 45, 30, 9, -11, -29, -41, -47, -47, -42, -35, -26, + -14, 0, 15, 31, 45, 53, 54, 47, 32, 12, -8, -26, -38, -45, -46, -43, + -37, -28, -17, -3, 13, 29, 42, 52, 54, 48, 34, 16, -5, -23, -35, -43, + -45, -43, -38, -30, -20, -6, 9, 26, 41, 51, 54, 49, 36, 18, -2, -19, + -33, -41, -44, -43, -39, -32, -22, -9, 6, 24, 39, 50, 54, 50, 38, 21, + 2, -16, -30, -39, -43, -43, -40, -34, -25, -12, 4, 21, 36, 49, 54, 50, + 40, 24, 5, -13, -27, -37, -42, -43, -41, -36, -27, -15, 1, 18, 35, 47, + 53, 51, 41, 26, 7, -10, -24, -35, -40, -42, -42, -37, -29, -18, -3, 15, + 32, 45, 53, 52, 42, 28, 11, -7, -22, -32, -39, -42, -42, -38, -32, -20, + -5, 12, 29, 44, 52, 51, 44, 30, 13, -4, -18, -30, -37, -41, -42, -40, + -34, -23, -8, 9, 27, 42, 50, 52, 45, 32, 16, -1, -15, -27, -35, -40, + -42, -41, -35, -25, -11, 7, 24, 40, 49, 52, 46, 34, 19, 2, -13, -24, + -33, -39, -42, -41, -37, -28, -14, 4, 22, 38, 48, 51, 46, 36, 21, 5, + -9, -22, -31, -38, -41, -42, -39, -30, -17, 1, 19, 35, 46, 50, 47, 37, + 23, 8, -7, -19, -29, -36, -41, -43, -40, -32, -19, -2, 16, 33, 45, 50, + 47, 38, 25, 11, -4, -16, -26, -35, -40, -43, -41, -34, -21, -5, 13, 31, + 43, 49, 47, 39, 27, 13, 0, -13, -24, -33, -39, -43, -42, -36, -24, -8, + 11, 28, 41, 48, 47, 40, 29, 16, 2, -10, -21, -31, -39, -43, -43, -38, + -26, -10, 8, 25, 39, 46, 47, 41, 31, 18, 5, -7, -19, -29, -37, -42, + -44, -39, -28, -13, 5, 23, 37, 45, 47, 42, 32, 20, 8, -5, -16, -27, + -36, -42, -44, -40, -31, -16, 2, 20, 34, 44, 46, 42, 34, 23, 10, -2, + -14, -25, -35, -41, -44, -41, -32, -18, -1, 17, 32, 42, 45, 42, 35, 24, + 13, 1, -11, -23, -33, -41, -44, -42, -34, -21, -3, 15, 30, 40, 44, 42, + 36, 26, 15, 3, -9, -20, -31, -40, -44, -43, -36, -23, -6, 12, 27, 38, + 43, 42, 37, 28, 18, 6, -6, -18, -29, -38, -44, -44, -37, -25, -9, 9, + 25, 36, 42, 42, 37, 30, 20, 9, -3, -15, -27, -37, -44, -44, -39, -27, + -11, 6, 22, 34, 41, 42, 38, 31, 22, 11, 0, -13, -25, -36, -43, -45, + -40, -29, -14, 3, 19, 32, 39, 41, 38, 32, 24, 14, 2, -10, -23, -34, + -42, -45, -41, -31, -16, 1, 17, 29, 37, 40, 38, 33, 26, 16, 5, -8, + -21, -33, -41, -45, -42, -33, -18, -2, 14, 27, 36, 39, 38, 34, 28, 18, + 7, -5, -19, -31, -40, -45, -43, -34, -20, -4, 11, 25, 34, 38, 38, 35, + 29, 21, 10, -3, -16, -29, -39, -44, -43, -35, -23, -7, 9, 22, 32, 37, + 38, 36, 30, 23, 12, 0, -14, -27, -38, -44, -43, -37, -25, -9, 6, 20, + 30, 36, 37, 36, 32, 24, 15, 2, -12, -25, -36, -43, -44, -38, -26, -12, + 4, 17, 28, 34, 37, 36, 33, 26, 17, 5, -9, -23, -35, -42, -44, -39, + -28, -14, 1, 15, 25, 33, 36, 36, 34, 28, 19, 7, -7, -21, -33, -41, + -44, -40, -30, -16, -2, 12, 23, 31, 35, 36, 34, 29, 21, 10, -4, -19, + -31, -40, -43, -40, -31, -18, -4, 10, 21, 29, 34, 36, 35, 31, 23, 12, + -2, -16, -30, -39, -43, -41, -33, -20, -6, 7, 18, 27, 33, 36, 36, 32, + 25, 14, 1, -14, -28, -38, -42, -41, -34, -22, -9, 4, 16, 25, 32, 35, + 36, 33, 27, 16, 3, -12, -25, -36, -42, -41, -35, -24, -11, 2, 14, 23, + 30, 35, 36, 34, 28, 19, 6, -9, -23, -35, -41, -41, -36, -26, -13, -1, + 11, 21, 29, 34, 36, 35, 30, 21, 8, -7, -21, -33, -40, -41, -36, -27, + -15, -3, 9, 19, 27, 33, 36, 35, 31, 23, 10, -4, -19, -31, -39, -41, + -37, -28, -17, -5, 6, 17, 25, 32, 36, 36, 32, 24, 12, -2, -17, -29, + -37, -40, -37, -30, -19, -8, 4, 14, 23, 30, 35, 36, 33, 26, 15, 0, + -14, -27, -36, -40, -37, -31, -21, -10, 2, 12, 21, 29, 34, 37, 34, 28, + 17, 3, -12, -25, -35, -39, -38, -32, -23, -12, -1, 10, 20, 28, 34, 37, + 35, 29, 19, 5, -10, -23, -33, -38, -37, -32, -24, -14, -3, 8, 17, 26, + 33, 36, 36, 31, 21, 7, -7, -21, -31, -37, -37, -33, -26, -16, -5, 5, + 15, 25, 32, 36, 36, 32, 22, 9, -5, -19, -30, -36, -37, -34, -27, -18, + -8, 3, 13, 23, 31, 36, 37, 33, 24, 12, -3, -17, -28, -35, -36, -34, + -28, -20, -10, 1, 11, 21, 30, 35, 37, 34, 26, 14, -1, -14, -26, -33, + -36, -34, -29, -21, -12, -2, 9, 19, 28, 35, 37, 35, 27, 16, 2, -12, + -24, -32, -35, -34, -30, -23, -14, -4, 7, 17, 27, 34, 37, 35, 29, 18, + 4, -10, -22, -30, -34, -34, -30, -24, -16, -6, 5, 15, 25, 33, 37, 36, + 30, 19, 6, -8, -20, -29, -33, -34, -31, -25, -18, -8, 2, 13, 24, 32, + 36, 36, 31, 21, 8, -5, -18, -27, -32, -34, -31, -26, -19, -10, 0, 11, + 22, 31, 36, 37, 32, 23, 10, -3, -15, -25, -31, -33, -32, -27, -21, -12, + -2, 9, 20, 29, 35, 37, 33, 24, 12, -1, -13, -23, -30, -32, -32, -28, + -22, -14, -4, 7, 18, 28, 35, 37, 34, 26, 14, 1, -11, -21, -28, -32, + -32, -29, -24, -16, -6, 5, 16, 27, 34, 37, 34, 27, 16, 3, -9, -19, + -27, -31, -32, -30, -25, -18, -8, 3, 14, 25, 33, 36, 35, 28, 18, 6, + -7, -17, -25, -30, -31, -30, -26, -19, -10, 1, 12, 23, 32, 36, 35, 29, + 19, 8, -5, -15, -23, -29, -31, -31, -27, -21, -12, -1, 11, 22, 31, 35, + 35, 30, 21, 10, -2, -13, -22, -28, -31, -31, -28, -22, -14, -3, 8, 20, + 29, 35, 35, 31, 22, 11, 0, -11, -20, -26, -30, -31, -29, -24, -16, -5, + 6, 18, 28, 34, 35, 31, 24, 13, 2, -9, -18, -25, -29, -31, -29, -25, + -18, -7, 4, 16, 26, 33, 35, 32, 25, 15, 4, -7, -16, -23, -28, -30, + -30, -25, -17, -5, 5, 17, 24, 30, 28, 21, 13, 5, 6, 4, 6, -5, + -12, -23, -28, -31, -37, -34, -34, -8, 16, 51, 65, 66, 53, 31, 17, -12, + -29, -64, -71, -70, -40, -4, 20, 38, 30, 40, 28, 31, 4, -19, -37, -37, + -3, 20, 52, 36, 29, 1, -10, -28, -57, -74, -94, -54, -14, 62, 93, 108, + 91, 61, 45, -1, -30, -94, -110, -113, -62, -6, 34, 61, 49, 61, 42, 44, + 2, -32, -63, -63, -20, 14, 58, 47, 46, 17, 8, -14, -49, -77, -106, -73, + -34, 43, 78, 102, 92, 73, 60, 19, -13, -81, -105, -118, -75, -25, 18, 48, + 46, 63, 52, 56, 14, -22, -60, -66, -31, 1, 46, 42, 48, 25, 21, -1, + -35, -70, -104, -82, -50, 23, 61, 91, 89, 80, 73, 38, 5, -64, -97, -120, + -85, -42, 1, 34, 40, 62, 58, 66, 27, -10, -54, -66, -41, -10, 34, 35, + 46, 30, 32, 12, -20, -60, -99, -88, -63, 4, 42, 78, 82, 84, 82, 56, + 24, -46, -86, -118, -93, -58, -15, 18, 31, 58, 62, 75, 40, 4, -46, -63, + -47, -20, 21, 26, 41, 31, 40, 23, -5, -48, -92, -91, -74, -13, 24, 63, + 73, 84, 89, 71, 42, -27, -72, -112, -97, -70, -30, 1, 20, 51, 63, 81, + 52, 17, -35, -58, -51, -28, 8, 16, 34, 31, 45, 33, 9, -35, -81, -90, + -81, -28, 6, 47, 61, 80, 92, 84, 58, -7, -56, -103, -97, -80, -44, -16, + 6, 41, 61, 85, 62, 31, -23, -50, -52, -34, -3, 6, 26, 27, 48, 41, + 23, -21, -69, -87, -84, -41, -11, 30, 47, 73, 92, 93, 73, 13, -39, -91, + -94, -86, -56, -32, -8, 29, 56, 86, 71, 44, -10, -40, -50, -38, -13, -5, + 16, 22, 47, 47, 35, -8, -55, -80, -85, -50, -25, 13, 32, 63, 88, 99, + 85, 32, -20, -76, -88, -89, -66, -47, -23, 15, 48, 84, 77, 55, 3, -29, + -45, -39, -21, -14, 5, 14, 44, 50, 44, 6, -41, -71, -82, -57, -37, -3, + 16, 51, 81, 101, 95, 49, -2, -60, -79, -88, -73, -60, -37, 0, 38, 79, + 81, 65, 16, -17, -38, -37, -26, -22, -6, 6, 38, 50, 52, 18, -26, -60, + -76, -60, -47, -18, 0, 37, 71, 100, 101, 64, 16, -42, -67, -84, -76, -70, + -51, -16, 26, 71, 81, 72, 28, -4, -29, -33, -29, -29, -16, -4, 31, 48, + 56, 28, -12, -48, -68, -60, -53, -30, -16, 22, 59, 95, 104, 77, 33, -23, + -53, -76, -76, -78, -63, -32, 12, 61, 79, 77, 39, 9, -19, -27, -29, -33, + -25, -14, 21, 44, 58, 36, 1, -35, -58, -58, -57, -41, -30, 6, 45, 87, + 104, 86, 48, -5, -37, -66, -74, -83, -74, -47, -3, 48, 74, 79, 48, 21, + -7, -18, -27, -35, -33, -23, 11, 37, 58, 42, 13, -22, -47, -52, -57, -48, + -42, -9, 30, 77, 101, 93, 61, 12, -21, -54, -68, -84, -81, -61, -18, 34, + 66, 78, 55, 32, 4, -9, -22, -35, -38, -32, 0, 29, 54, 46, 23, -10, + -35, -45, -55, -53, -52, -24, 14, 64, 94, 95, 71, 28, -5, -39, -59, -83, + -87, -73, -33, 19, 56, 74, 59, 41, 16, 2, -15, -32, -42, -40, -10, 20, + 49, 47, 30, 1, -22, -36, -50, -55, -60, -37, -1, 50, 85, 95, 78, 42, + 11, -24, -48, -78, -89, -83, -47, 3, 44, 68, 61, 48, 26, 13, -7, -27, + -43, -45, -20, 9, 42, 45, 35, 10, -10, -26, -42, -54, -64, -48, -16, 35, + 74, 91, 82, 54, 26, -8, -35, -70, -88, -90, -60, -13, 30, 59, 59, 53, + 36, 24, 3, -21, -42, -49, -30, -1, 33, 42, 38, 18, 1, -15, -34, -50, + -66, -57, -30, 20, 61, 85, 83, 63, 40, 8, -21, -59, -85, -94, -71, -28, + 16, 48, 55, 55, 43, 35, 13, -12, -38, -51, -37, -11, 23, 36, 38, 23, + 10, -4, -24, -44, -66, -63, -42, 5, 47, 76, 81, 69, 51, 23, -5, -47, + -78, -95, -79, -42, 1, 36, 49, 55, 49, 44, 24, -2, -32, -50, -43, -20, + 13, 29, 36, 27, 18, 6, -13, -36, -63, -67, -52, -10, 32, 65, 76, 72, + 60, 37, 10, -33, -69, -93, -85, -54, -14, 22, 40, 52, 52, 52, 35, 9, + -25, -47, -46, -28, 3, 21, 31, 27, 24, 15, -2, -27, -57, -68, -60, -23, + 17, 52, 69, 71, 66, 49, 24, -18, -57, -88, -88, -64, -27, 8, 29, 46, + 52, 57, 44, 20, -15, -42, -47, -34, -7, 12, 25, 26, 28, 23, 8, -17, + -49, -67, -65, -34, 3, 39, 59, 68, 69, 59, 38, -3, -44, -80, -88, -72, + -40, -7, 17, 38, 50, 61, 53, 31, -5, -35, -46, -38, -15, 2, 18, 23, + 29, 28, 18, -7, -40, -63, -67, -43, -10, 25, 48, 63, 70, 66, 50, 13, + -30, -70, -85, -77, -50, -20, 5, 28, 46, 62, 59, 41, 6, -26, -43, -40, + -22, -6, 10, 18, 29, 32, 26, 3, -30, -57, -67, -49, -22, 12, 36, 55, + 68, 71, 61, 27, -15, -58, -79, -79, -59, -33, -9, 17, 39, 61, 64, 50, + 17, -16, -38, -40, -28, -14, 1, 11, 26, 34, 33, 13, -20, -49, -64, -53, + -31, -1, 23, 45, 63, 73, 68, 41, 0, -45, -71, -78, -64, -44, -21, 5, + 30, 57, 66, 58, 28, -6, -30, -38, -31, -21, -7, 4, 21, 34, 38, 22, + -9, -40, -59, -55, -39, -12, 10, 34, 55, 72, 74, 52, 15, -31, -61, -74, + -68, -53, -33, -8, 20, 51, 66, 64, 38, 5, -22, -34, -32, -26, -15, -4, + 15, 31, 40, 29, 1, -30, -52, -54, -44, -22, -2, 22, 46, 68, 77, 61, + 28, -16, -49, -68, -68, -60, -44, -21, 8, 42, 63, 67, 46, 16, -12, -28, + -31, -30, -22, -12, 8, 27, 41, 34, 11, -20, -44, -51, -46, -30, -13, 10, + 36, 62, 77, 68, 40, -1, -36, -59, -66, -64, -53, -34, -4, 32, 59, 68, + 53, 27, -2, -20, -29, -31, -28, -20, 0, 21, 39, 38, 19, -10, -35, -46, + -46, -36, -23, -2, 24, 54, 74, 73, 51, 13, -22, -49, -61, -66, -61, -45, + -17, 21, 51, 67, 58, 36, 8, -11, -24, -31, -32, -27, -9, 14, 36, 40, + 26, 0, -26, -40, -44, -39, -31, -13, 13, 44, 69, 75, 59, 25, -8, -37, + -54, -65, -65, -55, -29, 8, 43, 64, 61, 43, 18, -2, -17, -28, -34, -33, + -17, 7, 31, 39, 30, 8, -16, -32, -40, -40, -37, -23, 1, 34, 62, 74, + 64, 37, 5, -25, -45, -61, -68, -62, -41, -4, 32, 58, 61, 49, 27, 8, + -9, -24, -34, -37, -24, -2, 24, 37, 33, 15, -7, -24, -35, -39, -41, -31, + -11, 22, 53, 71, 68, 46, 18, -12, -34, -55, -67, -68, -51, -17, 20, 50, + 59, 53, 35, 18, -1, -18, -33, -40, -31, -10, 17, 33, 34, 20, 2, -15, + -28, -36, -43, -38, -21, 10, 43, 65, 68, 53, 29, 1, -23, -47, -65, -72, + -59, -29, 8, 40, 55, 54, 42, 27, 9, -11, -29, -40, -36, -18, 9, 27, + 33, 24, 9, -6, -20, -32, -42, -43, -30, -1, 32, 58, 66, 57, 38, 14, + -11, -37, -60, -73, -66, -40, -4, 30, 49, 54, 46, 35, 18, -2, -24, -39, + -39, -25, 0, 21, 30, 26, 15, 2, -12, -26, -40, -45, -37, -12, 20, 49, + 62, 59, 46, 25, 2, -26, -53, -71, -71, -50, -16, 18, 41, 51, 49, 41, + 27, 7, -17, -36, -41, -31, -8, 13, 26, 26, 19, 9, -4, -18, -36, -45, + -43, -21, 9, 39, 56, 59, 51, 35, 14, -15, -44, -67, -73, -58, -28, 6, + 31, 46, 49, 46, 35, 16, -9, -31, -41, -35, -15, 5, 20, 24, 21, 15, + 4, -11, -30, -44, -46, -30, -2, 28, 49, 57, 54, 43, 25, -3, -33, -61, + -73, -64, -38, -6, 21, 39, 47, 49, 42, 25, 0, -25, -39, -38, -22, -2, + 13, 20, 22, 19, 11, -3, -23, -40, -47, -36, -12, 17, 40, 52, 55, 49, + 35, 9, -22, -53, -70, -68, -47, -18, 10, 31, 43, 50, 47, 34, 9, -17, + -35, -39, -27, -10, 6, 15, 21, 22, 17, 5, -15, -36, -47, -40, -20, 7, + 30, 46, 53, 52, 43, 21, -10, -44, -65, -69, -54, -28, -2, 21, 38, 49, + 51, 41, 19, -9, -30, -38, -30, -16, -1, 10, 18, 23, 22, 12, -7, -29, + -44, -43, -27, -3, 20, 38, 50, 54, 49, 31, 2, -33, -58, -68, -58, -37, + -13, 11, 30, 46, 53, 47, 27, 0, -23, -35, -32, -22, -8, 3, 14, 22, + 25, 18, 0, -22, -40, -44, -33, -12, 10, 29, 44, 53, 54, 40, 13, -21, + -50, -65, -61, -45, -23, 0, 21, 41, 53, 52, 36, 10, -16, -31, -33, -26, + -15, -4, 8, 19, 27, 23, 8, -15, -35, -42, -36, -19, 0, 20, 37, 51, + 56, 47, 24, -10, -40, -59, -61, -51, -33, -11, 11, 34, 50, 55, 42, 19, + -7, -25, -31, -28, -20, -10, 2, 16, 26, 27, 15, -7, -28, -39, -38, -25, + -8, 11, 29, 46, 56, 52, 33, 2, -30, -52, -59, -54, -40, -21, 1, 26, + 46, 55, 48, 27, 2, -18, -28, -29, -25, -17, -4, 11, 25, 29, 20, 1, + -21, -35, -38, -29, -16, 1, 20, 40, 54, 56, 41, 13, -18, -44, -55, -56, + -47, -31, -9, 17, 40, 54, 52, 35, 11, -10, -23, -28, -28, -22, -11, 5, + 21, 29, 24, 8, -14, -29, -36, -32, -22, -7, 11, 32, 50, 57, 47, 23, + -7, -34, -50, -55, -51, -39, -20, 7, 33, 51, 53, 41, 19, -2, -17, -26, + -29, -27, -17, -1, 17, 28, 27, 14, -6, -23, -32, -32, -27, -15, 2, 24, + 45, 56, 52, 32, 4, -23, -42, -52, -53, -46, -29, -4, 24, 46, 53, 46, + 27, 7, -10, -22, -29, -30, -23, -8, 11, 26, 29, 19, 1, -16, -27, -31, + -29, -21, -6, 15, 38, 53, 54, 39, 14, -13, -34, -47, -53, -51, -38, -14, + 14, 39, 51, 49, 34, 15, -2, -16, -27, -32, -28, -15, 5, 22, 28, 22, + 7, -9, -22, -29, -31, -26, -14, 7, 30, 49, 54, 44, 23, -2, -24, -41, + -51, -54, -45, -24, 4, 31, 48, 50, 39, 23, 6, -10, -23, -32, -32, -21, + -2, 17, 27, 24, 12, -2, -16, -25, -30, -29, -21, -2, 22, 43, 53, 47, + 30, 8, -14, -33, -47, -55, -50, -33, -6, 22, 42, 49, 43, 30, 14, -3, + -19, -31, -34, -26, -8, 11, 23, 25, 16, 4, -9, -20, -28, -31, -26, -10, + 13, 36, 49, 49, 36, 17, -4, -25, -42, -54, -54, -41, -16, 13, 35, 46, + 45, 36, 22, 5, -13, -28, -35, -30, -15, 4, 19, 24, 19, 9, -3, -14, + -25, -31, -30, -17, 5, 28, 45, 48, 41, 25, 6, -15, -35, -51, -56, -47, + -25, 3, 27, 42, 45, 40, 29, 13, -6, -24, -34, -33, -20, -2, 14, 21, + 20, 13, 4, -8, -20, -30, -32, -23, -4, 20, 38, 46, 43, 31, 15, -6, + -27, -46, -56, -52, -33, -7, 18, 36, 43, 42, 34, 21, 2, -18, -32, -35, + -25, -9, 8, 18, 20, 16, 9, -2, -15, -27, -33, -28, -11, 11, 31, 43, + 44, 36, 23, 4, -18, -40, -54, -55, -41, -17, 9, 29, 40, 43, 39, 28, + 10, -11, -29, -35, -29, -14, 2, 13, 19, 18, 13, 4, -9, -23, -32, -31, + -17, 3, 24, 37, 42, 39, 29, 13, -9, -32, -50, -55, -46, -25, -1, 20, + 35, 42, 42, 34, 17, -4, -24, -34, -31, -20, -4, 8, 16, 18, 17, 10, + -3, -18, -30, -32, -23, -4, 16, 31, 39, 40, 34, 21, 0, -24, -45, -55, + -50, -33, -10, 12, 29, 40, 44, 39, 25, 3, -18, -31, -32, -24, -10, 2, + 12, 17, 19, 14, 3, -12, -26, -32, -26, -11, 8, 24, 35, 40, 38, 28, + 9, -15, -38, -52, -52, -39, -19, 3, 21, 36, 44, 43, 31, 11, -11, -27, + -32, -27, -16, -4, 7, 15, 19, 18, 9, -6, -22, -30, -29, -16, 0, 17, + 30, 38, 40, 34, 18, -6, -30, -48, -52, -44, -27, -6, 13, 30, 42, 45, + 37, 19, -3, -21, -30, -29, -20, -9, 2, 11, 19, 20, 13, 0, -17, -28, + -29, -21, -6, 10, 24, 34, 40, 38, 25, 3, -22, -42, -50, -47, -33, -15, + 4, 23, 38, 45, 41, 26, 4, -15, -27, -29, -24, -15, -4, 7, 17, 21, + 17, 5, -11, -24, -29, -24, -12, 2, 17, 30, 39, 40, 31, 12, -13, -35, + -47, -48, -38, -23, -4, 16, 33, 44, 44, 32, 12, -8, -22, -28, -26, -19, + -10, 2, 14, 21, 20, 10, -5, -19, -27, -25, -17, -4, 10, 24, 36, 41, + 36, 19, -4, -27, -42, -47, -42, -30, -13, 7, 27, 42, 45, 37, 19, -1, + -17, -25, -27, -23, -15, -3, 10, 19, 22, 15, 1, -14, -24, -25, -20, -10, + 3, 18, 32, 41, 39, 26, 5, -19, -36, -45, -44, -35, -21, -1, 20, 37, + 45, 41, 26, 7, -10, -21, -26, -25, -20, -9, 5, 17, 22, 18, 6, -8, + -20, -24, -22, -15, -4, 11, 27, 38, 41, 32, 12, -10, -29, -41, -44, -40, + -28, -10, 12, 32, 43, 43, 31, 14, -3, -17, -24, -27, -23, -14, 0, 13, + 21, 20, 10, -3, -15, -21, -23, -19, -10, 4, 21, 35, 41, 36, 20, -2, + -22, -36, -43, -42, -34, -18, 4, 25, 40, 43, 35, 20, 4, -11, -21, -27, + -26, -19, -6, 9, 19, 21, 14, 2, -10, -18, -22, -21, -14, -2, 14, 30, + 40, 38, 25, 6, -14, -30, -40, -43, -38, -25, -4, 18, 35, 43, 38, 26, + 11, -4, -17, -25, -28, -23, -11, 4, 16, 21, 17, 7, -5, -14, -20, -22, + -18, -8, 8, 25, 37, 39, 30, 13, -6, -23, -35, -42, -41, -31, -13, 10, + 29, 40, 40, 31, 17, 2, -12, -23, -29, -27, -16, -2, 12, 19, 18, 11, + 1, -9, -17, -22, -21, -13, 1, 19, 33, 38, 33, 20, 2, -15, -30, -40, + -43, -36, -20, 2, 23, 36, 40, 34, 23, 9, -6, -19, -28, -29, -21, -7, + 8, 17, 19, 14, 5, -4, -13, -20, -23, -18, -5, 12, 28, 37, 35, 25, + 9, -8, -24, -37, -43, -40, -27, -6, 15, 31, 38, 37, 28, 16, 1, -14, + -26, -30, -25, -12, 2, 14, 18, 16, 9, 0, -9, -18, -23, -21, -10, 6, + 23, 33, 35, 28, 16, 0, -17, -32, -42, -42, -33, -14, 7, 25, 36, 37, + 32, 22, 7, -9, -22, -30, -27, -17, -3, 9, 16, 17, 12, 5, -5, -15, + -22, -23, -15, 0, 17, 29, 34, 31, 21, 7, -9, -26, -39, -43, -37, -21, + -1, 18, 31, 37, 35, 27, 14, -2, -18, -28, -29, -21, -8, 5, 13, 16, + 15, 9, 0, -11, -20, -23, -18, -6, 10, 24, 32, 32, 25, 14, -2, -19, + -34, -42, -40, -27, -8, 11, 26, 34, 36, 31, 20, 4, -13, -25, -29, -24, + -13, 0, 10, 15, 16, 12, 5, -6, -17, -23, -21, -11, 4, 19, 28, 31, + 28, 19, 5, -12, -29, -40, -42, -32, -15, 4, 20, 31, 36, 34, 26, 11, + -7, -22, -29, -27, -17, -5, 5, 13, 16, 15, 9, -1, -13, -21, -22, -15, + -1, 13, 24, 30, 30, 24, 12, -5, -23, -37, -42, -36, -22, -4, 13, 26, + 35, 36, 30, 17, -1, -17, -27, -28, -21, -10, 1, 9, 15, 16, 12, 3, + -9, -19, -22, -17, -6, 7, 19, 27, 30, 27, 17, 2, -16, -32, -40, -38, + -27, -11, 6, 21, 32, 37, 34, 23, 6, -11, -24, -27, -23, -15, -4, 5, + 13, 17, 15, 7, -4, -16, -21, -19, -11, 2, 14, 23, 29, 29, 22, 8, + -10, -27, -38, -39, -31, -18, -1, 15, 28, 36, 36, 28, 12, -5, -19, -26, + -25, -18, -9, 1, 10, 16, 17, 11, 0, -12, -19, -20, -14, -3, 8, 19, + 27, 30, 26, 14, -3, -21, -34, -39, -34, -23, -8, 8, 23, 34, 37, 32, + 18, 1, -14, -24, -25, -21, -14, -4, 7, 15, 18, 14, 4, -7, -17, -20, + -16, -8, 3, 14, 23, 29, 28, 20, 4, -14, -29, -37, -36, -28, -15, 1, + 17, 30, 37, 35, 23, 7, -9, -20, -25, -23, -17, -8, 2, 12, 18, 16, + 8, -3, -13, -18, -17, -11, -2, 9, 19, 27, 30, 24, 10, -7, -23, -34, + -36, -31, -21, -6, 11, 26, 35, 36, 28, 13, -3, -16, -23, -24, -21, -13, + -2, 9, 16, 18, 12, 1, -9, -16, -17, -14, -6, 4, 15, 25, 30, 27, + 16, -1, -17, -30, -35, -33, -26, -12, 4, 20, 33, 37, 31, 19, 3, -11, + -20, -24, -23, -17, -7, 5, 14, 18, 14, 5, -5, -13, -17, -15, -10, -1, + 10, 21, 28, 28, 20, 5, -11, -25, -33, -34, -29, -18, -3, 14, 29, 36, + 34, 23, 9, -5, -16, -23, -24, -20, -11, 1, 11, 17, 16, 9, -1, -10, + -15, -16, -13, -6, 5, 17, 26, 29, 24, 11, -5, -19, -29, -34, -32, -24, + -9, 8, 24, 34, 35, 27, 15, 1, -12, -20, -24, -23, -15, -4, 8, 16, + 17, 12, 3, -6, -12, -16, -15, -10, 0, 12, 23, 29, 26, 16, 2, -13, + -25, -32, -33, -28, -16, 1, 18, 31, 35, 30, 20, 6, -6, -17, -23, -24, + -19, -9, 4, 13, 17, 14, 7, -2, -9, -14, -16, -13, -4, 7, 19, 27, + 27, 20, 7, -7, -20, -29, -33, -31, -21, -5, 12, 27, 33, 32, 24, 12, + -1, -13, -22, -25, -22, -13, -1, 10, 15, 15, 10, 2, -6, -12, -16, -15, + -8, 3, 15, 24, 27, 23, 12, -1, -14, -26, -32, -33, -25, -11, 6, 22, + 31, 33, 27, 17, 5, -8, -19, -25, -24, -17, -5, 6, 13, 15, 12, 6, + -2, -9, -15, -16, -12, -2, 10, 21, 26, 24, 16, 5, -9, -21, -30, -33, + -29, -17, 0, 16, 27, 32, 30, 22, 10, -3, -15, -23, -25, -20, -10, 2, + 11, 15, 13, 9, 2, -6, -13, -16, -14, -6, 6, 17, 24, 25, 20, 10, + -3, -16, -27, -33, -31, -22, -7, 10, 23, 30, 31, 25, 15, 3, -11, -21, + -25, -22, -14, -2, 7, 13, 14, 11, 5, -2, -10, -16, -16, -10, 1, 13, + 21, 25, 22, 14, 3, -10, -23, -31, -33, -26, -12, 4, 18, 27, 31, 28, + 20, 8, -6, -18, -24, -24, -17, -7, 3, 11, 14, 13, 9, 1, -7, -14, + -16, -12, -3, 8, 18, 23, 23, 17, 8, -5, -18, -29, -33, -29, -18, -3, + 12, 24, 29, 29, 24, 13, 0, -13, -22, -25, -20, -11, -1, 8, 13, 14, + 11, 5, -4, -12, -16, -14, -7, 4, 14, 21, 23, 20, 12, 1, -13, -25, + -32, -31, -22, -8, 6, 19, 27, 30, 27, 18, 5, -9, -20, -24, -22, -15, + -5, 4, 11, 14, 13, 8, 0, -9, -15, -15, -10, 0, 10, 18, 22, 21, + 16, 6, -7, -21, -30, -31, -25, -14, 1, 14, 24, 29, 29, 22, 10, -4, + -16, -23, -23, -18, -9, 0, 8, 13, 14, 11, 3, -6, -13, -16, -12, -4, + 6, 14, 20, 22, 19, 10, -2, -16, -27, -31, -28, -18, -5, 8, 20, 28, + 30, 26, 15, 1, -12, -21, -23, -20, -13, -4, 5, 12, 15, 13, 7, -2, + -11, -15, -14, -7, 2, 10, 18, 21, 21, 14, 3, -11, -23, -29, -29, -22, + -11, 3, 15, 25, 30, 28, 20, 7, -7, -18, -22, -21, -16, -8, 1, 9, + 14, 15, 10, 1, -8, -14, -14, -10, -2, 6, 14, 20, 21, 17, 8, -5, + -18, -27, -29, -25, -15, -3, 10, 21, 28, 29, 23, 12, -2, -14, -21, -22, + -19, -12, -3, 6, 13, 15, 12, 4, -5, -11, -14, -12, -6, 2, 11, 18, + 21, 20, 12, 0, -13, -24, -28, -27, -19, -8, 4, 17, 26, 30, 26, 16, + 3, -9, -18, -22, -20, -15, -7, 3, 11, 15, 14, 8, -1, -9, -13, -12, + -8, -1, 7, 15, 20, 21, 15, 4, -8, -20, -26, -27, -22, -13, -1, 12, + 23, 29, 28, 20, 8, -5, -15, -20, -21, -18, -10, -1, 8, 14, 15, 10, + 2, -6, -11, -13, -10, -5, 3, 12, 19, 21, 18, 9, -3, -15, -24, -27, + -25, -17, -6, 7, 19, 27, 29, 24, 13, 0, -11, -18, -21, -20, -14, -5, + 5, 12, 15, 12, 5, -3, -9, -12, -11, -7, 0, 8, 16, 21, 20, 12, + 1, -11, -20, -26, -26, -21, -11, 2, 15, 25, 29, 26, 17, 5, -6, -15, + -21, -21, -17, -9, 1, 10, 14, 14, 8, 1, -6, -11, -12, -10, -4, 4, + 13, 19, 20, 15, 6, -6, -16, -23, -26, -23, -16, -4, 10, 21, 28, 27, + 21, 10, -2, -12, -19, -22, -19, -12, -2, 7, 13, 14, 10, 4, -3, -9, + -11, -11, -7, 1, 10, 17, 20, 17, 9, -1, -12, -20, -25, -25, -19, -9, + 5, 17, 26, 28, 23, 14, 3, -8, -16, -21, -21, -15, -6, 4, 11, 14, + 12, 7, 0, -6, -10, -12, -9, -3, 6, 15, 19, 19, 13, 3, -7, -17, + -23, -25, -22, -13, 0, 13, 23, 27, 25, 18, 8, -3, -13, -20, -22, -18, + -10, 0, 9, 13, 13, 9, 3, -3, -9, -12, -11, -6, 3, 11, 18, 19, + 15, 7, -3, -13, -21, -25, -24, -17, -5, 8, 19, 26, 26, 21, 12, 1, + -9, -18, -22, -20, -13, -4, 5, 11, 13, 11, 6, 0, -7, -11, -12, -8, + -1, 8, 15, 18, 17, 10, 1, -9, -18, -24, -25, -20, -10, 3, 15, 23, + 26, 23, 16, 6, -5, -15, -21, -21, -16, -7, 2, 9, 13, 12, 8, 3, + -4, -9, -12, -10, -4, 5, 13, 17, 17, 13, 5, -4, -14, -22, -25, -23, + -14, -2, 11, 20, 25, 25, 19, 10, -1, -11, -19, -22, -18, -11, -2, 6, + 11, 12, 10, 5, -1, -7, -11, -11, -7, 1, 9, 15, 17, 15, 9, 0, + -10, -19, -24, -24, -18, -7, 6, 16, 23, 25, 22, 14, 4, -7, -17, -21, + -20, -14, -5, 3, 9, 12, 12, 8, 2, -5, -10, -12, -9, -2, 6, 13, + 16, 16, 12, 4, -6, -16, -23, -25, -20, -11, 1, 12, 21, 24, 23, 18, + 8, -3, -13, -20, -21, -16, -9, 0, 7, 11, 12, 10, 5, -2, -9, -12, + -10, -5, 3, 10, 15, 16, 14, 7, -2, -12, -20, -24, -22, -15, -4, 8, + 17, 23, 24, 20, 12, 1, -10, -18, -21, -18, -12, -4, 4, 10, 12, 12, + 7, 0, -6, -11, -11, -7, 0, 7, 13, 16, 15, 10, 2, -8, -17, -23, + -23, -18, -8, 3, 13, 21, 24, 22, 16, 5, -6, -15, -20, -19, -14, -7, + 1, 8, 12, 13, 9, 3, -4, -9, -11, -9, -3, 4, 10, 15, 16, 13, + 6, -4, -14, -21, -23, -20, -12, -1, 9, 18, 23, 24, 19, 10, -2, -12, + -18, -20, -17, -10, -3, 5, 10, 13, 11, 6, -1, -7, -11, -10, -5, 1, + 8, 13, 15, 14, 9, 0, -10, -18, -23, -21, -15, -6, 5, 15, 21, 24, + 21, 13, 3, -8, -16, -19, -18, -13, -6, 2, 9, 12, 12, 8, 2, -5, + -9, -10, -7, -2, 5, 11, 15, 15, 11, 4, -6, -15, -21, -22, -18, -10, + 0, 11, 19, 24, 23, 17, 7, -4, -13, -18, -19, -15, -9, -1, 6, 11, + 13, 10, 4, -3, -8, -10, -9, -4, 2, 8, 13, 15, 13, 7, -2, -12, + -19, -22, -19, -13, -4, 6, 16, 22, 24, 19, 11, 0, -10, -16, -19, -17, + -12, -5, 3, 10, 13, 12, 7, 0, -6, -9, -9, -6, -1, 5, 11, 15, + 15, 10, 1, -8, -16, -20, -20, -16, -8, 2, 12, 20, 23, 21, 14, 4, + -6, -14, -18, -18, -14, -8, 0, 8, 12, 13, 9, 3, -3, -8, -9, -8, + -4, 2, 9, 14, 15, 12, 5, -4, -13, -19, -20, -18, -11, -2, 8, 17, + 23, 22, 17, 8, -2, -11, -16, -18, -16, -11, -3, 5, 11, 13, 11, 5, + -1, -6, -9, -9, -6, 0, 6, 12, 15, 13, 8, -1, -10, -16, -20, -19, + -14, -6, 4, 14, 21, 23, 19, 12, 2, -7, -14, -18, -18, -13, -6, 2, + 9, 12, 12, 7, 2, -4, -8, -9, -7, -3, 3, 10, 14, 14, 10, 3, + -6, -14, -18, -20, -16, -10, 0, 10, 19, 22, 21, 15, 6, -4, -12, -17, + -18, -16, -9, -1, 7, 11, 12, 9, 4, -2, -6, -9, -8, -5, 1, 7, + 12, 14, 12, 6, -3, -10, -16, -19, -18, -13, -4, 7, 16, 21, 22, 17, + 10, 0, -8, -15, -18, -17, -12, -4, 4, 10, 12, 11, 6, 1, -4, -8, + -9, -7, -2, 5, 11, 14, 13, 8, 1, -7, -14, -18, -19, -15, -7, 3, + 12, 19, 22, 19, 13, 4, -5, -13, -17, -18, -14, -7, 1, 8, 11, 11, + 8, 3, -2, -7, -9, -8, -4, 2, 8, 13, 13, 10, 4, -4, -11, -17, + -19, -17, -11, -1, 9, 17, 21, 20, 16, 8, -1, -10, -16, -18, -16, -10, + -2, 5, 10, 12, 10, 6, 0, -5, -8, -9, -6, 0, 6, 11, 13, 11, + 6, 0, -8, -14, -18, -18, -13, -5, 5, 14, 19, 21, 18, 11, 2, -7, + -14, -18, -17, -13, -5, 2, 8, 11, 11, 8, 3, -3, -7, -9, -7, -3, + 3, 9, 12, 12, 9, 3, -5, -12, -17, -19, -16, -9, 1, 10, 17, 20, + 19, 14, 6, -3, -11, -17, -18, -15, -8, 0, 6, 10, 11, 9, 5, 0, + -6, -9, -8, -5, 1, 7, 11, 12, 10, 5, -2, -9, -15, -18, -17, -11, + -3, 7, 15, 19, 20, 16, 9, 1, -8, -15, -18, -16, -11, -3, 4, 9, + 11, 10, 7, 2, -4, -8, -9, -6, -1, 4, 9, 12, 11, 7, 1, -6, + -13, -17, -18, -14, -6, 3, 11, 17, 20, 18, 12, 4, -5, -13, -17, -17, + -13, -6, 1, 7, 10, 11, 9, 4, -2, -6, -9, -8, -4, 2, 7, 11, + 11, 9, 4, -3, -10, -16, -18, -16, -9, -1, 8, 15, 19, 19, 15, 8, + -1, -10, -16, -17, -15, -9, -2, 4, 9, 11, 10, 6, 1, -5, -8, -8, + -5, 0, 5, 9, 11, 10, 7, 0, -7, -14, -17, -17, -12, -4, 5, 12, + 18, 19, 17, 11, 2, -7, -14, -17, -16, -11, -5, 2, 7, 11, 11, 8, + 3, -3, -7, -8, -7, -3, 3, 7, 10, 11, 8, 3, -4, -11, -16, -17, + -14, -7, 1, 9, 16, 19, 18, 13, 5, -4, -11, -16, -16, -13, -8, -1, + 5, 10, 11, 10, 5, 0, -5, -8, -7, -4, 0, 5, 9, 11, 10, 5, + -1, -9, -14, -17, -15, -10, -2, 6, 13, 18, 19, 16, 9, 0, -8, -14, + -16, -15, -10, -4, 3, 8, 11, 11, 7, 2, -4, -7, -8, -6, -2, 3, + 8, 10, 11, 7, 1, -6, -12, -16, -16, -12, -6, 2, 10, 16, 19, 17, + 12, 3, -5, -12, -16, -16, -12, -7, 0, 6, 10, 11, 9, 4, -1, -6, + -8, -7, -4, 1, 6, 9, 11, 9, 4, -3, -10, -15, -16, -14, -8, -1, + 7, 14, 18, 18, 14, 7, -2, -10, -14, -16, -14, -9, -3, 4, 9, 11, + 10, 6, 1, -4, -7, -7, -5, -1, 4, 8, 10, 10, 6, 0, -7, -13, + -15, -15, -11, -4, 4, 11, 17, 18, 16, 9, 1, -7, -13, -16, -15, -11, + -5, 1, 7, 11, 11, 8, 3, -2, -6, -7, -6, -3, 1, 6, 10, 10, + 8, 2, -4, -10, -14, -15, -12, -7, 1, 9, 15, 18, 17, 12, 5, -4, + -10, -15, -16, -13, -8, -1, 5, 10, 11, 9, 5, 0, -4, -7, -7, -5, + -1, 4, 9, 10, 9, 5, -2, -8, -13, -15, -14, -9, -3, 5, 13, 17, + 18, 14, 8, 0, -8, -13, -15, -14, -10, -4, 3, 8, 11, 10, 7, 2, + -3, -6, -7, -6, -3, 2, 7, 10, 10, 6, 1, -5, -11, -14, -14, -11, + -5, 2, 10, 16, 18, 16, 10, 3, -5, -11, -15, -15, -12, -6, 0, 6, + 10, 11, 8, 4, -1, -5, -7, -7, -4, 0, 5, 9, 10, 8, 3, -3, + -9, -13, -14, -13, -8, -1, 7, 14, 17, 17, 12, 6, -2, -9, -14, -15, + -14, -9, -2, 4, 9, 11, 9, 6, 1, -3, -6, -7, -6, -2, 3, 7, + 10, 9, 5, 0, -6, -11, -14, -14, -10, -4, 4, 11, 16, 17, 14, 9, + 1, -6, -12, -15, -15, -11, -5, 2, 7, 10, 10, 7, 3, -1, -5, -7, + -7, -3, 1, 6, 9, 9, 7, 2, -4, -9, -13, -14, -12, -6, 1, 8, + 14, 17, 15, 11, 4, -3, -10, -14, -15, -13, -7, -1, 5, 9, 10, 9, + 5, 1, -4, -7, -7, -5, -1, 4, 8, 9, 8, 4, -1, -7, -11, -14, + -13, -9, -2, 6, 12, 16, 16, 13, 7, 0, -7, -13, -15, -14, -10, -3, + 3, 8, 10, 10, 7, 3, -2, -6, -7, -6, -2, 2, 6, 9, 8, 6, + 1, -4, -10, -13, -13, -11, -5, 3, 9, 14, 16, 14, 10, 3, -4, -11, + -14, -15, -11, -6, 0, 6, 9, 10, 8, 4, 0, -4, -7, -7, -4, 0, + 5, 8, 9, 7, 3, -2, -8, -12, -13, -12, -7, 0, 7, 12, 15, 15, + 12, 6, -1, -8, -13, -15, -13, -8, -2, 4, 8, 10, 9, 6, 2, -3, + -6, -7, -5, -2, 3, 6, 8, 8, 5, 0, -5, -10, -13, -13, -9, -3, + 4, 10, 14, 15, 13, 8, 1, -6, -12, -14, -14, -10, -4, 2, 6, 9, + 10, 8, 4, -1, -5, -7, -6, -3, 1, 5, 7, 8, 6, 2, -3, -8, + -12, -13, -11, -5, 1, 8, 13, 15, 14, 11, 4, -3, -10, -14, -14, -12, + -7, -1, 5, 8, 10, 9, 5, 1, -4, -6, -7, -4, -1, 3, 6, 8, + 7, 4, -1, -6, -11, -13, -12, -8, -2, 5, 11, 14, 15, 12, 7, 0, + -7, -12, -14, -13, -9, -3, 2, 7, 10, 10, 7, 3, -2, -5, -7, -5, + -2, 1, 5, 7, 8, 6, 1, -4, -9, -12, -12, -9, -4, 2, 8, 13, + 15, 14, 9, 3, -5, -10, -14, -13, -11, -6, 0, 5, 9, 10, 8, 4, + 0, -4, -6, -6, -4, 0, 4, 7, 8, 7, 3, -2, -7, -11, -12, -11, + -6, 0, 6, 11, 14, 14, 11, 5, -2, -8, -12, -14, -12, -8, -2, 3, + 8, 10, 9, 6, 2, -3, -6, -6, -5, -2, 2, 5, 7, 7, 5, 0, + -5, -9, -12, -11, -8, -3, 3, 9, 13, 15, 13, 8, 1, -6, -11, -13, + -13, -10, -4, 1, 6, 9, 10, 7, 3, -1, -4, -6, -6, -3, 0, 4, + 7, 8, 6, 2, -3, -8, -11, -12, -9, -5, 1, 7, 12, 14, 14, 10, + 4, -3, -9, -13, -13, -11, -7, -1, 4, 8, 10, 8, 5, 1, -3, -6, + -6, -4, -1, 2, 6, 7, 7, 4, -1, -6, -10, -11, -10, -7, -2, 5, + 10, 14, 14, 11, 6, -1, -7, -11, -13, -12, -9, -3, 2, 7, 9, 9, + 7, 3, -2, -5, -6, -5, -3, 1, 4, 7, 7, 5, 1, -4, -8, -11, + -11, -8, -4, 2, 8, 12, 14, 13, 8, 2, -4, -10, -13, -13, -10, -5, + 0, 5, 9, 10, 8, 4, 0, -3, -6, -6, -4, -1, 3, 6, 7, 6, + 3, -2, -6, -10, -11, -10, -6, 0, 6, 11, 14, 13, 10, 4, -2, -8, + -12, -13, -11, -7, -2, 3, 8, 9, 9, 6, 2, -2, -5, -6, -5, -2, + 1, 5, 7, 7, 4, 0, -4, -8, -10, -10, -8, -3, 3, 9, 13, 14, + 11, 7, 1, -5, -10, -13, -12, -9, -4, 1, 6, 9, 9, 7, 3, 0, + -4, -6, -6, -4, 0, 3, 6, 7, 5, 2, -3, -7, -10, -10, -9, -5, + 1, 7, 11, 13, 12, 9, 3, -3, -8, -12, -13, -11, -6, -1, 4, 8, + 9, 8, 5, 1, -3, -5, -6, -5, -2, 2, 5, 7, 6, 3, -1, -5, + -8, -10, -10, -7, -1, 4, 10, 13, 13, 10, 5, -1, -6, -11, -13, -12, + -8, -3, 2, 7, 9, 9, 6, 3, -1, -4, -6, -5, -3, 1, 4, 6, + 6, 5, 1, -3, -7, -10, -10, -8, -4, 2, 8, 12, 13, 11, 7, 2, + -4, -9, -12, -12, -10, -5, 0, 5, 8, 9, 7, 4, 1, -3, -5, -6, + -4, -1, 3, 5, 6, 5, 3, -1, -5, -9, -10, -9, -5, 0, 6, 10, + 12, 12, 9, 4, -2, -7, -11, -12, -11, -7, -2, 3, 7, 9, 8, 6, + 2, -2, -5, -6, -5, -2, 1, 4, 6, 6, 4, 0, -4, -7, -10, -10, + -7, -2, 3, 8, 12, 12, 10, 6, 1, -5, -10, -12, -12, -9, -4, 1, + 6, 8, 9, 7, 4, 0, -4, -6, -6, -3, 0, 3, 5, 6, 5, 2, + -2, -6, -9, -10, -8, -4, 1, 6, 10, 12, 11, 8, 3, -3, -8, -11, + -12, -10, -6, -1, 4, 7, 9, 8, 5, 1, -2, -5, -6, -4, -2, 2, + 4, 6, 5, 3, 0, -4, -8, -10, -9, -6, -1, 4, 9, 11, 12, 10, + 5, 0, -6, -10, -12, -11, -7, -3, 2, 6, 8, 8, 6, 3, -1, -4, + -6, -5, -3, 0, 3, 5, 6, 4, 1, -3, -6, -9, -9, -7, -3, 2, + 7, 10, 12, 11, 7, 2, -4, -9, -11, -11, -9, -5, 0, 5, 8, 9, + 7, 4, 1, -3, -5, -5, -4, -1, 2, 4, 6, 5, 3, -1, -5, -8, + -9, -8, -5, 0, 5, 9, 11, 11, 9, 4, -2, -7, -10, -12, -10, -6, + -2, 3, 7, 9, 8, 6, 2, -2, -4, -5, -5, -2, 1, 3, 5, 5, + 4, 1, -3, -7, -9, -9, -6, -2, 3, 7, 11, 11, 10, 6, 0, -5, + -9, -11, -11, -8, -4, 1, 5, 8, 9, 7, 4, 0, -3, -5, -5, -3, + -1, 2, 5, 6, 5, 2, -2, -5, -8, -9, -7, -4, 1, 6, 9, 11, + 11, 8, 3, -3, -8, -11, -11, -9, -5, -1, 4, 7, 9, 8, 5, 1, + -2, -5, -5, -4, -2, 1, 4, 5, 5, 3, 0, -4, -7, -9, -8, -5, + -1, 4, 8, 11, 11, 9, 5, -1, -6, -10, -11, -10, -7, -3, 2, 6, + 8, 8, 6, 3, -1, -4, -5, -5, -3, 0, 3, 5, 5, 4, 1, -2, + -6, -8, -8, -6, -3, 2, 6, 10, 11, 10, 6, 1, -4, -8, -11, -11, + -8, -5, 0, 5, 8, 8, 7, 4, 1, -3, -5, -5, -4, -2, 1, 4, + 5, 5, 2, -1, -4, -7, -8, -7, -4, 0, 5, 8, 11, 10, 8, 3, + -2, -7, -10, -11, -9, -6, -2, 3, 7, 8, 8, 5, 2, -1, -4, -5, + -5, -3, 0, 3, 5, 5, 3, 1, -3, -6, -8, -8, -6, -2, 3, 7, + 10, 11, 9, 5, 0, -5, -9, -10, -10, -8, -4, 1, 5, 8, 8, 6, + 3, 0, -3, -5, -5, -4, -1, 2, 4, 5, 4, 2, -2, -5, -7, -8, + -7, -3, 1, 5, 9, 11, 10, 7, 2, -3, -7, -10, -10, -9, -5, -1, + 4, 7, 8, 7, 5, 1, -2, -4, -5, -4, -2, 1, 3, 5, 5, 3, + 0, -3, -6, -8, -7, -5, -1, 4, 8, 10, 10, 8, 4, -1, -5, -9, + -10, -10, -7, -2, 2, 6, 8, 8, 6, 3, -1, -3, -5, -5, -3, -1, + 2, 4, 5, 4, 1, -2, -5, -7, -7, -6, -3, 2, 6, 9, 10, 9, + 6, 1, -4, -8, -10, -10, -8, -4, 0, 4, 7, 8, 7, 4, 1, -2, + -4, -5, -4, -2, 1, 4, 5, 4, 2, -1, -4, -6, -7, -7, -4, 0, + 4, 8, 10, 10, 7, 3, -2, -6, -9, -10, -9, -6, -1, 3, 6, 8, + 7, 5, 2, -1, -4, -5, -5, -3, 0, 3, 4, 5, 3, 1, -2, -5, + -7, -7, -5, -2, 3, 7, 9, 10, 8, 5, 0, -4, -8, -10, -10, -7, + -3, 1, 5, 7, 8, 6, 4, 0, -3, -5, -5, -4, -1, 2, 4, 5, + 4, 2, -1, -4, -6, -7, -6, -3, 1, 5, 8, 10, 9, 6, 2, -3, + -7, -9, -10, -8, -5, 0, 4, 7, 8, 7, 5, 2, -2, -4, -5, -4, + -2, 0, 3, 4, 4, 3, 0, -3, -6, -7, -7, -4, -1, 3, 7, 9, + 9, 7, 4, -1, -5, -8, -10, -9, -6, -2, 2, 5, 7, 7, 6, 3, + 0, -3, -5, -5, -3, -1, 2, 4, 4, 3, 1, -2, -5, -6, -7, -5, + -2, 2, 6, 8, 9, 8, 5, 1, -3, -7, -9, -9, -7, -4, 0, 4, +}; + +// Coin: chiptune square-wave pickup, B5 stepping to a held E6. +static const int8_t s_coin_pcm[6857] = { + 0, 3, 6, 8, 11, 14, 17, 20, 22, -25, -28, -31, -33, -36, -39, -42, + -45, 47, 50, 53, 55, 58, 61, 64, 66, -69, -72, -75, -77, -80, -83, -85, + -88, 88, 88, 88, 88, 88, 88, 88, 88, -87, -87, -87, -87, -87, -87, -87, + -87, 87, 87, 87, 87, 87, 87, 87, 87, -86, -86, -86, -86, -86, -86, -86, + -86, 86, 86, 86, 86, 86, 86, 86, 86, -85, -85, -85, -85, -85, -85, -85, + -85, 85, 85, 85, 85, 85, 85, 85, 84, 84, -84, -84, -84, -84, -84, -84, + -84, -84, 84, 84, 84, 84, 84, 84, 83, 83, -83, -83, -83, -83, -83, -83, + -83, -83, 83, 83, 83, 83, 83, 83, 82, 82, -82, -82, -82, -82, -82, -82, + -82, -82, 82, 82, 82, 82, 82, 82, 81, 81, -81, -81, -81, -81, -81, -81, + -81, -81, 81, 81, 81, 81, 81, 81, 81, 80, -80, -80, -80, -80, -80, -80, + -80, -80, 80, 80, 80, 80, 80, 80, 80, 79, 79, -79, -79, -79, -79, -79, + -79, -79, -79, 79, 79, 79, 79, 79, 78, 78, 78, -78, -78, -78, -78, -78, + -78, -78, -78, 78, 78, 78, 78, 78, 78, 77, 77, -77, -77, -77, -77, -77, + -77, -77, -77, 77, 77, 77, 77, 77, 77, 76, 76, -76, -76, -76, -76, -76, + -76, -76, -76, 76, 76, 76, 76, 76, 76, 75, 75, -75, -75, -75, -75, -75, + -75, -75, -75, 75, 75, 75, 75, 75, 75, 74, 74, 74, -74, -74, -74, -74, + -74, -74, -74, -74, 74, 74, 74, 74, 73, 73, 73, 73, -73, -73, -73, -73, + -73, -73, -73, -73, 73, 73, 73, 73, 72, 72, 72, 72, -72, -72, -72, -72, + -72, -72, -72, -72, 72, 72, 72, 72, 71, 71, 71, 71, -71, -71, -71, -71, + -71, -71, -71, -71, 71, 71, 71, 71, 70, 70, 70, 70, -70, -70, -70, -70, + -70, -70, -70, -70, 70, 70, 70, 70, 70, 69, 69, 69, 69, -69, -69, -69, + -69, -69, -69, -69, -69, 69, 69, 69, 68, 68, 68, 68, 68, -68, -68, -68, + -68, -68, -68, -68, -68, 68, 68, 68, 68, 67, 67, 67, 67, -67, -67, -67, + -67, -67, -67, -67, -67, 67, 67, 67, 66, 66, 66, 66, 66, -66, -66, -66, + -66, -66, -66, -66, -66, 66, 66, 66, 66, 65, 65, 65, 65, -65, -65, -65, + -65, -65, -65, -65, -65, 65, 65, 65, 65, 64, 64, 64, 64, 64, -64, -64, + -64, -64, -64, -64, -64, -64, 64, 64, 64, 63, 63, 63, 63, 63, -63, -63, + -63, -63, -63, -63, -63, -63, 63, 63, 63, 62, 62, 62, 62, 62, -62, -62, + -62, -62, -62, -62, -62, -62, 62, 62, 62, 61, 61, 61, 61, 61, -61, -61, + -61, -61, -61, -61, -61, -61, 61, 61, 60, 60, 60, 60, 60, 60, -60, -60, + -60, -60, -60, -60, -60, -60, 60, 60, 60, 59, 59, 59, 59, 59, 59, -59, + -59, -59, -59, -59, -59, -59, -59, 59, 58, 58, 58, 58, 58, 58, 58, -58, + -58, -58, -58, -58, -58, -58, -58, 58, 57, 57, 57, 57, 57, 57, 57, -57, + -57, -57, -57, -57, -57, -57, -57, 57, 56, 56, 56, 56, 56, 56, 56, -56, + -56, -56, -56, -56, -56, -56, -56, 56, 55, 55, 55, 55, 55, 55, 55, -55, + -55, -55, -55, -55, -55, -55, -55, 55, 54, 54, 54, 54, 54, 54, 54, 54, + -54, -54, -54, -54, -54, -54, -54, -54, 54, 53, 53, 53, 53, 53, 53, 53, + -53, -53, -53, -53, -53, -53, -53, -53, 52, 52, 52, 52, 52, 52, 52, 52, + -52, -52, -52, -52, -52, -52, -52, -52, 51, 51, 51, 51, 51, 51, 51, 51, + -51, -51, -51, -51, -51, -51, -51, -51, 50, 50, 50, 50, 50, 50, 50, 50, + -50, -50, -50, -50, -50, -50, -50, -50, 49, 49, 49, 49, 49, 49, 49, 49, + 49, -49, -49, -49, -49, -49, -49, -49, -48, 48, 48, 48, 48, 48, 48, 48, + 48, -48, -48, -48, -48, -48, -48, -48, -48, 47, 47, 47, 47, 47, 47, 47, + 47, -47, -47, -47, -47, -47, -47, -47, -46, 46, 46, 46, 46, 46, 46, 46, + 46, -46, -46, -46, -46, -46, -46, -46, -46, 45, 45, 45, 45, 45, 45, 45, + 45, -45, -45, -45, -45, -45, -45, -45, -45, 44, 44, 44, 44, 44, 44, 44, + 44, -44, -44, -44, -44, -44, -44, -44, -44, -43, 43, 43, 43, 43, 43, 43, + 43, 43, -43, -43, -43, -43, -43, -43, -42, -42, 42, 42, 42, 42, 42, 42, + 42, 42, -42, -42, -42, -42, -42, -42, -42, -41, 41, 41, 41, 41, 41, 41, + 41, 41, -41, -41, -41, -41, -41, -41, -40, -40, 40, 40, 40, 40, 40, 40, + 40, 40, -40, -40, -40, -40, -40, -40, -39, -39, 39, 39, 39, 39, 39, 39, + 39, 39, -39, -39, -39, -39, -39, -39, -38, -38, -38, 38, 38, 38, 38, 38, + 38, 38, 38, -38, -38, -38, -38, -38, -38, -37, -37, 37, 37, 37, 37, 37, + 37, 37, 37, -37, -37, -37, -37, -37, -36, -36, -36, 36, 36, 36, 36, 36, + 36, 36, 36, -36, -36, -36, -36, -36, -36, -35, -35, 35, 35, 35, 35, 35, + 35, 35, 35, -35, -35, -35, -35, -35, -34, -34, -34, 34, 34, 34, 34, 34, + 34, 34, 34, -34, -34, -34, -34, -34, -34, -33, -33, -33, 33, 33, 33, 33, + 33, 33, 33, 33, -33, -33, -33, -33, -32, -32, -32, -32, 32, 32, 32, 32, + 32, 32, 32, 32, -32, -32, -32, -32, -31, -31, -31, -31, 31, 31, 31, 31, + 31, 31, 31, 31, -31, -31, -31, -31, -30, -30, -30, -30, 30, 30, 30, 30, + 30, 30, 30, 30, -30, -30, -30, -30, -30, -29, -29, -29, 29, 29, 29, 29, + 29, 29, 29, 29, -29, -29, -29, -29, -28, -28, -28, -28, -28, 28, 28, 28, + 28, 28, 28, 28, 28, -28, -28, -28, -28, -27, -27, -27, -27, 27, 27, 27, + 27, 27, 27, 27, 27, -27, -27, -27, -26, -26, -26, -26, -26, 26, 26, 26, + 26, 26, 26, 26, 26, -26, -26, -26, -25, -25, -25, -25, -25, 25, 25, 25, + 25, 25, 25, 25, 25, -25, -25, -25, -24, -24, -24, -24, -24, 24, 24, 24, + 24, 24, 24, 24, 24, -24, -24, -24, -23, -23, -23, -23, -23, -23, 23, 23, + 23, 23, 23, 23, 23, 23, -23, -23, -22, -22, -22, -22, -22, -22, 22, 22, + 22, 22, 22, 22, 22, 22, -22, -22, -21, -21, -21, -21, -21, -21, 21, 21, + 21, 21, 21, 21, 21, 21, -21, -21, -20, -20, -20, -20, -20, -20, 20, 20, + 20, 20, 20, 20, 20, 20, -20, -20, -20, -19, -19, -19, -19, -19, 19, 19, + 19, 19, 19, 19, 19, 19, -19, -19, -19, -18, -18, -18, -18, -18, -18, 18, + 18, 18, 18, 18, 18, 18, 18, -18, -18, -17, -17, -17, -17, -17, -17, 17, + 17, 17, 17, 17, 17, 17, 17, -17, -16, -16, -16, -16, -16, -16, -16, 16, + 16, 16, 16, 16, 16, 16, 16, -16, -16, -15, -15, -15, -15, -15, -15, 15, + 15, 15, 15, 15, 15, 15, 15, -15, -14, -14, -14, -14, -14, -14, -14, 14, + 14, 14, 14, 14, 14, 14, 14, -14, -13, -13, -13, -13, -13, -13, -13, -13, + 13, 13, 13, 13, 13, 13, 13, 13, -12, -12, -12, -12, -12, -12, -12, -12, + 12, 12, 12, 12, 12, 12, 12, 12, -11, -11, -11, -11, -11, -11, -11, -11, + 11, 11, 11, 11, 11, 11, 11, 11, -10, -10, -10, -10, -10, -10, -10, -10, + 10, 10, 10, 10, 10, 10, 10, 10, -9, -9, -9, -9, -9, -9, -9, -9, + 9, 9, 9, 9, 9, 9, 9, 9, -8, -8, -8, -8, -8, -8, -8, -8, + -8, 8, 8, 8, 8, 8, 8, 8, 7, -7, -7, -7, -7, -7, -7, -7, + -7, 7, 7, 7, 7, 7, 7, 7, 6, -6, -6, -6, -6, -6, -6, -6, + -6, 6, 6, 6, 6, 6, 6, 6, 5, -5, -5, -5, -5, -5, -5, -5, + -5, 5, 5, 5, 5, 5, 5, 5, 4, -4, -4, -4, -4, -4, -4, -4, + -4, 4, 4, 4, 4, 4, 4, 4, 4, -3, -3, -3, -3, -3, -3, -3, + -3, 3, 3, 3, 3, 3, 3, 3, 3, 2, -2, -2, -2, -2, -2, -2, + -2, -2, 2, 2, 2, 2, 2, 2, 2, 1, -1, -1, -1, -1, -1, -1, + -1, -1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 4, 8, 11, 15, 19, 22, -26, -30, -34, -38, -41, -45, 49, 52, 56, + 60, 64, 68, -71, -75, -79, -82, -86, -90, 94, 98, 101, 105, 109, 112, -116, + -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, + -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, + 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, + -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, + -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, + 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, + -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, + -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, + 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, + -120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, + -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, + 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, + 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, + -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, + 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, + 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, + -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, + 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, + 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, + -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, + 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, -120, 120, 120, 120, + 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, + -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, + -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, + 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, + -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, + -120, 120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, + 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, + -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, + -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, + 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, + -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, 120, -120, -120, -120, + -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, + 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, + 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, + -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, + 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, + 120, -120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, + -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, + 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, + 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, + -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, + 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, + 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, + -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, + -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, + 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, + -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, + -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, -120, 120, 120, + 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, + -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, + -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, + 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, + -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, + -120, -120, 120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, + 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, + 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, + -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, + 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, + 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, 120, -120, -120, + -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, + 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, + 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, + -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, + 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, + 120, 120, -120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, + -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, + -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, + 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, + -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, + -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, + 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, + -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, + -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, + 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, + -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, + -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, -120, 120, + 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, + 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, + -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, + 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, + 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, + -120, -120, -120, 120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, + 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, + 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, + -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, + 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, + 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, + -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, + -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, + 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, + -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, + -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, + 120, 120, 120, -120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, + -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, + -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, + 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, + -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, + -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, + 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, + 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, + -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, + 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, + 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, + -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, -120, + 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, + 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, + -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, + 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, + 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, + -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, + -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, + 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, + -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, + -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, + 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, + -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, + -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, + 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, + -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, + -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, + 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, + 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, + -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, + 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, + 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, + -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, + 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, + 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, + -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, + 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, + 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, + -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, + -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, + 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, + -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, + -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, + 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, + -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, + -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, + 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, + -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, + -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, + 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, + -120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, + -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, + 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, + 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, + -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, + 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, + 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, + -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, + 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, + 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, + -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, + 120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, + 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, + -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, + -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, + 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, + -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, + -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, + 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, + -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, + -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, + 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, + -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, 120, -120, -120, -120, + -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, + 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, + 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, + -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, + 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, + 120, -120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, + -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, + 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, + 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, + -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, + 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, + 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, + -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, + -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, + 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, + -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, + -120, 120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, + 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, + -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, + -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, + 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, + -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, + -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, + 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, + 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, + -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, + 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, + 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, 120, -120, -120, + -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, + 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, + 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, + -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, + 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, + 120, 120, -120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, + -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, + -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, + 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, + -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, + -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, + 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, + -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, + -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, + 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, + -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, + -120, -120, 120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, + 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, + 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, + -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, + 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, + 120, -120, -120, -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, + -120, -120, -120, -120, 120, 120, 120, 120, 120, 120, -120, -120, -120, -120, -120, -120, + 120, 120, 120, 120, 120, 120, -120, -120, -120, -119, -119, -119, 119, 119, 119, 119, + 119, 119, -119, -119, -119, -119, -119, -119, 119, 118, 118, 118, 118, 118, -118, -118, + -118, -118, -118, -118, 118, 118, 118, 118, 118, 117, -117, -117, -117, -117, -117, -117, + 117, 117, 117, 117, 117, 117, -117, -117, -117, -116, -116, -116, 116, 116, 116, 116, + 116, 116, -116, -116, -116, -116, -116, -116, 116, 115, 115, 115, 115, 115, 115, -115, + -115, -115, -115, -115, -115, 115, 115, 115, 115, 114, 114, -114, -114, -114, -114, -114, + -114, 114, 114, 114, 114, 114, 114, -114, -114, -113, -113, -113, -113, 113, 113, 113, + 113, 113, 113, -113, -113, -113, -113, -113, -113, 112, 112, 112, 112, 112, 112, -112, + -112, -112, -112, -112, -112, 112, 112, 112, 112, 111, 111, -111, -111, -111, -111, -111, + -111, 111, 111, 111, 111, 111, 111, -111, -111, -110, -110, -110, -110, 110, 110, 110, + 110, 110, 110, -110, -110, -110, -110, -110, -110, -109, 109, 109, 109, 109, 109, 109, + -109, -109, -109, -109, -109, -109, 109, 109, 108, 108, 108, 108, -108, -108, -108, -108, + -108, -108, 108, 108, 108, 108, 108, 108, -108, -107, -107, -107, -107, -107, 107, 107, + 107, 107, 107, 107, -107, -107, -107, -107, -107, -106, 106, 106, 106, 106, 106, 106, + -106, -106, -106, -106, -106, -106, 106, 106, 106, 105, 105, 105, -105, -105, -105, -105, + -105, -105, 105, 105, 105, 105, 105, 105, -105, -104, -104, -104, -104, -104, 104, 104, + 104, 104, 104, 104, 104, -104, -104, -104, -104, -103, -103, 103, 103, 103, 103, 103, + 103, -103, -103, -103, -103, -103, -103, 103, 103, 102, 102, 102, 102, -102, -102, -102, + -102, -102, -102, 102, 102, 102, 102, 102, 102, -101, -101, -101, -101, -101, -101, 101, + 101, 101, 101, 101, 101, -101, -101, -101, -101, -100, -100, 100, 100, 100, 100, 100, + 100, -100, -100, -100, -100, -100, -100, 100, 100, 99, 99, 99, 99, -99, -99, -99, + -99, -99, -99, 99, 99, 99, 99, 99, 99, -98, -98, -98, -98, -98, -98, -98, + 98, 98, 98, 98, 98, 98, -98, -98, -98, -97, -97, -97, 97, 97, 97, 97, + 97, 97, -97, -97, -97, -97, -97, -97, 97, 96, 96, 96, 96, 96, -96, -96, + -96, -96, -96, -96, 96, 96, 96, 96, 96, 95, -95, -95, -95, -95, -95, -95, + 95, 95, 95, 95, 95, 95, -95, -95, -95, -94, -94, -94, 94, 94, 94, 94, + 94, 94, -94, -94, -94, -94, -94, -94, 94, 93, 93, 93, 93, 93, -93, -93, + -93, -93, -93, -93, -93, 93, 93, 93, 93, 92, 92, -92, -92, -92, -92, -92, + -92, 92, 92, 92, 92, 92, 92, -92, -92, -91, -91, -91, -91, 91, 91, 91, + 91, 91, 91, -91, -91, -91, -91, -91, -91, 90, 90, 90, 90, 90, 90, -90, + -90, -90, -90, -90, -90, 90, 90, 90, 90, 89, 89, -89, -89, -89, -89, -89, + -89, 89, 89, 89, 89, 89, 89, -89, -89, -88, -88, -88, -88, 88, 88, 88, + 88, 88, 88, -88, -88, -88, -88, -88, -88, 87, 87, 87, 87, 87, 87, 87, + -87, -87, -87, -87, -87, -87, 87, 87, 87, 86, 86, 86, -86, -86, -86, -86, + -86, -86, 86, 86, 86, 86, 86, 86, -86, -85, -85, -85, -85, -85, 85, 85, + 85, 85, 85, 85, -85, -85, -85, -85, -85, -84, 84, 84, 84, 84, 84, 84, + -84, -84, -84, -84, -84, -84, 84, 84, 84, 83, 83, 83, -83, -83, -83, -83, + -83, -83, 83, 83, 83, 83, 83, 83, -83, -82, -82, -82, -82, -82, 82, 82, + 82, 82, 82, 82, -82, -82, -82, -82, -82, -81, -81, 81, 81, 81, 81, 81, + 81, -81, -81, -81, -81, -81, -81, 81, 81, 80, 80, 80, 80, -80, -80, -80, + -80, -80, -80, 80, 80, 80, 80, 80, 80, -79, -79, -79, -79, -79, -79, 79, + 79, 79, 79, 79, 79, -79, -79, -79, -78, -78, -78, 78, 78, 78, 78, 78, + 78, -78, -78, -78, -78, -78, -78, 78, 78, 77, 77, 77, 77, -77, -77, -77, + -77, -77, -77, 77, 77, 77, 77, 77, 77, -76, -76, -76, -76, -76, -76, 76, + 76, 76, 76, 76, 76, 76, -76, -76, -76, -75, -75, -75, 75, 75, 75, 75, + 75, 75, -75, -75, -75, -75, -75, -75, 75, 74, 74, 74, 74, 74, -74, -74, + -74, -74, -74, -74, 74, 74, 74, 74, 74, 73, -73, -73, -73, -73, -73, -73, + 73, 73, 73, 73, 73, 73, -73, -73, -73, -72, -72, -72, 72, 72, 72, 72, + 72, 72, -72, -72, -72, -72, -72, -72, 72, 71, 71, 71, 71, 71, -71, -71, + -71, -71, -71, -71, 71, 71, 71, 71, 71, 70, -70, -70, -70, -70, -70, -70, + -70, 70, 70, 70, 70, 70, 70, -70, -70, -69, -69, -69, -69, 69, 69, 69, + 69, 69, 69, -69, -69, -69, -69, -69, -68, 68, 68, 68, 68, 68, 68, -68, + -68, -68, -68, -68, -68, 68, 68, 68, 68, 67, 67, -67, -67, -67, -67, -67, + -67, 67, 67, 67, 67, 67, 67, -67, -66, -66, -66, -66, -66, 66, 66, 66, + 66, 66, 66, -66, -66, -66, -66, -66, -66, 65, 65, 65, 65, 65, 65, -65, + -65, -65, -65, -65, -65, -65, 65, 65, 65, 64, 64, 64, -64, -64, -64, -64, + -64, -64, 64, 64, 64, 64, 64, 64, -64, -63, -63, -63, -63, -63, 63, 63, + 63, 63, 63, 63, -63, -63, -63, -63, -63, -62, 62, 62, 62, 62, 62, 62, + -62, -62, -62, -62, -62, -62, 62, 62, 62, 61, 61, 61, -61, -61, -61, -61, + -61, -61, 61, 61, 61, 61, 61, 61, -60, -60, -60, -60, -60, -60, 60, 60, + 60, 60, 60, 60, -60, -60, -60, -60, -60, -59, 59, 59, 59, 59, 59, 59, + 59, -59, -59, -59, -59, -59, -59, 59, 59, 58, 58, 58, 58, -58, -58, -58, + -58, -58, -58, 58, 58, 58, 58, 58, 58, -57, -57, -57, -57, -57, -57, 57, + 57, 57, 57, 57, 57, -57, -57, -57, -57, -56, -56, 56, 56, 56, 56, 56, + 56, -56, -56, -56, -56, -56, -56, 56, 56, 55, 55, 55, 55, -55, -55, -55, + -55, -55, -55, 55, 55, 55, 55, 55, 55, -54, -54, -54, -54, -54, -54, 54, + 54, 54, 54, 54, 54, -54, -54, -54, -54, -53, -53, -53, 53, 53, 53, 53, + 53, 53, -53, -53, -53, -53, -53, -53, 53, 52, 52, 52, 52, 52, -52, -52, + -52, -52, -52, -52, 52, 52, 52, 52, 52, 51, -51, -51, -51, -51, -51, -51, + 51, 51, 51, 51, 51, 51, -51, -51, -51, -50, -50, -50, 50, 50, 50, 50, + 50, 50, -50, -50, -50, -50, -50, -50, 50, 49, 49, 49, 49, 49, -49, -49, + -49, -49, -49, -49, 49, 49, 49, 49, 49, 48, -48, -48, -48, -48, -48, -48, + 48, 48, 48, 48, 48, 48, 48, -48, -48, -47, -47, -47, -47, 47, 47, 47, + 47, 47, 47, -47, -47, -47, -47, -47, -47, 46, 46, 46, 46, 46, 46, -46, + -46, -46, -46, -46, -46, 46, 46, 46, 46, 45, 45, -45, -45, -45, -45, -45, + -45, 45, 45, 45, 45, 45, 45, -45, -45, -44, -44, -44, -44, 44, 44, 44, + 44, 44, 44, -44, -44, -44, -44, -44, -44, 43, 43, 43, 43, 43, 43, -43, + -43, -43, -43, -43, -43, 43, 43, 43, 43, 42, 42, -42, -42, -42, -42, -42, + -42, -42, 42, 42, 42, 42, 42, 42, -42, -41, -41, -41, -41, -41, 41, 41, + 41, 41, 41, 41, -41, -41, -41, -41, -41, -40, 40, 40, 40, 40, 40, 40, + -40, -40, -40, -40, -40, -40, 40, 40, 40, 39, 39, 39, -39, -39, -39, -39, + -39, -39, 39, 39, 39, 39, 39, 39, -39, -38, -38, -38, -38, -38, 38, 38, + 38, 38, 38, 38, -38, -38, -38, -38, -38, -37, 37, 37, 37, 37, 37, 37, + -37, -37, -37, -37, -37, -37, -37, 37, 37, 36, 36, 36, 36, -36, -36, -36, + -36, -36, -36, 36, 36, 36, 36, 36, 36, -35, -35, -35, -35, -35, -35, 35, + 35, 35, 35, 35, 35, -35, -35, -35, -35, -34, -34, 34, 34, 34, 34, 34, + 34, -34, -34, -34, -34, -34, -34, 34, 34, 33, 33, 33, 33, -33, -33, -33, + -33, -33, -33, 33, 33, 33, 33, 33, 33, -32, -32, -32, -32, -32, -32, 32, + 32, 32, 32, 32, 32, -32, -32, -32, -32, -31, -31, 31, 31, 31, 31, 31, + 31, 31, -31, -31, -31, -31, -31, -31, 31, 30, 30, 30, 30, 30, -30, -30, + -30, -30, -30, -30, 30, 30, 30, 30, 30, 29, -29, -29, -29, -29, -29, -29, + 29, 29, 29, 29, 29, 29, -29, -29, -29, -28, -28, -28, 28, 28, 28, 28, + 28, 28, -28, -28, -28, -28, -28, -28, 28, 27, 27, 27, 27, 27, -27, -27, + -27, -27, -27, -27, 27, 27, 27, 27, 27, 26, -26, -26, -26, -26, -26, -26, + 26, 26, 26, 26, 26, 26, -26, -26, -26, -25, -25, -25, -25, 25, 25, 25, + 25, 25, 25, -25, -25, -25, -25, -25, -25, 24, 24, 24, 24, 24, 24, -24, + -24, -24, -24, -24, -24, 24, 24, 24, 24, 23, 23, -23, -23, -23, -23, -23, + -23, 23, 23, 23, 23, 23, 23, -23, -23, -22, -22, -22, -22, 22, 22, 22, + 22, 22, 22, -22, -22, -22, -22, -22, -22, 21, 21, 21, 21, 21, 21, -21, + -21, -21, -21, -21, -21, 21, 21, 21, 21, 20, 20, -20, -20, -20, -20, -20, + -20, 20, 20, 20, 20, 20, 20, 20, -20, -19, -19, -19, -19, -19, 19, 19, + 19, 19, 19, 19, -19, -19, -19, -19, -19, -18, 18, 18, 18, 18, 18, 18, + -18, -18, -18, -18, -18, -18, 18, 18, 18, 17, 17, 17, -17, -17, -17, -17, + -17, -17, 17, 17, 17, 17, 17, 17, -17, -16, -16, -16, -16, -16, 16, 16, + 16, 16, 16, 16, -16, -16, -16, -16, -16, -15, 15, 15, 15, 15, 15, 15, + -15, -15, -15, -15, -15, -15, 15, 15, 15, 14, 14, 14, -14, -14, -14, -14, + -14, -14, -14, 14, 14, 14, 14, 14, 14, -13, -13, -13, -13, -13, -13, 13, + 13, 13, 13, 13, 13, -13, -13, -13, -13, -12, -12, 12, 12, 12, 12, 12, + 12, -12, -12, -12, -12, -12, -12, 12, 12, 11, 11, 11, 11, -11, -11, -11, + -11, -11, -11, 11, 11, 11, 11, 11, 11, -10, -10, -10, -10, -10, -10, 10, + 10, 10, 10, 10, 10, -10, -10, -10, -10, -9, -9, 9, 9, 9, 9, 9, + 9, -9, -9, -9, -9, -9, -9, 9, 9, 8, 8, 8, 8, 8, -8, -8, + -8, -8, -8, -8, 8, 8, 8, 8, 8, 7, -7, -7, -7, -7, -7, -7, + 7, 7, 7, 7, 7, 7, -7, -7, -7, -6, -6, -6, 6, 6, 6, 6, + 6, 6, -6, -6, -6, -6, -6, -6, 6, 5, 5, 5, 5, 5, -5, -5, + -5, -5, -5, -5, 5, 5, 5, 5, 5, 4, -4, -4, -4, -4, -4, -4, + 4, 4, 4, 4, 4, 4, -4, -4, -4, -3, -3, -3, 3, 3, 3, 3, + 3, 3, 3, -3, -3, -3, -3, -3, -3, 2, 2, 2, 2, 2, 2, -2, + -2, -2, -2, -2, -2, 2, 2, 2, 2, +}; + +// Sonar: deep 740 Hz ping with a quiet echo. +static const int8_t s_sonar_pcm[9280] = { + 0, 1, 3, 6, 9, 13, 15, 16, 15, 11, 6, -2, -10, -20, -28, -36, + -41, -42, -40, -33, -23, -10, 6, 23, 39, 53, 63, 68, 68, 62, 49, 32, + 10, -14, -38, -60, -78, -91, -96, -93, -82, -63, -37, -8, 24, 55, 83, 105, + 119, 120, 111, 93, 68, 36, 2, -33, -65, -91, -110, -119, -119, -108, -89, -62, + -30, 5, 39, 70, 95, 112, 120, 117, 105, 84, 56, 23, -11, -45, -75, -98, + -114, -119, -115, -101, -79, -50, -17, 18, 51, 80, 102, 115, 119, 113, 97, 74, + 44, 10, -24, -56, -84, -105, -116, -118, -110, -93, -68, -38, -4, 30, 62, 88, + 107, 117, 117, 107, 89, 63, 31, -3, -37, -67, -92, -109, -117, -116, -104, -84, + -57, -25, 9, 42, 72, 96, 111, 118, 114, 101, 79, 51, 18, -16, -48, -77, + -99, -113, -117, -112, -97, -74, -45, -12, 22, 54, 81, 102, 114, 117, 109, 93, + 69, 39, 5, -28, -59, -86, -105, -115, -116, -107, -89, -63, -32, 1, 34, 65, + 90, 107, 115, 114, 103, 84, 57, 26, -7, -40, -70, -93, -109, -116, -113, -100, + -79, -52, -20, 14, 46, 74, 96, 111, 115, 111, 96, 74, 46, 14, -20, -51, + -79, -99, -112, -115, -108, -92, -69, -40, -7, 26, 57, 83, 102, 113, 114, 106, + 88, 64, 34, 1, -32, -62, -87, -105, -113, -113, -103, -84, -58, -28, 5, 38, + 67, 91, 107, 114, 111, 99, 79, 52, 21, -12, -43, -72, -94, -108, -113, -109, + -96, -74, -47, -15, 18, 49, 76, 97, 110, 113, 107, 92, 69, 41, 9, -24, + -54, -80, -100, -111, -112, -104, -88, -64, -35, -3, 30, 60, 84, 102, 111, 111, + 102, 84, 59, 29, -4, -35, -64, -88, -104, -112, -110, -98, -79, -53, -23, 10, + 41, 69, 91, 106, 112, 108, 95, 74, 47, 17, -16, -47, -74, -94, -107, -111, + -106, -91, -69, -42, -10, 22, 52, 78, 97, 108, 110, 103, 88, 64, 36, 4, + -28, -57, -82, -100, -109, -109, -101, -83, -59, -30, 2, 33, 62, 85, 102, 110, + 108, 98, 79, 54, 24, -8, -39, -67, -89, -104, -110, -106, -94, -74, -48, -18, + 14, 44, 71, 92, 105, 109, 104, 91, 70, 43, 12, -20, -50, -75, -95, -106, + -109, -102, -87, -65, -37, -6, 25, 55, 79, 97, 107, 108, 100, 83, 60, 31, + 0, -31, -59, -83, -99, -107, -107, -97, -79, -54, -25, 6, 37, 64, 86, 101, + 108, 105, 94, 74, 49, 19, -12, -42, -69, -89, -103, -107, -103, -90, -70, -43, + -13, 18, 47, 73, 92, 104, 107, 101, 86, 65, 38, 8, -23, -52, -77, -95, + -105, -106, -98, -83, -60, -32, -2, 29, 57, 80, 97, 105, 105, 96, 78, 55, + 26, -4, -34, -62, -84, -99, -106, -103, -93, -74, -49, -21, 10, 40, 66, 87, + 100, 105, 102, 89, 70, 44, 15, -16, -45, -70, -90, -102, -105, -100, -86, -65, + -39, -9, 21, 50, 74, 92, 103, 104, 97, 82, 60, 33, 3, -27, -55, -78, + -94, -103, -103, -95, -78, -55, -27, 2, 32, 59, 81, 96, 103, 102, 92, 74, + 50, 22, -8, -37, -64, -84, -98, -103, -100, -89, -70, -45, -16, 14, 42, 68, + 87, 99, 103, 98, 85, 65, 39, 10, -19, -47, -72, -90, -100, -102, -96, -82, + -60, -34, -5, 25, 52, 75, 92, 101, 101, 94, 78, 55, 28, -1, -30, -57, + -79, -94, -101, -100, -91, -74, -50, -23, 6, 35, 61, 82, 96, 101, 99, 88, + 69, 45, 17, -12, -40, -65, -85, -97, -101, -97, -84, -65, -40, -12, 17, 45, + 69, 87, 98, 101, 95, 81, 60, 35, 6, -23, -50, -73, -89, -99, -100, -92, + -77, -56, -29, -1, 28, 54, 76, 91, 99, 99, 90, 73, 51, 24, -5, -33, + -59, -79, -93, -99, -97, -87, -69, -46, -19, 10, 38, 63, 82, 95, 99, 95, + 84, 65, 41, 13, -15, -43, -67, -85, -96, -99, -93, -80, -60, -36, -8, 21, + 47, 70, 87, 96, 98, 91, 77, 56, 30, 2, -26, -52, -74, -89, -97, -97, + -89, -73, -51, -25, 3, 31, 56, 77, 91, 97, 95, 86, 69, 46, 20, -8, + -36, -60, -80, -92, -97, -94, -83, -65, -41, -14, 14, 41, 64, 82, 93, 97, + 92, 80, 60, 36, 9, -19, -45, -68, -84, -94, -96, -90, -76, -56, -31, -4, + 24, 50, 71, 87, 95, 95, 87, 72, 51, 26, -2, -29, -54, -74, -88, -95, + -94, -85, -69, -47, -21, 7, 34, 58, 77, 90, 95, 92, 82, 64, 42, 16, + -12, -38, -62, -80, -91, -95, -90, -79, -60, -37, -10, 17, 43, 65, 82, 92, + 94, 88, 75, 56, 32, 5, -22, -47, -69, -84, -93, -93, -86, -72, -51, -27, + 0, 27, 51, 72, 86, 93, 92, 84, 68, 47, 22, -5, -32, -55, -75, -87, + -93, -91, -81, -64, -42, -17, 10, 36, 59, 77, 89, 93, 89, 78, 60, 37, + 12, -15, -41, -63, -79, -90, -92, -87, -75, -56, -33, -7, 20, 45, 66, 82, + 90, 91, 85, 71, 52, 28, 1, -25, -49, -69, -83, -91, -90, -82, -68, -47, + -23, 4, 30, 53, 72, 85, 91, 89, 80, 64, 43, 18, -9, -34, -57, -75, + -86, -91, -87, -77, -60, -38, -13, 13, 38, 60, 77, 87, 90, 86, 74, 56, + 33, 8, -18, -43, -64, -79, -88, -89, -83, -70, -52, -28, -3, 23, 47, 67, + 81, 88, 88, 81, 67, 47, 24, -2, -28, -51, -70, -83, -89, -87, -79, -63, + -43, -19, 7, 32, 54, 72, 84, 89, 86, 76, 60, 38, 14, -12, -36, -58, + -75, -85, -88, -84, -73, -56, -34, -9, 16, 41, 61, 77, 86, 88, 82, 70, + 52, 29, 4, -21, -45, -64, -78, -86, -87, -80, -66, -47, -24, 1, 26, 48, + 67, 80, 86, 85, 77, 63, 43, 20, -5, -30, -52, -70, -81, -86, -84, -75, + -59, -39, -15, 10, 34, 55, 72, 83, 86, 82, 72, 55, 34, 10, -15, -38, + -59, -74, -83, -86, -81, -69, -51, -30, -5, 19, 42, 62, 76, 84, 85, 78, + 66, 47, 25, 1, -24, -46, -65, -78, -84, -84, -76, -62, -43, -20, 4, 28, + 50, 67, 79, 84, 82, 74, 59, 39, 16, -9, -32, -53, -70, -80, -84, -81, + -71, -55, -35, -11, 13, 36, 56, 72, 81, 84, 79, 68, 51, 30, 7, -18, + -40, -59, -74, -82, -83, -77, -65, -47, -26, -2, 22, 44, 62, 75, 82, 82, + 75, 62, 43, 21, -3, -26, -47, -65, -77, -82, -81, -72, -58, -39, -17, 7, + 30, 51, 67, 78, 82, 79, 70, 55, 35, 12, -12, -34, -54, -69, -79, -82, + -78, -67, -51, -31, -8, 16, 38, 57, 71, 79, 81, 76, 64, 47, 26, 3, + -20, -42, -60, -73, -80, -80, -74, -61, -43, -22, 1, 24, 45, 62, 74, 80, + 79, 71, 58, 39, 17, -6, -28, -49, -65, -75, -80, -77, -69, -54, -35, -13, + 10, 32, 52, 67, 76, 79, 76, 66, 51, 31, 9, -14, -36, -55, -69, -77, + -79, -74, -63, -47, -27, -4, 18, 40, 57, 70, 77, 78, 72, 60, 43, 22, + 0, -22, -43, -60, -72, -78, -77, -70, -57, -39, -18, 4, 26, 46, 62, 73, + 78, 76, 68, 54, 35, 14, -9, -30, -49, -64, -74, -77, -74, -65, -50, -31, + -10, 13, 34, 52, 66, 75, 77, 73, 62, 47, 27, 5, -17, -37, -55, -68, + -75, -76, -71, -59, -43, -23, -1, 21, 41, 58, 69, 75, 75, 69, 56, 39, + 19, -3, -25, -44, -60, -71, -75, -74, -66, -53, -35, -15, 7, 28, 47, 62, + 72, 75, 73, 64, 50, 31, 11, -11, -32, -50, -64, -72, -75, -71, -61, -46, + -28, -6, 15, 35, 53, 66, 73, 74, 69, 58, 43, 24, 2, -19, -39, -55, + -67, -73, -73, -67, -55, -39, -19, 2, 23, 42, 58, 68, 73, 72, 65, 52, + 35, 15, -6, -26, -45, -60, -69, -73, -71, -63, -49, -32, -11, 10, 30, 48, + 62, 70, 73, 69, 60, 46, 28, 7, -14, -33, -50, -63, -71, -72, -68, -57, + -42, -24, -3, 17, 37, 53, 65, 71, 71, 66, 55, 39, 20, -1, -21, -40, + -55, -66, -71, -70, -64, -52, -35, -16, 4, 25, 43, 57, 67, 71, 69, 61, + 49, 32, 12, -8, -28, -46, -59, -68, -71, -68, -59, -45, -28, -8, 12, 32, + 48, 61, 68, 70, 66, 57, 42, 24, 4, -16, -35, -51, -62, -69, -70, -64, + -54, -39, -21, -1, 19, 38, 53, 64, 69, 69, 62, 51, 35, 17, -3, -23, + -41, -55, -65, -69, -67, -60, -48, -32, -13, 7, 26, 43, 57, 66, 69, 66, + 58, 45, 28, 9, -11, -30, -46, -59, -66, -68, -65, -56, -42, -25, -5, 14, + 33, 48, 60, 67, 68, 63, 53, 39, 21, 2, -18, -36, -51, -61, -67, -67, + -61, -50, -35, -17, 2, 21, 39, 53, 62, 67, 66, 59, 47, 32, 14, -6, + -25, -41, -55, -63, -67, -64, -57, -44, -28, -10, 9, 28, 44, 56, 64, 66, + 63, 54, 41, 25, 6, -13, -31, -46, -58, -64, -66, -61, -52, -38, -21, -3, + 16, 34, 49, 59, 65, 65, 60, 49, 35, 18, -1, -20, -37, -51, -60, -65, + -64, -58, -47, -32, -14, 5, 23, 39, 52, 61, 65, 63, 56, 44, 28, 11, + -8, -26, -42, -54, -62, -64, -61, -53, -41, -25, -7, 12, 29, 44, 56, 62, + 64, 60, 51, 38, 22, 3, -15, -32, -46, -57, -63, -63, -58, -49, -35, -18, + 0, 18, 35, 48, 58, 63, 62, 56, 46, 32, 15, -3, -21, -37, -50, -59, + -63, -61, -54, -43, -28, -11, 7, 24, 40, 52, 60, 62, 60, 52, 40, 25, + 8, -10, -27, -42, -53, -60, -62, -58, -50, -37, -22, -4, 13, 30, 44, 55, + 60, 61, 57, 48, 34, 18, 1, -17, -33, -46, -56, -61, -60, -55, -45, -31, + -15, 2, 20, 35, 48, 57, 61, 59, 53, 43, 28, 12, -6, -23, -38, -50, + -57, -60, -58, -51, -40, -25, -8, 9, 26, 40, 51, 58, 60, 57, 49, 37, + 22, 5, -12, -28, -42, -52, -58, -59, -55, -47, -34, -19, -2, 15, 31, 44, + 54, 59, 59, 54, 44, 31, 16, -1, -18, -33, -46, -55, -59, -58, -52, -42, + -28, -12, 5, 21, 36, 48, 55, 58, 57, 50, 39, 25, 9, -8, -24, -38, + -49, -56, -58, -55, -48, -37, -22, -6, 11, 27, 40, 50, 56, 57, 54, 46, + 34, 19, 3, -14, -29, -42, -51, -56, -57, -52, -43, -31, -16, 0, 17, 32, + 44, 52, 57, 56, 51, 41, 28, 13, -4, -20, -34, -45, -53, -56, -55, -49, + -39, -25, -10, 7, 22, 36, 47, 54, 56, 54, 47, 36, 22, 7, -10, -25, + -38, -48, -54, -56, -52, -45, -33, -19, -3, 13, 27, 40, 49, 54, 55, 51, + 43, 31, 16, 0, -15, -30, -42, -50, -55, -54, -49, -40, -28, -13, 3, 18, + 32, 43, 51, 54, 53, 48, 38, 25, 10, -6, -21, -34, -45, -52, -54, -52, + -46, -35, -22, -7, 8, 23, 36, 46, 52, 54, 51, 44, 33, 19, 4, -11, + -26, -38, -47, -52, -53, -49, -42, -30, -16, -1, 14, 28, 40, 48, 53, 52, + 48, 39, 28, 14, -2, -17, -30, -41, -49, -53, -52, -46, -37, -25, -11, 5, + 19, 32, 43, 50, 52, 51, 45, 35, 22, 8, -7, -22, -34, -44, -50, -52, + -49, -43, -32, -19, -5, 10, 24, 36, 45, 50, 51, 48, 41, 30, 17, 2, + -13, -26, -38, -46, -51, -51, -47, -39, -27, -14, 1, 15, 29, 40, 47, 51, + 50, 45, 36, 25, 11, -4, -18, -31, -41, -48, -50, -49, -43, -34, -22, -8, + 6, 20, 33, 42, 48, 50, 48, 42, 32, 20, 5, -9, -23, -34, -43, -49, + -50, -47, -40, -30, -17, -3, 12, 25, 36, 44, 49, 49, 45, 38, 27, 14, + 0, -14, -27, -38, -45, -49, -48, -44, -36, -25, -11, 3, 17, 29, 39, 46, + 49, 47, 42, 34, 22, 9, -5, -19, -31, -40, -46, -48, -46, -41, -31, -20, + -6, 8, 21, 33, 41, 47, 48, 45, 39, 29, 17, 3, -10, -23, -34, -42, + -47, -47, -44, -37, -27, -14, -1, 13, 25, 36, 43, 47, 47, 43, 35, 24, + 12, -2, -15, -27, -37, -44, -47, -46, -41, -33, -22, -9, 4, 18, 29, 38, + 44, 47, 45, 40, 31, 19, 7, -7, -20, -31, -40, -45, -46, -44, -38, -29, + -17, -4, 9, 22, 33, 40, 45, 46, 43, 36, 26, 15, 1, -12, -24, -34, + -41, -45, -45, -41, -34, -24, -12, 1, 14, 26, 35, 42, 45, 44, 40, 32, + 22, 10, -4, -16, -28, -37, -43, -45, -44, -38, -30, -19, -7, 6, 18, 29, + 38, 43, 45, 43, 37, 28, 17, 5, -8, -20, -31, -39, -43, -44, -41, -35, + -26, -15, -2, 11, 22, 32, 40, 43, 44, 40, 33, 24, 12, 0, -13, -24, + -34, -40, -43, -43, -39, -32, -22, -10, 3, 15, 26, 35, 41, 43, 42, 37, + 30, 19, 7, -5, -17, -28, -36, -41, -43, -41, -36, -28, -17, -5, 7, 19, + 29, 37, 41, 43, 40, 34, 26, 15, 3, -10, -21, -31, -38, -42, -42, -39, + -33, -23, -12, 0, 12, 23, 32, 38, 42, 41, 38, 31, 21, 10, -2, -14, + -25, -33, -39, -42, -41, -36, -29, -19, -8, 4, 16, 26, 34, 39, 41, 40, + 35, 27, 17, 5, -6, -18, -28, -35, -40, -41, -39, -33, -25, -15, -3, 9, + 20, 29, 36, 40, 41, 38, 32, 23, 13, 1, -11, -21, -30, -37, -40, -40, + -37, -30, -21, -10, 1, 13, 23, 32, 37, 40, 39, 35, 28, 19, 8, -3, + -15, -25, -33, -38, -40, -38, -34, -26, -17, -6, 6, 17, 26, 34, 38, 39, + 38, 32, 25, 15, 4, -8, -18, -28, -34, -38, -39, -36, -31, -23, -13, -2, + 10, 20, 29, 35, 38, 39, 35, 29, 21, 11, -1, -12, -22, -30, -36, -38, + -38, -34, -28, -19, -8, 3, 14, 23, 31, 36, 38, 37, 33, 26, 17, 6, + -5, -15, -25, -32, -36, -38, -36, -32, -24, -15, -4, 7, 17, 26, 33, 37, + 38, 35, 30, 22, 13, 2, -9, -19, -27, -33, -37, -37, -34, -29, -20, -11, + 0, 11, 20, 28, 34, 37, 37, 33, 27, 19, 9, -2, -12, -22, -29, -35, + -37, -36, -32, -25, -17, -7, 4, 14, 23, 30, 35, 36, 35, 31, 24, 15, + 5, -6, -16, -25, -31, -35, -36, -34, -29, -22, -13, -3, 8, 18, 26, 32, + 35, 36, 33, 28, 20, 11, 1, -10, -19, -27, -33, -35, -35, -32, -26, -18, + -9, 1, 11, 21, 28, 33, 35, 35, 31, 25, 16, 7, -3, -13, -22, -29, + -33, -35, -34, -30, -23, -15, -5, 5, 15, 23, 30, 34, 35, 33, 28, 21, + 13, 3, -7, -16, -24, -30, -34, -34, -32, -27, -20, -11, -1, 9, 18, 26, + 31, 34, 34, 31, 26, 18, 9, -1, -11, -19, -27, -31, -34, -33, -30, -24, + -16, -7, 3, 12, 21, 27, 32, 34, 33, 29, 23, 15, 5, -4, -14, -22, + -28, -32, -33, -32, -28, -21, -13, -3, 6, 15, 23, 29, 32, 33, 31, 26, + 19, 11, 2, -8, -17, -24, -30, -32, -33, -30, -25, -18, -9, 0, 10, 18, + 25, 30, 32, 32, 29, 24, 16, 7, -2, -11, -19, -26, -30, -32, -31, -28, + -22, -14, -6, 4, 13, 21, 27, 31, 32, 31, 27, 21, 13, 4, -5, -14, + -22, -28, -31, -32, -30, -26, -19, -11, -2, 7, 16, 23, 28, 31, 31, 29, + 24, 17, 9, 0, -9, -17, -24, -29, -31, -31, -28, -23, -16, -8, 1, 10, + 18, 25, 29, 31, 30, 27, 22, 14, 6, -3, -12, -19, -26, -29, -31, -30, + -26, -20, -13, -4, 5, 13, 21, 26, 30, 31, 29, 25, 19, 11, 2, -6, + -15, -22, -27, -30, -30, -28, -24, -17, -9, -1, 8, 16, 23, 27, 30, 30, + 27, 22, 16, 8, -1, -9, -17, -23, -28, -30, -29, -26, -21, -14, -6, 3, + 11, 18, 24, 28, 30, 29, 25, 20, 13, 4, -4, -12, -19, -25, -28, -29, + -28, -24, -18, -11, -3, 6, 14, 20, 26, 28, 29, 27, 23, 17, 9, 1, + -7, -15, -21, -26, -28, -29, -26, -22, -15, -8, 0, 9, 16, 22, 26, 28, + 28, 25, 21, 14, 6, -2, -10, -17, -23, -27, -28, -28, -24, -19, -12, -5, + 4, 11, 18, 24, 27, 28, 27, 23, 18, 11, 3, -5, -13, -19, -24, -27, + -28, -26, -22, -17, -9, -2, 6, 14, 20, 25, 27, 27, 25, 21, 15, 8, + 0, -8, -15, -21, -25, -27, -27, -25, -20, -14, -6, 2, 9, 16, 22, 26, + 27, 27, 24, 19, 12, 5, -3, -11, -17, -22, -26, -27, -26, -23, -17, -11, + -3, 4, 12, 18, 23, 26, 27, 25, 22, 16, 9, 2, -6, -13, -19, -24, + -26, -26, -25, -21, -15, -8, 0, 7, 14, 20, 24, 26, 26, 24, 19, 14, + 7, -1, -8, -15, -21, -24, -26, -26, -23, -18, -12, -5, 2, 10, 16, 21, + 25, 26, 25, 22, 17, 11, 4, -4, -11, -17, -22, -25, -26, -24, -21, -16, + -9, -2, 5, 12, 18, 22, 25, 25, 24, 20, 15, 8, 1, -7, -13, -19, + -23, -25, -25, -23, -19, -13, -7, 1, 8, 14, 20, 23, 25, 25, 22, 18, + 12, 5, -2, -9, -15, -20, -24, -25, -24, -21, -17, -11, -4, 3, 10, 16, + 21, 24, 25, 24, 20, 16, 9, 3, -5, -11, -17, -21, -24, -24, -23, -19, + -14, -8, -1, 6, 12, 18, 22, 24, 24, 22, 18, 13, 7, 0, -7, -13, + -19, -22, -24, -24, -21, -17, -12, -5, 2, 8, 14, 19, 22, 24, 23, 21, + 16, 11, 4, -3, -9, -15, -20, -23, -24, -23, -20, -15, -9, -3, 4, 11, + 16, 20, 23, 23, 22, 19, 14, 8, 1, -5, -12, -17, -21, -23, -23, -21, + -18, -13, -7, 0, 6, 13, 18, 21, 23, 23, 21, 17, 12, 6, -1, -8, + -14, -18, -21, -23, -22, -20, -16, -11, -4, 2, 9, 14, 19, 22, 23, 22, + 19, 15, 9, 3, -4, -10, -15, -19, -22, -23, -21, -18, -14, -8, -2, 5, + 11, 16, 20, 22, 22, 21, 17, 13, 7, 1, -6, -12, -17, -20, -22, -22, + -20, -16, -12, -6, 1, 7, 13, 17, 20, 22, 22, 19, 16, 10, 4, -2, + -8, -14, -18, -21, -22, -21, -19, -15, -9, -3, 3, 9, 14, 18, 21, 22, + 21, 18, 14, 8, 2, -4, -10, -15, -19, -21, -21, -20, -17, -12, -7, -1, + 5, 11, 16, 19, 21, 21, 19, 16, 11, 6, 0, -6, -12, -16, -20, -21, + -21, -19, -15, -10, -5, 1, 7, 13, 17, 20, 21, 20, 18, 14, 9, 3, + -3, -8, -14, -18, -20, -21, -20, -17, -13, -8, -2, 4, 9, 14, 18, 20, + 21, 19, 16, 12, 7, 1, -5, -10, -15, -18, -20, -20, -19, -16, -11, -6, + 0, 6, 11, 16, 19, 20, 20, 18, 15, 10, 5, -1, -7, -12, -16, -19, + -20, -20, -17, -14, -9, -4, 2, 8, 13, 17, 19, 20, 19, 17, 13, 8, + 2, -3, -9, -13, -17, -19, -20, -19, -16, -12, -7, -1, 4, 10, 14, 17, + 19, 20, 18, 15, 11, 6, 0, -5, -10, -15, -18, -19, -19, -18, -14, -10, + -5, 1, 6, 11, 15, 18, 19, 19, 17, 14, 9, 4, -2, -7, -12, -16, + -18, -19, -19, -16, -13, -8, -3, 3, 8, 13, 16, 18, 19, 18, 16, 12, + 7, 2, -4, -9, -13, -17, -19, -19, -18, -15, -11, -6, -1, 5, 10, 14, + 17, 19, 19, 17, 14, 10, 5, 0, -6, -11, -15, -17, -19, -18, -16, -13, + -9, -4, 1, 7, 11, 15, 18, 18, 18, 16, 12, 8, 3, -2, -8, -12, + -16, -18, -18, -17, -15, -12, -7, -2, 3, 8, 13, 16, 18, 18, 17, 14, + 11, 6, 1, -4, -9, -13, -16, -18, -18, -17, -14, -10, -5, 0, 5, 10, + 14, 17, 18, 18, 16, 13, 9, 4, -1, -6, -11, -14, -17, -18, -17, -15, + -12, -8, -3, 2, 7, 11, 15, 17, 18, 17, 15, 11, 7, 2, -3, -8, + -12, -15, -17, -17, -16, -14, -10, -6, -1, 4, 9, 13, 16, 17, 17, 16, + 13, 10, 5, 0, -5, -9, -13, -16, -17, -17, -15, -13, -9, -4, 1, 6, + 10, 14, 16, 17, 17, 15, 12, 8, 3, -2, -7, -11, -14, -16, -17, -16, + -14, -11, -7, -2, 3, 7, 11, 14, 16, 17, 16, 14, 10, 6, 1, -4, + -8, -12, -15, -16, -17, -16, -13, -10, -5, 0, 4, 9, 12, 15, 16, 16, + 15, 12, 9, 4, -1, -5, -10, -13, -15, -16, -16, -15, -12, -8, -3, 1, + 6, 10, 13, 16, 16, 16, 14, 11, 7, 2, -2, -7, -11, -14, -16, -16, + -15, -13, -10, -6, -2, 3, 8, 11, 14, 16, 16, 15, 13, 9, 5, 1, + -4, -8, -12, -14, -16, -16, -15, -12, -9, -4, 0, 5, 9, 12, 15, 16, + 16, 14, 11, 8, 3, -1, -6, -10, -13, -15, -16, -15, -14, -11, -7, -3, + 2, 6, 10, 13, 15, 16, 15, 13, 10, 6, 2, -3, -7, -11, -14, -15, + -16, -15, -12, -9, -5, -1, 4, 8, 11, 14, 15, 15, 14, 12, 8, 4, + 0, -4, -8, -12, -14, -15, -15, -14, -11, -8, -4, 1, 5, 9, 12, 14, + 15, 15, 13, 11, 7, 3, -2, -6, -10, -13, -14, -15, -15, -13, -10, -6, + -2, 2, 7, 10, 13, 15, 15, 14, 12, 9, 5, 1, -3, -7, -11, -13, + -15, -15, -14, -12, -8, -4, 0, 4, 8, 11, 14, 15, 15, 13, 11, 8, + 4, -1, -5, -9, -12, -14, -15, -14, -13, -10, -7, -3, 1, 6, 9, 12, + 14, 15, 14, 12, 10, 6, 2, -2, -6, -10, -12, -14, -15, -14, -12, -9, + -5, -1, 3, 7, 10, 13, 14, 14, 13, 11, 8, 5, 0, -4, -8, -11, + -13, -14, -14, -13, -11, -8, -4, 0, 4, 8, 11, 13, 14, 14, 13, 10, + 7, 3, -1, -5, -9, -12, -13, -14, -14, -12, -10, -6, -2, 2, 6, 9, + 12, 14, 14, 13, 12, 9, 5, 1, -3, -6, -10, -12, -14, -14, -13, -11, + -8, -5, -1, 3, 7, 10, 12, 14, 14, 13, 11, 8, 4, 0, -4, -8, + -11, -13, -14, -14, -12, -10, -7, -3, 1, 5, 8, 11, 13, 14, 13, 12, + 9, 6, 2, -2, -5, -9, -11, -13, -14, -13, -11, -9, -5, -2, 2, 6, + 9, 12, 13, 14, 13, 11, 8, 5, 1, -3, -7, -10, -12, -13, -13, -12, + -10, -7, -4, 0, 4, 7, 10, 12, 13, 13, 12, 10, 7, 3, -1, -4, + -8, -11, -12, -13, -13, -12, -9, -6, -2, 1, 5, 8, 11, 13, 13, 13, + 11, 9, 5, 2, -2, -6, -9, -11, -13, -13, -12, -11, -8, -5, -1, 3, + 6, 9, 12, 13, 13, 12, 10, 7, 4, 0, -3, -7, -10, -12, -13, -13, + -12, -10, -7, -3, 0, 4, 7, 10, 12, 13, 13, 11, 9, 6, 3, -1, + -5, -8, -10, -12, -13, -12, -11, -9, -5, -2, 2, 5, 8, 11, 12, 13, + 12, 10, 8, 5, 1, -2, -6, -9, -11, -12, -13, -12, -10, -7, -4, 0, + 3, 6, 9, 11, 12, 12, 11, 9, 7, 3, 0, -4, -7, -10, -12, -12, + -12, -11, -9, -6, -3, 1, 4, 8, 10, 12, 12, 12, 11, 8, 5, 2, + -2, -5, -8, -10, -12, -12, -12, -10, -8, -5, -1, 2, 6, 8, 11, 12, + 12, 12, 10, 7, 4, 1, -3, -6, -9, -11, -12, -12, -11, -9, -7, -3, + 0, 3, 7, 9, 11, 12, 12, 11, 9, 6, 3, -1, -4, -7, -10, -11, + -12, -12, -10, -8, -5, -2, 1, 5, 8, 10, 11, 12, 12, 10, 8, 5, + 2, -2, -5, -8, -10, -12, -12, -11, -10, -7, -4, -1, 3, 6, 9, 11, + 12, 12, 11, 9, 7, 4, 0, -3, -6, -9, -11, -12, -12, -11, -9, -6, + -3, 0, 4, 7, 9, 11, 12, 11, 10, 8, 5, 2, -1, -4, -7, -10, + -11, -12, -11, -10, -8, -5, -2, 2, 5, 8, 10, 11, 12, 11, 10, 7, + 4, 1, -2, -6, -8, -10, -11, -12, -11, -9, -7, -4, 0, 3, 6, 9, + 10, 11, 11, 10, 9, 6, 3, 0, -4, -7, -9, -11, -11, -11, -10, -8, + -6, -2, 1, 4, 7, 9, 11, 11, 11, 10, 8, 5, 2, -2, -5, -7, + -10, -11, -11, -11, -9, -7, -4, -1, 2, 5, 8, 10, 11, 11, 11, 9, + 7, 4, 1, -3, -6, -8, -10, -11, -11, -10, -9, -6, -3, 0, 3, 6, + 9, 10, 11, 11, 10, 8, 6, 3, -1, -4, -7, -9, -10, -11, -11, -10, + -8, -5, -2, 1, 4, 7, 9, 11, 11, 11, 9, 7, 4, 1, -2, -5, + -8, -10, -11, -11, -10, -9, -7, -4, -1, 2, 5, 8, 10, 11, 11, 10, + 8, 6, 3, 0, -3, -6, -8, -10, -11, -11, -10, -8, -6, -3, 1, 4, + 6, 9, 10, 11, 11, 9, 8, 5, 2, -1, -4, -7, -9, -10, -11, -10, + -9, -7, -4, -1, 2, 5, 7, 9, 10, 11, 10, 9, 7, 4, 1, -2, + -5, -8, -9, -10, -11, -10, -8, -6, -3, 0, 3, 6, 8, 10, 11, 11, + 10, 8, 6, 3, 0, -3, -6, -8, -10, -11, -10, -9, -7, -5, -2, 1, + 4, 7, 9, 10, 11, 10, 9, 7, 4, 2, -1, -4, -7, -9, -10, -10, + -10, -9, -7, -4, -1, 2, 5, 7, 9, 10, 10, 10, 8, 6, 3, 0, + -3, -5, -8, -9, -10, -10, -9, -8, -6, -3, 0, 3, 6, 8, 10, 10, + 10, 9, 7, 5, 2, -1, -4, -6, -8, -10, -10, -10, -9, -7, -5, -2, + 1, 4, 7, 9, 10, 10, 10, 9, 7, 4, 1, -2, -5, -7, -9, -10, + -10, -10, -8, -6, -3, -1, 2, 5, 7, 9, 10, 10, 9, 8, 6, 3, + 0, -3, -6, -8, -9, -10, -10, -9, -7, -5, -2, 1, 3, 6, 8, 9, + 10, 10, 9, 7, 5, 2, -1, -4, -6, -8, -10, -10, -10, -8, -7, -4, + -1, 2, 4, 7, 9, 10, 10, 9, 8, 6, 4, 1, -2, -5, -7, -9, + -10, -10, -9, -8, -6, -3, 0, 3, 5, 8, 9, 10, 10, 9, 7, 5, + 2, 0, -3, -6, -8, -9, -10, -10, -9, -7, -5, -2, 1, 4, 6, 8, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 2, 3, 4, 5, 6, 5, 4, 2, -1, -4, -7, -10, -12, + -14, -15, -14, -12, -8, -3, 2, 8, 14, 18, 22, 24, 24, 22, 17, 11, + 4, -5, -13, -21, -27, -32, -33, -32, -29, -22, -13, -3, 8, 19, 29, 37, + 41, 42, 39, 33, 24, 13, 1, -11, -23, -32, -38, -42, -42, -38, -31, -22, + -10, 2, 14, 24, 33, 39, 42, 41, 37, 29, 20, 8, -4, -16, -26, -34, + -40, -42, -40, -35, -28, -17, -6, 6, 18, 28, 36, 40, 42, 40, 34, 26, + 15, 4, -8, -20, -29, -37, -41, -41, -39, -33, -24, -13, -1, 11, 22, 31, + 38, 41, 41, 38, 31, 22, 11, -1, -13, -24, -32, -38, -41, -41, -36, -29, + -20, -9, 3, 15, 25, 34, 39, 41, 40, 35, 28, 18, 6, -5, -17, -27, + -35, -40, -41, -39, -34, -26, -16, -4, 8, 19, 28, 36, 40, 41, 38, 32, + 24, 14, 2, -10, -21, -30, -37, -40, -40, -37, -31, -22, -11, 0, 12, 23, + 31, 37, 40, 40, 36, 29, 20, 9, -3, -14, -24, -33, -38, -40, -39, -35, + -28, -18, -7, 5, 16, 26, 34, 39, 40, 39, 34, 26, 16, 5, -7, -18, + -28, -35, -39, -40, -38, -32, -24, -14, -3, 9, 20, 29, 36, 39, 40, 37, + 31, 22, 12, 0, -11, -22, -30, -37, -40, -39, -36, -29, -20, -10, 2, 13, + 23, 32, 37, 40, 39, 35, 28, 18, 7, -4, -15, -25, -33, -38, -40, -38, + -34, -26, -16, -5, 6, 17, 27, 34, 38, 40, 37, 32, 24, 14, 3, -8, + -19, -28, -35, -39, -39, -37, -31, -22, -12, -1, 10, 21, 30, 36, 39, 39, + 36, 29, 21, 10, -1, -12, -23, -31, -36, -39, -38, -34, -28, -19, -8, 3, + 14, 24, 32, 37, 39, 38, 33, 26, 17, 6, -5, -16, -26, -33, -38, -39, + -37, -32, -24, -15, -4, 8, 18, 27, 34, 38, 39, 36, 31, 23, 13, 2, + -10, -20, -29, -35, -38, -38, -35, -29, -21, -10, 1, 12, 22, 30, 36, 38, + 38, 34, 28, 19, 8, -3, -14, -23, -31, -36, -38, -37, -33, -26, -17, -6, + 5, 15, 25, 32, 37, 38, 37, 32, 24, 15, 4, -7, -17, -26, -33, -37, + -38, -36, -30, -23, -13, -2, 9, 19, 28, 34, 37, 38, 35, 29, 21, 11, + 0, -11, -21, -29, -35, -38, -37, -34, -28, -19, -9, 2, 13, 22, 30, 35, + 38, 37, 33, 26, 17, 7, -4, -15, -24, -31, -36, -38, -36, -32, -24, -15, + -5, 6, 16, 25, 32, 36, 37, 35, 30, 23, 13, 3, -8, -18, -27, -33, + -37, -37, -34, -29, -21, -11, -1, 10, 20, 28, 34, 37, 37, 33, 27, 19, + 9, -1, -12, -22, -29, -35, -37, -36, -32, -26, -17, -7, 3, 14, 23, 30, + 35, 37, 36, 31, 24, 15, 5, -5, -16, -25, -31, -36, -37, -35, -30, -23, + -14, -3, 7, 17, 26, 32, 36, 36, 34, 29, 21, 12, 1, -9, -19, -27, + -33, -36, -36, -33, -27, -19, -10, 1, 11, 21, 28, 34, 36, 36, 32, 26, + 17, 8, -3, -13, -22, -29, -34, -36, -35, -31, -24, -16, -6, 5, 15, 24, + 30, 35, 36, 34, 30, 23, 14, 4, -7, -17, -25, -31, -35, -36, -34, -29, + -21, -12, -2, 9, 18, 26, 32, 35, 36, 33, 27, 19, 10, 0, -11, -20, + -28, -33, -35, -35, -32, -26, -18, -8, 2, 12, 21, 29, 33, 35, 35, 31, + 24, 16, 6, -4, -14, -23, -30, -34, -35, -34, -30, -23, -14, -4, 6, 16, + 24, 31, 34, 35, 33, 28, 21, 12, 2, -8, -17, -25, -31, -35, -35, -32, + -27, -19, -10, 0, 10, 19, 27, 32, 35, 34, 31, 26, 18, 8, -2, -12, + -21, -28, -33, -35, -34, -30, -24, -16, -7, 4, 13, 22, 29, 33, 35, 33, + 29, 23, 14, 5, -5, -15, -23, -30, -33, -35, -33, -28, -21, -12, -3, 7, + 17, 25, 30, 34, 34, 32, 27, 20, 11, 1, -9, -18, -26, -31, -34, -34, + -31, -26, -18, -9, 1, 11, 20, 27, 32, 34, 33, 30, 24, 16, 7, -3, + -13, -21, -28, -32, -34, -33, -29, -23, -14, -5, 5, 14, 22, 29, 33, 34, + 32, 28, 21, 13, 3, -7, -16, -24, -30, -33, -34, -31, -27, -20, -11, -1, + 8, 17, 25, 30, 33, 33, 31, 25, 18, 9, -1, -10, -19, -26, -31, -33, + -33, -30, -24, -16, -7, 2, 12, 20, 27, 31, 33, 32, 29, 23, 15, 5, + -4, -13, -22, -28, -32, -33, -32, -28, -21, -13, -4, 6, 15, 23, 29, 32, + 33, 31, 26, 20, 11, 2, -8, -17, -24, -29, -32, -33, -30, -25, -18, -9, + 0, 9, 18, 25, 30, 33, 32, 29, 24, 16, 8, -2, -11, -19, -26, -31, + -33, -32, -28, -22, -15, -6, 4, 13, 21, 27, 31, 32, 31, 27, 21, 13, + 4, -5, -14, -22, -28, -31, -32, -30, -26, -20, -11, -2, 7, 16, 23, 29, + 32, 32, 30, 25, 18, 10, 1, -9, -17, -24, -29, -32, -32, -29, -24, -16, + -8, 1, 10, 19, 25, 30, 32, 31, 28, 22, 15, 6, -3, -12, -20, -26, + -30, -32, -31, -27, -21, -13, -4, 5, 13, 21, 27, 31, 32, 30, 26, 20, + 12, 3, -6, -15, -22, -28, -31, -31, -29, -25, -18, -10, -1, 8, 16, 23, + 28, 31, 31, 28, 23, 17, 8, -1, -10, -18, -24, -29, -31, -31, -28, -22, + -15, -7, 2, 11, 19, 25, 29, 31, 30, 27, 21, 13, 5, -4, -13, -20, + -26, -30, -31, -29, -25, -19, -12, -3, 6, 14, 21, 27, 30, 31, 29, 24, + 18, 10, 1, -7, -16, -22, -27, -30, -30, -28, -23, -17, -9, 0, 9, 17, + 23, 28, 30, 30, 27, 22, 15, 7, -2, -10, -18, -24, -29, -30, -29, -26, + -21, -14, -5, 4, 12, 19, 25, 29, 30, 29, 25, 19, 12, 4, -5, -13, + -21, -26, -29, -30, -28, -24, -18, -10, -2, 7, 15, 22, 27, 29, 30, 27, + 23, 17, 9, 0, -8, -16, -23, -27, -29, -29, -27, -22, -15, -7, 1, 10, + 17, 24, 28, 29, 29, 26, 21, 14, 6, -3, -11, -19, -24, -28, -29, -28, + -25, -19, -12, -4, 5, 13, 20, 25, 28, 29, 28, 24, 18, 11, 2, -6, + -14, -21, -26, -29, -29, -27, -23, -17, -9, -1, 8, 15, 22, 26, 29, 29, + 26, 22, 15, 7, -1, -9, -17, -23, -27, -29, -28, -25, -20, -14, -6, 2, + 11, 18, 23, 27, 29, 28, 24, 19, 12, 4, -4, -12, -19, -24, -28, -29, + -27, -23, -18, -11, -3, 6, 13, 20, 25, 28, 28, 26, 22, 16, 9, 1, + -7, -15, -21, -25, -28, -28, -26, -21, -15, -8, 0, 8, 16, 22, 26, 28, + 28, 25, 20, 14, 6, -2, -10, -17, -23, -26, -28, -27, -24, -19, -12, -5, + 3, 11, 18, 23, 27, 28, 27, 23, 18, 11, 3, -5, -13, -19, -24, -27, + -28, -26, -22, -16, -9, -2, 6, 14, 20, 25, 27, 27, 25, 21, 15, 8, + 0, -8, -15, -21, -25, -27, -27, -24, -20, -14, -6, 2, 9, 16, 22, 26, + 27, 27, 24, 19, 12, 5, -3, -11, -17, -23, -26, -27, -26, -23, -18, -11, + -3, 4, 12, 18, 23, 26, 27, 25, 22, 16, 10, 2, -6, -13, -19, -24, + -26, -27, -25, -21, -15, -8, 0, 7, 14, 20, 24, 26, 26, 24, 20, 14, + 7, -1, -9, -15, -21, -25, -26, -26, -23, -19, -12, -5, 2, 10, 17, 22, + 25, 26, 25, 22, 17, 11, 4, -4, -11, -18, -22, -25, -26, -25, -21, -16, + -10, -2, 5, 12, 18, 23, 26, 26, 24, 20, 15, 8, 1, -7, -14, -19, + -23, -26, -26, -24, -19, -14, -7, 1, 8, 15, 20, 24, 26, 25, 23, 18, + 12, 5, -2, -9, -16, -21, -24, -26, -25, -22, -17, -11, -4, 3, 11, 17, + 22, 25, 25, 24, 21, 16, 10, 3, -5, -12, -18, -22, -25, -25, -24, -20, + -15, -8, -1, 6, 13, 19, 23, 25, 25, 23, 19, 14, 7, 0, -7, -14, + -19, -23, -25, -25, -22, -18, -12, -6, 2, 9, 15, 20, 23, 25, 24, 22, + 17, 11, 4, -3, -10, -16, -21, -24, -25, -24, -21, -16, -10, -3, 4, 11, + 17, 21, 24, 25, 23, 20, 15, 9, 2, -6, -12, -18, -22, -24, -24, -23, + -19, -14, -7, 0, 7, 13, 19, 22, 24, 24, 22, 18, 12, 6, -1, -8, + -14, -19, -23, -24, -24, -21, -17, -11, -5, 2, 9, 15, 20, 23, 24, 23, + 20, 16, 10, 3, -4, -10, -16, -21, -23, -24, -23, -19, -15, -9, -2, 5, + 11, 17, 21, 23, 24, 22, 19, 13, 7, 1, -6, -13, -18, -21, -23, -23, + -21, -18, -12, -6, 1, 7, 14, 18, 22, 23, 23, 21, 17, 11, 5, -2, + -9, -14, -19, -22, -23, -23, -20, -16, -10, -3, 3, 10, 15, 20, 22, 23, + 22, 19, 14, 9, 2, -5, -11, -16, -20, -23, -23, -21, -18, -13, -7, -1, + 6, 12, 17, 21, 23, 23, 21, 17, 12, 6, 0, -7, -13, -18, -21, -23, + -22, -20, -16, -11, -5, 2, 8, 14, 18, 21, 23, 22, 19, 15, 10, 4, + -3, -9, -15, -19, -22, -22, -21, -19, -14, -9, -2, 4, 10, 15, 19, 22, + 22, 21, 18, 13, 8, 1, -5, -11, -16, -20, -22, -22, -20, -17, -12, -6, + 0, 6, 12, 17, 20, 22, 22, 20, 16, 11, 5, -1, -7, -13, -18, -21, + -22, -21, -19, -15, -10, -4, 2, 9, 14, 18, 21, 22, 21, 18, 14, 9, + 3, -4, -10, -15, -19, -21, -22, -20, -18, -13, -8, -2, 5, 11, 15, 19, + 21, 21, 20, 17, 12, 6, 0, -6, -11, -16, -20, -21, -21, -19, -16, -11, + -5, 1, 7, 12, 17, 20, 21, 21, 19, 15, 10, 4, -2, -8, -13, -17, + -20, -21, -20, -18, -14, -9, -3, 3, 9, 14, 18, 20, 21, 20, 17, 13, + 8, 2, -4, -10, -15, -18, -20, -21, -19, -16, -12, -7, -1, 5, 11, 15, + 19, 20, 20, 19, 16, 11, 5, 0, -6, -12, -16, -19, -20, -20, -18, -15, + -10, -4, 2, 7, 13, 17, 19, 20, 20, 17, 14, 9, 3, -3, -8, -13, + -17, -20, -20, -19, -17, -13, -8, -2, 4, 9, 14, 18, 20, 20, 19, 16, + 12, 7, 1, -5, -10, -15, -18, -20, -20, -18, -15, -11, -6, 0, 6, 11, + 15, 18, 20, 20, 18, 14, 10, 4, -1, -7, -12, -16, -19, -20, -19, -17, + -14, -9, -3, 2, 8, 13, 16, 19, 20, 19, 16, 13, 8, 2, -3, -9, + -13, -17, -19, -19, -18, -16, -12, -7, -1, 4, 10, 14, 17, 19, 19, 18, + 15, 11, 6, 0, -5, -10, -15, -18, -19, -19, -17, -14, -10, -5, 1, 6, + 11, 15, 18, 19, 19, 17, 13, 9, 4, -2, -7, -12, -16, -18, -19, -18, + -16, -12, -8, -3, 3, 8, 13, 16, 18, 19, 18, 15, 12, 7, 1, -4, + -9, -13, -17, -18, -19, -17, -15, -11, -6, 0, 5, 10, 14, 17, 18, 18, + 17, 14, 10, 5, -1, -6, -11, -15, -17, -18, -18, -16, -13, -9, -4, 2, + 7, 11, 15, 17, 18, 18, 16, 12, 8, 3, -3, -8, -12, -15, -18, -18, + -17, -15, -11, -7, -2, 4, 8, 13, 16, 18, 18, 17, 14, 10, 6, 1, + -4, -9, -13, -16, -18, -18, -16, -14, -10, -5, 0, 5, 10, 14, 16, 18, + 17, 16, 13, 9, 4, -1, -6, -11, -14, -17, -18, -17, -15, -12, -8, -3, + 2, 7, 11, 15, 17, 18, 17, 15, 11, 7, 2, -3, -8, -12, -15, -17, + -17, -16, -14, -10, -6, -1, 4, 9, 13, 15, 17, 17, 16, 13, 9, 5, + 0, -5, -9, -13, -16, -17, -17, -15, -13, -9, -4, 1, 6, 10, 14, 16, + 17, 17, 15, 12, 8, 3, -2, -7, -11, -14, -16, -17, -16, -14, -11, -7, + -2, 3, 7, 11, 14, 16, 17, 16, 14, 10, 6, 1, -4, -8, -12, -15, + -16, -17, -15, -13, -9, -5, 0, 5, 9, 13, 15, 16, 16, 15, 12, 9, + 4, -1, -5, -10, -13, -15, -16, -16, -14, -12, -8, -3, 2, 6, 10, 13, + 16, 16, 16, 14, 11, 7, 2, -2, -7, -11, -14, -16, -16, -15, -13, -10, + -6, -1, 3, 8, 11, 14, 16, 16, 15, 13, 9, 5, 1, -4, -8, -12, + -14, -16, -16, -14, -12, -8, -4, 0, 5, 9, 12, 15, 16, 16, 14, 11, + 8, 3, -1, -6, -10, -13, -15, -16, -15, -13, -11, -7, -2, 2, 6, 10, + 13, 15, 16, 15, 13, 10, 6, 2, -3, -7, -11, -14, -15, -15, -14, -12, + -9, -5, -1, 4, 8, 11, 14, 15, 15, 14, 12, 8, 4, 0, -5, -9, + -12, -14, -15, -15, -14, -11, -8, -3, 1, 5, 9, 12, 14, 15, 15, 13, + 10, 7, 3, -2, -6, -10, -13, -14, -15, -14, -13, -10, -6, -2, 3, 7, + 10, 13, 15, 15, 14, 12, 9, 5, 1, -3, -7, -11, -13, -15, -15, -14, + -11, -8, -4, 0, 4, 8, 11, 13, 15, 14, 13, 11, 7, 4, -1, -5, + -9, -12, -14, -15, -14, -13, -10, -7, -3, 1, 6, 9, 12, 14, 14, 14, + 12, 9, 6, 2, -2, -6, -10, -12, -14, -14, -14, -12, -9, -5, -1, 3, + 7, 10, 13, 14, 14, 13, 11, 8, 4, 0, -4, -8, -11, -13, -14, -14, + -13, -11, -7, -4, 0, 4, 8, 11, 13, 14, 14, 12, 10, 7, 3, -1, + -5, -9, -11, -13, -14, -13, -12, -9, -6, -2, 2, 6, 9, 12, 13, 14, + 13, 11, 9, 5, 1, -3, -6, -10, -12, -13, -14, -13, -11, -8, -4, -1, + 3, 7, 10, 12, 13, 13, 12, 10, 7, 4, 0, -4, -8, -10, -12, -13, + -13, -12, -10, -7, -3, 1, 5, 8, 11, 13, 13, 13, 12, 9, 6, 2, + -2, -5, -9, -11, -13, -13, -13, -11, -8, -5, -1, 2, 6, 9, 11, 13, + 13, 12, 11, 8, 4, 1, -3, -7, -10, -12, -13, -13, -12, -10, -7, -4, + 0, 4, 7, 10, 12, 13, 13, 12, 9, 6, 3, -1, -4, -8, -10, -12, + -13, -13, -11, -9, -6, -2, 1, 5, 8, 11, 12, 13, 12, 11, 8, 5, + 2, -2, -6, -9, -11, -12, -13, -12, -10, -8, -4, -1, 3, 6, 9, 11, + 12, 12, 12, 10, 7, 4, 0, -3, -7, -9, -11, -12, -12, -11, -9, -6, + -3, 0, 4, 7, 10, 12, 12, 12, 11, 9, 6, 2, -1, -5, -8, -10, + -12, -12, -12, -10, -8, -5, -2, 2, 5, 8, 10, 12, 12, 12, 10, 8, + 4, 1, -2, -6, -9, -11, -12, -12, -11, -9, -7, -4, 0, 3, 6, 9, + 11, 12, 12, 11, 9, 6, 3, 0, -4, -7, -9, -11, -12, -12, -10, -8, + -6, -2, 1, 4, 7, 10, 11, 12, 11, 10, 8, 5, 2, -2, -5, -8, + -10, -11, -12, -11, -10, -7, -4, -1, 2, 5, 8, 10, 11, 12, 11, 9, + 7, 4, 1, -3, -6, -8, -10, -11, -11, -11, -9, -6, -3, 0, 3, 6, + 9, 11, 11, 11, 10, 8, 6, 3, -1, -4, -7, -9, -11, -11, -11, -10, + -8, -5, -2, 1, 4, 7, 9, 11, 11, 11, 9, 7, 4, 1, -2, -5, + -8, -10, -11, -11, -10, -9, -7, -4, -1, 3, 5, 8, 10, 11, 11, 10, + 8, 6, 3, 0, -3, -6, -8, -10, -11, -11, -10, -8, -6, -3, 1, 4, + 6, 9, 10, 11, 11, 9, 8, 5, 2, -1, -4, -7, -9, -10, -11, -10, + -9, -7, -4, -1, 2, 5, 7, 9, 10, 11, 10, 9, 7, 4, 1, -2, + -5, -8, -9, -10, -11, -10, -8, -6, -3, 0, 3, 6, 8, 10, 10, 10, + 10, 8, 5, 3, 0, -3, -6, -8, -10, -10, -10, -9, -7, -5, -2, 1, + 4, 6, 8, 10, 10, 10, 9, 7, 4, 2, -1, -4, -7, -9, -10, -10, + -10, -8, -6, -4, -1, 2, 5, 7, 9, 10, 10, 9, 8, 6, 3, 0, + -3, -5, -7, -9, -10, -10, -9, -8, -5, -3, 0, 3, 6, 8, 9, 10, + 10, 9, 7, 5, 2, -1, -4, -6, -8, -9, -10, -10, -9, -7, -4, -2, + 1, 4, 6, 8, 9, 10, 9, 8, 6, 4, 1, -2, -4, -7, -8, -10, + -10, -9, -8, -6, -3, -1, 2, 5, 7, 9, 10, 10, 9, 7, 5, 3, + 0, -3, -5, -7, -9, -10, -9, -9, -7, -5, -2, 1, 3, 6, 8, 9, + 10, 9, 8, 7, 4, 2, -1, -4, -6, -8, -9, -9, -9, -8, -6, -4, + -1, 2, 4, 6, 8, 9, 9, 9, 8, 6, 3, 1, -2, -5, -7, -8, + -9, -9, -9, -7, -5, -3, 0, 3, 5, 7, 8, 9, 9, 8, 7, 5, + 2, 0, -3, -5, -7, -9, -9, -9, -8, -6, -4, -2, 1, 3, 6, 7, + 9, 9, 9, 8, 6, 4, 1, -1, -4, -6, -8, -9, -9, -9, -7, -6, + -3, -1, 2, 4, 6, 8, 9, 9, 8, 7, 5, 3, 0, -2, -5, -7, + -8, -9, -9, -8, -7, -5, -2, 0, 3, 5, 7, 8, 9, 9, 8, 6, + 4, 2, -1, -3, -5, -7, -8, -9, -8, -7, -6, -4, -1, 1, 4, 6, + 7, 8, 9, 8, 7, 5, 3, 1, -2, -4, -6, -7, -8, -9, -8, -7, + -5, -3, 0, 2, 4, 6, 8, 8, 8, 8, 6, 5, 2, 0, -2, -5, + -7, -8, -8, -8, -7, -6, -4, -2, 1, 3, 5, 7, 8, 8, 8, 7, + 6, 4, 1, -1, -3, -5, -7, -8, -8, -8, -7, -5, -3, -1, 1, 4, + 6, 7, 8, 8, 8, 7, 5, 3, 1, -2, -4, -6, -7, -8, -8, -8, + -6, -5, -2, 0, 2, 4, 6, 7, 8, 8, 7, 6, 4, 2, 0, -3, + -5, -6, -8, -8, -8, -7, -6, -4, -1, 1, 3, 5, 7, 8, 8, 8, + 7, 5, 3, 1, -1, -3, -5, -7, -8, -8, -7, -6, -5, -3, -1, 2, + 4, 6, 7, 8, 8, 7, 6, 4, 2, 0, -2, -4, -6, -7, -8, -8, + -7, -6, -4, -2, 0, 2, 4, 6, 7, 8, 8, 7, 5, 4, 2, -1, + -3, -5, -6, -7, -8, -7, -7, -5, -3, -1, 1, 3, 5, 6, 7, 8, + 7, 6, 5, 3, 1, -1, -4, -5, -7, -7, -7, -7, -6, -4, -2, 0, + 2, 4, 6, 7, 7, 7, 7, 6, 4, 2, 0, -2, -4, -6, -7, -7, + -7, -7, -5, -4, -2, 1, 3, 4, 6, 7, 7, 7, 6, 5, 3, 1, + -1, -3, -5, -6, -7, -7, -7, -6, -5, -3, -1, 1, 3, 5, 6, 7, + 7, 7, 6, 4, 2, 0, -2, -4, -5, -6, -7, -7, -7, -5, -4, -2, + 0, 2, 4, 5, 7, 7, 7, 6, 5, 4, 2, 0, -2, -4, -6, -7, + -7, -7, -6, -5, -3, -1, 1, 3, 4, 6, 7, 7, 7, 6, 5, 3, + 1, -1, -3, -5, -6, -7, -7, -7, -6, -4, -2, 0, 2, 3, 5, 6, + 7, 7, 6, 5, 4, 2, 0, -2, -4, -5, -6, -7, -7, -6, -5, -4, + -2, 0, 2, 4, 5, 6, 7, 7, 6, 5, 3, 1, -1, -3, -4, -6, + -6, -7, -6, -6, -4, -3, -1, 1, 3, 4, 6, 6, 7, 6, 5, 4, + 2, 1, -1, -3, -5, -6, -6, -7, -6, -5, -4, -2, 0, 2, 3, 5, + 6, 6, 7, 6, 5, 3, 2, 0, -2, -4, -5, -6, -6, -6, -6, -5, + -3, -1, 1, 2, 4, 5, 6, 6, 6, 6, 4, 3, 1, -1, -3, -4, + -5, -6, -6, -6, -5, -4, -2, -1, 1, 3, 4, 6, 6, 6, 6, 5, + 4, 2, 0, -2, -3, -5, -6, -6, -6, -6, -5, -3, -2, 0, 2, 3, + 5, 6, 6, 6, 6, 5, 3, 1, 0, -2, -4, -5, -6, -6, -6, -5, + -4, -3, -1, 1, 2, 4, 5, 6, 6, 6, 5, 4, 2, 1, -1, -3, + -4, -5, -6, -6, -6, -5, -4, -2, 0, 1, 3, 4, 5, 6, 6, 6, + 5, 3, 2, 0, -2, -3, -5, -6, -6, -6, -5, -4, -3, -1, 0, 2, + 4, 5, 6, 6, 6, 5, 4, 3, 1, -1, -2, -4, -5, -6, -6, -6, + -5, -4, -2, -1, 1, 3, 4, 5, 6, 6, 6, 5, 4, 2, 0, -1, + -3, -4, -5, -6, -6, -5, -5, -3, -2, 0, 2, 3, 4, 5, 6, 6, + 5, 4, 3, 1, 0, -2, -3, -5, -5, -6, -6, -5, -4, -3, -1, 0, + 2, 4, 5, 5, 6, 6, 5, 4, 2, 1, -1, -2, -4, -5, -5, -6, + -5, -5, -4, -2, -1, 1, 3, 4, 5, 6, 6, 5, 4, 3, 2, 0, + -1, -3, -4, -5, -6, -6, -5, -4, -3, -2, 0, 2, 3, 4, 5, 6, + 5, 5, 4, 3, 1, 0, -2, -3, -4, -5, -6, -5, -5, -4, -2, -1, + 1, 2, 4, 5, 5, 5, 5, 5, 3, 2, 1, -1, -2, -4, -5, -5, + -5, -5, -4, -3, -2, 0, 1, 3, 4, 5, 5, 5, 5, 4, 3, 2, + 0, -2, -3, -4, -5, -5, -5, -5, -4, -3, -1, 0, 2, 3, 4, 5, + 5, 5, 5, 4, 2, 1, -1, -2, -3, -4, -5, -5, -5, -4, -3, -2, + -1, 1, 2, 4, 5, 5, 5, 5, 4, 3, 2, 0, -1, -3, -4, -5, + -5, -5, -5, -4, -3, -2, 0, 1, 3, 4, 5, 5, 5, 5, 4, 3, + 1, 0, -2, -3, -4, -5, -5, -5, -5, -4, -2, -1, 0, 2, 3, 4, + 5, 5, 5, 4, 3, 2, 1, -1, -2, -3, -4, -5, -5, -5, -4, -3, + -2, 0, 1, 2, 4, 4, 5, 5, 5, 4, 3, 2, 0, -1, -3, -4, + -5, -5, -5, -5, -4, -3, -1, 0, 2, 3, 4, 5, 5, 5, 4, 4, + 2, 1, 0, -2, -3, -4, -5, -5, -5, -4, -3, -2, -1, 1, 2, 3, + 4, 5, 5, 5, 4, 3, 2, 1, -1, -2, -3, -4, -5, -5, -5, -4, + -3, -2, 0, 1, 2, 4, 4, 5, 5, 4, 4, 3, 1, 0, -1, -3, + -4, -4, -5, -5, -4, -3, -2, -1, 0, 2, 3, 4, 5, 5, 5, 4, + 3, 2, 1, -1, -2, -3, -4, -5, -5, -5, -4, -3, -2, -1, 1, 2, + 3, 4, 5, 5, 4, 4, 3, 2, 0, -1, -2, -3, -4, -5, -5, -4, + -4, -3, -1, 0, 1, 3, 4, 4, 5, 5, 4, 3, 2, 1, 0, -2, + -3, -4, -4, -5, -5, -4, -3, -2, -1, 0, 2, 3, 4, 4, 5, 4, + 4, 3, 2, 1, -1, -2, -3, -4, -4, -5, -4, -4, -3, -2, 0, 1, + 2, 3, 4, 4, 5, 4, 4, 3, 1, 0, -1, -2, -3, -4, -4, -4, + -4, -3, -2, -1, 0, 1, 3, 4, 4, 4, 4, 4, 3, 2, 1, 0, + -2, -3, -4, -4, -4, -4, -4, -3, -2, -1, 1, 2, 3, 4, 4, 4, + 4, 4, 3, 2, 0, -1, -2, -3, -4, -4, -4, -4, -3, -3, -1, 0, + 1, 2, 3, 4, 4, 4, 4, 3, 2, 1, 0, -1, -2, -3, -4, -4, + -4, -4, -3, -2, -1, 0, 2, 3, 4, 4, 4, 4, 4, 3, 2, 1, + -1, -2, -3, -4, -4, -4, -4, -4, -3, -2, 0, 1, 2, 3, 4, 4, + 4, 4, 3, 3, 1, 0, -1, -2, -3, -4, -4, -4, -4, -3, -2, -1, + 0, 1, 2, 3, 4, 4, 4, 4, 3, 2, 1, 0, -1, -3, -3, -4, + -4, -4, -4, -3, -2, -1, 0, 2, 3, 4, 4, 4, 4, 4, 3, 2, + 1, -1, -2, -3, -4, -4, -4, -4, -3, -3, -1, 0, 1, 2, 3, 4, + 4, 4, 4, 3, 2, 1, 0, -1, -2, -3, -4, -4, -4, -4, -3, -2, + -1, 0, 1, 2, 3, 4, 4, 4, 4, 3, 2, 1, 0, -2, -3, -3, + -4, -4, -4, -3, -3, -2, -1, 1, 2, 3, 3, 4, 4, 4, 3, 3, + 1, 0, -1, -2, -3, -4, -4, -4, -4, -3, -2, -1, 0, 1, 2, 3, + 4, 4, 4, 4, 3, 2, 1, 0, -1, -2, -3, -4, -4, -4, -4, -3, + -2, -1, 0, 1, 2, 3, 4, 4, 4, 3, 3, 2, 1, -1, -2, -3, + -3, -4, -4, -4, -3, -3, -2, 0, 1, 2, 3, 3, 4, 4, 4, 3, + 2, 1, 0, -1, -2, -3, -4, -4, -4, -4, -3, -2, -1, 0, 1, 2, + 3, 4, 4, 4, 3, 3, 2, 1, 0, -1, -2, -3, -4, -4, -4, -3, + -3, -2, -1, 0, 2, 2, 3, 4, 4, 4, 3, 2, 2, 0, -1, -2, + -3, -3, -4, -4, -4, -3, -2, -1, 0, 1, 2, 3, 3, 4, 4, 4, + 3, 2, 1, 0, -1, -2, -3, -3, -4, -4, -3, -3, -2, -1, 0, 1, + 2, 3, 4, 4, 4, 3, 3, 2, 1, 0, -1, -2, -3, -4, -4, -4, + -3, -2, -2, -1, 1, 2, 3, 3, 4, 4, 4, 3, 2, 1, 0, -1, + -2, -3, -3, -4, -4, -3, -3, -2, -1, 0, 1, 2, 3, 3, 4, 4, + 3, 3, 2, 1, 0, -1, -2, -3, -3, -4, -4, -3, -3, -2, -1, 0, + 1, 2, 3, 4, 4, 4, 3, 2, 2, 1, -1, -2, -2, -3, -4, -4, + -3, -3, -2, -1, 0, 1, 2, 3, 3, 4, 4, 3, 3, 2, 1, 0, + -1, -2, -3, -3, -4, -4, -3, -3, -2, -1, 0, 1, 2, 3, 3, 4, + 4, 3, 3, 2, 1, 0, -1, -2, -3, -3, -4, -4, -3, -2, -2, -1, + 0, 1, 2, 3, 3, 4, 3, 3, 2, 1, 0, -1, -2, -2, -3, -3, + -4, -3, -3, -2, -1, 0, 1, 2, 3, 3, 4, 4, 3, 3, 2, 1, + 0, -1, -2, -3, -3, -4, -3, -3, -3, -2, -1, 0, 1, 2, 3, 3, + 4, 3, 3, 2, 2, 1, 0, -1, -2, -3, -3, -4, -3, -3, -2, -1, + 0, 1, 2, 2, 3, 3, 4, 3, 3, 2, 1, 0, -1, -2, -3, -3, + -3, -3, -3, -3, -2, -1, 0, 1, 2, 3, 3, 3, 3, 3, 3, 2, + 1, 0, -1, -2, -3, -3, -3, -3, -3, -2, -2, -1, 0, 1, 2, 3, +}; + +// Bounce: six ticks with accelerating spacing and decaying level. +static const int8_t s_bounce_pcm[7471] = { + 0, 3, 6, 7, 8, 15, 19, 10, -11, -25, -24, -21, -31, -45, -37, -1, + 34, 41, 33, 41, 66, 71, 32, -25, -52, -45, -46, -77, -103, -75, -4, 50, + 56, 47, 72, 113, 109, 45, -25, -49, -41, -54, -97, -120, -81, -9, 35, 35, + 38, 76, 117, 107, 45, -13, -28, -26, -52, -101, -119, -77, -14, 17, 17, 31, + 78, 117, 102, 44, -1, -9, -13, -51, -102, -115, -73, -20, 0, 1, 25, 78, + 114, 96, 45, 12, 9, -3, -49, -101, -108, -68, -28, -17, -13, 20, 77, 108, + 88, 46, 25, 25, 5, -47, -96, -99, -64, -35, -32, -25, 16, 74, 100, 79, + 47, 38, 38, 12, -45, -89, -89, -60, -43, -46, -34, 13, 68, 89, 71, 49, + 49, 49, 17, -41, -80, -77, -56, -51, -57, -41, 10, 61, 77, 62, 52, 59, + 57, 20, -36, -69, -66, -53, -58, -66, -45, 6, 53, 65, 55, 54, 67, 63, + 23, -30, -57, -55, -51, -63, -72, -48, 2, 43, 52, 48, 57, 73, 66, 25, + -22, -44, -44, -49, -68, -76, -50, -2, 32, 39, 41, 58, 77, 68, 27, -14, + -31, -34, -47, -71, -78, -50, -7, 20, 27, 36, 59, 79, 67, 29, -6, -19, + -25, -45, -72, -77, -49, -12, 9, 16, 31, 59, 78, 65, 31, 3, -7, -17, + -43, -71, -75, -48, -18, -2, 6, 26, 58, 76, 62, 33, 12, 4, -10, -41, + -69, -71, -47, -23, -13, -3, 22, 56, 72, 59, 35, 21, 14, -5, -38, -65, + -66, -46, -29, -22, -11, 19, 52, 66, 55, 37, 29, 22, 0, -35, -60, -60, + -44, -34, -31, -17, 15, 48, 59, 50, 39, 36, 29, 5, -31, -54, -53, -43, + -39, -38, -22, 11, 42, 52, 46, 41, 42, 35, 8, -26, -46, -47, -42, -44, + -43, -25, 8, 35, 44, 42, 43, 47, 39, 11, -21, -38, -40, -41, -47, -47, + -28, 4, 28, 36, 38, 44, 50, 41, 14, -15, -30, -34, -39, -49, -50, -30, + -1, 21, 28, 34, 45, 52, 43, 17, -9, -22, -28, -38, -51, -51, -31, -5, + 13, 21, 30, 45, 53, 43, 19, -2, -14, -22, -36, -51, -50, -32, -9, 5, + 14, 27, 44, 53, 43, 21, 4, -6, -17, -34, -50, -49, -33, -14, -2, 7, + 23, 43, 51, 42, 24, 10, 1, -12, -32, -48, -47, -33, -18, -9, 2, 20, + 40, 48, 40, 26, 16, 7, -8, -30, -45, -44, -33, -22, -15, -3, 17, 37, + 45, 38, 28, 21, 13, -4, -26, -41, -41, -33, -26, -20, -8, 14, 33, 41, + 36, 30, 26, 17, -1, -23, -37, -37, -32, -29, -25, -11, 11, 29, 36, 34, + 31, 29, 21, 2, -19, -32, -33, -32, -32, -28, -14, 7, 24, 31, 31, 32, + 32, 24, 5, -15, -26, -29, -31, -34, -31, -17, 4, 19, 26, 29, 33, 34, + 26, 8, -10, -21, -26, -30, -35, -32, -19, 0, 14, 21, 27, 33, 36, 27, + 10, -6, -16, -22, -29, -36, -33, -20, -3, 9, 16, 24, 33, 36, 28, 13, + -1, -10, -18, -28, -36, -33, -21, -7, 4, 12, 22, 32, 36, 28, 15, 3, + -5, -15, -26, -35, -33, -22, -10, -1, 8, 19, 31, 35, 28, 17, 7, -1, + -11, -24, -33, -32, -23, -13, -5, 4, 17, 29, 33, 28, 19, 11, 3, -8, + -22, -31, -30, -24, -16, -9, 0, 14, 26, 31, 27, 20, 15, 7, -6, -20, + -28, -29, -24, -19, -13, -3, 12, 24, 28, 26, 22, 18, 10, -3, -17, -25, + -26, -24, -21, -16, -5, 9, 21, 25, 25, 23, 20, 13, 0, -14, -22, -24, + -24, -23, -18, -8, 6, 17, 22, 23, 24, 22, 15, 2, -11, -19, -22, -23, + -24, -20, -10, 3, 14, 19, 22, 24, 23, 16, 4, -8, -15, -19, -23, -25, + -21, -12, 1, 10, 16, 20, 24, 24, 18, 6, -4, -12, -17, -22, -25, -22, + -13, -2, 7, 13, 19, 24, 25, 19, 8, -1, -8, -14, -21, -25, -22, -14, + -5, 3, 10, 17, 23, 24, 19, 10, 2, -5, -12, -20, -24, -22, -15, -7, + 0, 7, 15, 22, 24, 19, 12, 5, -2, -10, -18, -23, -22, -16, -9, -3, + 4, 13, 21, 23, 19, 13, 8, 1, -8, -16, -22, -21, -17, -11, -6, 2, + 11, 19, 21, 19, 15, 10, 3, -5, -15, -20, -20, -17, -13, -8, 0, 9, + 17, 20, 19, 16, 12, 6, -3, -12, -18, -19, -17, -15, -10, -2, 7, 15, + 18, 18, 17, 14, 8, -1, -10, -16, -17, -17, -16, -12, -4, 5, 12, 16, + 17, 17, 15, 9, 0, -8, -13, -16, -17, -17, -13, -6, 3, 10, 14, 16, + 17, 16, 11, 2, -6, -11, -14, -17, -17, -14, -7, 1, 7, 12, 15, 17, + 17, 12, 4, -3, -9, -13, -16, -17, -15, -9, -1, 5, 10, 14, 17, 17, + 12, 6, -1, -6, -11, -15, -17, -15, -10, -3, 3, 8, 13, 16, 17, 13, + 7, 1, -4, -10, -14, -17, -15, -11, -5, 1, 6, 12, 16, 16, 13, 8, + 3, -2, -8, -13, -16, -15, -11, -6, -2, 4, 10, 15, 16, 13, 9, 5, + 0, -6, -12, -15, -15, -12, -8, -3, 2, 9, 13, 15, 13, 10, 7, 2, + -5, -11, -14, -14, -12, -9, -5, 1, 7, 12, 14, 13, 11, 8, 3, -3, + -9, -13, -13, -12, -10, -6, -1, 6, 11, 13, 13, 12, 9, 5, -2, -8, + -11, -13, -13, -11, -8, -2, 4, 9, 12, 12, 12, 10, 6, 0, -6, -10, + -12, -12, -12, -9, -3, 3, 7, 10, 12, 12, 11, 7, 1, -4, -8, -11, + -12, -12, -9, -5, 1, 6, 9, 11, 12, 11, 8, 2, -3, -7, -10, -12, + -12, -10, -6, 0, 4, 8, 10, 12, 12, 8, 4, -1, -5, -9, -11, -12, + -10, -6, -2, 2, 6, 10, 12, 12, 9, 5, 0, -4, -7, -11, -12, -10, + -7, -3, 1, 5, 9, 11, 11, 9, 6, 2, -2, -6, -10, -11, -10, -8, + -4, -1, 4, 8, 10, 11, 9, 7, 3, -1, -5, -9, -11, -10, -8, -5, + -2, 2, 7, 10, 11, 9, 7, 4, 0, -4, -8, -10, -10, -9, -6, -3, + 1, 5, 9, 10, 9, 8, 5, 2, -3, -7, -9, -10, -9, -7, -4, 0, + 4, 8, 9, 9, 8, 6, 3, -2, -6, -8, -9, -9, -8, -5, -1, 3, + 7, 8, 9, 9, 7, 4, -1, -4, -7, -9, -9, -8, -6, -2, 2, 5, + 8, 9, 9, 7, 4, 0, -3, -6, -8, -9, -8, -6, -3, 1, 4, 7, + 8, 9, 8, 5, 1, -2, -5, -7, -9, -8, -7, -4, 0, 3, 6, 8, + 9, 8, 6, 2, -1, -4, -6, -8, -8, -7, -4, -1, 2, 5, 7, 8, + 8, 6, 3, 0, -3, -6, -8, -8, -7, -5, -2, 1, 4, 6, 8, 8, + 6, 4, 1, -2, -5, -7, -8, -7, -5, -3, 0, 3, 6, 7, 8, 7, + 4, 2, -1, -4, -6, -8, -7, -6, -4, -1, 2, 5, 7, 7, 7, 5, + 3, 0, -3, -6, -7, -7, -6, -4, -2, 1, 4, 6, 7, 7, 5, 3, + 1, -2, -5, -7, -7, -6, -5, -3, 0, 3, 6, 7, 7, 6, 4, 1, + -2, -4, -6, -7, -6, -5, -3, 0, 3, 5, 6, 6, 6, 5, 2, -1, + -3, -5, -6, -6, -6, -4, -1, 2, 4, 6, 6, 6, 5, 3, 0, -3, + -5, -6, -6, -6, -4, -2, 1, 3, 5, 6, 6, 5, 3, 1, -2, -4, + -5, -6, -6, -5, -2, 0, 2, 4, 6, 6, 5, 4, 1, -1, -3, -5, + -6, -6, -5, -3, -1, 2, 4, 5, 6, 6, 4, 2, 0, -2, -4, -6, + -6, -5, -3, -1, 1, 3, 5, 6, 6, 4, 3, 0, -2, -4, -5, -6, + -5, -4, -2, 0, 2, 4, 5, 5, 5, 3, 1, -1, -3, -5, -5, -5, + -4, -2, 0, 2, 4, 5, 5, 5, 3, 2, 0, -2, -4, -5, -5, -4, + -3, -1, 1, 3, 5, 5, 5, 4, 2, 0, -2, -4, -5, -5, -4, -3, + -2, 1, 3, 4, 5, 5, 4, 3, 1, -1, -3, -4, -5, -4, -4, -2, + 0, 2, 4, 4, 5, 4, 3, 1, -1, -3, -4, -4, -5, -4, -2, -1, + 1, 3, 4, 5, 4, 3, 2, 0, -2, -3, -4, -4, -4, -3, -1, 1, + 2, 4, 4, 4, 4, 2, 0, -1, -3, -4, -4, -4, -3, -1, 0, 2, + 3, 4, 4, 4, 2, 1, -1, -2, -4, -4, -4, -3, -2, 0, 1, 3, + 4, 4, 4, 3, 1, 0, -2, -3, -4, -4, -3, -2, -1, 1, 2, 3, + 4, 4, 3, 2, 0, -1, -3, -4, -4, -4, -3, -1, 0, 2, 3, 4, + 4, 3, 2, 1, -1, -2, -3, -4, -4, -3, -2, 0, 1, 3, 4, 4, + 3, 2, 1, 0, -2, -3, -4, -4, -3, -2, -1, 1, 2, 3, 4, 3, + 3, 1, 0, -1, -3, -3, -3, -3, -2, -1, 1, 2, 3, 3, 3, 3, + 2, 0, -1, -2, -3, -3, -3, -2, -1, 0, 2, 3, 3, 3, 3, 2, + 1, -1, -2, -3, -3, -3, -3, -2, 0, 1, 2, 3, 3, 3, 2, 1, + 0, -2, -2, -3, -3, -3, -2, -1, 1, 2, 3, 3, 3, 2, 1, 0, + -1, -2, -3, -3, -3, -2, -1, 0, 1, 2, 3, 3, 3, 2, 0, -1, + -2, -3, -3, -3, -2, -1, 0, 1, 2, 3, 3, 3, 2, 1, 0, -1, + -2, -3, -3, -2, -1, 0, 1, 2, 3, 3, 3, 2, 1, 0, -1, -2, + -3, -3, -2, -2, -1, 0, 1, 2, 3, 3, 2, 1, 0, -1, -2, -2, + -3, -2, -2, -1, 0, 1, 2, 3, 3, 2, 2, 1, 0, -1, -2, -3, + -3, -2, -1, 0, 1, 2, 2, 3, 2, 2, 1, 0, -1, -2, -2, -2, + -2, -1, -1, 1, 1, 2, 2, 2, 2, 1, 0, -1, -2, -2, -2, -2, + -2, -1, 0, 1, 2, 2, 2, 2, 1, 0, -1, -1, -2, -2, -2, -2, + -1, 0, 1, 2, 2, 2, 2, 2, 1, 0, -1, -2, -2, -2, -2, -1, + 0, 1, 1, 2, 2, 2, 2, 1, 0, -1, -2, -2, -2, -2, -1, -1, + 0, 1, 2, 2, 2, 2, 1, 0, -1, -1, -2, -2, -2, -2, -1, 0, + 1, 2, 2, 2, 2, 1, 0, 0, -1, -2, -2, -2, -2, -1, 0, 1, + 1, 2, 2, 2, 1, 1, 0, -1, -2, -2, -2, -2, -1, 0, 0, 1, + 2, 2, 2, 2, 1, 0, -1, -1, -2, -2, -2, -1, -1, 0, 1, 1, + 2, 2, 2, 1, 0, 0, -1, -2, -2, -2, -1, -1, 0, 1, 1, 2, + 2, 2, 1, 1, 0, -1, -1, -2, -2, -1, -1, 0, 0, 1, 2, 2, + 2, 1, 1, 0, -1, -1, -2, -2, -2, -1, 0, 0, 1, 1, 2, 2, + 1, 1, 0, 0, -1, -1, -2, -2, -1, -1, 0, 1, 1, 2, 2, 1, + 1, 0, 0, -1, -1, -2, -2, -1, -1, 0, 0, 1, 1, 2, 1, 1, + 1, 0, -1, -1, -1, -2, -1, -1, 0, 0, 1, 1, 2, 1, 1, 1, + 0, 0, -1, -1, -2, -1, -1, -1, 0, 1, 1, 1, 1, 1, 1, 0, + 0, -1, -1, -1, -1, -1, -1, 0, 0, 1, 1, 1, 1, 1, 0, 0, + -1, -1, -1, -1, -1, -1, 0, 0, 1, 1, 1, 1, 1, 1, 0, -1, + -1, -1, -1, -1, -1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, -1, + -1, -1, -1, -1, -1, 0, 1, 1, 1, 1, 1, 1, 0, 0, -1, -1, + -1, -1, -1, -1, 0, 0, 1, 1, 1, 1, 1, 0, 0, -1, -1, -1, + -1, -1, -1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, -1, -1, -1, + -1, -1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, -1, -1, -1, -1, + -1, -1, 0, 0, 1, 1, 1, 1, 1, 0, 0, -1, -1, -1, -1, -1, + -1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, -1, -1, -1, -1, -1, + 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, -1, -1, -1, -1, -1, 0, + 0, 0, 1, 1, 1, 1, 1, 0, 0, -1, -1, -1, -1, -1, -1, 0, + 0, 1, 1, 1, 1, 1, 0, 0, 0, -1, -1, -1, -1, -1, 0, 0, + 1, 1, 1, 1, 1, 0, 0, 0, -1, -1, -1, -1, -1, 0, 0, 0, + 1, 1, 1, 1, 1, 0, 0, -1, -1, -1, -1, -1, 0, 0, 0, 1, + 1, 1, 1, 1, 0, 0, 0, -1, -1, -1, -1, 0, 0, 0, 1, 1, + 1, 1, 1, 0, 0, 0, -1, -1, -1, -1, -1, 0, 0, 0, 1, 1, + 1, 1, 0, 0, 0, -1, -1, -1, -1, -1, 0, 0, 0, 1, 1, 1, + 1, 1, 0, 0, 0, -1, -1, -1, -1, 0, 0, 0, 0, 1, 1, 1, + 1, 0, 0, 0, -1, -1, -1, -1, 0, 0, 0, 0, 1, 1, 1, 1, + 0, 0, 0, 0, -1, -1, -1, -1, 0, 0, 0, 1, 1, 1, 1, 0, + 0, 0, 0, -1, -1, -1, -1, 0, 0, 0, 0, 1, 1, 1, 0, 0, + 0, 0, -1, -1, -1, -1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, + 0, 0, -1, -1, -1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, + 0, -1, -1, -1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, + -1, -1, -1, -1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, + -1, -1, -1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, -1, + -1, -1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, -1, + -1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, -1, -1, + 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, -1, 0, + 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2, 5, 5, 6, 11, 15, 8, -8, -19, -18, -16, -24, -35, -28, -1, + 26, 32, 25, 31, 51, 55, 24, -19, -40, -35, -35, -59, -80, -59, -3, 39, + 43, 37, 56, 88, 85, 35, -19, -38, -32, -42, -76, -93, -63, -7, 27, 28, + 30, 59, 91, 83, 35, -11, -22, -20, -41, -79, -93, -60, -11, 14, 13, 24, + 60, 91, 79, 34, -1, -7, -10, -40, -80, -89, -57, -16, 0, 1, 19, 61, + 89, 74, 35, 9, 7, -2, -38, -78, -84, -53, -21, -13, -10, 16, 60, 84, + 68, 35, 19, 19, 4, -37, -75, -77, -50, -27, -25, -19, 13, 57, 78, 62, + 37, 29, 30, 9, -35, -69, -69, -46, -33, -35, -26, 10, 53, 69, 55, 38, + 38, 38, 13, -32, -62, -60, -44, -39, -44, -32, 8, 48, 60, 49, 40, 46, + 44, 16, -28, -54, -51, -41, -45, -51, -35, 5, 41, 50, 42, 42, 52, 49, + 18, -23, -44, -43, -40, -49, -56, -37, 2, 33, 40, 37, 44, 57, 52, 20, + -17, -35, -34, -38, -53, -59, -38, -1, 25, 30, 32, 45, 60, 53, 21, -11, + -25, -26, -37, -55, -60, -39, -5, 16, 21, 28, 46, 61, 52, 22, -4, -15, + -20, -35, -56, -60, -38, -9, 7, 12, 24, 46, 61, 51, 24, 2, -5, -13, + -34, -56, -58, -38, -14, -2, 4, 21, 45, 59, 48, 25, 9, 3, -8, -32, + -54, -55, -37, -18, -10, -2, 17, 44, 56, 46, 27, 16, 11, -4, -30, -51, + -51, -36, -22, -17, -8, 15, 41, 51, 42, 29, 22, 17, 0, -27, -47, -46, + -35, -27, -24, -13, 12, 37, 46, 39, 30, 28, 23, 3, -24, -42, -41, -33, + -31, -29, -17, 9, 33, 41, 36, 32, 33, 27, 6, -20, -36, -36, -33, -34, + -33, -20, 6, 28, 34, 32, 33, 36, 30, 9, -16, -30, -31, -32, -36, -37, + -22, 3, 22, 28, 29, 34, 39, 32, 11, -12, -23, -26, -31, -38, -38, -23, + 0, 16, 22, 26, 35, 41, 33, 13, -7, -17, -21, -30, -39, -39, -24, -4, + 10, 16, 23, 35, 41, 34, 15, -2, -11, -17, -28, -39, -39, -25, -7, 4, + 11, 21, 34, 41, 33, 17, 3, -5, -13, -27, -39, -38, -25, -11, -1, 6, + 18, 33, 40, 32, 18, 8, 1, -10, -25, -37, -37, -26, -14, -7, 1, 16, + 31, 37, 31, 20, 12, 6, -6, -23, -35, -34, -26, -17, -12, -2, 13, 29, + 35, 30, 22, 16, 10, -3, -21, -32, -32, -25, -20, -16, -6, 11, 26, 32, + 28, 23, 20, 13, -1, -18, -28, -29, -25, -23, -19, -9, 8, 23, 28, 26, + 24, 23, 16, 2, -15, -25, -26, -25, -25, -22, -11, 6, 19, 24, 24, 25, + 25, 19, 4, -12, -21, -23, -24, -26, -24, -13, 3, 15, 20, 22, 26, 27, + 20, 6, -8, -16, -20, -24, -27, -25, -14, 0, 11, 16, 21, 26, 28, 21, + 8, -5, -12, -17, -23, -28, -26, -16, -3, 7, 13, 19, 26, 28, 22, 10, + -1, -8, -14, -22, -28, -26, -17, -5, 3, 9, 17, 25, 28, 22, 12, 2, + -4, -11, -20, -27, -26, -17, -8, -1, 6, 15, 24, 27, 22, 13, 6, -1, + -9, -19, -26, -25, -18, -10, -4, 3, 13, 22, 26, 22, 15, 9, 2, -7, + -17, -24, -24, -18, -13, -7, 0, 11, 21, 24, 21, 16, 11, 5, -4, -15, + -22, -22, -18, -15, -10, -2, 9, 18, 22, 20, 17, 14, 8, -2, -13, -20, + -21, -19, -16, -12, -4, 7, 16, 20, 19, 18, 16, 10, 0, -11, -17, -19, + -18, -18, -14, -6, 5, 13, 17, 18, 18, 17, 11, 2, -8, -15, -17, -18, + -19, -16, -8, 3, 11, 15, 17, 19, 18, 13, 3, -6, -12, -15, -18, -19, + -17, -9, 1, 8, 12, 16, 19, 19, 14, 5, -3, -9, -13, -17, -19, -17, + -10, -2, 5, 10, 14, 18, 19, 14, 7, -1, -6, -11, -16, -19, -17, -11, + -4, 3, 8, 13, 18, 19, 15, 8, 2, -4, -9, -15, -19, -17, -12, -5, + 0, 5, 12, 17, 18, 15, 9, 4, -1, -8, -14, -18, -17, -13, -7, -2, + 3, 10, 16, 18, 15, 10, 6, 1, -6, -13, -17, -16, -13, -9, -4, 1, + 9, 15, 17, 15, 11, 8, 3, -4, -11, -15, -16, -13, -10, -6, 0, 7, + 13, 15, 14, 12, 9, 4, -3, -10, -14, -15, -13, -11, -8, -2, 6, 11, + 14, 14, 13, 11, 6, -1, -8, -12, -14, -13, -12, -9, -3, 4, 10, 12, + 13, 13, 12, 7, 0, -6, -10, -12, -13, -13, -10, -5, 2, 8, 11, 13, + 13, 12, 8, 2, -4, -9, -11, -13, -13, -11, -6, 1, 6, 9, 12, 13, + 13, 9, 3, -3, -7, -10, -13, -14, -12, -7, -1, 4, 8, 11, 13, 13, + 10, 4, -1, -5, -9, -12, -13, -12, -7, -2, 2, 6, 10, 13, 13, 10, + 5, 1, -3, -7, -11, -13, -12, -8, -4, 0, 5, 9, 12, 13, 10, 6, + 2, -2, -6, -10, -13, -12, -9, -5, -1, 3, 8, 11, 12, 10, 7, 4, + 0, -5, -9, -12, -11, -9, -6, -3, 2, 7, 10, 12, 10, 8, 5, 1, + -4, -8, -11, -11, -9, -7, -4, 1, 6, 9, 11, 10, 9, 6, 2, -3, + -7, -10, -10, -10, -8, -5, -1, 4, 8, 10, 10, 9, 7, 3, -1, -6, + -9, -10, -10, -9, -6, -2, 3, 7, 9, 10, 9, 8, 4, 0, -5, -8, + -9, -10, -9, -7, -3, 2, 6, 8, 9, 10, 8, 5, 1, -3, -6, -8, + -9, -9, -7, -4, 1, 4, 7, 9, 10, 9, 6, 2, -2, -5, -8, -9, + -9, -8, -4, 0, 3, 6, 8, 9, 9, 6, 3, -1, -4, -7, -9, -9, + -8, -5, -1, 2, 5, 7, 9, 9, 7, 4, 0, -3, -6, -8, -9, -8, + -6, -2, 1, 4, 7, 9, 9, 7, 4, 1, -2, -5, -8, -9, -8, -6, + -3, 0, 3, 6, 8, 9, 7, 5, 2, -1, -4, -7, -8, -8, -6, -4, + -1, 2, 5, 7, 8, 7, 6, 3, 0, -3, -6, -8, -8, -7, -5, -2, + 1, 4, 7, 8, 7, 6, 4, 1, -2, -5, -7, -7, -7, -5, -3, 0, + 3, 6, 7, 7, 6, 5, 2, -1, -4, -6, -7, -7, -6, -4, -1, 3, + 5, 7, 7, 7, 5, 3, 0, -3, -6, -7, -7, -6, -4, -2, 2, 4, + 6, 7, 7, 6, 3, 0, -3, -5, -6, -7, -6, -5, -2, 1, 3, 5, + 6, 7, 6, 4, 1, -2, -4, -6, -7, -7, -5, -3, 0, 2, 4, 6, + 7, 6, 4, 2, -1, -3, -5, -6, -7, -5, -3, -1, 2, 4, 6, 6, + 6, 5, 2, 0, -2, -4, -6, -6, -6, -4, -2, 1, 3, 5, 6, 6, + 5, 3, 1, -2, -4, -6, -6, -6, -4, -2, 0, 2, 4, 6, 6, 5, + 3, 1, -1, -3, -5, -6, -6, -4, -3, -1, 2, 4, 5, 6, 5, 4, + 2, 0, -2, -4, -6, -6, -5, -3, -1, 1, 3, 5, 5, 5, 4, 3, + 1, -2, -4, -5, -5, -5, -4, -2, 0, 3, 4, 5, 5, 5, 3, 1, + -1, -3, -5, -5, -5, -4, -2, 0, 2, 4, 5, 5, 5, 4, 2, -1, + -3, -4, -5, -5, -4, -3, -1, 1, 3, 4, 5, 5, 4, 2, 0, -2, + -4, -4, -5, -4, -3, -1, 1, 3, 4, 5, 5, 4, 3, 1, -1, -3, + -4, -5, -5, -4, -2, 0, 2, 3, 4, 5, 4, 3, 1, -1, -2, -4, + -5, -5, -4, -2, 0, 1, 3, 4, 5, 4, 3, 2, 0, -2, -3, -4, + -5, -4, -3, -1, 1, 2, 4, 4, 4, 3, 2, 0, -1, -3, -4, -4, + -4, -3, -1, 0, 2, 3, 4, 4, 4, 2, 1, -1, -2, -4, -4, -4, + -3, -2, 0, 1, 3, 4, 4, 4, 3, 1, 0, -2, -3, -4, -4, -3, + -2, -1, 1, 2, 4, 4, 4, 3, 2, 0, -1, -3, -4, -4, -3, -3, + -1, 0, 2, 3, 4, 4, 3, 2, 1, -1, -2, -3, -4, -3, -3, -2, + 0, 2, 3, 3, 4, 3, 2, 1, -1, -2, -3, -3, -4, -3, -2, 0, + 1, 2, 3, 4, 3, 3, 1, 0, -2, -3, -3, -3, -3, -2, -1, 1, + 2, 3, 3, 3, 3, 2, 0, -1, -2, -3, -3, -3, -2, -1, 0, 1, + 2, 3, 3, 3, 2, 1, -1, -2, -3, -3, -3, -3, -1, 0, 1, 2, + 3, 3, 3, 2, 1, 0, -1, -2, -3, -3, -3, -2, -1, 1, 2, 3, + 3, 3, 2, 1, 0, -1, -2, -3, -3, -3, -2, -1, 0, 1, 2, 3, + 3, 2, 2, 0, -1, -2, -3, -3, -3, -2, -1, 0, 1, 2, 3, 3, + 3, 2, 1, 0, -1, -2, -3, -3, -2, -1, 0, 1, 2, 3, 3, 3, + 2, 1, 0, -1, -2, -3, -3, -2, -2, -1, 0, 2, 2, 3, 3, 2, + 1, 0, -1, -2, -2, -3, -2, -2, -1, 0, 1, 2, 2, 3, 2, 2, + 1, -1, -1, -2, -3, -2, -2, -1, 0, 1, 2, 2, 3, 2, 2, 1, + 0, -1, -2, -2, -2, -2, -1, 0, 1, 1, 2, 2, 2, 2, 1, 0, + -1, -2, -2, -2, -2, -2, -1, 0, 1, 2, 2, 2, 2, 1, 0, -1, + -1, -2, -2, -2, 0, 3, 4, 6, 11, 14, 8, -4, -14, -14, -13, -20, + -29, -24, -3, 19, 24, 20, 25, 41, 45, 21, -13, -30, -27, -28, -47, -64, + -48, -5, 29, 33, 28, 44, 70, 68, 30, -13, -28, -24, -33, -60, -74, -51, + -7, 19, 20, 22, 46, 72, 66, 29, -6, -16, -15, -31, -62, -74, -49, -11, + 9, 9, 18, 47, 72, 63, 29, 1, -4, -7, -30, -62, -71, -46, -14, -2, + -1, 14, 47, 70, 59, 29, 9, 7, 0, -29, -61, -66, -43, -19, -12, -10, + 11, 46, 66, 54, 29, 17, 17, 5, -28, -58, -61, -40, -23, -21, -17, 9, + 44, 61, 49, 30, 25, 25, 9, -26, -54, -54, -37, -28, -29, -22, 6, 41, + 54, 44, 31, 31, 31, 12, -23, -48, -47, -35, -32, -36, -26, 4, 36, 47, + 38, 32, 37, 36, 14, -20, -41, -40, -33, -36, -41, -29, 2, 31, 39, 33, + 34, 42, 40, 16, -17, -34, -33, -31, -39, -45, -31, 0, 25, 31, 29, 35, + 46, 42, 17, -12, -26, -26, -30, -42, -47, -32, -3, 18, 23, 25, 36, 48, + 42, 18, -7, -18, -20, -29, -44, -48, -32, -6, 11, 15, 21, 36, 49, 42, + 19, -2, -10, -14, -27, -44, -48, -31, -9, 4, 8, 18, 36, 48, 41, 20, + 3, -3, -10, -26, -44, -46, -31, -12, -3, 2, 15, 35, 46, 39, 21, 9, + 4, -5, -24, -42, -43, -30, -15, -9, -3, 13, 34, 44, 36, 22, 14, 10, + -2, -23, -40, -40, -29, -19, -15, -8, 10, 31, 40, 34, 23, 19, 15, 1, + -20, -36, -36, -28, -22, -20, -11, 8, 28, 36, 31, 25, 23, 19, 4, -18, + -32, -32, -27, -25, -24, -14, 6, 25, 31, 28, 26, 27, 22, 6, -15, -28, + -28, -26, -27, -27, -17, 4, 21, 27, 25, 27, 29, 25, 8, -12, -23, -24, + -25, -29, -30, -18, 1, 16, 22, 23, 27, 31, 26, 10, -8, -17, -20, -24, + -31, -31, -19, -1, 12, 17, 20, 27, 33, 27, 11, -4, -12, -16, -23, -31, + -32, -20, -4, 7, 12, 18, 27, 33, 27, 13, 0, -7, -13, -22, -31, -31, + -21, -7, 2, 8, 16, 27, 32, 27, 14, 3, -3, -10, -21, -30, -30, -21, + -9, -2, 4, 14, 26, 31, 26, 15, 7, 2, -7, -19, -29, -29, -21, -12, + -6, 0, 12, 24, 29, 25, 17, 11, 5, -4, -17, -27, -27, -21, -14, -10, + -3, 10, 22, 27, 24, 18, 14, 9, -2, -16, -25, -25, -20, -17, -13, -5, + 8, 20, 25, 22, 19, 16, 11, 0, -13, -22, -23, -20, -18, -16, -8, 6, + 17, 22, 21, 19, 19, 14, 2, -11, -19, -20, -20, -20, -18, -9, 4, 14, + 19, 19, 20, 20, 15, 4, -8, -16, -18, -19, -21, -19, -11, 1, 11, 16, + 18, 20, 22, 17, 6, -6, -12, -15, -19, -22, -20, -12, -1, 8, 12, 16, + 20, 22, 17, 7, -3, -9, -13, -18, -22, -21, -13, -3, 5, 10, 14, 20, + 22, 18, 8, 0, -6, -11, -17, -22, -21, -14, -5, 2, 7, 13, 20, 22, + 18, 10, 3, -3, -9, -16, -21, -20, -14, -7, -1, 4, 11, 19, 21, 18, + 11, 5, 0, -7, -15, -20, -20, -15, -9, -4, 2, 10, 17, 20, 17, 12, + 7, 3, -5, -13, -19, -19, -15, -10, -6, 0, 8, 16, 19, 17, 13, 10, + 5, -3, -12, -17, -18, -15, -12, -9, -2, 7, 14, 17, 16, 14, 11, 7, + -1, -10, -15, -16, -15, -13, -10, -4, 5, 12, 15, 15, 14, 13, 8, 0, + -8, -13, -15, -15, -14, -12, -5, 3, 10, 13, 14, 15, 14, 10, 2, -6, + -11, -13, -14, -15, -13, -7, 2, 8, 11, 13, 15, 15, 11, 3, -4, -9, + -12, -14, -15, -13, -8, 0, 6, 9, 12, 15, 15, 11, 4, -2, -7, -10, + -13, -15, -14, -8, -2, 4, 7, 11, 15, 15, 12, 6, 0, -5, -9, -13, + -15, -14, -9, -3, 1, 6, 10, 14, 15, 12, 7, 2, -3, -7, -12, -15, + -14, -10, -5, -1, 4, 9, 13, 15, 12, 8, 3, -1, -6, -11, -14, -14, + -10, -6, -2, 2, 8, 12, 14, 12, 9, 5, 1, -4, -10, -13, -13, -11, + -7, -4, 1, 7, 11, 13, 12, 9, 6, 3, -3, -9, -12, -12, -11, -8, + -5, -1, 5, 10, 12, 11, 10, 8, 4, -2, -7, -11, -12, -11, -9, -7, + -2, 4, 9, 11, 11, 10, 9, 5, 0, -6, -9, -11, -11, -10, -8, -3, + 3, 7, 10, 11, 11, 9, 6, 1, -5, -8, -10, -11, -10, -8, -4, 1, + 6, 8, 10, 11, 10, 7, 2, -3, -7, -9, -10, -11, -9, -5, 0, 4, + 7, 9, 11, 10, 7, 3, -2, -5, -8, -10, -11, -9, -6, -1, 3, 6, + 9, 10, 10, 8, 4, 0, -4, -7, -9, -11, -10, -6, -2, 1, 5, 8, + 10, 10, 8, 5, 1, -2, -6, -9, -10, -10, -7, -3, 0, 3, 7, 10, + 10, 8, 5, 2, -1, -5, -8, -10, -9, -7, -4, -1, 2, 6, 9, 10, + 8, 6, 3, 0, -4, -7, -9, -9, -7, -5, -2, 1, 5, 8, 9, 8, + 7, 4, 1, -3, -6, -9, -9, -8, -6, -3, 0, 4, 7, 9, 8, 7, + 5, 2, -2, -5, -8, -8, -8, -7, -4, -1, 3, 6, 8, 8, 7, 6, + 3, -1, -4, -7, -8, -8, -7, -5, -2, 2, 5, 7, 8, 8, 6, 4, + 0, -3, -6, -7, -8, -7, -6, -2, 1, 4, 6, 7, 8, 7, 4, 1, + -2, -5, -6, -7, -8, -6, -3, 0, 3, 5, 7, 8, 7, 5, 2, -1, + -4, -6, -7, -8, -6, -4, -1, 2, 4, 6, 7, 7, 5, 2, 0, -3, + -5, -7, -7, -6, -4, -1, 1, 4, 6, 7, 7, 6, 4, 3, 1, -1, + 1, 2, -2, -10, -14, -11, -7, -9, -14, -10, 5, 20, 21, 14, 16, 25, + 27, 8, -17, -27, -22, -20, -32, -42, -29, 4, 28, 29, 22, 31, 48, 45, + 15, -17, -27, -21, -24, -42, -51, -32, 2, 21, 20, 19, 34, 51, 45, 15, + -12, -18, -14, -24, -45, -51, -31, -1, 13, 12, 16, 35, 52, 43, 15, -6, + -9, -9, -24, -46, -50, -29, -4, 5, 4, 14, 36, 51, 40, 16, 0, -1, + -5, -24, -46, -47, -27, -8, -3, -2, 12, 36, 49, 37, 16, 6, 7, -1, + -24, -45, -44, -26, -11, -10, -7, 11, 35, 45, 34, 18, 12, 13, 2, -23, + -42, -40, -24, -15, -16, -11, 9, 34, 41, 31, 19, 18, 18, 4, -22, -38, + -35, -23, -19, -22, -14, 8, 31, 36, 27, 21, 23, 22, 5, -20, -34, -30, + -23, -23, -26, -17, 7, 27, 31, 24, 22, 27, 25, 6, -17, -29, -26, -22, + -26, -29, -18, 5, 23, 25, 22, 24, 30, 27, 7, -14, -23, -21, -22, -29, + -32, -19, 3, 18, 20, 19, 25, 33, 27, 8, -10, -17, -17, -21, -31, -33, + -19, 1, 13, 15, 17, 26, 34, 28, 9, -6, -12, -13, -21, -32, -33, -19, + -2, 8, 10, 15, 27, 34, 27, 10, -2, -6, -10, -20, -32, -32, -19, -4, + 3, 5, 14, 27, 34, 26, 12, 2, -1, -7, -20, -31, -31, -19, -7, -2, + 1, 12, 26, 32, 25, 13, 6, 3, -5, -19, -30, -29, -18, -10, -7, -2, + 11, 25, 30, 23, 14, 10, 7, -3, -18, -28, -26, -18, -13, -11, -5, 9, + 23, 27, 22, 15, 13, 10, -1, -16, -25, -24, -18, -15, -14, -7, 8, 21, + 24, 20, 17, 16, 13, 1, -14, -22, -21, -18, -18, -17, -9, 6, 18, 21, + 18, 18, 19, 15, 2, -12, -19, -19, -18, -19, -19, -10, 4, 15, 18, 17, + 19, 21, 16, 4, -9, -15, -16, -17, -21, -20, -11, 3, 12, 14, 16, 19, + 22, 17, 5, -7, -12, -13, -17, -22, -21, -12, 1, 8, 11, 14, 20, 23, + 17, 6, -4, -8, -11, -17, -22, -21, -12, -1, 5, 8, 13, 20, 23, 17, + 7, -1, -5, -9, -16, -22, -21, -13, -4, 2, 5, 12, 19, 22, 17, 8, + 2, -2, -7, -15, -22, -20, -13, -6, -2, 3, 10, 19, 21, 17, 10, 5, + 1, -5, -14, -20, -19, -13, -8, -4, 1, 9, 18, 20, 16, 11, 7, 4, + -4, -13, -19, -18, -13, -10, -7, -1, 8, 16, 18, 15, 12, 9, 6, -2, + -12, -17, -17, -13, -11, -9, -3, 7, 14, 17, 15, 13, 11, 7, -1, -10, + -15, -15, -13, -13, -11, -4, 5, 12, 15, 14, 13, 13, 9, 0, -8, -13, + -14, -13, -14, -12, -5, 4, 10, 13, 13, 14, 14, 10, 2, -7, -11, -12, + -13, -15, -13, -6, 2, 8, 11, 12, 14, 15, 11, 3, -5, -8, -10, -13, + -15, -14, -7, 0, 6, 9, 11, 14, 15, 11, 4, -3, -6, -9, -13, -15, + -14, -8, -1, 3, 7, 10, 14, 15, 11, 5, 0, -4, -8, -12, -15, -14, + -9, -3, 1, 5, 9, 14, 15, 12, 6, 1, -2, -6, -12, -15, -14, -9, + -4, -1, 3, 8, 13, 14, 11, 7, 3, 0, -5, -11, -14, -13, -9, -6, + -3, 2, 7, 12, 14, 11, 8, 5, 2, -4, -10, -13, -12, -10, -7, -4, + 0, 6, 11, 13, 11, 9, 6, 3, -3, -9, -12, -12, -10, -8, -6, -1, + 5, 10, 12, 11, 9, 8, 4, -2, -7, -11, -11, -10, -9, -7, -1, 6, + 11, 13, 16, 17, 12, 1, -10, -15, -17, -21, -27, -23, -8, 9, 18, 19, + 24, 34, 36, 21, -3, -19, -21, -25, -37, -48, -38, -10, 15, 22, 23, 35, + 51, 51, 27, -2, -17, -18, -26, -44, -54, -41, -12, 8, 14, 18, 35, 52, + 50, 27, 2, -8, -11, -24, -45, -54, -39, -14, 1, 6, 14, 34, 51, 48, + 27, 7, 0, -5, -22, -44, -52, -38, -17, -6, -2, 10, 33, 50, 45, 27, + 12, 7, 0, -20, -42, -49, -36, -19, -12, -8, 7, 31, 47, 42, 27, 17, + 14, 4, -18, -40, -45, -33, -22, -18, -13, 5, 29, 43, 38, 27, 22, 20, + 8, -16, -36, -40, -31, -25, -24, -17, 2, 26, 38, 34, 27, 26, 24, 10, + -14, -32, -35, -29, -27, -28, -21, 0, 23, 33, 30, 27, 30, 28, 13, -11, + -27, -30, -27, -29, -32, -23, -2, 19, 27, 26, 28, 32, 30, 14, -8, -22, + -25, -25, -31, -34, -25, -4, 14, 21, 23, 28, 34, 32, 16, -4, -16, -20, + -24, -32, -35, -26, -6, 9, 16, 19, 27, 35, 32, 17, -1, -11, -15, -22, + -32, -36, -26, -8, 5, 10, 16, 27, 36, 32, 18, 3, -5, -11, -20, -32, + -35, -26, -11, 0, 5, 13, 26, 35, 32, 18, 6, 0, -7, -19, -31, -34, + -25, -13, -5, 1, 11, 25, 34, 30, 19, 10, 4, -3, -17, -30, -32, -25, + -15, -9, -3, 8, 23, 31, 28, 20, 13, 9, 0, -15, -28, -30, -24, -17, + -13, -7, 6, 21, 29, 26, 20, 16, 12, 2, -13, -25, -27, -23, -19, -16, + -10, 4, 19, 26, 24, 21, 19, 15, 4, -11, -22, -24, -22, -20, -19, -12, + 2, 16, 22, 22, 21, 21, 18, 6, -8, -19, -21, -21, -22, -21, -14, 0, + 13, 19, 20, 21, 23, 19, 8, -6, -15, -18, -20, -23, -23, -15, -2, 10, + 15, 18, 21, 24, 20, 9, -3, -11, -15, -19, -23, -24, -16, -4, 6, 12, + 16, 21, 24, 21, 11, 0, -8, -12, -17, -23, -24, -17, -6, 3, 8, 13, + 20, 24, 21, 12, 2, -4, -9, -16, -23, -24, -17, -8, 0, 5, 12, 19, + 24, 21, 13, 5, -1, -7, -15, -22, -22, -15, -7, -1, 6, 15, 21, 20, + 13, 7, 1, -7, -17, -24, -21, -12, -5, -2, 6, 18, 28, 26, 14, 5, + 1, -4, -17, -32, -34, -21, -6, -1, 1, 12, 29, 37, 28, 13, 5, 3, + -4, -21, -35, -34, -20, -9, -6, -3, 11, 29, 35, 26, 14, 9, 8, -2, + -20, -33, -31, -19, -12, -11, -6, 10, 27, 32, 24, 15, 14, 12, 0, -18, + -30, -27, -19, -15, -15, -9, 8, 25, 29, 22, 17, 17, 15, 2, -17, -27, + -24, -19, -18, -19, -10, 7, 22, 25, 20, 18, 21, 17, 3, -14, -23, -21, + -18, -21, -21, -12, 5, 18, 21, 18, 20, 23, 19, 4, -12, -19, -18, -18, + -23, -23, -13, 4, 15, 17, 16, 21, 25, 20, 5, -9, -14, -15, -18, -24, + -24, -13, 2, 11, 13, 15, 21, 26, 20, 6, -6, -10, -12, -18, -25, -24, + -14, 0, 7, 9, 14, 22, 26, 20, 7, -2, -6, -10, -17, -25, -24, -14, + -3, 3, 6, 12, 22, 26, 20, 8, 1, -2, -7, -17, -25, -23, -14, -5, + -1, 3, 11, 21, 25, 19, 10, 4, 1, -5, -16, -24, -22, -14, -7, -4, + 0, 10, 20, 23, 18, 11, 7, 4, -4, -15, -22, -21, -14, -10, -7, -2, + 9, 19, 21, 17, 12, 10, 6, -2, -14, -20, -19, -14, -12, -10, -4, 7, + 17, 19, 16, 13, 12, 9, -1, -12, -18, -17, -14, -14, -12, -5, 6, 15, + 17, 15, 14, 14, 10, 0, -10, -15, -15, -14, -15, -14, -6, 5, 12, 14, + 14, 15, 16, 11, 2, -8, -13, -13, -14, -16, -15, -7, 3, 10, 12, 13, + 16, 17, 12, 3, -6, -10, -12, -14, -17, -16, -8, 1, 7, 10, 12, 16, + 17, 13, 4, -4, -7, -10, -14, -17, -16, -9, -1, 5, 7, 11, 16, 17, + 13, 5, -1, -5, -8, -13, -17, -16, -9, -2, 2, 5, 10, 16, 17, 13, + 6, 1, -2, -7, -13, -17, -15, -10, -4, 0, 3, 9, 15, 17, 13, 7, + 3, 0, -5, -12, -16, -15, -10, -6, -3, 2, 8, 14, 16, 13, 8, 5, + 2, -4, -11, -15, -14, -10, -7, -5, 0, 7, 13, 15, 12, 9, 7, 3, + -3, -10, -14, -13, -11, -9, -6, -1, 6, 12, 13, 12, 10, 8, 5, -2, + -9, -12, -12, -11, -10, -8, -2, 5, 10, 12, 11, 11, 10, 6, -1, -7, + -11, -11, -11, -11, -9, -3, 4, 9, 10, 11, 11, 11, 7, 0, -6, -9, + -10, -11, -11, -10, -4, 2, 7, 9, 10, 11, 11, 8, 1, -4, -7, -9, + -11, -12, -10, -5, 1, 5, 7, 9, 12, 12, 8, 2, -3, -5, -8, -10, + -12, -10, -6, 0, 3, 6, 9, 11, 12, 8, 3, -1, -4, -7, -10, -12, + -11, -6, -2, 2, 5, 8, 11, 12, 9, 4, 1, -2, -6, -10, -12, -10, + -7, -3, 0, 3, 7, 11, 11, 9, 5, 2, -1, -5, -9, -11, -10, -7, + -4, -1, 2, 6, 10, 11, 9, 6, 3, 0, -4, -8, -10, -10, -7, -5, + -3, 1, 6, 9, 10, 9, 7, 5, 2, -3, -7, -10, -9, -8, -6, -4, + 0, 5, 8, 9, 8, 7, 6, 3, -2, -6, -9, -9, -8, -7, -5, -1, + 4, 7, 8, 8, 8, 6, 3, -1, -5, -8, -8, -8, -8, -6, -2, 3, + 6, 7, 8, 8, 7, 4, 0, -4, -6, -7, -8, -8, -6, -2, 2, 5, + 7, 8, 8, 8, 5, 1, -3, -5, -7, -8, -8, -7, -3, 1, 4, 6, + 7, 8, 8, 5, 1, -2, -4, -6, -8, -8, -7, -4, 0, 3, 5, 7, + 8, 8, 6, 2, -1, -3, -5, -7, -8, -7, -4, -1, 1, 4, 6, 8, + 8, 6, 3, 0, -2, -5, -7, -8, -7, -5, -2, 0, 3, 6, 8, 8, + 6, 4, 1, -1, -4, -6, -8, -7, -5, -3, -1, 2, 5, 7, 7, 6, + 4, 2, 0, -3, -6, -7, -7, -5, -4, -2, 1, 4, 7, 7, 6, 5, + 3, 1, -2, -5, -7, -7, -6, -4, -2, 0, 4, 6, 7, 6, 5, 4, + 1, -2, -5, -6, -6, -6, -5, -3, 0, 3, 5, 6, 6, 5, 4, 2, + -1, -4, -5, -6, -6, -5, -4, -1, 2, 4, 5, 6, 6, 5, 3, 0, + -3, -5, -5, -6, -6, -4, -1, 1, 4, 5, 6, 6, 5, 3, 0, -2, + -4, -5, -6, -6, -4, -2, 1, 3, 4, 5, 6, 5, 3, 1, -1, -3, + -5, -6, -6, -5, -2, 0, 2, 4, 5, 6, 5, 4, 1, -1, -2, -4, + -5, -6, -5, -3, -1, 1, 3, 5, 6, 5, 4, 2, 0, -2, -4, -5, + -6, -5, -3, -1, 0, 2, 4, 5, 5, 4, 3, 1, -1, -3, -5, -5, + -5, -4, -2, 0, 2, 4, 5, 5, 4, 3, 1, 0, -3, -4, -5, -5, + -4, -2, -1, 1, 3, 5, 5, 4, 3, 2, 0, -2, -4, -5, -5, -4, + -3, -1, 1, 3, 4, 5, 4, 4, 2, 1, -1, -3, -4, -4, -4, -3, + -2, 0, 2, 4, 4, 4, 4, 3, 1, -1, -3, -4, -4, -4, -4, -2, + 0, 2, 3, 4, 4, 4, 3, 2, 0, -2, -3, -4, -4, -4, -3, -1, + 1, 3, 4, 4, 4, 3, 2, 0, -2, -3, -4, -4, -4, -3, -1, 1, + 2, 3, 4, 4, 4, 2, 1, -1, -2, -3, -4, -4, -3, -2, 0, 2, + 3, 4, 4, 4, 3, 1, -1, -2, -3, -4, -4, -3, -2, 0, 1, 2, + 3, 4, 4, 3, 1, 0, -1, -3, -4, -4, -3, -2, -1, 1, 2, 3, + 4, 4, 3, 2, 0, -1, -2, -3, -4, -3, -2, -1, 0, 1, 3, 4, + 4, 3, 2, 1, -1, -2, -3, -4, -3, -3, -2, 0, 1, 2, 3, 3, + 3, 2, 1, 0, -2, -3, -3, -3, -3, -2, -1, 1, 2, 3, 3, 3, + 3, 2, 0, -1, -2, -3, -3, -3, -2, -1, 0, 2, 3, 3, 3, 3, + 2, 1, -1, -2, -3, -3, -3, -2, -1, 0, 1, 2, 3, 3, 3, 2, + 1, 0, -2, -2, -3, -3, -3, -2, 0, 1, 2, 3, 3, 3, 2, 1, + 0, -1, -2, -3, -3, -3, -2, -1, 1, 2, 2, 3, 3, 2, 1, 0, + -1, -2, -3, -3, -3, -2, -1, 0, 1, 2, 3, 3, 3, 2, 1, -1, + -1, -2, -3, -3, -2, -1, 0, 1, 2, 2, 3, 3, 2, 1, 0, -1, + -2, -3, -3, -2, -1, -1, 0, 1, 2, 3, 3, 2, 1, 0, -1, -2, + -2, -3, -2, -2, -1, 0, 1, 2, 3, 3, 2, 1, 0, -1, -1, -2, + -3, -2, -2, -1, 0, 1, 2, 2, 2, 2, 2, 1, 0, -1, -2, -2, + -2, -2, -1, 0, 1, 2, 2, 2, 2, 2, 1, 0, -1, -2, -2, -2, + -2, -2, -1, 0, 1, 2, 2, 2, 2, 1, 0, -1, -2, -2, -2, -2, + -2, -1, 0, 1, 2, 2, 2, 2, 1, 1, 0, -1, -2, -2, -2, -2, + -1, 0, 1, 1, 2, 2, 2, 2, 1, 0, -1, -2, -2, -2, -2, -1, + 0, 0, 1, 2, 2, 2, 2, 1, 0, -1, -1, -2, -2, -2, -1, -1, + 0, 1, 2, 2, 2, 2, 1, 0, 0, -1, -2, -2, -2, -2, -1, 0, + 1, 1, 2, 2, 2, 1, 1, 0, -1, -2, -2, -2, -2, -1, 0, 0, + 1, 2, 2, 2, 1, 1, 0, -1, -1, -2, -2, -2, -1, -1, 0, 1, + 1, 2, 2, 1, 1, 0, 0, -1, -2, -2, -2, -1, -1, 0, 1, 1, + 2, 2, 2, 1, 0, 0, -1, -1, -2, -2, -1, -1, 0, 0, 1, 2, + 2, 2, 1, 1, 0, -1, -1, -2, -2, -1, -1, 0, 0, 1, 1, 2, + 2, 1, 1, 0, -1, -1, -1, -2, -1, -1, -1, 0, 1, 1, 2, 2, + 1, 1, 0, 0, -1, -1, -2, -1, -1, -1, 0, 1, 1, 1, 2, +}; + +// Chirp: songbird double-chirp, fast upward sweeps. +static const int8_t s_chirp_pcm[4313] = { + 0, 0, 0, 0, -1, -1, -1, 1, 2, 2, 1, -1, -3, -3, -1, 3, + 4, 2, 0, -3, -5, -4, 1, 6, 5, 2, -1, -5, -7, -3, 5, 8, + 5, 0, -4, -9, -8, 1, 9, 9, 3, -2, -8, -11, -5, 7, 12, 7, + 1, -5, -12, -11, 1, 13, 12, 5, -2, -11, -15, -6, 10, 16, 9, 1, + -7, -16, -14, 3, 17, 15, 5, -4, -14, -19, -6, 14, 19, 11, 0, -10, + -20, -15, 6, 21, 17, 5, -6, -18, -22, -4, 19, 22, 10, -2, -15, -25, + -14, 12, 25, 17, 3, -10, -24, -23, 2, 25, 23, 9, -5, -21, -28, -10, + 20, 29, 15, 0, -16, -30, -20, 12, 31, 22, 5, -11, -28, -29, 1, 30, + 29, 11, -6, -25, -34, -11, 25, 34, 17, -1, -20, -36, -22, 16, 37, 24, + 4, -15, -35, -31, 6, 36, 31, 10, -10, -32, -38, -6, 33, 37, 16, -5, + -27, -41, -18, 27, 41, 22, 0, -23, -42, -28, 18, 44, 29, 5, -18, -41, + -36, 9, 44, 35, 10, -13, -39, -43, -1, 42, 41, 15, -9, -36, -47, -12, + 38, 46, 21, -5, -33, -50, -21, 33, 50, 26, -1, -29, -51, -29, 27, 52, + 31, 2, -26, -52, -37, 21, 54, 36, 6, -22, -51, -43, 14, 55, 41, 9, + -20, -51, -48, 8, 55, 45, 13, -17, -50, -52, 2, 54, 49, 15, -15, -49, + -56, -3, 54, 52, 18, -14, -49, -58, -7, 54, 55, 20, -12, -48, -61, -10, + 54, 57, 22, -12, -49, -63, -12, 54, 59, 23, -11, -49, -64, -13, 55, 61, + 24, -12, -51, -66, -12, 57, 62, 24, -12, -52, -67, -11, 59, 62, 23, -14, + -55, -68, -8, 62, 62, 22, -16, -58, -68, -4, 65, 62, 20, -19, -61, -67, + 2, 69, 60, 17, -22, -65, -65, 10, 73, 58, 14, -27, -70, -62, 19, 76, + 54, 10, -32, -74, -56, 29, 78, 50, 5, -38, -78, -49, 40, 80, 44, -1, + -46, -80, -38, 52, 79, 38, -7, -54, -81, -25, 64, 76, 30, -14, -63, -80, + -8, 74, 71, 22, -23, -72, -74, 11, 82, 63, 13, -33, -80, -64, 31, 86, + 54, 4, -44, -86, -48, 51, 86, 43, -6, -57, -88, -27, 69, 81, 31, -18, + -71, -83, -1, 83, 72, 18, -31, -83, -71, 28, 91, 59, 5, -46, -91, -50, + 55, 90, 43, -8, -63, -92, -21, 78, 82, 28, -23, -79, -83, 13, 92, 68, + 12, -41, -92, -61, 48, 95, 50, -5, -61, -96, -28, 77, 87, 31, -22, -81, + -86, 12, 95, 70, 12, -43, -95, -61, 53, 97, 49, -7, -66, -98, -21, 84, + 86, 26, -29, -88, -83, 26, 100, 65, 5, -53, -101, -47, 70, 96, 39, -17, + -79, -95, 3, 97, 77, 15, -43, -99, -65, 55, 102, 50, -9, -72, -101, -15, + 92, 86, 22, -36, -97, -77, 43, 105, 57, -4, -67, -105, -26, 89, 91, 27, + -32, -96, -83, 37, 107, 61, -2, -66, -107, -30, 89, 94, 28, -32, -97, -84, + 38, 108, 62, -2, -68, -108, -27, 92, 93, 26, -35, -100, -81, 45, 109, 58, + -6, -73, -108, -17, 98, 89, 21, -42, -105, -72, 59, 109, 51, -14, -83, -105, + 1, 106, 81, 12, -53, -111, -56, 77, 105, 40, -25, -95, -96, 27, 112, 69, + 0, -68, -113, -29, 96, 96, 25, -40, -107, -76, 59, 112, 51, -15, -87, -106, + 9, 111, 79, 7, -61, -115, -42, 91, 102, 31, -36, -106, -84, 53, 114, 55, + -13, -86, -109, 6, 112, 80, 8, -62, -116, -40, 94, 101, 28, -39, -109, -79, + 62, 114, 50, -19, -93, -105, 21, 116, 72, 0, -72, -116, -21, 105, 93, 18, + -52, -116, -59, 83, 109, 37, -32, -106, -89, 52, 117, 56, -15, -91, -108, 16, + 117, 75, 1, -73, -117, -19, 108, 92, 16, -56, -118, -51, 91, 106, 31, -40, + -112, -78, 68, 115, 46, -25, -101, -98, 42, 119, 61, -12, -89, -111, 14, 118, + 75, 0, -76, -118, -12, 112, 88, 11, -63, -120, -37, 101, 99, 21, -51, -118, + -58, 88, 108, 32, -40, -113, -75, 73, 114, 41, -31, -107, -89, 57, 118, 51, + -22, -100, -100, 42, 120, 59, -15, -93, -107, 27, 120, 67, -9, -87, -113, 13, + 119, 73, -3, -80, -116, 1, 117, 79, 2, -75, -118, -9, 114, 84, 6, -71, + -119, -17, 112, 87, 9, -67, -120, -23, 109, 90, 11, -64, -120, -27, 108, 92, + 13, -63, -120, -30, 107, 92, 13, -62, -120, -31, 106, 92, 13, -62, -120, -30, + 107, 92, 12, -63, -119, -27, 108, 90, 11, -65, -119, -22, 110, 87, 8, -68, + -118, -16, 112, 83, 5, -72, -117, -7, 114, 79, 1, -77, -115, 3, 116, 73, + -4, -82, -112, 15, 118, 67, -9, -88, -106, 29, 118, 59, -16, -95, -99, 44, + 117, 51, -23, -102, -89, 59, 113, 42, -32, -108, -75, 75, 108, 32, -41, -113, + -58, 89, 100, 22, -52, -116, -38, 101, 90, 11, -64, -115, -14, 110, 78, 0, + -76, -110, 12, 115, 64, -11, -89, -100, 39, 114, 49, -24, -101, -82, 65, 108, + 34, -38, -110, -58, 87, 97, 20, -54, -114, -28, 103, 82, 5, -70, -110, 6, + 112, 64, -10, -87, -97, 41, 111, 45, -27, -102, -73, 72, 102, 27, -45, -110, + -40, 96, 86, 9, -65, -109, -1, 109, 65, -9, -85, -95, 40, 109, 43, -28, + -101, -67, 76, 97, 22, -49, -109, -27, 100, 77, 2, -72, -103, 19, 108, 53, + -18, -93, -79, 62, 100, 29, -41, -106, -39, 93, 80, 6, -66, -103, 11, 106, + 55, -16, -89, -80, 59, 99, 29, -40, -104, -37, 93, 77, 4, -67, -100, 17, + 104, 49, -19, -91, -71, 66, 93, 22, -46, -103, -22, 97, 68, -3, -74, -91, + 35, 100, 38, -29, -96, -51, 81, 81, 10, -58, -98, 7, 100, 51, -16, -86, + -71, 62, 90, 21, -45, -99, -16, 94, 61, -7, -76, -82, 45, 94, 29, -36, + -96, -32, 87, 68, 0, -68, -87, 31, 95, 35, -29, -92, -42, 81, 72, 4, + -62, -89, 23, 94, 38, -25, -89, -47, 76, 73, 6, -59, -88, 20, 92, 38, + -24, -87, -46, 75, 71, 6, -58, -86, 21, 90, 36, -25, -86, -41, 76, 67, + 3, -60, -82, 28, 87, 31, -29, -86, -32, 79, 61, -1, -64, -75, 38, 83, + 24, -34, -86, -18, 82, 52, -8, -70, -64, 51, 76, 16, -43, -84, 1, 83, + 41, -17, -76, -48, 65, 66, 6, -53, -77, 24, 81, 28, -27, -80, -25, 75, + 52, -5, -64, -62, 47, 72, 15, -41, -78, 4, 78, 36, -18, -73, -38, 66, + 57, 1, -55, -66, 35, 72, 19, -34, -76, -5, 75, 38, -15, -68, -41, 60, + 57, 2, -51, -65, 32, 70, 19, -32, -72, -4, 71, 36, -15, -66, -36, 60, + 52, 0, -52, -59, 36, 64, 14, -35, -68, 6, 68, 29, -19, -66, -24, 62, + 43, -6, -55, -47, 45, 56, 7, -41, -61, 22, 63, 19, -27, -64, -4, 63, + 31, -14, -60, -28, 56, 43, -3, -50, -46, 41, 52, 7, -38, -56, 21, 58, + 16, -26, -60, 0, 59, 26, -16, -57, -20, 54, 35, -7, -50, -36, 44, 44, + 1, -41, -47, 31, 50, 9, -32, -52, 15, 53, 16, -23, -54, 0, 53, 23, + -15, -51, -15, 50, 30, -8, -47, -27, 43, 35, -2, -40, -36, 35, 40, 3, + -34, -42, 25, 44, 8, -28, -45, 15, 45, 12, -22, -46, 5, 46, 16, -17, + -45, -4, 44, 20, -12, -43, -12, 42, 24, -8, -40, -19, 38, 27, -5, -36, + -24, 34, 29, -2, -33, -28, 29, 31, 1, -29, -30, 25, 32, 3, -26, -32, + 20, 33, 4, -23, -33, 16, 33, 6, -20, -33, 13, 33, 7, -18, -32, 10, + 32, 8, -16, -32, 7, 31, 9, -15, -31, 5, 30, 9, -13, -30, 3, 29, + 9, -12, -28, 2, 28, 9, -11, -27, 2, 27, 9, -11, -26, 1, 25, 9, + -10, -25, 1, 24, 8, -10, -23, 2, 23, 7, -9, -22, 2, 21, 7, -9, + -21, 3, 20, 6, -9, -19, 4, 19, 5, -9, -18, 5, 17, 4, -9, -16, + 6, 16, 3, -9, -15, 7, 14, 2, -9, -13, 8, 12, 1, -9, -11, 8, + 10, 0, -9, -9, 8, 9, 0, -9, -7, 8, 7, -1, -8, -5, 8, 5, + -1, -8, -3, 7, 4, -2, -7, -1, 6, 3, -2, -5, 0, 5, 2, -2, + -4, 1, 4, 1, -2, -3, 1, 2, 0, -1, -1, 1, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, -1, 0, 1, 1, 1, 0, -2, -2, 1, 3, 2, 0, + -2, -3, -1, 3, 3, 1, -2, -4, -3, 3, 5, 2, -1, -4, -5, 1, + 6, 4, 0, -4, -7, -2, 6, 7, 2, -3, -8, -6, 4, 9, 4, -1, + -7, -9, 1, 10, 7, 1, -6, -11, -4, 9, 10, 3, -4, -11, -8, 6, + 12, 6, -2, -10, -12, 2, 13, 9, 0, -8, -14, -4, 13, 12, 3, -6, + -15, -9, 10, 15, 6, -3, -14, -14, 5, 17, 10, -1, -12, -17, -2, 17, + 14, 2, -9, -19, -8, 15, 18, 5, -6, -19, -14, 10, 20, 9, -3, -17, + -19, 4, 22, 13, 0, -14, -22, -3, 21, 18, 3, -11, -24, -10, 18, 22, + 7, -8, -23, -17, 13, 25, 11, -5, -21, -23, 7, 27, 15, -1, -19, -26, + -1, 26, 20, 2, -15, -28, -8, 24, 24, 5, -12, -29, -16, 21, 28, 9, + -9, -28, -22, 15, 31, 13, -5, -26, -28, 9, 32, 18, -2, -23, -32, 1, + 32, 22, 1, -20, -34, -6, 31, 27, 4, -17, -35, -14, 28, 31, 8, -14, + -35, -21, 24, 34, 12, -11, -34, -27, 19, 37, 15, -8, -32, -32, 14, 39, + 19, -5, -30, -36, 8, 40, 23, -2, -28, -39, 1, 40, 27, 1, -25, -41, + -5, 39, 31, 4, -23, -43, -11, 38, 35, 6, -21, -44, -17, 36, 38, 9, + -18, -44, -22, 33, 41, 12, -16, -44, -27, 31, 43, 14, -14, -44, -32, 28, + 46, 17, -12, -43, -35, 25, 48, 19, -11, -43, -39, 22, 49, 22, -9, -42, + -42, 19, 51, 24, -8, -42, -44, 16, 52, 26, -7, -41, -46, 14, 53, 27, + -6, -41, -48, 12, 54, 29, -5, -41, -50, 11, 55, 30, -5, -41, -51, 10, + 56, 31, -4, -41, -52, 10, 57, 32, -4, -42, -53, 10, 58, 32, -5, -43, + -54, 11, 59, 32, -5, -44, -54, 13, 60, 32, -6, -46, -54, 15, 61, 31, + -7, -48, -54, 18, 62, 31, -8, -50, -53, 21, 62, 29, -10, -52, -52, 25, + 63, 27, -12, -55, -50, 30, 63, 25, -15, -58, -47, 35, 63, 23, -18, -60, + -44, 40, 62, 20, -21, -63, -39, 46, 61, 17, -25, -66, -33, 52, 59, 14, + -29, -68, -26, 58, 56, 10, -34, -69, -18, 63, 52, 6, -40, -70, -8, 67, + 48, 1, -46, -69, 3, 70, 43, -4, -52, -66, 15, 72, 37, -9, -58, -62, + 27, 73, 31, -15, -65, -54, 40, 71, 25, -22, -70, -44, 52, 67, 18, -30, + -74, -32, 62, 62, 11, -38, -76, -16, 70, 55, 3, -47, -75, 1, 76, 47, + -4, -57, -71, 19, 78, 38, -13, -66, -62, 37, 77, 28, -22, -74, -49, 54, + 72, 19, -32, -79, -31, 68, 64, 9, -44, -81, -10, 77, 54, -1, -56, -77, + 14, 82, 42, -11, -67, -67, 37, 81, 30, -23, -77, -50, 58, 74, 18, -36, + -83, -27, 74, 64, 6, -50, -83, 0, 83, 50, -6, -64, -75, 28, 85, 36, + -19, -77, -58, 54, 79, 21, -34, -85, -32, 74, 67, 7, -50, -86, -1, 86, + 52, -7, -67, -76, 31, 87, 35, -22, -81, -55, 60, 79, 19, -39, -89, -25, + 81, 64, 3, -58, -86, 12, 90, 46, -13, -76, -70, 47, 86, 27, -31, -88, + -40, 75, 73, 10, -51, -90, -2, 90, 54, -8, -72, -78, 39, 90, 33, -27, + -88, -49, 72, 77, 13, -49, -93, -8, 91, 57, -6, -71, -81, 36, 92, 34, + -27, -89, -50, 73, 79, 13, -50, -94, -6, 93, 56, -8, -75, -80, 42, 93, + 32, -31, -92, -44, 79, 76, 9, -56, -94, 5, 96, 51, -13, -81, -73, 54, + 91, 25, -38, -97, -30, 88, 69, 1, -66, -91, 24, 98, 42, -23, -90, -59, + 72, 84, 15, -51, -98, -6, 97, 57, -10, -80, -79, 50, 94, 28, -38, -98, + -32, 90, 71, 1, -69, -92, 28, 100, 40, -26, -94, -54, 79, 82, 11, -58, + -99, 7, 101, 51, -17, -88, -70, 66, 90, 19, -49, -101, -11, 99, 60, -10, + -82, -81, 54, 96, 27, -42, -102, -25, 96, 68, -4, -77, -88, 43, 100, 32, + -36, -101, -36, 93, 73, 0, -73, -93, 36, 102, 36, -33, -101, -42, 90, 76, + 3, -71, -95, 31, 103, 38, -31, -100, -45, 89, 78, 3, -70, -96, 31, 103, + 39, -32, -101, -45, 90, 77, 3, -72, -96, 34, 104, 37, -34, -102, -40, 93, + 75, 0, -75, -93, 41, 103, 34, -38, -104, -32, 97, 71, -4, -80, -89, 51, + 101, 28, -44, -106, -20, 102, 64, -10, -87, -81, 63, 96, 21, -52, -106, -3, + 106, 55, -18, -95, -68, 78, 89, 12, -63, -103, 18, 107, 45, -29, -102, -49, + 91, 79, 2, -75, -95, 42, 104, 32, -41, -107, -24, 102, 66, -10, -88, -80, + 67, 96, 18, -57, -106, 7, 107, 49, -25, -101, -55, 89, 82, 3, -74, -97, + 41, 104, 32, -42, -107, -20, 104, 63, -13, -92, -75, 74, 92, 13, -63, -104, + 21, 108, 42, -33, -105, -39, 98, 72, -6, -85, -85, 62, 98, 20, -56, -107, + 8, 108, 48, -27, -103, -48, 94, 77, -2, -81, -90, 57, 100, 23, -53, -107, + 4, 108, 49, -26, -102, -49, 94, 77, -2, -82, -89, 58, 99, 21, -55, -107, + 9, 108, 46, -29, -104, -43, 97, 73, -6, -86, -83, 67, 95, 16, -61, -104, + 22, 107, 39, -36, -107, -27, 103, 64, -14, -94, -69, 81, 87, 7, -72, -97, + 43, 103, 28, -48, -108, -2, 107, 50, -26, -102, -46, 96, 73, -6, -86, -81, + 69, 93, 13, -65, -102, 31, 105, 33, -43, -107, -11, 106, 54, -23, -100, -50, + 93, 75, -5, -85, -81, 68, 92, 13, -65, -100, 34, 104, 31, -45, -107, -4, + 106, 49, -27, -102, -41, 97, 68, -10, -90, -72, 78, 86, 6, -73, -93, 50, + 99, 21, -55, -104, 17, 105, 38, -38, -105, -17, 104, 54, -22, -99, -48, 94, + 71, -8, -87, -73, 76, 85, 6, -72, -91, 51, 97, 19, -57, -102, 24, 103, + 33, -42, -104, -5, 104, 47, -28, -101, -33, 99, 61, -15, -93, -57, 87, 74, + -4, -82, -77, 71, 86, 7, -70, -91, 50, 95, 18, -58, -99, 28, 101, 29, + -45, -103, 5, 103, 40, -34, -102, -17, 101, 51, -24, -98, -38, 95, 62, -14, + -91, -56, 86, 72, -5, -83, -71, 74, 81, 3, -74, -82, 60, 88, 11, -65, + -91, 45, 94, 19, -56, -96, 30, 97, 26, -47, -99, 14, 99, 33, -39, -100, + -1, 100, 40, -32, -99, -15, 98, 47, -26, -96, -28, 95, 54, -20, -93, -40, + 91, 59, -14, -89, -50, 86, 65, -9, -85, -58, 80, 70, -5, -80, -65, 75, + 74, -1, -76, -71, 68, 77, 3, -72, -76, 62, 80, 6, -68, -80, 57, 83, + 9, -64, -83, 51, 85, 11, -61, -85, 47, 86, 13, -58, -86, 42, 87, 15, + -56, -87, 39, 88, 17, -54, -88, 36, 88, 18, -52, -88, 34, 88, 19, -51, + -88, 32, 88, 19, -51, -88, 32, 87, 19, -50, -87, 32, 87, 19, -50, -87, + 32, 86, 18, -51, -86, 34, 85, 17, -52, -84, 36, 84, 15, -53, -83, 39, + 82, 14, -54, -81, 42, 80, 12, -56, -78, 46, 78, 9, -59, -75, 50, 76, + 7, -61, -72, 55, 73, 4, -64, -67, 59, 69, 1, -67, -62, 64, 65, -2, + -70, -56, 69, 61, -6, -73, -49, 73, 56, -10, -76, -40, 77, 51, -14, -79, + -31, 80, 45, -19, -81, -21, 81, 39, -24, -82, -9, 82, 33, -29, -82, 3, + 82, 27, -35, -81, 15, 79, 20, -42, -78, 28, 76, 14, -48, -73, 40, 71, + 8, -55, -65, 51, 64, 1, -61, -55, 61, 57, -5, -67, -43, 69, 49, -12, + -72, -29, 74, 40, -19, -75, -13, 76, 31, -27, -76, 4, 76, 23, -36, -74, + 22, 72, 14, -44, -68, 38, 66, 6, -53, -58, 52, 57, -2, -61, -45, 63, + 48, -10, -67, -28, 69, 37, -19, -71, -8, 72, 27, -28, -71, 12, 70, 17, + -38, -66, 31, 64, 7, -49, -56, 48, 54, -2, -58, -41, 60, 43, -11, -65, + -22, 67, 32, -21, -68, 0, 67, 21, -32, -65, 22, 63, 10, -43, -56, 42, + 54, 0, -53, -41, 56, 42, -10, -61, -20, 63, 30, -21, -64, 3, 63, 18, + -32, -61, 26, 57, 7, -44, -49, 45, 47, -4, -54, -31, 57, 34, -15, -60, + -7, 61, 21, -26, -59, 17, 57, 9, -39, -50, 39, 47, -2, -50, -33, 53, + 34, -13, -57, -9, 58, 21, -25, -56, 17, 54, 9, -37, -47, 38, 43, -3, + -48, -28, 51, 30, -14, -54, -3, 55, 17, -26, -52, 22, 49, 5, -39, -39, + 42, 37, -7, -49, -17, 51, 23, -18, -52, 9, 50, 10, -31, -44, 32, 40, + -1, -43, -26, 46, 27, -13, -49, -1, 49, 14, -26, -45, 24, 41, 2, -38, + -30, 41, 29, -10, -46, -6, 47, 15, -22, -44, 19, 41, 3, -35, -31, 38, + 28, -8, -43, -7, 44, 15, -20, -42, 18, 39, 3, -33, -29, 36, 27, -8, + -41, -6, 42, 13, -20, -39, 19, 36, 2, -32, -25, 35, 23, -9, -39, -1, + 39, 10, -21, -35, 22, 31, -1, -32, -19, 35, 19, -12, -37, 5, 36, 7, + -23, -30, 26, 26, -4, -33, -10, 35, 13, -15, -34, 13, 31, 2, -26, -22, + 29, 19, -8, -33, 0, 32, 8, -19, -28, 20, 24, -2, -28, -11, 30, 13, + -12, -30, 11, 27, 2, -23, -19, 26, 17, -7, -28, 1, 28, 6, -17, -23, + 20, 20, -3, -25, -6, 27, 9, -13, -25, 13, 21, 0, -22, -12, 24, 11, + -9, -24, 7, 22, 2, -18, -15, 20, 13, -6, -23, 2, 22, 4, -14, -17, + 17, 14, -4, -20, -2, 20, 5, -12, -17, 13, 14, -2, -18, -4, 19, 6, + -9, -17, 10, 14, -1, -16, -6, 17, 6, -8, -16, 8, 14, 0, -14, -7, + 15, 6, -6, -14, 6, 12, 0, -12, -7, 13, 6, -5, -13, 5, 11, 0, + -10, -6, 11, 5, -4, -11, 4, 10, 0, -9, -5, 10, 4, -4, -9, 4, + 8, 0, -8, -4, 8, 3, -3, -8, 4, 6, 0, -6, -3, 7, 2, -3, + -6, 3, 5, 0, -5, -2, 5, 2, -2, -4, 3, 3, 0, -3, -1, 3, + 1, -2, -2, 2, 2, 0, -2, 0, 2, +}; + +// Bloom: soft C5-G5-D6 chord swell with gentle release. +static const int8_t s_bloom_pcm[9600] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, + 0, -1, -1, -1, -2, -2, -2, -2, -1, -1, -1, -1, 0, 0, 0, 1, + 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 0, -1, -1, -2, -2, -2, + -2, -2, -1, -1, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, 0, + 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 0, 0, 0, + -1, -2, -2, -3, -4, -5, -5, -4, -3, -2, -1, 1, 3, 4, 5, 5, + 5, 5, 4, 3, 2, 1, 0, -1, -1, -1, -1, -1, -2, -2, -2, -3, + -3, -3, -3, -2, -2, -1, 0, 1, 2, 2, 2, 1, 1, 0, 0, -1, + 0, 0, 1, 2, 4, 4, 5, 5, 4, 3, 1, -1, -3, -5, -6, -6, + -6, -6, -5, -4, -3, -2, -1, 0, 1, 1, 2, 3, 4, 5, 6, 6, + 7, 6, 5, 4, 2, -1, -3, -5, -6, -6, -6, -5, -4, -2, -1, 0, + 1, 1, 1, 0, -1, -1, -2, -2, -1, -1, 1, 2, 3, 4, 5, 5, + 4, 4, 3, 2, 2, 1, 1, 1, 0, 0, -1, -3, -4, -6, -8, -9, + -9, -9, -8, -5, -3, 1, 4, 7, 9, 10, 10, 10, 8, 6, 4, 2, + 0, -1, -2, -2, -3, -3, -3, -3, -4, -4, -5, -5, -5, -4, -3, -2, + 0, 1, 2, 3, 3, 3, 2, 1, 0, -1, -1, 0, 1, 3, 5, 7, + 8, 8, 7, 6, 3, 0, -4, -7, -9, -11, -11, -11, -9, -8, -6, -4, + -2, 0, 1, 2, 4, 5, 6, 8, 9, 10, 11, 10, 9, 7, 4, 0, + -3, -6, -9, -10, -11, -10, -8, -5, -3, 0, 1, 2, 2, 1, 0, -1, + -2, -3, -3, -2, 0, 2, 4, 6, 7, 7, 7, 6, 5, 4, 3, 2, + 1, 1, 0, 0, -2, -3, -5, -8, -10, -12, -13, -13, -12, -9, -6, -1, + 4, 9, 12, 15, 16, 15, 13, 10, 7, 4, 1, -2, -3, -4, -4, -4, + -4, -5, -5, -6, -7, -7, -7, -7, -6, -4, -1, 1, 3, 4, 5, 5, + 4, 2, 1, 0, -1, 0, 1, 3, 6, 9, 10, 11, 11, 9, 6, 1, + -3, -8, -12, -14, -16, -16, -14, -12, -9, -6, -3, -1, 2, 3, 5, 6, + 8, 10, 12, 13, 14, 14, 13, 10, 7, 2, -3, -7, -11, -14, -15, -14, + -12, -9, -5, -2, 1, 3, 3, 3, 1, -1, -2, -3, -4, -3, -1, 2, + 4, 7, 9, 10, 10, 9, 8, 6, 4, 3, 2, 1, 0, -1, -2, -4, + -6, -9, -12, -15, -17, -18, -17, -14, -9, -4, 3, 9, 15, 19, 21, 21, + 19, 16, 11, 7, 2, -1, -4, -6, -6, -6, -6, -6, -7, -7, -8, -9, + -9, -9, -8, -6, -3, 0, 3, 5, 7, 7, 6, 4, 2, 0, -1, -1, + 0, 3, 6, 9, 12, 14, 14, 12, 9, 4, -2, -8, -13, -18, -20, -21, + -19, -17, -13, -9, -5, -1, 2, 4, 6, 8, 10, 12, 14, 16, 17, 18, + 17, 14, 10, 5, -1, -7, -13, -17, -19, -19, -17, -14, -9, -4, 0, 3, + 4, 4, 3, 1, -1, -3, -4, -4, -2, 1, 4, 7, 10, 12, 13, 12, + 11, 9, 6, 4, 2, 1, 0, -1, -2, -4, -7, -10, -13, -17, -20, -21, + -21, -19, -14, -7, 0, 9, 16, 22, 26, 27, 26, 22, 17, 11, 5, -1, + -5, -7, -8, -9, -9, -8, -8, -9, -10, -11, -11, -11, -10, -8, -5, -1, + 2, 6, 8, 9, 9, 7, 5, 2, 0, -1, 0, 2, 5, 9, 13, 16, + 17, 16, 13, 7, 1, -7, -14, -20, -24, -25, -25, -22, -18, -13, -7, -3, + 2, 5, 8, 10, 12, 14, 16, 18, 20, 21, 21, 18, 14, 9, 2, -6, + -13, -19, -22, -24, -23, -19, -14, -8, -2, 2, 5, 6, 5, 3, 0, -2, + -4, -5, -3, -1, 3, 7, 11, 14, 15, 15, 14, 12, 9, 5, 3, 1, + -1, -2, -3, -5, -7, -10, -14, -18, -22, -24, -25, -23, -19, -12, -3, 7, + 16, 24, 30, 33, 32, 29, 23, 16, 8, 1, -4, -8, -11, -12, -11, -11, + -11, -11, -11, -12, -13, -13, -12, -11, -7, -4, 1, 5, 9, 11, 11, 10, + 7, 4, 1, 0, -1, 1, 4, 8, 12, 16, 19, 19, 16, 11, 4, -4, + -13, -21, -27, -30, -30, -28, -23, -17, -11, -5, 1, 5, 9, 12, 14, 16, + 18, 21, 23, 24, 24, 22, 19, 13, 5, -3, -12, -20, -25, -28, -28, -25, + -20, -13, -6, 1, 5, 8, 8, 6, 3, -1, -3, -5, -5, -2, 1, 6, + 11, 15, 17, 18, 17, 15, 11, 8, 4, 1, -1, -3, -4, -6, -8, -11, + -14, -19, -23, -27, -28, -27, -24, -17, -8, 3, 14, 25, 33, 37, 38, 36, + 30, 22, 13, 4, -3, -9, -13, -15, -15, -14, -13, -12, -12, -13, -14, -14, + -14, -13, -10, -6, -1, 4, 9, 12, 13, 13, 11, 7, 4, 1, -1, 0, + 2, 6, 11, 16, 20, 21, 20, 15, 8, -1, -11, -21, -28, -34, -35, -34, + -30, -23, -16, -8, -1, 6, 10, 14, 16, 19, 21, 23, 25, 26, 27, 26, + 22, 17, 9, 0, -10, -19, -27, -32, -33, -31, -26, -19, -10, -2, 4, 9, + 10, 9, 6, 2, -2, -4, -5, -4, -1, 4, 10, 15, 19, 21, 21, 19, + 15, 10, 6, 2, -2, -4, -6, -7, -9, -11, -15, -19, -24, -28, -31, -31, + -28, -22, -13, -1, 11, 24, 34, 41, 44, 43, 38, 30, 19, 9, -1, -9, + -14, -17, -18, -18, -16, -15, -14, -14, -15, -15, -16, -15, -12, -8, -3, 2, + 8, 13, 15, 16, 14, 11, 7, 3, 0, -1, 1, 4, 9, 15, 20, 23, + 23, 19, 13, 3, -8, -19, -29, -36, -40, -40, -36, -30, -21, -12, -3, 5, + 11, 16, 19, 21, 23, 25, 27, 29, 29, 29, 26, 21, 13, 4, -7, -18, + -27, -34, -38, -37, -33, -26, -16, -7, 2, 8, 12, 12, 10, 6, 1, -3, + -5, -5, -3, 2, 8, 14, 19, 23, 24, 22, 19, 14, 8, 3, -1, -5, + -7, -9, -10, -12, -15, -19, -24, -29, -32, -34, -32, -27, -18, -6, 7, 21, + 34, 44, 49, 50, 46, 38, 27, 15, 3, -8, -15, -20, -22, -22, -20, -18, + -17, -16, -16, -16, -17, -16, -14, -11, -6, 0, 7, 12, 16, 18, 18, 15, + 11, 6, 2, 0, 0, 2, 7, 13, 19, 23, 25, 23, 17, 8, -4, -16, + -28, -38, -44, -45, -43, -37, -28, -17, -7, 3, 11, 17, 21, 24, 26, 28, + 29, 31, 32, 31, 29, 25, 18, 8, -3, -15, -27, -36, -41, -43, -40, -33, + -23, -12, -2, 7, 13, 15, 14, 10, 5, 0, -4, -5, -4, 0, 6, 12, + 19, 23, 26, 26, 23, 18, 12, 5, 0, -5, -8, -10, -12, -14, -16, -20, + -24, -29, -33, -36, -35, -31, -24, -12, 2, 17, 32, 45, 53, 56, 54, 47, + 35, 22, 8, -5, -15, -22, -26, -26, -25, -22, -20, -18, -17, -17, -17, -17, + -16, -13, -8, -2, 5, 11, 17, 20, 21, 19, 15, 10, 5, 1, -1, 0, + 4, 10, 16, 22, 26, 25, 21, 13, 2, -12, -25, -37, -46, -50, -49, -44, + -35, -24, -11, 0, 10, 18, 24, 27, 29, 31, 32, 33, 34, 34, 32, 28, + 22, 13, 1, -12, -25, -36, -44, -47, -46, -41, -31, -19, -7, 4, 13, 17, + 18, 15, 10, 4, -2, -5, -5, -3, 3, 10, 17, 23, 27, 29, 27, 22, + 16, 8, 1, -5, -9, -12, -14, -16, -18, -20, -24, -29, -33, -37, -38, -35, + -29, -18, -4, 12, 29, 44, 55, 61, 61, 56, 45, 31, 15, 0, -13, -23, + -29, -31, -30, -27, -24, -21, -19, -18, -18, -18, -17, -15, -11, -5, 2, 10, + 16, 21, 24, 23, 20, 15, 9, 3, 0, -1, 2, 7, 13, 20, 25, 27, + 25, 18, 7, -7, -22, -36, -47, -54, -55, -51, -43, -31, -18, -4, 8, 18, + 26, 30, 33, 34, 35, 35, 36, 36, 35, 31, 26, 17, 6, -8, -21, -34, + -45, -51, -52, -48, -39, -27, -13, 0, 11, 18, 21, 20, 15, 9, 2, -3, + -5, -4, 0, 7, 15, 22, 28, 31, 30, 26, 20, 12, 4, -4, -9, -14, + -16, -18, -19, -21, -25, -29, -33, -37, -39, -38, -33, -24, -10, 6, 24, 41, + 55, 65, 68, 64, 55, 40, 23, 6, -10, -23, -31, -35, -35, -33, -29, -25, + -21, -19, -18, -18, -17, -16, -13, -8, -1, 7, 15, 21, 25, 26, 24, 19, + 13, 7, 2, -1, 0, 4, 10, 17, 23, 27, 27, 22, 13, -1, -16, -32, + -46, -55, -60, -58, -51, -39, -25, -10, 5, 17, 27, 33, 37, 38, 39, 38, + 38, 38, 37, 34, 29, 21, 10, -3, -18, -32, -44, -53, -57, -55, -48, -36, + -21, -6, 7, 18, 23, 24, 21, 15, 7, 0, -4, -5, -3, 3, 11, 20, + 27, 32, 33, 31, 25, 17, 8, -1, -9, -15, -18, -20, -22, -23, -25, -29, + -33, -37, -40, -40, -37, -29, -16, 0, 19, 37, 54, 66, 73, 72, 64, 51, + 33, 14, -5, -21, -32, -39, -41, -39, -35, -30, -25, -21, -19, -18, -18, -17, + -14, -10, -3, 5, 13, 21, 26, 29, 28, 25, 18, 11, 5, 0, -1, 1, + 6, 13, 20, 26, 28, 25, 18, 5, -10, -27, -43, -56, -63, -64, -59, -48, + -34, -17, 0, 15, 27, 35, 40, 43, 43, 42, 41, 40, 39, 36, 32, 25, + 15, 2, -13, -28, -43, -54, -61, -61, -56, -45, -30, -14, 2, 15, 24, 28, + 27, 21, 13, 5, -1, -5, -4, 0, 7, 16, 25, 32, 35, 34, 30, 22, + 12, 2, -7, -15, -20, -23, -25, -26, -27, -29, -32, -36, -40, -41, -39, -33, + -22, -7, 12, 32, 51, 66, 76, 79, 74, 62, 44, 24, 3, -17, -32, -42, + -46, -46, -42, -36, -29, -24, -20, -18, -17, -17, -15, -11, -6, 2, 10, 19, + 26, 31, 32, 29, 24, 16, 9, 2, -1, -1, 2, 9, 16, 23, 28, 28, + 22, 11, -4, -21, -39, -54, -65, -69, -66, -57, -43, -25, -6, 11, 26, 37, + 44, 47, 48, 47, 45, 43, 41, 38, 34, 28, 19, 7, -8, -24, -40, -53, + -63, -66, -63, -54, -40, -23, -5, 11, 24, 30, 32, 28, 20, 11, 3, -3, + -5, -3, 3, 12, 22, 30, 35, 37, 34, 27, 17, 6, -5, -14, -21, -25, + -28, -29, -29, -30, -33, -36, -39, -41, -41, -37, -27, -13, 5, 26, 46, 65, + 78, 84, 82, 72, 56, 35, 12, -10, -29, -43, -50, -52, -49, -43, -35, -28, + -23, -19, -17, -16, -15, -12, -8, -1, 8, 17, 25, 32, 35, 34, 29, 22, + 14, 6, 0, -2, -1, 4, 12, 20, 26, 28, 25, 17, 3, -14, -33, -51, + -65, -72, -73, -66, -53, -35, -15, 5, 23, 37, 47, 52, 53, 52, 49, 46, + 43, 40, 36, 30, 22, 11, -3, -19, -36, -51, -63, -70, -70, -63, -50, -33, + -13, 5, 21, 31, 36, 34, 28, 18, 8, 0, -4, -5, 0, 8, 17, 27, + 35, 38, 38, 32, 23, 11, -1, -12, -21, -27, -31, -32, -32, -32, -34, -36, + -38, -41, -42, -39, -32, -19, -2, 18, 40, 61, 77, 87, 89, 82, 68, 47, + 22, -2, -25, -42, -53, -58, -57, -51, -43, -34, -26, -21, -17, -15, -14, -12, + -9, -3, 5, 14, 23, 31, 36, 37, 35, 28, 20, 11, 3, -2, -3, 0, + 7, 15, 22, 27, 27, 21, 10, -7, -26, -46, -62, -74, -78, -74, -63, -45, + -24, -2, 19, 36, 48, 56, 58, 58, 54, 50, 46, 42, 38, 32, 25, 15, + 1, -14, -32, -48, -63, -72, -75, -71, -60, -44, -23, -3, 16, 30, 39, 40, + 36, 27, 16, 5, -2, -5, -3, 3, 12, 23, 32, 38, 40, 37, 29, 17, + 4, -9, -20, -28, -33, -35, -36, -35, -35, -36, -38, -40, -41, -40, -35, -24, + -9, 11, 33, 55, 75, 89, 94, 91, 79, 60, 35, 8, -18, -39, -54, -63, + -64, -59, -51, -41, -31, -23, -18, -15, -13, -12, -9, -5, 2, 11, 21, 30, + 37, 40, 39, 34, 26, 16, 7, 0, -4, -3, 2, 9, 18, 24, 27, 24, + 15, 0, -18, -39, -58, -73, -81, -80, -72, -56, -35, -11, 12, 33, 48, 59, + 64, 64, 61, 56, 50, 45, 40, 34, 27, 18, 5, -10, -27, -44, -60, -72, + -79, -78, -70, -55, -35, -12, 9, 27, 39, 45, 43, 35, 24, 12, 2, -4, + -5, -1, 7, 18, 29, 37, 41, 40, 34, 23, 10, -4, -17, -28, -35, -39, + -40, -39, -38, -37, -38, -39, -41, -40, -37, -28, -15, 3, 25, 49, 71, 88, + 98, 99, 90, 72, 48, 20, -8, -34, -54, -66, -71, -68, -60, -50, -38, -28, + -20, -15, -12, -11, -9, -5, 0, 8, 18, 28, 36, 41, 43, 40, 33, 23, + 12, 3, -3, -5, -3, 4, 12, 20, 25, 26, 20, 7, -10, -31, -52, -70, + -82, -85, -80, -67, -47, -22, 3, 27, 47, 61, 68, 70, 68, 62, 56, 49, + 42, 36, 29, 20, 9, -5, -22, -39, -57, -71, -81, -83, -78, -65, -46, -23, + 1, 22, 38, 48, 49, 44, 34, 21, 8, -1, -6, -4, 2, 12, 23, 34, + 41, 43, 39, 30, 17, 2, -13, -26, -36, -41, -44, -43, -41, -40, -39, -39, + -40, -40, -38, -31, -20, -3, 18, 41, 65, 85, 99, 104, 99, 85, 62, 34, + 3, -26, -50, -67, -76, -76, -70, -59, -46, -34, -23, -16, -11, -9, -7, -5, + -1, 6, 15, 25, 34, 42, 45, 44, 39, 30, 19, 7, -1, -6, -6, -2, + 6, 15, 22, 25, 22, 13, -2, -23, -44, -65, -80, -88, -87, -77, -58, -34, + -7, 20, 43, 61, 72, 76, 75, 69, 62, 54, 45, 38, 30, 22, 11, -1, + -17, -35, -53, -69, -81, -87, -85, -75, -58, -35, -10, 14, 35, 48, 54, 52, + 44, 31, 17, 4, -4, -6, -3, 6, 17, 29, 38, 43, 42, 36, 24, 8, + -8, -23, -35, -43, -47, -48, -46, -43, -41, -39, -39, -39, -37, -33, -24, -9, + 10, 33, 57, 80, 98, 107, 107, 96, 76, 48, 16, -16, -44, -66, -80, -84, + -80, -70, -56, -42, -28, -18, -11, -7, -5, -4, -1, 5, 12, 22, 32, 41, + 46, 48, 44, 37, 26, 13, 3, -5, -8, -6, 0, 8, 17, 23, 23, 18, + 5, -14, -36, -58, -76, -89, -92, -86, -70, -47, -19, 10, 37, 59, 74, 81, + 82, 78, 69, 60, 50, 41, 32, 23, 13, 2, -13, -30, -48, -65, -80, -89, + -91, -84, -69, -48, -22, 5, 29, 47, 57, 59, 53, 41, 26, 12, 0, -6, + -6, 0, 11, 23, 34, 42, 44, 40, 30, 16, -1, -18, -33, -44, -50, -52, + -50, -47, -44, -41, -39, -38, -37, -33, -26, -14, 3, 25, 49, 74, 94, 108, + 113, 106, 89, 63, 31, -3, -35, -62, -81, -90, -90, -81, -67, -51, -35, -22, + -12, -6, -3, -1, 1, 4, 10, 19, 29, 39, 46, 50, 49, 43, 33, 20, + 8, -2, -9, -10, -6, 2, 11, 19, 22, 20, 11, -5, -26, -49, -71, -87, + -95, -93, -81, -60, -32, -2, 28, 54, 74, 85, 89, 86, 78, 67, 56, 45, + 34, 25, 15, 4, -10, -25, -43, -61, -77, -89, -94, -91, -80, -60, -35, -7, + 20, 43, 58, 65, 62, 52, 37, 21, 6, -4, -8, -5, 4, 16, 29, 39, + 45, 44, 36, 23, 6, -12, -29, -43, -52, -56, -56, -52, -48, -43, -40, -38, + -36, -33, -28, -18, -3, 17, 41, 66, 89, 107, 116, 114, 102, 78, 47, 12, + -24, -56, -80, -94, -98, -92, -80, -63, -44, -28, -15, -6, -1, 1, 3, 5, + 10, 17, 26, 36, 45, 51, 52, 49, 40, 28, 14, 2, -7, -12, -11, -5, + 4, 13, 19, 21, 15, 2, -17, -40, -63, -82, -95, -98, -90, -72, -46, -15, + 17, 47, 71, 87, 95, 94, 87, 76, 63, 50, 38, 27, 16, 5, -7, -22, + -38, -56, -73, -88, -96, -97, -89, -72, -48, -20, 9, 36, 56, 68, 70, 63, + 49, 32, 15, 1, -7, -8, -3, 8, 21, 34, 43, 45, 41, 30, 14, -5, + -24, -40, -52, -59, -60, -58, -53, -47, -42, -38, -35, -32, -28, -20, -7, 10, + 33, 57, 82, 103, 116, 120, 112, 93, 64, 28, -10, -46, -75, -95, -105, -103, + -92, -75, -56, -36, -19, -7, 0, 4, 6, 7, 10, 15, 23, 33, 43, 50, + 54, 53, 47, 36, 22, 8, -4, -12, -14, -11, -3, 6, 14, 19, 17, 8, + -8, -30, -53, -76, -92, -100, -98, -84, -60, -30, 4, 37, 66, 87, 99, 102, + 97, 86, 72, 57, 42, 29, 17, 6, -5, -19, -34, -51, -69, -84, -95, -100, + -95, -82, -61, -33, -3, 26, 51, 67, 74, 72, 60, 44, 25, 8, -4, -9, + -8, 1, 13, 26, 38, 44, 43, 36, 22, 4, -16, -34, -49, -59, -63, -62, + -57, -50, -44, -38, -34, -30, -26, -20, -10, 5, 24, 47, 71, 93, 110, 118, + 116, 101, 76, 43, 6, -32, -65, -90, -104, -107, -100, -85, -65, -44, -25, -10, + 1, 6, 9, 10, 11, 15, 20, 29, 38, 46, 52, 53, 49, 41, 28, 14, + 1, -10, -15, -15, -10, -2, 7, 14, 16, 11, -1, -19, -40, -62, -81, -93, + -96, -87, -69, -42, -10, 24, 54, 78, 94, 101, 99, 90, 76, 61, 45, 31, + 18, 7, -4, -16, -29, -44, -60, -75, -87, -94, -94, -85, -68, -44, -16, 14, + 40, 60, 72, 74, 67, 53, 35, 17, 1, -8, -10, -6, 4, 17, 29, 38, + 41, 38, 27, 12, -7, -26, -42, -55, -61, -62, -59, -52, -45, -38, -32, -27, + -23, -19, -11, 0, 16, 36, 58, 80, 98, 110, 112, 104, 84, 56, 21, -16, + -50, -79, -98, -106, -103, -92, -74, -53, -32, -14, -1, 7, 11, 13, 13, 15, + 18, 24, 32, 40, 47, 51, 50, 44, 33, 20, 6, -6, -14, -17, -15, -8, + 0, 8, 13, 12, 5, -9, -28, -49, -69, -84, -91, -87, -74, -52, -23, 10, + 41, 67, 87, 97, 99, 93, 81, 65, 49, 33, 19, 7, -3, -14, -25, -38, + -52, -66, -78, -87, -90, -85, -73, -52, -27, 1, 29, 51, 67, 73, 71, 60, + 44, 26, 9, -4, -10, -10, -3, 8, 20, 31, 37, 37, 31, 18, 1, -17, + -35, -49, -58, -61, -60, -54, -47, -38, -31, -26, -21, -17, -11, -2, 11, 27, + 47, 68, 86, 100, 107, 103, 89, 66, 35, -1, -35, -66, -89, -102, -104, -96, + -81, -61, -39, -20, -4, 7, 13, 15, 16, 16, 18, 22, 28, 35, 42, 47, + 48, 45, 37, 26, 12, -1, -11, -17, -18, -14, -7, 2, 8, 11, 7, -3, + -18, -37, -56, -73, -83, -85, -77, -59, -34, -4, 27, 55, 78, 92, 98, 95, + 85, 70, 53, 37, 22, 9, -2, -13, -23, -33, -45, -58, -70, -80, -85, -84, + -75, -59, -37, -10, 17, 41, 60, 71, 73, 66, 52, 35, 17, 2, -8, -12, + -8, 0, 12, 23, 32, 35, 32, 23, 9, -9, -26, -42, -53, -59, -60, -56, + -49, -40, -32, -25, -19, -15, -9, -3, 7, 21, 37, 56, 75, 90, 99, 100, + 92, 73, 46, 14, -20, -52, -79, -96, -103, -100, -87, -69, -48, -27, -9, 5, + 14, 18, 18, 18, 18, 20, 24, 30, 37, 43, 46, 45, 39, 30, 18, 5, + -7, -15, -19, -18, -12, -5, 3, 7, 8, 2, -10, -26, -44, -62, -75, -81, + -77, -65, -44, -17, 14, 43, 68, 85, 95, 95, 88, 75, 59, 41, 25, 11, + -1, -11, -21, -30, -40, -51, -63, -72, -79, -81, -76, -63, -45, -21, 5, 30, + 51, 66, 72, 69, 59, 43, 26, 9, -4, -11, -12, -6, 4, 15, 25, 31, + 32, 26, 15, -1, -18, -34, -48, -56, -59, -57, -51, -43, -34, -25, -18, -13, + -8, -2, 5, 16, 30, 46, 64, 79, 91, 96, 92, 78, 56, 27, -6, -38, + -67, -88, -99, -100, -92, -77, -56, -35, -15, 2, 13, 19, 21, 21, 20, 20, + 22, 27, 32, 38, 42, 43, 40, 33, 23, 10, -2, -12, -18, -20, -17, -11, + -3, 3, 6, 4, -4, -17, -33, -50, -65, -74, -75, -68, -51, -28, 1, 30, + 56, 77, 90, 94, 90, 79, 64, 47, 29, 14, 0, -10, -20, -28, -37, -46, + -56, -65, -73, -76, -74, -66, -51, -30, -6, 19, 42, 59, 69, 71, 64, 51, + 34, 17, 1, -9, -13, -11, -4, 7, 18, 26, 30, 28, 20, 6, -10, -26, + -41, -52, -57, -57, -53, -45, -36, -27, -19, -12, -7, -2, 4, 13, 24, 38, + 54, 69, 82, 89, 89, 81, 63, 38, 8, -24, -53, -78, -93, -99, -95, -83, + -65, -43, -22, -4, 10, 19, 23, 23, 22, 21, 22, 24, 28, 34, 38, 41, + 40, 35, 27, 16, 3, -8, -16, -20, -20, -16, -9, -2, 3, 4, 0, -10, + -23, -39, -55, -66, -71, -68, -56, -37, -11, 17, 44, 67, 83, 91, 91, 83, + 69, 52, 34, 18, 3, -9, -18, -26, -34, -42, -50, -59, -66, -71, -72, -66, + -55, -37, -16, 8, 32, 51, 64, 70, 67, 58, 43, 25, 8, -5, -12, -14, + -9, -1, 10, 20, 26, 27, 22, 12, -2, -18, -33, -46, -54, -57, -54, -48, + -39, -29, -20, -12, -6, -1, 4, 11, 20, 31, 45, 59, 72, 82, 85, 81, + 68, 47, 20, -10, -40, -66, -85, -96, -96, -88, -72, -52, -30, -10, 6, 18, + 24, 26, 25, 23, 22, 23, 25, 30, 34, 38, 39, 36, 30, 20, 9, -3, + -13, -19, -21, -19, -14, -7, -1, 3, 2, -5, -15, -29, -44, -57, -65, -66, + -59, -44, -22, 4, 31, 56, 75, 86, 90, 85, 74, 58, 40, 23, 7, -7, + -17, -25, -32, -39, -46, -53, -60, -66, -68, -65, -57, -43, -24, -2, 21, 42, + 58, 67, 69, 62, 50, 33, 16, 1, -10, -15, -13, -7, 2, 12, 21, 25, + 23, 17, 5, -10, -25, -39, -49, -55, -55, -50, -42, -32, -22, -13, -6, 0, + 5, 10, 17, 26, 38, 50, 63, 74, 79, 79, 70, 54, 31, 3, -26, -54, + -76, -90, -95, -91, -78, -60, -39, -18, 1, 15, 23, 27, 27, 26, 23, 22, + 23, 26, 30, 34, 36, 35, 31, 24, 13, 2, -9, -17, -21, -22, -18, -12, + -6, 0, 1, -1, -9, -21, -35, -48, -58, -63, -60, -49, -31, -7, 19, 44, + 65, 80, 87, 86, 78, 64, 46, 28, 11, -3, -15, -24, -31, -37, -43, -49, + -55, -60, -64, -63, -58, -47, -31, -11, 11, 32, 50, 63, 68, 65, 56, 41, + 24, 8, -5, -13, -16, -12, -5, 5, 15, 21, 23, 19, 10, -3, -17, -32, + -44, -51, -54, -51, -44, -35, -25, -15, -7, 0, 5, 10, 15, 23, 32, 43, + 55, 65, 73, 75, 71, 59, 39, 14, -13, -41, -65, -83, -92, -92, -83, -67, + -47, -26, -6, 10, 22, 28, 30, 28, 26, 23, 22, 24, 27, 30, 33, 34, + 32, 26, 18, 7, -4, -13, -20, -22, -21, -17, -10, -4, 0, 0, -5, -14, + -26, -39, -50, -57, -58, -51, -37, -17, 7, 32, 54, 72, 83, 85, 80, 69, + 53, 35, 17, 1, -12, -22, -30, -36, -41, -46, -51, -55, -59, -60, -57, -49, + -36, -19, 1, 22, 42, 56, 65, 66, 60, 48, 32, 16, 1, -10, -16, -16, + -10, -2, 8, 16, 20, 20, 14, 4, -10, -24, -37, -47, -52, -51, -47, -38, + -28, -18, -9, -1, 5, 10, 15, 20, 28, 37, 47, 57, 66, 70, 69, 61, + 46, 24, -1, -28, -53, -73, -86, -91, -86, -74, -56, -35, -14, 5, 18, 27, + 31, 31, 28, 25, 23, 22, 24, 27, 30, 31, 31, 27, 21, 11, 1, -9, + -17, -22, -23, -20, -15, -8, -3, -1, -2, -8, -18, -30, -41, -50, -54, -52, + -42, -25, -4, 20, 43, 63, 77, 83, 81, 73, 58, 41, 23, 6, -9, -20, + -29, -35, -39, -43, -47, -51, -55, -56, -55, -50, -40, -25, -7, 13, 32, 49, + 60, 65, 63, 54, 40, 24, 7, -6, -14, -17, -15, -8, 1, 10, 17, 19, + 16, 9, -3, -17, -30, -41, -48, -50, -48, -41, -32, -21, -11, -2, 5, 10, + 15, 19, 25, 32, 41, 50, 59, 64, 66, 61, 50, 32, 10, -16, -41, -63, + -79, -87, -87, -78, -63, -43, -22, -2, 14, 25, 31, 33, 31, 28, 24, 22, + 22, 24, 26, 28, 29, 27, 23, 15, 5, -5, -14, -20, -23, -22, -19, -13, + -7, -3, -2, -5, -12, -22, -33, -43, -49, -50, -44, -32, -13, 9, 32, 53, + 69, 79, 81, 75, 64, 48, 29, 12, -4, -17, -27, -34, -38, -42, -45, -48, + -51, -52, -52, -49, -42, -30, -14, 4, 23, 41, 54, 62, 63, 57, 46, 31, + 15, 0, -11, -17, -18, -13, -5, 4, 12, 16, 17, 12, 3, -9, -23, -35, + -44, -48, -48, -43, -35, -25, -14, -5, 4, 10, 14, 18, 23, 29, 36, 44, + 52, 58, 62, 60, 52, 38, 19, -4, -29, -52, -71, -82, -86, -81, -69, -51, + -31, -10, 8, 22, 30, 34, 33, 30, 26, 23, 21, 21, 23, 25, 27, 27, + 24, 18, 9, 0, -10, -17, -22, -24, -21, -17, -11, -6, -3, -3, -7, -15, + -25, -35, -43, -47, -45, -36, -21, -1, 21, 42, 60, 73, 78, 76, 68, 53, + 36, 18, 1, -13, -24, -32, -37, -40, -43, -45, -47, -49, -49, -47, -42, -33, + -20, -3, 15, 32, 47, 58, 62, 60, 51, 38, 22, 7, -6, -15, -19, -17, + -11, -3, 6, 13, 16, 14, 7, -3, -15, -28, -38, -45, -47, -45, -38, -29, + -18, -8, 2, 9, 14, 18, 22, 26, 32, 38, 45, 52, 57, 57, 53, 42, + 26, 6, -18, -41, -61, -75, -83, -82, -73, -58, -39, -19, 1, 17, 28, 34, + 35, 33, 29, 25, 22, 20, 21, 22, 24, 25, 23, 19, 13, 4, -5, -14, + -20, -23, -23, -20, -15, -9, -4, -3, -5, -10, -18, -28, -37, -42, -43, -38, + -27, -10, 10, 31, 50, 65, 74, 76, 70, 59, 43, 25, 7, -9, -21, -30, + -36, -40, -42, -43, -45, -46, -46, -45, -42, -35, -24, -10, 7, 24, 40, 52, + 59, 60, 55, 44, 30, 14, 0, -12, -18, -19, -16, -9, 0, 8, 13, 14, + 10, 2, -9, -21, -32, -40, -45, -45, -40, -32, -22, -11, -1, 7, 13, 18, + 21, 25, 29, 34, 40, 46, 51, 54, 52, 44, 32, 14, -7, -29, -50, -67, + -78, -81, -76, -64, -47, -27, -7, 10, 24, 33, 36, 35, 32, 27, 23, 20, + 19, 20, 21, 23, 22, 20, 15, 8, -1, -10, -17, -22, -24, -22, -18, -13, + -7, -4, -3, -6, -13, -21, -30, -37, -40, -38, -31, -17, 1, 21, 40, 57, + 69, 74, 71, 63, 49, 32, 14, -3, -17, -28, -35, -39, -41, -42, -43, -43, + -44, -43, -41, -35, -27, -15, 0, 16, 32, 45, 55, 59, 57, 49, 36, 21, + 6, -7, -16, -20, -19, -14, -6, 2, 9, 13, 12, 6, -3, -14, -25, -35, + -42, -44, -41, -35, -26, -15, -5, 5, 12, 17, 21, 24, 27, 31, 36, 41, + 46, 49, 49, 45, 35, 21, 2, -19, -40, -58, -71, -78, -77, -68, -54, -36, + -16, 3, 19, 30, 36, 37, 35, 30, 25, 21, 18, 18, 19, 20, 21, 20, + 16, 10, 3, -6, -14, -20, -23, -24, -21, -16, -10, -6, -3, -4, -8, -15, + -23, -31, -36, -37, -33, -22, -7, 11, 30, 48, 62, 70, 71, 65, 54, 39, + 21, 4, -12, -24, -33, -38, -41, -42, -42, -41, -41, -41, -39, -35, -29, -19, + -6, 9, 24, 38, 49, 56, 57, 52, 42, 28, 13, -1, -12, -19, -21, -18, + -11, -3, 4, 10, 12, 9, 2, -8, -19, -29, -37, -41, -41, -37, -29, -19, + -9, 1, 10, 16, 20, 23, 26, 29, 32, 37, 41, 45, 46, 44, 37, 26, + 10, -9, -29, -48, -64, -73, -76, -71, -60, -43, -24, -5, 13, 26, 34, 38, + 37, 33, 28, 23, 19, 17, 17, 17, 18, 18, 17, 12, 6, -2, -10, -17, + -22, -24, -23, -19, -14, -9, -5, -3, -5, -10, -17, -25, -31, -34, -33, -26, + -14, 2, 20, 38, 54, 64, 69, 66, 58, 45, 28, 10, -6, -20, -30, -37, + -40, -42, -41, -40, -40, -39, -37, -34, -29, -21, -11, 2, 17, 31, 43, 52, + 55, 53, 46, 34, 20, 6, -7, -16, -21, -20, -16, -9, -1, 6, 10, 10, + 6, -2, -12, -23, -32, -38, -40, -38, -32, -23, -13, -2, 7, 14, 20, 23, + 25, 27, 30, 33, 37, 40, 43, 42, 38, 29, 16, -1, -20, -38, -55, -67, + -73, -72, -64, -50, -32, -13, 5, 21, 31, 37, 38, 36, 31, 25, 20, 17, + 15, 15, 16, 17, 16, 13, 8, 2, -6, -13, -19, -23, -23, -21, -17, -12, + -7, -4, -4, -7, -12, -19, -26, -30, -31, -28, -19, -5, 11, 29, 45, 58, + 65, 66, 61, 50, 35, 18, 1, -15, -27, -35, -40, -41, -41, -40, -38, -37, + -35, -33, -29, -23, -14, -3, 10, 24, 37, 47, 53, 53, 49, 39, 27, 12, + -1, -12, -19, -22, -19, -14, -6, 1, 7, 9, 8, 2, -6, -16, -26, -34, + -38, -38, -34, -27, -17, -6, 4, 12, 18, 22, 25, 27, 28, 31, 33, 36, + 39, 40, 37, 31, 21, 7, -11, -29, -46, -60, -69, -71, -66, -55, -40, -21, + -3, 14, 27, 36, 39, 38, 34, 28, 22, 17, 15, 14, 14, 15, 15, 13, + 10, 5, -2, -10, -16, -21, -23, -23, -19, -15, -10, -5, -3, -4, -8, -14, + -20, -26, -29, -28, -22, -11, 3, 19, 36, 50, 60, 64, 62, 54, 41, 25, + 8, -8, -22, -32, -38, -41, -41, -40, -38, -36, -34, -32, -28, -24, -17, -7, + 4, 17, 30, 41, 49, 52, 50, 43, 32, 19, 5, -7, -17, -21, -22, -18, + -11, -3, 3, 8, 8, 5, -2, -10, -20, -29, -35, -37, -35, -29, -21, -11, + 0, 9, 16, 21, 25, 26, 28, 29, 31, 33, 35, 36, 36, 32, 24, 12, + -3, -20, -37, -52, -63, -68, -67, -59, -46, -29, -11, 7, 22, 32, 38, 39, + 36, 31, 25, 19, 15, 13, 12, 13, 13, 13, 11, 7, 1, -6, -13, -19, + -22, -23, -21, -17, -12, -8, -4, -3, -5, -9, -15, -21, -25, -26, -23, -16, + -4, 11, 27, 42, 53, 60, 61, 56, 46, 31, 15, -2, -16, -28, -36, -40, + -42, -40, -38, -36, -33, -30, -27, -24, -18, -10, 0, 11, 23, 35, 44, 49, + 50, 46, 37, 25, 12, -2, -12, -20, -22, -21, -16, -8, -1, 5, 8, 7, + 2, -5, -14, -23, -30, -35, -35, -31, -24, -15, -5, 5, 13, 20, 24, 26, + 27, 28, 29, 30, 32, 33, 33, 31, 26, 16, 4, -12, -28, -43, -56, -64, + -66, -61, -51, -36, -19, -1, 15, 28, 36, 39, 38, 34, 28, 22, 16, 13, + 11, 11, 11, 11, 10, 8, 3, -3, -9, -16, -20, -23, -22, -20, -15, -10, + -6, -3, -3, -6, -10, -16, -21, -24, -23, -18, -9, 4, 18, 33, 46, 55, + 59, 57, 49, 37, 22, 5, -10, -23, -33, -39, -41, -41, -39, -36, -33, -30, + -27, -23, -19, -12, -4, 6, 17, 29, 38, 45, 48, 47, 41, 30, 18, 5, + -7, -17, -22, -22, -19, -13, -6, 1, 6, 7, 5, -1, -9, -18, -26, -31, + -34, -32, -27, -19, -9, 1, 10, 17, 23, 26, 27, 27, 28, 28, 29, 30, + 31, 30, 26, 19, 9, -5, -20, -35, -49, -58, -63, -62, -55, -42, -26, -9, + 8, 23, 33, 39, 40, 37, 31, 25, 18, 13, 10, 9, 9, 10, 10, 8, + 5, 0, -6, -12, -18, -21, -22, -21, -18, -13, -8, -4, -3, -4, -7, -11, + -16, -20, -22, -19, -13, -2, 11, 25, 39, 49, 56, 57, 52, 42, 28, 12, + -4, -18, -29, -37, -41, -41, -40, -36, -33, -29, -26, -23, -19, -13, -7, 2, + 12, 23, 33, 41, 46, 46, 43, 35, 24, 11, -2, -12, -20, -23, -22, -17, + -11, -3, 3, 6, 6, 3, -4, -12, -20, -27, -31, -32, -29, -22, -13, -3, + 6, 14, 21, 25, 27, 27, 27, 27, 27, 28, 28, 28, 26, 21, 12, 1, + -12, -27, -41, -52, -59, -61, -57, -47, -33, -17, 1, 16, 28, 36, 40, 39, + 34, 28, 21, 15, 11, 8, 8, 8, 8, 8, 6, 2, -3, -9, -15, -19, + -22, -22, -19, -15, -11, -6, -3, -2, -4, -8, -12, -17, -19, -19, -15, -7, + 4, 17, 31, 43, 51, 54, 53, 45, 34, 19, 3, -12, -24, -34, -39, -41, + -40, -37, -34, -30, -26, -22, -18, -14, -8, -1, 8, 17, 27, 36, 42, 45, + 43, 38, 28, 17, 4, -7, -17, -22, -23, -20, -15, -8, -1, 4, 6, 5, + 0, -7, -15, -22, -28, -31, -29, -25, -17, -8, 2, 11, 18, 23, 26, 27, + 27, 26, 26, 26, 26, 26, 24, 21, 15, 6, -6, -19, -33, -45, -54, -58, + -57, -51, -39, -24, -7, 9, 23, 33, 39, 40, 37, 31, 24, 17, 12, 8, + 6, 6, 7, 7, 6, 3, -1, -6, -12, -17, -20, -22, -21, -18, -13, -8, + -5, -2, -2, -4, -8, -13, -16, -18, -16, -10, -1, 10, 23, 35, 45, 51, + 52, 48, 38, 25, 10, -5, -19, -30, -37, -40, -41, -38, -35, -30, -26, -22, + -18, -14, -9, -3, 4, 13, 22, 31, 38, 42, 43, 40, 32, 22, 10, -2, + -12, -20, -23, -22, -19, -12, -5, 1, 5, 5, 3, -3, -10, -17, -24, -28, + -29, -26, -20, -12, -2, 7, 15, 21, 25, 27, 27, 26, 25, 25, 24, 24, + 23, 21, 16, 9, -1, -13, -26, -38, -48, -55, -56, -52, -43, -30, -15, 2, + 16, 28, 36, 39, 38, 34, 27, 20, 14, 9, 6, 5, 5, 5, 5, 4, + 1, -3, -9, -14, -18, -21, -21, -19, -15, -11, -6, -3, -2, -2, -5, -9, + -13, -15, -15, -12, -6, 4, 16, 28, 39, 47, 50, 48, 42, 31, 17, 2, + -12, -25, -34, -39, -41, -39, -36, -31, -27, -22, -18, -14, -10, -5, 1, 9, + 17, 26, 33, 39, 42, 40, 35, 26, 16, 4, -7, -16, -22, -23, -21, -16, + -10, -3, 2, 5, 4, 1, -5, -12, -19, -25, -27, -27, -23, -16, -7, 3, + 11, 18, 23, 26, 27, 26, 25, 24, 23, 22, 21, 20, 17, 11, 3, -7, + -19, -31, -42, -50, -54, -53, -47, -36, -22, -6, 10, 23, 33, 38, 39, 36, + 31, 24, 17, 11, 6, 4, 4, 4, 4, 4, 2, -1, -6, -11, -16, -19, + -20, -20, -17, -13, -9, -5, -2, -1, -3, -6, -9, -12, -14, -13, -8, -1, + 10, 21, 32, 41, 47, 48, 44, 35, 23, 9, -6, -19, -30, -37, -40, -40, + -37, -33, -28, -23, -18, -14, -10, -6, -1, 6, 13, 21, 29, 35, 39, 40, + 37, 30, 20, 9, -2, -12, -19, -23, -23, -19, -14, -7, -1, 3, 5, 3, + -1, -8, -15, -21, -25, -26, -24, -18, -11, -2, 7, 15, 21, 25, 27, 26, + 25, 24, 22, 21, 20, 19, 16, 12, 6, -3, -13, -24, -35, -44, -50, -52, + -48, -40, -28, -13, 2, 17, 28, 36, 39, 38, 34, 27, 20, 13, 8, 4, + 2, 2, 3, 3, 2, 0, -4, -8, -13, -17, -19, -20, -18, -15, -11, -7, + -3, -1, -1, -3, -6, -9, -12, -12, -10, -4, 4, 15, 25, 35, 42, 46, + 44, 38, 28, 15, 1, -13, -25, -33, -38, -40, -38, -34, -30, -24, -19, -15, + -11, -7, -2, 3, 10, 17, 24, 31, 36, 38, 37, 32, 25, 14, 3, -7, + -16, -21, -23, -22, -17, -11, -4, 1, 4, 4, 1, -4, -10, -17, -22, -25, + -24, -21, -14, -6, 3, 11, 18, 23, 26, 27, 26, 24, 22, 20, 19, 18, + 16, 13, 8, 1, -8, -18, -29, -38, -46, -49, -48, -43, -33, -20, -5, 10, + 23, 32, 38, 39, 36, 30, 23, 16, 9, 5, 2, 1, 1, 2, 2, 0, + -2, -6, -10, -14, -18, -19, -19, -17, -13, -9, -5, -2, 0, -1, -3, -6, + -9, -11, -10, -7, 0, 9, 19, 29, 37, 43, 44, 40, 32, 21, 7, -6, + -19, -29, -36, -39, -39, -36, -31, -26, -20, -15, -11, -7, -3, 2, 7, 13, + 20, 27, 32, 36, 36, 34, 28, 19, 9, -2, -12, -19, -23, -23, -20, -15, + -8, -2, 2, 4, 3, 0, -6, -12, -18, -22, -23, -22, -17, -10, -1, 7, + 15, 21, 25, 26, 26, 24, 22, 20, 18, 17, 15, 13, 9, 3, -4, -13, + -23, -32, -41, -46, -47, -44, -37, -25, -12, 3, 16, 27, 35, 38, 37, 33, + 27, 19, 12, 6, 2, 0, 0, 0, 1, 0, -1, -4, -8, -12, -15, -18, + -19, -18, -15, -11, -7, -3, -1, 0, -1, -3, -6, -9, -9, -8, -3, 4, + 13, 23, 32, 38, 42, 40, 35, 26, 13, 0, -13, -24, -33, -38, -39, -37, + -33, -28, -22, -16, -12, -7, -3, 1, 5, 11, 17, 23, 29, 33, 35, 34, + 30, 23, 13, 3, -7, -15, -21, -23, -22, -18, -12, -6, 0, 3, 4, 2, + -2, -8, -14, -19, -22, -22, -19, -13, -5, 3, 11, 18, 23, 26, 26, 25, + 23, 20, 18, 16, 14, 12, 9, 5, -1, -9, -17, -27, -35, -42, -45, -44, + -39, -30, -18, -4, 10, 22, 31, 37, 38, 35, 30, 23, 15, 8, 3, 0, + -1, -1, 0, 0, -1, -3, -6, -9, -13, -16, -18, -18, -16, -13, -9, -5, + -1, 0, 0, -1, -4, -6, -8, -8, -5, 0, 8, 17, 26, 34, 39, 40, + 37, 29, 19, 6, -7, -19, -29, -35, -38, -38, -35, -30, -24, -18, -13, -8, + -4, 0, 4, 8, 14, 19, 25, 30, 33, 33, 31, 25, 18, 8, -2, -11, + -18, -22, -23, -21, -16, -10, -3, 1, 4, 4, 1, -4, -10, -15, -19, -21, + -20, -15, -9, -1, 7, 15, 20, 24, 26, 25, 23, 21, 18, 16, 14, 12, + 9, 6, 1, -5, -13, -21, -30, -37, -42, -43, -40, -33, -23, -10, 3, 16, + 27, 34, 37, 36, 32, 26, 19, 11, 5, 1, -1, -2, -2, -1, -1, -2, + -4, -7, -11, -14, -17, -18, -17, -14, -11, -7, -3, 0, 1, 0, -1, -4, + -6, -7, -6, -2, 4, 12, 20, 28, 35, 38, 37, 32, 23, 12, 0, -13, + -24, -32, -36, -38, -36, -32, -26, -20, -14, -9, -5, -1, 3, 7, 11, 16, + 22, 26, 30, 32, 31, 27, 21, 12, 3, -7, -15, -20, -23, -22, -19, -13, + -7, -1, 2, 4, 3, -1, -6, -11, -16, -19, -19, -17, -12, -5, 3, 11, + 17, 22, 25, 25, 24, 22, 19, 16, 13, 11, 9, 6, 3, -2, -9, -17, + -25, -32, -38, -41, -40, -36, -27, -16, -3, 10, 21, 30, 35, 37, 34, 29, + 22, 15, 8, 2, -1, -3, -3, -2, -2, -2, -3, -5, -8, -12, -15, -17, + -17, -15, -12, -9, -5, -1, 1, 1, 0, -2, -4, -6, -6, -4, 1, 7, + 15, 23, 30, 35, 36, 33, 27, 17, 6, -7, -18, -28, -34, -37, -36, -33, + -28, -22, -16, -10, -5, -1, 2, 6, 9, 14, 18, 23, 27, 30, 30, 28, + 23, 16, 7, -2, -11, -17, -22, -23, -21, -16, -11, -5, 0, 3, 4, 2, + -2, -8, -13, -17, -18, -18, -14, -8, -1, 7, 14, 20, 23, 25, 24, 22, + 19, 16, 13, 11, 9, 6, 3, -1, -6, -13, -20, -27, -34, -38, -39, -37, + -31, -21, -9, 3, 15, 26, 33, 36, 35, 32, 25, 18, 11, 4, 0, -3, + -4, -4, -3, -2, -3, -4, -7, -10, -13, -15, -16, -16, -14, -10, -7, -3, + 0, 2, 2, 0, -2, -4, -5, -4, -1, 4, 10, 18, 25, 31, 34, 33, + 29, 21, 11, -1, -12, -23, -31, -35, -36, -35, -30, -25, -18, -12, -7, -2, + 1, 5, 8, 12, 16, 20, 24, 27, 29, 28, 25, 19, 11, 3, -6, -14, + -20, -22, -22, -19, -14, -8, -2, 2, 4, 3, 0, -4, -9, -14, -17, -17, + -15, -11, -5, 3, 10, 17, 21, 24, 24, 23, 20, 17, 14, 11, 9, 6, + 4, 0, -4, -9, -16, -23, -29, -34, -37, -37, -32, -25, -15, -3, 9, 20, + 29, 34, 36, 33, 28, 22, 14, 7, 1, -3, -4, -5, -4, -3, -3, -3, + -5, -8, -11, -13, -15, -16, -14, -12, -8, -5, -1, 1, 2, 2, 0, -2, + -3, -4, -2, 1, 7, 13, 20, 27, 31, 32, 30, 24, 16, 5, -7, -17, + -26, -33, -35, -35, -32, -27, -21, -14, -8, -3, 1, 4, 7, 10, 14, 18, + 21, 25, 27, 27, 26, 21, 15, 7, -2, -10, -17, -21, -22, -21, -17, -11, + -5, 0, 3, 4, 2, -1, -6, -10, -14, -16, -16, -13, -8, -1, 6, 13, + 19, 22, 24, 23, 21, 18, 15, 12, 9, 6, 4, 1, -2, -7, -12, -19, + -25, -30, -34, -35, -33, -28, -19, -8, 3, 15, 24, 31, 35, 34, 31, 25, + 18, 10, 4, -1, -4, -5, -5, -4, -4, -3, -4, -6, -9, -11, -14, -15, + -15, -13, -10, -6, -3, 0, 2, 3, 2, 0, -2, -3, -3, -1, 3, 9, + 16, 22, 28, 30, 30, 26, 20, 10, -1, -12, -22, -29, -34, -35, -33, -29, + -23, -17, -10, -5, 0, 3, 6, 9, 12, 15, 19, 22, 25, 26, 25, 23, + 17, 11, 2, -6, -13, -19, -22, -22, -19, -14, -9, -3, 1, 4, 4, 2, + -2, -7, -11, -14, -15, -14, -10, -4, 3, 10, 16, 20, 23, 23, 22, 19, + 16, 12, 9, 6, 4, 1, -1, -5, -10, -15, -21, -27, -31, -33, -33, -29, + -23, -13, -2, 9, 19, 27, 33, 34, 32, 28, 21, 14, 6, 1, -4, -6, + -6, -6, -5, -4, -4, -5, -7, -9, -12, -14, -14, -14, -11, -8, -5, -1, + 2, 3, 3, 2, 0, -2, -2, -1, 1, 6, 12, 18, 24, 28, 29, 27, + 22, 14, 4, -6, -17, -25, -31, -34, -34, -31, -26, -19, -13, -7, -2, 3, + 6, 9, 11, 14, 17, 20, 23, 24, 25, 23, 19, 14, 6, -2, -9, -16, + -20, -22, -20, -17, -12, -6, -1, 2, 4, 3, 0, -4, -8, -12, -14, -14, + -12, -7, -1, 6, 12, 18, 21, 23, 22, 20, 17, 14, 10, 7, 4, 2, + -1, -4, -7, -12, -17, -23, -28, -31, -32, -30, -25, -18, -8, 3, 14, 23, + 30, 33, 33, 30, 24, 17, 10, 3, -2, -5, -7, -7, -6, -5, -4, -4, + -6, -8, -10, -12, -13, -14, -12, -10, -6, -3, 0, 3, 3, 3, 2, 0, + -1, -1, 0, 3, 8, 14, 20, 24, 27, 27, 24, 18, 9, -1, -11, -20, + -28, -32, -33, -32, -28, -22, -15, -9, -3, 1, 5, 8, 10, 13, 15, 18, + 20, 22, 23, 23, 20, 16, 10, 2, -5, -12, -18, -21, -21, -19, -15, -9, + -4, 1, 3, 4, 2, -1, -5, -9, -12, -13, -12, -9, -4, 2, 9, 15, + 19, 22, 22, 21, 18, 15, 11, 8, 5, 2, 0, -3, -6, -10, -14, -19, + -24, -28, -30, -30, -27, -21, -12, -2, 8, 18, 26, 31, 33, 31, 27, 20, + 13, 6, 0, -4, -7, -7, -7, -6, -5, -4, -5, -6, -8, -11, -12, -13, + -13, -11, -8, -4, -1, 2, 3, 4, 3, 2, 0, -1, 0, 2, 5, 10, + 16, 21, 25, 26, 25, 20, 13, 4, -6, -15, -24, -30, -32, -32, -29, -24, + -18, -12, -5, 0, 4, 7, 10, 12, 14, 16, 18, 20, 22, 22, 21, 17, + 12, 6, -2, -9, -15, -19, -21, -20, -17, -12, -7, -2, 2, 4, 4, 2, + -2, -6, -10, -12, -12, -11, -7, -1, 5, 11, 17, 20, 22, 21, 19, 16, + 12, 9, 5, 2, 0, -2, -5, -8, -12, -16, -21, -25, -28, -29, -27, -23, + -16, -7, 3, 13, 22, 28, 31, 32, 29, 23, 17, 9, 3, -3, -6, -8, + -8, -7, -6, -5, -4, -5, -7, -9, -11, -12, -12, -11, -9, -6, -3, 0, + 3, 4, 4, 3, 1, 0, 0, 1, 3, 7, 12, 17, 21, 24, 24, 22, + 16, 9, -1, -10, -19, -26, -30, -32, -30, -26, -21, -14, -8, -2, 3, 6, + 9, 11, 13, 15, 17, 19, 20, 21, 20, 18, 14, 9, 2, -5, -12, -17, + -20, -20, -19, -15, -10, -5, 0, 3, 4, 3, 1, -3, -7, -10, -12, -11, + -9, -4, 2, 8, 14, 18, 21, 21, 20, 18, 14, 10, 6, 3, 0, -2, + -4, -7, -10, -14, -18, -22, -25, -27, -27, -24, -19, -11, -2, 8, 17, 24, + 29, 31, 30, 26, 20, 13, 6, 0, -5, -8, -8, -8, -7, -5, -5, -5, + -6, -7, -9, -11, -12, -12, -10, -8, -4, -1, 2, 4, 4, 4, 3, 1, + 0, 0, 2, 5, 9, 14, 18, 22, 23, 22, 18, 12, 4, -5, -14, -22, + -28, -31, -31, -28, -23, -17, -10, -4, 1, 5, 8, 10, 12, 14, 15, 17, + 19, 20, 20, 18, 16, 11, 5, -1, -8, -14, -18, -20, -19, -17, -13, -7, + -2, 1, 4, 4, 3, 0, -4, -8, -10, -11, -10, -6, -1, 4, 10, 15, + 19, 21, 20, 19, 15, 12, 8, 4, 1, -1, -4, -6, -8, -11, -15, -19, + -22, -25, -26, -24, -21, -14, -6, 3, 12, 20, 26, 30, 30, 28, 23, 16, + 9, 2, -3, -7, -9, -9, -8, -6, -5, -5, -5, -6, -8, -9, -11, -11, + -10, -9, -6, -3, 0, 3, 4, 5, 4, 3, 1, 1, 1, 3, 6, 10, + 15, 19, 21, 22, 20, 15, 8, -1, -10, -18, -24, -29, -30, -29, -25, -20, + -13, -7, -1, 4, 7, 10, 12, 13, 14, 16, 17, 18, 19, 18, 16, 13, + 8, 2, -5, -11, -16, -19, -20, -18, -15, -10, -5, -1, 3, 4, 4, 2, + -2, -5, -8, -10, -10, -8, -4, 1, 7, 12, 17, 19, 20, 19, 17, 13, + 9, 5, 2, -1, -3, -5, -7, -10, -13, -16, -20, -22, -24, -24, -21, -17, + -10, -2, 7, 16, 23, 28, 30, 29, 25, 19, 12, 5, -1, -5, -8, -9, + -9, -8, -6, -5, -5, -5, -6, -8, -9, -10, -10, -9, -7, -4, -1, 2, + 4, 5, 5, 4, 3, 1, 1, 2, 4, 8, 12, 16, 19, 20, 20, 17, + 11, 4, -5, -13, -21, -26, -29, -29, -27, -22, -16, -10, -3, 2, 6, 9, + 11, 13, 14, 15, 16, 17, 18, 18, 16, 14, 10, 5, -1, -7, -13, -17, + -19, -19, -17, -13, -8, -3, 1, 4, 4, 3, 1, -3, -6, -8, -9, -9, + -6, -2, 4, 9, 14, 18, 19, 19, 18, 15, 11, 7, 3, 0, -3, -5, + -7, -9, -11, -14, -17, -20, -22, -23, -22, -18, -13, -6, 3, 11, 19, 25, + 28, 29, 26, 22, 16, 9, 2, -3, -7, -9, -10, -9, -7, -6, -5, -5, + -5, -7, -8, -9, -10, -10, -8, -6, -3, 0, 3, 4, 5, 5, 4, 2, + 2, 2, 3, 5, 9, 13, 16, 19, 19, 18, 14, 7, 0, -9, -16, -23, + -27, -29, -27, -24, -19, -12, -6, 0, 5, 8, 11, 12, 13, 14, 15, 16, + 16, 17, 16, 14, 11, 7, 2, -4, -10, -15, -18, -19, -18, -15, -10, -6, + -1, 2, 4, 4, 3, 0, -3, -6, -8, -9, -7, -4, 1, 6, 11, 15, + 18, 19, 18, 16, 12, 8, 4, 1, -2, -4, -6, -8, -10, -12, -15, -18, + -20, -21, -21, -19, -15, -9, -2, 7, 15, 21, 26, 28, 27, 24, 19, 12, + 5, -1, -6, -9, -10, -10, -8, -7, -5, -5, -5, -5, -7, -8, -9, -9, + -9, -7, -4, -1, 2, 4, 5, 5, 5, 3, 2, 2, 2, 4, 6, 10, + 13, 16, 18, 18, 15, 10, 4, -4, -12, -19, -24, -27, -28, -25, -21, -15, + -9, -3, 3, 7, 10, 12, 13, 14, 14, 15, 15, 16, 15, 14, 12, 9, + 4, -1, -7, -12, -16, -18, -18, -16, -13, -8, -4, 1, 3, 5, 4, 2, + -1, -4, -7, -8, -8, -5, -2, 3, 8, 13, 16, 18, 18, 17, 14, 10, + 6, 2, -1, -4, -6, -7, -9, -11, -13, -16, -18, -20, -20, -19, -16, -12, + -5, 2, 10, 17, 23, 26, 27, 25, 21, 15, 9, 2, -3, -7, -10, -10, + -9, -8, -6, -5, -4, -5, -6, -7, -8, -9, -9, -7, -5, -3, 0, 3, + 4, 5, 5, 4, 3, 2, 2, 3, 5, 7, 11, 14, 16, 17, 16, 12, + 7, 0, -8, -15, -21, -25, -27, -26, -23, -18, -12, -5, 0, 5, 9, 11, + 13, 13, 14, 14, 14, 15, 15, 14, 13, 10, 6, 1, -4, -9, -13, -17, + -18, -17, -15, -11, -6, -2, 2, 4, 5, 3, 1, -2, -5, -7, -8, -6, + -4, 0, 5, 10, 14, 17, 18, 17, 15, 12, 8, 4, 0, -3, -5, -7, + -8, -10, -12, -14, -16, -18, -19, -19, -17, -13, -8, -1, 6, 13, 20, 24, + 26, 26, 23, 18, 12, 5, -1, -6, -9, -10, -10, -9, -7, -6, -5, -4, + -5, -6, -7, -8, -8, -8, -6, -4, -1, 1, 4, 5, 6, 5, 4, 3, + 2, 2, 3, 6, 8, 11, 14, 16, 16, 13, 9, 3, -4, -11, -17, -23, + -26, -26, -24, -20, -14, -8, -2, 3, 7, 10, 12, 13, 13, 14, 14, 14, + 14, 14, 13, 11, 8, 4, -1, -6, -11, -15, -17, -17, -16, -13, -8, -4, + 0, 3, 5, 4, 3, 0, -3, -5, -7, -7, -5, -2, 2, 7, 11, 15, + 17, 17, 16, 13, 9, 6, 2, -2, -4, -6, -8, -9, -11, -12, -14, -16, + -17, -18, -17, -15, -10, -5, 2, 9, 16, 21, 25, 26, 24, 20, 15, 8, + 2, -3, -8, -10, -11, -10, -9, -7, -5, -4, -4, -5, -6, -7, -8, -8, + -7, -5, -3, 0, 2, 4, 5, 6, 5, 4, 3, 2, 3, 4, 6, 9, + 12, 14, 15, 14, 11, 6, 0, -7, -14, -19, -23, -25, -25, -22, -17, -11, + -5, 1, 6, 9, 12, 13, 13, 13, 13, 13, 13, 13, 12, 11, 9, 5, + 1, -4, -8, -12, -15, -17, -16, -14, -11, -6, -2, 2, 4, 5, 4, 2, + -1, -3, -6, -6, -6, -4, 0, 4, 9, 13, 15, 17, 16, 14, 11, 7, + 3, 0, -3, -6, -7, -9, -10, -11, -13, -14, -16, -17, -16, -15, -12, -7, + -1, 5, 12, 18, 22, 25, 24, 22, 17, 11, 5, -1, -6, -9, -11, -11, + -10, -8, -6, -5, -4, -4, -5, -6, -7, -7, -7, -6, -4, -1, 1, 3, + 5, 6, 6, 5, 4, 3, 3, 3, 5, 7, 10, 12, 14, 14, 12, 8, + 3, -3, -10, -16, -21, -24, -24, -23, -19, -14, -8, -2, 3, 8, 11, 12, + 13, 13, 13, 13, 13, 12, 12, 11, 9, 7, 3, -1, -6, -10, -14, -16, + -16, -15, -12, -9, -4, 0, 3, 5, 5, 4, 1, -1, -4, -6, -6, -5, + -2, 2, 6, 10, 14, 16, 16, 15, 12, 9, 5, 1, -2, -5, -7, -8, + -9, -10, -12, -13, -14, -15, -16, -15, -13, -9, -4, 2, 9, 15, 20, 23, + 24, 23, 19, 14, 8, 2, -3, -8, -10, -11, -11, -9, -7, -5, -4, -4, + -4, -5, -6, -7, -7, -6, -5, -3, 0, 2, 4, 5, 6, 5, 4, 3, + 3, 3, 4, 5, 8, 10, 12, 13, 12, 10, 6, 0, -6, -12, -18, -22, + -24, -23, -21, -16, -11, -5, 1, 6, 9, 12, 13, 13, 13, 13, 12, 12, + 11, 11, 9, 7, 5, 1, -3, -8, -11, -14, -16, -16, -14, -11, -7, -2, + 1, 4, 5, 5, 3, 1, -2, -4, -5, -5, -3, 0, 3, 8, 11, 14, + 15, 15, 13, 11, 7, 3, -1, -4, -6, -8, -9, -10, -11, -12, -13, -14, + -15, -14, -13, -10, -6, -1, 5, 11, 17, 21, 23, 23, 21, 17, 11, 5, + -1, -6, -9, -11, -11, -10, -8, -6, -5, -4, -3, -4, -5, -6, -6, -6, + -5, -4, -1, 1, 3, 5, 6, 6, 5, 4, 3, 3, 3, 4, 6, 8, + 10, 12, 12, 11, 8, 3, -3, -9, -14, -19, -22, -23, -21, -18, -13, -7, + -2, 4, 8, 11, 13, 13, 13, 13, 12, 11, 11, 10, 9, 8, 6, 3, + -1, -5, -9, -13, -15, -15, -15, -12, -9, -5, -1, 3, 5, 5, 4, 2, + 0, -3, -4, -5, -4, -2, 1, 5, 9, 12, 14, 15, 14, 12, 9, 5, + 1, -2, -5, -7, -9, -9, -10, -11, -12, -13, -13, -14, -13, -11, -8, -4, + 2, 8, 13, 18, 21, 23, 22, 18, 14, 8, 2, -3, -7, -10, -11, -11, + -9, -7, -6, -4, -3, -3, -4, -5, -6, -6, -5, -4, -3, 0, 2, 4, + 5, 6, 6, 5, 4, 3, 3, 3, 4, 6, 8, 10, 11, 11, 9, 5, + 0, -5, -11, -16, -20, -22, -22, -19, -15, -10, -4, 1, 6, 9, 12, 13, + 13, 13, 12, 11, 11, 10, 9, 8, 6, 4, 1, -3, -7, -11, -13, -15, + -15, -13, -10, -7, -3, 1, 4, 5, 5, 4, 2, -1, -3, -4, -5, -3, + -1, 3, 7, 10, 13, 14, 14, 13, 10, 6, 3, -1, -4, -6, -8, -9, + -10, -10, -11, -12, -12, -13, -13, -11, -9, -6, -1, 5, 10, 15, 19, 21, + 22, 20, 16, 11, 5, 0, -5, -9, -11, -11, -10, -9, -7, -5, -3, -3, + -3, -4, -5, -5, -5, -5, -3, -1, 1, 3, 5, 6, 6, 5, 5, 4, + 3, 3, 4, 5, 7, 9, 10, 10, 9, 7, 3, -2, -8, -13, -18, -20, + -21, -20, -17, -13, -7, -2, 4, 8, 11, 13, 13, 13, 12, 11, 10, 10, + 9, 8, 7, 5, 2, -1, -5, -8, -12, -14, -14, -14, -12, -9, -5, -1, + 2, 4, 5, 5, 3, 1, -2, -3, -4, -4, -2, 1, 4, 8, 11, 13, + 14, 13, 11, 8, 4, 1, -3, -5, -7, -9, -9, -10, -10, -11, -11, -12, + -12, -11, -10, -7, -3, 2, 7, 12, 17, 20, 21, 20, 18, 13, 8, 2, + -3, -7, -10, -11, -11, -10, -8, -6, -4, -3, -3, -3, -4, -4, -5, -5, + -4, -2, 0, 2, 4, 5, 6, 6, 5, 4, 3, 3, 3, 4, 5, 7, + 9, 9, 9, 8, 5, 0, -5, -10, -15, -18, -20, -20, -18, -15, -10, -4, + 1, 6, 9, 12, 13, 13, 12, 12, 11, 10, 9, 8, 7, 5, 3, 0, + -3, -6, -10, -12, -14, -14, -13, -10, -7, -3, 0, 3, 5, 5, 4, 2, + 0, -2, -4, -4, -3, -1, 2, 6, 9, 12, 13, 13, 12, 9, 6, 3, + -1, -4, -7, -8, -9, -10, -10, -10, -11, -11, -11, -11, -10, -8, -5, -1, + 4, 9, 14, 18, 20, 20, 19, 15, 11, 5, 0, -5, -9, -11, -11, -11, + -9, -7, -5, -3, -3, -2, -3, -4, -4, -5, -4, -3, -1, 1, 3, 4, + 6, 6, 6, 5, 4, 3, 3, 3, 4, 5, 7, 8, 9, 8, 6, 3, + -2, -7, -12, -16, -19, -20, -19, -16, -12, -7, -1, 4, 8, 11, 12, 13, + 13, 12, 11, 10, 9, 8, 7, 5, 4, 2, -1, -4, -8, -11, -13, -14, + -13, -11, -8, -5, -1, 2, 4, 5, 5, 4, 2, -1, -2, -4, -3, -2, + 0, 3, 7, 10, 12, 13, 12, 11, 8, 4, 1, -3, -5, -8, -9, -9, + -10, -10, -10, -10, -10, -10, -10, -8, -6, -3, 2, 6, 11, 15, 18, 20, + 19, 17, 13, 8, 2, -3, -7, -10, -11, -11, -10, -8, -6, -4, -3, -2, + -2, -3, -4, -4, -4, -3, -2, 0, 2, 3, 5, 6, 6, 5, 5, 4, + 3, 3, 3, 4, 6, 7, 8, 8, 7, 4, 1, -4, -9, -13, -17, -19, + -19, -17, -14, -9, -4, 1, 6, 9, 12, 13, 13, 12, 11, 10, 9, 8, + 7, 6, 4, 2, 0, -3, -6, -9, -11, -13, -13, -12, -10, -7, -3, 0, + 3, 5, 5, 5, 3, 1, -1, -3, -3, -3, -1, 1, 5, 8, 10, 12, + 12, 11, 9, 6, 2, -1, -4, -7, -8, -9, -10, -10, -10, -10, -10, -10, + -9, -8, -7, -4, 0, 4, 8, 13, 16, 18, 19, 17, 14, 10, 5, 0, + -5, -8, -11, -11, -11, -9, -7, -5, -3, -2, -2, -2, -3, -3, -4, -4, +}; + +// Sparkle: descending run of five tiny glass ticks. +static const int8_t s_sparkle_pcm[7966] = { + 0, 3, 2, 3, -10, -15, 6, 7, 23, 7, -32, -13, -12, 23, 48, -12, + -18, -41, -25, 59, 29, 18, -26, -84, 10, 32, 53, 51, -80, -53, -19, 19, + 119, 4, -49, -54, -71, 77, 73, 15, -7, -114, -24, 55, 46, 77, -59, -86, + -12, -1, 105, 44, -59, -41, -76, 38, 98, 13, 5, -91, -64, 59, 41, 72, + -17, -105, -18, -4, 75, 80, -54, -45, -64, -4, 107, 27, 1, -59, -92, 44, + 52, 56, 21, -104, -40, 4, 44, 99, -30, -60, -48, -34, 96, 54, -9, -33, + -101, 12, 67, 42, 43, -83, -69, 11, 24, 97, 8, -73, -39, -46, 66, 83, + -11, -20, -90, -27, 76, 40, 46, -48, -94, 6, 20, 79, 45, -75, -44, -43, + 30, 101, 2, -22, -67, -60, 68, 51, 37, -14, -103, -14, 26, 56, 71, -58, + -60, -32, 0, 101, 28, -30, -46, -77, 43, 69, 28, 10, -93, -44, 33, 39, + 79, -26, -77, -27, -16, 82, 60, -34, -36, -76, 8, 83, 28, 18, -68, -73, + 31, 35, 70, 9, -85, -33, -17, 54, 84, -24, -38, -63, -25, 83, 40, 14, + -39, -90, 14, 42, 55, 38, -77, -50, -11, 27, 93, -1, -46, -48, -47, 67, + 61, 9, -17, -90, -14, 50, 43, 52, -53, -71, -8, 11, 84, 30, -52, -40, + -54, 38, 79, 10, -7, -76, -45, 51, 40, 52, -22, -85, -14, 7, 65, 58, + -47, -43, -48, 7, 87, 22, -8, -54, -68, 39, 48, 43, 6, -85, -32, 10, + 44, 74, -28, -54, -39, -17, 80, 43, -12, -35, -77, 15, 59, 36, 24, -70, + -55, 13, 29, 75, 0, -63, -35, -28, 59, 66, -12, -26, -71, -15, 65, 36, + 29, -46, -74, 7, 25, 64, 29, -64, -40, -28, 33, 80, 0, -26, -57, -40, + 59, 45, 25, -20, -82, -9, 28, 49, 49, -51, -52, -23, 10, 81, 20, -31, + -43, -55, 40, 59, 21, -2, -76, -32, 32, 38, 57, -27, -65, -21, -3, 69, + 44, -31, -36, -57, 14, 69, 23, 5, -59, -55, 29, 36, 54, 0, -71, -28, + -6, 49, 64, -23, -37, -50, -12, 70, 34, 5, -39, -69, 15, 40, 45, 22, + -65, -41, -4, 30, 72, -4, -43, -41, -30, 58, 50, 3, -23, -71, -7, 45, + 38, 35, -48, -58, -4, 18, 68, 19, -46, -37, -37, 37, 64, 6, -15, -62, + -31, 45, 37, 37, -25, -69, -10, 13, 55, 41, -42, -40, -35, 14, 71, 17, + -14, -48, -49, 36, 43, 33, -3, -70, -25, 15, 41, 55, -27, -48, -31, -5, + 66, 34, -15, -35, -58, 17, 51, 29, 11, -60, -43, 15, 31, 58, -6, -54, + -29, -15, 52, 51, -13, -28, -55, -6, 55, 31, 16, -42, -58, 9, 27, 52, + 17, -54, -34, -17, 33, 63, -3, -28, -47, -26, 51, 39, 16, -24, -65, -5, + 29, 42, 33, -45, -44, -15, 16, 65, 13, -30, -38, -38, 37, 49, 15, -10, + -62, -23, 30, 36, 41, -27, -54, -16, 6, 57, 32, -29, -34, -42, 17, 57, + 18, -3, -51, -41, 27, 34, 41, -7, -59, -22, 2, 44, 48, -22, -35, -38, + -3, 58, 27, -2, -37, -53, 16, 37, 36, 11, -55, -34, 2, 30, 55, -7, + -39, -34, -17, 50, 40, -1, -25, -56, -2, 41, 32, 21, -43, -46, 0, 21, + 54, 11, -41, -32, -24, 34, 52, 2, -19, -51, -20, 40, 33, 25, -26, -55, + -6, 17, 46, 28, -37, -35, -25, 17, 57, 12, -17, -41, -35, 32, 38, 24, + -10, -57, -18, 17, 37, 40, -26, -41, -23, 3, 55, 25, -17, -33, -43, 18, + 44, 23, 2, -50, -33, 16, 30, 44, -9, -46, -24, -5, 45, 39, -14, -28, + -43, 1, 47, 26, 7, -38, -45, 10, 27, 41, 8, -46, -29, -8, 31, 49, + -5, -28, -38, -15, 44, 33, 9, -25, -51, -1, 28, 36, 21, -39, -37, -9, + 19, 52, 8, -29, -33, -26, 33, 41, 10, -14, -50, -15, 28, 32, 29, -26, + -45, -11, 11, 47, 23, -27, -31, -30, 19, 47, 14, -8, -43, -30, 25, 31, + 30, -11, -49, -17, 7, 38, 35, -21, -32, -29, 4, 48, 22, -6, -33, -40, + 16, 34, 28, 3, -46, -27, 5, 29, 42, -10, -35, -27, -8, 43, 32, -5, + -25, -43, 2, 36, 27, 12, -38, -37, 3, 22, 43, 5, -36, -27, -14, 32, + 41, 0, -20, -41, -12, 35, 29, 16, -25, -44, -3, 19, 38, 19, -33, -31, + -16, 19, 46, 7, -18, -35, -24, 29, 33, 17, -13, -46, -13, 18, 32, 28, + -24, -35, -17, 8, 45, 18, -17, -30, -31, 18, 38, 18, -4, -42, -24, 16, + 28, 32, -12, -39, -19, 1, 38, 30, -14, -27, -33, 5, 40, 21, 1, -34, + -34, 11, 26, 32, 2, -39, -23, -2, 29, 38, -7, -26, -31, -8, 38, 27, + 3, -24, -40, 2, 26, 29, 12, -34, -30, -4, 20, 41, 3, -27, -28, -16, + 30, 34, 5, -16, -40, -9, 26, 27, 19, -25, -37, -7, 14, 39, 15, -25, + -27, -21, 19, 39, 10, -12, -36, -21, 23, 28, 21, -13, -40, -13, 10, 33, + 26, -20, -29, -22, 8, 40, 16, -9, -30, -29, 16, 30, 22, -3, -39, -20, + 8, 27, 32, -11, -31, -22, -2, 36, 25, -7, -24, -33, 5, 32, 22, 5, + -33, -29, 5, 22, 33, 0, -32, -23, -7, 29, 32, -3, -20, -32, -6, 31, + 24, 9, -24, -35, 0, 19, 31, 11, -29, -26, -10, 19, 37, 4, -19, -29, + -16, 26, 28, 11, -15, -37, -8, 18, 28, 19, -22, -30, -12, 11, 37, 13, + -17, -26, -22, 18, 32, 13, -8, -35, -18, 16, 25, 24, -13, -33, -14, 5, + 33, 22, -14, -24, -24, 8, 34, 16, -3, -30, -26, 12, 24, 24, -3, -33, + -19, 2, 26, 29, -8, -24, -24, -2, 32, 21, -1, -23, -31, 4, 24, 24, + 6, -30, -24, -1, 20, 32, 0, -24, -23, -9, 27, 27, 2, -17, -32, -5, + 24, 23, 12, -23, -30, -4, 15, 31, 10, -23, -23, -14, 19, 32, 6, -13, + -30, -14, 21, 24, 15, -14, -33, -9, 12, 28, 18, -19, -25, -15, 10, 33, + 12, -11, -26, -21, 15, 26, 16, -6, -32, -15, 10, 24, 23, -12, -27, -17, + 3, 31, 19, -8, -22, -25, 7, 27, 17, 0, -28, -22, 7, 21, 26, -3, + -27, -18, -2, 25, 25, -5, -20, -25, -2, 27, 20, 4, -22, -28, 2, 19, + 25, 6, -26, -21, -5, 19, 29, 1, -18, -24, -10, 23, 23, 6, -15, -30, + -5, 17, 23, 13, -21, -25, -8, 12, 30, 8, -17, -23, -15, 17, 26, 9, + -10, -26, -9, 18, 25, 6, -33, -30, -1, 16, 52, 36, -36, -55, -30, -4, + 34, 67, 32, -43, -40, -20, -36, 18, 63, 14, 2, 20, -31, -72, -20, 21, + 14, 71, 83, -42, -89, -47, -44, 19, 120, 85, -30, -66, -64, -73, 18, 116, + 54, -8, -7, -62, -77, 10, 49, 19, 37, 50, -35, -69, -19, -32, -9, 92, + 81, -9, -41, -62, -87, -9, 108, 84, 11, -8, -79, -105, 7, 74, 48, 41, + 20, -60, -77, -1, 8, -1, 66, 54, -24, -24, -31, -71, -22, 75, 75, 25, + 10, -59, -119, -23, 68, 62, 65, 30, -76, -102, -18, 30, 33, 72, 43, -54, + -48, -14, -39, -2, 63, 44, 7, 11, -29, -92, -36, 47, 45, 64, 55, -57, + -108, -43, 12, 44, 91, 61, -56, -82, -31, -27, 22, 87, 40, -22, -16, -28, + -59, -13, 46, 26, 31, 51, -30, -86, -38, -7, 22, 86, 77, -29, -82, -54, + -41, 16, 106, 67, -24, -39, -53, -60, 10, 71, 37, 6, 17, -32, -68, -11, + 9, 3, 57, 64, -14, -56, -46, -48, -8, 89, 86, -2, -33, -63, -84, 1, + 85, 64, 18, -4, -55, -79, -2, 43, 19, 40, 37, -32, -46, -19, -28, -12, + 58, 69, 6, -16, -41, -87, -25, 70, 69, 39, 10, -62, -97, -23, 52, 48, + 51, 32, -55, -70, -12, 0, 11, 54, 42, -14, -21, -18, -56, -28, 50, 49, + 33, 28, -40, -93, -41, 31, 51, 65, 49, -49, -93, -33, 3, 30, 76, 44, + -34, -46, -25, -30, -3, 54, 36, 3, 16, -21, -68, -30, 17, 29, 54, 57, + -22, -84, -49, -13, 20, 86, 67, -27, -61, -49, -37, 13, 75, 51, -11, -15, + -29, -56, -6, 35, 19, 28, 38, -14, -57, -36, -15, 1, 64, 75, -6, -49, + -52, -57, 0, 79, 71, 6, -27, -50, -67, -4, 61, 38, 19, 14, -34, -53, + -14, 7, 4, 38, 53, -4, -34, -30, -51, -20, 60, 69, 23, -11, -50, -80, + -25, 60, 60, 34, 14, -51, -75, -15, 27, 28, 40, 31, -24, -42, -14, -22, + -14, 44, 47, 12, 2, -29, -68, -36, 37, 56, 44, 30, -39, -88, -35, 22, + 41, 61, 37, -36, -64, -27, -4, 10, 51, 39, -13, -14, -17, -44, -20, 28, + 35, 29, 31, -16, -72, -44, 7, 27, 63, 56, -24, -70, -47, -16, 20, 68, + 54, -18, -40, -31, -37, 1, 47, 31, 8, 9, -15, -49, -27, 9, 13, 40, + 55, -6, -54, -45, -31, 5, 65, 69, 1, -43, -47, -50, -2, 65, 51, 7, + -9, -35, -49, -10, 29, 21, 21, 31, -10, -42, -24, -21, -8, 45, 59, 13, + -25, -42, -56, -21, 56, 65, 23, -5, -46, -68, -16, 41, 43, 29, 15, -28, + -52, -15, 5, 4, 34, 38, -1, -18, -23, -40, -25, 34, 55, 28, 9, -31, + -73, -34, 31, 49, 46, 25, -34, -69, -30, 14, 25, 44, 34, -21, -36, -18, + -20, -7, 31, 36, 12, 5, -13, -53, -36, 17, 33, 43, 39, -19, -67, -45, + 0, 28, 56, 49, -19, -54, -34, -19, 10, 49, 37, -4, -16, -18, -34, -18, + 22, 23, 21, 31, -6, -49, -38, -11, 13, 48, 57, 0, -50, -45, -31, 3, + 59, 55, 1, -28, -37, -39, -6, 40, 34, 10, 8, -14, -40, -18, 2, 6, + 30, 42, 7, -33, -36, -33, -12, 46, 62, 16, -19, -42, -54, -15, 44, 52, + 21, -1, -31, -52, -15, 23, 20, 25, 24, -9, -30, -20, -16, -11, 27, 47, + 16, -7, -26, -53, -28, 31, 51, 35, 10, -31, -63, -31, 24, 37, 37, 24, + -24, -46, -21, -1, 8, 29, 32, 1, -15, -14, -32, -24, 20, 35, 28, 19, + -16, -55, -41, 9, 34, 44, 37, -17, -58, -36, -4, 20, 45, 36, -9, -33, + -23, -19, -6, 28, 29, 9, 8, -9, -38, -29, 2, 20, 34, 39, -1, -48, + -42, -16, 10, 50, 51, -1, -39, -39, -27, 1, 42, 41, 3, -12, -20, -33, + -12, 17, 18, 18, 23, 0, -33, -30, -14, -2, 34, 51, 12, -27, -39, -39, + -9, 41, 54, 17, -15, -33, -45, -13, 32, 33, 18, 8, -16, -33, -18, 2, + 5, 20, 34, 8, -18, -23, -32, -18, 27, 48, 26, -3, -29, -51, -28, 27, + 44, 30, 12, -26, -48, -23, 12, 22, 26, 23, -7, -27, -16, -14, -10, 20, + 32, 16, 2, -16, -40, -32, 12, 37, 34, 23, -16, -53, -36, 5, 28, 40, + 30, -12, -42, -27, -6, 6, 29, 29, 0, -11, -13, -25, -18, 10, 24, 22, + 21, -3, -41, -37, -5, 17, 39, 40, -1, -42, -40, -16, 9, 40, 41, 0, + -25, -25, -24, -5, 24, 26, 10, 4, -6, -28, -23, -1, 9, 24, 35, 7, + -29, -35, -24, -2, 35, 49, 14, -24, -34, -35, -9, 34, 39, 14, -6, -21, + -32, -15, 14, 17, 15, 19, 0, -23, -21, -15, -7, 21, 39, 19, -12, -27, + -37, -21, 26, 45, 25, 1, -27, -44, -21, 19, 32, 23, 12, -13, -33, -17, + 0, 4, 18, 25, 7, -10, -16, -24, -20, 13, 35, 25, 10, -16, -44, -32, + 9, 33, 34, 20, -14, -43, -29, 2, 17, 29, 25, -5, -23, -17, -13, -6, + 14, 25, 13, 4, -6, -30, -28, 1, 21, 30, 27, -3, -39, -38, -8, 16, + 36, 36, -1, -33, -29, -16, 4, 27, 29, 5, -10, -13, -21, -15, 8, 16, + 16, 19, 2, -26, -30, -13, 6, 28, 39, 11, -27, -34, -25, -3, 32, 40, + 12, -16, -26, -27, -10, 20, 26, 11, 5, -7, -23, -17, -2, 5, 16, 27, + 12, -16, -25, -24, -12, 22, 41, 21, -7, -27, -36, -18, 21, 37, 21, 2, + -18, -33, -17, 9, 16, 17, 16, 0, -17, -16, -11, -8, 12, 29, 18, -1, + -16, -32, -24, 10, 34, 29, 11, -15, -39, -28, 7, 25, 27, 18, -9, -29, + -20, -3, 6, 17, 22, 6, -8, -10, -19, -18, 6, 22, 22, 15, -5, -32, + -32, -3, 21, 31, 28, -3, -34, -31, -9, 11, 28, 27, 2, -20, -19, -14, + -6, 14, 20, 10, 5, -4, -20, -22, -4, 12, 21, 27, 7, -26, -32, -17, + 4, 29, 35, 10, -21, -29, -21, -4, 23, 30, 9, -6, -14, -21, -12, 6, + 13, 13, 14, 4, -17, -22, -13, -3, 18, 32, 16, -12, -27, -28, -12, 20, + 37, 19, -5, -21, -30, -15, 14, 24, 16, 6, -7, -20, -16, -2, 3, 12, + 21, 10, -8, -16, -21, -15, 10, 30, 23, 3, -16, -33, -24, 9, 29, 25, + 11, -12, -30, -21, 3, 15, 18, 16, 0, -16, -13, -10, -7, 8, 20, 15, + 4, -6, -20, -22, 4, 24, 14, -3, -14, -23, -20, 7, 44, 50, 9, -40, + -50, -33, -23, 9, 68, 76, 13, -32, -30, -48, -74, -25, 64, 87, 48, 20, + -3, -59, -103, -56, 37, 66, 36, 31, 38, -13, -71, -45, 5, -9, -21, 36, + 76, 34, -18, -19, -22, -57, -55, 11, 65, 49, 20, 29, 13, -63, -96, -38, + 21, 30, 56, 95, 47, -62, -104, -63, -20, 7, 56, 99, 64, -25, -66, -46, + -39, -46, 6, 82, 75, 12, -9, -11, -53, -76, -17, 49, 43, 16, 24, 28, + -12, -51, -35, -7, -18, -16, 45, 85, 37, -26, -32, -40, -71, -43, 44, 85, + 51, 19, 8, -31, -86, -79, -5, 54, 59, 57, 58, -2, -92, -99, -25, 23, + 31, 59, 74, 16, -54, -56, -24, -20, -21, 20, 64, 46, 0, -11, -8, -41, + -62, -13, 43, 31, 12, 35, 36, -21, -60, -40, -19, -18, 14, 73, 83, 18, + -49, -60, -54, -51, -5, 76, 94, 33, -15, -22, -51, -81, -39, 39, 68, 49, + 35, 18, -37, -85, -61, 8, 40, 31, 37, 43, -2, -51, -36, -4, -17, -26, + 20, 58, 35, 4, 0, -15, -53, -60, -8, 43, 42, 29, 37, 20, -44, -79, + -43, -3, 9, 44, 87, 59, -27, -76, -63, -40, -15, 39, 85, 67, -2, -42, + -38, -41, -48, -6, 55, 59, 21, 10, 4, -39, -67, -29, 22, 28, 18, 30, + 32, -3, -36, -28, -13, -25, -25, 27, 69, 43, 1, -12, -34, -70, -53, 20, + 64, 51, 33, 21, -18, -69, -73, -21, 26, 40, 54, 63, 18, -60, -82, -38, + -4, 13, 50, 70, 28, -31, -41, -23, -25, -25, 8, 44, 38, 11, 6, 4, + -32, -57, -24, 20, 21, 16, 38, 38, -9, -42, -34, -27, -28, -1, 55, 75, + 33, -18, -41, -54, -60, -22, 52, 80, 42, 6, -8, -41, -71, -44, 17, 44, + 40, 41, 30, -16, -64, -58, -11, 16, 21, 37, 45, 9, -34, -28, -7, -20, + -28, 7, 39, 31, 16, 15, -3, -44, -59, -22, 21, 32, 32, 43, 27, -28, + -62, -43, -18, -6, 29, 74, 62, -2, -47, -54, -49, -31, 19, 69, 65, 15, + -21, -28, -38, -47, -15, 34, 42, 22, 20, 16, -23, -53, -33, 3, 12, 14, + 31, 34, 6, -22, -21, -14, -28, -29, 13, 50, 42, 18, 6, -22, -63, -58, + -1, 41, 46, 40, 31, -5, -53, -63, -29, 6, 23, 44, 61, 31, -33, -61, + -42, -22, -3, 36, 63, 34, -13, -26, -21, -26, -27, -1, 28, 28, 14, 16, + 14, -19, -47, -30, 2, 8, 14, 38, 39, 3, -27, -28, -28, -34, -12, 37, + 62, 41, 4, -22, -45, -63, -35, 29, 62, 45, 21, 5, -30, -61, -44, 1, + 25, 30, 39, 36, 0, -43, -48, -22, -2, 9, 31, 43, 17, -18, -19, -8, + -21, -27, -2, 24, 23, 20, 25, 9, -31, -52, -32, 2, 19, 31, 45, 33, + -13, -46, -39, -26, -18, 15, 58, 58, 16, -23, -40, -49, -41, 1, 50, 58, + 26, -4, -17, -33, -44, -20, 18, 28, 19, 23, 22, -9, -38, -31, -10, -2, + 7, 27, 34, 13, -10, -13, -13, -28, -31, 1, 34, 35, 26, 19, -9, -51, + -57, -18, 21, 36, 42, 38, 7, -37, -53, -33, -8, 9, 33, 54, 36, -12, + -41, -38, -31, -16, 22, 51, 37, 2, -14, -16, -25, -27, -7, 16, 18, 13, + 20, 21, -7, -35, -30, -11, -5, 8, 34, 40, 12, -14, -20, -27, -35, -19, + 21, 47, 40, 18, -4, -33, -57, -43, 8, 44, 42, 31, 16, -18, -49, -42, + -10, 11, 20, 33, 36, 11, -24, -36, -25, -13, -2, 21, 38, 21, -6, -10, + -7, -19, -26, -8, 12, 15, 19, 28, 18, -17, -42, -35, -12, 6, 24, 43, + 37, -1, -32, -34, -29, -24, 3, 42, 51, 25, -4, -25, -43, -45, -13, 31, + 48, 31, 10, -6, -26, -39, -23, 7, 17, 14, 22, 24, 2, -23, -24, -15, + -12, -2, 20, 31, 18, 0, -6, -11, -26, -30, -7, 19, 27, 28, 27, 4, + -36, -51, -28, 3, 23, 39, 42, 17, -23, -43, -33, -16, -1, 22, 44, 36, + 2, -23, -29, -32, -25, 7, 37, 34, 12, -2, -10, -21, -25, -11, 7, 10, + 9, 19, 23, 3, -21, -25, -18, -15, -1, 27, 37, 19, -3, -13, -24, -34, + -24, 8, 33, 36, 25, 9, -19, -48, -45, -8, 26, 35, 35, 24, -7, -38, + -38, -16, 1, 12, 26, 32, 16, -10, -23, -22, -19, -11, 11, 30, 23, 4, + -2, -4, -17, -23, -11, 3, 7, 15, 28, 23, -4, -29, -33, -21, -7, 15, + 38, 39, 10, -18, -27, -29, -28, -5, 28, 41, 28, 8, -11, -33, -43, -22, + 14, 35, 31, 18, 3, -18, -33, -23, -1, 8, 9, 18, 23, 8, -11, -16, + -16, -18, -10, 11, 26, 21, 8, 1, -7, -22, -28, -13, 8, 18, 25, 30, + 13, -22, -42, -32, -10, 11, 32, 41, 24, -10, -32, -31, -21, -9, 13, 35, + 33, 10, -9, -19, -29, -28, -4, 24, 28, 17, 7, -3, -16, -22, -12, 1, + 4, 5, 16, 22, 10, -10, -18, -19, -21, -9, 18, 33, 23, 6, -5, -19, + -31, -25, -1, 21, 29, 27, 17, -7, -36, -42, -18, 10, 25, 33, 29, 3, + -26, -32, -19, -6, 4, 19, 27, 18, -1, -13, -16, -19, -17, 1, 20, 20, + 10, 5, 0, -13, -21, -13, -3, 1, 10, 24, 25, 6, -17, -27, -25, -16, + 5, 30, 37, 18, -7, -19, -27, -29, -12, 17, 31, 27, 15, 0, -22, -37, + -26, 1, 22, 27, 22, 11, -9, -26, -22, -6, 2, 5, 14, 20, 11, -2, + -8, -12, -19, -15, 2, 18, 20, 13, 7, -2, -18, -26, -16, 0, 10, 20, + 29, 19, -9, -31, -31, -19, -1, 22, 37, 28, 1, -21, -27, -23, -14, 5, + 25, 28, 14, 0, -10, -23, -27, -11, 11, 21, 17, 12, 3, -11, -19, -13, + -4, -1, 2, 12, 20, 13, -1, -10, -17, -23, -15, 8, 26, 24, 13, 2, + -14, -28, -26, -8, 11, 22, 26, 22, 3, -24, -35, -23, -2, 15, 28, 30, + 11, -15, -26, -20, -11, -1, 13, 22, 17, 4, -4, -10, -16, -18, -6, 11, + 16, 12, 10, 5, -9, -17, -13, -7, -4, 5, 19, 24, 12, -6, -19, -25, + -21, -4, 21, 33, 22, 3, -12, -23, -28, -16, 8, 22, 23, 18, 7, -12, + -29, -26, -8, 10, 20, 23, 16, -1, -19, -20, -9, -3, 1, 10, 16, 11, + 3, -1, -7, -17, -18, -5, 10, 16, 16, 12, 3, -13, -22, -17, -6, 4, + 15, 28, 26, 3, -17, -22, -25, -25, -9, 22, 36, 19, -2, -1, 6, -5, + -24, -20, -1, 4, -8, -8, 17, 38, 26, -4, -14, -5, -17, -49, -47, 7, + 57, 49, 18, 16, 23, -10, -63, -65, -14, 19, 7, 9, 52, 74, 26, -41, + -59, -40, -36, -40, -4, 64, 94, 56, 1, -26, -40, -68, -81, -37, 45, 93, + 75, 31, 6, -15, -59, -92, -60, 13, 53, 45, 39, 53, 38, -28, -84, -69, + -20, 2, 4, 35, 76, 65, 2, -45, -46, -35, -42, -35, 14, 68, 70, 24, + -13, -17, -20, -40, -47, -13, 31, 37, 12, 8, 29, 26, -19, -51, -31, -2, + -7, -19, 12, 57, 56, 10, -21, -18, -24, -53, -52, 1, 57, 60, 30, 13, + 9, -15, -55, -67, -31, 16, 32, 32, 45, 56, 23, -41, -76, -57, -21, -7, + 9, 54, 89, 59, -12, -55, -55, -52, -54, -20, 51, 94, 68, 11, -19, -28, + -49, -67, -42, 17, 56, 50, 30, 24, 13, -24, -62, -58, -15, 18, 20, 21, + 42, 50, 13, -38, -50, -28, -16, -19, 1, 46, 61, 23, -18, -17, -5, -21, + -41, -25, 15, 30, 16, 11, 27, 28, -7, -42, -41, -19, -8, -8, 13, 50, + 63, 27, -23, -43, -39, -41, -39, -1, 55, 74, 40, 1, -11, -20, -51, -68, + -33, 27, 53, 43, 36, 35, 7, -46, -75, -53, -11, 14, 27, 50, 67, 43, + -17, -63, -64, -40, -19, 5, 43, 73, 57, 3, -37, -38, -31, -37, -31, 12, + 53, 49, 17, 1, 3, -12, -42, -46, -12, 18, 17, 11, 27, 39, 17, -24, + -42, -29, -13, -10, -2, 25, 45, 31, -1, -16, -10, -14, -33, -36, -3, 31, + 33, 18, 20, 26, 1, -42, -56, -30, -3, 6, 21, 53, 63, 24, -33, -58, + -48, -33, -19, 12, 54, 69, 41, -4, -30, -37, -45, -48, -22, 29, 62, 51, + 22, 6, -8, -37, -62, -49, -2, 32, 37, 37, 44, 29, -21, -64, -58, -22, + 3, 15, 33, 52, 40, -2, -35, -35, -22, -19, -16, 7, 35, 39, 15, -5, + -4, -3, -18, -35, -24, 5, 18, 13, 18, 33, 26, -11, -42, -35, -13, -7, + -6, 16, 43, 40, 9, -15, -17, -21, -35, -35, -5, 32, 42, 29, 18, 12, + -7, -40, -57, -37, 1, 28, 38, 46, 46, 15, -37, -68, -52, -17, 5, 21, + 47, 61, 35, -14, -44, -42, -33, -28, -7, 33, 58, 43, 10, -10, -17, -30, + -44, -34, 0, 33, 39, 30, 22, 11, -17, -47, -47, -16, 13, 21, 20, 28, + 30, 6, -26, -33, -16, -7, -11, -3, 21, 32, 16, -1, 0, 4, -12, -33, + -31, -6, 15, 20, 24, 30, 23, -6, -37, -42, -24, -5, 4, 18, 39, 45, + 18, -19, -34, -30, -28, -25, -2, 34, 51, 34, 9, -3, -15, -41, -55, -32, + 13, 41, 44, 38, 26, -1, -40, -61, -44, -8, 19, 32, 40, 42, 22, -17, + -46, -44, -22, -5, 6, 24, 42, 35, 4, -18, -20, -18, -27, -27, -1, 30, + 36, 21, 9, 5, -10, -32, -36, -14, 10, 16, 14, 19, 23, 11, -14, -26, + -19, -8, -8, -6, 8, 26, 26, 11, 0, -2, -12, -33, -38, -13, 21, 33, + 28, 25, 18, -7, -39, -48, -27, 0, 15, 26, 40, 40, 12, -25, -42, -35, + -22, -10, 8, 33, 46, 33, 4, -18, -28, -36, -39, -21, 18, 48, 46, 24, + 5, -12, -34, -49, -36, 1, 29, 33, 29, 26, 11, -19, -41, -35, -11, 6, + 10, 16, 26, 23, 5, -13, -17, -14, -17, -18, -5, 18, 30, 21, 6, 1, + -4, -18, -30, -21, 1, 15, 14, 15, 22, 17, -7, -26, -23, -11, -8, -8, + 7, 28, 33, 18, 0, -12, -22, -34, -33, -9, 24, 41, 35, 20, 5, -15, + -38, -47, -28, 6, 30, 35, 33, 26, 4, -29, -46, -34, -10, 5, 14, 30, + 40, 26, -4, -26, -31, -28, -24, -8, 21, 42, 37, 14, -6, -18, -27, -33, + -24, 2, 27, 32, 21, 10, 1, -13, -28, -27, -8, 9, 10, 6, 13, 20, + 11, -7, -15, -12, -13, -17, -10, 11, 26, 22, 10, 3, -2, -16, -29, -26, + -5, 14, 21, 21, 20, 14, -4, -24, -30, -19, -7, 0, 11, 28, 36, 21, + -7, -25, -29, -29, -24, -2, 29, 45, 33, 11, -7, -22, -37, -40, -19, 15, + 36, 36, 25, 11, -8, -29, -38, -27, -4, 13, 20, 24, 26, 17, -6, -27, + -30, -19, -9, 1, 16, 31, 29, 9, -11, -17, -18, -22, -18, 1, 22, 26, + 15, 4, 0, -7, -16, -19, -9, 2, 5, 4, 10, 19, 16, 1, -13, -17, + -15, -15, -10, 6, 25, 29, 17, 2, -8, -18, -30, -28, -6, 19, 28, 23, + 16, 9, -7, -27, -33, -20, -3, 9, 19, 30, 31, 14, -14, -32, -32, -23, + -10, 8, 28, 40, 29, 4, -18, -28, -31, -27, -9, 19, 37, 33, 13, -3, + -12, -22, -28, -20, 1, 16, 19, 17, 16, 10, -6, -22, -23, -13, -3, 3, + 10, 20, 21, 10, -6, -15, -15, -15, -13, -2, 14, 21, 15, 4, 0, -1, + -9, -18, -16, -5, 4, 7, 12, 20, 19, 3, -16, -22, -19, -15, -7, 9, + 27, 32, 19, -1, -16, -25, -28, -22, -1, 22, 32, 25, 11, -1, -12, -25, + -31, -19, 3, 19, 24, 24, 21, 6, -18, -33, -29, -13, 1, 13, 26, 32, + 21, -3, -23, -28, -24, -14, 0, 19, 30, 24, 6, -8, -14, -16, -17, -13, + 0, 13, 17, 12, 8, 6, -2, -14, -19, -12, -2, 1, 5, 14, 20, 13, + -2, -13, -14, -13, -12, -5, 9, 19, 16, 8, 3, -1, -9, -19, -20, -9, + 5, 14, 17, 19, 16, 1, -18, -27, -23, -11, 1, 14, 28, 32, 16, -9, + -25, -28, -23, -13, 5, 25, 32, 22, 5, -8, -17, -24, -25, -12, 8, 23, + 24, 18, 9, -3, -17, -27, -23, -8, 7, 16, 20, 22, 14, -5, -22, -25, + -15, -4, 4, 13, 20, 17, 4, -8, -10, -9, -11, -10, -2, 9, 13, 9, + 7, 6, 2, -8, -15, -14, -7, -1, 5, 13, 19, 16, 1, -13, -18, -15, + -11, -5, 7, 19, 21, 12, 1, -6, -13, -21, -21, -8, 10, 20, 20, 17, + 10, -4, -21, -28, -22, -6, 9, 20, 27, 25, 8, -14, -28, -27, -16, -2, + 11, 22, 26, 17, 0, -15, -19, -19, -15, -6, 10, 22, 20, 10, 1, -5, + -13, -20, -17, -4, 8, 14, 16, 15, 8, -5, -17, -19, -11, -1, 5, 8, + 12, 13, 6, -3, -8, -8, -8, -9, -6, 3, 11, 11, 8, 7, 4, -5, + -17, -17, -7, 4, 11, 19, 24, 15, -12, -36, -39, -21, -2, 8, 18, 35, + 49, 41, 6, -35, -56, -50, -31, -14, -1, 19, 48, 69, 59, 14, -35, -52, + -39, -26, -30, -31, -4, 41, 60, 36, 1, -8, 8, 14, -9, -41, -49, -25, + 3, 13, 7, 10, 31, 52, 44, 4, -38, -51, -36, -19, -21, -24, -1, 45, + 75, 59, 15, -17, -22, -24, -43, -62, -50, -3, 46, 65, 51, 30, 18, 10, + -11, -48, -74, -65, -21, 24, 42, 39, 39, 49, 44, 4, -52, -80, -60, -18, + 7, 12, 18, 40, 56, 42, 2, -33, -39, -23, -11, -15, -22, -13, 14, 38, + 36, 14, 0, 7, 17, 2, -34, -54, -39, -6, 13, 11, 13, 35, 58, 50, + 6, -42, -62, -52, -32, -18, -5, 21, 55, 73, 56, 10, -33, -48, -40, -34, + -38, -31, 4, 49, 69, 50, 17, -1, -6, -19, -45, -62, -46, -4, 34, 45, + 35, 25, 24, 20, -2, -35, -55, -44, -13, 11, 13, 9, 18, 38, 41, 15, + -21, -34, -20, -7, -13, -26, -20, 6, 30, 35, 23, 14, 15, 14, -5, -38, + -60, -52, -17, 19, 35, 37, 41, 47, 36, -5, -54, -74, -55, -20, 3, 13, + 28, 53, 65, 43, -3, -42, -54, -43, -29, -19, -6, 17, 44, 56, 38, 5, + -19, -20, -14, -22, -36, -34, -6, 26, 36, 25, 13, 17, 21, 6, -24, -45, + -39, -14, 5, 8, 6, 14, 29, 37, 24, -3, -24, -26, -19, -20, -29, -26, + 2, 38, 53, 39, 16, 3, -3, -19, -45, -59, -43, -4, 31, 45, 43, 38, + 33, 16, -18, -55, -70, -51, -11, 22, 35, 36, 39, 41, 24, -13, -47, -51, + -29, -6, -1, -1, 10, 29, 38, 26, 3, -12, -13, -10, -15, -26, -28, -12, + 13, 28, 24, 14, 14, 20, 15, -10, -39, -46, -28, -4, 6, 8, 19, 39, + 46, 27, -7, -33, -38, -30, -23, -20, -10, 13, 40, 53, 41, 13, -10, -21, + -29, -41, -49, -33, 6, 43, 55, 41, 22, 10, -3, -25, -49, -53, -30, 4, + 27, 31, 26, 24, 23, 13, -9, -32, -39, -24, -3, 6, 2, 1, 14, 28, + 25, 8, -7, -7, -2, -9, -26, -36, -23, 4, 25, 31, 28, 25, 21, 7, + -19, -44, -51, -33, -4, 17, 24, 28, 35, 39, 23, -11, -42, -48, -34, -17, + -8, 3, 23, 45, 49, 29, -1, -24, -31, -30, -29, -26, -13, 12, 36, 44, + 32, 11, -2, -9, -18, -33, -39, -25, 5, 27, 28, 17, 11, 14, 12, -3, + -20, -26, -17, -6, -3, -7, -5, 8, 26, 33, 23, 4, -9, -14, -19, -30, + -35, -23, 7, 34, 42, 33, 21, 12, -1, -25, -49, -52, -30, 3, 27, 36, + 36, 33, 24, 5, -22, -44, -46, -27, -3, 11, 15, 20, 30, 34, 20, -6, + -26, -28, -21, -17, -16, -9, 10, 30, 35, 22, 5, -5, -8, -11, -20, -26, + -21, -4, 13, 19, 15, 12, 15, 18, 8, -13, -29, -28, -15, -6, -5, -1, + 14, 32, 37, 24, 2, -15, -23, -28, -33, -31, -14, 15, 41, 49, 36, 14, + -6, -20, -33, -43, -40, -17, 15, 37, 38, 26, 17, 10, -3, -22, -37, -35, + -17, 3, 14, 16, 17, 20, 20, 12, -5, -20, -22, -14, -8, -9, -10, -1, + 16, 27, 24, 11, 1, -2, -7, -19, -30, -27, -9, 11, 21, 20, 18, 18, + 16, 5, -14, -30, -33, -22, -8, 2, 10, 21, 35, 38, 21, -7, -29, -35, + -30, -23, -15, 0, 23, 41, 42, 24, 2, -15, -24, -30, -32, -25, -7, 17, + 34, 34, 21, 6, -3, -8, -16, -25, -24, -10, 7, 13, 8, 5, 10, 17, + 16, 4, -10, -16, -15, -14, -15, -13, -2, 15, 28, 29, 18, 4, -6, -13, + -21, -30, -29, -13, 11, 28, 30, 24, 18, 11, -3, -24, -38, -35, -18, 2, + 14, 20, 24, 28, 24, 9, -13, -30, -34, -25, -13, -3, 8, 22, 34, 34, + 16, -7, -22, -24, -21, -18, -13, -1, 15, 25, 22, 11, 2, -1, -2, -7, + -15, -19, -14, -3, 6, 7, 6, 10, 18, 20, 9, -8, -19, -20, -18, -16, + -13, -1, 18, 34, 35, 21, 1, -14, -24, -30, -31, -22, -3, 20, 34, 33, + 22, 8, -3, -12, -23, -32, -28, -11, 9, 21, 22, 20, 19, 15, 1, -17, + -29, -27, -15, -3, 4, 9, 15, 21, 21, 11, -4, -15, -17, -14, -12, -11, + -6, 6, 18, 21, 13, 4, 1, 1, -4, -13, -20, -17, -8, 1, 6, 10, + 17, 23, 22, 9, -11, -27, -30, -23, -13, -2, 10, 25, 35, 32, 14, -9, + -24, -28, -26, -22, -13, 4, 24, 34, 29, 15, 0, -11, -18, -23, -23, -16, + -2, 13, 20, 18, 11, 7, 6, 1, -9, -19, -20, -12, -3, 2, 4, 9, + 17, 20, 13, -1, -11, -14, -13, -12, -12, -8, 2, 13, 20, 19, 12, 5, + 0, -7, -17, -25, -23, -9, 6, 16, 19, 20, 20, 15, 0, -18, -30, -29, + -19, -6, 6, 17, 27, 31, 24, 6, -15, -28, -29, -21, -10, 0, 11, 22, + 27, 20, 5, -8, -13, -12, -12, -13, -11, -2, 8, 13, 12, 8, 7, 7, + 3, -5, -13, -17, -13, -6, -1, 2, 7, 15, 21, 18, 6, -9, -17, -18, + -17, -15, -8, 5, 19, 26, 22, 11, 1, -8, -14, -20, -23, -18, -5, 11, + 21, 23, 20, 14, 6, -7, -21, -30, -26, -11, 5, 15, 19, 21, 20, 13, + -2, -17, -24, -20, -12, -4, 3, 9, 15, 18, 14, 5, -5, -10, -9, -8, + -8, -9, -5, 2, 8, 9, 8, 8, 11, 9, -1, -13, -21, -19, -11, -3, + 6, 14, 21, 23, 17, 2, -14, -23, -23, -17, -10, -1, 9, 21, 27, 22, + 8, -6, -15, -19, -20, -19, -11, 4, 17, 23, 20, 12, 4, -2, -10, -18, + -21, -16, -6, 6, 13, 15, 14, 13, 8, -1, -13, -19, -16, -8, 0, 3, + 5, 9, 12, 11, 6, 0, -4, -5, -7, -11, -13, -10, -2, 8, 14, 15, + 14, 10, 4, -6, -17, -24, -21, -10, 3, 12, 18, 22, 22, 13, -3, -19, + -27, -24, -14, -3, 7, 16, 23, 22, 14, 0, -12, -18, -17, -13, -9, -3, + 5, 14, 18, 14, 7, 1, -4, -8, -13, -16, -12, -3, 6, 10, 10, 9, + 9, 7, 2, -6, -12, -14, -10, -5, -1, 2, 7, 13, 16, 11, 2, -5, + -9, -11, -13, -14, -9, 1, 12, 18, 18, 14, 8, -1, -11, -21, -25, -19, + -5, 10, 19, 22, 19, 13, 3, -10, -21, -25, -18, -6, 5, 11, 14, 17, + 15, 8, -3, -12, -15, -13, -8, -4, 0, 5, 9, 12, 9, 5, 0, -2, + -3, -7, -11, -12, -8, 0, 7, 10, 11, 12, 11, 4, -6, -15, -17, -13, + -6, -1, 4, 10, 15, 17, 12, 2, -8, -14, -16, -15, -12, -5, 6, 17, + 22, 18, 9, -1, -9, -15, -19, -19, -11, 2, 13, 18, 18, 13, 7, -2, + -11, -18, -19, -12, -2, 8, 12, 12, 10, 8, 4, -3, -9, -10, -7, -4, + -3, -3, -1, 4, 9, 11, 8, 5, 1, -3, -9, -13, -14, -9, -1, 8, + 13, 14, 13, 10, 3, -7, -17, -20, -15, -6, 3, 9, 15, 18, 16, 8, + -4, -14, -17, -15, -11, -5, 2, 9, 16, 17, 13, 4, -5, -11, -14, -15, + -12, -6, 4, 13, 17, 13, 7, 1, -4, -8, -12, -12, -7, 0, 5, 6, + 6, 7, 7, 6, 2, -4, -8, -8, -7, -6, -5, -2, 4, 10, 13, 11, + 6, 0, -5, -11, -16, -16, -10, 2, 12, 18, 17, 13, 6, -4, -13, -19, + -19, -11, -1, 9, 14, 15, 13, 10, 3, -7, -14, -16, -12, -6, 0, 5, + 10, 13, 13, 7, 0, -7, -10, -10, -9, -7, -3, 3, 8, 11, 10, 6, + 2, -1, -5, -9, -11, -9, -3, 2, 5, 6, 7, 8, 8, 4, -3, -8, + -10, -10, -8, -6, 0, 7, 14, 16, 13, 4, -5, -12, -15, -16, -12, -4, + 7, 15, 18, 15, 8, 0, -7, -14, -18, -15, -7, 4, 11, 14, 13, 9, + 4, -2, -8, -12, -11, -7, -1, 3, 4, 5, 7, 8, 6, 2, -3, -6, + -7, -7, -7, -5, 0, 6, 10, 10, 7, 4, 0, -4, -8, -11, -10, -6, + 0, 5, 9, 10, 11, 9, 3, -5, -12, -14, -11, -6, -1, 5, 10, 15, + 14, 9, 0, -8, -13, -15, -13, -8, 1, 10, 16, 17, 11, 3, -5, -11, + -13, -12, -8, -2, 6, 10, 10, 7, 4, 1, -1, -5, -8, -8, -5, -2, + 1, 2, 4, 6, 7, 7, 3, -1, -5, -7, -8, -8, -7, -2, 5, 11, + 13, 10, 5, -1, -6, -11, -14, -11, -5, 3, 9, 12, 11, 9, 5, -1, + -8, -13, -14, -10, -3, 3, 8, 12, 13, 11, 4, -4, -11, -14, -11, -7, + -2, 4, 9, 12, 11, 6, 0, -5, -8, -9, -8, -6, -1, 4, 7, 8, + 6, 3, 1, 0, -2, -5, -6, -6, -4, -2, 0, 2, 6, 10, 10, 6, + -1, -7, -11, -11, -10, -5, 2, 9, 14, 14, 9, 2, -5, -10, -13, -13, + -9, -2, 6, 12, 13, 11, 6, 1, -5, -10, -13, -11, -5, 2, 6, 8, + 9, 8, 6, 1, -4, -9, -10, -8, -4, 0, 3, 7, 9, 9, 5, 0, + -4, -6, -6, -6, -5, -2, 1, 4, 5, 5, 5, 4, 3, -1, -5, -9, + -9, -6, -2, 2, 6, 9, 11, 9, 4, -4, -10, -12, -11, -8, -2, 4, + 11, 15, 13, 7, -2, -9, -12, -13, -10, -4, 3, 9, 12, 10, 6, 1, + -3, -6, -8, -8, -7, -3, 2, 5, 6, 6, 6, 4, 1, -3, -7, -7, + -6, -3, -1, 1, 4, 6, 7, 6, 3, -1, -4, -6, -7, -7, -4, 0, + 5, 8, 8, 7, 4, 1, -3, -7, -10, -9, -6, 0, 5, 8, 11, 11, + 7, 0, -7, -12, -13, -10, -3, 3, 8, 11, 12, 8, 2, -5, -9, -10, + -8, -5, -1, 4, 8, 9, 7, 4, 0, -3, -5, -5, -5, -4, -2, 1, + 3, 4, 4, 4, 4, 3, 0, -4, -7, -7, -6, -3, 0, 4, 8, 9, + 7, 3, -2, -6, -8, -8, -7, -4, 1, 6, 9, 10, 7, 3, -2, -6, + -10, -11, -8, -3, 4, 8, 10, 9, 7, 3, -3, -8, -11, -10, -6, 0, + 4, 8, 9, 9, 5, 0, -5, -8, -8, -6, -2, 1, 3, 5, 5, 4, + 2, 0, -1, -2, -3, -4, -5, -4, -2, 1, 4, 5, 6, 6, 3, -1, + -6, -8, -9, -6, -2, 2, 6, 9, 10, 8, 2, -4, -9, -10, -9, -6, + -1, 5, 9, 10, 8, 4, -1, -5, -7, -8, -8, -4, 0, 5, 8, 8, + 7, 4, 0, -4, -7, -9, -7, -3, 2, 5, 6, 6, 5, 3, 0, -3, + -5, -5, -4, -2, -1, 1, 3, 4, 5, 4, 2, 0, -2, -4, -5, -6, + -5, -2, 2, 5, 7, 8, 6, 3, -2, -8, -11, -10, -5, 0, 5, 9, + 10, 9, 4, -2, -7, -10, -9, -6, -2, 2, 6, 8, 8, 6, 2, -3, + -6, -7, -6, -5, -2, 2, 5, 6, 5, 4, 2, 0, -3, -5, -6, -5, + -3, 0, 2, 4, 5, 5, 4, 1, -2, -5, -5, -5, -3, -2, 0, 2, + 5, 6, 5, 3, 0, -3, -5, -7, -7, -5, 0, 4, 8, 9, 7, 4, + -1, -5, -9, -10, -7, -2, 3, 7, 9, 8, 6, 2, -3, -8, -9, -7, + -3, 1, 4, 6, 6, 5, 3, -1, -3, -4, -4, -3, -2, -1, 0, 2, + 4, 4, 4, 3, 1, -1, -4, -5, -5, -4, -1, 2, 4, 5, 6, 5, + 2, -1, -5, -7, -6, -5, -2, 1, 4, 7, 8, 6, 2, -2, -5, -7, + -7, -5, -2, 2, 6, 8, 8, 5, 1, -3, -7, -9, -8, -5, 0, 5, + 8, 8, 6, 3, -1, -4, -6, -6, -4, -1, 2, 3, 3, 4, 3, 2, + 1, -1, -3, -3, -3, -3, -2, -1, 1, 3, 4, 5, 4, 2, -1, -4, + -6, -7, -5, -1, 3, 6, 7, 7, 5, 1, -3, -7, -8, -6, -3, 0, + 3, 6, 7, 6, 4, 0, -4, -6, -7, -6, -3, 0, 4, 7, 7, 6, + 2, -1, -4, -6, -6, -5, -2, 1, 4, 5, 5, 4, 2, -1, -3, -4, + -5, -3, -1, 1, 2, 2, 3, 3, 3, 2, 0, -2, -3, -4, -4, -4, + -2, 1, 5, 6, 6, 4, 1, -3, -6, -8, -7, -4, 1, 4, 7, 7, + 6, 3, -1, -5, -7, -8, -5, -1, 2, 5, 6, 6, 4, 1, -2, -5, + -6, -5, -3, -1, 1, 3, 5, 5, 4, 1, -1, -3, -4, -4, -4, -2, + 1, 3, 4, 4, 3, 1, 0, -1, -3, -4, -3, -2, -1, 0, 2, 3, + 4, 4, 3, 0, -3, -5, -5, -5, -3, 0, 3, 6, 7, 6, 3, -1, + -4, -7, -7, -6, -2, 2, 6, 8, 7, 4, 0, -3, -6, -7, -5, -2, + 1, 4, 5, 5, 4, 2, 0, -2, -4, -4, -3, -2, 0, 1, 2, 3, + 4, 3, 1, 0, -2, -3, -3, -3, -2, -1, 1, 3, 4, 4, 3, 1, + -1, -4, -5, -5, -3, -1, 2, 3, 5, 5, 4, 2, -1, -4, -6, -6, + -4, -2, 2, 5, 7, 7, 4, 0, -3, -6, -7, -5, -3, 1, 4, 6, + 6, 4, 2, -1, -3, -5, -5, -3, -1, 1, 3, 4, 3, 2, 1, 0, + -1, -2, -3, -2, -2, -1, 0, 1, 2, 4, 4, 3, 1, -2, -4, -5, + -4, -3, -1, 2, 4, 5, 4, 3, 0, -2, -4, -5, -5, -3, 0, 3, + 5, 5, 5, 3, 0, -3, -5, -6, -4, -2, 1, 3, 5, 5, 4, 2, + -1, -4, -5, -5, -4, -1, 1, 4, 5, 4, 3, 0, -2, -3, -3, -3, + -2, -1, 1, 2, 2, 2, 2, 2, 1, 0, -1, -3, -3, -3, -2, 0, + 1, 3, 5, 4, 3, 0, -3, -4, -5, -5, -3, 0, 3, 6, 6, 4, + 2, -1, -4, -6, -5, -4, -1, 2, 4, 5, 4, 3, 1, -1, -3, -5, + -4, -3, -1, 2, 3, 4, 4, 3, 1, -1, -3, -4, -3, -2, 0, 1, + 2, 3, 3, 2, 1, 0, -1, -2, -3, -3, -2, 0, 1, 2, 3, 3, + 3, 2, 0, -2, -3, -4, -4, -2, 0, 2, 4, 5, 5, 2, -1, -4, + -6, -5, -4, -1, 2, 5, 6, 5, 3, 0, -3, -4, -5, -4, -2, 0, + 3, 4, 4, 3, 1, 0, -2, -3, -3, -3, -1, 0, 1, 2, 2, 2, + 2, 1, 0, -2, -3, -3, -2, -1, 0, 2, 3, 3, 3, 1, 0, -1, + -2, -3, -3, -2, -1, 1, 3, 4, 4, 3, 1, -1, -3, -5, -5, -3, + -1, 2, 4, 5, 5, 3, 0, -3, -5, -5, -4, -2, 1, 3, 5, 5, + 4, 1, -1, -3, -4, -4, -2, 0, 1, 2, 3, 2, 1, 1, 0, -1, + -2, -2, -2, -2, -1, 0, 1, 2, 3, 3, 2, 0, -2, -3, -3, -3, + -2, 0, 2, 3, 4, 3, 2, 0, -2, -4, -4, -3, -2, 0, 2, 4, + 4, 3, 2, 0, -2, -4, -4, -4, -2, 1, 3, 4, 4, 3, 1, -1, + -3, -5, -4, -3, 0, 2, 3, 4, 3, 2, 0, -1, -2, -3, -2, -1, + 0, 0, 1, 2, 2, 2, 1, 0, 0, -1, -2, -2, -2, -1, 0, 1, + 2, 3, 3, 2, 0, -2, -4, -4, -3, -1, 1, 3, 4, 4, 3, 1, + -1, -3, -4, -4, -2, -1, 1, 3, 4, 4, 2, 1, -1, -3, -4, -3, + -2, 0, 2, 3, 3, 3, 2, 0, -1, -3, -3, -3, -2, 0, 1, 2, + 2, 2, 2, 0, -1, -2, -2, -2, -1, -1, 0, 1, 1, 2, 2, 2, + 1, 0, -1, -3, -3, -3, -1, 1, 2, 4, 4, 3, 1, -1, -3, -4, + -4, -2, 0, 2, 3, 4, 4, 2, 0, -2, -4, -4, -3, -1, 1, 2, + 3, 3, 2, 1, -1, -2, -2, -2, -2, -1, 0, 1, 2, 2, 2, 1, + 0, -1, -2, -2, -2, -1, 0, 1, 1, 2, 2, 2, 1, 0, -1, -2, + -2, -2, -2, -1, 1, 2, 3, 3, 2, 1, -1, -3, -3, -3, -2, 0, + 2, 3, 4, 3, 2, 0, -2, -4, -4, -3, -1, 1, 3, 4, 4, 2, + 1, -1, -3, -3, -3, -1, 0, 1, 2, 2, 2, 1, 1, 0, -1, -2, + -2, -2, -1, 0, 1, 1, 2, 2, 2, 1, 0, -1, -2, -2, -2, -1, + 0, 1, 2, 3, 2, 1, 0, -2, -3, -3, -2, -1, 0, 2, 3, 3, + 3, 1, 0, -2, -3, -3, -3, -1, 1, 3, 4, 3, 2, 1, -1, -3, + -3, -3, -2, 0, 2, 3, 3, 2, 1, 0, -1, -2, -2, -2, -1, 0, + 1, 1, 1, 1, 1, 1, 0, 0, -1, -1, -2, -2, -1, 0, 1, 2, + 3, 2, 1, 0, -2, -3, -3, -2, -1, 1, 2, 3, 3, 2, 1, -1, + -2, -3, -3, -2, 0, 1, 2, 3, 3, 2, 0, -1, -3, -3, -2, -1, + 0, 1, 2, 3, 2, 1, 0, -1, -2, -3, -2, -1, 0, 1, 2, 2, + 1, 1, 0, -1, -1, -1, -1, -1, 0, 0, 0, 1, 2, 2, 1, 1, + 0, -1, -2, -2, -2, -1, 1, 2, 3, 3, 2, 1, -1, -2, -3, -3, + -2, 0, 2, 3, 3, 3, 1, 0, -2, -3, -3, -2, -1, 1, 2, 2, + 2, 2, 1, 0, -1, -2, -2, -2, -1, 0, 1, 2, 2, 2, 1, 0, + -1, -2, -2, -1, -1, 0, 1, 1, 1, 1, 1, 1, 0, -1, -2, -2, + -1, -1, 0, 1, 1, 2, 2, 1, 0, -1, -2, -3, -3, -2, 0, 1, + 3, 3, 3, 1, 0, -2, -3, -3, -2, -1, 1, 2, 3, 3, 2, 0, + -1, -2, -2, -2, -1, 0, 1, 2, 2, 2, 1, 0, -1, -1, -1, -1, + -1, -1, 0, 1, 1, 1, 2, 1, 0, 0, -1, -2, -2, -1, 0, 1, + 1, 2, 2, 1, 1, 0, -1, -2, -2, -2, -1, 0, 1, 2, 2, 2, + 1, 0, -2, -3, -3, -2, -1, 1, 2, 3, 3, 2, 0, -1, -2, -3, + -2, -1, 0, 1, 2, 2, 2, 1, 0, -1, -2, -2, -1, 0, 0, 1, + 1, 1, 1, 1, 1, 0, 0, -1, -1, -1, -1, 0, 0, 1, 2, 2, + 1, 1, 0, -1, -2, -2, -2, -1, 1, 2, 2, 2, 2, 0, -1, -2, + -2, -2, -1, 0, 1, 2, 2, 2, 1, 0, -1, -2, -2, -2, -1, 0, + 1, 2, 2, 2, 1, 0, -1, -2, -2, -1, 0, 0, 1, 2, 1, 1, + 0, 0, -1, -1, -1, -1, -1, 0, 0, 1, 1, 1, 1, 1, 0, 0, + -1, -2, -2, -1, -1, 0, 1, 2, 2, 2, 0, -1, -2, -2, -2, -1, + 0, 1, 2, 2, 2, 1, 0, -1, -2, -2, -2, -1, 0, 1, 2, 2, + 1, 1, 0, -1, -2, -2, -1, 0, 0, 1, 1, 1, 1, 1, 0, -1, + -1, -1, -1, -1, 0, 1, 1, 1, 1, 1, 0, 0, -1, -1, -1, -1, + -1, 0, 0, 1, 1, 2, 1, 0, -1, -2, -2, -2, -1, 0, 1, 2, + 2, 2, 1, 0, -2, -2, -2, -2, 0, 1, 2, 2, 2, 1, 0, -1, + -2, -2, -2, -1, 0, 1, 1, 1, 1, 1, 0, 0, -1, -1, -1, -1, + 0, 0, 1, 1, 1, 1, 1, 0, -1, -1, -1, -1, -1, 0, 0, 1, + 1, 1, 1, 0, 0, -1, -1, -2, -1, -1, 0, 1, 2, 2, 1, 1, + 0, -1, -2, -2, -1, -1, 1, 2, 2, 2, 1, 0, -1, -2, -2, -2, + -1, 0, 1, 2, 2, 1, 0, 0, -1, -1, -1, -1, 0, 0, 1, 1, + 1, 1, 1, 0, 0, -1, -1, -1, -1, -1, 0, 0, 1, 1, 1, 1, + 0, 0, -1, -2, -1, -1, 0, 1, 1, 2, 2, 1, 0, -1, -1, -2, + -1, -1, 0, 1, 1, 2, 2, 1, 0, -1, -2, -2, -2, -1, 0, 1, + 2, 2, 1, 1, 0, -1, -2, -2, -1, 0, 0, 1, 1, 1, 1, 0, + 0, -1, -1, -1, -1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, -1, + -1, -1, -1, 0, 1, 1, 2, 2, 1, 0, -1, -2, -2, -1, -1, 0, + 1, 2, 2, 1, 1, 0, -1, -2, -2, -1, 0, 0, 1, 2, +}; diff --git a/tests/fw/ui/test_notification_window.c b/tests/fw/ui/test_notification_window.c index 274ad9fa9c..8bc9203891 100644 --- a/tests/fw/ui/test_notification_window.c +++ b/tests/fw/ui/test_notification_window.c @@ -128,6 +128,14 @@ PreferredContentSize alerts_preferences_get_notification_content_size(void) { return NotificationContentSizeSystem; } +NotificationSound alerts_preferences_get_notification_sound(void) { + return NotificationSound_None; +} + +bool notification_sounds_play(NotificationSound sound, uint8_t volume) { + return false; +} + int16_t interpolate_int16(int32_t normalized, int16_t from, int16_t to) { return to; } diff --git a/tests/stubs/stubs_alerts.h b/tests/stubs/stubs_alerts.h index 061be8d2da..43aa35f3be 100644 --- a/tests/stubs/stubs_alerts.h +++ b/tests/stubs/stubs_alerts.h @@ -36,4 +36,8 @@ bool PBL_WEAK alerts_should_notify_for_type(AlertType type) { bool PBL_WEAK alerts_should_vibrate_for_type(AlertType type) { return false; +} + +bool PBL_WEAK alerts_should_play_sound_for_type(AlertType type) { + return false; } \ No newline at end of file diff --git a/third_party/hal_sifli/CMakeLists.txt b/third_party/hal_sifli/CMakeLists.txt index 442f41ad28..5f17b23251 100644 --- a/third_party/hal_sifli/CMakeLists.txt +++ b/third_party/hal_sifli/CMakeLists.txt @@ -262,4 +262,5 @@ pbl_library_named(hal_sifli) pbl_library_kind(stlib) pbl_library_sources(${micro_sources}) pbl_library_compile_definitions(${micro_defines}) -pbl_library_compile_options(-Wno-unused-value -Wno-unused-variable -Wno-unused-function -Wno-unused-but-set-variable -Wno-sign-compare -Wno-type-limits) +# -Wno-maybe-uninitialized: bt_rf_fulcal.c trips GCC 13's flow analysis +pbl_library_compile_options(-Wno-unused-value -Wno-unused-variable -Wno-unused-function -Wno-unused-but-set-variable -Wno-sign-compare -Wno-type-limits -Wno-maybe-uninitialized) diff --git a/third_party/nimble/CMakeLists.txt b/third_party/nimble/CMakeLists.txt index 5bb2fabdeb..e128d82b87 100644 --- a/third_party/nimble/CMakeLists.txt +++ b/third_party/nimble/CMakeLists.txt @@ -84,5 +84,7 @@ pbl_library_compile_options( -Wno-unused-function -Wno-sign-compare -Wno-old-style-declaration + # hal_timer.c trips GCC 13's flow analysis outside the docker image + -Wno-maybe-uninitialized -Wimplicit-fallthrough=1 )