diff mbox

[FFmpeg-devel,RFC] libavfilter HRTF/room acoustics filter [1/2]

Message ID 841754cf-5fc4-95bd-e2f4-6b1aec5035b8@users.sourceforge.net
State Changes Requested
Headers show

Commit Message

Yue Shi Lai Aug. 2, 2016, 1:16 p.m. UTC
Dear all,

The following proposed filter is a follow up from an inquiry I received
now almost 3 years ago, to relicense MPlayer's HRTF filter
(libaf/af_hrtf) for FFmpeg. In the mean time, I have developed a much
improved version that somehow never got followed up on the MPlayer dev
list, which I would like to submit to the perhaps more active FFmpeg list.

The main features in version, which I believe is still unique at the
moment among FOSS implementations:

- Uses IIR filterbank (partially due to the fact many years ago, there
was no FFT in FFmpeg/MPlayer), where the HRTF is encoded in 8 1/1 octave
filter impulse amplitude/delays, taking a cue from CELP codecs.

- Properly equalized, a major problem when directly applying HRTF

- Simulates not just HRTF, but reflection off the wall of a room (and
contains a small library of acoustically optimized rooms)

- Also has late reverberation, that approximates the tail of the 3D
ray-traced early reflection, when the latter becomes too computationally
expensive

Attached is a first attempt to port this filter to FFmpeg, potentially
with many coding inconsistencies to be addressed - given the large code
size. To keep the patch size down, I removed two features vs. the
version I posted on the MPlayer-dev-eng list:

- 2nd order coefficients (will quadruple the size of the patch to ~ 4 MB)

- integrated matrix decoder (probably better suited as a separate filter)

I would be grateful for vigorous tests, and any feedback/criticism
regarding both the coding and acoustics.

Best wishes,

Yue Shi Lai

Comments

Paul B Mahol Aug. 2, 2016, 3:40 p.m. UTC | #1
Wow!

On 8/2/16, Yue Shi Lai <ylai@users.sourceforge.net> wrote:
> Dear all,
>
> The following proposed filter is a follow up from an inquiry I received
> now almost 3 years ago, to relicense MPlayer's HRTF filter
> (libaf/af_hrtf) for FFmpeg. In the mean time, I have developed a much
> improved version that somehow never got followed up on the MPlayer dev
> list, which I would like to submit to the perhaps more active FFmpeg list.
>
> The main features in version, which I believe is still unique at the
> moment among FOSS implementations:
>
> - Uses IIR filterbank (partially due to the fact many years ago, there
> was no FFT in FFmpeg/MPlayer), where the HRTF is encoded in 8 1/1 octave
> filter impulse amplitude/delays, taking a cue from CELP codecs.
>
> - Properly equalized, a major problem when directly applying HRTF
>
> - Simulates not just HRTF, but reflection off the wall of a room (and
> contains a small library of acoustically optimized rooms)
>
> - Also has late reverberation, that approximates the tail of the 3D
> ray-traced early reflection, when the latter becomes too computationally
> expensive
>
> Attached is a first attempt to port this filter to FFmpeg, potentially
> with many coding inconsistencies to be addressed - given the large code
> size. To keep the patch size down, I removed two features vs. the
> version I posted on the MPlayer-dev-eng list:
>
> - 2nd order coefficients (will quadruple the size of the patch to ~ 4 MB)
>
> - integrated matrix decoder (probably better suited as a separate filter)

This one does what?

>
> I would be grateful for vigorous tests, and any feedback/criticism
> regarding both the coding and acoustics.

There is already function that does accumulated multiplication IIRC no
need to use intrinsic,
i think is called fdsp->vector_fmac_scalar so use that instead of your
scale_accumulate.
See how its called in sofalizer filter: libavfilter/af_sofalizer.c

Similar to pthread usage there is internal wrapper which should be used.

Can't filter be made so it load kemar data from file instead hardcoded
into lavfi?
Similar how its done in sofalizer?

I will test and report my findings later.

>
> Best wishes,
>
> Yue Shi Lai
>
>
Yue Shi Lai Aug. 2, 2016, 8:57 p.m. UTC | #2
On 08/02/2016 08:40 AM, Paul B Mahol wrote:
> On 8/2/16, Yue Shi Lai <ylai@users.sourceforge.net> wrote:
>> - integrated matrix decoder (probably better suited as a separate filter)
> 
> This one does what?

This is an implementation of the steering or active matrix surround
decoder (e.g. Quadraphonic or Dolby Surround). Implemented are 2-to-4, 5
and 6 channels (the last one is to decode 5.1 into 7.1, either
consumer-type 4 rear/surround or SDDS downmix with 5 front channels).
Active matrix means that there is an active feed-back system suppressing
cross talk for point sources (e.g. Tate DES and ProLogic). I take the
statement from the users list
(https://ffmpeg.org/pipermail/ffmpeg-user/2013-May/015091.html) still
correct, there is no (even passive) matrix decoder in FFmpeg?

On a somewhat related matter: I was browsing through the matrix encoder
in libavresample/audio_mix_matrix.c, and possibly rediscovered the bug
in https://trac.ffmpeg.org/ticket/4175 . Also, the 5-channel coefficient
seems to disagrees with Dolby (see the notes I wrote at some point while
editing the Wikipedia section in
https://en.wikipedia.org/wiki/Talk:Dolby_Pro_Logic#Source_of_the_DPLII_encoding_matrix.3F).
I have a properly implemented encoder with a FIR Hilbert transformer
around, and since there is FFT now in FFmpeg, may investigate later if
#4175 can be addressed.

> There is already function that does accumulated multiplication IIRC no
> need to use intrinsic,
> i think is called fdsp->vector_fmac_scalar so use that instead of your
> scale_accumulate.
> See how its called in sofalizer filter: libavfilter/af_sofalizer.c
> 
> Similar to pthread usage there is internal wrapper which should be used.

I will include these together with other comments you may have.

> Can't filter be made so it load kemar data from file instead hardcoded
> into lavfi?

It is possible and I will try a modification in that regard.

Best wishes,

Yue Shi Lai
Michael Niedermayer Aug. 7, 2016, 12:08 a.m. UTC | #3
On Tue, Aug 02, 2016 at 01:57:45PM -0700, Yue Shi Lai wrote:
> On 08/02/2016 08:40 AM, Paul B Mahol wrote:
> > On 8/2/16, Yue Shi Lai <ylai@users.sourceforge.net> wrote:
> >> - integrated matrix decoder (probably better suited as a separate filter)
> > 
> > This one does what?
> 
> This is an implementation of the steering or active matrix surround
> decoder (e.g. Quadraphonic or Dolby Surround). Implemented are 2-to-4, 5
> and 6 channels (the last one is to decode 5.1 into 7.1, either
> consumer-type 4 rear/surround or SDDS downmix with 5 front channels).
> Active matrix means that there is an active feed-back system suppressing
> cross talk for point sources (e.g. Tate DES and ProLogic). I take the
> statement from the users list
> (https://ffmpeg.org/pipermail/ffmpeg-user/2013-May/015091.html) still
> correct, there is no (even passive) matrix decoder in FFmpeg?
> 

> On a somewhat related matter: I was browsing through the matrix encoder
> in libavresample/audio_mix_matrix.c, and possibly rediscovered the bug
> in https://trac.ffmpeg.org/ticket/4175 . Also, the 5-channel coefficient
> seems to disagrees with Dolby (see the notes I wrote at some point while
> editing the Wikipedia section in
> https://en.wikipedia.org/wiki/Talk:Dolby_Pro_Logic#Source_of_the_DPLII_encoding_matrix.3F).

is this issue also affecting libswresample ?
if so i would be very interrested in a patch fixing it or i can
try to look into it myself ...

thx


[...]
Carl Eugen Hoyos Aug. 8, 2016, 4:27 p.m. UTC | #4
2016-08-07 2:08 GMT+02:00 Michael Niedermayer <michael@niedermayer.cc>:
>> On a somewhat related matter: I was browsing through the matrix encoder
>> in libavresample/audio_mix_matrix.c, and possibly rediscovered the bug
>> in https://trac.ffmpeg.org/ticket/4175 . Also, the 5-channel coefficient
>> seems to disagrees with Dolby (see the notes I wrote at some point while
>> editing the Wikipedia section in
>> https://en.wikipedia.org/wiki/Talk:Dolby_Pro_Logic#Source_of_the_DPLII_encoding_matrix.3F).
>
> is this issue also affecting libswresample ?

The fact that users have reported several times that our Dolby downmix is not
correct / not perfect indicates that there is an issue affecting
libswresample, no?
https://trac.ffmpeg.org/ticket/3455
https://trac.ffmpeg.org/ticket/4175

Carl Eugen
Michael Niedermayer Aug. 8, 2016, 7:59 p.m. UTC | #5
On Mon, Aug 08, 2016 at 06:27:44PM +0200, Carl Eugen Hoyos wrote:
> 2016-08-07 2:08 GMT+02:00 Michael Niedermayer <michael@niedermayer.cc>:
> >> On a somewhat related matter: I was browsing through the matrix encoder
> >> in libavresample/audio_mix_matrix.c, and possibly rediscovered the bug
> >> in https://trac.ffmpeg.org/ticket/4175 . Also, the 5-channel coefficient
> >> seems to disagrees with Dolby (see the notes I wrote at some point while
> >> editing the Wikipedia section in
> >> https://en.wikipedia.org/wiki/Talk:Dolby_Pro_Logic#Source_of_the_DPLII_encoding_matrix.3F).
> >
> > is this issue also affecting libswresample ?
> 
> The fact that users have reported several times that our Dolby downmix is not
> correct / not perfect indicates that there is an issue affecting
> libswresample, no?

There are 2 things here.
first, some of the downmix requires a phase shift, there is no
implementation of that in either resampler.

the way i understood the mail here is that the coefficients themselfs
are wrong too, that should not really be in case of libswresample, but
of course a wrong reference might have been used or whatever

[...]
Carl Eugen Hoyos Aug. 8, 2016, 8:31 p.m. UTC | #6
Hi!

2016-08-08 21:59 GMT+02:00 Michael Niedermayer
> the way i understood the mail here is that the coefficients themselfs
> are wrong too, that should not really be in case of libswresample, but
> of course a wrong reference might have been used or whatever

Thanks for explaining, Carl Eugen
diff mbox

Patch

From 3143c29a72cbc993272ada9ccd1019185d3bb4f8 Mon Sep 17 00:00:00 2001
From: Yue Shi Lai <ylai@users.sourceforge.net>
Date: Tue, 2 Aug 2016 06:15:32 -0700
Subject: [PATCH 1/2] HRTF filter ported from MPlayer [1/2]

---
 libavfilter/Makefile           |     1 +
 libavfilter/af_hrtf.c          |  3449 +++++++++++
 libavfilter/af_hrtf.h          |   280 +
 libavfilter/af_hrtf_fb.c       |   834 +++
 libavfilter/af_hrtf_mitkemar.c | 12296 +++++++++++++++++++++++++++++++++++++++
 libavfilter/af_hrtf_mitkemar.h |    58 +
 libavfilter/allfilters.c       |     1 +
 7 files changed, 16919 insertions(+)
 create mode 100644 libavfilter/af_hrtf.c
 create mode 100644 libavfilter/af_hrtf.h
 create mode 100644 libavfilter/af_hrtf_fb.c
 create mode 100644 libavfilter/af_hrtf_mitkemar.c
 create mode 100644 libavfilter/af_hrtf_mitkemar.h

diff --git a/libavfilter/Makefile b/libavfilter/Makefile
index 65a831e..3682d91 100644
--- a/libavfilter/Makefile
+++ b/libavfilter/Makefile
@@ -87,6 +87,7 @@  OBJS-$(CONFIG_EXTRASTEREO_FILTER)            += af_extrastereo.o
 OBJS-$(CONFIG_FIREQUALIZER_FILTER)           += af_firequalizer.o
 OBJS-$(CONFIG_FLANGER_FILTER)                += af_flanger.o generate_wave_table.o
 OBJS-$(CONFIG_HIGHPASS_FILTER)               += af_biquads.o
+OBJS-$(CONFIG_HRTF_FILTER)                   += af_hrtf.o af_hrtf_mitkemar.o af_hrtf_fb.o
 OBJS-$(CONFIG_JOIN_FILTER)                   += af_join.o
 OBJS-$(CONFIG_LADSPA_FILTER)                 += af_ladspa.o
 OBJS-$(CONFIG_LOUDNORM_FILTER)               += af_loudnorm.o
diff --git a/libavfilter/af_hrtf.c b/libavfilter/af_hrtf.c
new file mode 100644
index 0000000..8e38066
--- /dev/null
+++ b/libavfilter/af_hrtf.c
@@ -0,0 +1,3449 @@ 
+/*
+ * Copyright (C) 2010-2016 Yue Shi Lai
+ * Author : Yue Shi Lai < ylai at users dot sourceforge dot net >
+ *
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include "libavutil/channel_layout.h"
+#include "libavutil/opt.h"
+#include "avfilter.h"
+#include "audio.h"
+#include "formats.h"
+
+#include "af_hrtf.h"
+#include "af_hrtf_mitkemar.h"
+
+#include <unistd.h>
+#include <float.h>
+#undef HAVE_PTHREADS
+#ifdef HAVE_PTHREADS
+#include <pthread.h>
+#endif /* HAVE_PTHREADS */
+
+struct room_s {
+    double size[3];
+    unsigned int material[NSURFACE];
+    float rt_60;
+    /* Scaling to covert the ideal RT_60 into the effective RT_60
+       value for the FDN's g vector, in order to result an RT_60(T_30)
+       = ideal RT_60. This value can be determined using -af
+       hrtf=hrtfscale=0:iterate. */
+    float fdn_rt_60_correction[6];
+    unsigned int speaker_placement;
+    float speaker_radius;
+};
+
+struct limiter_s
+{
+    double attack_inverse_sample;
+    double release_inverse_sample;
+    double gain;
+    double gain_target;
+    double gain_rate;
+    double amplitude_max;
+};
+
+typedef struct HRTFContext {
+    const AVClass *class;
+
+    int cpu_flags;
+
+    /**** IIR delay lines and bookkeeping ****/
+    /* These members must be properly aligned for SIMD */
+    float (*er_amplitude_packed)[ER_BLOCK_LENGTH][NBAND];
+    float (*iir_delay_in)[NBIQUAD][2 * NBAND];
+    float (*iir_delay_out)[NBIQUAD][2 * NBAND];
+
+    /**** FIR delay lines and bookkeeping ****/
+    float er_delay[NCHANNEL][2 * DELAY_LINE_LENGTH];
+    size_t er_fir_ntap[NBAND][2][NCHANNEL];
+    size_t *er_fir_delay[NBAND][2][NCHANNEL];
+    float *er_fir_amplitude[NBAND][2][NCHANNEL];
+    size_t er_offset;
+    float er_amplitude[NBAND][2][ER_BLOCK_LENGTH];
+
+    /**** CFDN delay lines and bookkeeping ****/
+    float lr_delay[2][FDN_ORDER][2 * DELAY_LINE_LENGTH];
+    float rt_60;
+    float fdn_rt_60_correction;
+    float er_end_factor;
+    size_t er_end;
+    size_t lr_base_offset;
+    float lr_gain;
+    const size_t *lr_cfdn_m;
+    float lr_cfdn_g[FDN_ORDER];
+    size_t lr_offset;
+
+    /**** Threading ****/
+    unsigned int nthread;
+#ifdef HAVE_PTHREADS
+    pthread_attr_t thread_attr;
+#endif /* HAVE_PTHREADS */
+
+    /**** Filter model control switches ****/
+
+    /** Boolean switch whether decoding information needs to be
+        printed */
+    int print_flag;
+    size_t block_count;
+    float sampling_rate;
+    int free_field;
+    unsigned int hrtf_order;
+    float hrtf_scale;
+    size_t sample_count;
+    size_t ninput_channel;
+    int limiter;
+    int initialized;
+    int check_room;
+
+    /**** Geometry ****/
+    const struct room_s *room;
+    float room_size[NDIMENSION];
+    float reference_radius;
+    unsigned int material[NSURFACE];
+    float absorption[NSURFACE][NBAND];
+    float listener_position[NDIMENSION];
+    int wall_mounted;
+    unsigned int nlfe;
+    float speaker_position[NCHANNEL][NDIMENSION];
+    float speaker_direction[NCHANNEL][NDIMENSION];
+    float speaker_gain[NCHANNEL];
+
+    /**** Trims and limiter ****/
+    float output_gain;
+    float output_gain_db;
+    struct limiter_s limiter_output;
+
+    /**** Tests ****/
+    int iterate;
+
+    /**** Run-time computed, intermediate variables ****/
+    const float (*fb_biquad)[4 * NBAND];
+    const float *fb_base_delay;
+    float fb_base_delay_max;
+    float fb_weight_square[NBAND];
+    size_t delay_lookup[DELAY_LINE_LENGTH];
+    float mean_hrtf[NBAND];
+
+} HRTFContext
+#ifdef HAVE_SSE
+__attribute__ ((aligned(16)))
+#endif /* HAVE_SSE */
+;
+
+/*******************************************************************/
+
+/**** ROOM MODELS **************************************************/
+
+/*
+ * =================================================
+ * No.  Volume (m^3)  RT_60  Description
+ * -------------------------------------------------
+ * 1    90            auto   small ITU
+ * 2    300           auto   large ITU
+ * 3    1700          auto   surround editing studio
+ * 4    5500          auto   large cinema
+ * 5    25000         auto   "65mm 8-perf" cinema
+ * =================================================
+ */
+
+/*
+ * The small rooms are selected based on ITU-R BS.1116-1 constraints
+ * and low-frequency modal spacing. The method used here is identical
+ * to R. Walker, "Low-frequency room responses: Part 1 - Background
+ * and qualitative considerations", BBC Report No. RD 1992/8, URL:
+ * http://www.bbc.co.uk/rd/pubs/reports/1990s/reports1992.shtml , but
+ * calculated to much higher precision.
+ */
+
+/* The smallest room satisfying ITU-R BS.1116-1, Methods for the
+   Subjective Assessment of Small Impairments in Audio Systems
+   Including Multichannel Sound Systems (ITU, Geneva, 1997). */
+static const struct room_s room_itu_small = {
+    /* Volume (m^3), ratio length/height, ratio width/height */
+    { 89.94236720, 2.95, 2.681818182 },
+    /* Wall material, with MATERIAL_SOLVER describing a material with
+       flat reflectivity with respect to the frequency, and "solves"
+       to the appropriate room RT_60. */
+    { MATERIAL_SOLVER, MATERIAL_SOLVER, MATERIAL_SOLVER,
+      MATERIAL_SOLVER },
+    /* RT_60, with NAN meaning that is is set to the default value
+       according to the room RT_60 model */
+    NAN,
+    /* RT_60 correction factor to obtain the precise RT_60(T_30),
+       while taking early reflection into account */
+    {
+        0.963214F, /* 16 kHz */
+        0.963214F, /* 22.05 kHz */
+        0.963214F, /* 32 kHz */
+        0.963214F, /* 44.1 kHz */
+        0.963214F, /* 48 kHz */
+        0.963214F  /* 96 kHz */
+    },
+    /* Speaker placement */
+    SPEAKER_PLACEMENT_RADIAL,
+    /* Speaker reference radius for radial placement */
+    2.0F
+};
+
+/* The largest room that satisfies ITU-R BS.1116-1. */
+static const struct room_s room_itu_large = {
+    /* Volume (m^3), ratio length/height, ratio width/height */
+    { 299.9999695F, 2.872276668, 2.355233696 },
+    /* Wall material, with MATERIAL_SOLVER describing a material with
+       flat reflectivity with respect to the frequency, and "solves"
+       to the appropriate room RT_60. */
+    { MATERIAL_SOLVER, MATERIAL_SOLVER, MATERIAL_SOLVER,
+      MATERIAL_SOLVER },
+    /* RT_60, with NAN meaning that is is set to the default value
+       according to the room RT_60 model */
+    NAN,
+    /* RT_60 correction factor to obtain the precise RT_60(T_30),
+       while taking early reflection into account */
+    {
+        0.963214F, /* 16 kHz */
+        0.963214F, /* 22.05 kHz */
+        0.963214F, /* 32 kHz */
+        0.963214F, /* 44.1 kHz */
+        0.963214F, /* 48 kHz */
+        0.963214F  /* 96 kHz */
+    },
+    /* Speaker placement */
+    SPEAKER_PLACEMENT_RADIAL,
+    /* Speaker reference radius for radial placement */
+    3.0F
+};
+
+/* The smallest room with radial speaker placement that satisfies the
+   Dolby Studio Approval Requirements, and ITU-R BS.1116-1 with the
+   exception for the room volume. */
+static const struct room_s room_studio_small = {
+    { 1701.505547, 2.119682405, 1.467204269 },
+    { MATERIAL_SOLVER, MATERIAL_SOLVER, MATERIAL_SOLVER,
+      MATERIAL_SOLVER },
+    NAN,
+    {
+        1.031792F,
+        1.031792F,
+        1.031792F,
+        1.031792F,
+        1.031792F,
+        1.031792F
+    },
+    SPEAKER_PLACEMENT_RADIAL,
+    5.0F
+};
+
+/* Room that approximately corresponds to the largest existing IMAX
+   theaters */
+static const struct room_s room_cinema_medium = {
+    { 5500.0, 2.30, 1.73 },
+    { MATERIAL_SOLVER, MATERIAL_SOLVER, MATERIAL_SOLVER,
+      MATERIAL_SOLVER },
+    /* Use the lower bound to prevent dialog intelligibility loss.
+       This is the upward rounded single precision value. */
+    0.5838314295F,
+    {
+        1.004658F,
+        1.004658F,
+        1.004658F,
+        1.004658F,
+        1.004658F,
+        1.004658F
+    },
+    SPEAKER_PLACEMENT_WALL_MOUNTED,
+    0.0F
+};
+
+/* Room that approximately corresponds to the largest existing IMAX
+   theaters */
+static const struct room_s room_cinema_large = {
+    //{ 25000.0, 2.113174243, 1.466988367 },
+    { 25000.0, 1.73, 2.30 },
+    { MATERIAL_SOLVER, MATERIAL_SOLVER, MATERIAL_SOLVER,
+      MATERIAL_SOLVER },
+    /* Use the lower bound to prevent dialog intelligibility loss.
+       This (slightly larger) value is corrected for rounding error
+       inside the solver. */
+    1.023013949F,
+    {
+        1.004658F,
+        1.004658F,
+        1.004658F,
+        1.004658F,
+        1.004658F,
+        1.004658F
+    },
+    SPEAKER_PLACEMENT_WALL_MOUNTED,
+    0.0F
+};
+
+/**** EARLY REFLECTION MODEL ***************************************/
+
+static inline int length_to_delay(float length, float sampling_rate)
+{
+    return (int)rintf(length * (sampling_rate / SPEED_OF_SOUND));
+}
+
+static inline void
+apply_amplitude_delay(float *amplitude, int *delay,
+                      const float *system_amplitude,
+                      const int *system_delay)
+{
+    size_t i;
+
+    for (i = 0; i < NBAND; i++) {
+        amplitude[i] *= system_amplitude[i];
+        delay[i] += system_delay[i];
+    }
+}
+
+static inline void
+apply_surface_absorption(float *amplitude, const float *absorption,
+                         int nreflection)
+{
+    size_t i;
+
+    for (i = 0; i < NBAND; i++) {
+        if (nreflection != 0) {
+            const float transmission = 1 - absorption[i];
+
+            switch (nreflection) {
+            case 0:
+                break;
+            case 1:
+                amplitude[i] *= transmission;
+                break;
+            case 2:
+                amplitude[i] *= transmission * transmission;
+                break;
+            case 3:
+                amplitude[i] *= transmission * transmission *
+                    transmission;
+                break;
+            case 4:
+                {
+                    const float transmission_square =
+                        transmission * transmission;
+
+                    amplitude[i] *= transmission_square *
+                        transmission_square;
+                }
+                break;
+            default:
+                amplitude[i] *= powf(transmission, nreflection);
+            }
+        }
+    }
+}
+
+static void apply_air_absorption(float *amplitude, float distance)
+{
+    size_t i;
+
+    for (i = 0; i < NBAND; i++) {
+        amplitude[i] *=
+            expf(air_attenuation_coefficient[i] * distance);
+    }
+}
+
+static inline void apply_delay(int *delay, const int system_delay)
+{
+    size_t i;
+
+    for (i = 0; i < NBAND; i++) {
+        delay[i] += system_delay;
+    }
+}
+
+static inline void
+rectangular_to_spherical_parity(float *azimuth, float *elevation,
+                                const float x[NDIMENSION],
+                                int y_parity)
+{
+    const float transverse = sqrtf(x[0] * x[0] + x[1] * x[1]);
+
+    *elevation = atan2f(x[2], transverse);
+    *azimuth = atan2f(y_parity * x[1], x[0]);
+}
+
+static inline void spherical_to_rectangular(float x[], float radius,
+                                            float azimuth,
+                                            float elevation,
+                                            float height,
+                                            const float offset[])
+{
+#ifdef _GNU_SOURCE
+    sincosf(azimuth, &x[1], &x[0]);
+    x[0] *= radius;
+    x[1] *= radius;
+#else /* _GNU_SOURCE */
+    x[0] = radius * cosf(azimuth);
+    x[1] = radius * sinf(azimuth);
+#endif /* _GNU_SOURCE */
+    if (elevation == 0) {
+        x[2] = height;
+    }
+    else {
+#ifdef _GNU_SOURCE
+        float cosf_elevation;
+
+        sincosf(elevation, &x[2], &cosf_elevation);
+        x[0] *= cosf_elevation;
+        x[1] *= cosf_elevation;
+        x[2] = height + radius * x[2];
+#else /* _GNU_SOURCE */
+        const float cosf_elevation = cosf(elevation);
+
+        x[0] *= cosf_elevation;
+        x[1] *= cosf_elevation;
+        x[2] = height + radius * sinf(elevation);
+#endif /* _GNU_SOURCE */
+    }
+    if (offset) {
+        x[0] += offset[0];
+        x[1] += offset[1];
+    }
+}
+
+static inline void test_plane(float *radius, const float x[],
+                              const float room_size[], float height,
+                              const float offset[], size_t axis,
+                              int parity)
+{
+    const float t = parity * 0.5F * room_size[axis] -
+        (axis == 2 ? height - 0.5F * room_size[axis] : offset[axis]);
+    const float r = t / x[axis];
+
+    if (r > 0) {
+        *radius = FFMIN(*radius, r);
+    }
+}
+
+static inline void spherical_project(AVFilterContext *ctx,
+                                     float x[],
+                                     const float room_size[],
+                                     float azimuth, float elevation,
+                                     float height,
+                                     const float offset[],
+                                     int clip_z)
+{
+    static const float radius_no_intersection = 1e+7;
+    float radius = INFINITY;
+    size_t axis;
+
+    spherical_to_rectangular(x, 1, azimuth, elevation, 0, NULL);
+
+    if (clip_z) {
+        for (axis = 0; axis < 2; axis++) {
+            int parity;
+
+            for (parity = -1; parity <= 1; parity += 2) {
+                test_plane(&radius, x, room_size, height, offset,
+                           axis, parity);
+            }
+        }
+        if (radius > radius_no_intersection) {
+            av_log(ctx, AV_LOG_WARNING,
+                   "[hrtf] warning: no intersection for azimuth = "
+                   "%f, elevation = %f\n",
+                   azimuth, elevation);
+        }
+        spherical_to_rectangular(x, radius, azimuth, elevation,
+                                 height, offset);
+        x[2] = av_clipf(x[2], 0, room_size[2]);
+    }
+    else {
+        for (axis = 0; axis < 3; axis++) {
+            int parity;
+
+            for (parity = -1; parity <= 1; parity += 2) {
+                test_plane(&radius, x, room_size, height, offset,
+                           axis, parity);
+            }
+        }
+        if (radius > radius_no_intersection) {
+            av_log(ctx, AV_LOG_WARNING,
+                   "[hrtf] warning: no intersection for azimuth = "
+                   "%f, elevation = %f\n",
+                   azimuth, elevation);
+        }
+        spherical_to_rectangular(x, radius, azimuth, elevation,
+                                 height, offset);
+    }
+}
+
+static void apply_hrtf(AVFilterContext *ctx,
+                       float *amplitude, int *delay,
+                       const float runit[], size_t channel_out,
+                       float hrtf_scale,
+                       const float mean_hrtf[],
+                       const float fb_base_delay[],
+                       float fb_base_delay_max,
+                       float sampling_rate,
+                       unsigned int type)
+{
+    const float y_parity = channel_out == CHANNEL_L ? -1 : 1;
+    float hrtf_amplitude[NBAND];
+    const int *hrtf_delay;
+    float elevation;
+    float azimuth;
+    size_t i;
+
+    rectangular_to_spherical_parity(&azimuth, &elevation, runit,
+                                    y_parity);
+    hrtf_coeff_mit_kemar(ctx, hrtf_amplitude, &hrtf_delay,
+                         azimuth * (float)(180.0 / M_PI),
+                         elevation * (float)(180.0 / M_PI),
+                         hrtf_scale, mean_hrtf, sampling_rate, type);
+    apply_amplitude_delay(amplitude, delay, hrtf_amplitude,
+                          hrtf_delay);
+
+    for (i = 0; i < NBAND; i++) {
+        delay[i] += rintf(fb_base_delay_max - fb_base_delay[i]);
+        if (i < 4) {
+            delay[i] += NBIQUAD - NBIQUAD_LOW;
+        }
+    }
+}
+
+static inline float cartesian_norm(const float x[])
+{
+    return sqrtf(x[0] * x[0] + x[1] * x[1] + x[2] * x[2]);
+}
+
+static inline void relative_position(float r[], const float x[],
+                                     const float y[])
+{
+    size_t i;
+
+    for (i = 0; i < 3; i++) {
+        r[i] = y[i] - x[i];
+    }
+}
+
+static void create_er_order_1(AVFilterContext *ctx,
+                              float *amplitude, int *delay,
+                              float *initial_amplitude,
+                              const float r[], float r0_norm,
+                              const float absorption[][NBAND],
+                              const int nreflection[],
+                              size_t nsurface,
+                              unsigned int channel_out,
+                              float hrtf_scale,
+                              const float mean_hrtf[],
+                              const float fb_base_delay[],
+                              float fb_base_delay_max,
+                              float sampling_rate)
+{
+    const float d = cartesian_norm(r);
+    const float runit[NDIMENSION] = {-r[0] / d, -r[1] / d, -r[2] / d};
+    size_t i;
+
+    for (i = 0; i < NBAND; i++) {
+        amplitude[i] = initial_amplitude[i];
+        delay[i] = 0;
+    }
+
+    apply_delay(delay, length_to_delay(d - r0_norm, sampling_rate));
+    for (i = 0; i < nsurface; i++) {
+        apply_surface_absorption(amplitude, absorption[i],
+                                 nreflection[i]);
+    }
+    apply_air_absorption(amplitude, d);
+    apply_hrtf(ctx, amplitude, delay, runit, channel_out, hrtf_scale,
+               mean_hrtf, fb_base_delay, fb_base_delay_max,
+               sampling_rate, HRTF_COEFFICIENT_ORDER_1);
+}
+
+static inline float cos_azimuth(const float x[], const float y[])
+{
+    const double r2x = x[0] * x[0] + x[1] * x[1];
+    const double r2y = y[0] * y[0] + y[1] * y[1];
+
+    return (x[0] * y[0] + x[1] * y[1]) / sqrt(r2x * r2y);
+}
+
+static inline float cos_elevation(const float x[], const float y[])
+{
+    const double r2x = x[0] * x[0] + x[1] * x[1];
+    const double r2y = y[0] * y[0] + y[1] * y[1];
+
+    return (x[2] * y[2] + sqrt(r2x * r2y)) /
+        sqrt((r2x + x[2] * x[2]) * (r2y + y[2] * y[2]));
+}
+
+static inline float
+speaker_amplitude(float cos_azimuth, float cos_elevation, size_t band)
+{
+    /* Log-polar fits to Yamaha DSR215, factorized into
+       horizontal/vertical components */
+    static const float coeff[2][NBAND][7] = {
+        {
+            /* Horizontal */
+            { -2.07937, 1.47862, 0.635139, -0.209862, 0.194071,
+              -2.52153e-6, 0.0028237 },
+            { -3.77556, 2.8543, 1.99656, -0.956893, -0.058958,
+              -0.0000428263, -0.0382871 },
+            { -5.2425, 7.2954, -6.3897, -3.83646, 10.6834,
+              -0.00388427, 0.652099 },
+            { -11.5493, 7.32982, 7.68689, 0.0680187, -13.4993,
+              0.00867363, 2.98049 },
+            { -17.7195, 10.9909, 2.37807, 1.5753, 4.90252,
+              -0.00171284, -0.538584 },
+            { -18.3405, 11.8018, 5.10844, 2.12938, -6.25144,
+              0.00668599, 0.0132362 },
+            { -19.9355, 14.3688, 5.81379, 2.35586, -3.35158,
+              0.00185389, -0.541186 },
+            { -19.9995, 15.0881, 2.26298, 2.34767, 9.39127,
+              -0.0118725, 0.660664 }
+        },
+        {
+            /* Vertical */
+            { -2.04788, 1.33679, 0.685008, -0.10093, 0.0478843,
+              8.70338e-6, 0.00781244 },
+            { -4.32695, 1.81452, 2.34068, 0.0389031, 0.156627,
+              -0.0000236339, 0.0025827 },
+            { -11.3884, 4.03538, 5.29399, -0.476331, 3.22126,
+              -0.000929663, 0.095789 },
+            { -14.8208, 4.20207, -6.3531, 2.75001, 10.1021,
+              0.00387399, 1.22107 },
+            { -21.5888, 9.09035, 40.3081, 1.93095, -72.9317,
+              0.0507184, -1.82298 },
+            { -19.1797, 11.6013, -0.369448, 1.05542, 1.99795,
+              0.00498463, -0.574816 },
+            { -21.2463, 11.0993, 5.98599, 4.74791, -13.8304,
+              0.0158332, -0.526066 },
+            { -23.661, 15.3287, 9.67584, 3.63102, -15.5626,
+              0.0151662, -1.30996 }
+        }
+    };
+    const float sin_elevation =
+        sqrtf(FFMAX(0, 1 - cos_elevation * cos_elevation));
+    const float sin_azimuth =
+        sqrtf(FFMAX(0, 1 - cos_azimuth * cos_azimuth));
+    /* (u, v) is the elevation/azimuth rotated by pi/2 around the y
+       axis, where the speaker normal vector is aligned with z axis */
+    const float u = acosf(cos_elevation * cos_azimuth);
+    const float v = atan2f(cos_elevation * sin_azimuth,
+                           -sin_elevation);
+    /* Now the polar coordinate on the unit sphere gives an
+       interpolation where the discontinuity is facing -z */
+    const float cos_x[2] = { cosf(u * cosf(v)), cosf(u * sinf(v)) };
+    float gain_db = 0;
+    size_t i;
+
+    for (i = 0; i < 2; i++) {
+        const float x = acosf(cos_x[i]);
+
+        gain_db +=
+            coeff[i][band][0] +
+            (coeff[i][band][1] +
+             (coeff[i][band][2] +
+              (coeff[i][band][3] +
+               coeff[i][band][4] * cos_x[i]) * cos_x[i]) *
+             cos_x[i]) * cos_x[i] +
+            /* Two terms found by symbolic regression */
+            coeff[i][band][5] * cos_x[i] * sinhf(7.44F * cos_x[i]) +
+            coeff[i][band][6] * cos_x[i] * cosf(x * x);
+    }
+
+    return powf(10.0F, 0.05F * gain_db);
+}
+
+static inline int minus_one_power(int p)
+{
+    return 1 - ((p & 1) << 1);
+}
+
+struct er_s {
+    float amplitude[NBAND];
+    int delay;
+};
+
+static void generate_reflection(AVFilterContext *ctx,
+                                size_t channel_out,
+                                size_t channel_in,
+                                float distance_correction,
+                                HRTFContext *s)
+{
+    const size_t er_length =
+        FFMIN(ER_LENGTH_MAX, s->er_end + s->fb_base_delay_max);
+    int max_order = 8;
+    float (*er_amplitude)[NBAND];
+    float r0[NDIMENSION];
+    float r0_norm;
+    int i;
+
+    for (i = 0; i < 3; i++) {
+        const float order_needed = er_length /
+            length_to_delay(s->room_size[i], s->sampling_rate);
+
+        max_order = FFMAX(max_order, (int)ceilf(order_needed));
+    }
+
+    er_amplitude = av_calloc(er_length * NBAND, sizeof(float));
+    relative_position(r0, s->speaker_position[channel_in],
+                      s->listener_position);
+    r0_norm = cartesian_norm(r0);
+    for (i = -max_order; i <= max_order; i++) {
+        float x[NDIMENSION];
+        float dx[NDIMENSION];
+        int j;
+
+        x[0] = i * s->room_size[0] + minus_one_power(i) *
+            s->speaker_position[channel_in][0];
+        dx[0] = minus_one_power(i) *
+            s->speaker_direction[channel_in][0];
+        for (j = -max_order; j <= max_order; j++) {
+            int nreflection[NSURFACE];
+            int k;
+
+            x[1] = j * s->room_size[1] + minus_one_power(j) *
+                s->speaker_position[channel_in][1];
+            dx[1] = minus_one_power(j) *
+                s->speaker_direction[channel_in][1];
+            nreflection[SURFACE_WALL] =
+                (i >= 0 ? i : -i) +
+                (j >= 0 ? j / 2 : (1 - j) / 2);
+            nreflection[SURFACE_SCREEN] =
+                (j >= 0 ? (j - 1) / 2 : -j / 2);
+            for (k = -max_order; k <= max_order; k++) {
+                float r[NDIMENSION];
+                float r_norm;
+                float inverse_r;
+                float distance_gain;
+                float gain[NBAND];
+
+                float amplitude[NBAND];
+                int delay[NBAND];
+
+                size_t l;
+
+                x[2] = k * s->room_size[2] + minus_one_power(k) *
+                    (s->speaker_position[channel_in][2] -
+                     0.5F * s->room_size[2]) +
+                    0.5F * s->room_size[2];
+                dx[2] = minus_one_power(k) *
+                    s->speaker_direction[channel_in][2];
+                nreflection[SURFACE_FLOOR] =
+                    (k >= 0 ? k / 2 : (1 - k) / 2);
+                nreflection[SURFACE_CEILING] =
+                    (k >= 0 ? (k - 1) / 2 : -k / 2);
+                relative_position(r, x, s->listener_position);
+                r_norm = cartesian_norm(r);
+                inverse_r = s->reference_radius / r_norm;
+                distance_gain = s->speaker_gain[channel_in] *
+                    distance_correction * inverse_r;
+                for (l = 0; l < NBAND; l++) {
+                    gain[l] =  distance_gain *
+                        speaker_amplitude(cos_azimuth(r, dx),
+                                          cos_elevation(r, dx), l);
+                }
+                switch (s->hrtf_order) {
+                default:
+                    create_er_order_1(ctx, amplitude, delay, gain, r,
+                                      r0_norm,
+                                      (const float (*)[NBAND])
+                                      s->absorption, nreflection,
+                                      NSURFACE, channel_out,
+                                      s->hrtf_scale, s->mean_hrtf,
+                                      s->fb_base_delay,
+                                      s->fb_base_delay_max,
+                                      s->sampling_rate);
+                    for (l = 0; l < NBAND; l++) {
+                        if (delay[l] >= 0 && delay[l] < (int)er_length) {
+                            er_amplitude[delay[l]][l] +=
+                                amplitude[l];
+                        }
+                    }
+                }
+            }
+        }
+    }
+
+    for (i = 0; i < NBAND; i++) {
+        size_t ntap = s->er_fir_ntap[i][channel_out][channel_in];
+        size_t ner = 0;
+        size_t j;
+
+        for (j = 0; j < er_length; j++) {
+            if (er_amplitude[j][i] != 0) {
+                ner++;
+            }
+        }
+        s->er_fir_delay[i][channel_out][channel_in] =
+            av_realloc(s->er_fir_delay[i][channel_out][channel_in],
+                       (ntap + ner) * sizeof(size_t));
+        s->er_fir_amplitude[i][channel_out][channel_in] =
+            av_realloc(s->er_fir_amplitude[i][channel_out][channel_in],
+                       (ntap + ner) * sizeof(float));
+        for (j = 0; j < er_length - s->fb_base_delay[i]; j++) {
+            if (er_amplitude[j][i] != 0) {
+                s->er_fir_delay[i][channel_out][channel_in]
+                    [ntap] = j;
+                s->er_fir_amplitude[i][channel_out][channel_in]
+                    [ntap] =
+                    er_amplitude[j][i];
+                ntap++;
+            }
+        }
+        s->er_fir_ntap[i][channel_out][channel_in] = ntap;
+    }
+
+    av_free(er_amplitude);
+}
+
+/**
+ * Update with new signal in the channels
+ *
+ * @param s[in,out] filter internal data structure
+ * @param in[in] input signal
+ */
+static inline void update_channel(AVFilterContext *ctx,
+                                  HRTFContext *s, float **in,
+                                  size_t block_size, size_t nchannel)
+{
+    /* Layout of AF_CHANNEL_LAYOUT_6_1_A to the ALSA compatible L R Ls
+       Rs C LFE Cs channel order */
+    static const size_t layout_6_1_a[] = {
+        CHANNEL_L, CHANNEL_R, CHANNEL_C, CHANNEL_CLFE, CHANNEL_LS,
+        CHANNEL_RS, CHANNEL_CS
+    };
+    const size_t *layout;
+    size_t k;
+    size_t i;
+
+    switch (s->ninput_channel) {
+    /* The only 7 channel layout is AF_CHANNEL_LAYOUT_6_1_A, used by
+       FFmpeg's DTS decoder */
+    case 7:     layout = layout_6_1_a; break;
+    default:    layout = NULL;
+    }
+
+    k = s->er_offset;
+    for (i = 0; i < block_size; i++) {
+        if (layout != NULL) {
+            size_t j;
+
+            for (j = 0; j < NCHANNEL; j++) {
+                s->er_delay[j][k + DELAY_LINE_LENGTH] =
+                    s->er_delay[j][k] = 0;
+            }
+            for (j = 0; j < 7; j++) {
+                s->er_delay[layout[j]][k + DELAY_LINE_LENGTH] =
+                    s->er_delay[layout[j]][k] = (*in)[j];
+            }
+        }
+        else {
+            size_t j;
+
+            for (j = 0; j < s->ninput_channel; j++) {
+                s->er_delay[j][k + DELAY_LINE_LENGTH] =
+                    s->er_delay[j][k] = (*in)[j];
+            }
+            for (j = s->ninput_channel; j < NCHANNEL; j++) {
+                s->er_delay[j][k + DELAY_LINE_LENGTH] =
+                    s->er_delay[j][k] = 0;
+            }
+        }
+
+        /* Duplicate the LFE channel. A front and rear LFE channel is
+           used here, where the actual "LFE" channel is the rear and
+           the front LFE is fed into the C channel. This "LFE" channel
+           remains in the horizontal plane, and therefore does not
+           coincide with the (by ITU-R BS.1116-1) tilted Cs. Each
+           channel receive the proper LFE gain (+10 dB by default)
+           times -6 dB (since both signals are fully correlated). This
+           LFE speaker layout is described in T. Welti, "Subwoofers:
+           Optimum Number and Locations", URL:
+           http://www.harman.com/EN-US/OurCompany/
+           Technologyleadership/Pages/WhitePapers.aspx */
+        switch (s->nlfe) {
+        case 4:
+            s->er_delay[CHANNEL_LLFE][k + DELAY_LINE_LENGTH] =
+                s->er_delay[CHANNEL_CLFE][k + DELAY_LINE_LENGTH];
+            s->er_delay[CHANNEL_LLFE][k] =
+                s->er_delay[CHANNEL_CLFE][k];
+            s->er_delay[CHANNEL_RLFE][k + DELAY_LINE_LENGTH] =
+                s->er_delay[CHANNEL_CLFE][k + DELAY_LINE_LENGTH];
+            s->er_delay[CHANNEL_RLFE][k] =
+                s->er_delay[CHANNEL_CLFE][k];
+            // Fall through
+        case 2:
+            s->er_delay[CHANNEL_CSLFE][k + DELAY_LINE_LENGTH] =
+                s->er_delay[CHANNEL_CLFE][k + DELAY_LINE_LENGTH];
+            s->er_delay[CHANNEL_CSLFE][k] =
+                s->er_delay[CHANNEL_CLFE][k];
+            // Fall through
+        case 1:
+            break;
+        default:
+            av_log(ctx, AV_LOG_ERROR,
+                   "[hrtf] Invalid number of LFE (%u).\n",
+                   s->nlfe);
+        }
+
+        k = s->delay_lookup[k];
+        *in += nchannel;
+    }
+
+    k = s->er_offset;
+    for (i = 0; i < block_size; i++) {
+        k = s->delay_lookup[k];
+    }
+}
+
+/**** SPEAKER CONFIGURATION ****************************************/
+
+/* The L, R speakers are positioned at 45 degree angle. Note that THX
+   requres the horizontal viewing angle to be 26 degrees, SMPTE EG
+   18-1994, Design of Effective Cine Theaters (SMPTE, White Plains,
+   NY, 1994) requires 30 degrees for the farthest seat, while
+   recommending 36 degrees. */
+
+/* Projective ("wall-mounted") speaker positions */
+
+static inline void
+position_speaker_l_r_project(AVFilterContext *ctx,
+                             float position[][NDIMENSION],
+                             const float offset[],
+                             const float room_size[])
+{
+    spherical_project(ctx,
+                      position[CHANNEL_L], room_size,
+                      M_PI / 8.0, 0,
+                      REFERENCE_HEIGHT, offset, 0);
+    spherical_project(ctx,
+                      position[CHANNEL_R], room_size,
+                      -M_PI / 8.0, 0,
+                      REFERENCE_HEIGHT, offset, 0);
+}
+
+static inline void
+position_speaker_lh_rh_project(AVFilterContext *ctx,
+                               float position[][NDIMENSION],
+                               const float offset[],
+                               const float room_size[])
+{
+    spherical_project(ctx,
+                      position[CHANNEL_LH], room_size,
+                      M_PI / 4.0, M_PI / 4.0,
+                      REFERENCE_HEIGHT, offset, 1);
+    spherical_project(ctx,
+                      position[CHANNEL_RH], room_size,
+                      -M_PI / 4.0, M_PI / 4.0,
+                      REFERENCE_HEIGHT, offset, 1);
+}
+
+static inline void
+position_speaker_l_lc_rc_r_project(AVFilterContext *ctx,
+                                   float position[][NDIMENSION],
+                                   const float offset[],
+                                   const float room_size[])
+{
+    spherical_project(ctx,
+                      position[CHANNEL_L], room_size,
+                      11.0 * M_PI / 36.0, 0,
+                      REFERENCE_HEIGHT, offset, 0);
+    spherical_project(ctx,
+                      position[CHANNEL_LC], room_size,
+                      M_PI / 6.0, 0,
+                      REFERENCE_HEIGHT, offset, 0);
+    spherical_project(ctx,
+                      position[CHANNEL_RC], room_size,
+                      -M_PI / 6.0, 0,
+                      REFERENCE_HEIGHT, offset, 0);
+    spherical_project(ctx,
+                      position[CHANNEL_R], room_size,
+                      -11.0 * M_PI / 36.0, 0,
+                      REFERENCE_HEIGHT, offset, 0);
+}
+
+static inline void
+position_speaker_c_project(AVFilterContext *ctx,
+                           float position[][NDIMENSION],
+                           const float offset[],
+                           const float room_size[])
+{
+    spherical_project(ctx,
+                      position[CHANNEL_C], room_size,
+                      0, 0, REFERENCE_HEIGHT, offset, 0);
+}
+
+static inline void
+position_speaker_lfe_project(AVFilterContext *ctx,
+                             float position[][NDIMENSION],
+                             const float offset[],
+                             const float room_size[])
+{
+    spherical_project(ctx,
+                      position[CHANNEL_CLFE], room_size,
+                      0, 0,
+                      REFERENCE_HEIGHT, offset, 0);
+    spherical_project(ctx,
+                      position[CHANNEL_CSLFE], room_size,
+                      -M_PI, 0,
+                      REFERENCE_HEIGHT, offset, 0);
+    spherical_project(ctx,
+                      position[CHANNEL_LLFE], room_size,
+                      M_PI / 2.0, 0,
+                      REFERENCE_HEIGHT, offset, 0);
+    spherical_project(ctx,
+                      position[CHANNEL_RLFE], room_size,
+                      -M_PI / 2.0, 0,
+                      REFERENCE_HEIGHT, offset, 0);
+}
+
+static inline void
+position_speaker_5_1_project(AVFilterContext *ctx,
+                             float position[][NDIMENSION],
+                             const float offset[],
+                             const float room_size[],
+                             int layout_lc_rc)
+{
+    if (layout_lc_rc) {
+        position_speaker_l_lc_rc_r_project(ctx, position, offset,
+                                           room_size);
+    }
+    else {
+        position_speaker_l_r_project(ctx, position, offset,
+                                     room_size);
+    }
+    position_speaker_c_project(ctx, position, offset, room_size);
+    /* ITU-R BS.775-2, Multichannel Stereophonic Sound System With And
+       Without Accompanying Picture (ITU, Geneva, 2006), allows for
+       Ls, Rs, Lr, Rr placement between 100 and 120 degrees, and 0 to
+       +15 degrees in elevation (note that on p. 3, the height is >=
+       1.2 m, and the inclination *of the normal vector* is 0 to -15
+       degrees, i.e. the speaker is raised and downward facing).
+       Values chosen here are centered to that range. */
+    spherical_project(ctx,
+                      position[CHANNEL_LS], room_size,
+                      11.0 * M_PI / 18.0, M_PI / 24.0,
+                      REFERENCE_HEIGHT, offset, 1);
+    spherical_project(ctx,
+                      position[CHANNEL_RS], room_size,
+                      -11.0 * M_PI / 18.0, M_PI / 24.0,
+                      REFERENCE_HEIGHT, offset, 1);
+}
+
+static inline void
+position_speaker_cs_project(AVFilterContext *ctx,
+                            float position[][NDIMENSION],
+                            const float offset[],
+                            const float room_size[])
+{
+    spherical_project(ctx,
+                      position[CHANNEL_CS], room_size,
+                      -M_PI, M_PI / 24.0,
+                      REFERENCE_HEIGHT, offset, 1);
+}
+
+static inline void
+position_speaker_coh_project(AVFilterContext *ctx,
+                             float position[][NDIMENSION],
+                             const float offset[],
+                             const float room_size[])
+{
+    spherical_project(ctx,
+                      position[CHANNEL_COH], room_size,
+                      0, M_PI / 2.0, REFERENCE_HEIGHT, offset, 0);
+}
+
+static inline void
+position_speaker_7_1_project(AVFilterContext *ctx,
+                             float position[][NDIMENSION],
+                             const float offset[],
+                             const float room_size[],
+                             int layout_lc_rc)
+{
+    if (layout_lc_rc) {
+        position_speaker_l_lc_rc_r_project(ctx, position, offset,
+                                           room_size);
+    }
+    else {
+        position_speaker_l_r_project(ctx, position, offset,
+                                     room_size);
+    }
+    position_speaker_c_project(ctx, position, offset, room_size);
+    /* ITU-R BS 775-1 allows for Ls, Rs, Lr, Rr placement between 60
+       and 150 degrees. Values chosen here are the recommended DTS
+       angles, 90 and 150 degrees. */
+    spherical_project(ctx,
+                      position[CHANNEL_LS], room_size,
+                      M_PI / 2.0, M_PI / 24.0,
+                      REFERENCE_HEIGHT, offset, 1);
+    spherical_project(ctx,
+                      position[CHANNEL_RS], room_size,
+                      -M_PI / 2.0, M_PI / 24.0,
+                      REFERENCE_HEIGHT, offset, 1);
+    spherical_project(ctx,
+                      position[CHANNEL_LR], room_size,
+                      5.0 * M_PI / 6.0, M_PI / 24.0,
+                      REFERENCE_HEIGHT, offset, 1);
+    spherical_project(ctx,
+                      position[CHANNEL_RR], room_size,
+                      -5.0 * M_PI / 6.0, M_PI / 24.0,
+                      REFERENCE_HEIGHT, offset, 1);
+}
+
+/* Radial speaker positions */
+
+static inline void
+position_speaker_l_r_radial(float position[][NDIMENSION],
+                            const float offset[],
+                            float reference_radius)
+{
+    spherical_to_rectangular(position[CHANNEL_L], reference_radius,
+                             M_PI / 8.0, 0,
+                             REFERENCE_HEIGHT, offset);
+    spherical_to_rectangular(position[CHANNEL_R], reference_radius,
+                             -M_PI / 8.0, 0,
+                             REFERENCE_HEIGHT, offset);
+}
+
+static inline void
+position_speaker_lh_rh_radial(float position[][NDIMENSION],
+                              const float offset[],
+                              float reference_radius)
+{
+    spherical_to_rectangular(position[CHANNEL_LH], reference_radius,
+                             M_PI / 4.0, M_PI / 4.0,
+                             REFERENCE_HEIGHT, offset);
+    spherical_to_rectangular(position[CHANNEL_RH], reference_radius,
+                             -M_PI / 4.0, M_PI / 4.0,
+                             REFERENCE_HEIGHT, offset);
+}
+
+static inline void
+position_speaker_l_lc_rc_r_radial(float position[][NDIMENSION],
+                                  const float offset[],
+                                  float reference_radius)
+{
+    spherical_to_rectangular(position[CHANNEL_L], reference_radius,
+                             11.0 * M_PI / 36.0, 0,
+                             REFERENCE_HEIGHT, offset);
+    spherical_to_rectangular(position[CHANNEL_LC], reference_radius,
+                             M_PI / 6.0, 0,
+                             REFERENCE_HEIGHT, offset);
+    spherical_to_rectangular(position[CHANNEL_RC], reference_radius,
+                             -M_PI / 6.0, 0,
+                             REFERENCE_HEIGHT, offset);
+    spherical_to_rectangular(position[CHANNEL_R], reference_radius,
+                             -11.0 * M_PI / 36.0, 0,
+                             REFERENCE_HEIGHT, offset);
+}
+
+static inline void
+position_speaker_c_radial(float position[][NDIMENSION],
+                          const float offset[],
+                          float reference_radius)
+{
+    spherical_to_rectangular(position[CHANNEL_C], reference_radius,
+                             0, 0, REFERENCE_HEIGHT, offset);
+}
+
+static inline void
+position_speaker_5_1_radial(float position[][NDIMENSION],
+                            const float offset[],
+                            float reference_radius,
+                            int layout_lc_rc)
+{
+    if (layout_lc_rc) {
+        position_speaker_l_lc_rc_r_radial(position, offset,
+                                          reference_radius);
+    }
+    else {
+        position_speaker_l_r_radial(position, offset,
+                                    reference_radius);
+    }
+    position_speaker_c_radial(position, offset,
+                              reference_radius);
+    /* ITU-R BS 775-1 allows for Ls, Rs, Lr, Rr placement between 100
+       and 120 degrees. Value chosen here is centered to that
+       range. */
+    spherical_to_rectangular(position[CHANNEL_LS], reference_radius,
+                             11.0 * M_PI / 18.0, M_PI / 24.0,
+                             REFERENCE_HEIGHT, offset);
+    spherical_to_rectangular(position[CHANNEL_RS], reference_radius,
+                             -11.0 * M_PI / 18.0, M_PI / 24.0,
+                             REFERENCE_HEIGHT, offset);
+}
+
+static inline void
+position_speaker_cs_radial(float position[][NDIMENSION],
+                           const float offset[],
+                           float reference_radius)
+{
+    spherical_to_rectangular(position[CHANNEL_CS], reference_radius,
+                             -M_PI, M_PI / 24.0,
+                             REFERENCE_HEIGHT, offset);
+}
+
+static inline void
+position_speaker_7_1_radial(float position[][NDIMENSION],
+                            const float offset[],
+                            float reference_radius,
+                            int layout_lc_rc)
+{
+    if (layout_lc_rc) {
+        position_speaker_l_lc_rc_r_radial(position, offset,
+                                          reference_radius);
+    }
+    else {
+        position_speaker_l_r_radial(position, offset,
+                                    reference_radius);
+    }
+    position_speaker_c_radial(position, offset,
+                              reference_radius);
+    /* ITU-R BS 775-1 allows for Ls, Rs, Lr, Rr placement between 60
+       and 150 degrees. Values chosen here are the recommended DTS
+       angles, 90 and 150 degrees. */
+    spherical_to_rectangular(position[CHANNEL_LS], reference_radius,
+                             M_PI / 2.0, M_PI / 24.0,
+                             REFERENCE_HEIGHT, offset);
+    spherical_to_rectangular(position[CHANNEL_RS], reference_radius,
+                             -M_PI / 2.0, M_PI / 24.0,
+                             REFERENCE_HEIGHT, offset);
+    spherical_to_rectangular(position[CHANNEL_LR], reference_radius,
+                             5.0 * M_PI / 6.0, M_PI / 24.0,
+                             REFERENCE_HEIGHT, offset);
+    spherical_to_rectangular(position[CHANNEL_RR], reference_radius,
+                             -5.0 * M_PI / 6.0, M_PI / 24.0,
+                             REFERENCE_HEIGHT, offset);
+}
+
+static inline void
+position_speaker(AVFilterContext *ctx,
+                 float position[][NDIMENSION],
+                 const float offset[], float reference_radius,
+                 const float room_size[], int layout_7_1,
+                 int layout_lc_rc, int projective)
+{
+    size_t i;
+
+    for (i = 0; i < NCHANNEL; i++) {
+        position[i][0] = offset[0];
+        position[i][1] = offset[1];
+        position[i][2] = offset[2];
+    }
+    if (projective) {
+        if (layout_7_1) {
+            position_speaker_7_1_project(ctx, position, offset,
+                                         room_size, layout_lc_rc);
+        }
+        else {
+            position_speaker_5_1_project(ctx, position, offset,
+                                         room_size, layout_lc_rc);
+        }
+        position_speaker_cs_project(ctx, position, offset,
+                                    room_size);
+        position_speaker_lh_rh_project(ctx, position, offset,
+                                       room_size);
+        position_speaker_lfe_project(ctx, position, offset,
+                                     room_size);
+        position_speaker_coh_project(ctx, position, offset,
+                                     room_size);
+    }
+    else {
+        float room_size_reduced[3];
+
+        room_size_reduced[0] =
+            FFMAX(FFMIN(reference_radius, room_size[0]),
+                  room_size[0] - 2.0F);
+        room_size_reduced[1] =
+            FFMAX(FFMIN(reference_radius, room_size[1]),
+                  room_size[1] - 2.0F);
+        room_size_reduced[2] =
+            FFMAX(FFMIN(REFERENCE_HEIGHT + 1.0F, room_size[2]),
+                  room_size[2] - 1.0F);
+
+        if (layout_7_1) {
+            position_speaker_7_1_radial(position, offset,
+                                        reference_radius,
+                                        layout_lc_rc);
+        }
+        else {
+            position_speaker_5_1_radial(position, offset,
+                                        reference_radius,
+                                        layout_lc_rc);
+        }
+        position_speaker_cs_radial(position, offset,
+                                   reference_radius);
+        position_speaker_lh_rh_radial(position, offset,
+                                      reference_radius);
+        position_speaker_lfe_project(ctx, position, offset,
+                                     room_size_reduced);
+        position_speaker_coh_project(ctx, position, offset,
+                                     room_size_reduced);
+    }
+}
+
+/**** LIMITER ******************************************************/
+
+static struct limiter_s limiter_init(double attack_time,
+                                     double release_time,
+                                     double sampling_rate)
+{
+    struct limiter_s l;
+
+    l.attack_inverse_sample = 1.0 / (attack_time * sampling_rate);
+    l.release_inverse_sample = 1.0 / (release_time * sampling_rate);
+    l.gain = 1.0;
+    l.gain_target = 1.0;
+    l.gain_rate = 1.0;
+    l.amplitude_max = 0.0;
+
+    return l;
+}
+
+static double limiter_update(struct limiter_s *l, double amplitude,
+                             double limit)
+{
+    double amplitude_gain = amplitude * l->gain;
+
+    l->amplitude_max = FFMAX(l->amplitude_max, amplitude);
+
+    if(amplitude_gain > limit) {
+        double gain_target = limit / amplitude;
+        double gain_rate = pow(l->gain_target / l->gain,
+                               l->attack_inverse_sample);
+
+        l->gain_target = FFMIN(l->gain_target, gain_target);
+        l->gain_rate = FFMIN(l->gain_rate, gain_rate);
+    }
+
+    l->gain *= l->gain_rate;
+
+    if((l->gain_rate < 1.0 && l->gain < l->gain_target) ||
+       (l->gain_rate > 1.0 && l->gain > l->gain_target)) {
+        l->gain_rate = 1.0;
+        l->gain = l->gain_target;
+    }
+
+    if(amplitude_gain < limit && l->gain_rate == 1.0) {
+        l->gain_target = 1.0;
+        l->gain_rate = pow(l->gain_target / l->gain,
+                           l->release_inverse_sample);
+    }
+
+    return l->gain;
+}
+
+/**** FILTERING ****************************************************/
+
+/* The hybrid FIR/IIR filter strategy takes advantage of the fact that
+   the convolution of a FIR kernel can be calculated by correlation of
+   the reversed kernel, therefore the convolution with a sparse kernel
+   can be efficiently calculated by multiple (in-place) vectorial
+   accumulation (which itself can be vectorized like memcpy()). */
+
+static inline void reverse_array(float x[], size_t n)
+{
+    float *left;
+    float *right;
+
+    for (left = x, right = x + n - 1; left < right;
+         left++, right--) {
+        const float left_copy = *left;
+
+        *left = *right;
+        *right = left_copy;
+    }
+}
+
+static inline void scale_accumulate(float accumulator[], float scale,
+                                    const float x[], size_t n)
+{
+    size_t i;
+
+    for (i = 0; i < n; i++) {
+        accumulator[i] += scale * x[i];
+    }
+}
+
+static inline void scale_accumulate_sse(float *accumulator,
+                                        float scale, float *x,
+                                        size_t n)
+{
+    size_t i;
+
+    if (n >= 32) {
+        size_t unaligned = (4 - ((size_t)accumulator >> 2)) & 3;
+        size_t count;
+
+        if (unaligned != 0) {
+            for (i = 0; i < unaligned; i++) {
+                accumulator[i] += scale * x[i];
+            }
+            accumulator += unaligned;
+            x += unaligned;
+            n -= unaligned;
+        }
+        count = n >> 4;
+        if (((size_t)x & 15) == 0) {
+            __asm__ __volatile__ (
+                "movss  %0, %%xmm0\n\t"
+                "shufps $0, %%xmm0, %%xmm0\n"
+                "1:\n\t"
+                "movaps (%1), %%xmm1\n\t"
+                "movaps 16(%1), %%xmm2\n\t"
+                "movaps 32(%1), %%xmm3\n\t"
+                "movaps 48(%1), %%xmm4\n\t"
+                "mulps  %%xmm0, %%xmm1\n\t"
+                "mulps  %%xmm0, %%xmm2\n\t"
+                "mulps  %%xmm0, %%xmm3\n\t"
+                "mulps  %%xmm0, %%xmm4\n\t"
+                "addps  (%2), %%xmm1\n\t"
+                "addps  16(%2), %%xmm2\n\t"
+                "addps  32(%2), %%xmm3\n\t"
+                "addps  48(%2), %%xmm4\n\t"
+                "movaps %%xmm1, (%2)\n\t"
+                "movaps %%xmm2, 16(%2)\n\t"
+                "movaps %%xmm3, 32(%2)\n\t"
+                "movaps %%xmm4, 48(%2)\n\t"
+#ifdef __x86_64__
+                "addq   $64, %1\n\t"
+                "addq   $64, %2\n\t"
+                "decq   %3\n\t"
+#else /* __x86_64__ */
+                "addl   $64, %1\n\t"
+                "addl   $64, %2\n\t"
+                "decl   %3\n\t"
+#endif /* __x86_64__ */
+                "jnz    1b"
+                : "+m" (scale), "=&g" (x), "=&g" (accumulator)
+                : "g" (count), "1" (x), "2" (accumulator)
+                : "%xmm0", "%xmm1", "%xmm2", "%xmm3", "%xmm4");
+        }
+        else {
+            __asm__ __volatile__ (
+                "movss  %0, %%xmm0\n\t"
+                "shufps $0, %%xmm0, %%xmm0\n"
+                "1:\n\t"
+                "movups (%1), %%xmm1\n\t"
+                "movups 16(%1), %%xmm2\n\t"
+                "movups 32(%1), %%xmm3\n\t"
+                "movups 48(%1), %%xmm4\n\t"
+                "mulps  %%xmm0, %%xmm1\n\t"
+                "mulps  %%xmm0, %%xmm2\n\t"
+                "mulps  %%xmm0, %%xmm3\n\t"
+                "mulps  %%xmm0, %%xmm4\n\t"
+                "addps  (%2), %%xmm1\n\t"
+                "addps  16(%2), %%xmm2\n\t"
+                "addps  32(%2), %%xmm3\n\t"
+                "addps  48(%2), %%xmm4\n\t"
+                "movaps %%xmm1, (%2)\n\t"
+                "movaps %%xmm2, 16(%2)\n\t"
+                "movaps %%xmm3, 32(%2)\n\t"
+                "movaps %%xmm4, 48(%2)\n\t"
+#ifdef __x86_64__
+                "addq   $64, %1\n\t"
+                "addq   $64, %2\n\t"
+                "decq   %3\n\t"
+#else /* __x86_64__ */
+                "addl   $64, %1\n\t"
+                "addl   $64, %2\n\t"
+                "decl   %3\n\t"
+#endif /* __x86_64__ */
+                "jnz    1b"
+                : "+m" (scale), "=&g" (x), "=&g" (accumulator)
+                : "g" (count), "1" (x), "2" (accumulator)
+                : "%xmm0", "%xmm1", "%xmm2", "%xmm3", "%xmm4");
+        }
+        n &= 15;
+    }
+    for (i = 0; i < n; i++) {
+        accumulator[i] += scale * x[i];
+    }
+}
+
+static void
+filter_sparse_fir(float *out, size_t *delay, float *amplitude,
+                  size_t ntap, float *delay_line, size_t k,
+                  size_t block_size, int cpu_flags)
+{
+    const size_t size_rest = k + 1;
+    const long index_start = size_rest - block_size;
+
+    /*
+     * The following algorithm calculates the convolution out[i] =
+     * sum_k h[k] x[i - k] as the inverted correlation out[n - i] =
+     * sum_k h[k] x[n - i + k], which allows it to be implemented as a
+     * vectorizable scale-accumulate of the dense x[].
+     */
+
+#ifdef HAVE_SSE
+    if ((cpu_flags & AV_CPU_FLAG_SSE) != 0) {
+        if (index_start >= 0) {
+            float *start = delay_line + index_start;
+            size_t i;
+
+            for (i = 0; i < ntap; i++) {
+                scale_accumulate_sse(out, amplitude[i],
+                                     start + delay[i], block_size);
+            }
+        }
+        else {
+            float *start_wrap = delay_line + index_start +
+                DELAY_LINE_LENGTH;
+            float *out_rest = out - index_start;
+            size_t size_wrap = -index_start;
+            size_t i;
+
+            for (i = 0; i < ntap; i++) {
+                scale_accumulate_sse(out, amplitude[i],
+                                     start_wrap + delay[i],
+                                     size_wrap);
+                scale_accumulate_sse(out_rest, amplitude[i],
+                                     delay_line + delay[i],
+                                     size_rest);
+            }
+        }
+    }
+    else
+#endif /* HAVE_SSE */
+    {
+        if (index_start >= 0) {
+            float *start = delay_line + index_start;
+            size_t i;
+
+            for (i = 0; i < ntap; i++) {
+                scale_accumulate(out, amplitude[i],
+                                 start + delay[i], block_size);
+            }
+        }
+        else {
+            float *start_wrap = delay_line + index_start +
+                DELAY_LINE_LENGTH;
+            float *out_rest = out - index_start;
+            size_t size_wrap = -index_start;
+            size_t i;
+
+            for (i = 0; i < ntap; i++) {
+                scale_accumulate(out, amplitude[i],
+                                 start_wrap + delay[i],
+                                 size_wrap);
+                scale_accumulate(out_rest, amplitude[i],
+                                 delay_line + delay[i],
+                                 size_rest);
+            }
+        }
+    }
+}
+
+
+static void filter_biquad_c(float **x, float delay_in[],
+                            float delay_out[], float coefficient[],
+                            size_t block_size, size_t stride)
+{
+    size_t i;
+
+    for (i = 0; i < (block_size >> 1); i++) {
+        float y;
+
+        y = **x + delay_in[0] * coefficient[0] +
+            delay_in[stride] * coefficient[stride] -
+            delay_out[0] * coefficient[2 * stride] -
+            delay_out[stride] * coefficient[3 * stride];
+        delay_in[stride] = **x;
+        **x = delay_out[stride] = y;
+        *x += stride;
+        y = **x + delay_in[stride] * coefficient[0] +
+            delay_in[0] * coefficient[stride] -
+            delay_out[stride] * coefficient[2 * stride] -
+            delay_out[0] * coefficient[3 * stride];
+        delay_in[0] = **x;
+        **x = delay_out[0] = y;
+        *x += stride;
+    }
+    if ((block_size & 1) != 0) {
+        const float y = **x +
+            delay_in[0] * coefficient[0] +
+            delay_in[stride] * coefficient[stride] -
+            delay_out[0] * coefficient[2 * stride] -
+            delay_out[stride] * coefficient[3 * stride];
+        /* Partial swap */
+        delay_in[stride] = delay_in[0];
+        delay_out[stride] = delay_out[0];
+        delay_in[0] = **x;
+        **x = delay_out[0] = y;
+        *x += stride;
+    }
+}
+
+#if defined(__x86_64__) && defined(HAVE_SSE)
+static inline void
+filter_biquad_sse(float **x, float *delay_in, float *delay_out,
+                  float *coefficient, size_t block_size,
+                  size_t stride)
+{
+    float *px = *x;
+    size_t stride_4 = stride * sizeof(float);
+    size_t loop;
+
+    __asm__ (
+        /* Load the coefficients into %xmm4 .. %xmm7 */
+        "movaps %0, %%xmm4\n\t"
+        "movaps %1, %%xmm5\n\t"
+        "movaps %2, %%xmm6\n\t"
+        "movaps %3, %%xmm7\n\t"
+        : "+m" (coefficient[0]),
+          "+m" (coefficient[stride]),
+          "+m" (coefficient[2 * stride]),
+          "+m" (coefficient[3 * stride])
+        :
+        : "%xmm1", "%xmm0", "%xmm3", "%xmm2",
+          "%xmm4", "%xmm5", "%xmm6", "%xmm7");
+    __asm__ (
+        /* Load the delay lines into %xmm0 .. %xmm3 */
+        "movaps %0, %%xmm0\n\t"
+        "movaps %1, %%xmm1\n\t"
+        "movaps %2, %%xmm2\n\t"
+        "movaps %3, %%xmm3\n\t"
+        /* The common index (j : j + vl - 1 : 1) is suppressed
+           below. */
+        /* Start with:
+           %xmm0 = x[i - 1]
+           %xmm1 = x[i - 2]
+           %xmm2 = y[i - 1]
+           %xmm3 = y[i - 2]
+           %xmm4 = coefficient[0]
+           %xmm5 = coefficient[1]
+           %xmm6 = coefficient[2]
+           %xmm7 = coefficient[3] */
+        /* Loop initialization */
+        "mov    %7, %5\n\t"
+        "shr    $1, %5\n"
+        "1:\n\t"
+        /* Evaluate %xmm1 = coefficient[1] * x[i - 2] - coefficient[3]
+           * y[i - 2] to free one register. */
+        "mulps  %%xmm5, %%xmm1\n\t"
+        "mulps  %%xmm7, %%xmm3\n\t"
+        "subps  %%xmm3, %%xmm1\n\t"
+        /* Note: %xmm3 is now free */
+        /* Evaluate %xmm3 = coefficient[1] * x[i - 1] */
+        "movaps %%xmm0, %%xmm3\n\t"
+        "mulps  %%xmm4, %%xmm3\n\t"
+        /* Accumulate in %xmm3 (we have to make the %xmm1 <-> %xmm3
+           register exchage here, since the other remaining
+           subtraction is not symmetric) */
+        "addps  %%xmm1, %%xmm3\n\t"
+        /* Note: %xmm1 is now free */
+        /* Now: %xmm3 = coefficient[0] * x[i - 1] + coefficient[1] *
+           x[i - 2] - coefficient[3] * y[i - 2] */
+        /* Evaluate %xmm1 = coefficient[2] * y[i - 1] */
+        "movaps %%xmm2, %%xmm1\n\t"
+        "mulps  %%xmm6, %%xmm1\n\t"
+        "subps  %%xmm1, %%xmm3\n\t"
+        /* Now: %xmm3 = coefficient[0] * x[i - 1] + coefficient[1] *
+           x[i - 2] - coefficient[2] * y[i - 1] - coefficient[3] * y[i
+           - 2] */
+        /* Load x[i] into %xmm1 */
+        "movaps (%4), %%xmm1\n\t"
+        "addps  %%xmm1, %%xmm3\n\t"
+        /* Now: %xmm3 = x[i] + coefficient[0] * x[i - 1] +
+           coefficient[1] * x[i - 2] - coefficient[2] * y[i - 1] -
+           coefficient[3] * y[i - 2] */
+        /* Store %xmm3 = y[i] */
+        "movaps %%xmm3, (%4)\n\t"
+        /* Now:
+           %xmm0 = x[i - 2]
+           %xmm1 = x[i - 1]
+           %xmm2 = y[i - 2]
+           %xmm3 = y[i - 1] */
+        /* Increment */
+        "add    %6, %4\n\t"
+        /* Same as above, exchanging %xmm1 <-> %xmm0, %xmm3 <->
+           %xmm2 */
+        "mulps  %%xmm5, %%xmm0\n\t"
+        "mulps  %%xmm7, %%xmm2\n\t"
+        "subps  %%xmm2, %%xmm0\n\t"
+        "movaps %%xmm1, %%xmm2\n\t"
+        "mulps  %%xmm4, %%xmm2\n\t"
+        "addps  %%xmm0, %%xmm2\n\t"
+        "movaps %%xmm3, %%xmm0\n\t"
+        "mulps  %%xmm6, %%xmm0\n\t"
+        "subps  %%xmm0, %%xmm2\n\t"
+        "movaps (%4), %%xmm0\n\t"
+        "addps  %%xmm0, %%xmm2\n\t"
+        "movaps %%xmm2, (%4)\n\t"
+        /* Now:
+           %xmm0 = x[i - 1]
+           %xmm1 = x[i - 2]
+           %xmm2 = y[i - 1]
+           %xmm3 = y[i - 2] */
+        /* Increment */
+        "add    %6, %4\n\t"
+        /* End of loop */
+        "dec    %5\n\t"
+        "jnz    1b\n\t"
+        /* Tail for odd-valued lengths */
+        /* GCC inlining (which does not save the argument) will break
+           a direct and $1, %11 */
+        "mov    %7, %5\n\t"
+        "and    $1, %5\n\t"
+        "jz     1f\n\t"
+        /* If block_size % 2 != 0: */
+        /* Same as the first half of the loop body */
+        "mulps  %%xmm5, %%xmm1\n\t"
+        "mulps  %%xmm7, %%xmm3\n\t"
+        "subps  %%xmm3, %%xmm1\n\t"
+        "movaps %%xmm0, %%xmm3\n\t"
+        "mulps  %%xmm4, %%xmm3\n\t"
+        "addps  %%xmm1, %%xmm3\n\t"
+        "movaps %%xmm2, %%xmm1\n\t"
+        "mulps  %%xmm6, %%xmm1\n\t"
+        "subps  %%xmm1, %%xmm3\n\t"
+        "movaps (%4), %%xmm1\n\t"
+        "addps  %%xmm1, %%xmm3\n\t"
+        "movaps %%xmm3, (%4)\n\t"
+        /* Increment */
+        "add    %6, %4\n\t"
+        /* Store the delay lines, permuted */
+        "movaps %%xmm1, %0\n\t"
+        "movaps %%xmm0, %1\n\t"
+        "movaps %%xmm3, %2\n\t"
+        "movaps %%xmm2, %3\n\t"
+        "jmp    2f\n"
+        "1:\n\t"
+        /* If block_size % 2 == 0: */
+        /* Store the delay lines, unpermuted */
+        "movaps %%xmm0, %0\n\t"
+        "movaps %%xmm1, %1\n\t"
+        "movaps %%xmm2, %2\n\t"
+        "movaps %%xmm3, %3\n\t"
+        "2:"
+        : "+m" (delay_in[0]), "+m" (delay_in[stride]),
+          "+m" (delay_out[0]), "+m" (delay_out[stride]),
+          /* 4 */
+          "+r" (px), "=&r" (loop)
+        : /* 6 */
+          "r" (stride_4), "r" (block_size)
+        : "%xmm1", "%xmm0", "%xmm3", "%xmm2",
+          "%xmm4", "%xmm5", "%xmm6", "%xmm7");
+    *x = px;
+}
+#endif /* defined(__x86_64__) && defined(HAVE_SSE) */
+
+static inline void
+filter_iir(float x[][NBAND], float delay_in[][2 * NBAND],
+           float delay_out[][2 * NBAND],
+           const float coefficient[NBIQUAD + 1][4 * NBAND],
+           size_t block_size, int cpu_flags)
+{
+    size_t i;
+
+#if defined(__x86_64__) && defined(HAVE_SSE)
+    if ((cpu_flags & AV_CPU_FLAG_SSE) != 0) {
+        for (i = 0; i < NBIQUAD_LOW; i++) {
+            float *px = &x[0][0];
+
+            filter_biquad_sse(&px, &delay_in[i][0],
+                              &delay_out[i][0],
+                              (float *)&coefficient[i][0],
+                              block_size, NBAND);
+        }
+        for (i = 0; i < NBIQUAD; i++) {
+            float *px = &x[0][4];
+
+            filter_biquad_sse(&px, &delay_in[i][4],
+                              &delay_out[i][4],
+                              (float *)&coefficient[i][4],
+                              block_size, NBAND);
+        }
+    }
+    else
+#endif /* defined(__x86_64__) && defined(HAVE_SSE) */
+    {
+        for (i = 0; i < NBAND; i++) {
+            size_t j;
+
+            for (j = 0; j < NBIQUAD; j++) {
+                float *px = &x[0][i];
+
+                filter_biquad_c(&px, &delay_in[j][i],
+                                &delay_out[j][i],
+                                (float *)&coefficient[j][i],
+                                block_size, NBAND);
+            }
+        }
+    }
+
+    for (i = 0; i < block_size; i++) {
+        size_t j;
+
+        for (j = 0; j < NBAND; j++) {
+            x[i][j] *= coefficient[NBIQUAD][j];
+        }
+    }
+}
+
+/* The late reverbeartion is generated using maximally diffusive
+   circulant feedback delay network (CFDN) with a feedback matrix A
+   based on the Galois sequence. See D. Rocchesso, IEEE Signal
+   Processing Lett. 4, 252 (1997). The vector coefficient b, c are set
+   to 1. */
+
+static inline void cfdn_matrix_multiply_c(float (*delay)
+                                          [2 * DELAY_LINE_LENGTH],
+                                          const float s[])
+{
+    const float s_0_1 = s[0] + s[1];
+    const float s_1_2 = s[1] + s[2];
+    const float s_2_3 = s[2] + s[3];
+    const float s_3_4 = s[3] + s[4];
+    const float s_4_5 = s[4] + s[5];
+    const float s_5_6 = s[5] + s[6];
+    const float s_6_7 = s[6] + s[7];
+    const float s_7_8 = s[7] + s[8];
+    const float s_8_9 = s[8] + s[9];
+    const float s_9_10 = s[9] + s[10];
+    const float s_10_11 = s[10] + s[11];
+    const float s_11_12 = s[11] + s[12];
+    const float s_12_13 = s[12] + s[13];
+    const float s_13_14 = s[13] + s[14];
+    const float s_14_0 = s[14] + s[0];
+
+    delay[0][0] = 0.2F * (s_1_2 + s[3] + s_5_6 + s[9] + s[11]) -
+        0.3F * (s[4] + s_7_8 + s[10] + s_12_13 + s_14_0);
+    delay[1][0] = 0.2F * (s_2_3 + s[4] + s_6_7 + s[10] + s[12]) -
+        0.3F * (s[5] + s_8_9 + s[11] + s_13_14 + s_0_1);
+    delay[2][0] = 0.2F * (s_3_4 + s[5] + s_7_8 + s[11] + s[13]) -
+        0.3F * (s[6] + s_9_10 + s[12] + s_14_0 + s_1_2);
+    delay[3][0] = 0.2F * (s_4_5 + s[6] + s_8_9 + s[12] + s[14]) -
+        0.3F * (s[7] + s_10_11 + s[13] + s_0_1 + s_2_3);
+    delay[4][0] = 0.2F * (s_5_6 + s[7] + s_9_10 + s[13] + s[0]) -
+        0.3F * (s[8] + s_11_12 + s[14] + s_1_2 + s_3_4);
+    delay[5][0] = 0.2F * (s_6_7 + s[8] + s_10_11 + s[14] + s[1]) -
+        0.3F * (s[9] + s_12_13 + s[0] + s_2_3 + s_4_5);
+    delay[6][0] = 0.2F * (s_7_8 + s[9] + s_11_12 + s[0] + s[2]) -
+        0.3F * (s[10] + s_13_14 + s[1] + s_3_4 + s_5_6);
+    delay[7][0] = 0.2F * (s_8_9 + s[10] + s_12_13 + s[1] + s[3]) -
+        0.3F * (s[11] + s_14_0 + s[2] + s_4_5 + s_6_7);
+    delay[8][0] = 0.2F * (s_9_10 + s[11] + s_13_14 + s[2] + s[4]) -
+        0.3F * (s[12] + s_0_1 + s[3] + s_5_6 + s_7_8);
+    delay[9][0] = 0.2F * (s_10_11 + s[12] + s_14_0 + s[3] + s[5]) -
+        0.3F * (s[13] + s_1_2 + s[4] + s_6_7 + s_8_9);
+    delay[10][0] = 0.2F * (s_11_12 + s[13] + s_0_1 + s[4] + s[6]) -
+        0.3F * (s[14] + s_2_3 + s[5] + s_7_8 + s_9_10);
+    delay[11][0] = 0.2F * (s_12_13 + s[14] + s_1_2 + s[5] + s[7]) -
+        0.3F * (s[0] + s_3_4 + s[6] + s_8_9 + s_10_11);
+    delay[12][0] = 0.2F * (s_13_14 + s[0] + s_2_3 + s[6] + s[8]) -
+        0.3F * (s[1] + s_4_5 + s[7] + s_9_10 + s_11_12);
+    delay[13][0] = 0.2F * (s_14_0 + s[1] + s_3_4 + s[7] + s[9]) -
+        0.3F * (s[2] + s_5_6 + s[8] + s_10_11 + s_12_13);
+    delay[14][0] = 0.2F * (s_0_1 + s[2] + s_4_5 + s[8] + s[10]) -
+        0.3F * (s[3] + s_6_7 + s[9] + s_11_12 + s_13_14);
+}
+
+static inline void cfdn_matrix_multiply(float (*delay)
+                                        [2 * DELAY_LINE_LENGTH],
+                                        const float s[])
+{
+    cfdn_matrix_multiply_c(delay, s);
+}
+
+static float filter_cfdn(float in,
+                         float (*delay)[2 * DELAY_LINE_LENGTH],
+                         size_t offset, const float g[],
+                         const size_t m[])
+{
+    float s[FDN_ORDER];
+    float out;
+    size_t i;
+
+    for (i = 0; i < FDN_ORDER; i++) {
+        s[i] = delay[i][m[i]];
+    }
+
+    cfdn_matrix_multiply((float (*)[2 * DELAY_LINE_LENGTH])
+                         &delay[0][0], s);
+
+    for (i = 0; i < FDN_ORDER; i++) {
+        delay[i][0] *= g[i];
+        delay[i][0] += in;
+        delay[i][DELAY_LINE_LENGTH] = delay[i][0];
+    }
+
+    // offset -= 388;
+    // offset = 0;
+    out = in - delay[0][m[0] + offset];
+    for (i = 1; i < FDN_ORDER; i += 2) {
+        out += delay[i][m[i] + offset] -
+            delay[i + 1][m[i + 1] + offset];
+    }
+
+    return out;
+}
+
+/* RT_60 estimation by the Arau-Puchades formula. See: H.
+   Arau-Puchades, "An improved reverberation formula", Acustica 65,
+   163-180 (1988). */
+
+static void set_rt_60_arau_puchades(HRTFContext *s)
+{
+    const float volume =
+        s->room_size[0] * s->room_size[1] * s->room_size[2];
+    float absorption_wall[NSURFACE];
+    float air_absorption;
+    float surface_area[NDIMENSION];
+    float total_surface_area;
+    float absorption_axis[3];
+    float s_a;
+    size_t i;
+
+    for (i = 0; i < NSURFACE; i++) {
+        size_t j;
+
+        absorption_wall[i] = 0;
+        for (j = 0; j < NBAND; j++) {
+            absorption_wall[i] +=
+                c_weighting[j] * s->absorption[i][j];
+        }
+        absorption_wall[i] *= inverse_c_weighting_sum;
+    }
+    air_absorption = 0;
+    for (i = 0; i < NBAND; i++) {
+        air_absorption +=
+            c_weighting[i] * air_attenuation_coefficient[i];
+    }
+    air_absorption *= inverse_c_weighting_sum;
+
+    surface_area[0] = 2 * s->room_size[1] * s->room_size[2];
+    surface_area[1] = 2 * s->room_size[2] * s->room_size[0];
+    surface_area[2] = 2 * s->room_size[0] * s->room_size[1];
+    total_surface_area =
+        surface_area[0] + surface_area[1] + surface_area[2];
+
+    absorption_axis[0] = 0.5F * (absorption_wall[SURFACE_WALL] +
+                                 absorption_wall[SURFACE_SCREEN]);
+    absorption_axis[1] = absorption_wall[SURFACE_WALL];
+    absorption_axis[2] = 0.5F * (absorption_wall[SURFACE_CEILING] +
+                                 absorption_wall[SURFACE_FLOOR]);
+    s_a = total_surface_area;
+    for (i = 0; i < 3; i++) {
+        s_a *= powf(-log1pf(-absorption_axis[i]),
+                    surface_area[i] / total_surface_area);
+    }
+
+    s->rt_60 = (FOUR_LN_60_DB / SPEED_OF_SOUND) * volume /
+        (s_a + 4.0F * air_absorption * volume);
+}
+
+static void set_fdn_g(float g[], const size_t m[], float rt_60,
+                      float sampling_rate)
+{
+    size_t i;
+
+    for (i = 0; i < FDN_ORDER; i++) {
+        g[i] = powf(10.0F, -3.0F * m[i] / (sampling_rate * rt_60));
+    }
+}
+
+struct filter_channel_fir_thread_arg_s {
+    HRTFContext *s;
+    size_t band_range[2];
+    size_t block_size;
+};
+
+static void *filter_channel_fir_thread(void *thread_arg)
+{
+    struct filter_channel_fir_thread_arg_s *p = thread_arg;
+    HRTFContext *s = p->s;
+    int k = s->er_offset;
+    size_t i;
+
+    for (i = p->band_range[0]; i < p->band_range[1]; i++) {
+        size_t j;
+
+        for (j = 0; j < p->block_size; j++) {
+            s->er_amplitude[i][CHANNEL_L][j] = 0;
+        }
+        for (j = 0; j < p->block_size; j++) {
+            s->er_amplitude[i][CHANNEL_R][j] = 0;
+        }
+
+        for (j = 0; j < NCHANNEL; j++) {
+            filter_sparse_fir(s->er_amplitude[i][CHANNEL_L],
+                              s->er_fir_delay[i][CHANNEL_L][j],
+                              s->er_fir_amplitude[i][CHANNEL_L][j],
+                              s->er_fir_ntap[i][CHANNEL_L][j],
+                              s->er_delay[j], k, p->block_size,
+                              s->cpu_flags);
+            filter_sparse_fir(s->er_amplitude[i][CHANNEL_R],
+                              s->er_fir_delay[i][CHANNEL_R][j],
+                              s->er_fir_amplitude[i][CHANNEL_R][j],
+                              s->er_fir_ntap[i][CHANNEL_R][j],
+                              s->er_delay[j], k, p->block_size,
+                              s->cpu_flags);
+        }
+
+        reverse_array(s->er_amplitude[i][CHANNEL_L], p->block_size);
+        reverse_array(s->er_amplitude[i][CHANNEL_R], p->block_size);
+    }
+
+    for (i = p->band_range[0]; i < p->band_range[1]; i++) {
+        size_t j;
+
+        for (j = 0; j < 2; j++) {
+            size_t k;
+
+            for (k = 0; k < p->block_size; k++) {
+                s->er_amplitude_packed[j][k][i] =
+                    s->er_amplitude[i][j][k];
+            }
+        }
+    }
+
+    return NULL;
+}
+
+static inline void
+filter_channel_hybrid(float **out, HRTFContext *s,
+                      size_t block_size)
+{
+    size_t i;
+    struct filter_channel_fir_thread_arg_s arg[NBAND];
+#ifdef HAVE_PTHREADS
+    const size_t nthread = FFMIN(NBAND, s->nthread);
+    pthread_t thread[NBAND];
+
+    for (i = 0; i < nthread; i++) {
+        arg[i].s = s;
+        arg[i].band_range[0] = NBAND * i / nthread;
+        arg[i].band_range[1] = NBAND * (i + 1) / nthread;
+        arg[i].block_size = block_size;
+        pthread_create(&thread[i], &s->thread_attr,
+                       filter_channel_fir_thread, &arg[i]);
+    }
+    for (i = 0; i < nthread; i++) {
+        pthread_join(thread[i], NULL);
+    }
+#else /* HAVE_PTHREADS */
+    arg[0].s = s;
+    arg[0].band_range[0] = 0;
+    arg[0].band_range[1] = NBAND;
+    arg[0].block_size = block_size;
+    filter_channel_fir_thread(arg);
+#endif /* HAVE_PTHREADS */
+    filter_iir(s->er_amplitude_packed[CHANNEL_L],
+               s->iir_delay_in[CHANNEL_L],
+               s->iir_delay_out[CHANNEL_L],
+               s->fb_biquad, block_size, s->cpu_flags);
+    filter_iir(s->er_amplitude_packed[CHANNEL_R],
+               s->iir_delay_in[CHANNEL_R],
+               s->iir_delay_out[CHANNEL_R],
+               s->fb_biquad, block_size, s->cpu_flags);
+    for (i = 0; i < block_size; i++) {
+        size_t j;
+        float sum[2];
+
+        for (j = 0; j < 2; j++) {
+            size_t k;
+            float (*p)[2 * DELAY_LINE_LENGTH] =
+                (float (*)[2 * DELAY_LINE_LENGTH])
+                &s->lr_delay[j][0][s->lr_offset];
+
+            sum[j] = 0;
+            for (k = 0; k < NBAND; k++) {
+                sum[j] += s->er_amplitude_packed[j][i][k];
+            }
+            sum[j] += s->lr_gain *
+                filter_cfdn(sum[j], p, s->lr_base_offset,
+                            s->lr_cfdn_g, s->lr_cfdn_m);
+            sum[j] *= s->output_gain;
+        }
+        if (s->limiter) {
+            const double output_amplitude =
+                fmax(fabsf(sum[0]), fabsf(sum[1]));
+            const float output_gain =
+                limiter_update(&s->limiter_output, output_amplitude,
+                               1.0);
+
+            for (j = 0; j < 2; j++) {
+                (*out)[j] = av_clipf(sum[j] * output_gain, -1.0F, 1.0F);
+            }
+        }
+        else {
+            for (j = 0; j < 2; j++) {
+                (*out)[j] = av_clipf(sum[j], -1.0F, 1.0F);
+            }
+        }
+        *out += 2;
+        s->lr_offset = s->delay_lookup[s->lr_offset];
+    }
+}
+
+/**** EQUALIZATION *************************************************/
+
+static void apply_equalization(float gain[], HRTFContext *s)
+{
+    size_t i;
+
+    for (i = 0; i < NBAND; i++) {
+        size_t j;
+
+        for (j = 0; j < 2; j++) {
+            size_t k;
+
+            for (k = 0; k < NCHANNEL; k++) {
+                size_t l;
+
+                for (l = 0; l < s->er_fir_ntap[i][j][k]; l++) {
+                    s->er_fir_amplitude[i][j][k][l] *= gain[i];
+                }
+            }
+        }
+    }
+}
+
+static void allocate_delay(float (**buffer)[NBAND],
+                           float (**iir_delay_in)[2 * NBAND],
+                           float (**iir_delay_out)[2 * NBAND],
+                           size_t nchannel, size_t length)
+{
+#ifdef HAVE_SSE
+    posix_memalign((void **)buffer, 16,
+                   nchannel * length * NBAND * sizeof(float));
+    posix_memalign((void **)iir_delay_in, 16,
+                   nchannel * 2 * NBIQUAD * NBAND * sizeof(float));
+    posix_memalign((void **)iir_delay_out, 16,
+                   nchannel * 2 * NBIQUAD * NBAND * sizeof(float));
+    memset(*buffer, 0,
+           nchannel * length * NBAND * sizeof(float));
+    memset(*iir_delay_in, 0,
+           nchannel * 2 * NBIQUAD * NBAND * sizeof(float));
+    memset(*iir_delay_out, 0,
+           nchannel * 2 * NBIQUAD * NBAND * sizeof(float));
+#else /* HAVE_SSE */
+    *buffer = av_calloc(nchannel * length * NBAND, sizeof(float));
+    *iir_delay_in = av_calloc(nchannel * 2 * NBIQUAD * NBAND,
+                              sizeof(float));
+    *iir_delay_out = av_calloc(nchannel * 2 * NBIQUAD * NBAND,
+                               sizeof(float));
+#endif /* HAVE_SSE */
+}
+
+static void fb_weight_square(AVFilterContext *ctx,
+                             float weight_square[],
+                             const float (*fb_biquad)[4 * NBAND],
+                             int cpu_flags)
+{
+    float (*buffer)[NBAND];
+    float (*iir_delay_in)[2 * NBAND];
+    float (*iir_delay_out)[2 * NBAND];
+    float sum_weight_square;
+    size_t i;
+
+    allocate_delay(&buffer, &iir_delay_in, &iir_delay_out, 1,
+                   ER_BLOCK_LENGTH);
+
+    /* Since the filterbank filter are not equidistant in the
+       frequency domain, they contribute differently to overall energy
+       (due to Parseval's theorem). The weights are calculated here by
+       time domain filtering and evaluating the (RMS) energy. */
+    memset(buffer, 0, ER_BLOCK_LENGTH * NBAND * sizeof(float));
+    for (i = 0; i < NBAND; i++) {
+        buffer[0][i] = 1;
+    }
+    memset(iir_delay_in, 0, 2 * NBIQUAD * NBAND * sizeof(float));
+    memset(iir_delay_out, 0, 2 * NBIQUAD * NBAND * sizeof(float));
+    filter_iir(buffer, iir_delay_in, iir_delay_out,
+               fb_biquad, ER_BLOCK_LENGTH, cpu_flags);
+
+    av_free(iir_delay_in);
+    av_free(iir_delay_out);
+
+    sum_weight_square = 0;
+    for (i = 0; i < NBAND; i++) {
+        size_t j;
+
+        weight_square[i] = 0;
+        for (j = 0; j < ER_BLOCK_LENGTH; j++) {
+            weight_square[i] += buffer[j][i] * buffer[j][i];
+        }
+        sum_weight_square += weight_square[i];
+    }
+    sum_weight_square = 1.0F / sqrtf(sum_weight_square);
+    for (i = 0; i < NBAND; i++) {
+        weight_square[i] *= sum_weight_square;
+    }
+    if (sum_weight_square >= 0.94F && sum_weight_square < 1.0F) {
+        av_log(ctx, AV_LOG_WARNING,
+               "[hrtf] warning: IIR filterbank is not properly "
+               "normalized (gain = %f)\n", sqrtf(sum_weight_square));
+    }
+
+    av_free(buffer);
+}
+
+static void normalize_lr(HRTFContext *s)
+{
+    float (*lr_delay)[2 * DELAY_LINE_LENGTH];
+    float sum_square;
+    size_t i;
+    size_t k;
+
+    /* Generate the late reverberations. */
+
+    lr_delay = av_calloc(2 * FDN_ORDER * DELAY_LINE_LENGTH,
+                         sizeof(float));
+
+    /* Equalize the gain to be unitary input in all channels producing
+       unitary L, R combined output. */
+
+    sum_square = 0;
+    k = DELAY_LINE_LENGTH - 1;
+    for (i = 0; i < ER_BLOCK_LENGTH; i++) {
+        float (*p)[2 * DELAY_LINE_LENGTH] =
+            (float (*)[2 * DELAY_LINE_LENGTH])&lr_delay[0][k];
+        const float x =
+            filter_cfdn(i == 0 ? 1 : 0, p, s->lr_base_offset,
+                        s->lr_cfdn_g, s->lr_cfdn_m);
+
+        sum_square += x * x;
+        k = s->delay_lookup[k];
+    }
+    s->lr_gain = powf(10.0F, -3.0F * s->lr_base_offset /
+                      (s->sampling_rate * s->rt_60)) /
+        sqrtf(sum_square);
+
+    av_free(lr_delay);
+}
+
+static void normalize_gain(float gain[], HRTFContext *s)
+{
+    float (*buffer)[NBAND];
+    float (*iir_delay_in)[2 * NBAND];
+    float (*iir_delay_out)[2 * NBAND];
+    float (*lr_delay)[2 * DELAY_LINE_LENGTH];
+    float time_integral;
+    float normalization;
+    size_t i;
+    size_t k;
+
+    allocate_delay(&buffer, &iir_delay_in, &iir_delay_out, 1,
+                   ER_BLOCK_LENGTH);
+
+    /* Generate the early reflections. */
+
+    memset(buffer, 0, ER_BLOCK_LENGTH * NBAND * sizeof(float));
+    for (i = 0; i < NBAND; i++) {
+        size_t j;
+
+        for (j = 0; j < 2; j++) {
+            size_t k;
+
+            for (k = 0; k < NCHANNEL; k++) {
+                size_t l;
+
+                for (l = 0; l < s->er_fir_ntap[i][j][k]; l++) {
+                    buffer[s->er_fir_delay[i][j][k][l]][i] +=
+                        s->er_fir_amplitude[i][j][k][l];
+                }
+            }
+        }
+    }
+
+    memset(iir_delay_in, 0, 2 * NBIQUAD * NBAND * sizeof(float));
+    memset(iir_delay_out, 0, 2 * NBIQUAD * NBAND * sizeof(float));
+    filter_iir(buffer, iir_delay_in, iir_delay_out,
+               s->fb_biquad, ER_BLOCK_LENGTH, s->cpu_flags);
+
+    av_free(iir_delay_in);
+    av_free(iir_delay_out);
+
+    /* Generate the late reverberations. */
+
+    lr_delay = av_calloc(2 * FDN_ORDER * DELAY_LINE_LENGTH,
+                         sizeof(float));
+
+    /* Equalize the gain to be unitary input in all channels producing
+       unitary L, R combined output. */
+
+    time_integral = 0;
+    k = DELAY_LINE_LENGTH - 1;
+    for (i = 0; i < ER_BLOCK_LENGTH; i++) {
+        float sample_sum = 0;
+        size_t j;
+        float (*p)[2 * DELAY_LINE_LENGTH] =
+            (float (*)[2 * DELAY_LINE_LENGTH])&lr_delay[0][k];
+
+        for (j = 0; j < NBAND; j++) {
+            sample_sum += gain[j] * buffer[i][j];
+        }
+        sample_sum += s->lr_gain *
+            filter_cfdn(sample_sum, p, s->lr_base_offset,
+                        s->lr_cfdn_g, s->lr_cfdn_m);
+        time_integral += sample_sum * sample_sum;
+        k = s->delay_lookup[k];
+    }
+
+    av_free(lr_delay);
+
+    normalization = 0;
+    for (i = 0; i < s->ninput_channel; i++) {
+        normalization += s->speaker_gain[i];
+    }
+    normalization /= s->ninput_channel * sqrtf(time_integral);
+
+    for (i = 0; i < NBAND; i++) {
+        gain[i] *= normalization;
+    }
+}
+
+static void equalize_diffuse_field(AVFilterContext *ctx,
+                                   float gain[], HRTFContext *s)
+{
+    float hrtf_amplitude[NBAND];
+    float normalization_diffuse_field;
+    unsigned int coefficient_type;
+    size_t i;
+
+    switch (s->hrtf_order) {
+    default:    coefficient_type = HRTF_COEFFICIENT_ORDER_1;
+    }
+    hrtf_mean_mit_kemar_amplitude(ctx, hrtf_amplitude, s->hrtf_scale,
+                                  s->mean_hrtf, s->sampling_rate,
+                                  coefficient_type);
+
+    normalization_diffuse_field = 0;
+    for (i = 0; i < NBAND; i++) {
+        normalization_diffuse_field += s->fb_weight_square[i] *
+            fabsf(hrtf_amplitude[i]);
+    }
+    for (i = 0; i < NBAND; i++) {
+        gain[i] = normalization_diffuse_field / hrtf_amplitude[i];
+    }
+}
+
+static void equalize_free_field(AVFilterContext *ctx,
+                                float gain[], HRTFContext *s)
+{
+    float hrtf_amplitude[NBAND];
+    const int *hrtf_delay;
+    float normalization_free_field;
+    unsigned int coefficient_type;
+    size_t i;
+
+    switch (s->hrtf_order) {
+    default:    coefficient_type = HRTF_COEFFICIENT_ORDER_1;
+    }
+    hrtf_coeff_mit_kemar(ctx, hrtf_amplitude, &hrtf_delay, 0, 0,
+                         s->hrtf_scale, s->mean_hrtf,
+                         s->sampling_rate, coefficient_type);
+
+    normalization_free_field = 0;
+    for (i = 0; i < NBAND; i++) {
+        normalization_free_field += s->fb_weight_square[i] *
+            fabsf(hrtf_amplitude[i]);
+    }
+    for (i = 0; i < NBAND; i++) {
+        gain[i] = normalization_free_field / hrtf_amplitude[i];
+    }
+}
+
+/**** RT_60 SOLVER *************************************************/
+
+/* A continuous function that switches between ITU-R BS.1116-1 for
+   small rooms and SMPTE EG-18 for medium sized rooms. */
+
+static inline float reference_rt_60(float volume)
+{
+    /* Power-law function interpolating between the ITU-R BS.1116-1
+       value for 300 m^3 room and the point where the lower and upper
+       bounds of SMPTE EG-18 intersect. */
+    return volume >= 1787.9833104598113F ?
+        powf(volume * (1.0F / 15367.05882F), 1.0F / 3.051954766F) :
+        volume >= 202.5426890F ?
+        powf(volume * (1.0F / 55781.06185F), 1.0F / 4.881035708F) :
+        0.25F * powf(volume / 100.0F, 1.0F / 3.0F);
+}
+
+/* Solve for all (four) surfaces unknown and assumping constant
+   absorption. */
+
+static void solve_rt_60_4(float absorption[][NBAND],
+                          float rt_60, const float size[])
+{
+    const float volume = size[0] * size[1] * size[2];
+    float air_absorption;
+    float surface_area[3];
+    float total_surface_area;
+    float constant_absorption;
+    size_t i;
+
+    air_absorption = 0;
+    for (i = 0; i < NBAND; i++) {
+        air_absorption +=
+            c_weighting[i] * air_attenuation_coefficient[i];
+    }
+    air_absorption *= inverse_c_weighting_sum;
+
+    surface_area[0] = 2 * size[1] * size[2];
+    surface_area[1] = 2 * size[2] * size[0];
+    surface_area[2] = 2 * size[0] * size[1];
+    total_surface_area =
+        surface_area[0] + surface_area[1] + surface_area[2];
+    constant_absorption =
+        -expm1f(((4.0F * air_absorption * rt_60 -
+                  FOUR_LN_60_DB / SPEED_OF_SOUND) * volume) /
+                (rt_60 * total_surface_area));
+
+    for (i = 0; i < NSURFACE; i++) {
+        size_t j;
+
+        for (j = 0; j < NBAND; j++) {
+            absorption[i][j] = constant_absorption;
+        }
+    }
+}
+
+static int solve_rt_60(float absorption[][NBAND],
+                       float rt_60, const float size[],
+                       const unsigned int material[])
+{
+    if (material[0] == MATERIAL_SOLVER &&
+        material[1] == MATERIAL_SOLVER &&
+        material[2] == MATERIAL_SOLVER &&
+        material[3] == MATERIAL_SOLVER) {
+        solve_rt_60_4(absorption, rt_60, size);
+        return 1;
+    }
+
+    return 0;
+}
+
+/**** CHECKS *******************************************************/
+
+static void volume_ratio_to_size(float size[],
+                                 const double volume_ratio[])
+
+{
+    size[2] = cbrt(volume_ratio[0] /
+                   (volume_ratio[1] * volume_ratio[2]));
+    size[0] = size[2] * volume_ratio[1];
+    size[1] = size[2] * volume_ratio[2];
+}
+
+static int check_room_itu_r_bs_1116_1_geometry(AVFilterContext *ctx,
+                                               const float size[],
+                                               int verbose)
+{
+    const float length = FFMAX(size[0], size[1]);
+    const float width = FFMAX(size[0], size[1]);
+    const float height = size[2];
+    const float floor_area = length * width;
+    const float volume = floor_area * height;
+    const float length_height = length / height;
+    const float width_height = width / height;
+    const float length_width = length / width;
+    float fractional_part;
+    float integral_part;
+    int pass = 1;
+
+    if (floor_area <= 40) {
+        if (verbose) {
+            av_log(ctx, AV_LOG_VERBOSE,
+                   "[hrtf] hint: room floor area too small "
+                   "(%g <= 40)\n", floor_area);
+        }
+        pass = 0;
+    }
+    if (volume >= 300) {
+        if (verbose) {
+            av_log(ctx, AV_LOG_VERBOSE,
+                   "[hrtf] hint: room volume too large "
+                   "(%g >= 300)\n", volume);
+        }
+        pass = 0;
+    }
+    if (length_height >= 3) {
+        if (verbose) {
+            av_log(ctx, AV_LOG_VERBOSE,
+                   "[hrtf] hint: room length too large "
+                   "(%g >= 3)\n", length_height);
+        }
+        pass = 0;
+    }
+    /* Check for width / height < 3 is redundant */
+    if (length_width < 1.1F) {
+        if (verbose) {
+            av_log(ctx, AV_LOG_VERBOSE,
+                   "[hrtf] hint: room length to width ratio too "
+                   "small (%g < 1.1)\n", length_width);
+        }
+        pass = 0;
+    }
+    else if (length_height > 4.5F * width_height - 4) {
+        if (verbose) {
+            av_log(ctx, AV_LOG_VERBOSE,
+                   "[hrtf] hint: room length to width ratio too "
+                   "large (%g > %g)\n",
+                   length_height, 4.5F * width_height - 4);
+        }
+        pass = 0;
+    }
+    fractional_part = modff(length_height, &integral_part);
+    if (fractional_part >= 0.95F || fractional_part <= 0.05F) {
+        if (verbose) {
+            av_log(ctx, AV_LOG_VERBOSE,
+                   "[hrtf] hint: the room width to height ratio "
+                   "(%g) is too close to an integer\n",
+                   length_height);
+        }
+        pass = 0;
+    }
+    fractional_part = modff(width_height, &integral_part);
+    if (fractional_part >= 0.95F || fractional_part <= 0.05F) {
+        if (verbose) {
+            av_log(ctx, AV_LOG_VERBOSE,
+                   "[hrtf] hint: the room width to height ratio "
+                   "(%g) is too close to an integer\n",
+                   width_height);
+        }
+        pass = 0;
+    }
+    /* Check for length / width not within 5% of an integer is also
+       redundant. */
+
+    return pass;
+}
+
+static int check_room_itu_r_bs_1116_1_lr(AVFilterContext *ctx,
+                                         float rt_60, float size[],
+                                         int verbose)
+{
+    const float volume = size[0] * size[1] * size[2];
+    const float reference_rt_60 =
+        0.25F * powf(volume / 100.0F, 1.0F / 3.0F);
+    int pass = 1;
+
+    if (!(fabsf(rt_60 - reference_rt_60) < 0.05F)) {
+        if (verbose) {
+            av_log(ctx, AV_LOG_VERBOSE,
+                   "[hrtf] hint: the reverberation time deviates "
+                   "too far from %.3f s (%.3f s)\n",
+                   reference_rt_60, rt_60);
+        }
+        pass = 0;
+    }
+
+    return pass;
+}
+
+/* SMPTE EG-18 reverberation time limits. The reverberation time
+   limits from SMPTE EG-18 is still used by THX, even though the
+   standard was retracted by SMPTE in 2003. */
+
+static int check_room_smpte_eg_18_lr(AVFilterContext *ctx,
+                                     float rt_60, float size[],
+                                     int verbose)
+{
+    const float volume = size[0] * size[1] * size[2];
+    int pass;
+
+    /* The functional forms are (metric) least square fits to the
+       digitized SMPTE EG-18 reverberation time graph. */
+    if (volume >= 28.31684659F /* 10^3 ft^3 */ &&
+        volume < 28316.84659F /* 10^6 ft^3 */) {
+        const float reference_rt_60_lower =
+            powf(volume * (1.0F / 2.39e+4F), 1.0F / 2.73F);
+        const float reference_rt_60_upper =
+            powf(volume * (1.0F / 8.78e+3F), 1.0F / 3.46F);
+
+        if (rt_60 >= reference_rt_60_lower &&
+            rt_60 <= reference_rt_60_upper) {
+            pass = 1;
+        }
+        else {
+            if (verbose) {
+                av_log(ctx, AV_LOG_VERBOSE,
+                       "[hrtf] hint: the reverberation time is out "
+                       "of the range [%f s, %f s] (%f s)\n",
+                       reference_rt_60_lower, reference_rt_60_upper,
+                       rt_60);
+            }
+            pass = 0;
+        }
+    }
+    else {
+        av_log(ctx, AV_LOG_VERBOSE,
+               "[hrtf] hint: room volue is out of range for SMPTE "
+               "EG-18\n");
+        pass = 0;
+    }
+
+    return pass;
+}
+
+static float decay_linear_regression(const float decay[],
+                                     size_t begin, size_t end,
+                                     float sampling_rate)
+{
+    const float inverse_sampling_rate = 1.0F / sampling_rate;
+    const float n = end - begin;
+    float sum_t = 0;
+    float sum_r = 0;
+    float sum_t_2 = 0;
+    float sum_t_r = 0;
+    size_t i;
+
+    for (i = begin; i < end; i++) {
+        const float t = (i - begin) * inverse_sampling_rate;
+        const float r = 10.0F * log10f(decay[i]);
+
+        sum_t += t;
+        sum_r += r;
+        sum_t_2 += t * t;
+        sum_t_r += t * r;
+    }
+
+    return (n * sum_t_2 - sum_t * sum_t) / (n * sum_t_r - sum_t * sum_r);
+}
+
+static void check_ir(AVFilterContext *ctx, HRTFContext *s)
+{
+    size_t ir_length = s->sampling_rate * 5.0F * s->rt_60;
+    float (*buffer)[NBAND];
+    float (*iir_delay_in)[2 * NBAND];
+    float (*iir_delay_out)[2 * NBAND];
+    float (*lr_delay)[NBAND][2 * DELAY_LINE_LENGTH];
+    float *decay;
+    float (*ir_band)[7];
+    float sample_max;
+    size_t index_max;
+    size_t index_minus_5_db;
+    size_t index_minus_10_db;
+    size_t index_minus_25_db;
+    size_t index_minus_35_db;
+    float edt;
+    float t_20;
+    float t_30;
+    size_t i;
+    size_t k;
+
+    allocate_delay(&buffer, &iir_delay_in, &iir_delay_out, 1,
+                   ir_length);
+
+    /* Generate the early reflections. */
+
+    memset(buffer, 0, ir_length * NBAND * sizeof(float));
+    for (i = 0; i < NBAND; i++) {
+        size_t j;
+
+        for (j = 0; j < 2; j++) {
+            size_t k;
+
+            for (k = 0; k < NCHANNEL; k++) {
+                size_t l;
+
+                for (l = 0; l < s->er_fir_ntap[i][j][k]; l++) {
+                    buffer[s->er_fir_delay[i][j][k][l]][i] +=
+                        s->er_fir_amplitude[i][j][k][l];
+                }
+            }
+        }
+    }
+
+    memset(iir_delay_in, 0, 2 * NBIQUAD * NBAND * sizeof(float));
+    memset(iir_delay_out, 0, 2 * NBIQUAD * NBAND * sizeof(float));
+    filter_iir(buffer, iir_delay_in, iir_delay_out,
+               s->fb_biquad, ir_length, s->cpu_flags);
+
+    av_free(iir_delay_in);
+    av_free(iir_delay_out);
+
+    /* Generate the late reverberations. */
+
+    lr_delay = av_calloc((NBAND + 1) * 2 * FDN_ORDER * DELAY_LINE_LENGTH,
+                         sizeof(float));
+
+    /* Equalize the gain to be unitary input in all channels producing
+       unitary L, R combined output. */
+
+    decay = av_malloc(ir_length * sizeof(float));
+    ir_band = av_malloc(ir_length * 7 * sizeof(float));
+    k = DELAY_LINE_LENGTH - 1;
+    for (i = 0; i < ir_length; i++) {
+        float sample_sum = 0;
+        size_t j;
+        float (*p)[2 * DELAY_LINE_LENGTH] =
+            (float (*)[2 * DELAY_LINE_LENGTH])&lr_delay[0][0][k];
+
+        for (j = 0; j < NBAND; j++) {
+            sample_sum += buffer[i][j];
+        }
+        sample_sum += s->lr_gain *
+            filter_cfdn(sample_sum, p, s->lr_base_offset,
+                        s->lr_cfdn_g, s->lr_cfdn_m);
+        decay[i] = sample_sum * sample_sum;
+        for (j = 1; j < NBAND; j++) {
+            float (*q)[2 * DELAY_LINE_LENGTH] =
+                (float (*)[2 * DELAY_LINE_LENGTH])&lr_delay[0][j][k];
+
+            ir_band[i][j - 1] = buffer[i][j] +
+                filter_cfdn(buffer[i][j], q, s->lr_base_offset,
+                            s->lr_cfdn_g, s->lr_cfdn_m);
+        }
+        k = s->delay_lookup[k];
+    }
+
+    av_free(lr_delay);
+
+    sample_max = decay[0];
+    index_max = 0;
+    for (i = 1; i < ir_length; i++) {
+        const float sample = decay[i];
+
+        if (sample > sample_max) {
+            sample_max = sample;
+            index_max = i;
+        }
+    }
+
+    av_log(ctx, AV_LOG_VERBOSE,
+           "[hrtf] Base delay: %.3f s (index %lu), exp. %.3f s "
+           "(ind. %.1f)\n",
+           (float)index_max / s->sampling_rate,
+           (unsigned long)index_max,
+           s->fb_base_delay_max / s->sampling_rate,
+           s->fb_base_delay_max);
+
+#if 1
+    {
+        FILE *fp_out = fopen("/tmp/mplayer_hrtf_ir_sum.data", "w");
+        if (fp_out) {
+            fwrite(decay, sizeof(float), ir_length, fp_out);
+            fclose(fp_out);
+        }
+    }
+#endif
+
+    for (i = ir_length - 1; i > 0; i--) {
+        decay[i - 1] += decay[i];
+    }
+
+    decay[0] = 1.0F / decay[0];
+    for (i = 1; i < ir_length; i++) {
+        decay[i] *= decay[0];
+    }
+    decay[0] = 1.0;
+
+    index_minus_5_db = 0;
+    index_minus_10_db = 0;
+    index_minus_25_db = 0;
+    index_minus_35_db = 0;
+
+    for (i = ir_length - 1; i > 0; i--) {
+        if (decay[i] >= 0.0003162277660F) {
+            index_minus_35_db = i;
+            break;
+        }
+    }
+    for (i = ir_length - 1; i > 0; i--) {
+        if (decay[i] >= 0.003162277660F) {
+            index_minus_25_db = i;
+            break;
+        }
+    }
+    for (i = ir_length - 1; i > 0; i--) {
+        if (decay[i] >= 0.1F) {
+            index_minus_10_db = i;
+            break;
+        }
+    }
+    for (i = ir_length - 1; i > 0; i--) {
+        if (decay[i] >= 0.3162277660F) {
+            index_minus_5_db = i;
+            break;
+        }
+    }
+
+#if 1
+    {
+        FILE *fp_out = fopen("/tmp/mplayer_hrtf_decay_sum.data", "w");
+        if (fp_out) {
+            fwrite(decay, sizeof(float), ir_length, fp_out);
+            fclose(fp_out);
+        }
+    }
+#endif
+
+    edt = -60.0F *
+        decay_linear_regression(decay, 0, index_minus_10_db + 1,
+                                s->sampling_rate);
+    t_20 = -60.0F *
+        decay_linear_regression(decay, index_minus_5_db,
+                                index_minus_25_db + 1,
+                                s->sampling_rate);
+    t_30 = -60.0F *
+        decay_linear_regression(decay, index_minus_25_db,
+                                index_minus_35_db + 1,
+                                s->sampling_rate);
+
+    av_free(decay);
+
+    av_log(ctx, AV_LOG_VERBOSE,
+           "[hrtf] RT_60(EDT):  %.3f s, exp. %.3f s (ind. %.1f), "
+           "ratio %.9f\n",
+           edt, s->rt_60, s->rt_60 * s->sampling_rate,
+           s->rt_60 / edt);
+    av_log(ctx, AV_LOG_VERBOSE,
+           "[hrtf] RT_60(T_20):  %.3f s, exp. %.3f s (ind. %.1f), "
+           "ratio %.9f\n",
+           t_20, s->rt_60, s->rt_60 * s->sampling_rate,
+           s->rt_60 / t_20);
+    av_log(ctx, AV_LOG_VERBOSE,
+           "[hrtf] RT_60(T_30):  %.3f s, exp. %.3f s (ind. %.1f), "
+           "ratio %.9f\n",
+           t_30, s->rt_60, s->rt_60 * s->sampling_rate,
+           s->rt_60 / t_30);
+    s->fdn_rt_60_correction *= powf(s->rt_60 / t_30, 1.0F / 8.0F);
+    av_log(ctx, AV_LOG_VERBOSE,
+           "[hrtf] FDN RT_60(T_30) correction: %.9f\n",
+           s->fdn_rt_60_correction);
+}
+
+/**** INITIALIZATION ***********************************************/
+
+static void clear_er_fir(HRTFContext *s)
+{
+    size_t i;
+
+    for (i = 0; i < NBAND; i++) {
+        size_t j;
+
+        for (j = 0; j < 2; j++) {
+            size_t k;
+
+            for (k = 0; k < NCHANNEL; k++) {
+                s->er_fir_ntap[i][j][k] = 0;
+                if (s->er_fir_delay[i][j][k]) {
+                    av_freep(&s->er_fir_delay[i][j][k]);
+                    s->er_fir_delay[i][j][k] = NULL;
+                }
+                if (s->er_fir_amplitude[i][j][k]) {
+                    av_freep(&s->er_fir_amplitude[i][j][k]);
+                    s->er_fir_amplitude[i][j][k] = NULL;
+                }
+            }
+        }
+    }
+}
+
+static void initialize_acoustics(AVFilterContext *ctx,
+                                 HRTFContext *s,
+                                 size_t ninput_channel)
+{
+    float gain[NBAND];
+    int layout_7_1;
+    int layout_lc_rc;
+    size_t i;
+
+    if ((s->initialized && ninput_channel == s->ninput_channel) ||
+        s->sampling_rate == 0) {
+        return;
+    }
+
+    switch (s->hrtf_order) {
+    default:
+        hrtf_mean_mit_kemar_amplitude(ctx, s->mean_hrtf, 1, NULL,
+                                      s->sampling_rate,
+                                      HRTF_COEFFICIENT_ORDER_1);
+    }
+
+    s->ninput_channel = ninput_channel;
+    s->listener_position[0] = 0;
+    s->listener_position[1] = 0;
+    s->listener_position[2] = REFERENCE_HEIGHT;
+
+    s->er_end =
+        FFMIN(ER_LENGTH_MAX,
+              s->er_end_factor *
+              length_to_delay(sqrt(s->room_size[0] * s->room_size[0] +
+                                   s->room_size[1] * s->room_size[1] +
+                                   s->room_size[2] * s->room_size[2]),
+                              s->sampling_rate));
+    s->lr_base_offset = s->er_end - s->lr_cfdn_m[FDN_ORDER / 3];
+
+    layout_7_1 = s->ninput_channel >= 8;
+    layout_lc_rc = 0;
+    switch (s->ninput_channel) {
+    case 7:
+        for (i = 0; i <= CHANNEL_CLFE; i++) {
+            s->speaker_gain[i] = 1;
+        }
+        s->speaker_gain[CHANNEL_CS] = 1;
+        break;
+    default:
+        for (i = 0; i < s->ninput_channel; i++) {
+            s->speaker_gain[i] = 1;
+        }
+    }
+    /* Note: Film material mixed not according to SMPTE RP-200 (i.e.
+       that predates 1999) may require a different LFE trim. User with
+       these kind of material should determine its correct value. */
+    s->speaker_gain[CHANNEL_CLFE] *= PLUS_10_DB;
+    switch (s->nlfe) {
+    case 1:
+        break;
+    case 2:
+        s->speaker_gain[CHANNEL_CLFE] *= 0.5F;
+        s->speaker_gain[CHANNEL_CSLFE] = s->speaker_gain[CHANNEL_CLFE];
+        break;
+    case 4:
+        s->speaker_gain[CHANNEL_CLFE] *= 0.25F;
+        s->speaker_gain[CHANNEL_CSLFE] = s->speaker_gain[CHANNEL_CLFE];
+        s->speaker_gain[CHANNEL_LLFE] = s->speaker_gain[CHANNEL_CLFE];
+        s->speaker_gain[CHANNEL_RLFE] = s->speaker_gain[CHANNEL_CLFE];
+        break;
+    default:
+        av_log(ctx, AV_LOG_ERROR,
+               "[hrtf] Invalid number of LFE (%u).\n", s->nlfe);
+    }
+
+    position_speaker(ctx, s->speaker_position, s->listener_position,
+                     s->reference_radius, s->room_size, layout_7_1,
+                     layout_lc_rc, s->wall_mounted);
+
+    clear_er_fir(s);
+    for (i = 0; i < NCHANNEL; i++) {
+        if (s->speaker_gain[i] > 0) {
+            float r[NDIMENSION];
+            float d;
+
+            relative_position(r, s->speaker_position[i],
+                              s->listener_position);
+            d = cartesian_norm(r);
+            if (d > FLT_EPSILON * s->reference_radius) {
+                const float distance_correction =
+                    d / s->reference_radius;
+                size_t j;
+
+                for (j = 0; j < 3; j++) {
+                    s->speaker_direction[i][j] = r[j] / d;
+                }
+                generate_reflection(ctx, CHANNEL_L, i,
+                                    distance_correction, s);
+                generate_reflection(ctx, CHANNEL_R, i,
+                                    distance_correction, s);
+            }
+        }
+    }
+
+    set_rt_60_arau_puchades(s);
+    for (i = 0; i < (s->iterate ? 20 : 1); i++) {
+        set_fdn_g(s->lr_cfdn_g, s->lr_cfdn_m,
+                  s->rt_60 * s->fdn_rt_60_correction, s->sampling_rate);
+        normalize_lr(s);
+
+        if (s->free_field) {
+            equalize_free_field(ctx, gain, s);
+        }
+        else {
+            equalize_diffuse_field(ctx, gain, s);
+        }
+        if (s->iterate) {
+            size_t j;
+
+            for (j = 0; j < NBAND; j++) {
+                s->mean_hrtf[j] = 1.0F;
+            }
+            check_ir(ctx, s);
+        }
+    }
+
+    normalize_gain(gain, s);
+    apply_equalization(gain, s);
+
+    if (s->check_room) {
+        check_room_itu_r_bs_1116_1_geometry(ctx, s->room_size, 1);
+        check_room_itu_r_bs_1116_1_lr(ctx, s->rt_60, s->room_size, 1);
+        check_room_smpte_eg_18_lr(ctx, s->rt_60, s->room_size, 1);
+    }
+
+    /* Ths output trim calculated here is normalized to the level of
+       the Lo/Ro downmix, which is defined in ITU-R BS.775-2, p. 7,
+       Annex 3, Table 1 (Lo = A = L + (C + Ls) / sqrt(2), Ro = B = R +
+       (C + Rs) / sqrt(2), and note that liba52 deviates from this and
+       lacks 1 / sqrt(2) for Ls, Rs). Empirically, 5.1 film
+       soundtracks are well described by the assumption of a single
+       channel dominating the combination of either C-L-Ls or C-R-Rs,
+       insert into the equation above for Lo, Ro, gives a gain of 1 +
+       2 / sqrt(2), while the Lo, Ro themselves are perceived
+       independently, giving another factor of 2. Therefore an output
+       trim of 2 * (1 + sqrt(2)) = +13.68 dB matches the gain to the
+       5.1 ITU-R BS.775-2 downmix. */
+    if (isnan(s->output_gain_db)) {
+        if (s->ninput_channel > CHANNEL_CLFE) {
+            /* Multichannel, with LFE */
+            s->output_gain = (float)(M_SQRT1_2) * s->ninput_channel +
+                (float)(2.0 - M_SQRT2);
+        }
+        else if (s->ninput_channel > CHANNEL_R) {
+            /* Multichannel, without LFE */
+            s->output_gain = (float)(M_SQRT1_2) * s->ninput_channel +
+                (float)(2.0 - M_SQRT1_2);
+        }
+        else {
+            /* 1 and 2 channels */
+            s->output_gain = s->ninput_channel;
+        }
+    }
+    else {
+        s->output_gain = powf(10.0F, 0.05F * s->output_gain_db);
+    }
+
+    s->initialized = 1;
+}
+
+/**** LIBAVFILTER INTERFACE ****************************************/
+
+static int set_room(float size[], float absorption[][NBAND],
+                    float *reference_radius, int *wall_mounted,
+                    float *fdn_rt_60_correction,
+                    const struct room_s *room, int sampling_rate)
+{
+    float rt_60;
+
+    if (!room) {
+        return 0;
+    }
+
+    rt_60 = room->rt_60 > 0 ? room->rt_60 :
+        reference_rt_60(room->size[0]);
+
+    switch (sampling_rate) {
+    case 16000:
+        *fdn_rt_60_correction = room->fdn_rt_60_correction[0];
+        break;
+    case 22050:
+        *fdn_rt_60_correction = room->fdn_rt_60_correction[1];
+        break;
+    case 32000:
+        *fdn_rt_60_correction = room->fdn_rt_60_correction[2];
+        break;
+    case 44100:
+        *fdn_rt_60_correction = room->fdn_rt_60_correction[3];
+        break;
+    case 48000:
+        *fdn_rt_60_correction = room->fdn_rt_60_correction[4];
+        break;
+    case 96000:
+        *fdn_rt_60_correction = room->fdn_rt_60_correction[5];
+        break;
+    default:
+        *fdn_rt_60_correction = 1.0F;
+    }
+    volume_ratio_to_size(size, room->size);
+    *wall_mounted = room->speaker_placement ==
+        SPEAKER_PLACEMENT_WALL_MOUNTED;
+    if (*wall_mounted) {
+        *reference_radius = 2.0F;
+    }
+    else {
+        *reference_radius = room->speaker_radius;
+    }
+    if (!solve_rt_60(absorption, rt_60, size, room->material)) {
+        size_t i;
+
+        for (i = 0; i < NSURFACE; i++) {
+            if (room->material[i] < NMATERIAL) {
+                memcpy(absorption[i],
+                       material_absorption[room->material[i]],
+                       NBAND * sizeof(float));
+            }
+        }
+    }
+
+    return 1;
+}
+
+static float base_delay_max(const float base_delay[])
+{
+    float u = base_delay[0];
+    size_t i;
+
+    for (i = 1; i < NBAND; i++) {
+        u = FFMAX(u, base_delay[i]);
+    }
+
+    return u;
+}
+
+static void print_state(AVFilterContext *ctx, HRTFContext *s)
+{
+    size_t i;
+
+    /* This is the only filter type currently implemented */
+    av_log(ctx, AV_LOG_VERBOSE,
+           "[hrtf] Filter type: %s, %lu %s, %s\n",
+           "time domain FIR/IIR hybrid",
+           (unsigned long)s->nthread,
+           s->nthread > 1 ? "threads" : "thread",
+#ifdef HAVE_SSE
+           (s->cpu_flags & AV_CPU_FLAG_SSE) != 0 ? "SSE" :
+#endif /* HAVE_SSE */
+           "scalar");
+    av_log(ctx, AV_LOG_VERBOSE,
+           "[hrtf] Room size (front-back x left-right x H): %.3g x "
+           "%.3g x %.3g m^3%s\n",
+           s->room_size[0], s->room_size[1], s->room_size[2],
+           check_room_itu_r_bs_1116_1_geometry(ctx, s->room_size,
+                                               0) ?
+           " (ITU-R BS.1116-1)" : "");
+    av_log(ctx, AV_LOG_VERBOSE,
+           "[hrtf] Speaker position: %s\n",
+           s->wall_mounted ? "Wall mounted" : "Radial");
+    av_log(ctx, AV_LOG_VERBOSE,
+           "[hrtf] Equalization: %s\n",
+           s->free_field ? "ISO 389-7 free field" :
+           "ISO 389-7 diffuse field");
+    av_log(ctx, AV_LOG_VERBOSE,
+           "[hrtf] RT_60 (Arau-Puchades) = %.3f s%s%s\n", s->rt_60,
+           check_room_itu_r_bs_1116_1_lr(ctx, s->rt_60, s->room_size,
+                                         0) ?
+           " (ITU-R BS.1116-1)" : "",
+           check_room_smpte_eg_18_lr(ctx, s->rt_60, s->room_size,
+                                     0) ?
+           " (SMPTE EG-18)" : "");
+    av_log(ctx, AV_LOG_VERBOSE,
+           "[hrtf] ER/LR boundary = %.3f s (sample %lu)\n",
+           (float)s->er_end / s->sampling_rate, s->er_end);
+    for (i = 0; i < NCHANNEL; i++) {
+        if (s->speaker_gain[i] > 0) {
+            size_t ntap_max = 0;
+            size_t j;
+
+            for (j = 0; j < 2; j++) {
+                size_t k;
+
+                for (k = 0; k < NBAND; k++) {
+                    ntap_max =
+                        FFMAX(ntap_max, s->er_fir_ntap[k][j][i]);
+                }
+            }
+            av_log(ctx, AV_LOG_VERBOSE,
+                   "[hrtf] %s: %+6.2f dB, %lu ER source + images\n",
+                   channel_str[i],
+                   20.0F * log10f(s->speaker_gain[i]), ntap_max);
+        }
+    }
+    av_log(ctx, AV_LOG_VERBOSE,
+           "[hrtf] O/P: %+6.2f dB\n",
+           20.0F * log10f(s->output_gain));
+#if 1
+    /* This is for debugging of the speaker placement functions */
+    for (i = 0; i < NCHANNEL; i++) {
+        if (s->speaker_gain[i] > 0) {
+            av_log(ctx, AV_LOG_VERBOSE,
+                   "[hrtf] %s (%6.2f, %6.2f, %6.2f) -> (%5.2f, "
+                   "%5.2f, %5.2f) %+6.2f dB\n",
+                   channel_str[i], s->speaker_position[i][0],
+                   s->speaker_position[i][1],
+                   s->speaker_position[i][2],
+                   s->speaker_direction[i][0],
+                   s->speaker_direction[i][1],
+                   s->speaker_direction[i][2],
+                   20.0F * log10f(s->speaker_gain[i]));
+        }
+    }
+#endif
+}
+
+static void initialize_default(HRTFContext *s)
+{
+
+    int i;
+
+    s->er_amplitude_packed = NULL;
+    s->iir_delay_in = NULL;
+    s->iir_delay_out = NULL;
+    for (i = 0; i < NBAND; i++) {
+        size_t j;
+
+        for (j = 0; j < 2; j++) {
+            size_t k;
+
+            for (k = 0; k < NCHANNEL; k++) {
+                s->er_fir_delay[i][j][k] = NULL;
+                s->er_fir_amplitude[i][j][k] = NULL;
+            }
+        }
+    }
+    s->lr_cfdn_m = NULL;
+    s->fb_biquad = NULL;
+    s->fb_base_delay = NULL;
+
+    s->cpu_flags = av_get_cpu_flags();
+    allocate_delay((float (**)[NBAND])&s->er_amplitude_packed,
+                   (float (**)[2 * NBAND])&s->iir_delay_in,
+                   (float (**)[2 * NBAND])&s->iir_delay_out, 2,
+                   ER_BLOCK_LENGTH);
+#ifdef HAVE_PTHREADS
+    s->nthread = av_cpu_count();
+    pthread_attr_init(&s->thread_attr);
+    pthread_attr_setdetachstate(&s->thread_attr,
+                                PTHREAD_CREATE_JOINABLE);
+    pthread_attr_setschedpolicy(&s->thread_attr, SCHED_RR);
+#ifdef __linux__
+    {
+        struct sched_param param;
+
+        /* The default priority 50 for SCHED_RR on Linux appears to be
+           too aggressive and could starve off video decoding
+           threads. */
+        param.sched_priority = 10;
+        pthread_attr_setschedparam(&s->thread_attr, &param);
+    }
+#endif /* __linux__ */
+#endif /* HAVE_PTHREADS */
+
+    for (i = 0; i < DELAY_LINE_LENGTH; i++) {
+        s->delay_lookup[i] = (i + (DELAY_LINE_LENGTH - 1)) %
+            DELAY_LINE_LENGTH;
+    }
+
+    for (i = 0; i < NBAND; i++) {
+        size_t j;
+
+        for (j = 0; j < 2; j++) {
+            size_t k;
+
+            for (k = 0; k < 2; k++) {
+                s->er_fir_delay[i][j][k] = NULL;
+                s->er_fir_amplitude[i][j][k] = NULL;
+            }
+        }
+    }
+
+    s->room = &room_studio_small;
+
+    s->er_end_factor = 1.0F;
+    s->hrtf_order = 1U;
+    s->hrtf_scale = 1.0F;
+    s->lr_cfdn_m = fdn_m;
+    s->limiter = 1;
+    s->nlfe = 2U;
+
+    s->iterate = 0;
+
+    s->er_offset = DELAY_LINE_LENGTH - 1;
+    s->lr_offset = DELAY_LINE_LENGTH - 1;
+}
+
+static void initialize_sample_rate(AVFilterContext *ctx,
+                                   HRTFContext *s, int sample_rate)
+{
+    /* These are set to the values of DP563's output limiter */
+    static const double output_attack  = 0.5e-3;
+    static const double output_release = 100e-3;
+
+    switch (sample_rate) {
+    case 16000:
+        s->fb_biquad     =     fb_biquad_16000_hz;
+        s->fb_base_delay = fb_base_delay_16000_hz;
+        break;
+    case 22050:
+        s->fb_biquad     =     fb_biquad_22050_hz;
+        s->fb_base_delay = fb_base_delay_22050_hz;
+        break;
+    case 32000:
+        s->fb_biquad     =     fb_biquad_32000_hz;
+        s->fb_base_delay = fb_base_delay_32000_hz;
+        break;
+    case 44100:
+        s->fb_biquad     =     fb_biquad_44100_hz;
+        s->fb_base_delay = fb_base_delay_44100_hz;
+        break;
+    case 48000:
+        s->fb_biquad     =     fb_biquad_48000_hz;
+        s->fb_base_delay = fb_base_delay_48000_hz;
+        break;
+    case 96000:
+        s->fb_biquad     =     fb_biquad_96000_hz;
+        s->fb_base_delay = fb_base_delay_96000_hz;
+        break;
+    default:
+        /* automatic samplerate adjustment in the filter chain
+           is not yet supported. */
+        av_log(ctx, AV_LOG_ERROR,
+               "[hrtf] ERROR: only 16, 22.05, 32, 44.1, 48, and "
+               "96 kHz sampling rates are supported (%d)!\n",
+               sample_rate);
+        return;
+    }
+
+    s->sampling_rate  = sample_rate;
+    s->fb_base_delay_max = base_delay_max(s->fb_base_delay);
+    fb_weight_square(ctx, s->fb_weight_square, s->fb_biquad,
+                     s->cpu_flags);
+    set_room(s->room_size, s->absorption, &s->reference_radius,
+             &s->wall_mounted, &s->fdn_rt_60_correction, s->room,
+             s->sampling_rate);
+    initialize_acoustics(ctx, s, ctx->inputs[0]->channels);
+    s->limiter_output =
+        limiter_init(output_attack, output_release, sample_rate);
+}
+
+/*******************************************************************/
+
+#define OFFSET(x) offsetof(HRTFContext, x)
+#define A AV_OPT_FLAG_AUDIO_PARAM|AV_OPT_FLAG_FILTERING_PARAM
+
+static const AVOption hrtf_options[] = {
+    { "freefield", "set free field EQ",        OFFSET(free_field),     AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, A },
+    { "trim", "set output trim (gain) in dB",  OFFSET(output_gain_db), AV_OPT_TYPE_FLOAT, {.dbl=NAN}, -FLT_MAX, FLT_MAX, A },
+    { "room", "set room (1=small...5=large)",  OFFSET(room),           AV_OPT_TYPE_INT, {.i64=3}, 1, 5, A },
+    { "wallmount", "set wall-mounted speaker", OFFSET(wall_mounted),   AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, A },
+    { "nlfe", "set no. of LFE (2/4)",          OFFSET(nlfe),           AV_OPT_TYPE_INT, {.i64=0}, 0, 1, A },
+    { "erend", "set early/late reflection boundary (1=room diag.*c)", OFFSET(er_end_factor), AV_OPT_TYPE_FLOAT, {.dbl=1.4}, 0, FLT_MAX, A },
+    { "hrtfscale", "amplification of HRTF amplitude (1=no amp.)", OFFSET(er_end_factor), AV_OPT_TYPE_FLOAT, {.dbl=1.4}, 0, FLT_MAX, A },
+    { NULL }
+};
+
+AVFILTER_DEFINE_CLASS(hrtf);
+
+static int query_formats(AVFilterContext *ctx)
+{
+    static const int samplerate[6] = {
+        16000, 22050, 32000, 44100, 48000, 96000
+    };
+    AVFilterFormats *formats = NULL;
+    AVFilterChannelLayouts *layouts = NULL;
+    AVFilterFormats *samplerates = NULL;
+    int i, ret;
+
+    if ((ret = ff_add_format(&formats, AV_SAMPLE_FMT_FLT)) < 0 ||
+        (ret = ff_set_common_formats(ctx, formats)) < 0)
+        return ret;
+
+    if ((ret = ff_add_channel_layout(&layouts, AV_CH_LAYOUT_STEREO_DOWNMIX)) < 0 ||
+        (ret = ff_channel_layouts_ref(layouts, &ctx->outputs[0]->in_channel_layouts)) < 0)
+        return ret;
+
+    for (i = 0; i < 6; i++)
+        if ((ret = ff_add_format(&samplerates, samplerate[i])) < 0)
+            return ret;
+    return ff_set_common_samplerates(ctx, samplerates);
+}
+
+static int config_input(AVFilterLink *inlink)
+{
+    AVFilterContext *ctx = inlink->dst;
+    HRTFContext *s = ctx->priv;
+
+    initialize_default(s);
+    initialize_sample_rate(ctx, s, ctx->outputs[0]->sample_rate);
+    print_state(ctx, s);
+
+    return 0;
+}
+
+static int filter_frame(AVFilterLink *inlink, AVFrame *in)
+{
+    AVFilterContext *ctx = inlink->dst;
+    AVFilterLink *outlink = ctx->outputs[0];
+    HRTFContext *s = ctx->priv;
+    AVFrame *out = ff_get_audio_buffer(inlink, in->nb_samples);
+    float *pin;
+    float *pout;
+    int rest;
+
+    if (!out) {
+        av_frame_free(&in);
+        return AVERROR(ENOMEM);
+    }
+    av_frame_copy_props(out, in);
+    out->channel_layout = AV_CH_LAYOUT_STEREO_DOWNMIX;
+    av_frame_set_channels(out, outlink->channels);
+    out->sample_rate = outlink->sample_rate;
+    out->format = outlink->format;
+
+    rest = in->nb_samples;
+    pin = (float *)in->data[0];
+    pout = (float *)out->data[0];
+    while (rest > 0) {
+#if 1
+        const size_t block_size = FFMIN(ER_BLOCK_LENGTH, rest);
+
+        update_channel(ctx, s, &pin, block_size,
+                       ctx->inputs[0]->channels);
+        filter_channel_hybrid(&pout, s, block_size);
+#else
+        static const size_t block_size = 1;
+
+        pout[0] = pin[0];
+        pout[1] = pin[1];
+        pin += ctx->inputs[0]->channels;
+        pout += 2;
+#endif
+        rest -= block_size;
+        s->er_offset =
+            (s->er_offset + (DELAY_LINE_LENGTH - block_size)) %
+            DELAY_LINE_LENGTH;
+    }
+
+    av_frame_free(&in);
+    return ff_filter_frame(outlink, out);
+}
+
+static av_cold void uninit(AVFilterContext *ctx)
+{
+    HRTFContext *s = ctx->priv;
+
+#ifdef HAVE_PTHREADS
+    pthread_attr_destroy(&s->thread_attr);
+#endif /* HAVE_PTHREADS */
+    clear_er_fir(s);
+    av_freep(&s->er_amplitude_packed);
+    av_freep(&s->iir_delay_in);
+    av_freep(&s->iir_delay_out);
+}
+
+static const AVFilterPad inputs[] = {
+    {
+        .name         = "default",
+        .type         = AVMEDIA_TYPE_AUDIO,
+        .filter_frame = filter_frame,
+        .config_props = config_input,
+    },
+    { NULL }
+};
+
+static const AVFilterPad outputs[] = {
+    {
+        .name = "default",
+        .type = AVMEDIA_TYPE_AUDIO,
+    },
+    { NULL }
+};
+
+AVFilter ff_af_hrtf = {
+    .name           = "hrtf",
+    .description    = NULL_IF_CONFIG_SMALL("Apply stereo widening effect."),
+    .query_formats  = query_formats,
+    .priv_size      = sizeof(HRTFContext),
+    .priv_class     = &hrtf_class,
+    .uninit         = uninit,
+    .inputs         = inputs,
+    .outputs        = outputs,
+};
diff --git a/libavfilter/af_hrtf.h b/libavfilter/af_hrtf.h
new file mode 100644
index 0000000..21f3a47
--- /dev/null
+++ b/libavfilter/af_hrtf.h
@@ -0,0 +1,280 @@ 
+/*
+ * Copyright (C) 2010-2016 Yue Shi Lai
+ * Author : Yue Shi Lai < ylai at users dot sourceforge dot net >
+ *
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef AVFILTER_HRTF_H
+#define AVFILTER_HRTF_H
+
+/* The relative amplitude +10 dB is the in-band gain for the LFE
+   channel playback, see SMPTE RP 200-2002, section 4.7 and ITU-R
+   BR.1384-1, section 4. Note that this gain can be wrong when applied
+   to non RP 200 sountracks, e.g. pre-1999 DTS masters. */
+#define PLUS_10_DB           3.162277660F
+/* The relative amplitude of -10 dB is the upper amplitude limit for
+   early reflection, see ITU-R BS.1116-1, section 8.3.3.1 */
+#define MINUS_10_DB          0.3162277660F
+/* The numerical constant 4 * log(1e+6) that appears in most
+   reverberation time equations */
+#define FOUR_LN_60_DB       55.26204223F
+/* The numerical constant 5e-5 * log(10) converts attenuation in dB/km
+   into 1/m. */
+#define DB_KM_TO_INV_M       1.151292546e-4
+
+#define NDIMENSION          3
+#define NBAND               8               /* No. of octave bands */
+/* Note that the SSE-based IIR filter assumes NBAND % 4 == 0 */
+#define NBIQUAD             12              /* No. of IIR biquads */
+#define NBIQUAD_LOW         8               /* No. of IIR biquads */
+#define FDN_ORDER           15
+#define SAMPLING_RATE_MAX   96000
+#define ER_LENGTH_MAX       (SAMPLING_RATE_MAX * 200 / 1000) /* 200 ms */
+#define ER_BLOCK_LENGTH     (1 << 15)
+/* This should be in the order */
+#define DELAY_LINE_LENGTH   (ER_LENGTH_MAX + ER_BLOCK_LENGTH)
+
+/* See E. W. Lemmon, "Speed of sound in dry air", in CRC handbook of
+   chemistry and physics, edited by D. R. Linde (CRC Press, New York,
+   2009-2010), 90th ed., p. 14-51. */
+#define SPEED_OF_SOUND      343.4      /* m/s, for 20 degree C NTP */
+/* See M. D. Burkhard and R. M. Sachs, "Anthropometric manikin for
+   acoustic research", J. Acoust. Soc. Am. 58, 214-222 (1975),
+   doi:10.1121/1.380648, p. 215, Table I. */
+#define KEMAR_HEAD_BREADTH  15.2                             /* cm */
+
+/* See Methods for the subjective assessment of small impairments in
+   audio systems including multichannel sound systems, Recommendation
+   ITU-R BS.1116-1 (ITU, Geneva, 1997). Section 8.5.1.1. See also: S.
+   Bech and N. Zacharov, Perceptual Audio Evaluation - Theory, Methods
+   and Application (Wiley, Chichester, 2006), pp. 228-244. */
+#define REFERENCE_HEIGHT    1.2                               /* m */
+
+/*
+ * EXTENDED CHANNEL ORDER
+ *
+ * This is an attempt to extend the MPlayer/ALSA channel order to
+ * additional matrix decodable channels.
+ *
+ * ========================================================
+ * Index  Azimuth  Name   Notes
+ * --------------------------------------------------------
+ *  0         -45  L      Left, ITU-R BS 775-1
+ *  1          45  R      Right, ITU-R BS 775-1
+ *  2         110  Ls     Left surround, ITU-R BS 775-1
+ *  3        -100  Rs     Right surround, ITU-R BS 775-1
+ *  4           0  C      Center, ITU-R BS 775-1
+ *  5           -  LFE    Low frequency effect, ITU-R BS 775-1
+ *  6        -150  Lr     Left rear, ITU-R BS 775-1
+ *  7         150  Rr     Light rear, ITU-R BS 775-1
+ *  8         180  Cs     Center surround, Ls + Rs matrix
+ *  9           -  Coh    Center overhead, Ls - Rs matrix
+ * 10           0  Ch     Center height, Ls - Rs matrix
+ * 11         -15  Lc     Left center, L + C matrix
+ * 12          15  Rc     Right center, R + C matrix
+ * 13         -30  Lh     Left height, Ls - Rs matrix
+ * 14          30  Rh     Right height, Ls - Rs matrix
+ * 15         180  CsLFE  "Center surround" LFE
+ * 16         -90  LLFE   Left LFE
+ * 17          90  RLFE   Right LFE
+ * ========================================================
+ */
+
+enum {
+    CHANNEL_L = 0,
+    CHANNEL_R,
+    CHANNEL_LS,
+    CHANNEL_RS,
+    CHANNEL_C,
+    CHANNEL_CLFE,
+    CHANNEL_LR,
+    CHANNEL_RR,
+
+    CHANNEL_CS,
+    CHANNEL_COH,
+    CHANNEL_CH,
+    CHANNEL_LC,
+    CHANNEL_RC,
+    CHANNEL_LH,
+    CHANNEL_RH,
+
+    CHANNEL_CSLFE,
+    CHANNEL_LLFE,
+    CHANNEL_RLFE,
+
+    NCHANNEL
+};
+
+static const char *channel_str[NCHANNEL] = {
+    "L    ", "R    ", "Ls   ", "Rs   ", "C    ", "LFE  ", "Lr   ",
+    "Rr   ", "Cs   ", "Coh  ", "Ch   ", "Lc   ", "Rc   ", "Lh   ",
+    "Rh   ", "CsLFE", "LLFE ", "RLFE "
+};
+
+/*
+ * MATRIX DECODING
+ */
+
+enum {
+    MATRIX_SELECT_L_R = 0,
+    MATRIX_SELECT_LS_RS,
+    MATRIX_SELECT_C_LFE,
+    MATRIX_2_4,
+    MATRIX_2_4_ROTATED,
+    MATRIX_2_5,
+    MATRIX_2_3_CS,
+    MATRIX_2_4_CS_COH,
+    MATRIX_2_6_LR_RR,
+    MATRIX_2_6_LR_RR_LH_RH,
+    MATRIX_2_3_LC_RC,
+    NMATRIX
+};
+
+enum {
+    MATRIX_STEERING_L_R = 0,    /* DPL */
+    MATRIX_STEERING_LS_RS,      /* DD EX, DTS-ES */
+    MATRIX_STEERING_L_C,        /* SDDS */
+    MATRIX_STEERING_C_R,        /* SDDS */
+    NMATRIX_STEERING
+};
+
+/*
+ * ISO 389-7 headphone equalizations. The equalization is performed at
+ * the presence of an ideal sound field. The free sound field is a
+ * (sinusodial) plane wave withe source in front of the listener. The
+ * diffuse sound field is (a white or pink noise) uniformly
+ * distributed in the room and isotropic in its directivity.
+ */
+enum {
+    EQUALIZATION_FREE_FIELD = 0,
+    EQUALIZATION_DIFFUSE_FIELD
+};
+
+enum {
+    SURFACE_FLOOR = 0,
+    SURFACE_WALL,
+    SURFACE_SCREEN,
+    SURFACE_CEILING,
+    NSURFACE
+};
+
+/*
+ * MATERIAL DATABASE
+ */
+
+enum {
+    MATERIAL_SOLVER = 0,
+    MATERIAL_TRANSPARENT,
+    MATERIAL_10_PERCENT_ABSORBENT,
+    MATERIAL_20_PERCENT_ABSORBENT,
+    MATERIAL_30_PERCENT_ABSORBENT,
+    MATERIAL_40_PERCENT_ABSORBENT,
+    MATERIAL_50_PERCENT_ABSORBENT,
+    MATERIAL_60_PERCENT_ABSORBENT,
+    MATERIAL_70_PERCENT_ABSORBENT,
+    MATERIAL_80_PERCENT_ABSORBENT,
+    MATERIAL_90_PERCENT_ABSORBENT,
+    MATERIAL_100_PERCENT_ABSORBENT,
+    HEAVY_CARPET,
+    PERFORATED_PLASTERBOARD,
+    PERFORATED_GIPSUMBOARD_CEILING,
+    COARSE_CONCRETE,
+    PLYWOOD_PANEL,
+    NMATERIAL
+};
+
+static const float material_absorption[NMATERIAL][NBAND] = {
+    { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 },
+    { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 },
+    { 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1 },
+    { 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2 },
+    { 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3 },
+    { 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4 },
+    { 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 },
+    { 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6 },
+    { 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7 },
+    { 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8 },
+    { 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9 },
+    { 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 },
+    { 0.02, 0.02, 0.06, 0.14, 0.37, 0.60, 0.65, 0.65 },
+    { 0.08, 0.08, 0.20, 0.50, 0.40, 0.40, 0.35, 0.35 },
+    { 0.45, 0.45, 0.55, 0.60, 0.90, 0.86, 0.75, 0.75 },
+    { 0.36, 0.36, 0.44, 0.31, 0.29, 0.39, 0.25, 0.25 },
+    { 0.28, 0.28, 0.22, 0.17, 0.09, 0.10, 0.11, 0.11 }
+};
+
+/*
+ * Air attenuation table in 1/m, for air temperature = 20 degree C,
+ * relative humidity = 60%. See ISO 9613-1:1993, Acoustics -
+ * Attenuation of sound during propagation outdoors - Part 1:
+ * Calculation of the absorption of sound by the atmosphere, p. 9,
+ * table 1 (i).
+ */
+static const float air_attenuation_coefficient[NBAND] = {
+    1.04e-1 * DB_KM_TO_INV_M, 3.86e-1 * DB_KM_TO_INV_M,
+    1.23    * DB_KM_TO_INV_M, 2.79    * DB_KM_TO_INV_M,
+    4.80    * DB_KM_TO_INV_M, 9.25    * DB_KM_TO_INV_M,
+    2.54e+1 * DB_KM_TO_INV_M, 8.78e+1 * DB_KM_TO_INV_M
+};
+
+/* A-weighting factors for octave band filters. See IEC 61672-1:2002
+   Electroacoustics - Sound level meters - Part 1: Specifications, pp.
+   34-37, 5.4.6-5.4.11. Note that unlike pp. 32-33, table 2, these are
+   the values for the IEC 61260:1995 base 2 filterbank. */
+static const float a_weighting[NBAND] = {
+    0.04812108730, 0.1551034334, 0.3683907807, 0.6880712651,
+    1.000039659,   1.148384531,  1.117332082,  0.8763163393
+};
+static const float inverse_a_weighting_sum = 0.1851248764;
+static const float c_weighting[NBAND] = {
+    0.9084555773, 0.9804327119, 0.9999516342, 1.003769427,
+    1.000011299,  0.9806765315, 0.9092965619, 0.7041086190
+};
+static const float inverse_c_weighting_sum = 0.1335701557;
+
+enum {
+    SPEAKER_PLACEMENT_RADIAL = 0,
+    SPEAKER_PLACEMENT_WALL_MOUNTED,
+    NSPEAKER_PLACEMENT
+};
+
+extern const float fb_biquad_16000_hz[NBIQUAD + 1][4 * NBAND];
+extern const float fb_biquad_22050_hz[NBIQUAD + 1][4 * NBAND];
+extern const float fb_biquad_32000_hz[NBIQUAD + 1][4 * NBAND];
+extern const float fb_biquad_44100_hz[NBIQUAD + 1][4 * NBAND];
+extern const float fb_biquad_48000_hz[NBIQUAD + 1][4 * NBAND];
+extern const float fb_biquad_96000_hz[NBIQUAD + 1][4 * NBAND];
+extern const float fb_base_delay_16000_hz[NBAND];
+extern const float fb_base_delay_22050_hz[NBAND];
+extern const float fb_base_delay_32000_hz[NBAND];
+extern const float fb_base_delay_44100_hz[NBAND];
+extern const float fb_base_delay_48000_hz[NBAND];
+extern const float fb_base_delay_96000_hz[NBAND];
+
+/*
+ * A approximately linear set of primes m_i with sum_i m_i = 9508,
+ * that satisfies the condition sum_i m_i >= 0.15 * RT_60 * fs, or
+ * sum_i m_i >= 9504 for fs = 48 kHz sampling rate and RT_60 = 1.32 s
+ * (maximum SMPTE RP-18 value for a 10^6 ft^3 room).
+ */
+static const size_t fdn_m[FDN_ORDER] = {
+    2, 89, 181, 271, 367, 457, 541, 631, 727, 811, 907, 997, 1087,
+    1181, 1259
+};
+
+#endif /* AVFILTER_HRTF_H */
diff --git a/libavfilter/af_hrtf_fb.c b/libavfilter/af_hrtf_fb.c
new file mode 100644
index 0000000..08175f2
--- /dev/null
+++ b/libavfilter/af_hrtf_fb.c
@@ -0,0 +1,834 @@ 
+/*
+ * Copyright (C) 2010-2016 Yue Shi Lai
+ * Author : Yue Shi Lai < ylai at users dot sourceforge dot net >
+ *
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <stdlib.h>
+#include <float.h>
+#include <math.h>
+
+#include "af_hrtf.h"
+
+/*
+ * LINEAR PHASE IEC 61260:1995 1/1 OCTAVE IIR FILTER BANK
+ *
+ * 1/1 octave Chebyshev Type I filters cascaded with phase equalizers.
+ * Filter mid frequencies are in base 2 system, from 62.5 Hz to 8000
+ * Hz, or in 1/3 octave exponents, -12, -9, -6, -3, 0, 3, 6, 9. See
+ * Electroacoustics - Octave-band and fractional-octave-band filters,
+ * IEC 61260-1:1995 (IEC, Geneva, 1995). These filters are designed
+ * trading off between maximum group delay, amplitude and phase
+ * distortion, and the maximum order/computational complexity. The
+ * maximum deviation from flat (0 dB) DH_0 with the associated
+ * frequency f_0, and the maximum deviation from zero phase Dphi_1 at
+ * f_1 are:
+ *
+ * =========================================================
+ * f_s (Hz)   DH_0 (dB)   f_0 (Hz)   Dphi_1 (rad)   f_1 (Hz)
+ * ---------------------------------------------------------
+ * 16000       2.450       5351.8       0.1485         63.9
+ * 22050       2.415       5829.5       0.1923       2007.2
+ * 32000       2.232       5849.3       0.1887       6730.8
+ * 44100       2.007       5895.5       0.2403       6914.5
+ * 48000       1.959       5898.2       0.2111       7760.1
+ * 96000       1.945       6228.1       0.5816       7185.7
+ * =========================================================
+ *
+ * Be aware you need specialized filter design tools to maintain these
+ * coefficients.
+ *
+ * Let the coefficient of the j-th biquad for the i-th band be (b_ij0,
+ * b_ij1, b_ij2, 1, a_ij1, a_ij2), the storage format for the 2 M := 2
+ * * NBIQUAD order filterbank is:
+ *
+ * {
+ *   {
+ *      b_001, b_101, ..., b_N01, b_002, b_102, ..., b_N02,
+ *      a_001, a_101, ..., a_N01, a_001, a_101, ..., a_N01
+ *   },
+ *   {
+ *      b_011, b_111, ..., b_N11, b_012, b_112, ..., b_N12,
+ *      a_011, a_111, ..., a_N11, a_011, a_111, ..., a_N11
+ *   },
+ *   ...
+ *   {
+ *      b_0M1, b_1M1, ..., b_NM1, b_0M2, b_1M2, ..., b_NM2,
+ *      a_0M1, a_1M1, ..., a_NM1, a_0M1, a_1M1, ..., a_NM1
+ *   },
+ *   {
+ *      prod_j b0j1, prod_j b1j1, ..., prod_j bNj1
+ *   }
+ * }
+ */
+
+const float fb_biquad_16000_hz[NBIQUAD + 1][4 * NBAND]
+__attribute__ ((aligned(16))) = {
+    {
+         2,  0,  0,  0,  0,  0,  0, -2,  1, -1, -1, -1, -1, -1, -1,
+         1, -1.9921630609e+00, -1.9866102559e+00, -1.9674095955e+00,
+        -1.9260966234e+00, -1.8060467755e+00, -1.4510681585e+00,
+        -3.9663919523e-01,  8.5068574139e-01,  9.9328569951e-01,
+         9.8829524917e-01,  9.7369544004e-01,  9.5199748345e-01,
+         9.0746323895e-01,  7.9083406791e-01,  6.7139865518e-01,
+         8.3661127949e-01
+    },
+    {
+         2,  0,  0,  0,  0,  0,  0, -2,  1, -1, -1, -1, -1, -1, -1,
+         1, -1.9810840987e+00, -1.9800125087e+00, -1.9462693104e+00,
+        -1.8777961546e+00, -1.6686406056e+00, -9.5464695470e-01,
+         4.3604361931e-01,  1.0007134773e+00,  9.8176023125e-01,
+         9.8340814043e-01,  9.6053936363e-01,  9.3149691283e-01,
+         8.7203740520e-01,  7.1585013995e-01,  6.7309447662e-01,
+         5.7255497355e-01
+    },
+    {
+         2, -2.0147397298e+00, -2.0206941757e+00, -2.0342663971e+00,
+        -2.0365644824e+00, -1.9743456028e+00, -1.1666456546e+00, -2,
+         1,  1.0159124180e+00,  1.0246264896e+00,  1.0506611608e+00,
+         1.1025080579e+00,  1.2292799218e+00,  1.5809097376e+00,  1,
+        -1.9749289498e+00, -1.9831825009e+00, -1.9721275960e+00,
+        -1.9361774025e+00, -1.8472105196e+00, -1.6060992844e+00,
+        -7.3795842156e-01,  1.2047089406e+00,  9.7516418439e-01,
+         9.8433682103e-01,  9.7596539831e-01,  9.5178163745e-01,
+         9.0702284928e-01,  8.1348436776e-01,  6.3254718230e-01,
+         4.0730702927e-01
+    },
+    {
+        -2.0144251308e+00, -2.0057469306e+00, -1.9967243750e+00,
+        -1.9826855032e+00, -2.0103431010e+00, -7.6122475083e-01,
+         1.7713423506e-02, -2.0254668738e+00,  1.0149691985e+00,
+         1.0122668097e+00,  1.0245395228e+00,  1.0704803548e+00,
+         1.2540381495e+00,  1.3054618311e+00,  1.7195549303e+00,
+         1.2588961107e+00, -1.9847155301e+00, -1.9814409713e+00,
+        -1.9488993158e+00, -1.8521456227e+00, -1.6030956489e+00,
+        -5.8310762729e-01,  1.0301167583e-02, -1.6089229736e+00,
+         9.8525157364e-01,  9.8788184147e-01,  9.7604824194e-01,
+         9.3416006707e-01,  7.9742390645e-01,  7.6601243805e-01,
+         5.8154583047e-01,  7.9434672293e-01
+    },
+    {
+        -2.0152938279e+00, -2.0105275968e+00, -2.0275037551e+00,
+        -2.0365122436e+00, -1.8066306209e+00, -1.1302394208e+00,
+         3.9156634670e-01, -2.0255098709e+00,  1.0154064009e+00,
+         1.0153125981e+00,  1.0424093273e+00,  1.1023313716e+00,
+         1.1388277568e+00,  1.3722577779e+00,  3.1124859270e+00,
+         1.2589497698e+00, -1.9847164899e+00, -1.9802055057e+00,
+        -1.9450168969e+00, -1.8474592088e+00, -1.5863949662e+00,
+        -8.2363491681e-01,  1.2580501756e-01, -1.6088885510e+00,
+         9.8482735490e-01,  9.8491834128e-01,  9.5931605158e-01,
+         9.0716823068e-01,  8.7809591397e-01,  7.2872605722e-01,
+         3.2128659325e-01,  7.9431286617e-01
+    },
+    {
+        -2.0067080124e+00, -2.0152881309e+00, -2.0264673840e+00,
+        -2.0405541481e+00, -2.0293810946e+00, -1.5716796722e+00,
+        -6.3752729054e+00,  2.1201554821e+00,  1.0085457419e+00,
+         1.0180530331e+00,  1.0357136972e+00,  1.0802472857e+00,
+         1.1973392029e+00,  1.3840246603e+00,  4.5207281619e+01,
+         1.4358237577e+00, -1.9897045112e+00, -1.9795512271e+00,
+        -1.9565903101e+00, -1.8889694750e+00, -1.6949090865e+00,
+        -1.1355864656e+00, -1.4102314223e-01,  1.4766126210e+00,
+         9.9152666904e-01,  9.8226709957e-01,  9.6551779001e-01,
+         9.2571396687e-01,  8.3518521534e-01,  7.2253047845e-01,
+         2.2120330270e-02,  6.9646430814e-01
+    },
+    {
+         0,  0, -2.0105446840e+00, -1.9391270609e+00,
+        -1.6758931312e+00, -1.8529296427e+00,  4.7577240637e+00,
+        -2.0254133524e+00,  0,  0,  1.0319174371e+00,
+         1.0526506218e+00,  1.1037920992e+00,  1.4535564804e+00,
+         1.2375371020e+01,  1.2588293194e+00,  0,  0,
+        -1.9483580874e+00, -1.8421373823e+00, -1.5183050616e+00,
+        -1.2747558610e+00,  3.8445102422e-01, -1.6089658234e+00,  0,
+         0,  9.6906977640e-01,  9.4998281415e-01,  9.0596770962e-01,
+         6.8796776286e-01,  8.0805658142e-02,  7.9438886955e-01
+    },
+    {
+         0,  0,  0,  0,  0, -4.1312233303e-01, -1.5778437629e+00,
+        -2.0254385010e+00,  0,  0,  0,  0,  0,  1.2224804504e+00,
+         1.3493399296e+00,  1.2588607030e+00,  0,  0,  0,  0,  0,
+        -3.3793778288e-01, -1.1693448984e+00, -1.6089456889e+00,  0,
+         0,  0,  0,  0,  8.1800899120e-01,  7.4110309645e-01,
+         7.9436906530e-01
+    },
+    {
+         0,  0,  0,  0,  0,  0,  3.7981427621e+00, -2.0254074089e+00,
+         0,  0,  0,  0,  0,  0,  1.1949347672e+06,  1.2588219024e+00,
+         0,  0,  0,  0,  0,  0,  3.1785356545e-06, -1.6089705820e+00,
+         0,  0,  0,  0,  0,  0,  8.3686576664e-07,  7.9439355010e-01
+    },
+    {
+         0,  0,  0,  0,  0,  0,  1.1963038835e+00,  1.6280915216e+00,
+         0,  0,  0,  0,  0,  0,  1.4765558445e+00,  1.4280673157e+00,
+         0,  0,  0,  0,  0,  0,  8.1019887460e-01,  1.1400663706e+00,
+         0,  0,  0,  0,  0,  0,  6.7725172991e-01,  7.0024710250e-01
+    },
+    {
+         0,  0,  0,  0,  0,  0,  0,  5.7073843266e-01,  0,  0,  0,
+         0,  0,  0,  0,  1.2630754212e+00,  0,  0,  0,  0,  0,  0,
+         0,  4.5186409544e-01,  0,  0,  0,  0,  0,  0,  0,
+         7.9171835920e-01
+    },
+    {
+         0,  0,  0,  0,  0,  0,  0,  2.3944572940e+00,  0,  0,  0,
+         0,  0,  0,  0,  1.4688326835e+00,  0,  0,  0,  0,  0,  0,
+         0,  1.6301770248e+00,  0,  0,  0,  0,  0,  0,  0,
+         6.8081273737e-01
+    },
+    {
+         2.6381812739e-12,  1.1350624673e-04,  5.5795188935e-04,
+         1.4547511350e-03,  3.5479630060e-03,  7.0336131852e-03,
+         6.1219730629e-12,  1.4585341955e-04
+    }
+};
+
+const float fb_biquad_22050_hz[NBIQUAD + 1][4 * NBAND]
+__attribute__ ((aligned(16))) = {
+    {
+         2,  0,  0,  0,  0,  0,  0, -2,  1, -1, -1, -1, -1, -1, -1,
+         1, -1.9948310450e+00, -1.9895135805e+00, -1.9777580543e+00,
+        -1.9515965903e+00, -1.8774935689e+00, -1.6585725051e+00,
+        -1.0191908866e+00,  4.8653756337e-02,  9.9536531603e-01,
+         9.9034680015e-01,  9.8110638552e-01,  9.6543321433e-01,
+         9.3156800873e-01,  8.4924746446e-01,  7.3612891981e-01,
+         8.1761526231e-01
+    },
+    {
+         2,  0,  0,  0,  0,  0,  0, -2,  1, -1, -1, -1, -1, -1, -1,
+         1, -1.9870654315e+00, -1.9835044228e+00, -1.9642924827e+00,
+        -1.9222874380e+00, -1.7932803411e+00, -1.3573825893e+00,
+        -3.4013034723e-01,  4.0403425741e-01,  9.8738776610e-01,
+         9.8541242526e-01,  9.7179668271e-01,  9.5072442556e-01,
+         9.0367327346e-01,  7.8603113004e-01,  6.8933356817e-01,
+         4.9339579264e-01
+    },
+    {
+         2, -2.0079207138e+00, -2.0217138955e+00, -2.0276955874e+00,
+        -2.0390188104e+00, -2.0312201446e+00, -1.0918965229e+00, -2,
+         1,  1.0115105757e+00,  1.0233855892e+00,  1.0362822440e+00,
+         1.0731925378e+00,  1.1631536606e+00,  1.3486772938e+00,  1,
+        -1.9826978912e+00, -1.9850713992e+00, -1.9755153062e+00,
+        -1.9567020464e+00, -1.8999561948e+00, -1.7463042188e+00,
+        -8.0960547636e-01,  8.2868336185e-01,  9.8281014397e-01,
+         9.8862040991e-01,  9.7714879960e-01,  9.6498806752e-01,
+         9.3179924829e-01,  8.5973163639e-01,  7.4146721725e-01,
+         2.4403448999e-01
+    },
+    {
+        -2.0052455229e+00, -2.0143136006e+00, -2.0168434243e+00,
+        -1.9782599960e+00, -1.8475368216e+00, -1.8721404348e+00,
+        -1.7061047569e+00, -7.9610106299e-01,  1.0061440468e+00,
+         1.0157415627e+00,  1.0274596892e+00,  1.0377363998e+00,
+         1.0740661156e+00,  1.2660353363e+00,  1.2368520154e+00,
+         1.4481914451e+00, -1.9930004349e+00, -1.9830965618e+00,
+        -1.9629416565e+00, -1.9063222571e+00, -1.7201332346e+00,
+        -1.4787426394e+00, -1.3793927937e+00, -5.4972087128e-01,
+         9.9389347197e-01,  9.8450239388e-01,  9.7327419317e-01,
+         9.6363585219e-01,  9.3104138141e-01,  7.8986736889e-01,
+         8.0850416020e-01,  6.9051643922e-01
+    },
+    {
+        -2.0151430202e+00, -2.0391140888e+00, -2.0620946669e+00,
+        -2.0413256647e+00, -2.0437716781e+00, -1.6488411432e+00,
+         1.3506232105e-01, -3.7654809231e-01,  1.0152242820e+00,
+         1.0397269421e+00,  1.0634751877e+00,  1.0756692329e+00,
+         1.1687141423e+00,  1.2768680758e+00,  1.2298822395e+00,
+         1.3141424145e+00, -1.9849239779e+00, -1.9612015484e+00,
+        -1.9390153064e+00, -1.8977261804e+00, -1.7487353016e+00,
+        -1.2913167573e+00,  1.0981727902e-01, -2.8653522491e-01,
+         9.8500402103e-01,  9.6179098523e-01,  9.4031342862e-01,
+         9.2965380940e-01,  8.5564122470e-01,  7.8316626356e-01,
+         8.1308597515e-01,  7.6095253374e-01
+    },
+    {
+        -2.0116915013e+00, -2.0078290158e+00, -2.0247857203e+00,
+        -2.0381964383e+00, -2.0522003700e+00, -1.4211771549e+00,
+        -1.5349543492e+00,  2.1808448256e+00,  1.0119291896e+00,
+         1.0082099308e+00,  1.0305972258e+00,  1.0590726209e+00,
+         1.1376149937e+00,  1.2166934057e+00,  1.3610184682e+00,
+         3.4262392640e+00, -1.9879765520e+00, -1.9914791102e+00,
+        -1.9646722013e+00, -1.9245105559e+00, -1.8039498259e+00,
+        -1.1680651413e+00, -1.1277983253e+00,  6.3651270607e-01,
+         9.8821143836e-01,  9.9185692334e-01,  9.7031117003e-01,
+         9.4422231328e-01,  8.7903201479e-01,  8.2189974510e-01,
+         7.3474388727e-01,  2.9186519765e-01
+    },
+    {
+        -2.1277329657e+00, -2.0121363771e+00, -2.0067543848e+00,
+        -2.0048849816e+00, -1.9237749905e+00, -1.1979570068e+00,
+        -7.1302178627e-01,  5.3395410862e-01,  1.1332898581e+00,
+         1.0147795724e+00,  1.0213079638e+00,  1.0505862032e+00,
+         1.0984128896e+00,  1.1571877778e+00,  1.3651953834e+00,
+         1.3879082818e+00, -1.8774834615e+00, -1.9828309831e+00,
+        -1.9648866511e+00, -1.9083488586e+00, -1.7514133425e+00,
+        -1.0352312994e+00, -5.2228552405e-01,  3.8471858380e-01,
+         8.8238678997e-01,  9.8543568202e-01,  9.7913659292e-01,
+         9.5184954552e-01,  9.1040446581e-01,  8.6416398377e-01,
+         7.3249588457e-01,  7.2050870588e-01
+    },
+    {
+         0,  0,  0,  0,  0, -2.0746881562e+00, -2.2569435297e-01,
+         1.1415814725e+00,  0,  0,  0,  0,  0,  1.3916395489e+00,
+         1.3279606465e+00,  1.4345008402e+00,  0,  0,  0,  0,  0,
+        -1.4908229346e+00, -1.6995560340e-01,  7.9580397625e-01,  0,
+         0,  0,  0,  0,  7.1857687633e-01,  7.5303436335e-01,
+         6.9710659764e-01
+    },
+    {
+         0,  0,  0,  0,  0,  0,  0,  1.6758390476e+00,  0,  0,  0,
+         0,  0,  0,  0,  1.4477013693e+00,  0,  0,  0,  0,  0,  0,
+         0,  1.1575861453e+00,  0,  0,  0,  0,  0,  0,  0,
+         6.9075019282e-01
+    },
+    {
+         0,  0,  0,  0,  0,  0,  0,  2.6698110616e+00,  0,  0,  0,
+         0,  0,  0,  0,  1.9023516961e+00,  0,  0,  0,  0,  0,  0,
+         0,  1.4034266466e+00,  0,  0,  0,  0,  0,  0,  0,
+         5.2566515541e-01
+    },
+    {
+         0,  0,  0,  0,  0,  0,  0,  2.4804649843e+00,  0,  0,  0,
+         0,  0,  0,  0,  1.5833706986e+00,  0,  0,  0,  0,  0,  0,
+         0,  1.5665724940e+00,  0,  0,  0,  0,  0,  0,  0,
+         6.3156404302e-01
+    },
+    {
+         0,  0,  0,  0,  0,  0,  0,  2.1097997298e+00,  0,  0,  0,
+         0,  0,  0,  0,  1.4779282756e+00,  0,  0,  0,  0,  0,  0,
+         0,  1.4275386462e+00,  0,  0,  0,  0,  0,  0,  0,
+         6.7662282161e-01
+    },
+    {
+         2.5343844965e-13,  8.1020705281e-05,  2.8415894263e-04,
+         8.2424179135e-04,  2.4415404158e-03,  5.5584186734e-03,
+         1.0302332454e-02,  1.4691712131e-04
+    }
+};
+
+const float fb_biquad_32000_hz[NBIQUAD + 1][4 * NBAND]
+__attribute__ ((aligned(16))) = {
+    {
+         2,  0,  0,  0,  0,  0,  0, -2,  1, -1, -1, -1, -1, -1, -1,
+         1, -1.9964460079e+00, -1.9933679814e+00, -1.9857772669e+00,
+        -1.9696568109e+00, -1.9255669547e+00, -1.8020604876e+00,
+        -1.4426827554e+00, -7.9967563257e-01,  9.9671432485e-01,
+         9.9377895155e-01,  9.8740297685e-01,  9.7629795978e-01,
+         9.5126221067e-01,  8.9770111390e-01,  8.2404723580e-01,
+         8.3429419966e-01
+    },
+    {
+         2,  0,  0,  0,  0,  0,  0, -2,  1, -1, -1, -1, -1, -1, -1,
+         1, -1.9908865384e+00, -1.9900475880e+00, -1.9779958939e+00,
+        -1.9526775732e+00, -1.8758888127e+00, -1.6399412849e+00,
+        -1.0549439758e+00, -3.1723907292e-01,  9.9104860281e-01,
+         9.9092372435e-01,  9.8151037163e-01,  9.6624216381e-01,
+         9.2995380926e-01,  8.5200929134e-01,  7.7497448511e-01,
+         4.8779945555e-01
+    },
+    {
+         2, -2.0076842578e+00, -2.0112932171e+00, -2.0206330608e+00,
+        -2.0339617714e+00, -2.0474767433e+00, -1.9226375063e+00, -2,
+         1,  1.0079835747e+00,  1.0122838177e+00,  1.0246653731e+00,
+         1.0498834033e+00,  1.1087403777e+00,  1.2523073544e+00,  1,
+        -1.9877353666e+00, -1.9917827117e+00, -1.9868866635e+00,
+        -1.9719931149e+00, -1.9373215778e+00, -1.8466692335e+00,
+        -1.5352760642e+00,  3.3784310468e-01,  9.8779184170e-01,
+         9.9207965792e-01,  9.8786524343e-01,  9.7592836286e-01,
+         9.5248672075e-01,  9.0192440010e-01,  7.9852601399e-01,
+         1.2538487010e-01
+    },
+    {
+        -2.0136065376e+00, -2.0063057318e+00, -2.0190513684e+00,
+        -2.0403181081e+00, -2.0451379316e+00, -1.7620992622e+00,
+        -1.1006744129e+00, -1.3565155970e+00,  1.0136743039e+00,
+         1.0074991675e+00,  1.0228742943e+00,  1.0558395177e+00,
+         1.1029076663e+00,  1.1364647363e+00,  1.2854976714e+00,
+         1.3132851426e+00, -1.9864433081e+00, -1.9913720989e+00,
+        -1.9738998033e+00, -1.9324130930e+00, -1.8543147301e+00,
+        -1.5505094051e+00, -8.5622435374e-01, -1.0329177974e+00,
+         9.8651016024e-01,  9.9255665147e-01,  9.7763723810e-01,
+         9.4711363163e-01,  9.0669421435e-01,  8.7992171520e-01,
+         7.7790883817e-01,  7.6144925997e-01
+    },
+    {
+        -2.0125517023e+00, -2.0077060539e+00, -2.0164189737e+00,
+        -2.0128622127e+00, -1.9832955071e+00, -1.8822989956e+00,
+        -8.1156705238e-01, -1.6026408855e+00,  1.0126075840e+00,
+         1.0083927830e+00,  1.0187705405e+00,  1.0338273825e+00,
+         1.0660512721e+00,  1.1707543220e+00,  1.2021548625e+00,
+         2.8998124253e+08, -1.9874942022e+00, -1.9909960561e+00,
+        -1.9792670611e+00, -1.9470002892e+00, -1.8604128703e+00,
+        -1.6077660020e+00, -6.7509359877e-01, -5.5267053536e-09,
+         9.8754938815e-01,  9.9167706957e-01,  9.8157530106e-01,
+         9.6727946749e-01,  9.3804118634e-01,  8.5415016730e-01,
+         8.3183958342e-01,  3.4484989142e-09
+    },
+    {
+        -2.0075959529e+00, -2.0042951292e+00, -2.0055074637e+00,
+        -2.0328653048e+00, -2.0504662937e+00, -1.9832270738e+00,
+        -1.9845853887e+00, -4.8628199486e-01,  1.0077450783e+00,
+         1.0059355870e+00,  1.0124798055e+00,  1.0427620951e+00,
+         1.0891207848e+00,  1.1617051113e+00,  1.1688210048e+00,
+         1.3503143955e+00, -1.9921664676e+00, -1.9924686581e+00,
+        -1.9807876196e+00, -1.9495005758e+00, -1.8826803440e+00,
+        -1.7071691039e+00, -1.6979378199e+00, -3.6012501718e-01,
+         9.9231444692e-01,  9.9409943626e-01,  9.8767402038e-01,
+         9.5899151369e-01,  9.1817180794e-01,  8.6080364995e-01,
+         8.5556299547e-01,  7.4056827311e-01
+    },
+    {
+        -2.0037355244e+00,  0, -2.0110191003e+00, -1.9977661390e+00,
+        -1.9422771566e+00, -1.6401814868e+00, -1.6452591889e+00,
+         1.8837184382e-01,  1.0041490025e+00,  0,  1.0163642735e+00,
+         1.0252988099e+00,  1.0499630692e+00,  1.1011156648e+00,
+         1.3101941498e+00,  1.3572769395e+00, -1.9954563710e+00,  0,
+        -1.9786400926e+00, -1.9484721133e+00, -1.8498528316e+00,
+        -1.4895633032e+00, -1.2557369373e+00,  1.3878659420e-01,
+         9.9586814061e-01,  0,  9.8389920428e-01,  9.7532542739e-01,
+         9.5241445089e-01,  9.0816980628e-01,  7.6324566108e-01,
+         7.3676931426e-01
+    },
+    {
+         0,  0,  0,  0,  0, -2.1385376329e+00, -1.4956638796e+00,
+         8.3170458515e-01,  0,  0,  0,  0,  0,  1.2737191567e+00,
+         1.4532192871e+00,  1.3593608753e+00,  0,  0,  0,  0,  0,
+        -1.6789710837e+00, -1.0292072868e+00,  6.1183501767e-01,  0,
+         0,  0,  0,  0,  7.8510242602e-01,  6.8812739333e-01,
+         7.3563982764e-01
+    },
+    {
+         0,  0,  0,  0,  0,  0,  0,  1.4170147327e+00,  0,  0,  0,
+         0,  0,  0,  0,  1.3701664305e+00,  0,  0,  0,  0,  0,  0,
+         0,  1.0341916873e+00,  0,  0,  0,  0,  0,  0,  0,
+         7.2983834500e-01
+    },
+    {
+         0,  0,  0,  0,  0,  0,  0,  1.9223904167e+00,  0,  0,  0,
+         0,  0,  0,  0,  1.4111461769e+00,  0,  0,  0,  0,  0,  0,
+         0,  1.3622900647e+00,  0,  0,  0,  0,  0,  0,  0,
+         7.0864380766e-01
+    },
+    {
+         0,  0,  0,  0,  0,  0,  0,  2.3545067349e+00,  0,  0,  0,
+         0,  0,  0,  0,  1.6000797392e+00,  0,  0,  0,  0,  0,  0,
+         0,  1.4714933745e+00,  0,  0,  0,  0,  0,  0,  0,
+         6.2496885342e-01
+    },
+    {
+         0,  0,  0,  0,  0,  0,  0,  2.3810006624e+00,  0,  0,  0,
+         0,  0,  0,  0,  1.4528373638e+00,  0,  0,  0,  0,  0,  0,
+         0,  1.6388624919e+00,  0,  0,  0,  0,  0,  0,  0,
+         6.8830828894e-01
+    },
+    {
+         3.6309862034e-14,  3.4222619261e-05,  1.3416854269e-04,
+         4.1633951736e-04,  1.5105579866e-03,  3.9702565459e-03,
+         5.7511782038e-03,  1.3484034942e-11
+    }
+};
+
+const float fb_biquad_44100_hz[NBIQUAD + 1][4 * NBAND]
+__attribute__ ((aligned(16))) = {
+    {
+         2,  0,  0,  0,  0,  0,  0, -2,  1, -1, -1, -1, -1, -1, -1,
+         1, -1.9974530557e+00, -1.9953659018e+00, -1.9897765344e+00,
+        -1.9796668329e+00, -1.9500075853e+00, -1.8742963987e+00,
+        -1.6608079572e+00, -1.2603358086e+00,  9.9759655857e-01,
+         9.9558493574e-01,  9.9062332677e-01,  9.8322157814e-01,
+         9.6344683091e-01,  9.2607016723e-01,  8.6920232879e-01,
+         8.6236855467e-01
+    },
+    {
+         2,  0,  0,  0,  0,  0,  0, -2,  1, -1, -1, -1, -1, -1, -1,
+         1, -1.9933604812e+00, -1.9931706082e+00, -1.9841745372e+00,
+        -1.9692590749e+00, -1.9172962076e+00, -1.7778642139e+00,
+        -1.4185763368e+00, -7.9458105630e-01,  9.9344722243e-01,
+         9.9362740414e-01,  9.8605282870e-01,  9.7635166643e-01,
+         9.4647883476e-01,  8.9208953237e-01,  8.2492455972e-01,
+         5.3657025117e-01
+    },
+    {
+         2, -2.0055783028e+00, -2.0083492550e+00, -2.0157095137e+00,
+        -2.0275633367e+00, -2.0463082820e+00, -2.0116761348e+00, -2,
+         1,  1.0057336532e+00,  1.0088686997e+00,  1.0178532420e+00,
+         1.0358280494e+00,  1.0789313438e+00,  1.1805090019e+00,  1,
+        -1.9910290953e+00, -1.9941445695e+00, -1.9906943844e+00,
+        -1.9803537785e+00, -1.9574323536e+00, -1.8966065762e+00,
+        -1.7040752181e+00, -5.0793997544e-02,  9.9105933518e-01,
+         9.9429903420e-01,  9.9120926275e-01,  9.8245990556e-01,
+         9.6541119984e-01,  9.2684303382e-01,  8.4709222751e-01,
+         1.0260592784e-01
+    },
+    {
+        -2.0027643834e+00, -2.0058664582e+00, -2.0136202602e+00,
+        -2.0396821621e+00, -2.0033420728e+00, -1.9734817345e+00,
+        -1.5658420562e+00, -1.8581855186e+00,  1.0029885649e+00,
+         1.0062270404e+00,  1.0156276003e+00,  1.0481554037e+00,
+         1.0470859915e+00,  1.1240369799e+00,  1.2011169956e+00,
+         1.3092305731e+00, -1.9967968264e+00, -1.9934531449e+00,
+        -1.9826364109e+00, -1.9459730446e+00, -1.9132545836e+00,
+        -1.7557089045e+00, -1.3036548995e+00, -1.4192958496e+00,
+         9.9702033998e-01,  9.9381149562e-01,  9.8461286374e-01,
+         9.5405700003e-01,  9.5503139961e-01,  8.8965044560e-01,
+         8.3255836333e-01,  7.6380739996e-01
+    },
+    {
+        -2.0091954152e+00, -2.0048534684e+00, -2.0087804960e+00,
+        -2.0144595392e+00, -1.9789004478e+00, -1.8301291767e+00,
+        -2.0371876710e+00,  1.6807081141e-01,  1.0092254200e+00,
+         1.0054797785e+00,  1.0116153722e+00,  1.0252662406e+00,
+         1.0358393300e+00,  1.0736777138e+00,  1.1333541214e+00,
+         1.2878367704e+00, -1.9908291798e+00, -1.9939271891e+00,
+        -1.9857156693e+00, -1.9648160248e+00, -1.9104318503e+00,
+        -1.7045423903e+00, -1.7974855630e+00,  1.3050629961e-01,
+         9.9085891037e-01,  9.9455008584e-01,  9.8851799551e-01,
+         9.7535641028e-01,  9.6540068624e-01,  9.3137818467e-01,
+         8.8233675700e-01,  7.7649592170e-01
+    },
+    {
+        -2.0059785730e+00, -2.0034958064e+00, -2.0116575770e+00,
+        -2.0260688656e+00, -2.0399196493e+00, -2.0242656083e+00,
+        -1.8026452282e+00, -1.0853542116e+00,  1.0060564384e+00,
+         1.0043538815e+00,  1.0128851157e+00,  1.0314488739e+00,
+         1.0595360579e+00,  1.1158421209e+00,  1.2984688162e+00,
+         1.3047661257e+00, -1.9939026245e+00, -1.9948106373e+00,
+        -1.9860668755e+00, -1.9642940302e+00, -1.9252951648e+00,
+        -1.8141147125e+00, -1.3882853448e+00, -8.3183812807e-01,
+         9.9398002122e-01,  9.9566499258e-01,  9.8727879846e-01,
+         9.6951000215e-01,  9.4380931400e-01,  8.9618412971e-01,
+         7.7013786355e-01,  7.6642087828e-01
+    },
+    {
+        -2.0112759599e+00,  0, -2.0052343264e+00, -2.0043722213e+00,
+        -2.0373779990e+00, -2.1468539290e+00, -1.8710349222e+00,
+         7.7739576827e-01,  1.0113216424e+00,  0,  1.0089320213e+00,
+         1.0187020057e+00,  1.0676602375e+00,  1.2192966030e+00,
+         1.2149183394e+00,  1.2846694202e+00, -1.9887599310e+00,  0,
+        -1.9874820940e+00, -1.9675746293e+00, -1.9082643780e+00,
+        -1.7607314936e+00, -1.5400499453e+00,  6.0513292841e-01,
+         9.8880510219e-01,  0,  9.9114705338e-01,  9.8164133806e-01,
+         9.3662755705e-01,  8.2014498976e-01,  8.2310058835e-01,
+         7.7841037103e-01
+    },
+    {
+         0,  0,  0,  0,  0, -1.9032201418e+00, -1.3841191350e+00,
+        -4.6363899817e-01,  0,  0,  0,  0,  0,  1.0994830086e+00,
+         1.1454224892e+00,  1.2934500498e+00,  0,  0,  0,  0,  0,
+        -1.7310136918e+00, -1.2083917926e+00, -3.5845141312e-01,  0,
+         0,  0,  0,  0,  9.0951837558e-01,  8.7304030556e-01,
+         7.7312610574e-01
+    },
+    {
+         0,  0,  0,  0,  0,  0,  0,  1.3230466965e+00,  0,  0,  0,
+         0,  0,  0,  0,  1.2814820925e+00,  0,  0,  0,  0,  0,  0,
+         0,  1.0324347912e+00,  0,  0,  0,  0,  0,  0,  0,
+         7.8034644876e-01
+    },
+    {
+         0,  0,  0,  0,  0,  0,  0,  1.7677260352e+00,  0,  0,  0,
+         0,  0,  0,  0,  1.2802214218e+00,  0,  0,  0,  0,  0,  0,
+         0,  1.3807971067e+00,  0,  0,  0,  0,  0,  0,  0,
+         7.8111487826e-01
+    },
+    {
+         0,  0,  0,  0,  0,  0,  0,  2.0831220722e+00,  0,  0,  0,
+         0,  0,  0,  0,  1.2815644572e+00,  0,  0,  0,  0,  0,  0,
+         0,  1.6254524386e+00,  0,  0,  0,  0,  0,  0,  0,
+         7.8029629675e-01
+    },
+    {
+         0,  0,  0,  0,  0,  0,  0,  2.2508595101e+00,  0,  0,  0,
+         0,  0,  0,  0,  1.2889087427e+00,  0,  0,  0,  0,  0,  0,
+         0,  1.7463296163e+00,  0,  0,  0,  0,  0,  0,  0,
+         7.7585011789e-01
+    },
+    {
+         5.6129465420e-15,  1.7153472888e-05,  7.7386736876e-05,
+         2.1432574858e-04,  9.6384598243e-04,  2.5742285831e-03,
+         4.9209894879e-03,  1.3016383693e-02
+    }
+};
+
+const float fb_biquad_48000_hz[NBIQUAD + 1][4 * NBAND]
+__attribute__ ((aligned(16))) = {
+    {
+         2,  0,  0,  0,  0,  0,  0, -2,  1, -1, -1, -1, -1, -1, -1,
+         1, -1.9976725532e+00, -1.9957569678e+00, -1.9906690369e+00,
+        -1.9815672138e+00, -1.9550132147e+00, -1.8880325255e+00,
+        -1.7020161765e+00, -1.3526444760e+00,  9.9779349042e-01,
+         9.9594186485e-01,  9.9138419608e-01,  9.8456950708e-01,
+         9.6637745490e-01,  9.3189391817e-01,  8.7945008386e-01,
+         8.7033935535e-01
+    },
+    {
+         2,  0,  0,  0,  0,  0,  0, -2,  1, -1, -1, -1, -1, -1, -1,
+         1, -1.9939100160e+00, -1.9937556131e+00, -1.9855973986e+00,
+        -1.9722460483e+00, -1.9260248809e+00, -1.8032576562e+00,
+        -1.4898758717e+00, -9.0265978852e-01,  9.9398312958e-01,
+         9.9414134597e-01,  9.8718359218e-01,  9.7824013522e-01,
+         9.5071950170e-01,  9.0026809633e-01,  8.3738972984e-01,
+         5.5418522680e-01
+    },
+    {
+         2, -2.0042386809e+00, -2.0077096912e+00, -2.0145788283e+00,
+        -2.0258580693e+00, -2.0448413489e+00, -2.0163834815e+00, -2,
+         1,  1.0043548865e+00,  1.0081474664e+00,  1.0163869784e+00,
+         1.0328136228e+00,  1.0723959731e+00,  1.1584218166e+00,  1,
+        -1.9917642539e+00, -1.9955482947e+00, -1.9914841410e+00,
+        -1.9820982275e+00, -1.9614943342e+00, -1.9067969296e+00,
+        -1.7406297539e+00, -1.5107917618e-01,  9.9178974530e-01,
+         9.9566399635e-01,  9.9191837832e-01,  9.8387722519e-01,
+         9.6822890205e-01,  9.3249137916e-01,  8.6324341071e-01,
+         1.0673175994e-01
+    },
+    {
+        -2.0109021976e+00, -2.0065369571e+00, -2.0126787962e+00,
+        -2.0140735522e+00, -1.9847504022e+00, -1.9873624919e+00,
+        -2.0224369916e+00, -2.0142568616e+00,  1.0109567917e+00,
+         1.0070247239e+00,  1.0143642919e+00,  1.0232065218e+00,
+         1.0327223317e+00,  1.1142683464e+00,  1.1018653550e+00,
+         1.5678659760e+00, -1.9891079560e+00, -1.9925399143e+00,
+        -1.9841774916e+00, -1.9683939745e+00, -1.9218625774e+00,
+        -1.7835582409e+00, -1.8354665408e+00, -1.2847124004e+00,
+         9.8916195843e-01,  9.9302427860e-01,  9.8583911917e-01,
+         9.7731980661e-01,  9.6831449197e-01,  8.9744988557e-01,
+         9.0755190317e-01,  6.3780961850e-01
+    },
+    {
+        -2.0092672817e+00, -2.0054466129e+00, -2.0082460197e+00,
+        -2.0365455986e+00, -2.0362255654e+00, -1.9260582676e+00,
+        -1.6501586090e+00, -4.7935342302e-01,  1.0093075256e+00,
+         1.0060957196e+00,  1.0106313452e+00,  1.0436966055e+00,
+         1.0616105917e+00,  1.0916454774e+00,  1.1805231808e+00,
+         1.2488395996e+00, -1.9907384329e+00, -1.9932960392e+00,
+        -1.9871202583e+00, -1.9512812324e+00, -1.9180531744e+00,
+        -1.7643624304e+00, -1.3978197428e+00, -3.8383906401e-01,
+         9.9077830559e-01,  9.9394121308e-01,  9.8948049133e-01,
+         9.5813284697e-01,  9.4196498022e-01,  9.1604831490e-01,
+         8.4708205330e-01,  8.0074334630e-01
+    },
+    {
+        -2.0022285550e+00, -2.0057151368e+00, -2.0108657261e+00,
+        -2.0242806039e+00, -2.0382842430e+00, -2.1420561665e+00,
+        -1.4932248718e+00, -1.1103198065e+00,  1.0024464651e+00,
+         1.0059941227e+00,  1.0118992758e+00,  1.0288103429e+00,
+         1.0547663584e+00,  1.2038432078e+00,  1.1310393585e+00,
+         1.2687500886e+00, -1.9973421271e+00, -1.9937642691e+00,
+        -1.9872192561e+00, -1.9675935588e+00, -1.9324509421e+00,
+        -1.7793481349e+00, -1.3202236161e+00, -8.7512885037e-01,
+         9.9755950545e-01,  9.9404159269e-01,  9.8824065192e-01,
+         9.7199644903e-01,  9.4807726091e-01,  8.3067295935e-01,
+         8.8414253007e-01,  7.8817728485e-01
+    },
+    {
+         0, -2.0036671019e+00, -2.0050552369e+00, -2.0050633791e+00,
+        -2.0061302919e+00, -1.8620409361e+00, -1.9094290597e+00,
+         1.5294567991e-01,  0,  1.0044982354e+00,  1.0081688616e+00,
+         1.0171734366e+00,  1.0429438693e+00,  1.0678409740e+00,
+         1.1954548229e+00,  1.2429292824e+00,  0, -1.9946944965e+00,
+        -1.9888089320e+00, -1.9712109135e+00, -1.9235266163e+00,
+        -1.7437436673e+00, -1.5972406678e+00,  1.2305260007e-01,  0,
+         9.9552190810e-01,  9.9189732798e-01,  9.8311651093e-01,
+         9.5882437152e-01,  9.3646902896e-01,  8.3650170701e-01,
+         8.0455100234e-01
+    },
+    {
+         0,  0,  0,  0,  0, -2.0296574374e+00, -1.8541859317e+00,
+         1.3022781712e+00,  0,  0,  0,  0,  0,  1.1066245752e+00,
+         1.2597870876e+00,  1.2387274182e+00,  0,  0,  0,  0,  0,
+        -1.8340975638e+00, -1.4718248425e+00,  1.0513032586e+00,  0,
+         0,  0,  0,  0,  9.0364882765e-01,  7.9378492595e-01,
+         8.0728010484e-01
+    },
+    {
+         0,  0,  0,  0,  0,  0,  0,  7.6001132598e-01,  0,  0,  0,
+         0,  0,  0,  0,  1.2400523225e+00,  0,  0,  0,  0,  0,  0,
+         0,  6.1288649855e-01,  0,  0,  0,  0,  0,  0,  0,
+         8.0641758564e-01
+    },
+    {
+         0,  0,  0,  0,  0,  0,  0,  1.7445963314e+00,  0,  0,  0,
+         0,  0,  0,  0,  1.2382952762e+00,  0,  0,  0,  0,  0,  0,
+         0,  1.4088694069e+00,  0,  0,  0,  0,  0,  0,  0,
+         8.0756183054e-01
+    },
+    {
+         0,  0,  0,  0,  0,  0,  0,  2.0625875554e+00,  0,  0,  0,
+         0,  0,  0,  0,  1.2459380587e+00,  0,  0,  0,  0,  0,  0,
+         0,  1.6554495154e+00,  0,  0,  0,  0,  0,  0,  0,
+         8.0260811768e-01
+    },
+    {
+         0,  0,  0,  0,  0,  0,  0,  2.2615517201e+00,  0,  0,  0,
+         0,  0,  0,  0,  1.2969413311e+00,  0,  0,  0,  0,  0,  0,
+         0,  1.7437579217e+00,  0,  0,  0,  0,  0,  0,  0,
+         7.7104490081e-01
+    },
+    {
+         3.3841902232e-15,  1.4406570248e-05,  6.5645671893e-05,
+         1.8351943367e-04,  8.3283773672e-04,  2.3001920265e-03,
+         4.7628137897e-03,  1.6116710996e-02
+    }
+};
+
+const float fb_biquad_96000_hz[NBIQUAD + 1][4 * NBAND]
+__attribute__ ((aligned(16))) = {
+    {
+         2,  0,  0,  0,  0,  0,  0, -2,  1, -1, -1, -1, -1, -1, -1,
+         1, -1.9988623767e+00, -1.9979450084e+00, -1.9954685263e+00,
+        -1.9911714096e+00, -1.9808543202e+00, -1.9543110272e+00,
+        -1.8917761654e+00, -1.7857001319e+00,  9.9889280961e-01,
+         9.9799152654e-01,  9.9564690656e-01,  9.9190990477e-01,
+         9.8378731467e-01,  9.6551547957e-01,  9.3794601017e-01,
+         9.2723367111e-01
+    },
+    {
+         2,  0,  0,  0,  0,  0,  0, -2,  1, -1, -1, -1, -1, -1, -1,
+         1, -1.9969595724e+00, -1.9970182486e+00, -1.9930884469e+00,
+        -1.9868016054e+00, -1.9704886596e+00, -1.9237796910e+00,
+        -1.8198959280e+00, -1.5117293750e+00,  9.9697798821e-01,
+         9.9711431764e-01,  9.9348808134e-01,  9.8833898124e-01,
+         9.7661685299e-01,  9.4879001014e-01,  9.1300069157e-01,
+         7.1478430840e-01
+    },
+    {
+         2, -2.0021360623e+00, -2.0039629461e+00, -2.0077897382e+00,
+        -2.0145991692e+00, -2.0286637236e+00, -2.0471817307e+00, -2,
+         1,  1.0021652057e+00,  1.0040715186e+00,  1.0082351554e+00,
+         1.0163579454e+00,  1.0354227477e+00,  1.0673102408e+00,  1,
+        -1.9958677004e+00, -1.9978103919e+00, -1.9958368593e+00,
+        -1.9913903294e+00, -1.9821748610e+00, -1.9592613048e+00,
+        -1.9180756001e+00, -8.7563229295e-01,  9.9587412464e-01,
+         9.9783947231e-01,  9.9594499145e-01,  9.9183210846e-01,
+         9.8390533033e-01,  9.6578909653e-01,  9.3693469973e-01,
+         2.6085448623e-01
+    },
+    {
+        -2.0041926355e+00, -2.0032097827e+00, -2.0033215437e+00,
+        -2.0155137276e+00, -2.0045911521e+00, -2.0035567171e+00,
+        -1.9531789434e+00, -5.2080717707e+00,  1.0041985845e+00,
+         1.0033325862e+00,  1.0040880829e+00,  1.0172423994e+00,
+         1.0165415187e+00,  1.0444629096e+00,  1.0876411511e+00,
+         1.1675505210e+01, -1.9958130458e+00, -1.9965560874e+00,
+        -1.9951651432e+00, -1.9813504911e+00, -1.9719717445e+00,
+        -1.9182650706e+00, -1.7957935313e+00, -4.4606821523e-01,
+         9.9581896989e-01,  9.9667848302e-01,  9.9592856149e-01,
+         9.8304986169e-01,  9.8372765063e-01,  9.5742988168e-01,
+         9.1942089450e-01,  8.5649398638e-02
+    },
+    {
+        -2.0031969504e+00, -2.0027634373e+00, -2.0067843677e+00,
+        -2.0054234461e+00, -2.0127466214e+00, -2.0813163930e+00,
+        -1.8989676206e+00, -9.4115656619e-01,  1.0032099689e+00,
+         1.0029276776e+00,  1.0071952588e+00,  1.0084970686e+00,
+         1.0218511181e+00,  1.0958603266e+00,  1.0641935304e+00,
+         1.2078396544e+00, -1.9967873251e+00, -1.9969171077e+00,
+        -1.9924481874e+00, -1.9885267975e+00, -1.9697063357e+00,
+        -1.8992533469e+00, -1.7844194372e+00, -7.7920654677e-01,
+         9.9680030199e-01,  9.9708086863e-01,  9.9285614315e-01,
+         9.9157452323e-01,  9.7861614312e-01,  9.1252505062e-01,
+         9.3967870642e-01,  8.2792446524e-01
+    },
+    {
+        -2.0012852015e+00, -2.0029034676e+00, -2.0057583898e+00,
+        -2.0123754388e+00, -2.0247133498e+00, -2.0237936348e+00,
+        -2.0473614801e+00, -2.1258116539e-01,  1.0013371133e+00,
+         1.0029734972e+00,  1.0060137305e+00,  1.0134514415e+00,
+         1.0289877450e+00,  1.0548671245e+00,  1.0814791266e+00,
+         1.2186594225e+00, -1.9986128297e+00, -1.9969654963e+00,
+        -1.9937684040e+00, -1.9856653772e+00, -1.9676748918e+00,
+        -1.9185294411e+00, -1.8931123400e+00, -1.7443853588e-01,
+         9.9866467215e-01,  9.9703531827e-01,  9.9402221830e-01,
+         9.8672709819e-01,  9.7182887247e-01,  9.4798669593e-01,
+         9.2465954762e-01,  8.2057380558e-01
+    },
+    {
+         0, -2.0018154136e+00, -2.0047349189e+00, -2.0089852010e+00,
+        -2.0287525629e+00, -1.9819410828e+00, -2.0221062039e+00,
+         2.3931658158e+00,  0,  1.0020263291e+00,  1.0053220106e+00,
+         1.0113306590e+00,  1.0351570092e+00,  1.0331935717e+00,
+         1.0924975464e+00,  1.5357967516e+00,  0, -1.9977672795e+00,
+        -1.9941221796e+00, -1.9864771063e+00, -1.9598500952e+00,
+        -1.9182669512e+00, -1.8509022841e+00,  1.5582568548e+00,  0,
+         9.9797776856e-01,  9.9470616327e-01,  9.8879628647e-01,
+         9.6603702736e-01,  9.6787284336e-01,  9.1533386352e-01,
+         6.5112782598e-01
+    },
+    {
+         0,  0,  0,  0,  0, -2.0326665865e+00, -2.0220529584e+00,
+         2.6098898631e+00,  0,  0,  0,  0,  0,  1.0515336776e+00,
+         1.1242338339e+00,  1.7613011720e+00,  0,  0,  0,  0,  0,
+        -1.9330494399e+00, -1.7986053234e+00,  1.4817964722e+00,  0,
+         0,  0,  0,  0,  9.5099189051e-01,  8.8949466724e-01,
+         5.6776207038e-01
+    },
+    {
+         0,  0,  0,  0,  0,  0,  0,  1.7662310959e+00,  0,  0,  0,
+         0,  0,  0,  0,  1.2788054468e+00,  0,  0,  0,  0,  0,  0,
+         0,  1.3811570011e+00,  0,  0,  0,  0,  0,  0,  0,
+         7.8197977850e-01
+    },
+    {
+         0,  0,  0,  0,  0,  0,  0,  5.2199648949e-01,  0,  0,  0,
+         0,  0,  0,  0,  1.2356209443e+00,  0,  0,  0,  0,  0,  0,
+         0,  4.2245681565e-01,  0,  0,  0,  0,  0,  0,  0,
+         8.0930968725e-01
+    },
+    {
+         0,  0,  0,  0,  0,  0,  0,  1.2032642249e+00,  0,  0,  0,
+         0,  0,  0,  0,  1.2507240342e+00,  0,  0,  0,  0,  0,  0,
+         0,  9.6205413185e-01,  0,  0,  0,  0,  0,  0,  0,
+         7.9953688637e-01
+    },
+    {
+         0,  0,  0,  0,  0,  0,  0, -1.5865631734e+00,  0,  0,  0,
+         0,  0,  0,  0,  1.2107388352e+00,  0,  0,  0,  0,  0,  0,
+         0, -1.3104090885e+00,  0,  0,  0,  0,  0,  0,  0,
+         8.2594195455e-01
+    },
+    {
+         5.4813177201e-17,  3.5597768130e-06,  1.7316255415e-05,
+         5.5441849965e-05,  2.1014944709e-04,  8.1627285334e-04,
+         2.0482162300e-03,  3.5337397457e-03
+    }
+};
+
+const float fb_base_delay_16000_hz[NBAND] = {
+    510, 430, 241, 119, 61, 33, 25, 22
+};
+
+const float fb_base_delay_22050_hz[NBAND] = {
+    767, 553, 278, 164, 84, 46, 32, 30
+};
+
+const float fb_base_delay_32000_hz[NBAND] = {
+    1283, 857, 479, 240, 122, 67, 38, 26
+};
+
+const float fb_base_delay_44100_hz[NBAND] = {
+    1730, 1184, 659, 330, 168, 92, 52, 24
+};
+
+const float fb_base_delay_48000_hz[NBAND] = {
+    1390, 1384, 718, 359, 183, 100, 57, 24
+};
+
+const float fb_base_delay_96000_hz[NBAND] = {
+    2945, 2750, 1444, 717, 364, 200, 112, 22
+};
diff --git a/libavfilter/af_hrtf_mitkemar.c b/libavfilter/af_hrtf_mitkemar.c
new file mode 100644
index 0000000..c0d4bab
--- /dev/null
+++ b/libavfilter/af_hrtf_mitkemar.c
@@ -0,0 +1,12296 @@ 
+/*
+ * Copyright (C) 2010-2016 Yue Shi Lai
+ * Author : Yue Shi Lai < ylai at users dot sourceforge dot net >
+ *
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * Input KEMAR measurement data by Bill Gardner <billg@media.mit.edu>
+ * and Keith Martin <kdm@media.mit.edu>, MIT Media Laboratory.
+ *
+ * URL: http://sound.media.mit.edu/KEMAR.html
+ *
+ * Distributed under LGPL with authors' permission.
+ */
+
+#include <math.h>
+#include <string.h>
+#include <sys/types.h>
+#include "libavutil/common.h"
+#include "avfilter.h"
+#include "af_hrtf_mitkemar.h"
+
+static const int hrtf_elevation_range[3] = {
+    -40, 90, 10
+};
+static const size_t hrtf_nazimuth[14] = {
+    56, 60, 72, 72, 72, 72, 72, 60, 56, 45, 36, 24, 12, 1
+};
+/* 2 * pi * integral cos(e) de / hrtf_nazimuth[i] for elevation e = e0
+   - 5 degree..e0 + 5 degree, which is 2 * sin(e0 * pi / 180) * sin(pi
+   / 36) with e0 = -40..90, except for the last one (e0 = 90 degree),
+   which is integrated from 85 degrees to 90 degrees, and gives 2 * pi
+   * (1 - cos(pi / 36)) */
+static const float hrtf_solid_angle[14] = {
+    0.014982069656, 0.015808303079, 0.014294178213, 0.014980449155,
+    0.015211546730, 0.014980449155, 0.014294178213, 0.015808303079,
+    0.014982069656, 0.015644470019, 0.015211546730, 0.015607966178,
+    0.015848744215, 0.023909417039
+};
+
+/*******************************************************************/
+
+/*
+ * Approximation of HRTF by delayed delta impulses. Order 1 are
+ * approximation by a single impulse, order 2 uses two impulse
+ * excitations. Order 2 also stores the overall amplitude, which is
+ * needed for equalization.
+ */
+
+/* 1st order HRTF approximation */
+
+static const float hrtf_amplitude_set_16000_order_1[14][72][8] = {
+    {
+        {
+             -1.3998592756e+03, -7.1437354524e+03, -7.7452851022e+03,
+              8.4801112174e+03, -1.9292461693e+04, -7.1230364426e+04,
+              4.1601577920e+04,  1.8383486460e+04
+        },
+        {
+             -1.5161689118e+03,  6.8917619457e+03, -7.2453738369e+03,
+              8.0358453934e+03, -1.7499202863e+04, -6.9098082273e+04,
+              4.0757954384e+04,  1.9447141462e+04
+        },
+        {
+             -1.5213956586e+03,  6.9158057929e+03, -7.0248213717e+03,
+              7.6974423063e+03, -1.6387563699e+04, -6.4320439496e+04,
+              3.6896177102e+04,  1.6813007544e+04
+        },
+        {
+             -1.4276279732e+03,  6.8507721086e+03, -6.9838628039e+03,
+              7.1307129572e+03, -1.5079036685e+04, -5.8734945230e+04,
+              3.2663099522e+04,  1.3739612895e+04
+        },
+        {
+             -1.2560012714e+03,  6.8275717097e+03, -7.0294222487e+03,
+              6.5629975182e+03, -1.3870569195e+04, -5.3659595731e+04,
+              2.9493134688e+04,  1.1906524450e+04
+        },
+        {
+             -1.1909840735e+03,  6.8256917125e+03, -7.0880676510e+03,
+              6.0418238363e+03, -1.2294839307e+04, -4.7418963034e+04,
+              2.6458537149e+04,  9.6247117231e+03
+        },
+        {
+             -1.0116054484e+03,  6.7447760985e+03, -7.0662508132e+03,
+              5.8373260543e+03,  1.0860166660e+04, -4.2015982711e+04,
+              2.4147578174e+04,  8.1264620669e+03
+        },
+        {
+              1.0586817438e+03,  6.7037232572e+03, -7.0367444813e+03,
+              5.7804367726e+03,  9.5249235188e+03, -3.6647384099e+04,
+              2.2063512000e+04,  7.1974084662e+03
+        },
+        {
+             -1.0913792050e+03,  6.6597192493e+03, -7.0656878975e+03,
+              5.8079260357e+03,  8.2052904913e+03, -3.0248173158e+04,
+              1.9517670968e+04, -5.5379567618e+03
+        },
+        {
+              1.1240595548e+03,  6.6275095866e+03, -7.1630776398e+03,
+              5.8263031960e+03,  7.4139857653e+03, -2.4565444785e+04,
+              1.6912655575e+04, -4.3441814878e+03
+        },
+        {
+              1.0829428606e+03,  6.6453415596e+03, -7.2672413029e+03,
+              5.9080331933e+03,  7.0227237879e+03, -1.8431335086e+04,
+              1.3201187870e+04, -3.7376429814e+03
+        },
+        {
+             -1.1652345728e+03,  6.7160566119e+03, -7.3387749634e+03,
+              6.0278495902e+03,  7.0933364617e+03, -1.5742038783e+04,
+              8.8055621795e+03, -3.2159052551e+03
+        },
+        {
+             -1.2143879818e+03,  6.6636265105e+03, -7.3833125293e+03,
+              6.1957589545e+03,  7.4361016532e+03, -1.7671100062e+04,
+             -4.8641292802e+03, -1.7543326305e+03
+        },
+        {
+             -1.2510050989e+03,  6.6637043537e+03, -7.4384083942e+03,
+              6.2981916499e+03,  7.7170271401e+03, -2.1000899492e+04,
+              7.1126920615e+03,  1.7788879288e+03
+        },
+        {
+             -1.1975144916e+03,  6.6706191069e+03, -7.4505546023e+03,
+              6.3692762614e+03,  7.8357215950e+03, -2.3203525981e+04,
+              1.0258206991e+04,  2.7048778954e+03
+        },
+        {
+             -1.1037241453e+03,  6.7235775221e+03, -7.4748015061e+03,
+              6.3487418638e+03,  7.6660582666e+03, -2.3373772296e+04,
+              1.1387966249e+04, -2.6688397331e+03
+        },
+        {
+             -1.0191887865e+03,  6.6264078276e+03, -7.5036947244e+03,
+              6.2577460599e+03,  7.2483407847e+03, -2.1786988723e+04,
+              9.7339485682e+03,  2.2855642953e+03
+        },
+        {
+              9.7983976503e+02,  6.5854158232e+03, -7.4818096922e+03,
+              6.0912876912e+03,  6.5349658998e+03, -1.9618418572e+04,
+             -8.0010303322e+03, -3.3414804535e+03
+        },
+        {
+              1.1149856654e+03,  6.6079418091e+03, -7.4656359894e+03,
+              5.9163788466e+03,  5.8940626113e+03, -2.0054574595e+04,
+             -1.0804000717e+04, -4.5737217207e+03
+        },
+        {
+              1.0827395102e+03,  6.6312200121e+03, -7.3913181006e+03,
+              5.7335059920e+03,  5.4585641121e+03, -2.4754637389e+04,
+              1.5333897427e+04, -5.1380988009e+03
+        },
+        {
+              1.1179012708e+03,  6.6753214704e+03, -7.3242222893e+03,
+              5.5836876618e+03,  5.6271036667e+03, -3.0851387468e+04,
+              1.7829136131e+04, -5.9051423913e+03
+        },
+        {
+             -1.1622539168e+03,  6.7006443605e+03, -7.2811512869e+03,
+              5.4072579421e+03,  6.3594500128e+03, -3.7062798350e+04,
+              1.9634984222e+04, -7.2704018327e+03
+        },
+        {
+             -1.0921120811e+03,  6.7258150132e+03, -7.2788394497e+03,
+              5.2056342958e+03, -7.8416152483e+03, -4.3488034467e+04,
+              2.2350735323e+04, -8.8447131474e+03
+        },
+        {
+              1.1494967623e+03,  6.7005215272e+03, -7.2986212663e+03,
+              5.0842793073e+03, -9.5915596501e+03, -4.8208395158e+04,
+              2.5083295190e+04, -9.9409842141e+03
+        },
+        {
+              1.2540248415e+03, -6.6734153241e+03, -7.2230899588e+03,
+              5.2081878353e+03, -1.1452742326e+04, -5.3598783444e+04,
+              2.8831092814e+04, -1.1800940963e+04
+        },
+        {
+             -1.1340740152e+03,  6.8104803892e+03, -7.2104680481e+03,
+              5.6107564263e+03, -1.2743427421e+04, -5.8299717735e+04,
+              3.1869936043e+04, -1.3497698537e+04
+        },
+        {
+              1.2268498828e+03,  6.8013798013e+03, -7.0886313302e+03,
+              6.2584209115e+03, -1.3873482030e+04, -6.4048908443e+04,
+              3.5164610876e+04, -1.5208074825e+04
+        },
+        {
+             -1.1848549625e+03,  6.8974358217e+03, -7.1082237232e+03,
+              6.7620232439e+03, -1.4599818363e+04, -6.8861950664e+04,
+              3.7762492601e+04,  1.7412287031e+04
+        },
+        {
+             -1.1955484362e+03,  6.9806241746e+03, -7.2627238299e+03,
+              7.1392345496e+03, -1.5168420430e+04, -7.3695344802e+04,
+              4.0684457764e+04,  1.9409913677e+04
+        },
+        {
+             -1.1454708707e+03,  7.0728261562e+03, -7.5512806778e+03,
+              7.5563562005e+03, -1.5696773777e+04, -7.8914068721e+04,
+              4.4116485923e+04,  2.0187023399e+04
+        },
+        {
+             -1.1268181759e+03, -7.0994315166e+03, -7.7454949943e+03,
+              8.0555175077e+03, -1.6081470138e+04, -8.2706638086e+04,
+              4.6577700947e+04,  2.0211187092e+04
+        },
+        {
+             -1.0074077662e+03, -7.1491613621e+03, -7.9247095489e+03,
+              8.7855811104e+03,  1.6686508016e+04, -8.6483837194e+04,
+              4.8044577749e+04,  2.0758812112e+04
+        },
+        {
+             -1.1485583891e+03,  7.1974264567e+03, -7.9674230478e+03,
+              9.4233697584e+03,  1.7226212153e+04, -8.8832082202e+04,
+              4.7777871809e+04, -2.2270879456e+04
+        },
+        {
+             -1.1112892734e+03,  7.2552348682e+03, -8.1448943721e+03,
+              1.0061009062e+04,  1.7952967707e+04, -9.0349999023e+04,
+              4.6338196816e+04, -2.3758497403e+04
+        },
+        {
+             -1.2111627953e+03,  7.4099553802e+03, -8.4066266102e+03,
+              1.0487220526e+04,  1.8679729086e+04, -9.0756473921e+04,
+             -4.5489455545e+04,  2.5434875433e+04
+        },
+        {
+             -1.2291435921e+03,  7.4245338420e+03, -8.6383137516e+03,
+              1.0914129496e+04,  1.9415243679e+04, -9.0433253667e+04,
+             -4.5116523309e+04,  2.8082035582e+04
+        },
+        {
+             -1.2489475885e+03,  7.5587804747e+03, -8.8198445091e+03,
+              1.1403095357e+04,  2.0212758838e+04, -8.9736120736e+04,
+             -4.5553465178e+04,  3.0234389510e+04
+        },
+        {
+              1.2614665491e+03,  7.5861818613e+03, -8.9182595798e+03,
+              1.1793433303e+04,  2.0878078159e+04, -8.9305255064e+04,
+             -4.6355700033e+04, -3.2022509803e+04
+        },
+        {
+             -1.2447994848e+03,  7.7233282997e+03, -8.9282468386e+03,
+              1.2211605331e+04, -2.1577925369e+04, -8.9187707273e+04,
+             -4.7728173464e+04, -3.4014815902e+04
+        },
+        {
+             -1.5033173882e+03,  7.8400901867e+03, -8.9421071401e+03,
+              1.2490395460e+04, -2.2279103446e+04, -8.9890752913e+04,
+             -4.9443150883e+04, -3.5423484743e+04
+        },
+        {
+             -1.5051718216e+03,  7.8164627634e+03, -8.9727575486e+03,
+              1.2762598540e+04, -2.2957870952e+04, -9.1158507348e+04,
+             -5.1467617970e+04,  3.6988296337e+04
+        },
+        {
+             -1.5901518259e+03,  7.9120753127e+03, -8.9961565826e+03,
+              1.2913884900e+04, -2.3465949033e+04, -9.2796768920e+04,
+             -5.3686540338e+04,  3.8103644276e+04
+        },
+        {
+             -1.7008424917e+03,  7.9784506698e+03, -8.9628468012e+03,
+              1.2992763062e+04, -2.3864394016e+04, -9.4733527760e+04,
+             -5.5649883589e+04,  3.8896374609e+04
+        },
+        {
+             -1.8187281054e+03,  8.0038285981e+03, -8.9375317354e+03,
+              1.3019633529e+04, -2.4169648370e+04, -9.7641449423e+04,
+             -5.8645006276e+04,  3.8900525180e+04
+        },
+        {
+             -1.7829873178e+03,  7.9522309196e+03, -8.9532405134e+03,
+              1.2974748115e+04, -2.4336851412e+04, -1.0028076249e+05,
+              6.1150714924e+04,  3.7943414676e+04
+        },
+        {
+             -1.6960293511e+03,  7.8935476699e+03, -9.0430565851e+03,
+              1.2788179455e+04, -2.4411959475e+04, -1.0348869899e+05,
+              6.4046929618e+04,  3.7526805538e+04
+        },
+        {
+             -1.6280952814e+03, -7.8166369161e+03, -9.2248735553e+03,
+              1.2557327166e+04, -2.4425950264e+04, -1.0539482612e+05,
+              6.5230250066e+04,  3.6959422531e+04
+        },
+        {
+             -1.5086336410e+03, -7.6674333293e+03, -9.4797804752e+03,
+              1.2156339084e+04, -2.4344993349e+04, -1.0713978398e+05,
+              6.5480723097e+04,  3.6260242947e+04
+        },
+        {
+             -1.2328001585e+03, -7.5634738552e+03, -9.6642796513e+03,
+              1.1778434026e+04, -2.4215775627e+04, -1.0749309355e+05,
+              6.4556896515e+04,  3.4465049622e+04
+        },
+        {
+              1.3265563338e+03, -7.5499279739e+03, -9.6146769601e+03,
+              1.1449512304e+04, -2.4057254523e+04, -1.0670153381e+05,
+              6.2133487737e+04,  3.2615807238e+04
+        },
+        {
+              1.2114335214e+03, -7.4125491841e+03, -9.1118469861e+03,
+              1.1180223790e+04, -2.3761650326e+04, -1.0415503078e+05,
+              5.8860062483e+04, -3.1896346177e+04
+        },
+        {
+             -1.2729382738e+03, -7.4136768641e+03, -8.4816779871e+03,
+              1.1066659269e+04, -2.3377868125e+04, -1.0069683910e+05,
+              5.6051857801e+04, -3.0768669668e+04
+        },
+        {
+             -1.4449722004e+03,  7.4365753329e+03, -7.9240296679e+03,
+              1.0832591812e+04, -2.2744201265e+04, -9.5356827996e+04,
+              5.3609970842e+04,  2.8043661264e+04
+        },
+        {
+             -1.4600869311e+03,  7.3063447503e+03, -7.7584697992e+03,
+              1.0408241458e+04, -2.2048794542e+04, -8.9796795090e+04,
+              5.1770215567e+04,  2.5495486120e+04
+        },
+        {
+             -1.4037659148e+03, -7.1752745933e+03, -7.7454091494e+03,
+              9.7195013839e+03, -2.1139358622e+04, -8.2763360246e+04,
+              4.8774307042e+04,  2.2882173174e+04
+        },
+        {
+             -1.3563586472e+03, -7.2287623076e+03, -7.8162148571e+03,
+              9.0517657112e+03, -2.0249240225e+04, -7.6891840115e+04,
+              4.5555693934e+04,  2.1003186091e+04
+        }
+    },
+    {
+        {
+             -1.1792877478e+03,  7.3589092152e+03, -7.8285528507e+03,
+              9.1206652261e+03,  1.8939632991e+04, -6.2543300857e+04,
+              5.6686453510e+04, -1.8293169797e+04
+        },
+        {
+             -1.1267534415e+03,  7.2578491257e+03, -7.2980704043e+03,
+              8.7336544832e+03,  1.7364748920e+04, -5.8863785108e+04,
+              5.4016113549e+04, -1.7066664885e+04
+        },
+        {
+             -1.1879840950e+03,  7.1868881347e+03, -7.0588312628e+03,
+              8.3803608087e+03,  1.6152834129e+04, -5.5947070449e+04,
+              4.6852163280e+04, -1.4589865117e+04
+        },
+        {
+             -1.1649410148e+03,  7.1419313048e+03, -6.9856803506e+03,
+              7.8205027487e+03,  1.5062564426e+04, -5.3496801338e+04,
+              4.0092264272e+04,  1.2658551282e+04
+        },
+        {
+             -1.1768713838e+03,  7.0570685114e+03, -6.9873275519e+03,
+              7.2397343727e+03,  1.3997255230e+04, -5.1214620999e+04,
+              3.3547824394e+04,  1.1571171000e+04
+        },
+        {
+             -1.1702466071e+03,  7.0474116186e+03, -6.9298361532e+03,
+              6.8319048956e+03,  1.2857462247e+04, -4.8375850131e+04,
+              2.7298760252e+04,  1.0506932711e+04
+        },
+        {
+             -1.0725005685e+03,  7.0574772060e+03, -6.8342587261e+03,
+              6.6057927313e+03,  1.1679362112e+04, -4.4903398002e+04,
+             -2.2883238278e+04,  9.9017119536e+03
+        },
+        {
+             -1.2933837708e+03,  7.0215211153e+03, -6.7959218985e+03,
+              6.4366196689e+03,  1.0537819927e+04, -4.0738048180e+04,
+             -1.9972737083e+04,  8.9000068283e+03
+        },
+        {
+             -1.4016524050e+03,  6.9102676649e+03, -6.8577370885e+03,
+              6.2563117264e+03,  9.4744898036e+03, -3.6206113646e+04,
+              1.8101522827e+04,  7.6026618844e+03
+        },
+        {
+             -1.4228833626e+03,  6.9018241821e+03, -6.9226854516e+03,
+              6.1265817023e+03,  8.5814378305e+03, -3.1497757514e+04,
+              1.6353271208e+04,  6.1842295639e+03
+        },
+        {
+             -1.5050709614e+03,  6.9387124014e+03, -6.9824310190e+03,
+              6.1370941284e+03,  7.9526998652e+03, -2.7140777892e+04,
+             -1.3422880733e+04, -4.8394484097e+03
+        },
+        {
+             -1.5008248905e+03,  6.9113010623e+03, -7.0213676023e+03,
+              6.2364991018e+03,  7.6792612188e+03, -2.4217340349e+04,
+             -9.8353659274e+03,  4.5500293849e+03
+        },
+        {
+             -1.3911115032e+03,  6.8159789229e+03, -7.0993922417e+03,
+              6.3487948654e+03,  7.7204224353e+03, -2.3658090370e+04,
+             -6.8626428903e+03,  3.2406947683e+03
+        },
+        {
+             -1.2200263722e+03,  6.8070802782e+03, -7.1270847355e+03,
+              6.4590606751e+03,  7.9272815594e+03, -2.4745291489e+04,
+             -7.3331498760e+03, -1.7241952447e+03
+        },
+        {
+             -1.1085198501e+03,  6.8284009628e+03, -7.1433632838e+03,
+              6.5282353319e+03,  8.1083286709e+03, -2.5749368110e+04,
+             -9.4351356514e+03, -2.6648948205e+03
+        },
+        {
+             -1.1090856266e+03,  6.8566768476e+03, -7.1637792111e+03,
+              6.5542463678e+03,  8.1215020618e+03, -2.5489509453e+04,
+             -1.0249951714e+04, -2.8484970162e+03
+        },
+        {
+              1.1915106322e+03,  6.8191738036e+03, -7.1930504326e+03,
+              6.5404047741e+03,  7.8869920773e+03, -2.3742678364e+04,
+             -9.3627682528e+03,  3.1069647029e+03
+        },
+        {
+             -1.1087767283e+03,  6.8228248550e+03, -7.1746516613e+03,
+              6.4577545741e+03,  7.3567167343e+03, -2.1336345472e+04,
+             -8.4800124911e+03, -2.5947298125e+03
+        },
+        {
+             -1.1389714993e+03,  6.7833489562e+03, -7.1710115479e+03,
+              6.3081066006e+03,  6.6201787429e+03, -2.0019022099e+04,
+             -9.2206044768e+03, -3.0158664109e+03
+        },
+        {
+             -1.2059400070e+03,  6.8747074842e+03, -7.1231495138e+03,
+              6.0986394904e+03,  5.8159158796e+03, -2.1511722325e+04,
+              1.1802047693e+04, -5.1900314515e+03
+        },
+        {
+             -1.1810788709e+03,  6.8386365513e+03, -7.1036744361e+03,
+              5.8521025099e+03,  5.2747136166e+03, -2.5691793567e+04,
+              1.4593505106e+04, -5.2276564920e+03
+        },
+        {
+             -1.1350423080e+03,  6.8667057385e+03, -7.0600488059e+03,
+              5.6394397574e+03,  5.3306929552e+03, -3.1005448812e+04,
+              1.6864705291e+04, -6.1171665855e+03
+        },
+        {
+             -1.1543300437e+03,  6.8759656522e+03, -7.0144458563e+03,
+              5.4744862211e+03,  6.0623401501e+03, -3.6213353065e+04,
+             -1.9469866944e+04, -7.4244521392e+03
+        },
+        {
+             -1.1630842106e+03,  6.8369920716e+03, -6.9296958621e+03,
+              5.4437986485e+03,  7.2651985611e+03, -4.0894542211e+04,
+              2.2575777060e+04, -8.6315235832e+03
+        },
+        {
+             -1.1776278185e+03,  6.8888338001e+03, -6.8923892761e+03,
+              5.4305710025e+03,  8.7168960518e+03, -4.5329592688e+04,
+              2.5849441081e+04, -1.0310475978e+04
+        },
+        {
+             -1.1222645524e+03,  6.8870585019e+03, -6.9067205712e+03,
+              5.4082194827e+03, -1.0290997727e+04, -4.9899446738e+04,
+              2.9414874387e+04, -1.2108455479e+04
+        },
+        {
+              1.0709390519e+03,  6.9204403302e+03, -6.9584891611e+03,
+              5.4579034378e+03, -1.2038347313e+04, -5.4945564959e+04,
+              3.3218694457e+04, -1.3724537178e+04
+        },
+        {
+             -1.0668139981e+03,  7.0449491007e+03, -7.0026381356e+03,
+              5.7439186198e+03, -1.3571676066e+04, -6.0257427032e+04,
+              3.7260680870e+04, -1.5646850297e+04
+        },
+        {
+             -1.0833731111e+03,  6.9818818853e+03, -6.9849495540e+03,
+              6.3150490483e+03, -1.4812602678e+04, -6.5713045870e+04,
+              4.1157146313e+04,  1.7685425864e+04
+        },
+        {
+             -1.1646172842e+03,  7.1068042815e+03, -6.9877507987e+03,
+              6.9692767527e+03, -1.5868471456e+04, -7.1134759043e+04,
+              4.4501945423e+04,  1.8771143626e+04
+        },
+        {
+             -1.2422537197e+03,  7.1707780759e+03, -7.0760041526e+03,
+              7.5439971757e+03, -1.6809511748e+04, -7.6471208414e+04,
+              4.6733676651e+04,  1.9360349133e+04
+        },
+        {
+             -1.1900830688e+03,  7.2712808178e+03, -7.2870323096e+03,
+              7.9479769208e+03, -1.7660669263e+04, -8.1857486315e+04,
+              4.8051607376e+04,  2.0106488368e+04
+        },
+        {
+              1.2260535263e+03,  7.3201468186e+03, -7.6300292833e+03,
+              8.3345914169e+03, -1.8418861836e+04, -8.7226042985e+04,
+              4.8145392965e+04,  2.0306721218e+04
+        },
+        {
+              1.1625068516e+03,  7.3686245331e+03, -7.8745558397e+03,
+              8.8327864696e+03, -1.9068792429e+04, -9.2326004719e+04,
+              4.7108336497e+04,  2.1121895884e+04
+        },
+        {
+             -1.2097095090e+03,  7.4769187503e+03, -8.0518721079e+03,
+              9.4383897933e+03, -1.9621860688e+04, -9.6544441327e+04,
+             -4.4932463539e+04, -2.3503638515e+04
+        },
+        {
+             -1.1822008041e+03,  7.5426619967e+03, -8.1493762896e+03,
+              1.0062000674e+04, -2.0132855156e+04, -9.9929721771e+04,
+             -4.2832443617e+04, -2.7424420613e+04
+        },
+        {
+             -1.2825326083e+03,  7.6603110232e+03, -8.3198915430e+03,
+              1.0593168596e+04, -2.0649338687e+04, -1.0177184849e+05,
+             -4.0593924597e+04,  3.1868907620e+04
+        },
+        {
+             -1.2719170675e+03,  7.7200736509e+03, -8.5878150881e+03,
+              1.1030805490e+04, -2.1215862301e+04, -1.0228703478e+05,
+             -3.9534086088e+04,  3.7576920053e+04
+        },
+        {
+              1.4709313925e+03,  7.8859018966e+03, -8.8632377095e+03,
+              1.1402924933e+04,  2.1878701443e+04, -1.0159499913e+05,
+             -3.9727399200e+04,  4.2031340577e+04
+        },
+        {
+              1.2311211191e+03,  7.9006962605e+03, -9.0889281754e+03,
+              1.1769299242e+04,  2.2521420611e+04, -9.9811610939e+04,
+             -4.1381675575e+04,  4.5672629923e+04
+        },
+        {
+             -1.3949822546e+03,  8.0957047678e+03, -9.2483562010e+03,
+              1.2143053237e+04,  2.3135228962e+04, -9.7852710350e+04,
+             -4.4451419821e+04, -4.9337799206e+04
+        },
+        {
+             -1.4006966246e+03,  8.1551148363e+03, -9.3741385217e+03,
+              1.2458362815e+04, -2.3744251754e+04, -9.6060329434e+04,
+             -4.8267990966e+04, -5.2630004177e+04
+        },
+        {
+             -1.4971352043e+03,  8.2279781293e+03, -9.4989841968e+03,
+              1.2718138427e+04, -2.4341035818e+04, -9.4844920103e+04,
+             -5.2671064817e+04, -5.4746814854e+04
+        },
+        {
+             -1.4444487589e+03,  8.1476340964e+03, -9.6274844694e+03,
+              1.2942321051e+04, -2.4889226937e+04, -9.4447935712e+04,
+             -5.7027845998e+04, -5.5217321644e+04
+        },
+        {
+             -1.4860179121e+03,  8.2670001946e+03, -9.6995745250e+03,
+              1.3086639311e+04, -2.5358418430e+04, -9.4962963944e+04,
+             -6.1574417454e+04, -5.5164375269e+04
+        },
+        {
+             -1.3996316276e+03,  8.2676789996e+03, -9.7139874913e+03,
+              1.3209547462e+04, -2.5712246315e+04, -9.6082937728e+04,
+             -6.5649525634e+04, -5.3955328083e+04
+        },
+        {
+             -1.4204976803e+03,  8.3264162383e+03, -9.6442326442e+03,
+              1.3295291977e+04, -2.5970092215e+04, -9.7481355108e+04,
+             -6.9499885224e+04, -5.2414282393e+04
+        },
+        {
+             -1.5605856291e+03,  8.5630582215e+03, -9.4952577006e+03,
+              1.3301559119e+04, -2.6130072919e+04, -9.8946094733e+04,
+              7.4045490976e+04,  5.1092744030e+04
+        },
+        {
+             -1.6820849323e+03,  8.4495649248e+03, -9.3579208785e+03,
+              1.3338372269e+04, -2.6205678305e+04, -9.9988825474e+04,
+              7.8785065748e+04,  4.8863319705e+04
+        },
+        {
+             -1.7212454563e+03,  8.3720787209e+03, -9.2742925226e+03,
+              1.3261033746e+04, -2.6147308841e+04, -1.0016521753e+05,
+              8.3476130358e+04,  4.6012035879e+04
+        },
+        {
+             -1.5801023578e+03,  7.9432164862e+03, -9.3095067298e+03,
+              1.3088433473e+04, -2.5988864374e+04, -9.9445504976e+04,
+              8.7618004503e+04,  4.3893480708e+04
+        },
+        {
+             -1.6166117121e+03,  8.0388488305e+03, -9.5444759443e+03,
+              1.2712045319e+04, -2.5735624063e+04, -9.7675512220e+04,
+              9.1064620781e+04,  4.2409022108e+04
+        },
+        {
+             -1.5195892617e+03, -7.8859811527e+03, -9.7895374791e+03,
+              1.2301990981e+04, -2.5423507207e+04, -9.4852268091e+04,
+              9.3801771504e+04,  4.0853463708e+04
+        },
+        {
+             -1.3971971983e+03, -7.8866510161e+03, -9.8749260994e+03,
+              1.1881980422e+04, -2.5026611836e+04, -9.1339925499e+04,
+              9.4899452808e+04,  3.8840236185e+04
+        },
+        {
+             -1.3783469765e+03, -7.7598118263e+03, -9.5531709254e+03,
+              1.1577349379e+04, -2.4515958979e+04, -8.7540196908e+04,
+              9.4222517436e+04,  3.7183360967e+04
+        },
+        {
+             -1.3440242895e+03,  7.7102432541e+03, -8.8311655240e+03,
+              1.1482035736e+04, -2.3818384077e+04, -8.3397559257e+04,
+              9.1000968400e+04,  3.4889577933e+04
+        },
+        {
+             -1.4530458154e+03,  7.7832197741e+03, -8.1012338708e+03,
+              1.1426165187e+04, -2.2963477281e+04, -7.9285579160e+04,
+              8.5810505464e+04, -3.1014112009e+04
+        },
+        {
+             -1.5175549403e+03,  7.8014051593e+03, -7.8791112699e+03,
+              1.1037982062e+04, -2.2056225242e+04, -7.5128026185e+04,
+              7.9016042024e+04, -2.7174071348e+04
+        },
+        {
+             -1.1387857169e+03,  7.5751179129e+03, -7.9654745412e+03,
+              1.0349301775e+04, -2.1069326297e+04, -7.0856619201e+04,
+              7.1551384667e+04,  2.4363211006e+04
+        },
+        {
+             -1.1177407167e+03,  7.4087530770e+03, -7.9936769958e+03,
+              9.6585794588e+03,  1.9990131836e+04, -6.6663541932e+04,
+              6.3953319148e+04, -2.1605306691e+04
+        }
+    },
+    {
+        {
+             -1.1667706649e+03,  7.7856890893e+03, -7.8734607901e+03,
+              1.0080191861e+04,  1.8026041318e+04, -6.9824124202e+04,
+              5.0084277604e+04, -1.7408581714e+04
+        },
+        {
+              1.1496789402e+03,  7.5885094153e+03, -7.8351599531e+03,
+              9.3518567091e+03,  1.7131070475e+04, -6.5359737757e+04,
+              4.8855981410e+04, -1.6559029423e+04
+        },
+        {
+              1.0907496671e+03,  7.5308122631e+03, -7.6128748819e+03,
+              9.0125691411e+03,  1.6105707755e+04, -6.0328741770e+04,
+              4.4604170109e+04,  1.4289854751e+04
+        },
+        {
+             -1.1971622407e+03,  7.5264934237e+03, -7.3175475369e+03,
+              8.7900916173e+03,  1.5019950686e+04, -5.5853592209e+04,
+              4.0435052611e+04, -1.2903141813e+04
+        },
+        {
+             -1.2234668950e+03,  7.3832409125e+03, -7.1238451208e+03,
+              8.5445114223e+03,  1.3993954619e+04, -5.2115258695e+04,
+              3.6114165683e+04, -1.1043004539e+04
+        },
+        {
+             -1.2804539207e+03,  7.3673058766e+03, -7.0481653169e+03,
+              8.1859033142e+03,  1.3091337784e+04, -4.9032720660e+04,
+              3.1926075202e+04, -9.0045534613e+03
+        },
+        {
+             -1.1407823602e+03,  7.3181820325e+03, -7.0401025203e+03,
+              7.7680020751e+03,  1.2262747881e+04, -4.6253822385e+04,
+              2.7647530827e+04, -7.8956800481e+03
+        },
+        {
+             -1.1204451265e+03,  7.2154670857e+03, -6.9645151462e+03,
+              7.4564628368e+03,  1.1439791629e+04, -4.3444486459e+04,
+              2.3617293716e+04, -6.8422622528e+03
+        },
+        {
+             -1.0617032074e+03,  7.1884284718e+03, -6.9276543549e+03,
+              7.3030467162e+03,  1.0645126245e+04, -4.0356595055e+04,
+              2.0607970587e+04,  6.1441932440e+03
+        },
+        {
+              1.0777810294e+03,  7.2246189152e+03, -6.8595795895e+03,
+              7.2215678957e+03,  9.9232891885e+03, -3.7017872076e+04,
+              1.8987347823e+04,  6.1844305819e+03
+        },
+        {
+              1.1137466661e+03,  7.1695290356e+03, -6.8404297889e+03,
+              7.1516033281e+03,  9.3285270031e+03, -3.3685569994e+04,
+              1.8079432649e+04,  5.7435077942e+03
+        },
+        {
+             -1.1046391774e+03,  7.1475290975e+03, -6.8728827903e+03,
+              7.0639941446e+03,  8.8898596387e+03, -3.0616243112e+04,
+              1.6480032125e+04,  5.0261833288e+03
+        },
+        {
+             -1.0907440578e+03,  7.1146967083e+03, -6.9272439957e+03,
+              7.0244786775e+03,  8.6369901664e+03, -2.8142569937e+04,
+              1.3328995022e+04, -4.5522397697e+03
+        },
+        {
+             -1.1430804740e+03,  7.1178579343e+03, -6.9482176554e+03,
+              7.0635922389e+03,  8.5877281143e+03, -2.6591792435e+04,
+             -9.7280795631e+03,  4.1582971885e+03
+        },
+        {
+             -1.2271383534e+03,  7.1110982888e+03, -6.9564152258e+03,
+              7.1625994372e+03,  8.7080878212e+03, -2.5959493066e+04,
+             -7.8432009890e+03, -3.5609452588e+03
+        },
+        {
+             -1.2516544000e+03,  7.1256425932e+03, -6.9766826702e+03,
+              7.2520280855e+03,  8.9275512884e+03, -2.5957128911e+04,
+              1.0961388625e+04, -3.4602881590e+03
+        },
+        {
+             -1.2681158879e+03,  7.1182321807e+03, -6.9842958307e+03,
+              7.2981611484e+03,  9.1520068654e+03, -2.5881726988e+04,
+              1.4146989015e+04, -2.1251973803e+03
+        },
+        {
+             -1.2537182091e+03,  7.1077320412e+03, -7.0240767472e+03,
+              7.3233093523e+03,  9.2707283713e+03, -2.5012757088e+04,
+              1.5051592674e+04, -1.8595941927e+03
+        },
+        {
+             -1.2515625644e+03,  7.1178643990e+03, -7.0383559009e+03,
+              7.3105415080e+03,  9.2383572128e+03, -2.2894620589e+04,
+              1.3376536217e+04, -2.5907242039e+03
+        },
+        {
+             -1.1641764467e+03,  6.9981778706e+03, -7.0297249886e+03,
+              7.3016423400e+03,  9.0002446762e+03, -1.9553542396e+04,
+              9.9742872673e+03, -4.7781436725e+03
+        },
+        {
+             -1.1720163459e+03,  7.0307438186e+03, -7.0148980106e+03,
+              7.2102258958e+03,  8.5521052423e+03, -1.5930893707e+04,
+              6.8958820518e+03, -5.8860326408e+03
+        },
+        {
+             -1.2804586138e+03,  6.9326045543e+03, -7.0435704068e+03,
+              7.0555138479e+03,  7.9004983821e+03, -1.4091006302e+04,
+             -7.2839617469e+03, -5.3000522148e+03
+        },
+        {
+             -1.3387520102e+03,  7.1645015749e+03, -6.9720275731e+03,
+              6.8936299916e+03,  7.1213068571e+03, -1.5893494633e+04,
+             -9.1112540035e+03,  3.1237973793e+03
+        },
+        {
+             -1.2298327939e+03,  7.0510323814e+03, -6.9913618505e+03,
+              6.6798317054e+03,  6.3608170991e+03, -2.0235587249e+04,
+             -1.0905777785e+04, -3.4918394667e+03
+        },
+        {
+             -1.2268466859e+03,  7.0801589116e+03, -6.9463435063e+03,
+              6.4828982031e+03,  5.8206516229e+03,  2.6109886070e+04,
+             -1.2705255021e+04, -4.2377694231e+03
+        },
+        {
+             -1.2268201436e+03,  7.0185470590e+03, -6.9092627699e+03,
+              6.3251051843e+03,  5.7027259391e+03,  3.1286922226e+04,
+              1.4849871121e+04, -4.8123266028e+03
+        },
+        {
+             -1.3243962585e+03,  7.1049247116e+03, -6.8511524972e+03,
+              6.2209697649e+03,  6.0798240593e+03,  3.5057331474e+04,
+              1.7138065450e+04, -5.8043843511e+03
+        },
+        {
+             -1.2791823383e+03,  7.0876672735e+03, -6.8247734155e+03,
+              6.1156327873e+03,  6.8825581173e+03,  3.7677850781e+04,
+              1.9313072770e+04, -7.0470781743e+03
+        },
+        {
+             -1.3229676294e+03,  7.1134703113e+03, -6.8139383169e+03,
+              6.0224543926e+03,  7.9619068271e+03, -4.0409168719e+04,
+              2.1604594768e+04, -8.2512607139e+03
+        },
+        {
+             -1.3246234090e+03,  7.1495315888e+03, -6.8144508045e+03,
+              5.9712530261e+03,  9.2191842823e+03, -4.3723480450e+04,
+             -2.4326818518e+04,  9.7427970302e+03
+        },
+        {
+             -1.2855726018e+03,  7.2368762318e+03, -6.8217122899e+03,
+              6.0225314608e+03,  1.0518197051e+04, -4.7426380633e+04,
+             -2.7269409117e+04,  1.1558117312e+04
+        },
+        {
+             -1.2594328487e+03,  7.2267420217e+03, -6.8473218544e+03,
+              6.2136598629e+03, -1.1954332352e+04, -5.1521175812e+04,
+              3.0515564888e+04,  1.3752956149e+04
+        },
+        {
+             -1.2385165555e+03,  7.2469364203e+03, -6.8652414088e+03,
+              6.5276177022e+03, -1.3333114464e+04, -5.5836214321e+04,
+              3.3926786058e+04, -1.6088037608e+04
+        },
+        {
+             -1.2467350960e+03,  7.2790791521e+03, -6.8747483317e+03,
+              6.9268022942e+03, -1.4605457188e+04, -6.0172413547e+04,
+              3.7180715639e+04, -1.8205336184e+04
+        },
+        {
+             -1.1748361283e+03,  7.3424678501e+03, -6.9460598258e+03,
+              7.3208677289e+03, -1.5785600954e+04, -6.4454260987e+04,
+              4.0105015627e+04, -1.9840075647e+04
+        },
+        {
+              1.1578484389e+03,  7.4123436870e+03, -7.0707929632e+03,
+              7.7245247707e+03, -1.6875405548e+04, -6.8638748389e+04,
+              4.2445381047e+04, -2.1034469825e+04
+        },
+        {
+              1.2155341657e+03,  7.4632327137e+03, -7.2234945830e+03,
+              8.1126679833e+03, -1.7871142245e+04, -7.2836193968e+04,
+              4.4082574873e+04, -2.1958790072e+04
+        },
+        {
+              1.1715872767e+03,  7.5094998688e+03, -7.4380467986e+03,
+              8.5102199753e+03, -1.8792616964e+04, -7.6743647822e+04,
+              4.4565439155e+04, -2.1914962545e+04
+        },
+        {
+             -1.1625852234e+03,  7.5695627297e+03, -7.6085476978e+03,
+              8.9424535223e+03, -1.9601806842e+04, -8.0542797118e+04,
+              4.4753007008e+04, -2.1049796551e+04
+        },
+        {
+              1.1895915221e+03,  7.6884687411e+03, -7.7776767364e+03,
+              9.4470549544e+03, -2.0301129635e+04, -8.4006811376e+04,
+             -4.4524411718e+04, -1.9993600820e+04
+        },
+        {
+             -1.2319461242e+03,  7.8076109487e+03, -7.8813386088e+03,
+              9.9572410699e+03, -2.0909094513e+04, -8.7063432224e+04,
+             -4.3927652105e+04,  1.9780909415e+04
+        },
+        {
+             -1.2274604944e+03,  7.8467918744e+03, -8.0363138536e+03,
+              1.0448463418e+04, -2.1462354000e+04, -8.9736466964e+04,
+             -4.2898965377e+04,  2.1289231510e+04
+        },
+        {
+             -1.2130383271e+03,  7.9671837002e+03, -8.2914844952e+03,
+              1.0840512361e+04, -2.1978983235e+04, -9.1803717660e+04,
+             -4.1575022707e+04, -2.4341445524e+04
+        },
+        {
+             -1.2833648203e+03,  8.0575952749e+03, -8.6465424384e+03,
+              1.1175948777e+04, -2.2451458130e+04, -9.3185310349e+04,
+             -4.0138648929e+04, -2.9180554543e+04
+        },
+        {
+              1.2567170185e+03,  8.1169324476e+03, -9.0359838806e+03,
+              1.1496973429e+04, -2.2901603059e+04, -9.4152920188e+04,
+             -3.9021162668e+04, -3.4673048887e+04
+        },
+        {
+             -1.2797962837e+03,  8.1813818531e+03, -9.3841636221e+03,
+              1.1821009108e+04, -2.3316690243e+04, -9.4428317305e+04,
+             -3.8553608057e+04,  4.1624650772e+04
+        },
+        {
+             -1.1830362369e+03,  8.2043595785e+03, -9.6244280510e+03,
+              1.2173937093e+04, -2.3734342133e+04, -9.4384073948e+04,
+             -3.8886964309e+04,  4.8543729773e+04
+        },
+        {
+             -1.3804492905e+03,  8.3907193991e+03, -9.7661355964e+03,
+              1.2545723107e+04, -2.4142776027e+04, -9.3982102007e+04,
+             -4.0208897106e+04,  5.4818206097e+04
+        },
+        {
+             -1.3515050179e+03,  8.3952632527e+03, -9.8485886378e+03,
+              1.2888473541e+04, -2.4560731785e+04, -9.3477005820e+04,
+             -4.2232986878e+04,  5.9527907651e+04
+        },
+        {
+             -1.3874866214e+03,  8.4470017609e+03, -9.9052331145e+03,
+              1.3194879062e+04, -2.4964192768e+04, -9.2982326110e+04,
+             -4.5053320202e+04,  6.2991774193e+04
+        },
+        {
+             -1.4857583367e+03,  8.5651290707e+03, -1.0028577736e+04,
+              1.3435491200e+04, -2.5324199965e+04, -9.2679664419e+04,
+             -4.8492611644e+04,  6.4970825756e+04
+        },
+        {
+             -1.4967310469e+03,  8.6209880405e+03, -1.0169336573e+04,
+              1.3648636824e+04,  2.5651583401e+04, -9.2562362297e+04,
+             -5.2130218604e+04,  6.5999248681e+04
+        },
+        {
+             -1.4569806763e+03,  8.6394902535e+03, -1.0320860137e+04,
+              1.3807402482e+04,  2.5930325040e+04, -9.2866074174e+04,
+             -5.6050918845e+04,  6.6144098906e+04
+        },
+        {
+             -1.3991564790e+03,  8.6356164945e+03, -1.0452091937e+04,
+              1.3930145094e+04,  2.6153811372e+04, -9.3468932649e+04,
+             -5.9892819144e+04, -6.5546007065e+04
+        },
+        {
+             -1.3494406996e+03,  8.6278198532e+03, -1.0577057629e+04,
+              1.4011511912e+04,  2.6331171844e+04, -9.4318042146e+04,
+             -6.3812534392e+04, -6.4477067210e+04
+        },
+        {
+              1.3664782097e+03,  8.6242494409e+03, -1.0670458021e+04,
+              1.4070655407e+04,  2.6440807281e+04, -9.5301185336e+04,
+             -6.7602449945e+04, -6.2347452467e+04
+        },
+        {
+             -1.4013083939e+03,  8.5967788162e+03, -1.0746904207e+04,
+              1.4075259597e+04,  2.6480874900e+04, -9.6452462420e+04,
+              7.2049509709e+04, -5.9780325189e+04
+        },
+        {
+              1.4636607162e+03,  8.5360040980e+03, -1.0775638056e+04,
+              1.4049661486e+04,  2.6468871028e+04, -9.7420463994e+04,
+              7.6765379768e+04, -5.5553552409e+04
+        },
+        {
+             -1.5435351343e+03,  8.6265543823e+03, -1.0747780665e+04,
+              1.3976798141e+04,  2.6405128640e+04, -9.8039645922e+04,
+              8.1303487813e+04, -5.0676010442e+04
+        },
+        {
+             -1.5736526856e+03,  8.6351629267e+03, -1.0604600486e+04,
+              1.3861692044e+04,  2.6282357577e+04, -9.8314668783e+04,
+              8.5541923276e+04, -4.5410993390e+04
+        },
+        {
+             -1.4660835881e+03,  8.5089021521e+03, -1.0324500766e+04,
+              1.3759928354e+04,  2.6079731347e+04, -9.8073785316e+04,
+              8.9009802587e+04, -4.1032670028e+04
+        },
+        {
+             -1.5088615858e+03,  8.5867861425e+03, -9.9350776320e+03,
+              1.3635305674e+04,  2.5804687151e+04, -9.7423926476e+04,
+              9.1133094276e+04, -3.7573505897e+04
+        },
+        {
+             -1.5425818988e+03,  8.6610868297e+03, -9.5423513117e+03,
+              1.3488631266e+04,  2.5406324725e+04, -9.6521327431e+04,
+              9.1953165510e+04,  3.4826402583e+04
+        },
+        {
+             -1.5710810745e+03,  8.5946723849e+03, -9.3188480024e+03,
+              1.3294411425e+04, -2.4959811480e+04, -9.5183991153e+04,
+              9.0626102480e+04,  3.2466773592e+04
+        },
+        {
+             -1.5086205016e+03,  8.4568722797e+03, -9.3036429211e+03,
+              1.2990206304e+04,  2.4435112861e+04, -9.3903189515e+04,
+              8.8219190725e+04,  3.3171116030e+04
+        },
+        {
+             -1.3885666823e+03,  8.2434399366e+03, -9.3958963182e+03,
+              1.2594317782e+04,  2.3911717887e+04, -9.2480977399e+04,
+              8.4331961722e+04,  3.2970819452e+04
+        },
+        {
+              1.2889216388e+03,  8.1398171527e+03, -9.4796456018e+03,
+              1.2147145484e+04,  2.3343555652e+04, -9.0848265233e+04,
+              7.9065806620e+04,  3.1255164172e+04
+        },
+        {
+              1.3276422558e+03,  8.0030619518e+03, -9.4403515860e+03,
+              1.1735383122e+04,  2.2682942002e+04, -8.8818809153e+04,
+              7.3202578924e+04,  2.8771956989e+04
+        },
+        {
+             -1.2269080558e+03,  7.9389278650e+03, -9.1329890233e+03,
+              1.1358628557e+04,  2.1878342738e+04, -8.6398513188e+04,
+              6.7713649172e+04, -2.6971456625e+04
+        },
+        {
+             -1.3309891557e+03,  7.9948952845e+03, -8.5489325027e+03,
+              1.1192166408e+04,  2.0849329539e+04, -8.3282788760e+04,
+              6.2662962742e+04, -2.5781659381e+04
+        },
+        {
+             -1.3227566131e+03,  7.9191928192e+03, -8.0674229905e+03,
+              1.1003513606e+04,  1.9782001436e+04, -7.9371628278e+04,
+              5.8146863535e+04, -2.3077490075e+04
+        },
+        {
+             -1.2673449187e+03,  7.9064675980e+03, -7.8843719111e+03,
+              1.0601037711e+04,  1.8851547069e+04, -7.4767722196e+04,
+              5.4016460010e+04, -1.9717868312e+04
+        }
+    },
+    {
+        {
+             -1.4557802971e+03,  7.9108518906e+03, -8.3205308901e+03,
+              1.0090471557e+04,  1.5613906718e+04,  8.1855722866e+04,
+              4.9167855797e+04,  1.5236055221e+04
+        },
+        {
+             -1.3085383610e+03,  7.7722037420e+03, -8.2222899870e+03,
+              9.5995501412e+03,  1.4731309490e+04,  7.3979212713e+04,
+              4.3812118838e+04,  1.3222991116e+04
+        },
+        {
+             -1.3382140246e+03,  7.6881388629e+03, -8.0927034993e+03,
+              9.1825152938e+03,  1.3818121027e+04,  6.6944925391e+04,
+              3.9268029982e+04, -1.1248671151e+04
+        },
+        {
+             -1.2703468122e+03,  7.6518004069e+03, -7.8770972428e+03,
+              8.9025949589e+03,  1.2844818579e+04,  6.0531311226e+04,
+              3.4645155728e+04, -9.7706511967e+03
+        },
+        {
+             -1.4087915273e+03,  7.6596671434e+03, -7.6285942907e+03,
+              8.7131716386e+03,  1.1873294171e+04,  5.5065797015e+04,
+              3.0515176297e+04, -8.5264084904e+03
+        },
+        {
+             -1.4078771670e+03,  7.5538000246e+03, -7.4669831807e+03,
+              8.5010128542e+03,  1.1003977512e+04,  5.0633792436e+04,
+              2.7079253496e+04, -6.9776047627e+03
+        },
+        {
+             -1.3305761638e+03,  7.4538352673e+03, -7.4064048995e+03,
+              8.2442012302e+03,  1.0282510860e+04,  4.7065651357e+04,
+              2.4172695060e+04, -5.6542684632e+03
+        },
+        {
+             -1.2602321652e+03,  7.4467850308e+03, -7.3438435524e+03,
+              8.0093992992e+03,  9.6743188445e+03,  4.3994852814e+04,
+              2.1701019544e+04, -4.8126433607e+03
+        },
+        {
+             -1.1571942361e+03,  7.3527794286e+03, -7.2867828574e+03,
+              7.8784335122e+03,  9.2101463059e+03,  4.0806918758e+04,
+              1.9965741589e+04, -3.8857283619e+03
+        },
+        {
+             -1.1499788255e+03,  7.3800713695e+03, -7.1926253376e+03,
+              7.8396627678e+03,  8.9166373670e+03,  3.7030269035e+04,
+              1.9306002603e+04, -3.1220385307e+03
+        },
+        {
+             -1.1691981035e+03,  7.3657043371e+03, -7.1304253344e+03,
+              7.8403154603e+03,  8.8411625563e+03,  3.2522210088e+04,
+              1.9210464738e+04, -2.8863947856e+03
+        },
+        {
+             -1.1403429813e+03,  7.2901031719e+03, -7.1178593733e+03,
+              7.8298944931e+03,  8.9760300956e+03, -2.7970781907e+04,
+              1.8306613104e+04,  2.6485174168e+03
+        },
+        {
+             -1.1332932603e+03,  7.2541483513e+03, -7.1364965468e+03,
+              7.8478265712e+03,  9.2948288905e+03, -2.4009855611e+04,
+              1.5946824807e+04, -2.9234025451e+03
+        },
+        {
+             -1.2007621107e+03,  7.2746107660e+03, -7.1123633338e+03,
+              7.9227558827e+03,  9.7361219170e+03, -2.1238118166e+04,
+              1.2975693752e+04, -3.3409199824e+03
+        },
+        {
+             -1.1543745421e+03,  7.2144392513e+03, -7.1201368579e+03,
+              7.9926249627e+03,  1.0223129995e+04, -2.0871719080e+04,
+              1.1316705299e+04, -2.1966892535e+03
+        },
+        {
+             -1.1908693874e+03,  7.2404679407e+03, -7.1233333792e+03,
+              8.0276990886e+03,  1.0685681934e+04, -2.2964467191e+04,
+              1.1287655913e+04,  2.2292865913e+03
+        },
+        {
+             -1.2026310730e+03,  7.2418065353e+03, -7.1297411835e+03,
+              8.0568353045e+03,  1.1038071279e+04, -2.5896523477e+04,
+              1.0878024324e+04,  4.1752444026e+03
+        },
+        {
+             -1.2664253677e+03,  7.1959855908e+03, -7.1152063988e+03,
+              8.0565226444e+03,  1.1233015944e+04, -2.7736256287e+04,
+             -9.2567569560e+03, -4.2204234806e+03
+        },
+        {
+             -1.2969322874e+03,  7.2062742544e+03, -7.1406151559e+03,
+              8.0580771588e+03,  1.1225295974e+04, -2.7207875762e+04,
+             -5.5921881779e+03, -4.9867608674e+03
+        },
+        {
+             -1.3501804753e+03,  7.2167170463e+03, -7.1186581116e+03,
+              8.0080821920e+03,  1.0969479594e+04, -2.3714548084e+04,
+             -4.9501010919e+03,  6.3362328871e+03
+        },
+        {
+             -1.3537318560e+03,  7.2198444912e+03, -7.1071003916e+03,
+              7.8900519073e+03,  1.0467293417e+04,  1.7783197768e+04,
+              6.0916666845e+03,  5.8577771652e+03
+        },
+        {
+             -1.3511442428e+03,  7.2416274817e+03, -7.1004926947e+03,
+              7.7340852249e+03,  9.7400663487e+03,  1.0460692332e+04,
+             -1.0445010728e+04,  3.3501277043e+03
+        },
+        {
+             -1.3492527908e+03,  7.1975896745e+03, -7.0896792742e+03,
+              7.5315174811e+03,  8.8591782180e+03,  8.1482683129e+03,
+             -1.2626432258e+04,  3.0848626390e+03
+        },
+        {
+             -1.3396773323e+03,  7.2502367590e+03, -7.0508943768e+03,
+              7.3384836298e+03,  7.9264021691e+03, -1.3063071805e+04,
+             -1.1771259150e+04, -3.9394459545e+03
+        },
+        {
+             -1.2690009661e+03,  7.2190531224e+03, -7.0201708621e+03,
+              7.1287976634e+03,  7.1156839882e+03,  2.0281578766e+04,
+             -1.0294888682e+04,  3.0372010575e+03
+        },
+        {
+             -1.2852254740e+03,  7.2125702747e+03, -6.9796279009e+03,
+              6.9542585812e+03,  6.6088388557e+03,  2.7396282737e+04,
+             -1.1814955479e+04,  3.5812781782e+03
+        },
+        {
+             -1.2507042610e+03,  7.2673904781e+03, -6.9492998235e+03,
+              6.7897279335e+03,  6.5788714951e+03,  3.2349982458e+04,
+              1.4352402476e+04,  4.2018384315e+03
+        },
+        {
+             -1.2627307526e+03,  7.2298669415e+03, -6.9304406505e+03,
+              6.6479198266e+03,  7.0345555466e+03,  3.5282578491e+04,
+              1.7124857318e+04, -6.0064388989e+03
+        },
+        {
+             -1.2839638498e+03,  7.2534596022e+03, -6.9231092755e+03,
+              6.5682574492e+03,  7.8683438239e+03,  3.6919593957e+04,
+              1.9476482241e+04, -7.7721566200e+03
+        },
+        {
+             -1.2818911190e+03,  7.3066730399e+03, -6.9338210250e+03,
+              6.5517018422e+03,  8.9254652278e+03, -3.9111223965e+04,
+              2.1870735066e+04, -9.3911929756e+03
+        },
+        {
+             -1.3293521690e+03,  7.3519814445e+03, -6.9379156390e+03,
+              6.6457063745e+03,  1.0087136834e+04, -4.2082929386e+04,
+              2.4554890145e+04, -1.1559629027e+04
+        },
+        {
+             -1.3316723184e+03,  7.3670900394e+03, -7.0030312992e+03,
+              6.8043294634e+03,  1.1304845267e+04, -4.5462178678e+04,
+              2.7383889643e+04, -1.3833887478e+04
+        },
+        {
+              1.2848703598e+03,  7.4623685401e+03, -7.0687294931e+03,
+              7.0122812982e+03,  1.2529762776e+04, -4.9268879031e+04,
+              2.9965968437e+04, -1.6189898678e+04
+        },
+        {
+             -1.2125012424e+03,  7.4411033080e+03, -7.1569705418e+03,
+              7.3110087254e+03,  1.3709696429e+04, -5.3133370165e+04,
+              3.2423463727e+04, -1.8813261170e+04
+        },
+        {
+             -1.2035258818e+03,  7.5276963101e+03, -7.2338142224e+03,
+              7.7184078896e+03,  1.4831545742e+04, -5.7067658016e+04,
+              3.4854251113e+04, -2.0933401642e+04
+        },
+        {
+             -1.2011552551e+03,  7.5796366615e+03, -7.3145402247e+03,
+              8.1716564429e+03, -1.5897606969e+04, -6.0809194570e+04,
+              3.7175565033e+04, -2.2279210202e+04
+        },
+        {
+             -1.2888813316e+03,  7.6919092337e+03, -7.4703986717e+03,
+              8.5870776574e+03, -1.7004771676e+04, -6.4221020290e+04,
+              3.9178307703e+04, -2.3022795696e+04
+        },
+        {
+             -1.2960324407e+03,  7.7011043950e+03, -7.6891628318e+03,
+              8.9578159877e+03, -1.8040787255e+04, -6.7383929835e+04,
+              4.0926839130e+04, -2.2587116898e+04
+        },
+        {
+             -1.3294472972e+03,  7.7818981009e+03, -7.9388693059e+03,
+              9.3730660541e+03, -1.8997064729e+04, -7.0166253465e+04,
+              4.2453724420e+04, -2.1012979335e+04
+        },
+        {
+             -1.3381440685e+03,  7.8457570634e+03, -8.1184219296e+03,
+              9.8600466088e+03, -1.9858015379e+04, -7.2550078859e+04,
+              4.3691591916e+04, -1.8493520550e+04
+        },
+        {
+             -1.4450779939e+03,  7.9910657920e+03, -8.2620971178e+03,
+              1.0370910064e+04, -2.0646273648e+04, -7.4617862711e+04,
+              4.4509694998e+04,  1.5507931555e+04
+        },
+        {
+             -1.4833301030e+03,  8.0520123661e+03, -8.5203113441e+03,
+              1.0799439682e+04, -2.1378988346e+04, -7.6212982730e+04,
+              4.4853456695e+04,  1.5332078895e+04
+        },
+        {
+             -1.5391919876e+03,  8.0984254370e+03, -8.9402404119e+03,
+              1.1146307528e+04, -2.2066378864e+04, -7.7368569011e+04,
+              4.4658458590e+04,  1.6888021201e+04
+        },
+        {
+             -1.4397106403e+03,  8.1304555927e+03, -9.3719170529e+03,
+              1.1499354193e+04,  2.2751382850e+04, -7.8204481887e+04,
+              4.4067222018e+04,  2.0347217647e+04
+        },
+        {
+             -1.4914110961e+03,  8.2015725318e+03, -9.6510194965e+03,
+              1.1927512649e+04,  2.3319480082e+04, -7.8891441875e+04,
+              4.3167047351e+04, -2.7070357278e+04
+        },
+        {
+             -1.5971640850e+03,  8.3982756729e+03, -9.7040466209e+03,
+              1.2380570640e+04,  2.3779766704e+04, -7.9538830582e+04,
+              4.2087625458e+04,  3.5581523169e+04
+        },
+        {
+             -1.6217779343e+03,  8.4712278018e+03, -9.5599148351e+03,
+              1.2843499385e+04,  2.4194653689e+04, -8.0052511019e+04,
+              4.0777491404e+04,  4.4532634305e+04
+        },
+        {
+             -1.9735482932e+03,  8.8209252538e+03, -9.4706995425e+03,
+              1.3257046430e+04, -2.4600629167e+04, -8.0711330497e+04,
+              3.9504336371e+04,  5.2494208958e+04
+        },
+        {
+             -1.8866477131e+03,  8.8732019932e+03, -9.5231220061e+03,
+              1.3564452520e+04,  2.4988400103e+04, -8.1402598830e+04,
+              3.8460977033e+04,  5.9809465751e+04
+        },
+        {
+             -1.8833568907e+03,  8.9353285337e+03, -9.7595202219e+03,
+              1.3802220703e+04,  2.5332771211e+04, -8.2251823305e+04,
+             -3.8175838960e+04,  6.6369157610e+04
+        },
+        {
+             -1.8236575916e+03,  8.9505015103e+03, -1.0053994134e+04,
+              1.4002540306e+04,  2.5584484716e+04, -8.3320416344e+04,
+             -4.0001099068e+04,  7.1266992925e+04
+        },
+        {
+             -1.7836091769e+03,  8.9256437638e+03, -1.0375369071e+04,
+              1.4190966793e+04,  2.5769058991e+04, -8.4712099429e+04,
+             -4.2552134232e+04,  7.4680265101e+04
+        },
+        {
+             -1.7667865068e+03,  8.9582753300e+03, -1.0629699673e+04,
+              1.4339488081e+04,  2.5888413690e+04, -8.6307962120e+04,
+             -4.5340003948e+04,  7.5668706390e+04
+        },
+        {
+             -1.7211086715e+03,  8.9014023248e+03, -1.0815166781e+04,
+              1.4471011878e+04,  2.5960515684e+04, -8.8470210537e+04,
+             -4.8994576143e+04,  7.6382377071e+04
+        },
+        {
+             -1.6686418917e+03,  8.8952170033e+03, -1.0927848755e+04,
+              1.4541683620e+04,  2.6002216960e+04, -9.0887944371e+04,
+             -5.2371159960e+04,  7.5447543541e+04
+        },
+        {
+             -1.6588464332e+03,  8.8829684103e+03, -1.0935941711e+04,
+              1.4599086906e+04,  2.5987030301e+04, -9.3496905551e+04,
+             -5.5729398290e+04,  7.3631135559e+04
+        },
+        {
+             -1.7018016881e+03,  9.0136936407e+03, -1.0924487594e+04,
+              1.4580942104e+04,  2.5924482675e+04, -9.6209157626e+04,
+             -5.9060036038e+04,  7.0789163282e+04
+        },
+        {
+             -1.6229053448e+03,  9.0122853636e+03, -1.0883745787e+04,
+              1.4531896065e+04,  2.5795173526e+04, -9.8851959273e+04,
+             -6.2325683219e+04,  6.6702544216e+04
+        },
+        {
+             -1.5712542421e+03,  8.9920902192e+03, -1.0832376063e+04,
+              1.4443443462e+04,  2.5593081687e+04, -1.0121257431e+05,
+             -6.5388039018e+04,  6.2163743029e+04
+        },
+        {
+             -1.4931579545e+03,  8.9214518758e+03, -1.0804813327e+04,
+              1.4320006880e+04,  2.5321106747e+04, -1.0331427440e+05,
+             -6.7995487172e+04,  5.7767413322e+04
+        },
+        {
+             -1.4571355765e+03,  8.8667546556e+03, -1.0730841175e+04,
+              1.4142520764e+04,  2.4962487332e+04, -1.0478095787e+05,
+              7.0398568788e+04,  5.3383924796e+04
+        },
+        {
+             -1.4357668719e+03,  8.8293881388e+03, -1.0605030028e+04,
+              1.3930314391e+04,  2.4529323945e+04,  1.0655993158e+05,
+              7.3003739718e+04,  4.9066219288e+04
+        },
+        {
+             -1.4233078734e+03,  8.8396833369e+03, -1.0356140820e+04,
+              1.3692028774e+04,  2.4013430353e+04,  1.0784202670e+05,
+              7.5665941179e+04, -4.4791528337e+04
+        },
+        {
+             -1.5054623951e+03,  8.7782310755e+03, -1.0044395818e+04,
+              1.3443490823e+04,  2.3392827532e+04,  1.0871896197e+05,
+              7.7833811791e+04, -4.0581843884e+04
+        },
+        {
+             -1.5191922355e+03,  8.6868695265e+03, -9.8501133602e+03,
+              1.3136465001e+04,  2.2697997555e+04,  1.0921707937e+05,
+              7.9023805869e+04, -3.7282972851e+04
+        },
+        {
+             -1.5161739683e+03,  8.5776329970e+03, -9.8071424283e+03,
+              1.2766424565e+04,  2.1966188641e+04,  1.0941529353e+05,
+              7.8326196601e+04, -3.4534214998e+04
+        },
+        {
+             -1.4610948275e+03,  8.4021941897e+03, -9.7656785050e+03,
+              1.2339500946e+04,  2.1191491719e+04,  1.0878809569e+05,
+              7.5953296186e+04,  3.1975695722e+04
+        },
+        {
+             -1.4059401725e+03,  8.2228322919e+03, -9.6902080155e+03,
+              1.1906572471e+04,  2.0376935931e+04,  1.0735292863e+05,
+              7.1859362162e+04,  2.8647324732e+04
+        },
+        {
+             -1.4238748110e+03,  8.2255054352e+03, -9.5130822590e+03,
+              1.1463039067e+04,  1.9514674326e+04,  1.0460598355e+05,
+              6.7185153312e+04,  2.5253856656e+04
+        },
+        {
+             -1.3821915268e+03,  8.1112830197e+03, -9.1649468168e+03,
+              1.1123926805e+04,  1.8560881935e+04,  1.0049627997e+05,
+              6.2402328787e+04,  2.2430669290e+04
+        },
+        {
+             -1.4376786557e+03,  8.0324738090e+03, -8.7276845620e+03,
+              1.0858038634e+04,  1.7523330745e+04,  9.5033971975e+04,
+              5.7854299794e+04,  1.9618967432e+04
+        },
+        {
+             -1.4526258000e+03,  7.9998785881e+03, -8.4449208510e+03,
+              1.0533929005e+04,  1.6507929535e+04,  8.8597436844e+04,
+              5.3435688696e+04,  1.7046403020e+04
+        }
+    },
+    {
+        {
+             -1.5982065233e+03,  7.9596209216e+03, -8.8235510809e+03,
+              9.8064287184e+03,  1.3858919551e+04,  7.4024179685e+04,
+              4.8467232431e+04,  1.5879454921e+04
+        },
+        {
+             -1.4608722238e+03,  7.8060729170e+03, -8.6319248441e+03,
+              9.4194363327e+03,  1.2974180436e+04,  6.7413294676e+04,
+              4.4103918562e+04,  1.3704551571e+04
+        },
+        {
+             -1.5090739208e+03,  7.8125178116e+03, -8.4426791597e+03,
+              9.1231419636e+03,  1.2050179432e+04,  6.1493467113e+04,
+              3.9927329104e+04,  1.2055299250e+04
+        },
+        {
+             -1.4977938362e+03,  7.7732692943e+03, -8.2480817443e+03,
+              8.8610442862e+03,  1.1113848004e+04,  5.5992573988e+04,
+              3.5563455352e+04,  1.0625571149e+04
+        },
+        {
+             -1.4520326275e+03,  7.6934373905e+03, -8.0787398456e+03,
+              8.6415675940e+03,  1.0190272785e+04,  5.1199194026e+04,
+              3.1252504764e+04,  9.3368235137e+03
+        },
+        {
+             -1.4591964038e+03,  7.6047858136e+03, -7.9525101889e+03,
+              8.4546209214e+03,  9.3335965772e+03,  4.7325607466e+04,
+              2.7309093436e+04,  8.1476890752e+03
+        },
+        {
+             -1.4321987857e+03,  7.5722503040e+03, -7.8599951602e+03,
+              8.2906462437e+03,  8.5800405033e+03,  4.4604568318e+04,
+              2.3929746170e+04,  6.9734654713e+03
+        },
+        {
+             -1.3894156633e+03,  7.4828387357e+03, -7.7490627886e+03,
+              8.1839400754e+03,  7.9985317411e+03,  4.2559834843e+04,
+              2.1105178098e+04,  5.7363265853e+03
+        },
+        {
+             -1.4303402804e+03,  7.5122223416e+03, -7.6758620986e+03,
+              8.1389900580e+03,  7.6628240645e+03,  4.0584721022e+04,
+              1.8709415958e+04,  4.7490461136e+03
+        },
+        {
+             -1.3793838789e+03,  7.3965760991e+03, -7.6029537570e+03,
+              8.1406689734e+03,  7.6508092571e+03,  3.7789286975e+04,
+              1.6965028359e+04, -3.8478013656e+03
+        },
+        {
+             -1.3491790788e+03,  7.4113666334e+03, -7.5326210266e+03,
+              8.1647353083e+03,  7.9690550285e+03,  3.3440250350e+04,
+              1.5990550480e+04, -3.6773168084e+03
+        },
+        {
+             -1.3123766411e+03,  7.3955952437e+03, -7.5044515493e+03,
+              8.2022386533e+03,  8.5703626138e+03,  2.7286974108e+04,
+              1.5918761748e+04, -3.2978870562e+03
+        },
+        {
+             -1.3583993096e+03,  7.3621695849e+03, -7.4873534813e+03,
+              8.2550847808e+03,  9.3332739816e+03, -2.1043938957e+04,
+              1.6153765594e+04, -3.3918257810e+03
+        },
+        {
+             -1.2503276648e+03,  6.9976734662e+03, -7.4920670763e+03,
+              8.3095706252e+03,  1.0165386908e+04, -1.7587445147e+04,
+              1.5389727619e+04,  3.1815443210e+03
+        },
+        {
+             -1.2800710979e+03,  7.3044857088e+03, -7.4401355981e+03,
+              8.3917947342e+03,  1.0939540333e+04, -1.8757133511e+04,
+              1.2956001639e+04, -2.3804149222e+03
+        },
+        {
+             -1.2018580414e+03,  7.2893522986e+03, -7.4155448921e+03,
+              8.4477731211e+03,  1.1598330806e+04, -2.4745714685e+04,
+              1.0550848427e+04,  3.4320338077e+03
+        },
+        {
+             -1.1261570220e+03,  7.2774166639e+03, -7.4145832794e+03,
+              8.4499333054e+03,  1.2072901915e+04, -3.1525819431e+04,
+              1.1997002992e+04,  2.6902958436e+03
+        },
+        {
+             -1.1444758064e+03,  7.2610078021e+03, -7.4022337020e+03,
+              8.4304511313e+03,  1.2320955657e+04,  3.6303646191e+04,
+              1.5402967677e+04, -3.8085498581e+03
+        },
+        {
+              1.1362856121e+03,  7.2801203655e+03, -7.3780313316e+03,
+              8.3953834188e+03,  1.2310437090e+04,  3.7993621424e+04,
+              1.6371144675e+04,  7.1470879833e+03
+        },
+        {
+             -1.1788254281e+03,  7.2588677861e+03, -7.3782618685e+03,
+              8.3208185819e+03,  1.2033805647e+04,  3.5763591230e+04,
+              1.3887548012e+04, -8.2054494882e+03
+        },
+        {
+             -1.2607454909e+03,  7.2556516391e+03, -7.3604352937e+03,
+              8.2235667349e+03,  1.1504004908e+04,  2.9871088324e+04,
+              1.0328969109e+04, -7.5582905400e+03
+        },
+        {
+             -1.2808501897e+03,  7.2508710816e+03, -7.3236427474e+03,
+              8.0727668613e+03,  1.0741658246e+04,  2.1116866146e+04,
+              9.7861405391e+03,  5.5681791260e+03
+        },
+        {
+             -1.4112159303e+03,  7.3411630969e+03, -7.3056181722e+03,
+              7.8832137508e+03,  9.8054053169e+03,  1.0985220347e+04,
+             -1.2881682798e+04, -1.6473399267e+03
+        },
+        {
+             -1.4262057015e+03,  7.3347484980e+03, -7.2872825462e+03,
+              7.6754024034e+03,  8.7990114849e+03,  8.5228278355e+03,
+             -1.3710411985e+04,  2.8012954560e+03
+        },
+        {
+             -1.3614284031e+03,  7.2679451260e+03, -7.2551103208e+03,
+              7.4766628238e+03,  7.8620236163e+03, -1.4884325462e+04,
+              1.1431571802e+04,  4.4406258653e+03
+        },
+        {
+             -1.3223912227e+03,  7.2978806695e+03, -7.2189908274e+03,
+              7.2962729217e+03,  7.1623414474e+03,  2.2173659881e+04,
+              1.0698743514e+04, -4.7950247092e+03
+        },
+        {
+             -1.3662902696e+03,  7.3437240846e+03, -7.2115726539e+03,
+              7.1176695869e+03,  6.8739684743e+03,  2.8053934261e+04,
+              1.2833958370e+04, -5.6406072202e+03
+        },
+        {
+             -1.3305271679e+03,  7.3440441357e+03, -7.1915445137e+03,
+              6.9686463420e+03,  7.0725100755e+03,  3.1489391805e+04,
+              1.5598942012e+04, -6.9144205076e+03
+        },
+        {
+             -1.3245747380e+03,  7.3340759034e+03, -7.2040877245e+03,
+              6.9124481437e+03,  7.6880045490e+03,  3.3143938347e+04,
+              1.7786955234e+04, -8.7544923905e+03
+        },
+        {
+             -1.3853363042e+03,  7.3968364341e+03, -7.1820250632e+03,
+              6.9498586457e+03,  8.5601901957e+03, -3.4348527127e+04,
+              1.9533243991e+04, -1.0245666374e+04
+        },
+        {
+             -1.3594152587e+03,  7.3652294533e+03, -7.2092433064e+03,
+              7.0505080197e+03,  9.5994539357e+03, -3.6747649538e+04,
+              2.1308894685e+04, -1.1850284499e+04
+        },
+        {
+             -1.4296875539e+03,  7.4560198553e+03, -7.3008137242e+03,
+              7.1524264277e+03,  1.0743065723e+04, -3.9610855702e+04,
+              2.3114190712e+04, -1.3525962477e+04
+        },
+        {
+             -1.4714977728e+03,  7.4352760965e+03, -7.4238724145e+03,
+              7.3155225622e+03,  1.1942530906e+04, -4.2838120874e+04,
+              2.5123064932e+04, -1.5186140074e+04
+        },
+        {
+             -1.5075957509e+03,  7.4909601115e+03, -7.4958361695e+03,
+              7.6197096115e+03,  1.3067317964e+04, -4.6166793022e+04,
+              2.7140788313e+04, -1.6755730324e+04
+        },
+        {
+             -1.5284144588e+03,  7.5476013231e+03, -7.5487428206e+03,
+              8.0517194337e+03,  1.4113536253e+04, -4.9517349178e+04,
+              2.9381702573e+04, -1.8268317281e+04
+        },
+        {
+             -1.5393411773e+03,  7.6177540890e+03, -7.6345674404e+03,
+              8.5075682238e+03,  1.5119792691e+04, -5.2697786008e+04,
+              3.1558886225e+04, -1.9016024084e+04
+        },
+        {
+             -1.5221108563e+03,  7.7485477187e+03, -7.8286453373e+03,
+              8.8678905628e+03,  1.6159439201e+04,  5.5720839573e+04,
+              3.3576292506e+04, -1.9731571388e+04
+        },
+        {
+             -1.4637551968e+03,  7.7716730084e+03, -8.1080371298e+03,
+              9.2100910027e+03,  1.7179256229e+04,  5.8668132491e+04,
+              3.5236120944e+04, -1.9543717271e+04
+        },
+        {
+              1.3863804683e+03,  7.8819126457e+03, -8.3359447177e+03,
+              9.6353558299e+03,  1.8086342126e+04,  6.1360385067e+04,
+              3.6687539385e+04, -1.9180160520e+04
+        },
+        {
+             -1.4719928080e+03,  7.9983937848e+03, -8.4747956336e+03,
+              1.0166771898e+04,  1.8867351080e+04,  6.3767586699e+04,
+              3.7648759169e+04, -1.8069889908e+04
+        },
+        {
+             -1.4682527155e+03,  8.0240054337e+03, -8.5971103996e+03,
+              1.0676104500e+04,  1.9605963567e+04, -6.6048401035e+04,
+              3.8232540752e+04, -1.6173676648e+04
+        },
+        {
+             -1.5174696534e+03,  8.1189616520e+03, -8.8798074353e+03,
+              1.1111493424e+04,  2.0356282581e+04, -6.8160123855e+04,
+              3.8351741113e+04,  1.4089152240e+04
+        },
+        {
+             -1.6079169441e+03,  8.2807434783e+03, -9.2602314369e+03,
+              1.1489872435e+04,  2.1083817902e+04, -7.0054795159e+04,
+              3.8032810254e+04,  1.2414344606e+04
+        },
+        {
+             -1.5936420401e+03,  8.3242229192e+03, -9.5478367381e+03,
+              1.1910994289e+04,  2.1708419629e+04, -7.1773096522e+04,
+              3.7250112818e+04, -1.2960348277e+04
+        },
+        {
+             -1.6515287357e+03,  8.4163091822e+03, -9.6691314429e+03,
+              1.2383555773e+04,  2.2233878426e+04, -7.3333533671e+04,
+              3.6020408493e+04,  1.5977694224e+04
+        },
+        {
+             -1.7596840204e+03,  8.6118490698e+03, -9.6225660895e+03,
+              1.2843431636e+04,  2.2716440718e+04, -7.4674626630e+04,
+              3.4337090684e+04,  1.9993430729e+04
+        },
+        {
+             -1.7711045383e+03,  8.7596758706e+03, -9.5951439159e+03,
+              1.3221196466e+04,  2.3186389865e+04, -7.5827515288e+04,
+              3.2463543394e+04,  2.5465655900e+04
+        },
+        {
+             -1.8394141427e+03,  8.9160883956e+03, -9.7406179952e+03,
+              1.3539646028e+04,  2.3619287562e+04, -7.6980911068e+04,
+              3.0659043284e+04, -3.2671276678e+04
+        },
+        {
+             -1.8287716622e+03,  8.8967583775e+03, -1.0091871315e+04,
+              1.3811538868e+04,  2.3959303407e+04, -7.8153369852e+04,
+             -3.0183369559e+04, -3.9551539747e+04
+        },
+        {
+             -1.8245256240e+03,  8.8854326144e+03, -1.0528882103e+04,
+              1.4041536400e+04,  2.4190847656e+04,  7.9530369391e+04,
+             -3.0724585627e+04, -4.5830493093e+04
+        },
+        {
+             -1.8254506405e+03,  8.8192443577e+03, -1.0986386320e+04,
+              1.4288464395e+04,  2.4320234502e+04,  8.1397304750e+04,
+             -3.2167396598e+04, -5.0419451227e+04
+        },
+        {
+             -1.7077652954e+03,  8.8001889186e+03, -1.1332707275e+04,
+              1.4484911712e+04,  2.4386009150e+04,  8.3568567829e+04,
+             -3.4337297383e+04, -5.3687116753e+04
+        },
+        {
+             -1.6437577945e+03,  8.8220847658e+03, -1.1569994917e+04,
+              1.4674731038e+04,  2.4402658737e+04,  8.6109645967e+04,
+             -3.7153272087e+04, -5.5598497739e+04
+        },
+        {
+             -1.5698476936e+03,  8.8653716638e+03, -1.1719387232e+04,
+              1.4796277916e+04,  2.4398955353e+04,  8.9052277936e+04,
+             -4.0219574453e+04, -5.7362645568e+04
+        },
+        {
+             -1.5793146282e+03,  8.8804684203e+03, -1.1775610290e+04,
+              1.4872270455e+04,  2.4349038390e+04,  9.2245948438e+04,
+             -4.3572761092e+04, -5.8013552410e+04
+        },
+        {
+             -1.5519372519e+03,  8.9180170568e+03, -1.1739430459e+04,
+              1.4882356981e+04,  2.4275608263e+04,  9.5760504212e+04,
+             -4.6965112571e+04, -5.7603769971e+04
+        },
+        {
+             -1.5423099044e+03,  8.9388326570e+03, -1.1636151002e+04,
+              1.4831499043e+04,  2.4169191132e+04,  9.9223402987e+04,
+              5.1578068088e+04, -5.7168409188e+04
+        },
+        {
+             -1.5864358383e+03,  8.9939462313e+03, -1.1455990667e+04,
+              1.4721280732e+04,  2.4006387625e+04,  1.0239940770e+05,
+              5.5914406589e+04, -5.5665278415e+04
+        },
+        {
+             -1.5932531775e+03,  9.1122771074e+03, -1.1204475633e+04,
+              1.4583924997e+04,  2.3786945792e+04,  1.0496248726e+05,
+              6.0061372514e+04, -5.3998909471e+04
+        },
+        {
+             -1.6036887722e+03,  9.1048107396e+03, -1.0970115359e+04,
+              1.4412862947e+04,  2.3477381810e+04,  1.0685837053e+05,
+              6.3958409705e+04, -5.1906789211e+04
+        },
+        {
+             -1.7086351107e+03,  9.1157702214e+03, -1.0767479303e+04,
+              1.4201740303e+04,  2.3062161702e+04,  1.0791982021e+05,
+              6.7441783691e+04, -4.9768800339e+04
+        },
+        {
+             -1.6958756051e+03,  9.0808490940e+03, -1.0641182549e+04,
+              1.3968840038e+04,  2.2531164003e+04,  1.0805833657e+05,
+              7.0877057860e+04, -4.7202899567e+04
+        },
+        {
+             -1.5693467649e+03,  8.8955316564e+03, -1.0543867570e+04,
+              1.3698538252e+04,  2.1914879495e+04,  1.0751577825e+05,
+              7.4114109885e+04, -4.4626876579e+04
+        },
+        {
+             -1.6362013027e+03,  8.7861421113e+03, -1.0448549519e+04,
+              1.3390321171e+04,  2.1222445675e+04,  1.0640381472e+05,
+              7.6433183047e+04, -4.1493433063e+04
+        },
+        {
+             -1.6292258559e+03,  8.7586450378e+03, -1.0349354694e+04,
+              1.3034637024e+04,  2.0503261025e+04,  1.0498592217e+05,
+              7.7345367097e+04, -3.8095892864e+04
+        },
+        {
+             -1.6618385187e+03,  8.5931881980e+03, -1.0297122501e+04,
+              1.2627187107e+04,  1.9725638853e+04,  1.0328525844e+05,
+              7.6066521143e+04, -3.4669326527e+04
+        },
+        {
+             -1.6200515686e+03,  8.4586422818e+03, -1.0184345826e+04,
+              1.2192364986e+04,  1.8928789513e+04,  1.0113635203e+05,
+              7.2616893235e+04, -3.2472323197e+04
+        },
+        {
+             -1.6579836389e+03,  8.4024743089e+03, -9.9363353806e+03,
+              1.1789058579e+04,  1.8109606965e+04,  9.8312855735e+04,
+              6.8050141796e+04, -3.0380768500e+04
+        },
+        {
+             -1.7232476542e+03,  8.3701495940e+03, -9.6287476074e+03,
+              1.1403452896e+04,  1.7263330315e+04,  9.4859372781e+04,
+              6.3199503558e+04, -2.7866100792e+04
+        },
+        {
+             -1.6789204216e+03,  8.2325288299e+03, -9.3767134492e+03,
+              1.1015548986e+04,  1.6412545555e+04,  9.0520846893e+04,
+              5.8775740383e+04, -2.4539137908e+04
+        },
+        {
+             -1.6426004256e+03,  8.1949093104e+03, -9.1476622572e+03,
+              1.0618212582e+04,  1.5551352836e+04,  8.5406480788e+04,
+              5.4892837663e+04, -2.1005143490e+04
+        },
+        {
+             -1.6105494302e+03,  8.0358908332e+03, -8.9617146059e+03,
+              1.0220558759e+04,  1.4689620768e+04,  7.9847788106e+04,
+              5.1743352085e+04,  1.8172263315e+04
+        }
+    },
+    {
+        {
+             -1.8216095805e+03,  8.0125114251e+03, -9.1145347095e+03,
+              9.3429413786e+03,  1.3400293103e+04,  6.8505012798e+04,
+              4.9223779216e+04, -2.0970450095e+04
+        },
+        {
+             -1.8177456203e+03,  7.9700680722e+03, -8.8644574719e+03,
+              9.0347995061e+03,  1.2539497838e+04,  6.2873335154e+04,
+              4.5039279878e+04, -1.8496588012e+04
+        },
+        {
+             -1.7662988357e+03,  7.8520930842e+03, -8.6420375453e+03,
+              8.8586196017e+03,  1.1597784623e+04,  5.7580514579e+04,
+              4.1592966404e+04, -1.6830900599e+04
+        },
+        {
+             -1.7010509650e+03,  7.7794863605e+03, -8.4692313531e+03,
+              8.6610267351e+03,  1.0652864784e+04,  5.2489723225e+04,
+              3.7796842970e+04, -1.4978918882e+04
+        },
+        {
+             -1.7092769304e+03,  7.7385782205e+03, -8.3860099204e+03,
+              8.4115583865e+03,  9.7342040135e+03,  4.7970774252e+04,
+              3.4105784612e+04, -1.3653375048e+04
+        },
+        {
+             -1.6826781602e+03,  7.6569171678e+03, -8.3379549098e+03,
+              8.2344405656e+03,  8.8214143863e+03,  4.4529614183e+04,
+              3.0492773163e+04, -1.2071894196e+04
+        },
+        {
+             -1.6062361793e+03,  7.6121887635e+03, -8.1842158692e+03,
+              8.1363999708e+03,  7.9140750617e+03,  4.2209361164e+04,
+              2.7072639749e+04, -1.0711221385e+04
+        },
+        {
+             -1.6278903255e+03,  7.6297511395e+03, -8.0639960389e+03,
+              8.1470230746e+03,  7.1330151866e+03,  4.0904393176e+04,
+              2.3963978225e+04, -9.8038194279e+03
+        },
+        {
+             -1.6341063605e+03,  7.5743067564e+03, -7.9469589987e+03,
+              8.1827547948e+03,  6.6441698471e+03,  3.9777170343e+04,
+              2.1026652918e+04, -8.4560381920e+03
+        },
+        {
+             -1.6027591732e+03,  7.4323055945e+03, -7.8982950281e+03,
+              8.1939049257e+03,  6.5727750097e+03,  3.7781873495e+04,
+              1.7973554957e+04, -7.4243378624e+03
+        },
+        {
+             -1.5267507763e+03,  7.4722873601e+03, -7.8490245773e+03,
+              8.2160052539e+03,  6.9598807205e+03,  3.4034155260e+04,
+              1.5561929653e+04,  6.8542071620e+03
+        },
+        {
+             -1.5486206860e+03,  7.4041013147e+03, -7.8293075960e+03,
+              8.2918410435e+03,  7.7290823190e+03,  2.8290241387e+04,
+              1.5083581084e+04, -5.7347441848e+03
+        },
+        {
+             -1.5193230770e+03,  7.4049262739e+03, -7.7675367863e+03,
+              8.4008522445e+03,  8.7183520063e+03, -2.1859575895e+04,
+              1.5708658136e+04, -5.2377708415e+03
+        },
+        {
+             -1.4458573371e+03,  7.3922460840e+03, -7.7288780160e+03,
+              8.4827850251e+03,  9.7740543164e+03, -1.8585442497e+04,
+              1.4358656280e+04,  4.9774653773e+03
+        },
+        {
+             -1.4001541705e+03,  7.3847058403e+03, -7.7028666688e+03,
+              8.5314146648e+03,  1.0757299634e+04, -2.0392386695e+04,
+              1.0030157000e+04, -5.6045251812e+03
+        },
+        {
+             -1.3644666814e+03,  7.3483875238e+03, -7.6910896591e+03,
+              8.5741103478e+03,  1.1590749452e+04, -2.7145080399e+04,
+              8.3054192417e+03,  6.9813008294e+03
+        },
+        {
+             -1.2693490837e+03,  7.3191754906e+03, -7.6570956646e+03,
+              8.6085822601e+03,  1.2216626035e+04, -3.4620203681e+04,
+              1.5528339745e+04,  4.0989774787e+03
+        },
+        {
+             -1.1707004470e+03,  7.2722517417e+03, -7.6317913913e+03,
+              8.6086140484e+03,  1.2588646063e+04, -3.9968568325e+04,
+              2.1737345020e+04, -8.6087389415e+03
+        },
+        {
+             -1.1564288012e+03,  7.2711405097e+03, -7.6200965116e+03,
+              8.5719795742e+03,  1.2674850271e+04, -4.1770281896e+04,
+              2.2963613472e+04, -1.4328808318e+04
+        },
+        {
+              1.1583619386e+03,  7.2706230107e+03, -7.5855917898e+03,
+              8.4875396911e+03,  1.2475302469e+04, -3.9619537567e+04,
+              1.8492056308e+04, -1.2064070009e+04
+        },
+        {
+              1.1496938197e+03,  7.2469327416e+03, -7.5720367135e+03,
+              8.3835389500e+03,  1.2016073245e+04, -3.3686286626e+04,
+              9.9538813211e+03, -4.0721792581e+03
+        },
+        {
+             -1.2176536896e+03,  7.3169342574e+03, -7.5397230824e+03,
+              8.2405425294e+03,  1.1322183752e+04, -2.4953932738e+04,
+             -4.0898046845e+03, -2.6055057317e+03
+        },
+        {
+             -1.2492862515e+03,  7.2595291691e+03, -7.5078519159e+03,
+              8.0836120659e+03,  1.0454525346e+04, -1.5561758314e+04,
+              8.7804320547e+03, -3.2678774508e+03
+        },
+        {
+             -1.3287662755e+03,  7.2310196658e+03, -7.5133380121e+03,
+              7.9061287769e+03,  9.4997159197e+03, -1.1452897470e+04,
+              1.2191550775e+04,  3.3785044529e+03
+        },
+        {
+             -1.3712165342e+03,  7.2830881673e+03, -7.4620344543e+03,
+              7.7400184469e+03,  8.5786776814e+03, -1.5377954513e+04,
+              1.2173501256e+04, -5.4166413381e+03
+        },
+        {
+             -1.4312757341e+03,  7.3342803841e+03, -7.4431740353e+03,
+              7.5564335514e+03,  7.8313160855e+03,  2.0925711641e+04,
+              1.1454367333e+04, -6.0844119789e+03
+        },
+        {
+              1.3402261662e+03,  7.2726877186e+03, -7.4005857999e+03,
+              7.4063928706e+03,  7.4122000786e+03,  2.6955792214e+04,
+              1.2899623696e+04, -6.8722705393e+03
+        },
+        {
+             -1.3228212454e+03,  7.3364520454e+03, -7.4447279123e+03,
+              7.2696582176e+03,  7.4076631061e+03,  3.0630106806e+04,
+              1.5547720895e+04, -7.7370487292e+03
+        },
+        {
+             -1.2818844206e+03,  7.3727232791e+03, -7.4427960325e+03,
+              7.2144064576e+03,  7.7942090853e+03,  3.2364423651e+04,
+              1.7776780646e+04, -9.0386076157e+03
+        },
+        {
+             -1.3216327908e+03,  7.3930528276e+03, -7.4119213935e+03,
+              7.2724457992e+03,  8.4574925828e+03, -3.3102790208e+04,
+              1.9389829913e+04, -1.0471360066e+04
+        },
+        {
+             -1.4277747498e+03,  7.4643942070e+03, -7.4397074579e+03,
+              7.3768808396e+03,  9.3118904931e+03, -3.5098312232e+04,
+              2.0753707656e+04, -1.1706684907e+04
+        },
+        {
+             -1.3937076434e+03,  7.4374228260e+03, -7.5212306862e+03,
+              7.4395561106e+03,  1.0303726111e+04, -3.7503842637e+04,
+              2.2321044843e+04, -1.3573381268e+04
+        },
+        {
+             -1.3198470750e+03,  7.4734090258e+03, -7.6705809327e+03,
+              7.5017795621e+03,  1.1378784325e+04, -4.0311236067e+04,
+              2.3979737855e+04, -1.5241736909e+04
+        },
+        {
+             -1.4394710304e+03,  7.5989899055e+03, -7.7882410710e+03,
+              7.7214014398e+03,  1.2392592579e+04, -4.3286375058e+04,
+              2.5520244054e+04, -1.6991434548e+04
+        },
+        {
+             -1.4406837822e+03,  7.6148420303e+03, -7.8041672173e+03,
+              8.1455187692e+03,  1.3282512806e+04, -4.6371948397e+04,
+              2.7253624724e+04, -1.8909514669e+04
+        },
+        {
+             -1.5498072674e+03,  7.7024893486e+03, -7.8192569410e+03,
+              8.6385700294e+03,  1.4094994353e+04,  4.9349180267e+04,
+              2.8960844101e+04, -2.0021051737e+04
+        },
+        {
+             -1.5561321450e+03,  7.7661639711e+03, -7.9686212906e+03,
+              8.9996406900e+03,  1.4944103132e+04,  5.2685649492e+04,
+              3.0782120707e+04, -2.1528799920e+04
+        },
+        {
+             -1.5343089331e+03,  7.7750279652e+03, -8.2768915763e+03,
+              9.2710175964e+03,  1.5849866349e+04,  5.5792427922e+04,
+              3.2538636673e+04, -2.2388664483e+04
+        },
+        {
+             -1.5996138120e+03,  7.8884758957e+03, -8.5877236204e+03,
+              9.5971879220e+03,  1.6669563753e+04,  5.8804072681e+04,
+              3.4150899509e+04, -2.2410589085e+04
+        },
+        {
+             -1.5979325779e+03,  7.9642471628e+03, -8.7557261032e+03,
+              1.0062537691e+04,  1.7355745867e+04,  6.1807995340e+04,
+              3.5523682681e+04, -2.2273018043e+04
+        },
+        {
+             -1.7173784637e+03,  8.0572613247e+03, -8.8216465782e+03,
+              1.0616279548e+04,  1.7937413439e+04,  6.4807645919e+04,
+              3.6826055549e+04, -2.0984703012e+04
+        },
+        {
+             -1.7736797323e+03,  8.1607674244e+03, -8.9848816147e+03,
+              1.1086196375e+04,  1.8537117087e+04,  6.7849195613e+04,
+              3.7823547974e+04, -1.8476377992e+04
+        },
+        {
+             -1.8353867135e+03,  8.2447566496e+03, -9.2923772842e+03,
+              1.1453907224e+04,  1.9186813413e+04,  7.0816488364e+04,
+              3.8552628188e+04,  1.5792494431e+04
+        },
+        {
+             -1.8392483250e+03,  8.3266805896e+03, -9.6601149402e+03,
+              1.1792747928e+04,  1.9797814173e+04,  7.3628353734e+04,
+              3.8961536431e+04,  1.3734533863e+04
+        },
+        {
+             -1.8471241467e+03,  8.3709579632e+03, -9.8916501510e+03,
+              1.2186178511e+04,  2.0321632811e+04,  7.6252781834e+04,
+              3.9074576569e+04, -1.4210939875e+04
+        },
+        {
+             -1.9240692146e+03,  8.4833450325e+03, -9.9525357413e+03,
+              1.2617429701e+04,  2.0777577708e+04,  7.8717654315e+04,
+              3.9079868453e+04,  1.6677374861e+04
+        },
+        {
+             -2.0268891036e+03,  8.6707226379e+03, -9.8911279159e+03,
+              1.3028660852e+04,  2.1217043163e+04,  8.0856375739e+04,
+              3.8703717592e+04,  2.0197597075e+04
+        },
+        {
+             -2.0770788781e+03,  8.8406620717e+03, -9.8801708956e+03,
+              1.3369863979e+04,  2.1649463765e+04,  8.2912330233e+04,
+              3.8390879073e+04, -2.4725493808e+04
+        },
+        {
+             -2.1684277649e+03,  8.9597332327e+03, -9.9976340149e+03,
+              1.3638993421e+04,  2.2036775766e+04,  8.4785436958e+04,
+              3.8073716634e+04, -3.1189585930e+04
+        },
+        {
+             -2.0587378938e+03,  8.9650712714e+03, -1.0258188599e+04,
+              1.3846941161e+04,  2.2349112144e+04,  8.6672573341e+04,
+              3.8041176885e+04, -3.7426346849e+04
+        },
+        {
+             -2.0322824772e+03,  9.0101415181e+03, -1.0573871439e+04,
+              1.4023949323e+04,  2.2563078386e+04,  8.8676353635e+04,
+              3.8593744556e+04, -4.3155893688e+04
+        },
+        {
+             -1.9095030434e+03,  9.0072886879e+03, -1.0881935090e+04,
+              1.4169174314e+04,  2.2699111389e+04,  9.0808500162e+04,
+              3.9856050531e+04, -4.7597133529e+04
+        },
+        {
+             -1.7809062485e+03,  9.0110435503e+03, -1.1167025020e+04,
+              1.4298910097e+04,  2.2750395634e+04,  9.3021090818e+04,
+              4.1761462404e+04, -5.1095241563e+04
+        },
+        {
+             -1.6829918127e+03,  8.9563267353e+03, -1.1305402618e+04,
+              1.4402114270e+04,  2.2765668581e+04,  9.5264319430e+04,
+              4.4132910612e+04, -5.3351555246e+04
+        },
+        {
+             -1.6891672929e+03,  9.0380102161e+03, -1.1396376437e+04,
+              1.4443483573e+04,  2.2745630174e+04,  9.7811817737e+04,
+              4.6843359169e+04, -5.5341354784e+04
+        },
+        {
+             -1.6542865146e+03,  9.0659754162e+03, -1.1377300445e+04,
+              1.4442365401e+04,  2.2665939382e+04,  1.0019059378e+05,
+              4.9870828590e+04, -5.6576598956e+04
+        },
+        {
+             -1.6270287930e+03,  9.1242628150e+03, -1.1295544857e+04,
+              1.4388892357e+04,  2.2561145653e+04,  1.0247559255e+05,
+              5.2951296394e+04, -5.7434678702e+04
+        },
+        {
+             -1.6904989772e+03,  9.2054488353e+03, -1.1101279014e+04,
+              1.4299870744e+04,  2.2419246583e+04,  1.0418412202e+05,
+              5.6212570490e+04, -5.7464100997e+04
+        },
+        {
+             -1.7399661865e+03,  9.2504076158e+03, -1.0833035210e+04,
+              1.4157493631e+04,  2.2219439957e+04,  1.0541299370e+05,
+              5.9302618116e+04, -5.7015726782e+04
+        },
+        {
+             -1.7993125900e+03,  9.2635326001e+03, -1.0604013613e+04,
+              1.4010797967e+04,  2.1953141824e+04,  1.0574429934e+05,
+              6.2320294837e+04, -5.5911946732e+04
+        },
+        {
+             -1.8045770931e+03,  9.2242156938e+03, -1.0426152651e+04,
+              1.3814621992e+04,  2.1547855767e+04,  1.0532464194e+05,
+              6.5241139860e+04, -5.4552858202e+04
+        },
+        {
+             -1.7939832939e+03,  9.1187280466e+03, -1.0439168163e+04,
+              1.3577303010e+04,  2.1022900271e+04,  1.0407137460e+05,
+              6.8622542400e+04, -5.2833065430e+04
+        },
+        {
+             -1.8297935410e+03,  8.9338741714e+03, -1.0568139298e+04,
+              1.3264019110e+04,  2.0390384839e+04,  1.0225595161e+05,
+              7.1861257141e+04, -5.1305011223e+04
+        },
+        {
+             -1.7994232519e+03,  8.7728891108e+03, -1.0699472597e+04,
+              1.2909382699e+04,  1.9731199031e+04,  9.9989010784e+04,
+              7.4565252173e+04, -4.8834620594e+04
+        },
+        {
+             -1.8032594773e+03,  8.6439080754e+03, -1.0713955507e+04,
+              1.2508721626e+04,  1.9092608056e+04,  9.7664244966e+04,
+              7.6186295442e+04, -4.5152593662e+04
+        },
+        {
+             -1.8565911001e+03, -8.6138854844e+03, -1.0622817934e+04,
+              1.2096033282e+04,  1.8454648550e+04,  9.5135415098e+04,
+              7.5851485541e+04, -4.1202894950e+04
+        },
+        {
+             -2.0156397321e+03,  8.4607911611e+03, -1.0357271110e+04,
+              1.1706895615e+04,  1.7796666327e+04,  9.2609887239e+04,
+              7.3459426880e+04, -3.8615695397e+04
+        },
+        {
+             -1.8348388043e+03,  8.4184071634e+03, -1.0020966121e+04,
+              1.1354878332e+04,  1.7105347949e+04,  8.9744625543e+04,
+              6.9726279273e+04, -3.6973191643e+04
+        },
+        {
+             -1.9125020642e+03,  8.3867825891e+03, -9.6174869650e+03,
+              1.1055005592e+04,  1.6345008388e+04,  8.6362539906e+04,
+              6.4579755220e+04, -3.3891649266e+04
+        },
+        {
+             -1.8609704207e+03,  8.3062701089e+03, -9.3886477838e+03,
+              1.0680522989e+04,  1.5593000753e+04,  8.2698017064e+04,
+              6.0383301328e+04, -3.1228331749e+04
+        },
+        {
+             -1.8456634910e+03,  8.1742057280e+03, -9.2967242714e+03,
+              1.0224972180e+04,  1.4868853067e+04,  7.8425669066e+04,
+              5.6343693205e+04, -2.7680135477e+04
+        },
+        {
+             -1.7917597269e+03,  8.0722319010e+03, -9.2468200899e+03,
+              9.7475748993e+03,  1.4162614169e+04,  7.3770712221e+04,
+              5.2753200226e+04, -2.4219404070e+04
+        }
+    },
+    {
+        {
+             -1.8056127229e+03,  7.9950355029e+03, -9.1584020534e+03,
+              8.8940740186e+03,  1.3798061669e+04,  6.3678301469e+04,
+              4.7631055140e+04, -2.7039944240e+04
+        },
+        {
+             -1.7071160091e+03,  7.8923378187e+03, -8.8770483141e+03,
+              8.7490663950e+03, -1.2979760796e+04,  5.8687365196e+04,
+              4.3962515760e+04, -2.3482342137e+04
+        },
+        {
+             -1.7748295374e+03,  7.8719879730e+03, -8.7456269656e+03,
+              8.5374827253e+03, -1.2118562576e+04,  5.3999031964e+04,
+              4.0643719185e+04, -2.0656890623e+04
+        },
+        {
+             -1.7477490557e+03,  7.7821953498e+03, -8.6970081976e+03,
+              8.2333531709e+03,  1.1224239563e+04, -4.9460095815e+04,
+              3.7455754034e+04, -1.8445977515e+04
+        },
+        {
+             -1.7114477371e+03,  7.6800165569e+03, -8.6754966050e+03,
+              7.9920996244e+03,  1.0355075172e+04, -4.5751485760e+04,
+              3.4058238726e+04, -1.6520984607e+04
+        },
+        {
+             -1.7012483575e+03,  7.6658982967e+03, -8.5605563102e+03,
+              7.8888479078e+03,  9.3893661312e+03, -4.2505138766e+04,
+              3.0972684913e+04, -1.4686412407e+04
+        },
+        {
+             -1.6601040149e+03,  7.5619180371e+03, -8.4155912204e+03,
+              7.9510071531e+03,  8.3828191153e+03,  3.9838412486e+04,
+              2.8155580812e+04, -1.3610776912e+04
+        },
+        {
+             -1.7287555370e+03,  7.6097103168e+03, -8.2674915371e+03,
+              8.0242635607e+03,  7.4806541350e+03,  3.8458682175e+04,
+              2.5682303870e+04, -1.2223601392e+04
+        },
+        {
+             -1.5537845931e+03,  7.4359083984e+03, -8.2199007808e+03,
+              8.0559508524e+03,  6.8043492761e+03,  3.7246810140e+04,
+              2.3184958497e+04, -1.0836064120e+04
+        },
+        {
+             -1.5306049776e+03,  7.4681430234e+03, -8.1976678969e+03,
+              8.0563934643e+03,  6.4342492728e+03,  3.5330253926e+04,
+              2.0504684538e+04, -9.9102689712e+03
+        },
+        {
+             -1.5023171480e+03,  7.4709565310e+03, -8.1503450205e+03,
+              8.1315544607e+03,  6.4472972184e+03,  3.2133721158e+04,
+              1.8233836087e+04, -9.3041325620e+03
+        },
+        {
+             -1.4709605352e+03,  7.3868920218e+03, -8.0610975260e+03,
+              8.2705997908e+03,  6.8861853071e+03,  2.7394332466e+04,
+              1.7552734002e+04, -9.0131932011e+03
+        },
+        {
+             -1.4081021196e+03,  7.3575472511e+03, -8.0244923879e+03,
+              8.4145405633e+03,  7.6768740730e+03, -2.2991262204e+04,
+              1.8005029309e+04, -8.3462252677e+03
+        },
+        {
+             -1.3636667983e+03,  7.3380626907e+03, -7.9643268795e+03,
+              8.4977737058e+03,  8.6339436495e+03, -2.0327362926e+04,
+              1.7190756656e+04,  7.5016400718e+03
+        },
+        {
+             -1.3445935809e+03,  7.3408491640e+03, -7.9940712379e+03,
+              8.5212143963e+03,  9.5919923321e+03, -2.1203669653e+04,
+              1.3693696241e+04, -8.5921642302e+03
+        },
+        {
+             -1.2466303363e+03,  7.3034555060e+03, -7.9764981037e+03,
+              8.5717224126e+03,  1.0446288158e+04, -2.5943383560e+04,
+             -9.4941452198e+03, -9.9876543768e+03
+        },
+        {
+              1.2066659714e+03,  7.2402356046e+03, -7.9363412294e+03,
+              8.6137979890e+03,  1.1141196958e+04, -3.1785820093e+04,
+             -9.9037832085e+03, -7.6501020884e+03
+        },
+        {
+             -1.2800270322e+03,  7.3666928500e+03, -7.8788351152e+03,
+              8.6640295171e+03,  1.1626925084e+04, -3.6351437613e+04,
+              1.5245816891e+04,  7.2509901339e+03
+        },
+        {
+             -1.2850462573e+03,  7.2603210131e+03, -7.8546288887e+03,
+              8.6792899200e+03,  1.1847237084e+04, -3.8366127495e+04,
+              1.8812442145e+04, -1.1849931560e+04
+        },
+        {
+             -1.2958801559e+03,  7.2526994787e+03, -7.8096377129e+03,
+              8.6194380863e+03,  1.1793050711e+04, -3.7371118298e+04,
+              1.8956700141e+04, -1.3264545991e+04
+        },
+        {
+             -1.3249127688e+03,  7.1844572005e+03, -7.7829378006e+03,
+              8.5235857369e+03,  1.1500937743e+04, -3.3732950270e+04,
+              1.6822099462e+04, -1.1114172043e+04
+        },
+        {
+              1.6082776586e+03,  7.2164358776e+03, -7.7683007096e+03,
+              8.3776011265e+03,  1.0990115490e+04, -2.8474496552e+04,
+              1.4651741358e+04, -9.6310833957e+03
+        },
+        {
+             -1.5240126961e+03,  7.2947402589e+03, -7.7864010686e+03,
+              8.2083301332e+03,  1.0313062268e+04, -2.3387616534e+04,
+              1.4172456968e+04, -8.7205972648e+03
+        },
+        {
+             -1.5184858092e+03,  7.2711337782e+03, -7.7720433508e+03,
+              8.0490874777e+03,  9.5645602704e+03, -2.0788970861e+04,
+              1.4518142324e+04, -7.6011959101e+03
+        },
+        {
+             -1.6077355503e+03,  7.3297844163e+03, -7.7218576578e+03,
+              7.9293589680e+03,  8.8337570340e+03, -2.1500464754e+04,
+              1.4534265764e+04, -7.9286835534e+03
+        },
+        {
+             -1.6037616545e+03,  7.3183355875e+03, -7.6950911846e+03,
+              7.8150609712e+03,  8.2394011402e+03,  2.4118634651e+04,
+              1.4314906935e+04, -8.4399251974e+03
+        },
+        {
+             -1.5609442160e+03,  7.3295794481e+03, -7.6762945508e+03,
+              7.6824439770e+03,  7.8663016601e+03,  2.8044789934e+04,
+              1.4813161170e+04, -9.0737082043e+03
+        },
+        {
+             -1.5781962790e+03,  7.3289564698e+03, -7.6987310166e+03,
+              7.5255848213e+03,  7.8129045512e+03,  3.0791304111e+04,
+              1.6063724696e+04, -9.9579911769e+03
+        },
+        {
+             -1.5542063265e+03,  7.4290344848e+03, -7.7297188900e+03,
+              7.4154679643e+03,  8.0866026081e+03,  3.2256602278e+04,
+              1.7431509864e+04, -1.0597503706e+04
+        },
+        {
+             -1.5494349746e+03,  7.3626819638e+03, -7.7458916515e+03,
+              7.3990555811e+03,  8.6054166916e+03,  3.2937585065e+04,
+              1.8668823263e+04, -1.1434062635e+04
+        },
+        {
+             -1.6125313491e+03,  7.3583673853e+03, -7.7257399597e+03,
+              7.5162419042e+03,  9.2677029892e+03, -3.3797894607e+04,
+              1.9623495145e+04, -1.2357994280e+04
+        },
+        {
+             -1.6102105178e+03,  7.4006344621e+03, -7.7314845524e+03,
+              7.6551300994e+03,  1.0029350502e+04, -3.5551149304e+04,
+              2.0619671622e+04, -1.3256040141e+04
+        },
+        {
+             -1.6151077569e+03,  7.5067328799e+03, -7.8190626341e+03,
+              7.7260691011e+03,  1.0880829657e+04, -3.7694958393e+04,
+              2.1721841814e+04, -1.4682146926e+04
+        },
+        {
+             -1.5933697975e+03,  7.5596019899e+03, -7.9906463733e+03,
+              7.7930092720e+03,  1.1778480438e+04, -4.0101007503e+04,
+              2.2938129247e+04, -1.5812540226e+04
+        },
+        {
+             -1.5237795311e+03,  7.5741699057e+03, -8.1274049797e+03,
+              7.9888916504e+03,  1.2601709163e+04,  4.2688352302e+04,
+              2.4495010388e+04, -1.7230171483e+04
+        },
+        {
+             -1.5898543462e+03,  7.6694082291e+03, -8.1316630286e+03,
+              8.3891863179e+03,  1.3267464203e+04,  4.5769867079e+04,
+              2.6139279516e+04, -1.8861920454e+04
+        },
+        {
+             -1.5969573090e+03,  7.6984210491e+03, -8.1289368486e+03,
+              8.8720255649e+03,  1.3845769616e+04,  4.8784040816e+04,
+              2.7950675274e+04, -2.0031498452e+04
+        },
+        {
+             -1.6316120253e+03,  7.7817172231e+03, -8.2488223571e+03,
+              9.2571226322e+03,  1.4461484817e+04,  5.1713404562e+04,
+              2.9883100846e+04, -2.1155801912e+04
+        },
+        {
+             -1.6493073073e+03,  7.8383116420e+03, -8.5319135978e+03,
+              9.4763142335e+03,  1.5158613460e+04,  5.4516763157e+04,
+              3.1784924791e+04, -2.2413761061e+04
+        },
+        {
+             -1.6299433678e+03,  7.9324734252e+03, -8.8766403565e+03,
+              9.7094219223e+03,  1.5839805680e+04,  5.7391303041e+04,
+              3.3665126267e+04, -2.2629455291e+04
+        },
+        {
+             -1.6209458785e+03,  7.9764681867e+03, -9.1027733809e+03,
+              1.0073373445e+04,  1.6399730460e+04,  6.0285865105e+04,
+              3.5543717331e+04,  2.2544148449e+04
+        },
+        {
+             -1.6723325521e+03,  8.0299989446e+03, -9.1598374741e+03,
+              1.0554409220e+04,  1.6826155056e+04,  6.3202547636e+04,
+              3.7353686961e+04,  2.2269131398e+04
+        },
+        {
+             -1.8339474725e+03,  8.1419647761e+03, -9.1939749465e+03,
+              1.1065733743e+04,  1.7231057749e+04,  6.6136849779e+04,
+              3.9042216584e+04,  2.0969344933e+04
+        },
+        {
+             -1.9458584026e+03,  8.2551705186e+03, -9.3391384142e+03,
+              1.1461116153e+04,  1.7709608379e+04,  6.8996720416e+04,
+              4.0419834731e+04,  1.9682201402e+04
+        },
+        {
+             -1.8767963971e+03,  8.3261916912e+03, -9.6645230021e+03,
+              1.1738811453e+04,  1.8219864700e+04,  7.1736107578e+04,
+              4.1389930750e+04,  1.8727237117e+04
+        },
+        {
+             -1.8767170244e+03, -8.3474058443e+03, -1.0016601681e+04,
+              1.1990724576e+04,  1.8712004704e+04,  7.4423026666e+04,
+              4.2141843033e+04,  1.7991046593e+04
+        },
+        {
+             -1.8743631265e+03, -8.4723908934e+03, -1.0313993709e+04,
+              1.2250231966e+04,  1.9146519721e+04,  7.6603795763e+04,
+              4.2210211871e+04,  1.8574446254e+04
+        },
+        {
+             -1.9348958877e+03, -8.5666498907e+03, -1.0465085612e+04,
+              1.2553059677e+04,  1.9514834056e+04,  7.8845697351e+04,
+              4.2157436900e+04,  2.0961587858e+04
+        },
+        {
+             -1.9939052413e+03, -8.5862312693e+03, -1.0492344667e+04,
+              1.2872731102e+04,  1.9850548167e+04,  8.0999949955e+04,
+              4.2029845035e+04,  2.4399811398e+04
+        },
+        {
+             -1.9784819111e+03, -8.6951262612e+03, -1.0459243301e+04,
+              1.3126975358e+04,  2.0177378569e+04,  8.2927239362e+04,
+              4.1859183108e+04,  2.8040983411e+04
+        },
+        {
+             -2.0546199128e+03,  8.8066831105e+03, -1.0385749273e+04,
+              1.3353048495e+04,  2.0473962913e+04,  8.4952183004e+04,
+              4.1865756846e+04,  3.1541712579e+04
+        },
+        {
+             -2.0200372348e+03,  8.9235835237e+03, -1.0365992507e+04,
+              1.3509465602e+04,  2.0754169825e+04,  8.6932880568e+04,
+              4.2356003685e+04, -3.5146123785e+04
+        },
+        {
+             -2.0315016186e+03,  9.0008936868e+03, -1.0377791530e+04,
+              1.3631774959e+04,  2.0977325095e+04,  8.8962564994e+04,
+              4.3281567110e+04, -3.8877483312e+04
+        },
+        {
+             -2.0855107971e+03,  9.1291518031e+03, -1.0416438052e+04,
+              1.3694447481e+04,  2.1146203490e+04,  9.0960927588e+04,
+              4.4777115582e+04, -4.2257023710e+04
+        },
+        {
+             -1.9964563855e+03,  9.1683897113e+03, -1.0434917580e+04,
+              1.3725920496e+04,  2.1251089685e+04,  9.2823121096e+04,
+              4.6869033197e+04, -4.5028425565e+04
+        },
+        {
+             -1.9033717439e+03,  9.1942811073e+03, -1.0469552754e+04,
+              1.3706452048e+04,  2.1291906126e+04,  9.4646486454e+04,
+              4.9308262828e+04, -4.7313703084e+04
+        },
+        {
+             -1.8785128541e+03,  9.1555274861e+03, -1.0486657041e+04,
+              1.3646219621e+04,  2.1257695956e+04,  9.6096577221e+04,
+              5.2214878451e+04, -4.8755982755e+04
+        },
+        {
+             -1.8065267466e+03,  9.1043832804e+03, -1.0561997114e+04,
+              1.3539619309e+04,  2.1151654664e+04,  9.7118254386e+04,
+              5.5358691439e+04, -5.0234526175e+04
+        },
+        {
+              1.8045140736e+03,  9.1339454526e+03, -1.0649363636e+04,
+              1.3405643773e+04,  2.0966743506e+04,  9.7579256601e+04,
+              5.8796537721e+04, -5.1319338073e+04
+        },
+        {
+             -1.6995734833e+03,  8.9201573489e+03, -1.0792868531e+04,
+              1.3214642098e+04,  2.0704351233e+04,  9.7356341266e+04,
+              6.2259558136e+04, -5.1875189656e+04
+        },
+        {
+             -1.7104891065e+03,  8.8910576841e+03, -1.0972759589e+04,
+              1.2942585759e+04,  2.0385222321e+04,  9.6573608085e+04,
+              6.5716686519e+04, -5.1539936513e+04
+        },
+        {
+             -1.6183353433e+03, -8.7563363912e+03, -1.1158619140e+04,
+              1.2644627336e+04,  2.0017473923e+04,  9.5127655103e+04,
+              6.9153306117e+04, -5.1167361294e+04
+        },
+        {
+             -1.6223106628e+03, -8.6607546635e+03, -1.1153962508e+04,
+              1.2316128895e+04,  1.9653360835e+04,  9.3213789369e+04,
+              7.2334918317e+04, -5.0097711867e+04
+        },
+        {
+             -1.6816484283e+03, -8.5618902110e+03, -1.0924999146e+04,
+              1.2009540439e+04,  1.9262721712e+04,  9.1054560268e+04,
+              7.5008737917e+04, -4.9935026111e+04
+        },
+        {
+             -1.8016020081e+03,  8.5225327343e+03, -1.0534649444e+04,
+              1.1747413652e+04,  1.8837658124e+04,  8.8780785920e+04,
+              7.6233642882e+04, -4.9991636146e+04
+        },
+        {
+             -1.8301420210e+03,  8.5191577412e+03, -1.0121444157e+04,
+              1.1499007610e+04,  1.8335172963e+04,  8.6392447313e+04,
+              7.5447823883e+04, -4.9188367642e+04
+        },
+        {
+             -1.8716119280e+03,  8.5392484573e+03, -9.8094857229e+03,
+              1.1216249043e+04,  1.7770435535e+04,  8.4046549625e+04,
+              7.2771093546e+04, -4.7401113420e+04
+        },
+        {
+             -1.9478351078e+03,  8.4015663125e+03, -9.6249449404e+03,
+              1.0872568367e+04,  1.7162737382e+04,  8.1577862364e+04,
+              6.8502500459e+04, -4.4661192153e+04
+        },
+        {
+             -1.8735939022e+03,  8.3172274062e+03, -9.5978706060e+03,
+              1.0415568639e+04,  1.6549617074e+04,  7.8746187707e+04,
+              6.3747544169e+04, -4.2487316036e+04
+        },
+        {
+             -1.7910914219e+03,  8.1611982350e+03, -9.6725970554e+03,
+              9.8779085561e+03,  1.5970075662e+04,  7.5583278808e+04,
+              5.9053891850e+04, -3.9175390539e+04
+        },
+        {
+             -1.8003919885e+03,  8.1025126114e+03, -9.6618381765e+03,
+              9.3853990564e+03,  1.5352348345e+04,  7.1974848759e+04,
+              5.4815927325e+04, -3.4695723921e+04
+        },
+        {
+             -1.7727736317e+03,  7.9826355143e+03, -9.4516659176e+03,
+              9.0635848092e+03,  1.4623255325e+04,  6.7959971957e+04,
+              5.0996230458e+04, -3.0534493906e+04
+        }
+    },
+    {
+        {
+             -1.5165455765e+03,  8.1442855464e+03, -9.2306488637e+03,
+              8.6393460443e+03, -1.5070447572e+04,  6.3812242761e+04,
+              4.6291227303e+04, -3.0498299169e+04
+        },
+        {
+             -1.6094615755e+03,  7.8976025285e+03, -9.2578276781e+03,
+              8.1804185462e+03, -1.4093312482e+04,  5.8483420508e+04,
+              4.1934152593e+04, -2.6721416860e+04
+        },
+        {
+             -1.4974948978e+03,  8.0078676396e+03, -9.2071954850e+03,
+              7.8483650917e+03, -1.3030122665e+04,  5.3368417565e+04,
+              3.8142755156e+04, -2.2890911013e+04
+        },
+        {
+             -1.5176629969e+03,  7.9712593966e+03, -8.9300599838e+03,
+              7.8203821616e+03, -1.1825972536e+04, -4.8668372553e+04,
+              3.4382843725e+04, -2.0252712744e+04
+        },
+        {
+             -1.4627607044e+03,  7.8340702559e+03, -8.7173801820e+03,
+              7.9053166803e+03, -1.0495419844e+04, -4.4899288103e+04,
+              3.0877307676e+04, -1.7848715191e+04
+        },
+        {
+             -1.5491312718e+03,  7.8035149992e+03, -8.6367195815e+03,
+              7.8599162041e+03,  9.2624631769e+03,  4.1747634035e+04,
+              2.7796991264e+04, -1.6018770142e+04
+        },
+        {
+             -1.5548188997e+03,  7.7324193162e+03, -8.6505246588e+03,
+              7.7464048214e+03,  8.3637715241e+03,  3.9758430128e+04,
+              2.5041983718e+04, -1.4588789900e+04
+        },
+        {
+             -1.5945759793e+03,  7.7212264158e+03, -8.6279886825e+03,
+              7.7747533442e+03,  7.6046381716e+03,  3.7652458409e+04,
+              2.2342743748e+04, -1.2981410992e+04
+        },
+        {
+             -1.6183092721e+03,  7.6862561785e+03, -8.5063384500e+03,
+              7.9945182372e+03,  7.0919116433e+03,  3.4480694248e+04,
+              1.9805404594e+04, -1.2126530126e+04
+        },
+        {
+             -1.5514103275e+03,  7.6030596302e+03, -8.3801424974e+03,
+              8.2328249144e+03,  7.0408465301e+03, -2.9934091400e+04,
+              1.8467023368e+04, -1.1382392362e+04
+        },
+        {
+             -1.4272378059e+03,  7.6091968050e+03, -8.3540033437e+03,
+              8.3428821652e+03,  7.4940390668e+03, -2.5846533843e+04,
+              1.8576410751e+04, -1.0849533400e+04
+        },
+        {
+             -1.2370835252e+03,  7.5115458030e+03, -8.3442154301e+03,
+              8.3808466728e+03,  8.2537357164e+03, -2.2954634200e+04,
+              1.7900212607e+04, -9.8355368955e+03
+        },
+        {
+             -1.1947416939e+03,  7.5021267253e+03, -8.3304850597e+03,
+              8.4568228372e+03,  9.0960839988e+03, -2.3520376263e+04,
+              1.4954510619e+04, -1.0354576620e+04
+        },
+        {
+             -1.2345956548e+03,  7.5287423539e+03, -8.2760219400e+03,
+              8.5577647723e+03,  9.8622131100e+03, -2.7551448911e+04,
+             -1.1624047745e+04, -1.1386532585e+04
+        },
+        {
+             -1.2634503065e+03,  7.4293601710e+03, -8.2298344608e+03,
+              8.6437288072e+03,  1.0439871213e+04, -3.2145194243e+04,
+             -1.1685197010e+04, -9.2169672757e+03
+        },
+        {
+             -1.4082383070e+03,  7.4804529879e+03, -8.1859198278e+03,
+              8.6542151044e+03,  1.0754539220e+04, -3.4970189406e+04,
+              1.4722890758e+04, -8.4098969183e+03
+        },
+        {
+             -1.5124796340e+03,  7.4157566455e+03, -8.1443280983e+03,
+              8.6256412411e+03,  1.0784119628e+04, -3.5161408475e+04,
+              1.6385860263e+04, -1.0635135514e+04
+        },
+        {
+             -1.6388089748e+03,  7.4242797227e+03, -8.1115760536e+03,
+              8.5444735706e+03,  1.0544438890e+04, -3.3144715568e+04,
+              1.6137791559e+04, -1.2360469245e+04
+        },
+        {
+             -1.6978509438e+03,  7.4807690219e+03, -8.1109426106e+03,
+              8.3859005942e+03,  1.0086138314e+04, -3.0370326459e+04,
+              1.5429592023e+04, -1.2908733434e+04
+        },
+        {
+             -1.6880956335e+03,  7.4279448088e+03, -8.1282084549e+03,
+              8.1687137587e+03,  9.5162961748e+03, -2.8617291101e+04,
+              1.5433088149e+04, -1.1838522557e+04
+        },
+        {
+             -1.6708713522e+03,  7.4543081068e+03, -8.1457417090e+03,
+              7.9743859793e+03,  8.9701444026e+03, -2.8805100516e+04,
+              1.5585077008e+04, -1.1004587699e+04
+        },
+        {
+             -1.6337842575e+03,  7.4807777667e+03, -8.0711798673e+03,
+              7.8793278890e+03,  8.5573557893e+03,  3.0557754010e+04,
+              1.5431330211e+04, -1.1260460442e+04
+        },
+        {
+             -1.7163601232e+03,  7.5102712806e+03, -8.0410098327e+03,
+              7.8400167164e+03,  8.3975058826e+03,  3.3048647966e+04,
+              1.5333452897e+04, -1.1363739292e+04
+        },
+        {
+             -1.6863556803e+03,  7.5438326439e+03, -7.9922451286e+03,
+              7.7562720868e+03,  8.5602591588e+03,  3.4662046396e+04,
+              1.5978729329e+04, -1.1959846568e+04
+        },
+        {
+             -1.6158546378e+03,  7.5560802746e+03, -8.0851663948e+03,
+              7.5778819719e+03,  9.0813991377e+03,  3.5541941940e+04,
+              1.7299941860e+04, -1.2773885286e+04
+        },
+        {
+             -1.5941367684e+03,  7.6105734070e+03, -8.1792820771e+03,
+              7.4815379343e+03,  9.8234143568e+03,  3.6271024507e+04,
+              1.8705559309e+04, -1.3668943629e+04
+        },
+        {
+             -1.6310052740e+03,  7.6257366125e+03, -8.1850084117e+03,
+              7.6292225049e+03,  1.0571481907e+04, -3.7912595395e+04,
+              2.0111568243e+04, -1.5172437755e+04
+        },
+        {
+             -1.6513203992e+03,  7.7358836673e+03, -8.1377973494e+03,
+              7.9574961854e+03,  1.1292035771e+04, -4.0073198421e+04,
+              2.1679692749e+04, -1.6268132172e+04
+        },
+        {
+             -1.5597108053e+03,  7.7748390109e+03, -8.1732810444e+03,
+              8.2072007976e+03,  1.2089567476e+04, -4.2617975237e+04,
+              2.3580263053e+04, -1.7887349052e+04
+        },
+        {
+             -1.7007494102e+03,  7.8245039742e+03, -8.4398699698e+03,
+              8.2928188120e+03,  1.2983534611e+04,  4.5653772873e+04,
+              2.5766776279e+04, -1.9681692801e+04
+        },
+        {
+             -1.6298083895e+03,  7.8633396936e+03, -8.7350879460e+03,
+              8.4652409758e+03,  1.3818920064e+04,  4.8853255607e+04,
+              2.8150183234e+04, -2.0941043798e+04
+        },
+        {
+             -1.7217772617e+03,  7.9072631810e+03, -8.8190067902e+03,
+              8.9171078904e+03,  1.4422602260e+04,  5.2029874485e+04,
+              3.0598807281e+04, -2.2681572841e+04
+        },
+        {
+             -1.8119696607e+03,  8.0497283459e+03, -8.7688094939e+03,
+              9.5211206899e+03,  1.4901410360e+04,  5.5146277549e+04,
+              3.3055441064e+04, -2.4004470071e+04
+        },
+        {
+             -1.8580335714e+03,  8.1465010261e+03, -8.8151882459e+03,
+              1.0000834270e+04,  1.5438361974e+04,  5.8252955863e+04,
+              3.5613588163e+04, -2.4523574528e+04
+        },
+        {
+             -1.9050315265e+03,  8.2645804495e+03, -9.1624586234e+03,
+              1.0298462467e+04,  1.6070472051e+04,  6.1469999563e+04,
+              3.8025899942e+04, -2.5593438862e+04
+        },
+        {
+             -1.8541927526e+03,  8.2446001603e+03, -9.6295473186e+03,
+              1.0570095836e+04,  1.6677538933e+04,  6.4597706762e+04,
+              4.0109109392e+04, -2.5240152711e+04
+        },
+        {
+             -1.8034868363e+03, -8.3515831296e+03, -9.9526002838e+03,
+              1.0940007481e+04,  1.7196645448e+04,  6.7751492830e+04,
+              4.1847918045e+04,  2.4653492744e+04
+        },
+        {
+             -2.0212884107e+03,  8.6304107369e+03, -9.9803643154e+03,
+              1.1369069566e+04,  1.7686083720e+04,  7.0832523484e+04,
+              4.3277162056e+04,  2.4758565581e+04
+        },
+        {
+             -1.9100824466e+03,  8.6165784703e+03, -9.9361783461e+03,
+              1.1807139434e+04,  1.8198388362e+04,  7.3885648407e+04,
+              4.4235838446e+04,  2.4222197966e+04
+        },
+        {
+             -1.9345302986e+03,  8.7456259517e+03, -9.9600119215e+03,
+              1.2137411009e+04,  1.8722931911e+04,  7.6680895962e+04,
+              4.5087280270e+04,  2.4184201120e+04
+        },
+        {
+             -1.9443889672e+03,  8.8324623515e+03, -1.0142014516e+04,
+              1.2403760705e+04,  1.9200793911e+04,  7.9415621258e+04,
+              4.5666370820e+04,  2.5907942633e+04
+        },
+        {
+             -1.8978793715e+03,  8.8899579120e+03, -1.0428899041e+04,
+              1.2601031434e+04,  1.9576298987e+04,  8.2081658560e+04,
+              4.6255565077e+04,  2.8437718844e+04
+        },
+        {
+             -1.8492840757e+03,  8.8699597860e+03, -1.0749142949e+04,
+              1.2769199468e+04,  1.9879552316e+04,  8.4694885817e+04,
+              4.6930828390e+04,  3.1140461199e+04
+        },
+        {
+             -1.8283680665e+03, -8.9256873376e+03, -1.1027039038e+04,
+              1.2892317543e+04,  2.0112334034e+04,  8.7217444627e+04,
+              4.7966352740e+04,  3.4367998320e+04
+        },
+        {
+             -1.8472064397e+03, -8.9307994393e+03, -1.1236112921e+04,
+              1.2994666652e+04,  2.0307157535e+04,  8.9649244235e+04,
+              4.9391980614e+04,  3.7505283309e+04
+        },
+        {
+             -1.8628506429e+03, -8.8606774339e+03, -1.1334367541e+04,
+              1.3036135563e+04,  2.0466597489e+04,  9.1931537293e+04,
+              5.1346248901e+04, -4.1406767162e+04
+        },
+        {
+             -1.9072060828e+03, -8.9107879823e+03, -1.1332831740e+04,
+              1.3008963055e+04,  2.0619796846e+04,  9.3743832309e+04,
+              5.3834248727e+04, -4.5154529516e+04
+        },
+        {
+             -1.8950773973e+03, -8.9901882828e+03, -1.1251246943e+04,
+              1.2915843120e+04,  2.0741660952e+04,  9.5153582399e+04,
+              5.6718450821e+04, -4.8245322413e+04
+        },
+        {
+             -1.7959345232e+03,  8.9484588577e+03, -1.1029697459e+04,
+              1.2772798990e+04,  2.0839005938e+04,  9.5800847579e+04,
+              6.0129929437e+04, -5.0570053007e+04
+        },
+        {
+             -1.8207446890e+03,  9.0572473829e+03, -1.0731233650e+04,
+              1.2577391424e+04,  2.0897480302e+04,  9.5732060650e+04,
+              6.3592208450e+04, -5.1775540267e+04
+        },
+        {
+             -1.7470752610e+03,  9.1424211756e+03, -1.0399376570e+04,
+              1.2348759137e+04,  2.0855187635e+04,  9.4696292243e+04,
+              6.7249758854e+04, -5.1987895908e+04
+        },
+        {
+             -1.8472787624e+03,  9.2013961416e+03, -1.0115536906e+04,
+              1.2095494966e+04,  2.0681551690e+04,  9.2996487709e+04,
+              7.0538752396e+04, -5.1023333801e+04
+        },
+        {
+             -1.8188513173e+03,  9.1127341003e+03, -9.9901263373e+03,
+              1.1796662117e+04, -2.0322822947e+04,  9.0730174330e+04,
+              7.3475289383e+04, -5.1242633227e+04
+        },
+        {
+             -1.6783218675e+03,  8.8763754607e+03, -1.0173649917e+04,
+              1.1401660940e+04, -1.9824658549e+04,  8.8200522366e+04,
+              7.5105056184e+04, -5.2370793473e+04
+        },
+        {
+             -1.5979318736e+03,  8.6807763090e+03, -1.0492723435e+04,
+              1.0922735015e+04, -1.9188796586e+04,  8.5502643882e+04,
+              7.4640232462e+04, -5.2901122873e+04
+        },
+        {
+             -1.5216916757e+03,  8.5075333439e+03, -1.0623893140e+04,
+              1.0402864766e+04, -1.8569281711e+04,  8.2772482674e+04,
+              7.2094448045e+04, -5.0985344475e+04
+        },
+        {
+             -1.5434386325e+03,  8.4794713996e+03, -1.0381291962e+04,
+              9.9537343228e+03, -1.8019567920e+04,  7.9720898178e+04,
+              6.7514590867e+04, -4.8701213340e+04
+        },
+        {
+             -1.5784233835e+03,  8.4352122833e+03, -9.8903235586e+03,
+              9.6576145748e+03, -1.7450319064e+04,  7.6388658127e+04,
+              6.2088448583e+04, -4.5852734734e+04
+        },
+        {
+             -1.6732993666e+03,  8.4654481650e+03, -9.3978641927e+03,
+              9.4395319271e+03, -1.6777874470e+04,  7.2634966167e+04,
+              5.6267559768e+04, -4.1096647819e+04
+        },
+        {
+             -1.6960083486e+03,  8.3759291345e+03, -9.1585688178e+03,
+              9.1289356276e+03, -1.5963716083e+04,  6.8453472069e+04,
+              5.1168489941e+04, -3.5473788058e+04
+        }
+    },
+    {
+        {
+             -1.7203427002e+03,  8.0645918701e+03, -9.0283053409e+03,
+              7.8320938902e+03, -1.5197907705e+04, -6.9061695838e+04,
+              4.8507316308e+04, -5.5151184786e+04
+        },
+        {
+             -1.7383503583e+03,  8.0492029599e+03, -8.6105975736e+03,
+              7.9160253550e+03, -1.3919635453e+04, -6.5081652782e+04,
+              4.6063497402e+04, -4.9805028207e+04
+        },
+        {
+             -1.5408446976e+03,  7.9099514109e+03, -8.6427021650e+03,
+              7.5399723177e+03, -1.2933716440e+04, -6.0459999474e+04,
+              4.2130560117e+04, -4.2756306148e+04
+        },
+        {
+             -1.3730087230e+03,  7.8238564063e+03, -8.7621741830e+03,
+              7.0333478565e+03, -1.1749317121e+04, -5.5311282627e+04,
+              3.7916185763e+04, -3.6810922144e+04
+        },
+        {
+             -1.3767142564e+03,  7.7467396968e+03, -8.7368563436e+03,
+              6.9022949403e+03, -1.0649140656e+04, -5.1499536250e+04,
+              3.4621506878e+04, -3.2501702335e+04
+        },
+        {
+             -1.3409871418e+03,  7.6748926393e+03, -8.5171912249e+03,
+              7.1245554070e+03,  9.3800657914e+03, -4.7756912617e+04,
+              3.1224863815e+04, -2.8810769345e+04
+        },
+        {
+             -1.4961878361e+03,  7.5875008973e+03, -8.3419079075e+03,
+              7.3526635974e+03,  8.5618393992e+03, -4.4863893408e+04,
+              2.8430656530e+04, -2.6039347131e+04
+        },
+        {
+             -1.3584896367e+03,  7.6040658446e+03, -8.3133968806e+03,
+              7.4251234360e+03,  8.0110219834e+03, -4.1835380271e+04,
+             -2.6038200830e+04, -2.3756217566e+04
+        },
+        {
+             -1.3032756590e+03,  7.5764715912e+03, -8.3577226504e+03,
+              7.3996842937e+03,  7.6979160114e+03, -3.7641890490e+04,
+             -2.3683403995e+04, -2.2466334350e+04
+        },
+        {
+             -1.3743727019e+03,  7.5228275797e+03, -8.3513544253e+03,
+              7.4721076880e+03,  7.7002299973e+03, -3.3497838231e+04,
+             -2.2498586755e+04, -2.1126547639e+04
+        },
+        {
+             -1.4925322708e+03,  7.5168852142e+03, -8.2903412581e+03,
+              7.6557087359e+03,  7.9827414669e+03, -2.9063996597e+04,
+             -2.1464680457e+04, -1.9758588572e+04
+        },
+        {
+             -1.5467284115e+03,  7.4581419756e+03, -8.2215348098e+03,
+              7.8167193927e+03,  8.3803561543e+03, -2.7109246820e+04,
+             -1.9892089886e+04, -1.8834641982e+04
+        },
+        {
+             -1.5727497839e+03,  7.4377893229e+03, -8.1606284120e+03,
+              7.9299762838e+03,  8.8876418697e+03, -2.8055357144e+04,
+             -1.7147620511e+04, -1.7966649706e+04
+        },
+        {
+             -1.5584878650e+03,  7.4668276945e+03, -8.1343039212e+03,
+              7.9728717942e+03,  9.2415765787e+03, -3.0629423947e+04,
+             -1.5510068972e+04, -1.6361241411e+04
+        },
+        {
+             -1.5660184702e+03,  7.4105205404e+03, -8.1219632913e+03,
+              7.9614417059e+03,  9.4600583551e+03, -3.3176563503e+04,
+             -1.5586990611e+04, -1.4599318822e+04
+        },
+        {
+             -1.5646259643e+03,  7.4422493601e+03, -8.0820325000e+03,
+              7.9180199576e+03,  9.5163552397e+03, -3.4880423988e+04,
+             -1.6900414663e+04, -1.5167108990e+04
+        },
+        {
+             -1.5493187873e+03,  7.4094098204e+03, -8.0445663720e+03,
+              7.8643491918e+03,  9.4186965333e+03, -3.5359822290e+04,
+             -1.8193570601e+04, -1.7235095688e+04
+        },
+        {
+             -1.5224775283e+03,  7.3925486023e+03, -8.0032117559e+03,
+              7.7825981725e+03,  9.1962532113e+03, -3.5706980714e+04,
+             -1.9599507469e+04, -1.8732496607e+04
+        },
+        {
+             -1.4790107230e+03,  7.3920608581e+03, -8.0007242954e+03,
+              7.6706462941e+03,  8.9825121032e+03, -3.6338329148e+04,
+             -2.0384387878e+04, -1.9397768185e+04
+        },
+        {
+             -1.5560428551e+03,  7.4244492557e+03, -8.0382327543e+03,
+              7.4753845342e+03,  8.8118614361e+03, -3.7739129781e+04,
+             -2.0607368918e+04, -2.0670488435e+04
+        },
+        {
+             -1.4763208337e+03,  7.4584196496e+03, -8.0641890967e+03,
+              7.2937861443e+03,  8.8198622669e+03, -3.9149567772e+04,
+             -2.0563704065e+04, -2.1553650171e+04
+        },
+        {
+             -1.5137730233e+03,  7.5201917511e+03, -8.0536705611e+03,
+              7.1978720557e+03,  9.0035215550e+03, -4.0498146371e+04,
+             -2.0892291154e+04, -2.2728737503e+04
+        },
+        {
+             -1.6207421867e+03,  7.5404495970e+03, -8.0037560587e+03,
+              7.2969861272e+03,  9.3986893488e+03, -4.1962719517e+04,
+             -2.2021775248e+04, -2.4055126723e+04
+        },
+        {
+             -1.6133648540e+03,  7.5481323780e+03, -7.9660695983e+03,
+              7.4191519297e+03,  9.8666956570e+03, -4.3294516415e+04,
+             -2.3369862677e+04, -2.5191893133e+04
+        },
+        {
+             -1.6184482003e+03,  7.5718411593e+03, -8.0602932537e+03,
+              7.3918178800e+03,  1.0593125636e+04, -4.5301583089e+04,
+             -2.5020238485e+04, -2.7890680255e+04
+        },
+        {
+             -1.5836787624e+03,  7.6579508327e+03, -8.2433230593e+03,
+              7.2723098455e+03,  1.1331731824e+04, -4.7409862514e+04,
+             -2.6707869753e+04, -2.9758998635e+04
+        },
+        {
+             -1.5188322828e+03,  7.7000926493e+03, -8.3812647804e+03,
+              7.3931267774e+03,  1.2134787547e+04, -5.0240776468e+04,
+             -2.8815958162e+04, -3.3253950849e+04
+        },
+        {
+             -1.6639403636e+03,  7.7652140103e+03, -8.3006284145e+03,
+              7.8918461387e+03,  1.2620323538e+04, -5.2943559614e+04,
+             -3.0938474908e+04, -3.6302114584e+04
+        },
+        {
+             -1.7687900727e+03,  7.8703428670e+03, -8.1934248746e+03,
+              8.4758618966e+03,  1.3032553256e+04, -5.5755844682e+04,
+             -3.3052539838e+04, -3.8989676225e+04
+        },
+        {
+             -1.5290565542e+03,  7.6213221258e+03, -8.3449807655e+03,
+              8.7842952685e+03,  1.3707390856e+04, -5.9239011831e+04,
+             -3.5718121291e+04, -4.3099562383e+04
+        },
+        {
+             -1.6808546007e+03,  7.9002361417e+03, -8.8018568595e+03,
+              8.7121071254e+03,  1.4503030375e+04, -6.2269550395e+04,
+              3.8140389525e+04, -4.5743329054e+04
+        },
+        {
+             -1.6403546331e+03, -7.9922688767e+03, -9.2868324103e+03,
+              8.7749210209e+03,  1.5341675573e+04, -6.5972710374e+04,
+              4.0910201393e+04, -4.7577263538e+04
+        },
+        {
+             -1.6721918625e+03,  8.0694534079e+03, -9.3573451933e+03,
+              9.2253022677e+03,  1.5762340597e+04, -6.9218853897e+04,
+              4.3145195143e+04, -4.9827459462e+04
+        },
+        {
+             -1.7814704561e+03,  8.2454721385e+03, -9.1233185339e+03,
+              1.0023032582e+04,  1.6055637939e+04, -7.3052793699e+04,
+              4.5481517936e+04, -5.0785100745e+04
+        },
+        {
+             -1.8981829173e+03,  8.3905638512e+03, -8.9891530394e+03,
+              1.0601421539e+04,  1.6368621273e+04, -7.6365531877e+04,
+              4.7284139718e+04, -5.0054953330e+04
+        },
+        {
+             -1.9158109391e+03,  8.4734293311e+03, -9.1016615752e+03,
+              1.0902629975e+04,  1.6854843502e+04, -7.9491998667e+04,
+              4.8664625756e+04, -5.0342333171e+04
+        },
+        {
+             -1.8176318137e+03,  8.5186326843e+03, -9.5555140258e+03,
+              1.0975009287e+04,  1.7542141369e+04, -8.2962487550e+04,
+              5.0163375438e+04, -5.0745821590e+04
+        },
+        {
+             -1.8370291219e+03,  8.4352838296e+03, -1.0026852147e+04,
+              1.0983388010e+04,  1.8106205266e+04, -8.5834826570e+04,
+              5.1086495897e+04, -5.0667389933e+04
+        },
+        {
+             -1.8117879664e+03, -8.5433731915e+03, -1.0502955091e+04,
+              1.1044315075e+04,  1.8676349749e+04, -8.9122296547e+04,
+              5.1965376229e+04, -5.1482811778e+04
+        },
+        {
+             -1.7941256873e+03, -8.5650810013e+03, -1.0745402135e+04,
+              1.1137269558e+04,  1.9065220073e+04, -9.1913203608e+04,
+              5.2558364400e+04, -5.3444938307e+04
+        },
+        {
+             -1.8471794933e+03, -8.5418930941e+03, -1.0901109409e+04,
+              1.1262703706e+04,  1.9437487791e+04, -9.4934267413e+04,
+              5.3627389853e+04, -5.8325464884e+04
+        },
+        {
+             -1.8866670077e+03, -8.5956603658e+03, -1.0986716278e+04,
+              1.1328123290e+04,  1.9697077413e+04, -9.7433414391e+04,
+              5.4707280759e+04, -6.2790728892e+04
+        },
+        {
+             -1.9579656022e+03, -8.6315294212e+03, -1.1068136334e+04,
+              1.1352239542e+04,  1.9919526102e+04, -9.9822110459e+04,
+              5.6516274215e+04, -6.8032608542e+04
+        },
+        {
+             -1.9513594292e+03, -8.6941508862e+03, -1.1167423484e+04,
+              1.1271914207e+04,  2.0107604189e+04, -1.0206351161e+05,
+              5.9097611129e+04, -7.3498745155e+04
+        },
+        {
+             -1.8897212285e+03, -8.6668824243e+03, -1.1251938560e+04,
+              1.1145822860e+04,  2.0205511977e+04, -1.0345815472e+05,
+              6.1815856133e+04, -7.6872704545e+04
+        },
+        {
+             -1.7868767758e+03, -8.6516275995e+03, -1.1281335209e+04,
+              1.0949863867e+04, -2.0338114324e+04, -1.0424455205e+05,
+              6.5385449254e+04, -8.0104683680e+04
+        },
+        {
+             -1.7528163523e+03, -8.6476637229e+03, -1.1161487912e+04,
+              1.0763405233e+04, -2.0409506630e+04, -1.0404973840e+05,
+              6.8813921672e+04, -8.2198267121e+04
+        },
+        {
+             -1.8265793510e+03, -8.5721058236e+03, -1.0777678242e+04,
+              1.0596623200e+04, -2.0392036859e+04, -1.0283479471e+05,
+              7.2963055186e+04, -8.4928252926e+04
+        },
+        {
+             -1.9932744477e+03,  8.5963673180e+03, -1.0231526063e+04,
+              1.0549443728e+04, -2.0284685051e+04, -1.0104346495e+05,
+              7.5847377543e+04, -8.8044533443e+04
+        },
+        {
+             -2.0349789550e+03,  8.7150836539e+03, -9.6052418021e+03,
+              1.0564224891e+04, -2.0077540019e+04, -9.8483801071e+04,
+              7.7967746918e+04, -9.0220808237e+04
+        },
+        {
+             -2.1382379054e+03,  8.6974163959e+03, -9.0492436527e+03,
+              1.0507576359e+04, -1.9646490953e+04, -9.4963575291e+04,
+              7.8005795093e+04, -8.9434548810e+04
+        },
+        {
+             -2.1224555073e+03,  8.6202636898e+03, -8.9803216011e+03,
+              1.0186747328e+04, -1.9122022164e+04, -9.1472784634e+04,
+              7.5771910788e+04, -8.6529121556e+04
+        },
+        {
+             -1.9826872519e+03,  8.4179062894e+03, -9.3438245749e+03,
+              9.3800326533e+03, -1.8409176488e+04, -8.7025294869e+04,
+              7.0792562933e+04, -8.4017510336e+04
+        },
+        {
+             -1.7994895510e+03, -8.2089797521e+03, -9.7547077403e+03,
+              8.5302205382e+03, -1.7778799308e+04, -8.2961773667e+04,
+              6.5624601053e+04, -7.9867535545e+04
+        },
+        {
+             -1.6951393408e+03, -8.2168231532e+03, -9.8730614687e+03,
+              7.8391296433e+03, -1.6966248274e+04, -7.8115005986e+04,
+              5.9006538097e+04, -7.1151501231e+04
+        },
+        {
+             -1.6653400292e+03, -8.0821974860e+03, -9.5149330394e+03,
+              7.6937131746e+03, -1.6146908979e+04, -7.3738812444e+04,
+              5.3550238820e+04, -6.2995518421e+04
+        }
+    },
+    {
+        {
+             -1.6711004861e+03,  8.3519119209e+03, -8.9499267909e+03,
+              7.9917948188e+03, -1.5320089423e+04, -6.6630537953e+04,
+              4.6049210420e+04, -5.8217961790e+04
+        },
+        {
+             -1.6981185105e+03,  8.2005355041e+03, -8.8013008198e+03,
+              7.7027236812e+03, -1.3957404841e+04, -6.4077150662e+04,
+             -4.5522873135e+04,  5.6981605752e+04
+        },
+        {
+             -1.6052872192e+03,  8.0549367493e+03, -9.0995768802e+03,
+              7.0210737465e+03, -1.2768221071e+04, -5.8961545905e+04,
+             -4.0793589988e+04, -4.8402583480e+04
+        },
+        {
+             -1.5439990797e+03,  8.0430099834e+03, -9.0936270694e+03,
+              6.7329832563e+03, -1.1553047793e+04, -5.4526503525e+04,
+             -3.6787594321e+04, -4.0418086856e+04
+        },
+        {
+             -1.5101130687e+03,  8.0059624090e+03, -8.8139533941e+03,
+              6.9787124048e+03,  1.0367434193e+04, -5.0555057449e+04,
+              3.3301878208e+04, -3.5073210743e+04
+        },
+        {
+             -1.7608831420e+03,  8.1008753015e+03, -8.5577587470e+03,
+              7.2855594954e+03,  9.3874336028e+03, -4.6922468864e+04,
+             -3.0198531454e+04, -3.0609841128e+04
+        },
+        {
+             -1.5409416401e+03,  7.8518873980e+03, -8.5451123949e+03,
+              7.3538793467e+03,  8.8408879724e+03, -4.3071694403e+04,
+             -2.7563433849e+04, -2.7179963435e+04
+        },
+        {
+             -1.5800790785e+03,  7.8579003847e+03, -8.6142508191e+03,
+              7.2555565545e+03,  8.6660366668e+03, -3.8844227232e+04,
+             -2.5393460445e+04, -2.5384130101e+04
+        },
+        {
+             -1.6321617704e+03,  7.8171917773e+03, -8.6585185567e+03,
+              7.2462659957e+03,  8.7055857659e+03, -3.4753005154e+04,
+             -2.3726916986e+04, -2.3301393833e+04
+        },
+        {
+             -1.6242612587e+03,  7.8391347144e+03, -8.6045676692e+03,
+              7.3511701258e+03,  8.8462753921e+03, -3.1914840271e+04,
+             -2.2240989795e+04, -2.1529062936e+04
+        },
+        {
+             -1.7505877772e+03,  7.7199191449e+03, -8.5445153110e+03,
+              7.4986395912e+03,  9.0639300115e+03, -3.1180091474e+04,
+             -2.0622378788e+04, -2.0864934320e+04
+        },
+        {
+             -1.6835260432e+03,  7.7386935777e+03, -8.4608202590e+03,
+              7.5884011299e+03,  9.2439437255e+03, -3.2165265563e+04,
+             -1.9437264957e+04, -2.0712872226e+04
+        },
+        {
+             -1.6213102356e+03,  7.7174948454e+03, -8.4181516455e+03,
+              7.5912704001e+03,  9.3618969936e+03, -3.3761486971e+04,
+             -1.9503508750e+04, -2.0518428394e+04
+        },
+        {
+             -1.5716969641e+03,  7.7487285019e+03, -8.3962610807e+03,
+              7.5105411888e+03,  9.3970725250e+03, -3.5351127950e+04,
+             -2.0579426239e+04, -1.9981773982e+04
+        },
+        {
+             -1.5749325595e+03,  7.7055251820e+03, -8.4243481695e+03,
+              7.3563596477e+03,  9.4187333623e+03, -3.6939147448e+04,
+             -2.1725647104e+04, -2.0142861723e+04
+        },
+        {
+             -1.5140419674e+03,  7.6630451338e+03, -8.4530141814e+03,
+              7.2172787935e+03,  9.4870032683e+03, -3.8731960620e+04,
+             -2.2461640453e+04, -2.1610874200e+04
+        },
+        {
+             -1.5635826464e+03,  7.7258349618e+03, -8.4264436940e+03,
+              7.1890763727e+03,  9.6295054738e+03, -4.0695083332e+04,
+             -2.2789860350e+04, -2.3783752596e+04
+        },
+        {
+             -1.6301324306e+03,  7.7556919716e+03, -8.3199975459e+03,
+              7.3581427894e+03,  9.8417443751e+03, -4.2750252762e+04,
+             -2.3444779614e+04, -2.5861834118e+04
+        },
+        {
+             -1.6662603117e+03,  7.7788528595e+03, -8.2360858589e+03,
+              7.5464143598e+03,  1.0226607708e+04, -4.4770236445e+04,
+             -2.4617070157e+04, -2.7926002971e+04
+        },
+        {
+             -1.6332115780e+03,  7.8717209968e+03, -8.3678072152e+03,
+              7.4604533593e+03,  1.0911052914e+04, -4.6944597608e+04,
+             -2.6466125294e+04, -3.1103514609e+04
+        },
+        {
+             -1.5776685213e+03,  7.9255206413e+03, -8.6810212913e+03,
+              7.2360432413e+03,  1.1812975544e+04, -4.9358672098e+04,
+             -2.8650055506e+04, -3.3872501791e+04
+        },
+        {
+             -1.5950970720e+03,  7.9719499092e+03, -8.7983785373e+03,
+              7.3938886022e+03,  1.2554654013e+04, -5.2067858381e+04,
+             -3.0997981460e+04, -3.7634073373e+04
+        },
+        {
+             -1.6320812452e+03,  8.0633985980e+03, -8.6014963779e+03,
+              8.0653933309e+03,  1.3010736769e+04, -5.5049413594e+04,
+             -3.3504202032e+04, -4.1320875042e+04
+        },
+        {
+             -1.7215826545e+03,  8.1908886373e+03, -8.4296486704e+03,
+              8.6645400819e+03,  1.3530234713e+04, -5.8404837808e+04,
+             -3.6179067694e+04, -4.4402633956e+04
+        },
+        {
+             -1.6515297636e+03,  8.2436245045e+03, -8.7809438612e+03,
+              8.8084436621e+03,  1.4351762259e+04, -6.1966112168e+04,
+             -3.8941555140e+04, -4.8574068174e+04
+        },
+        {
+             -1.5858801614e+03,  8.2719418218e+03, -9.4563828489e+03,
+              8.7777178000e+03,  1.5245238212e+04, -6.5767431852e+04,
+             -4.1640073926e+04, -5.0741086894e+04
+        },
+        {
+             -1.6227146307e+03,  8.3126515113e+03, -9.8118962439e+03,
+              9.0680747824e+03,  1.5914737764e+04, -6.9823925744e+04,
+             -4.4246162088e+04, -5.3905451248e+04
+        },
+        {
+             -1.5775935028e+03,  8.4203322224e+03, -9.6669151656e+03,
+              9.6580494271e+03,  1.6430354714e+04, -7.3951165901e+04,
+             -4.6681859948e+04, -5.7266820997e+04
+        },
+        {
+             -1.7212281735e+03,  8.6847245031e+03, -9.2633685857e+03,
+              1.0272263698e+04,  1.7031265032e+04, -7.8155063458e+04,
+             -4.8790260952e+04, -5.8479484173e+04
+        },
+        {
+             -1.9622711717e+03,  8.9224318112e+03, -9.0729678791e+03,
+              1.0703414127e+04,  1.7727827422e+04, -8.2282121125e+04,
+             -5.0608645772e+04, -5.9197210284e+04
+        },
+        {
+             -1.9471298055e+03,  8.9715235358e+03, -9.2264273384e+03,
+              1.0884688306e+04,  1.8361657118e+04, -8.6109020219e+04,
+              5.2175113675e+04, -6.2026835705e+04
+        },
+        {
+             -1.9463635629e+03,  8.9610968751e+03, -9.5990704633e+03,
+              1.0964690608e+04, -1.8893406250e+04, -8.9846726937e+04,
+              5.3766576291e+04, -6.5147164177e+04
+        },
+        {
+             -1.9710163471e+03,  8.8529810166e+03, -1.0003608123e+04,
+              1.1004997490e+04, -1.9376239817e+04, -9.3400238765e+04,
+              5.5382535268e+04, -6.8411248293e+04
+        },
+        {
+             -2.0087872294e+03,  8.8411382304e+03, -1.0314295109e+04,
+              1.1017385113e+04, -1.9786635704e+04, -9.6309667009e+04,
+              5.7204247378e+04, -7.1519819146e+04
+        },
+        {
+             -2.0453975186e+03,  8.8137894056e+03, -1.0441497581e+04,
+              1.1003109323e+04, -2.0165247348e+04,  9.8660844509e+04,
+              5.9308678685e+04, -7.5734006330e+04
+        },
+        {
+             -2.1110809315e+03,  8.8093462484e+03, -1.0380493527e+04,
+              1.0937841499e+04, -2.0471920602e+04,  1.0041189518e+05,
+              6.1991666303e+04, -7.9410462547e+04
+        },
+        {
+             -2.1731795017e+03,  9.0631706940e+03, -1.0149614719e+04,
+              1.0806972265e+04, -2.0722776507e+04,  1.0067437130e+05,
+              6.4816846349e+04, -8.2971059876e+04
+        },
+        {
+             -2.2490958757e+03,  9.0155874934e+03, -9.7425492003e+03,
+              1.0663020444e+04, -2.0884065112e+04, -9.9392782119e+04,
+              6.7325563747e+04, -8.4654883848e+04
+        },
+        {
+             -2.2802880028e+03,  9.1151501561e+03, -9.2880287547e+03,
+              1.0529349331e+04, -2.0879312568e+04, -9.7438520752e+04,
+              6.9753134393e+04, -8.5319627158e+04
+        },
+        {
+             -2.3619639721e+03,  9.0594086212e+03, -9.0316677159e+03,
+              1.0310677801e+04, -2.0601760134e+04, -9.4368660484e+04,
+              7.1485552674e+04, -8.5709421978e+04
+        },
+        {
+             -2.0175782916e+03,  8.9300158600e+03, -9.1885967118e+03,
+              9.8958667344e+03, -1.9970161064e+04, -9.0555363365e+04,
+              7.1252967537e+04, -8.6558286375e+04
+        },
+        {
+             -1.8243349307e+03,  8.6964235751e+03, -9.7275183714e+03,
+              9.2529247170e+03, -1.9094784100e+04, -8.6342203514e+04,
+              6.8883136752e+04, -8.5686135166e+04
+        },
+        {
+             -1.5912140764e+03, -8.4305805751e+03, -1.0217826422e+04,
+              8.5512118540e+03, -1.8151933117e+04, -8.1525808590e+04,
+              6.3968472873e+04, -8.0983007298e+04
+        },
+        {
+             -1.4760160101e+03, -8.4040359061e+03, -1.0217214764e+04,
+              8.0055200046e+03, -1.7272351634e+04, -7.6599771167e+04,
+              5.8030750700e+04, -7.3149703894e+04
+        },
+        {
+             -1.5883350967e+03,  8.4107465754e+03, -9.6285028942e+03,
+              7.8509073469e+03, -1.6362622663e+04, -7.1653102012e+04,
+              5.1996975894e+04, -6.6340960464e+04
+        }
+    },
+    {
+        {
+             -1.3748543649e+03,  8.4119889168e+03, -9.6538949074e+03,
+              7.4596733053e+03, -1.4619040984e+04,  5.6536910963e+04,
+              3.8712304964e+04, -3.7068655995e+04
+        },
+        {
+             -1.4062385193e+03,  8.2980419423e+03, -9.5667177624e+03,
+              7.1666138439e+03, -1.3533388533e+04,  5.2664187833e+04,
+              3.4626270067e+04, -3.3968532545e+04
+        },
+        {
+             -1.6597607660e+03,  8.2650869698e+03, -9.1803717126e+03,
+              7.2335563852e+03, -1.2476676063e+04, -4.9495379380e+04,
+              3.1130054769e+04, -3.1539558301e+04
+        },
+        {
+             -1.8872712892e+03,  8.2156455759e+03, -8.8642731972e+03,
+              7.4134230928e+03, -1.1429354600e+04, -4.6523787830e+04,
+              2.8102727838e+04, -2.9179538451e+04
+        },
+        {
+             -1.8517285387e+03,  8.1388534601e+03, -8.7780974154e+03,
+              7.4189085856e+03,  1.0574047798e+04, -4.3673992909e+04,
+              2.5721646430e+04, -2.6984680261e+04
+        },
+        {
+             -1.8173055036e+03,  8.0785209362e+03, -8.8916020736e+03,
+              7.2651471848e+03,  1.0171748856e+04, -4.0806188591e+04,
+              2.3765227509e+04, -2.5657473870e+04
+        },
+        {
+             -1.8649713845e+03,  8.0663870899e+03, -8.9872018041e+03,
+              7.1019849815e+03,  1.0010988540e+04, -3.8106031506e+04,
+              2.2336064928e+04, -2.4271616973e+04
+        },
+        {
+             -1.8432887003e+03,  7.9793974267e+03, -9.0212877744e+03,
+              7.0746789219e+03,  9.9661553210e+03, -3.5995481235e+04,
+             -2.1583641254e+04, -2.3179559851e+04
+        },
+        {
+             -1.8612743031e+03,  7.9383382943e+03, -9.0014943462e+03,
+              7.1078476258e+03,  9.9999627184e+03, -3.4764744331e+04,
+             -2.1227291718e+04, -2.2193318862e+04
+        },
+        {
+             -1.8043196329e+03,  7.9129497283e+03, -8.9465106276e+03,
+              7.1532842329e+03,  1.0072687025e+04, -3.4543767284e+04,
+             -2.1156496127e+04, -2.1229215416e+04
+        },
+        {
+             -1.6674364408e+03,  7.9040080166e+03, -8.9280443962e+03,
+              7.1502582781e+03,  1.0201149488e+04, -3.5248558248e+04,
+             -2.1322053111e+04, -2.0535094560e+04
+        },
+        {
+             -1.7854268069e+03,  8.0574572823e+03, -8.8987806367e+03,
+              7.1497089716e+03,  1.0360537902e+04, -3.6579442819e+04,
+              2.1422377353e+04, -2.0616046301e+04
+        },
+        {
+             -1.6591647568e+03,  7.8876194743e+03, -8.8575517469e+03,
+              7.1817875266e+03,  1.0551965868e+04, -3.8356745924e+04,
+             -2.1517707805e+04, -2.1590459927e+04
+        },
+        {
+             -1.6602997977e+03,  7.9814380280e+03, -8.7859505603e+03,
+              7.3256762339e+03,  1.0783704287e+04, -4.0447934210e+04,
+             -2.1665678429e+04, -2.2862840858e+04
+        },
+        {
+             -1.7185038619e+03,  8.0399497504e+03, -8.6337435420e+03,
+              7.5766904119e+03,  1.1085073100e+04, -4.2646596501e+04,
+             -2.2194808548e+04, -2.3839017971e+04
+        },
+        {
+             -1.6997251394e+03,  8.2010361230e+03, -8.5704424334e+03,
+              7.7796244126e+03,  1.1552726188e+04, -4.4851708232e+04,
+             -2.3168211890e+04, -2.4838364435e+04
+        },
+        {
+             -1.4237374547e+03,  8.1408929929e+03, -8.7408071200e+03,
+              7.7745913813e+03,  1.2256852262e+04, -4.7064902614e+04,
+              2.4608273710e+04, -2.6346461680e+04
+        },
+        {
+             -1.5599329861e+03,  8.1885865164e+03, -9.1328883878e+03,
+              7.7508990412e+03,  1.3042600425e+04, -4.9395179440e+04,
+              2.6640312172e+04, -2.7663390450e+04
+        },
+        {
+             -1.4916606488e+03,  8.2402737078e+03, -9.3885380693e+03,
+              7.9382082520e+03,  1.3734625087e+04, -5.1862423309e+04,
+              2.8760565226e+04, -2.8882924982e+04
+        },
+        {
+             -1.6252420084e+03,  8.3799756213e+03, -9.3090862777e+03,
+              8.4238531209e+03,  1.4347211737e+04,  5.4611474285e+04,
+              3.1165825285e+04, -3.1578081198e+04
+        },
+        {
+             -1.8652320175e+03,  8.5268049142e+03, -9.0266247570e+03,
+              8.9584488998e+03,  1.5038759283e+04,  5.7773271613e+04,
+              3.3532432768e+04, -3.2674060253e+04
+        },
+        {
+             -1.9714066249e+03,  8.6808594196e+03, -8.9655572644e+03,
+              9.3372066897e+03,  1.5800388854e+04,  6.1114975329e+04,
+              3.5963212266e+04, -3.4035864133e+04
+        },
+        {
+             -1.9788261237e+03,  8.6650589109e+03, -9.2298165508e+03,
+              9.5514629074e+03, -1.6465638682e+04,  6.4627533811e+04,
+              3.8220640739e+04, -3.6221558178e+04
+        },
+        {
+             -1.9808486940e+03,  8.6505774559e+03, -9.7234951816e+03,
+              9.7187959843e+03, -1.7034087553e+04,  6.8190674664e+04,
+              4.0622134861e+04, -3.7957336418e+04
+        },
+        {
+             -1.8399295848e+03,  8.6497531768e+03, -1.0152874864e+04,
+              9.8928864405e+03, -1.7507344253e+04,  7.1474682120e+04,
+              4.2773747539e+04, -3.9178785409e+04
+        },
+        {
+             -1.7935426091e+03, -8.6127715217e+03, -1.0443734050e+04,
+              1.0068477878e+04, -1.7971900036e+04,  7.4443901215e+04,
+              4.5090646165e+04, -3.9897656766e+04
+        },
+        {
+             -1.7883834953e+03, -8.6688915031e+03, -1.0620405345e+04,
+              1.0167991176e+04, -1.8370898564e+04,  7.6893093071e+04,
+              4.7217790082e+04, -4.1245923963e+04
+        },
+        {
+             -1.7019285942e+03, -8.6939273190e+03, -1.0715255444e+04,
+              1.0180543649e+04, -1.8677158299e+04,  7.8345781518e+04,
+              4.9357228468e+04, -4.2213219378e+04
+        },
+        {
+             -1.6824250907e+03, -8.6525866934e+03, -1.0749523931e+04,
+              1.0099193252e+04, -1.8853791351e+04,  7.8884887097e+04,
+              5.1236024773e+04, -4.2961882253e+04
+        },
+        {
+             -1.7424996427e+03, -8.6979322130e+03, -1.0673211666e+04,
+              9.9209557564e+03, -1.8898651911e+04,  7.8302961557e+04,
+              5.2880895986e+04, -4.4023277353e+04
+        },
+        {
+             -1.8070287572e+03, -8.6556503609e+03, -1.0436887123e+04,
+              9.6597460708e+03, -1.8853210864e+04,  7.6657590245e+04,
+              5.3907037918e+04, -4.4840077159e+04
+        },
+        {
+             -1.8637798889e+03,  8.7256089281e+03, -9.9866697310e+03,
+              9.3645799070e+03, -1.8713324217e+04,  7.4297793692e+04,
+              5.4118668539e+04, -4.6453599620e+04
+        },
+        {
+             -1.8916927736e+03,  8.7907392466e+03, -9.4477483437e+03,
+              9.1075529322e+03, -1.8399284629e+04,  7.1244501345e+04,
+              5.3245641326e+04, -4.6489102778e+04
+        },
+        {
+             -1.8837701945e+03,  8.8042985482e+03, -9.0661384195e+03,
+              8.8701667838e+03, -1.7810209929e+04,  6.7771518321e+04,
+              5.0989138142e+04, -4.4500867665e+04
+        },
+        {
+             -1.7729958749e+03,  8.7273865784e+03, -9.0710976056e+03,
+              8.5281065701e+03, -1.6899884348e+04,  6.4154828183e+04,
+              4.7605535534e+04, -4.2424720645e+04
+        },
+        {
+             -1.5401199279e+03,  8.5127982416e+03, -9.4065859724e+03,
+              8.0063503578e+03, -1.5765238788e+04,  6.0320094929e+04,
+              4.3301972794e+04, -4.0788401977e+04
+        }
+    },
+    {
+        {
+             -1.5891454336e+03,  8.0042572572e+03, -9.2418745663e+03,
+              7.3868140545e+03, -1.3940146393e+04,  5.5220387846e+04,
+              4.0709682574e+04, -3.1737874445e+04
+        },
+        {
+             -1.6850867895e+03,  7.9824506135e+03, -8.8665421613e+03,
+              7.4817025043e+03, -1.2664347544e+04,  5.1057807324e+04,
+              3.5963674921e+04, -2.9551458457e+04
+        },
+        {
+             -1.6897256174e+03,  7.9170384219e+03, -8.7362825593e+03,
+              7.4026233156e+03, -1.1479332195e+04, -4.7442573751e+04,
+              3.2068443566e+04, -2.7253960207e+04
+        },
+        {
+             -1.5238859502e+03,  7.8760578379e+03, -8.8082988894e+03,
+              7.0943518683e+03,  1.0840843710e+04, -4.4129544218e+04,
+              2.8965103455e+04, -2.6075155753e+04
+        },
+        {
+             -1.5371724785e+03,  7.8268088618e+03, -8.8940865201e+03,
+              6.8906599747e+03,  1.0497073668e+04, -4.1223881040e+04,
+              2.6935515394e+04, -2.4487556055e+04
+        },
+        {
+             -1.4999337252e+03,  7.7321291898e+03, -8.8691573670e+03,
+              6.8819554537e+03,  1.0330891968e+04, -3.9106424944e+04,
+              2.5869217808e+04, -2.3101278516e+04
+        },
+        {
+             -1.4356315254e+03,  7.6360037149e+03, -8.8171116882e+03,
+              6.9186476922e+03,  1.0356160484e+04, -3.8379766418e+04,
+              2.5451223975e+04, -2.2274807069e+04
+        },
+        {
+             -1.3525085676e+03, -7.6111675353e+03, -8.8006617731e+03,
+              6.9428004418e+03,  1.0525422794e+04, -3.9052092492e+04,
+              2.5273617929e+04, -2.2331671063e+04
+        },
+        {
+             -1.4137141343e+03,  7.7349739729e+03, -8.7804983827e+03,
+              6.9860347507e+03,  1.0821096249e+04, -4.0919487615e+04,
+              2.5094879530e+04, -2.2721102303e+04
+        },
+        {
+             -1.5087315669e+03,  7.7811437694e+03, -8.6910887702e+03,
+              7.2150840873e+03,  1.1200874499e+04, -4.3419866844e+04,
+              2.5254044599e+04, -2.3912410398e+04
+        },
+        {
+             -1.5028493858e+03,  7.7919004117e+03, -8.5621222068e+03,
+              7.6196511361e+03,  1.1652860034e+04, -4.6199721828e+04,
+              2.6245619737e+04, -2.4463116788e+04
+        },
+        {
+             -1.4694832470e+03,  7.8751802545e+03, -8.5969541111e+03,
+              7.9122437118e+03,  1.2324002796e+04, -4.9110750368e+04,
+              2.8228672053e+04, -2.5825042077e+04
+        },
+        {
+             -1.4652350282e+03,  7.8648436094e+03, -8.9198630341e+03,
+              7.9154185439e+03,  1.3308791170e+04,  5.2285757323e+04,
+              3.0849940094e+04, -2.7424806609e+04
+        },
+        {
+             -1.5673128915e+03,  8.0378619133e+03, -9.2773088436e+03,
+              7.9968718228e+03,  1.4313633676e+04,  5.6050103031e+04,
+              3.3810267028e+04, -2.8201510187e+04
+        },
+        {
+             -1.6189084221e+03, -8.0889010860e+03, -9.4083748512e+03,
+              8.4539626611e+03,  1.5052851547e+04,  5.9995869705e+04,
+              3.6985508023e+04, -3.0545975564e+04
+        },
+        {
+             -1.8063779470e+03,  8.1496486041e+03, -9.2813481468e+03,
+              9.0137026607e+03, -1.5664660452e+04,  6.3972219883e+04,
+              4.0144439685e+04, -3.2365653623e+04
+        },
+        {
+             -1.6715631206e+03,  8.2028999977e+03, -9.1899831768e+03,
+              9.4347754683e+03, -1.6414230629e+04,  6.7641746640e+04,
+              4.3255026458e+04, -3.3938958428e+04
+        },
+        {
+             -1.6654711540e+03,  8.4266527789e+03, -9.1749819950e+03,
+              9.6265143847e+03, -1.7036623683e+04,  7.0529324474e+04,
+              4.6118148870e+04, -3.5661543384e+04
+        },
+        {
+             -1.7647539404e+03,  8.4528619494e+03, -9.1958508214e+03,
+              9.6545352324e+03, -1.7433375137e+04,  7.2147055349e+04,
+              4.8845993561e+04, -3.6594097774e+04
+        },
+        {
+             -1.7229996309e+03,  8.4802857924e+03, -9.1992682995e+03,
+              9.5379911733e+03, -1.7549716091e+04,  7.2204864232e+04,
+              5.0876749366e+04, -3.7406040868e+04
+        },
+        {
+             -1.7377525710e+03,  8.4387278127e+03, -9.2284778186e+03,
+              9.2498081172e+03, -1.7361614837e+04,  7.0613254612e+04,
+              5.1850070858e+04, -3.7446953151e+04
+        },
+        {
+             -1.7852612872e+03,  8.2828138873e+03, -9.3722036286e+03,
+              8.7597854324e+03, -1.6878026589e+04,  6.7694990258e+04,
+              5.1448399923e+04, -3.7450833496e+04
+        },
+        {
+             -1.6366245566e+03,  8.1047103377e+03, -9.5576171966e+03,
+              8.1039725751e+03, -1.6129323821e+04,  6.3915960697e+04,
+              4.9148316110e+04, -3.6084012131e+04
+        },
+        {
+             -1.4559934215e+03, -8.0657625385e+03, -9.5809659490e+03,
+              7.5531204612e+03, -1.5160737113e+04,  5.9714788526e+04,
+              4.5453827936e+04, -3.3695259976e+04
+        }
+    },
+    {
+        {
+             -1.6826853238e+03,  8.1422664862e+03, -9.0329667685e+03,
+              7.9247119083e+03, -1.3618168246e+04,  5.2980350172e+04,
+              3.8111655124e+04, -2.5847157499e+04
+        },
+        {
+             -1.6546555241e+03,  7.9302935593e+03, -9.1768321014e+03,
+              7.4019915973e+03,  1.2626279969e+04,  4.9950586250e+04,
+              3.5065820911e+04, -2.6983095206e+04
+        },
+        {
+             -1.6109404094e+03, -7.9395841439e+03, -9.2541796847e+03,
+              7.0483475123e+03,  1.2074734600e+04, -4.7891828013e+04,
+              3.2674116832e+04, -2.7388633206e+04
+        },
+        {
+             -1.4390598083e+03, -7.8939328313e+03, -9.1824847960e+03,
+              7.0122910712e+03,  1.1889515117e+04, -4.7034986860e+04,
+              3.1429063953e+04, -2.7354947737e+04
+        },
+        {
+             -1.4250343836e+03,  7.9121896135e+03, -9.1752585508e+03,
+              7.1285449835e+03,  1.2102113672e+04, -4.7721797495e+04,
+              3.0807473822e+04, -2.6947709911e+04
+        },
+        {
+             -1.5097019625e+03,  7.9228715579e+03, -9.0887926223e+03,
+              7.4858442050e+03,  1.2586190735e+04, -4.9508174827e+04,
+              3.1028566850e+04, -2.6418432504e+04
+        },
+        {
+             -1.5639840880e+03,  8.0607485149e+03, -8.9417443425e+03,
+              8.0632860204e+03,  1.3264732799e+04,  5.2330595575e+04,
+              3.2815032272e+04, -2.5488780086e+04
+        },
+        {
+             -1.5618963441e+03,  8.1845298564e+03, -8.9351499900e+03,
+              8.4997375755e+03, -1.4134395726e+04,  5.5135434537e+04,
+              3.5884014007e+04, -2.6136649230e+04
+        },
+        {
+             -1.4570107218e+03,  8.3639328928e+03, -9.0951730204e+03,
+              8.7060148237e+03, -1.4992315629e+04,  5.7174608964e+04,
+              3.9424166148e+04,  2.9387237321e+04
+        },
+        {
+             -1.4838246153e+03,  8.4578992397e+03, -9.2230446180e+03,
+              8.7303415813e+03, -1.5478012156e+04,  5.7908303593e+04,
+              4.2118547427e+04,  3.1542872543e+04
+        },
+        {
+             -1.5054856217e+03,  8.3372738038e+03, -9.1801262154e+03,
+              8.6080601792e+03, -1.5411378530e+04,  5.7448274977e+04,
+              4.2978628096e+04,  3.1059835742e+04
+        },
+        {
+             -1.5663111011e+03,  8.2951164202e+03, -9.0556880590e+03,
+              8.3469287448e+03, -1.4737845282e+04,  5.5562674478e+04,
+              4.1414496834e+04,  2.8262867841e+04
+        }
+    },
+    {
+        {
+             -1.6763401213e+03,  8.2271217898e+03, -9.4746797439e+03,
+              7.7685927479e+03,  1.3540776676e+04,  4.9019630101e+04,
+              3.4293050865e+04, -2.3201489876e+04
+        }
+    }
+};
+
+/* Shifted by -delay_min, with delay_min = -15 (samples) */
+static const int hrtf_delay_set_16000_order_1[14][72][8] = {
+    {
+        {  214,  48,  49,  26,  36,  35,  33,  29 },
+        {  216, 106,  51,  27,  37,  36,  33,  30 },
+        {  218, 106,  51,  27,  37,  36,  34,  30 },
+        {  218, 107,  52,  28,  37,  37,  34,  31 },
+        {  221, 107,  53,  28,  38,  37,  34,  31 },
+        {  220, 108,  54,  29,  38,  37,  35,  31 },
+        {  222, 108,  54,  30,  32,  38,  35,  32 },
+        {  117, 108,  55,  31,  32,  38,  35,  32 },
+        {   16, 109,  56,  31,  33,  38,  36,  31 },
+        {  117, 109,  56,  32,  33,  39,  36,  31 },
+        {  115, 110,  56,  33,  34,  39,  36,  32 },
+        {  222, 110,  57,  33,  35,  40,  36,  32 },
+        {  222, 111,  57,  33,  35,  40,  35,  39 },
+        {  221, 111,  57,  34,  35,  41,  38,  40 },
+        {  222, 111,  57,  34,  36,  41,  38,  40 },
+        {  223, 111,  57,  34,  36,  41,  38,  42 },
+        {  224, 110,  57,  34,  35,  41,  38,  42 },
+        {  116, 111,  57,  34,  35,  40,  35,  32 },
+        {  116, 110,  57,  34,  35,  40,  35,  32 },
+        {  117, 110,  57,  33,  34,  39,  36,  32 },
+        {  115, 110,  57,  33,  33,  39,  36,  31 },
+        {  222, 109,  56,  32,  32,  38,  36,  31 },
+        {  223, 109,  56,  31,  38,  38,  36,  31 },
+        {  111, 109,  55,  31,  38,  38,  35,  30 },
+        {  113,  52,  54,  30,  38,  37,  35,  30 },
+        {  221, 107,  54,  29,  37,  37,  35,  30 },
+        {  115, 106,  53,  28,  37,  37,  34,  29 },
+        {  221, 106,  53,  28,  37,  36,  34,  30 },
+        {  220, 105,  52,  27,  37,  36,  34,  30 },
+        {  219, 105,  51,  27,  36,  36,  33,  30 },
+        {  217,  48,  50,  27,  36,  35,  33,  29 },
+        {  219,  47,  49,  26,  29,  35,  33,  29 },
+        {  217, 103,  49,  26,  29,  35,  32,  30 },
+        {  218, 102,  48,  26,  28,  34,  32,  30 },
+        {  215, 102,  47,  25,  28,  34,  30,  31 },
+        {  214, 101,  47,  25,  28,  34,  29,  31 },
+        {  215, 101,  46,  25,  28,  34,  29,  30 },
+        {  109, 100,  46,  25,  28,  34,  29,  31 },
+        {    4, 100,  46,  24,  34,  33,  28,  31 },
+        {    6,  99,  45,  24,  34,  33,  28,  31 },
+        {    4,  99,  45,  24,  34,  33,  28,  32 },
+        {    4,  98,  45,  24,  34,  33,  28,  32 },
+        {    5,  98,  45,  24,  34,  33,  28,  32 },
+        {    6,  98,  45,  24,  34,  33,  28,  32 },
+        {    4,  98,  45,  24,  34,  33,  30,  33 },
+        {  213,  99,  45,  24,  34,  33,  30,  33 },
+        {  214,  42,  45,  24,  34,  33,  30,  33 },
+        {  211,  44,  45,  24,  34,  33,  30,  33 },
+        {  212,  45,  45,  24,  34,  33,  31,  33 },
+        {   94,  45,  45,  24,  34,  33,  31,  34 },
+        {  101,  45,  46,  24,  34,  34,  31,  35 },
+        {  216,  44,  46,  25,  34,  34,  31,  35 },
+        {  216, 101,  47,  25,  35,  34,  32,  28 },
+        {  216, 102,  48,  25,  35,  34,  32,  28 },
+        {  216,  46,  48,  25,  35,  35,  32,  29 },
+        {  215,  47,  48,  26,  36,  35,  32,  29 }
+    },
+    {
+        {  215, 104,  49,  26,  30,  35,  33,  28 },
+        {  218, 104,  50,  27,  30,  36,  33,  29 },
+        {  218, 105,  51,  28,  31,  36,  34,  29 },
+        {  219, 106,  52,  28,  31,  37,  34,  31 },
+        {  217, 107,  53,  29,  32,  37,  34,  31 },
+        {  218, 108,  53,  29,  32,  38,  35,  32 },
+        {  224, 108,  54,  30,  33,  38,  33,  32 },
+        {  219, 109,  55,  31,  33,  39,  34,  32 },
+        {  217, 109,  56,  31,  33,  39,  36,  33 },
+        {  218, 110,  56,  32,  34,  39,  37,  33 },
+        {  218, 111,  57,  33,  35,  40,  35,  32 },
+        {  218, 111,  57,  33,  35,  40,  35,  34 },
+        {  220, 111,  58,  34,  36,  41,  36,  34 },
+        {  222, 111,  58,  34,  36,  41,  36,  43 },
+        {  223, 111,  58,  34,  37,  41,  37,  43 },
+        {  221, 111,  58,  35,  37,  42,  37,  34 },
+        {  114, 111,  58,  35,  37,  41,  36,  41 },
+        {  223, 111,  58,  35,  37,  41,  36,  33 },
+        {  224, 111,  58,  34,  36,  41,  36,  33 },
+        {  221, 111,  58,  34,  36,  40,  37,  41 },
+        {  221, 111,  58,  34,  35,  40,  37,  32 },
+        {  222, 110,  57,  33,  34,  40,  37,  32 },
+        {  222, 110,  57,  33,  34,  39,  34,  32 },
+        {  222, 109,  57,  32,  33,  39,  36,  31 },
+        {  220, 109,  56,  31,  32,  39,  36,  31 },
+        {  220, 108,  55,  31,  39,  38,  35,  31 },
+        {  111, 108,  55,  30,  38,  38,  35,  31 },
+        {  219, 108,  54,  29,  38,  37,  35,  30 },
+        {  219, 107,  53,  29,  38,  37,  34,  31 },
+        {  219, 106,  53,  28,  37,  37,  34,  31 },
+        {  217, 105,  52,  28,  37,  36,  34,  30 },
+        {  218, 104,  51,  27,  37,  36,  33,  30 },
+        {  106, 104,  50,  27,  36,  36,  33,  30 },
+        {  105, 104,  49,  26,  36,  35,  33,  29 },
+        {  214, 103,  49,  26,  36,  35,  30,  30 },
+        {  217, 102,  48,  26,  35,  35,  30,  30 },
+        {  213, 101,  48,  25,  35,  34,  30,  31 },
+        {  215, 101,  47,  25,  35,  34,  29,  30 },
+        {  103, 100,  47,  25,  28,  34,  29,  30 },
+        {  110, 100,  46,  24,  28,  34,  29,  30 },
+        {  211,  99,  46,  24,  27,  33,  28,  31 },
+        {  212,  99,  45,  24,  34,  33,  28,  31 },
+        {  212,  99,  45,  24,  34,  33,  28,  31 },
+        {  212,  98,  45,  24,  34,  33,  28,  31 },
+        {  212,  98,  45,  24,  34,  33,  28,  31 },
+        {  213,  98,  45,  24,  34,  33,  28,  31 },
+        {    2,  98,  45,  24,  34,  33,  28,  31 },
+        {    0,  97,  45,  24,  34,  33,  30,  32 },
+        {    1,  98,  45,  24,  34,  33,  30,  32 },
+        {    2,  98,  45,  24,  34,  33,  30,  32 },
+        {  214,  99,  45,  24,  34,  33,  30,  33 },
+        {  210,  99,  45,  24,  34,  33,  30,  33 },
+        {  209,  43,  45,  24,  34,  33,  30,  33 },
+        {  209,  45,  45,  24,  34,  33,  31,  33 },
+        {  209,  45,  46,  24,  35,  34,  31,  34 },
+        {  213, 101,  46,  25,  35,  34,  31,  34 },
+        {    4, 100,  47,  25,  35,  34,  32,  27 },
+        {    6, 101,  47,  25,  35,  34,  32,  27 },
+        {  216, 102,  48,  26,  36,  35,  32,  29 },
+        {  215, 103,  48,  26,  29,  35,  33,  28 }
+    },
+    {
+        {  215, 102,  48,  26,  29,  35,  32,  28 },
+        {  105, 104,  49,  27,  30,  35,  33,  28 },
+        {  106, 104,  50,  27,  30,  36,  33,  30 },
+        {  216, 105,  50,  28,  30,  36,  33,  29 },
+        {  217, 105,  51,  28,  31,  36,  34,  29 },
+        {  215, 106,  52,  29,  31,  37,  34,  30 },
+        {  219, 107,  52,  29,  32,  37,  35,  30 },
+        {  217, 107,  53,  30,  32,  38,  35,  30 },
+        {  219, 108,  54,  30,  32,  38,  35,  32 },
+        {  114, 108,  54,  31,  33,  38,  36,  32 },
+        {  114, 108,  55,  31,  33,  39,  36,  33 },
+        {  220, 109,  55,  32,  34,  39,  37,  33 },
+        {  220, 109,  56,  32,  34,  40,  37,  32 },
+        {  220, 110,  56,  33,  35,  40,  35,  33 },
+        {  219, 110,  56,  33,  35,  40,  36,  39 },
+        {  220, 110,  57,  33,  36,  41,  39,  39 },
+        {  220, 110,  57,  34,  36,  41,  39,  40 },
+        {  220, 111,  57,  34,  36,  41,  39,  34 },
+        {  221, 111,  57,  34,  36,  41,  39,  41 },
+        {  223, 111,  57,  34,  36,  41,  39,  41 },
+        {  223, 111,  57,  34,  36,  41,  39,  41 },
+        {  217, 111,  57,  34,  36,  41,  36,  41 },
+        {  215, 110,  57,  34,  36,  40,  35,  40 },
+        {  220, 110,  57,  34,  36,  40,  35,  32 },
+        {  220, 110,  57,  33,  35,  43,  35,  32 },
+        {  220, 110,  57,  33,  34,  43,  37,  32 },
+        {  218, 109,  56,  32,  34,  43,  36,  32 },
+        {  220, 109,  56,  32,  33,  42,  36,  31 },
+        {  218, 109,  55,  31,  32,  38,  36,  31 },
+        {  217, 109,  55,  31,  32,  38,  33,  32 },
+        {  219, 108,  54,  30,  32,  38,  33,  32 },
+        {  218, 108,  54,  29,  38,  37,  35,  32 },
+        {  218, 107,  53,  29,  38,  37,  34,  33 },
+        {  217, 106,  53,  28,  38,  37,  34,  32 },
+        {  218, 106,  52,  28,  37,  37,  34,  32 },
+        {  110, 105,  51,  27,  37,  36,  34,  32 },
+        {  108, 105,  51,  27,  37,  36,  33,  31 },
+        {  107, 104,  50,  26,  36,  36,  33,  31 },
+        {  215, 104,  49,  26,  36,  35,  33,  31 },
+        {  108, 103,  49,  26,  36,  35,  30,  30 },
+        {  214, 102,  48,  25,  35,  35,  30,  29 },
+        {  215, 101,  47,  25,  35,  34,  30,  28 },
+        {  215, 101,  47,  25,  35,  34,  29,  29 },
+        {  212, 101,  46,  24,  34,  34,  29,  29 },
+        {  101, 100,  46,  24,  34,  34,  29,  29 },
+        {  209, 100,  45,  24,  34,  33,  28,  30 },
+        {  210, 100,  45,  24,  34,  33,  28,  29 },
+        {  208,  99,  45,  23,  34,  33,  28,  29 },
+        {  210,  99,  44,  23,  33,  33,  28,  29 },
+        {  210,  98,  44,  23,  33,  33,  27,  29 },
+        {  209,  98,  44,  23,  33,  32,  27,  29 },
+        {  209,  98,  44,  23,  26,  32,  27,  29 },
+        {  209,  98,  44,  23,  26,  32,  27,  29 },
+        {  208,  98,  43,  23,  26,  32,  27,  30 },
+        {  209,  98,  43,  22,  26,  32,  27,  30 },
+        {   98,  98,  43,  22,  26,  32,  27,  30 },
+        {  209,  98,  43,  22,  26,  32,  29,  30 },
+        {   95,  98,  43,  22,  26,  32,  29,  30 },
+        {  206,  98,  43,  22,  26,  32,  29,  30 },
+        {  206,  98,  43,  23,  26,  32,  29,  30 },
+        {  209,  98,  44,  23,  26,  32,  29,  30 },
+        {  211,  98,  44,  23,  26,  32,  30,  31 },
+        {  211,  98,  44,  23,  26,  32,  30,  32 },
+        {    1,  98,  44,  23,  33,  32,  30,  27 },
+        {  211,  98,  45,  24,  27,  32,  30,  27 },
+        {  210,  99,  45,  24,  27,  33,  30,  27 },
+        {   99, 100,  45,  24,  27,  33,  31,  27 },
+        {   99, 101,  45,  24,  28,  33,  31,  28 },
+        {  206, 101,  46,  24,  28,  33,  31,  27 },
+        {  211, 101,  46,  25,  28,  34,  31,  27 },
+        {  215, 101,  47,  25,  28,  34,  32,  27 },
+        {  214, 102,  48,  26,  29,  34,  32,  27 }
+    },
+    {
+        {  212, 103,  48,  26,  29,  38,  32,  29 },
+        {  214, 104,  48,  26,  29,  38,  33,  29 },
+        {  212, 104,  49,  27,  30,  39,  33,  28 },
+        {  216, 105,  49,  27,  30,  39,  33,  29 },
+        {  215, 105,  50,  28,  30,  39,  34,  29 },
+        {  215, 106,  51,  29,  31,  40,  34,  29 },
+        {  217, 107,  51,  29,  31,  40,  35,  30 },
+        {  217, 107,  52,  30,  32,  41,  35,  30 },
+        {  220, 108,  53,  30,  32,  41,  35,  31 },
+        {  220, 108,  53,  31,  33,  42,  36,  31 },
+        {  220, 108,  54,  31,  34,  42,  36,  32 },
+        {  220, 109,  54,  32,  34,  39,  37,  31 },
+        {  221, 109,  55,  32,  35,  39,  37,  33 },
+        {  220, 110,  55,  33,  35,  40,  38,  33 },
+        {  220, 110,  56,  33,  35,  41,  38,  33 },
+        {  221, 110,  56,  33,  36,  41,  39,  41 },
+        {  221, 111,  56,  34,  36,  42,  39,  41 },
+        {  220, 111,  56,  34,  36,  42,  37,  40 },
+        {  221, 111,  56,  34,  36,  42,  37,  40 },
+        {  221, 111,  56,  34,  36,  42,  43,  41 },
+        {  220, 111,  56,  34,  36,  46,  41,  41 },
+        {  220, 111,  56,  34,  36,  47,  40,  41 },
+        {  219, 111,  56,  34,  36,  37,  40,  42 },
+        {  219, 111,  56,  33,  36,  40,  40,  41 },
+        {  220, 110,  56,  33,  35,  43,  35,  37 },
+        {  219, 110,  56,  33,  35,  43,  35,  36 },
+        {  220, 109,  55,  32,  34,  42,  36,  36 },
+        {  219, 109,  55,  32,  33,  42,  36,  34 },
+        {  218, 109,  54,  31,  33,  42,  36,  34 },
+        {  218, 108,  54,  31,  32,  38,  36,  34 },
+        {  217, 108,  53,  30,  32,  38,  35,  33 },
+        {  218, 107,  53,  29,  31,  37,  35,  33 },
+        {  108, 107,  52,  29,  31,  37,  35,  33 },
+        {  217, 106,  51,  28,  31,  37,  34,  32 },
+        {  217, 105,  51,  28,  30,  36,  34,  32 },
+        {  218, 105,  50,  27,  37,  36,  33,  32 },
+        {  215, 104,  50,  27,  36,  36,  33,  31 },
+        {  214, 104,  49,  26,  36,  35,  33,  31 },
+        {  212, 103,  48,  26,  36,  35,  32,  31 },
+        {  213, 103,  48,  25,  35,  35,  32,  30 },
+        {  212, 102,  47,  25,  35,  34,  32,  29 },
+        {  212, 101,  47,  25,  35,  34,  32,  28 },
+        {  209, 101,  46,  24,  34,  34,  31,  28 },
+        {  210, 101,  45,  24,  27,  33,  31,  27 },
+        {  209, 101,  45,  23,  27,  33,  31,  28 },
+        {  208, 100,  45,  23,  27,  33,  30,  29 },
+        {  210,  99,  44,  23,  26,  33,  30,  29 },
+        {  208,  98,  44,  23,  33,  32,  30,  29 },
+        {  208,  97,  44,  23,  26,  32,  30,  28 },
+        {  209,  97,  43,  23,  26,  32,  27,  28 },
+        {  210,  97,  43,  23,  26,  32,  27,  28 },
+        {  209,  97,  43,  22,  26,  32,  27,  28 },
+        {  208,  97,  43,  22,  25,  31,  27,  28 },
+        {  208,  97,  43,  22,  25,  31,  27,  28 },
+        {  209,  97,  43,  22,  25,  31,  27,  28 },
+        {  208,  97,  43,  22,  25,  31,  27,  28 },
+        {  208,  97,  43,  22,  25,  31,  27,  28 },
+        {  207,  97,  43,  22,  25,  31,  27,  28 },
+        {  208,  97,  43,  22,  25,  31,  27,  28 },
+        {  208,  97,  43,  22,  26,  31,  27,  28 },
+        {  208,  97,  43,  22,  26,  31,  29,  29 },
+        {  208,  98,  43,  22,  26,  35,  29,  29 },
+        {  210,  98,  43,  23,  26,  35,  29,  28 },
+        {  208,  98,  44,  23,  26,  35,  30,  28 },
+        {  210,  98,  44,  23,  26,  35,  30,  28 },
+        {  210,  99,  44,  23,  27,  36,  30,  28 },
+        {  210, 100,  45,  24,  27,  36,  30,  27 },
+        {  210, 100,  45,  24,  27,  36,  31,  28 },
+        {  211, 101,  46,  24,  27,  37,  31,  28 },
+        {  212, 101,  46,  25,  28,  37,  31,  28 },
+        {  213, 101,  47,  25,  28,  37,  32,  28 },
+        {  214, 102,  47,  26,  28,  38,  32,  29 }
+    },
+    {
+        {  211, 103,  47,  26,  28,  38,  32,  29 },
+        {  214, 104,  48,  26,  29,  38,  33,  29 },
+        {  213, 104,  49,  27,  29,  39,  33,  30 },
+        {  214, 105,  49,  27,  29,  39,  33,  30 },
+        {  215, 105,  50,  28,  30,  39,  34,  31 },
+        {  215, 106,  50,  29,  30,  40,  34,  31 },
+        {  216, 106,  51,  29,  31,  40,  35,  31 },
+        {  217, 107,  52,  30,  31,  41,  35,  32 },
+        {  217, 108,  52,  30,  32,  41,  35,  32 },
+        {  218, 108,  53,  31,  33,  41,  36,  34 },
+        {  219, 109,  53,  31,  34,  42,  36,  34 },
+        {  219, 109,  54,  32,  34,  42,  37,  35 },
+        {  218, 109,  54,  32,  35,  39,  37,  35 },
+        {  216, 110,  55,  33,  35,  40,  38,  35 },
+        {  219, 110,  55,  33,  35,  41,  38,  34 },
+        {  220, 110,  55,  33,  36,  42,  39,  38 },
+        {  222, 110,  55,  33,  36,  42,  39,  36 },
+        {  220, 110,  55,  34,  36,  46,  40,  41 },
+        {  113, 110,  56,  34,  36,  46,  40,  40 },
+        {  220, 110,  56,  34,  36,  46,  40,  39 },
+        {  219, 110,  56,  34,  36,  46,  41,  39 },
+        {  221, 111,  56,  34,  36,  46,  41,  38 },
+        {  218, 110,  56,  33,  36,  46,  40,  36 },
+        {  218, 110,  55,  33,  35,  36,  40,  37 },
+        {  219, 110,  55,  33,  35,  39,  38,  37 },
+        {  219, 110,  55,  32,  34,  42,  37,  35 },
+        {  218, 109,  55,  32,  34,  42,  37,  35 },
+        {  218, 109,  54,  31,  33,  42,  36,  34 },
+        {  218, 109,  54,  31,  32,  42,  36,  34 },
+        {  217, 108,  53,  30,  32,  38,  36,  34 },
+        {  218, 108,  53,  30,  31,  38,  35,  33 },
+        {  218, 107,  52,  29,  31,  37,  35,  33 },
+        {  215, 107,  51,  28,  31,  37,  35,  33 },
+        {  214, 106,  51,  28,  30,  36,  34,  32 },
+        {  214, 106,  50,  27,  30,  36,  34,  32 },
+        {  214, 105,  50,  27,  30,  36,  33,  31 },
+        {  214, 104,  49,  26,  29,  39,  33,  31 },
+        {  212, 104,  48,  26,  29,  38,  33,  31 },
+        {  105, 103,  48,  25,  29,  38,  32,  30 },
+        {  213, 102,  47,  25,  28,  38,  32,  30 },
+        {  214, 102,  47,  25,  28,  34,  32,  30 },
+        {  212, 101,  46,  24,  28,  34,  32,  28 },
+        {  210, 101,  46,  24,  27,  33,  31,  28 },
+        {  210, 101,  45,  23,  27,  33,  31,  26 },
+        {  210, 100,  45,  23,  27,  33,  31,  27 },
+        {  210,  99,  44,  23,  26,  32,  30,  27 },
+        {  212,  98,  44,  23,  26,  32,  30,  26 },
+        {  211,  98,  44,  23,  26,  32,  30,  27 },
+        {  210,  97,  43,  22,  26,  32,  27,  27 },
+        {  209,  98,  43,  22,  25,  35,  27,  27 },
+        {  207,  98,  43,  22,  25,  35,  27,  27 },
+        {  207,  98,  43,  22,  25,  35,  27,  27 },
+        {  206,  98,  42,  22,  25,  35,  27,  27 },
+        {  205,  98,  42,  21,  25,  35,  27,  27 },
+        {  204,  98,  42,  21,  25,  34,  27,  27 },
+        {  206,  98,  42,  21,  25,  34,  27,  27 },
+        {  206,  97,  42,  21,  25,  34,  29,  27 },
+        {  205,  97,  42,  22,  25,  34,  29,  27 },
+        {  209,  97,  42,  22,  25,  35,  29,  27 },
+        {  209,  97,  42,  22,  25,  35,  29,  27 },
+        {  208,  97,  43,  22,  25,  35,  29,  27 },
+        {  209,  97,  43,  22,  25,  35,  29,  27 },
+        {  210,  97,  43,  22,  25,  35,  29,  28 },
+        {  209,  98,  43,  23,  26,  35,  30,  28 },
+        {  209,  98,  44,  23,  26,  35,  30,  28 },
+        {  208,  99,  44,  23,  26,  36,  30,  28 },
+        {  210, 100,  44,  23,  26,  36,  30,  29 },
+        {  209, 100,  45,  24,  27,  36,  31,  29 },
+        {  210, 101,  45,  24,  27,  36,  31,  29 },
+        {  212, 101,  46,  24,  27,  37,  31,  29 },
+        {  212, 102,  46,  25,  27,  37,  32,  30 },
+        {  212, 102,  47,  25,  28,  37,  32,  29 }
+    },
+    {
+        {  210, 104,  48,  26,  28,  38,  32,  31 },
+        {  212, 104,  48,  27,  28,  38,  33,  31 },
+        {  212, 105,  49,  27,  29,  39,  33,  31 },
+        {  214, 105,  50,  28,  29,  39,  34,  32 },
+        {  214, 106,  50,  28,  30,  39,  34,  32 },
+        {  213, 106,  51,  29,  30,  40,  34,  32 },
+        {  215, 107,  51,  30,  31,  40,  35,  33 },
+        {  216, 107,  52,  30,  31,  41,  35,  33 },
+        {  216, 108,  52,  31,  32,  41,  35,  34 },
+        {  215, 108,  53,  31,  33,  42,  36,  34 },
+        {  218, 109,  53,  32,  34,  42,  36,  33 },
+        {  217, 109,  54,  32,  34,  42,  37,  35 },
+        {  218, 110,  54,  32,  35,  39,  37,  35 },
+        {  219, 110,  54,  33,  35,  40,  38,  35 },
+        {  219, 110,  55,  33,  36,  41,  38,  36 },
+        {  219, 110,  55,  33,  36,  42,  39,  38 },
+        {  220, 110,  55,  34,  36,  42,  40,  36 },
+        {  221, 110,  55,  34,  36,  42,  40,  38 },
+        {  221, 110,  56,  34,  36,  42,  40,  38 },
+        {  115, 110,  56,  34,  36,  42,  40,  38 },
+        {  113, 110,  56,  34,  36,  42,  40,  38 },
+        {  222, 110,  56,  34,  36,  42,  37,  37 },
+        {  221, 110,  55,  33,  36,  42,  38,  37 },
+        {  219, 110,  55,  33,  36,  41,  38,  35 },
+        {  219, 110,  55,  33,  35,  40,  38,  36 },
+        {  219, 110,  55,  33,  35,  43,  37,  35 },
+        {  110, 109,  54,  32,  34,  43,  37,  35 },
+        {  219, 109,  54,  32,  33,  42,  37,  35 },
+        {  219, 109,  54,  31,  33,  42,  36,  34 },
+        {  219, 108,  53,  31,  32,  38,  36,  34 },
+        {  216, 108,  53,  30,  32,  38,  35,  33 },
+        {  217, 107,  52,  29,  31,  37,  35,  33 },
+        {  217, 107,  52,  29,  31,  37,  35,  33 },
+        {  215, 107,  51,  28,  30,  37,  34,  32 },
+        {  216, 106,  50,  28,  30,  36,  34,  32 },
+        {  215, 105,  50,  27,  30,  39,  34,  32 },
+        {  214, 105,  49,  27,  29,  39,  33,  31 },
+        {  214, 104,  49,  26,  29,  39,  33,  31 },
+        {  212, 104,  48,  26,  29,  38,  33,  31 },
+        {  213, 103,  47,  25,  28,  38,  32,  30 },
+        {  212, 102,  47,  25,  28,  38,  32,  30 },
+        {  211, 102,  46,  25,  28,  37,  32,  30 },
+        {  210, 101,  46,  24,  27,  37,  31,  28 },
+        {  209, 101,  45,  24,  27,  37,  31,  28 },
+        {  208, 101,  45,  24,  27,  36,  31,  26 },
+        {  208, 100,  45,  23,  27,  36,  31,  27 },
+        {  209,  99,  44,  23,  26,  36,  30,  27 },
+        {  210,  99,  44,  23,  26,  36,  30,  28 },
+        {  209,  98,  44,  23,  26,  35,  30,  27 },
+        {  209,  98,  43,  23,  26,  35,  30,  27 },
+        {  208,  98,  43,  22,  25,  35,  29,  27 },
+        {  208,  98,  43,  22,  25,  35,  29,  27 },
+        {  208,  98,  43,  22,  25,  35,  29,  27 },
+        {  208,  98,  43,  22,  25,  35,  29,  27 },
+        {  207,  98,  43,  22,  25,  35,  29,  27 },
+        {  207,  97,  43,  22,  25,  35,  29,  27 },
+        {  208,  97,  43,  22,  25,  35,  29,  27 },
+        {  208,  97,  43,  22,  25,  35,  29,  27 },
+        {  208,  97,  43,  22,  25,  35,  29,  27 },
+        {  209,  97,  43,  22,  25,  35,  29,  27 },
+        {    0,  97,  43,  22,  25,  35,  29,  27 },
+        {  211,  97,  43,  23,  25,  35,  30,  28 },
+        {  209,  98,  44,  23,  25,  35,  30,  28 },
+        {  209,  99,  44,  23,  25,  35,  30,  28 },
+        {  209, 100,  44,  23,  26,  36,  30,  28 },
+        {  208,  43,  44,  23,  26,  36,  30,  29 },
+        {  205, 101,  45,  24,  26,  36,  31,  29 },
+        {  210, 101,  45,  24,  26,  36,  31,  29 },
+        {  211, 101,  46,  24,  27,  37,  31,  29 },
+        {  211, 101,  46,  25,  27,  37,  31,  30 },
+        {  211, 102,  47,  25,  27,  37,  32,  30 },
+        {  211, 103,  47,  26,  28,  38,  32,  30 }
+    },
+    {
+        {  212, 104,  49,  27,  28,  38,  33,  31 },
+        {  215, 104,  49,  27,  35,  39,  33,  31 },
+        {  214, 105,  50,  28,  36,  39,  34,  32 },
+        {  214, 106,  50,  28,  29,  36,  34,  32 },
+        {  214, 107,  51,  29,  30,  36,  34,  32 },
+        {  213, 107,  51,  29,  30,  37,  35,  33 },
+        {  215, 107,  52,  30,  31,  41,  35,  33 },
+        {  213, 108,  52,  31,  31,  41,  35,  33 },
+        {  217, 108,  53,  31,  32,  42,  36,  34 },
+        {  217, 109,  53,  32,  32,  42,  36,  34 },
+        {  218, 109,  54,  32,  33,  42,  37,  35 },
+        {  218, 109,  54,  32,  34,  43,  37,  35 },
+        {  220, 110,  54,  33,  35,  40,  37,  35 },
+        {  219, 110,  55,  33,  35,  40,  38,  35 },
+        {  219, 110,  55,  33,  36,  41,  38,  36 },
+        {  220, 110,  55,  34,  36,  41,  37,  37 },
+        {  115, 111,  55,  34,  36,  42,  37,  37 },
+        {  221, 111,  56,  34,  36,  42,  40,  36 },
+        {  220, 111,  56,  34,  36,  42,  40,  38 },
+        {  222, 111,  56,  34,  36,  42,  40,  37 },
+        {  223, 111,  56,  34,  36,  42,  39,  37 },
+        {  114, 111,  56,  34,  36,  42,  39,  37 },
+        {  219, 111,  56,  34,  36,  41,  39,  37 },
+        {  219, 111,  55,  33,  36,  41,  39,  36 },
+        {  218, 111,  55,  33,  35,  40,  38,  36 },
+        {  218, 110,  55,  33,  35,  43,  38,  36 },
+        {  218, 110,  55,  33,  34,  43,  37,  35 },
+        {  216, 110,  54,  32,  34,  43,  37,  35 },
+        {  217, 110,  54,  32,  33,  43,  37,  35 },
+        {  217, 109,  53,  31,  32,  42,  36,  34 },
+        {  216, 109,  53,  31,  32,  38,  36,  34 },
+        {  217, 108,  53,  30,  32,  38,  36,  33 },
+        {  216, 108,  52,  30,  31,  37,  35,  33 },
+        {  216, 107,  51,  29,  31,  37,  35,  33 },
+        {  216, 107,  51,  28,  30,  40,  35,  32 },
+        {  214, 106,  50,  28,  30,  40,  34,  32 },
+        {  215, 105,  50,  27,  30,  39,  34,  32 },
+        {  215, 104,  49,  27,  29,  39,  33,  31 },
+        {  213, 104,  49,  26,  29,  39,  33,  31 },
+        {  213, 104,  48,  26,  29,  38,  33,  31 },
+        {  213, 104,  48,  26,  28,  38,  33,  29 },
+        {  212, 103,  47,  25,  28,  38,  32,  29 },
+        {  211, 102,  47,  25,  28,  38,  32,  29 },
+        {  210, 102,  46,  25,  27,  37,  32,  28 },
+        {  211, 101,  46,  24,  27,  37,  31,  28 },
+        {  209,  44,  45,  24,  27,  37,  31,  28 },
+        {  209,  44,  45,  24,  27,  37,  31,  27 },
+        {  208,  43,  45,  23,  26,  36,  31,  27 },
+        {  208,  43,  45,  23,  26,  36,  31,  27 },
+        {  209,  42,  44,  23,  26,  36,  30,  27 },
+        {  209,  99,  44,  23,  26,  36,  30,  27 },
+        {  210,  98,  44,  23,  26,  36,  30,  28 },
+        {  210,  98,  44,  23,  25,  36,  30,  28 },
+        {  208,  98,  44,  23,  25,  36,  30,  28 },
+        {  210,  98,  44,  23,  25,  35,  30,  28 },
+        {  211,  97,  43,  23,  25,  35,  30,  28 },
+        {  211,  97,  44,  23,  25,  35,  30,  28 },
+        {  210,  98,  44,  23,  25,  35,  30,  28 },
+        {  103,  98,  44,  23,  25,  35,  30,  28 },
+        {  209,  98,  44,  23,  25,  36,  30,  28 },
+        {  208,  99,  44,  23,  25,  36,  30,  28 },
+        {  208,  43,  44,  23,  26,  36,  30,  28 },
+        {  207,  43,  44,  23,  26,  36,  30,  28 },
+        {  208,  43,  45,  23,  26,  36,  31,  29 },
+        {  207, 100,  45,  24,  26,  36,  31,  29 },
+        {  209, 100,  45,  24,  26,  36,  31,  29 },
+        {  212, 100,  46,  24,  26,  37,  31,  29 },
+        {  210, 101,  46,  25,  27,  37,  31,  30 },
+        {  212, 102,  47,  25,  27,  37,  32,  30 },
+        {  211, 102,  47,  25,  27,  37,  32,  30 },
+        {  210, 103,  47,  26,  28,  38,  32,  30 },
+        {  211, 104,  48,  26,  28,  38,  33,  31 }
+    },
+    {
+        {  214, 103,  48,  26,  34,  37,  32,  30 },
+        {  208, 104,  48,  26,  34,  38,  32,  30 },
+        {  212, 104,  49,  27,  35,  38,  33,  31 },
+        {  214, 105,  50,  28,  35,  35,  33,  31 },
+        {  216, 105,  50,  28,  35,  35,  33,  31 },
+        {  215, 106,  51,  29,  29,  39,  34,  32 },
+        {  215, 107,  51,  30,  30,  40,  34,  32 },
+        {  216, 107,  52,  30,  31,  40,  35,  33 },
+        {  216, 108,  52,  31,  31,  41,  35,  33 },
+        {  216, 108,  53,  31,  32,  38,  35,  33 },
+        {  218, 108,  53,  32,  33,  38,  36,  34 },
+        {  220, 108,  53,  32,  33,  39,  36,  34 },
+        {  220, 109,  54,  32,  34,  39,  37,  35 },
+        {  220, 109,  54,  32,  34,  40,  35,  35 },
+        {  220, 109,  54,  33,  34,  40,  35,  35 },
+        {  219, 109,  54,  33,  35,  40,  38,  35 },
+        {  218, 110,  54,  33,  35,  40,  38,  35 },
+        {  217, 110,  54,  33,  34,  40,  38,  35 },
+        {  217, 110,  54,  32,  34,  40,  37,  35 },
+        {  216, 110,  54,  32,  34,  39,  37,  35 },
+        {  216, 110,  54,  32,  34,  39,  37,  35 },
+        {  216, 109,  54,  32,  33,  42,  36,  34 },
+        {  215, 109,  53,  31,  33,  42,  36,  34 },
+        {  216, 108,  53,  31,  32,  41,  35,  33 },
+        {  216, 108,  52,  30,  31,  41,  35,  33 },
+        {  215, 108,  52,  30,  31,  41,  35,  33 },
+        {  214, 107,  51,  29,  30,  37,  34,  32 },
+        {  215, 106,  51,  28,  30,  36,  34,  32 },
+        {  219, 106,  50,  28,  29,  36,  33,  31 },
+        {  213, 105,  50,  27,  29,  39,  33,  31 },
+        {  213, 105,  49,  27,  29,  38,  33,  31 },
+        {  212, 104,  48,  26,  28,  38,  32,  30 },
+        {  213, 103,  48,  26,  28,  38,  32,  30 },
+        {  213, 102,  47,  25,  27,  37,  32,  29 },
+        {  211, 102,  47,  25,  27,  37,  31,  29 },
+        {  210, 102,  46,  24,  27,  37,  31,  29 },
+        {  210,  44,  46,  24,  26,  36,  31,  27 },
+        {  210, 101,  45,  23,  26,  36,  30,  27 },
+        {  210, 100,  45,  23,  26,  36,  30,  27 },
+        {  210,  99,  44,  23,  25,  36,  30,  26 },
+        {  210,  99,  44,  23,  25,  35,  30,  26 },
+        {  209,  98,  44,  22,  25,  35,  29,  26 },
+        {  208,  98,  43,  22,  25,  35,  29,  26 },
+        {  208,  41,  43,  22,  25,  35,  29,  26 },
+        {  206,  41,  43,  22,  24,  35,  29,  26 },
+        {  206,  42,  43,  22,  24,  35,  29,  27 },
+        {  205,  41,  43,  22,  24,  35,  29,  27 },
+        {  206,  41,  43,  22,  24,  35,  29,  27 },
+        {  208,  98,  43,  22,  24,  35,  29,  27 },
+        {  207,  98,  43,  22,  24,  35,  29,  27 },
+        {  210,  97,  44,  22,  24,  35,  29,  27 },
+        {    1,  97,  44,  23,  25,  35,  29,  27 },
+        {    1,  98,  44,  23,  31,  35,  30,  28 },
+        {  210,  99,  44,  23,  32,  35,  30,  28 },
+        {  209, 100,  45,  23,  32,  35,  30,  28 },
+        {  209, 101,  45,  23,  32,  36,  30,  28 },
+        {  209, 101,  46,  24,  32,  36,  30,  29 },
+        {  210, 101,  46,  24,  33,  36,  31,  29 },
+        {  212, 101,  47,  25,  33,  37,  31,  29 },
+        {  213, 102,  47,  25,  33,  37,  31,  30 }
+    },
+    {
+        {  213, 105,  50,  28,  36,  35,  33,  31 },
+        {  213, 104,  51,  28,  36,  36,  33,  31 },
+        {  216, 105,  51,  29,  36,  36,  33,  32 },
+        {  215, 106,  52,  30,  37,  37,  34,  32 },
+        {  215, 107,  52,  30,  37,  37,  34,  32 },
+        {  217, 107,  53,  31,  31,  37,  35,  33 },
+        {  213, 108,  53,  31,  32,  38,  35,  33 },
+        {  218, 108,  54,  32,  32,  38,  33,  34 },
+        {  219, 109,  54,  33,  33,  39,  34,  34 },
+        {  217, 109,  55,  33,  34,  39,  34,  34 },
+        {  217, 110,  55,  33,  34,  39,  35,  35 },
+        {  216, 110,  55,  34,  35,  40,  35,  35 },
+        {  217, 110,  56,  34,  35,  40,  35,  35 },
+        {  218, 110,  56,  34,  35,  41,  35,  35 },
+        {  219, 111,  56,  34,  35,  41,  36,  36 },
+        {  219, 111,  56,  34,  35,  41,  36,  36 },
+        {  218, 110,  56,  34,  35,  41,  36,  36 },
+        {  218, 110,  56,  34,  35,  40,  35,  35 },
+        {  219, 110,  55,  33,  35,  40,  35,  35 },
+        {  216, 110,  55,  33,  34,  40,  35,  35 },
+        {  218, 110,  55,  33,  34,  39,  35,  35 },
+        {  217, 110,  54,  32,  33,  39,  34,  34 },
+        {  216, 109,  54,  32,  33,  39,  34,  34 },
+        {  217, 108,  54,  31,  32,  38,  33,  33 },
+        {  216, 108,  53,  31,  32,  38,  33,  33 },
+        {  215, 108,  52,  30,  32,  37,  33,  33 },
+        {  215, 107,  52,  29,  31,  37,  32,  32 },
+        {  214, 106,  51,  29,  31,  37,  32,  32 },
+        {  213, 105,  51,  28,  30,  36,  32,  32 },
+        {  218, 105,  50,  28,  30,  36,  31,  31 },
+        {  212, 105,  50,  27,  29,  35,  33,  31 },
+        {  210,  48,  49,  27,  29,  35,  32,  30 },
+        {  210, 104,  48,  26,  29,  35,  32,  30 },
+        {  212, 103,  48,  26,  28,  34,  32,  30 },
+        {  212, 102,  48,  26,  28,  34,  32,  30 },
+        {  213, 101,  47,  25,  28,  34,  31,  29 },
+        {  212, 101,  47,  25,  27,  34,  31,  29 },
+        {  208, 102,  46,  25,  27,  33,  31,  29 },
+        {  208,  45,  46,  24,  27,  33,  31,  29 },
+        {  207,  45,  46,  24,  27,  33,  31,  28 },
+        {  205,  45,  46,  24,  27,  33,  30,  28 },
+        {  207,  45,  45,  24,  26,  33,  30,  28 },
+        {  205,  45,  45,  24,  26,  33,  30,  28 },
+        {  204,  45,  45,  24,  26,  33,  30,  28 },
+        {  204,  45,  45,  24,  26,  33,  30,  28 },
+        {  205,  45,  45,  24,  33,  33,  30,  28 },
+        {  205,  45,  46,  24,  33,  33,  30,  29 },
+        {  207,  45,  46,  24,  33,  33,  31,  29 },
+        {  208, 101,  46,  24,  33,  33,  31,  29 },
+        {  211, 101,  47,  25,  33,  33,  31,  29 },
+        {  212, 100,  47,  25,  34,  33,  31,  29 },
+        {  212, 101,  48,  26,  34,  34,  31,  29 },
+        {  211, 102,  48,  26,  34,  34,  32,  30 },
+        {  210,  47,  48,  26,  35,  34,  32,  30 },
+        {  209,  48,  49,  26,  35,  35,  32,  30 },
+        {  211,  48,  49,  27,  35,  35,  32,  31 }
+    },
+    {
+        {  213, 102,  49,  26,  34,  33,  31,  29 },
+        {  213, 103,  50,  27,  35,  34,  29,  31 },
+        {  212, 105,  50,  27,  35,  35,  30,  30 },
+        {  212, 106,  50,  28,  36,  35,  30,  30 },
+        {  213, 106,  51,  29,  29,  35,  33,  31 },
+        {  210, 106,  52,  30,  30,  36,  31,  31 },
+        {  215, 106,  52,  30,  31,  36,  31,  32 },
+        {  215, 107,  53,  31,  31,  37,  32,  32 },
+        {  214, 108,  53,  31,  32,  37,  32,  32 },
+        {  218, 109,  53,  31,  32,  37,  32,  33 },
+        {  214, 108,  53,  32,  32,  38,  33,  33 },
+        {  215, 108,  53,  32,  33,  38,  33,  33 },
+        {  215, 108,  54,  32,  33,  38,  33,  33 },
+        {  216, 108,  53,  31,  33,  38,  33,  33 },
+        {  215, 108,  53,  31,  32,  38,  33,  33 },
+        {  215, 108,  53,  31,  32,  37,  32,  32 },
+        {  214, 108,  53,  31,  32,  37,  32,  32 },
+        {  215, 107,  52,  30,  31,  37,  32,  32 },
+        {  215, 106,  52,  29,  31,  36,  31,  31 },
+        {  214, 106,  51,  29,  30,  36,  31,  31 },
+        {  213, 106,  51,  28,  30,  35,  31,  31 },
+        {  211, 105,  50,  27,  29,  35,  30,  30 },
+        {  214, 104,  50,  27,  29,  35,  30,  30 },
+        {  214, 103,  49,  26,  28,  34,  29,  29 },
+        {  213, 103,  48,  26,  28,  34,  29,  29 },
+        {  210, 103,  48,  25,  27,  33,  29,  29 },
+        {  208, 103,  47,  24,  27,  33,  28,  28 },
+        {  210, 102,  46,  24,  26,  33,  28,  28 },
+        {  212, 100,  46,  24,  26,  32,  28,  28 },
+        {    2,  99,  46,  24,  26,  32,  27,  28 },
+        {    1,  99,  45,  24,  25,  32,  29,  27 },
+        {  210,  99,  45,  23,  32,  32,  29,  27 },
+        {  208,  99,  45,  23,  32,  31,  29,  27 },
+        {  208,  99,  45,  23,  32,  31,  29,  27 },
+        {  207, 100,  45,  23,  32,  35,  29,  27 },
+        {  207, 100,  45,  23,  32,  35,  29,  27 },
+        {  209,  99,  45,  23,  32,  35,  29,  27 },
+        {  209,  99,  45,  23,  32,  31,  29,  27 },
+        {  210,  98,  45,  23,  32,  31,  29,  27 },
+        {    3,  98,  46,  24,  32,  32,  29,  27 },
+        {  211,  99,  46,  24,  32,  32,  29,  28 },
+        {  209, 101,  46,  24,  32,  32,  30,  28 },
+        {  208,  45,  47,  24,  33,  32,  30,  28 },
+        {  208,  46,  47,  24,  33,  33,  30,  28 },
+        {  209, 103,  48,  25,  33,  33,  31,  29 }
+    },
+    {
+        {  211, 102,  47,  24,  33,  36,  30,  28 },
+        {  211, 103,  48,  25,  33,  36,  31,  29 },
+        {  212, 103,  49,  26,  34,  33,  31,  29 },
+        {  212, 103,  49,  27,  34,  34,  31,  29 },
+        {  212, 104,  50,  27,  28,  34,  32,  30 },
+        {  213, 105,  50,  28,  28,  34,  32,  30 },
+        {  211, 105,  50,  28,  29,  35,  32,  30 },
+        {  212, 106,  51,  28,  29,  35,  30,  30 },
+        {  212, 106,  51,  29,  30,  35,  30,  30 },
+        {  211, 106,  51,  29,  30,  35,  31,  31 },
+        {  214, 106,  51,  29,  30,  35,  31,  31 },
+        {  211, 106,  51,  28,  29,  35,  33,  30 },
+        {  213, 105,  51,  28,  29,  35,  30,  30 },
+        {  214, 105,  50,  28,  29,  35,  30,  30 },
+        {  212, 104,  50,  27,  29,  34,  30,  30 },
+        {  214, 103,  50,  27,  28,  34,  29,  29 },
+        {  216, 103,  49,  26,  28,  34,  31,  29 },
+        {  211, 103,  48,  25,  27,  33,  31,  29 },
+        {  210, 103,  48,  25,  27,  33,  30,  28 },
+        {  210, 102,  47,  24,  26,  36,  30,  28 },
+        {  210, 101,  47,  24,  26,  36,  30,  28 },
+        {  211, 100,  46,  24,  25,  35,  30,  27 },
+        {  210, 100,  46,  23,  32,  35,  29,  27 },
+        {  209, 100,  45,  23,  32,  35,  29,  27 },
+        {  208, 100,  45,  22,  31,  35,  29,  27 },
+        {  206,  43,  45,  22,  31,  34,  29,  27 },
+        {  206,  43,  44,  22,  31,  34,  29,  27 },
+        {  206,  43,  44,  22,  31,  34,  29,  27 },
+        {  205,  43,  44,  22,  31,  34,  29,  27 },
+        {  206,  43,  44,  22,  31,  34,  29,  27 },
+        {  207,  43,  45,  22,  31,  34,  29,  27 },
+        {  208, 100,  45,  22,  31,  34,  29,  27 },
+        {  210,  99,  46,  23,  32,  35,  29,  27 },
+        {  212,  99,  46,  23,  32,  35,  29,  27 },
+        {  212, 100,  47,  24,  32,  35,  30,  28 },
+        {  212, 101,  47,  24,  33,  36,  30,  28 }
+    },
+    {
+        {  213, 104,  50,  27,  36,  38,  33,  31 },
+        {  216, 105,  51,  28,  36,  39,  33,  31 },
+        {  215, 105,  52,  29,  37,  36,  34,  32 },
+        {  217, 106,  52,  29,  30,  36,  34,  32 },
+        {  215, 107,  52,  30,  31,  37,  34,  32 },
+        {  217, 107,  53,  30,  31,  37,  34,  32 },
+        {  217, 107,  53,  30,  31,  37,  35,  33 },
+        {  218,  51,  53,  30,  31,  37,  35,  32 },
+        {  217, 107,  52,  30,  31,  37,  34,  32 },
+        {  216, 106,  52,  29,  31,  37,  34,  32 },
+        {  217, 105,  52,  29,  30,  36,  34,  32 },
+        {  218, 105,  51,  28,  30,  36,  33,  31 },
+        {  216, 104,  50,  27,  29,  39,  33,  31 },
+        {  211, 104,  49,  27,  29,  38,  33,  31 },
+        {  213,  47,  49,  26,  28,  38,  32,  30 },
+        {  212, 103,  48,  26,  35,  38,  32,  30 },
+        {  213, 101,  48,  25,  34,  37,  32,  30 },
+        {  214, 101,  48,  25,  34,  37,  32,  30 },
+        {  213, 101,  48,  25,  34,  37,  32,  30 },
+        {  214, 101,  48,  25,  34,  37,  32,  30 },
+        {  214, 101,  48,  25,  34,  37,  32,  30 },
+        {  213, 102,  48,  26,  34,  37,  32,  30 },
+        {  211, 103,  49,  26,  35,  38,  32,  30 },
+        {  213,  47,  49,  26,  35,  38,  33,  31 }
+    },
+    {
+        {  214, 103,  49,  26,  34,  37,  32,  30 },
+        {  212, 104,  50,  27,  28,  38,  32,  30 },
+        {  214,  48,  50,  27,  29,  35,  32,  30 },
+        {  214,  48,  50,  28,  29,  35,  33,  30 },
+        {  214, 105,  50,  27,  29,  35,  32,  30 },
+        {  214, 104,  50,  27,  28,  34,  32,  30 },
+        {  215, 103,  49,  26,  28,  38,  32,  30 },
+        {  215, 102,  49,  26,  34,  37,  32,  30 },
+        {  215, 101,  48,  25,  34,  37,  31,  28 },
+        {  215, 101,  48,  25,  34,  37,  31,  28 },
+        {  214, 101,  48,  25,  34,  37,  31,  28 },
+        {  214, 101,  48,  25,  34,  37,  32,  28 }
+    },
+    {
+        {  211, 102,  48,  25,  27,  36,  31,  29 }
+    }
+};
+
+/* 1st order HRTF approximation */
+
+static const float hrtf_amplitude_set_22050_order_1[14][72][8] = {
+    {
+        {
+             -1.3304034565e+03, -7.0039710263e+03, -7.5045203151e+03,
+              8.7168408413e+03, -1.9341843900e+04, -7.1477504799e+04,
+              4.0115864689e+04, -1.3425075486e+04
+        },
+        {
+             -1.3726025544e+03, -6.8091078965e+03, -7.3057043452e+03,
+              7.9718291307e+03, -1.7610341511e+04, -6.9359662638e+04,
+              3.9280321345e+04, -1.2973113669e+04
+        },
+        {
+             -1.3258913166e+03, -6.8206436987e+03, -7.1721942125e+03,
+              7.5019464202e+03, -1.6522246284e+04, -6.4581870895e+04,
+              3.5462060566e+04, -1.1706351697e+04
+        },
+        {
+             -1.2457780551e+03, -6.7314165967e+03, -7.0845490544e+03,
+              6.9852177172e+03, -1.5182584077e+04, -5.8913509779e+04,
+              3.1482733730e+04, -9.9845031039e+03
+        },
+        {
+             -1.1107331630e+03, -6.7108591016e+03, -7.0551818471e+03,
+              6.5375239734e+03, -1.3931088133e+04, -5.3814294935e+04,
+              2.8476714882e+04, -8.4384995928e+03
+        },
+        {
+             -1.0801531304e+03, -6.6777318567e+03, -7.0626715065e+03,
+              6.1194024708e+03, -1.2325022716e+04, -4.7561143244e+04,
+              2.5514484644e+04,  6.7859643220e+03
+        },
+        {
+             -9.1469730418e+02, -6.6003490839e+03, -7.0469753455e+03,
+              5.9122741574e+03,  1.0828418486e+04, -4.2128122490e+04,
+              2.3229209285e+04,  5.7069219567e+03
+        },
+        {
+              9.2940772483e+02,  6.5712546905e+03, -7.0502278794e+03,
+              5.7889358398e+03,  9.5252542654e+03, -3.6731797157e+04,
+              2.1113755384e+04, -4.8230073538e+03
+        },
+        {
+             -9.1622066485e+02, -6.5566359783e+03, -7.1058428492e+03,
+              5.7536855025e+03,  8.2253690831e+03, -3.0344800156e+04,
+              1.8690903320e+04, -4.3247943660e+03
+        },
+        {
+              9.8724987953e+02,  6.5047879051e+03, -7.2021543886e+03,
+              5.7755820066e+03,  7.4279177757e+03, -2.4641904339e+04,
+              1.6260389243e+04, -3.0073639219e+03
+        },
+        {
+             -9.7972039083e+02,  6.5133984880e+03, -7.2887071834e+03,
+              5.9005830471e+03,  7.0266582925e+03, -1.8477359757e+04,
+              1.2695294525e+04, -2.6004555514e+03
+        },
+        {
+             -1.0889298776e+03,  6.5717881758e+03, -7.3488111008e+03,
+              6.0455966328e+03,  7.0981795550e+03, -1.5764914663e+04,
+              8.4870237395e+03, -2.5684681679e+03
+        },
+        {
+             -1.1180647029e+03, -6.5573654463e+03, -7.3927436539e+03,
+              6.2097930540e+03,  7.4420199401e+03, -1.7705774838e+04,
+             -4.6167121841e+03,  1.6055704235e+03
+        },
+        {
+             -1.1416684349e+03, -6.5401474987e+03, -7.4544699964e+03,
+              6.2926934416e+03,  7.7203679174e+03, -2.1054191435e+04,
+              6.7987986770e+03,  1.0038167207e+03
+        },
+        {
+             -1.0770262372e+03, -6.5478300483e+03, -7.4729527002e+03,
+              6.3445977349e+03,  7.8341955721e+03, -2.3279226208e+04,
+              9.8180053061e+03, -2.0384887588e+03
+        },
+        {
+             -9.8899953233e+02, -6.6019134724e+03, -7.4979496004e+03,
+              6.3224770222e+03,  7.6657783673e+03, -2.3460270105e+04,
+              1.0727727084e+04, -2.4047708867e+03
+        },
+        {
+             -9.2206253471e+02,  6.5037939898e+03, -7.5187409542e+03,
+              6.2538485748e+03,  7.2546847672e+03, -2.1877481998e+04,
+              8.9847145391e+03, -2.6798479484e+03
+        },
+        {
+             -8.8920051731e+02, -6.4658588559e+03, -7.4862374286e+03,
+              6.1168815209e+03,  6.5479559630e+03, -1.9721273196e+04,
+             -7.9038753746e+03,  3.5226448966e+03
+        },
+        {
+              9.9475880171e+02, -6.4893805689e+03, -7.4709751140e+03,
+              5.9403266291e+03,  5.9071551585e+03, -2.0138254971e+04,
+             -1.0533864343e+04,  4.6760204134e+03
+        },
+        {
+              9.4734736699e+02, -6.5242435251e+03, -7.4153668614e+03,
+              5.7097065184e+03,  5.4744358134e+03, -2.4874717770e+04,
+              1.4920121677e+04,  5.7232255566e+03
+        },
+        {
+             -9.7484992357e+02,  6.5556957093e+03, -7.3683577862e+03,
+              5.5076309651e+03,  5.6621356145e+03, -3.0979963350e+04,
+              1.7239497663e+04, -6.8754416175e+03
+        },
+        {
+             -1.0275686151e+03,  6.5725372565e+03, -7.3306468651e+03,
+              5.3206815481e+03,  6.4093658956e+03, -3.7225244064e+04,
+              1.9070928757e+04,  8.2212425092e+03
+        },
+        {
+             -9.8893974702e+02, -6.6073768785e+03, -7.2909605225e+03,
+              5.2162292488e+03, -7.9249674032e+03, -4.3644144861e+04,
+              2.1721476161e+04,  1.0229023191e+04
+        },
+        {
+              1.0321535688e+03,  6.5627513778e+03, -7.2506461468e+03,
+              5.2363681703e+03, -9.6520414528e+03, -4.8368097908e+04,
+              2.4401347262e+04, -1.2064569583e+04
+        },
+        {
+              1.1438564088e+03, -6.5451339916e+03, -7.1618219870e+03,
+              5.3772387237e+03, -1.1514368914e+04, -5.3758102100e+04,
+              2.8005702335e+04, -1.4443598120e+04
+        },
+        {
+             -1.0229431100e+03, -6.6873232357e+03, -7.2364134643e+03,
+              5.5905082803e+03, -1.2856775124e+04, -5.8527296488e+04,
+              3.0997696880e+04, -1.6485591149e+04
+        },
+        {
+              1.0652216820e+03, -6.7018429230e+03, -7.2414738190e+03,
+              6.0072182344e+03, -1.4050780448e+04, -6.4262935884e+04,
+              3.4181946593e+04, -1.8566099027e+04
+        },
+        {
+             -1.0198590563e+03, -6.7597941872e+03, -7.2608053838e+03,
+              6.5331807577e+03, -1.4778347376e+04, -6.9136601903e+04,
+              3.6609685646e+04, -1.9517810885e+04
+        },
+        {
+             -1.0665291696e+03, -6.8330777397e+03, -7.3312847767e+03,
+              7.0568475084e+03, -1.5317296656e+04, -7.3999020638e+04,
+              3.9245566618e+04, -1.9620678628e+04
+        },
+        {
+             -1.0498721253e+03, -6.9719836393e+03, -7.5305658681e+03,
+              7.5998325022e+03, -1.5814351857e+04, -7.9224131065e+04,
+              4.2519304655e+04, -1.8939367658e+04
+        },
+        {
+             -1.0423799182e+03, -7.0067814475e+03, -7.6764794065e+03,
+              8.1502117889e+03, -1.6191925173e+04, -8.3056424306e+04,
+              4.4794583080e+04, -1.8257922455e+04
+        },
+        {
+             -1.0027406546e+03, -7.0645645599e+03, -7.8131633137e+03,
+              8.9094997286e+03, -1.6632025830e+04, -8.6763478576e+04,
+              4.6016411609e+04,  1.8164435350e+04
+        },
+        {
+             -1.0688226847e+03, -7.0715558035e+03, -7.8901260196e+03,
+              9.5023659305e+03,  1.7179745320e+04, -8.9104085577e+04,
+              4.5616836492e+04,  1.9325696079e+04
+        },
+        {
+             -9.9814477633e+02, -7.1779614129e+03, -8.2249143661e+03,
+              1.0004819134e+04,  1.8007489122e+04, -9.0635904939e+04,
+             -4.4643820264e+04,  2.0933560355e+04
+        },
+        {
+             -1.0888116024e+03, -7.3202474043e+03, -8.5446152795e+03,
+              1.0397377487e+04,  1.8759923125e+04, -9.1069234337e+04,
+             -4.4456186619e+04,  2.3675044626e+04
+        },
+        {
+             -1.1169121762e+03, -7.3361365146e+03, -8.7086213214e+03,
+              1.0877857387e+04,  1.9454219735e+04, -9.0665539876e+04,
+             -4.4429315439e+04,  2.9758435539e+04
+        },
+        {
+             -1.1402532188e+03, -7.4763149830e+03, -8.7934245000e+03,
+              1.1425211386e+04,  2.0209859047e+04, -8.9930322933e+04,
+             -4.5077774494e+04,  3.5975473826e+04
+        },
+        {
+              1.1021987290e+03, -7.4976931199e+03, -8.8744418654e+03,
+              1.1820341538e+04,  2.0872869015e+04, -8.9534443749e+04,
+             -4.6014213519e+04,  3.9013985156e+04
+        },
+        {
+             -1.0740879763e+03, -7.5720879589e+03, -9.0316512035e+03,
+              1.2152880619e+04, -2.1712774568e+04, -8.9450009019e+04,
+             -4.7541489940e+04, -4.2959540288e+04
+        },
+        {
+             -1.0213698096e+03, -7.6649147826e+03, -9.2250520912e+03,
+              1.2342903310e+04, -2.2407422057e+04, -9.0063907400e+04,
+             -4.9137023418e+04, -4.6354013747e+04
+        },
+        {
+             -1.0807037109e+03, -7.5870392232e+03, -9.4308899909e+03,
+              1.2542197400e+04, -2.3078713229e+04, -9.1277369486e+04,
+             -5.1171373733e+04, -4.8905475785e+04
+        },
+        {
+             -1.0979438048e+03, -7.6362672254e+03, -9.5667037628e+03,
+              1.2654198574e+04, -2.3577882673e+04, -9.2915208025e+04,
+             -5.3211591755e+04, -5.0269347020e+04
+        },
+        {
+             -1.0792901289e+03, -7.6784639401e+03, -9.6135182655e+03,
+              1.2706687693e+04, -2.3960997162e+04, -9.4848436791e+04,
+             -5.5237210555e+04, -5.0786928899e+04
+        },
+        {
+             -1.1821271596e+03, -7.7322030798e+03, -9.6351173226e+03,
+              1.2719872167e+04, -2.4257707153e+04, -9.7796474188e+04,
+             -5.7851642387e+04, -5.0148869301e+04
+        },
+        {
+             -1.2892779424e+03, -7.7254640493e+03, -9.6219252568e+03,
+              1.2690436565e+04, -2.4427362467e+04, -1.0049105860e+05,
+              5.9880329145e+04, -4.8550629894e+04
+        },
+        {
+             -1.4431434474e+03, -7.7382405275e+03, -9.5363546491e+03,
+              1.2579694110e+04, -2.4526366359e+04, -1.0361877133e+05,
+              6.2651062477e+04, -4.6408145210e+04
+        },
+        {
+             -1.4114139107e+03, -7.7248444387e+03, -9.4677616759e+03,
+              1.2456276845e+04, -2.4571698629e+04, -1.0567906513e+05,
+              6.3787734964e+04, -4.4228952080e+04
+        },
+        {
+             -1.4016609064e+03, -7.6211898476e+03, -9.2804458756e+03,
+              1.2242240019e+04, -2.4529115159e+04, -1.0744027623e+05,
+              6.4334216892e+04, -4.1261028712e+04
+        },
+        {
+             -1.2424028638e+03, -7.5349370682e+03, -9.0903632461e+03,
+              1.2029365631e+04, -2.4415180215e+04, -1.0784683067e+05,
+              6.3590863949e+04, -3.9056851835e+04
+        },
+        {
+             -1.2276715436e+03, -7.4981083085e+03, -8.8782612644e+03,
+              1.1789550913e+04, -2.4249437726e+04, -1.0700037484e+05,
+              6.1507463735e+04, -3.6272425636e+04
+        },
+        {
+             -1.1458889808e+03, -7.3582224358e+03, -8.6595515839e+03,
+              1.1415043831e+04, -2.3931589720e+04, -1.0454998022e+05,
+              5.8343968996e+04, -3.1315350170e+04
+        },
+        {
+             -1.1453701256e+03, -7.3402619967e+03, -8.5228952906e+03,
+              1.1042911862e+04, -2.3550599441e+04, -1.0099296111e+05,
+              5.5540873025e+04, -2.6846970023e+04
+        },
+        {
+             -1.2032272896e+03, -7.2626154445e+03, -8.3763746251e+03,
+              1.0536235985e+04, -2.2946535030e+04, -9.5613197916e+04,
+              5.3004760552e+04, -2.2060070824e+04
+        },
+        {
+             -1.2252261493e+03, -7.1705851273e+03, -8.1667709183e+03,
+              1.0114133847e+04, -2.2258892854e+04, -8.9992628740e+04,
+              5.0880895540e+04, -1.8983764606e+04
+        },
+        {
+             -1.2380205928e+03, -7.1004991174e+03, -7.8363029633e+03,
+              9.6461216767e+03, -2.1298470547e+04, -8.3035783926e+04,
+              4.7693039064e+04, -1.6914401932e+04
+        },
+        {
+             -1.2580992812e+03, -7.1137353235e+03, -7.6382372418e+03,
+              9.2078619087e+03, -2.0339772864e+04, -7.7150845763e+04,
+              4.4257995328e+04, -1.4998240458e+04
+        }
+    },
+    {
+        {
+             -1.1253926134e+03,  7.2392978007e+03, -7.6202945092e+03,
+              9.3316519485e+03, -1.8793953005e+04, -6.2726702450e+04,
+              5.4278211173e+04, -1.4999850741e+04
+        },
+        {
+             -1.0029337159e+03,  7.1095109175e+03, -7.3563068292e+03,
+              8.6600339869e+03,  1.7399533952e+04, -5.8958095531e+04,
+              5.1841342327e+04,  1.1583125772e+04
+        },
+        {
+             -1.0458671174e+03,  7.0315015476e+03, -7.1868966612e+03,
+              8.2025534553e+03,  1.6242671779e+04, -5.6076045927e+04,
+              4.5081848189e+04,  9.9946820100e+03
+        },
+        {
+             -1.0562154825e+03,  6.9956190800e+03, -7.0454672682e+03,
+              7.7362965864e+03,  1.5094843417e+04, -5.3640925409e+04,
+              3.8453163911e+04,  8.6025857391e+03
+        },
+        {
+             -1.1016975974e+03,  6.9180806791e+03, -6.9729209216e+03,
+              7.2819105279e+03,  1.3973093906e+04, -5.1292773174e+04,
+              3.2274568435e+04,  7.4788477347e+03
+        },
+        {
+             -1.1067794173e+03,  6.9037980089e+03, -6.9067160489e+03,
+              6.8996211035e+03,  1.2831369786e+04, -4.8414138368e+04,
+              2.6419891631e+04, -6.6965253868e+03
+        },
+        {
+             -9.8542287976e+02,  6.9131532184e+03, -6.8541696202e+03,
+              6.5900349263e+03,  1.1686050357e+04, -4.4963855319e+04,
+             -2.2285026501e+04, -6.3035710497e+03
+        },
+        {
+             -1.1818324033e+03,  6.8817590084e+03, -6.8502802695e+03,
+              6.3402111416e+03,  1.0563191420e+04, -4.0812098891e+04,
+             -1.9407090106e+04, -5.8393929944e+03
+        },
+        {
+             -1.2863627212e+03,  6.7739704590e+03, -6.9004873914e+03,
+              6.1846107314e+03,  9.4925094579e+03, -3.6288025323e+04,
+              1.7433688745e+04, -5.1472419519e+03
+        },
+        {
+             -1.3141077687e+03,  6.7503568515e+03, -6.9317675218e+03,
+              6.1412632985e+03,  8.5941167344e+03, -3.1551995848e+04,
+              1.5769612707e+04, -4.7002393131e+03
+        },
+        {
+             -1.3955242287e+03,  6.7790812534e+03, -6.9801147301e+03,
+              6.1826836072e+03,  7.9696340676e+03, -2.7218243794e+04,
+             -1.2964935680e+04,  3.3039270615e+03
+        },
+        {
+             -1.3762485014e+03,  6.7617665476e+03, -7.0315691947e+03,
+              6.2477212389e+03,  7.6926970523e+03, -2.4287462009e+04,
+             -9.5643010281e+03,  2.9592794249e+03
+        },
+        {
+             -1.2671783730e+03,  6.6786175693e+03, -7.1191233315e+03,
+              6.3344913430e+03,  7.7236517431e+03, -2.3715854751e+04,
+             -6.6402736644e+03,  2.4436984343e+03
+        },
+        {
+             -1.0980688060e+03,  6.6806972912e+03, -7.1446993184e+03,
+              6.4496809209e+03,  7.9298967571e+03, -2.4807237602e+04,
+             -7.1174020667e+03, -1.0262145486e+03
+        },
+        {
+             -1.0024039872e+03,  6.7098335556e+03, -7.1580934477e+03,
+              6.5269903209e+03,  8.1121203674e+03, -2.5797098513e+04,
+             -9.3514953414e+03, -2.0273795472e+03
+        },
+        {
+             -1.0131559393e+03,  6.7414129111e+03, -7.1799490533e+03,
+              6.5500943040e+03,  8.1230921844e+03, -2.5552479743e+04,
+             -1.0289201529e+04,  1.7269227154e+03
+        },
+        {
+              1.0636802556e+03,  6.7110215545e+03, -7.2122605260e+03,
+              6.5269358173e+03,  7.8822846236e+03, -2.3784092606e+04,
+             -9.4678857984e+03,  2.2706698982e+03
+        },
+        {
+             -9.9698378427e+02,  6.7080383621e+03, -7.1940918396e+03,
+              6.4422599320e+03,  7.3500860125e+03, -2.1375792850e+04,
+             -8.4214167608e+03, -2.7722170787e+03
+        },
+        {
+             -1.0240725644e+03,  6.6660935682e+03, -7.1898198158e+03,
+              6.2954206962e+03,  6.6156449642e+03, -2.0074118846e+04,
+             -8.8971024219e+03, -3.4172107477e+03
+        },
+        {
+             -1.0904592602e+03,  6.7481538007e+03, -7.1384994415e+03,
+              6.0971128993e+03,  5.8217253278e+03, -2.1589342986e+04,
+              1.1212242311e+04, -4.4783157844e+03
+        },
+        {
+             -1.0810643372e+03,  6.7153748007e+03, -7.1111277303e+03,
+              5.8762352226e+03,  5.2971219044e+03, -2.5791877535e+04,
+              1.3938050094e+04, -5.6462069605e+03
+        },
+        {
+             -1.0389756262e+03,  6.7411720112e+03, -7.0641851313e+03,
+              5.6756769379e+03,  5.3589342697e+03, -3.1125364516e+04,
+              1.6287253486e+04, -6.8284318384e+03
+        },
+        {
+             -1.0472853086e+03,  6.7542758601e+03, -7.0304936301e+03,
+              5.4758300985e+03,  6.0936734110e+03, -3.6357630394e+04,
+              1.8947321712e+04, -8.5184268787e+03
+        },
+        {
+             -1.0277511402e+03,  6.7273314587e+03, -6.9781041574e+03,
+              5.3481422284e+03,  7.3189409750e+03, -4.1017726982e+04,
+              2.1901005649e+04, -1.0551491476e+04
+        },
+        {
+             -1.0297329032e+03,  6.7780086698e+03, -6.9636920895e+03,
+              5.2753373118e+03,  8.7909850312e+03, -4.5430996276e+04,
+              2.5131415592e+04, -1.2612642805e+04
+        },
+        {
+             -1.0172591784e+03,  6.7706673306e+03, -6.9320268085e+03,
+              5.3824649728e+03, -1.0398276005e+04, -5.0025945851e+04,
+              2.8633748317e+04, -1.4656249772e+04
+        },
+        {
+             -9.9701663578e+02,  6.7934157692e+03, -6.8867220275e+03,
+              5.6564965471e+03, -1.2095625784e+04, -5.5019079037e+04,
+              3.2366887015e+04, -1.6578469042e+04
+        },
+        {
+             -1.0215944095e+03,  6.9126968305e+03, -6.9043035317e+03,
+              5.9731022851e+03, -1.3620258079e+04, -6.0375166022e+04,
+              3.6230169020e+04, -1.8023867365e+04
+        },
+        {
+             -9.7382135441e+02,  6.8590918938e+03, -7.0100656021e+03,
+              6.2883725079e+03, -1.4922443880e+04, -6.5840394699e+04,
+              3.9940274716e+04, -1.8665060613e+04
+        },
+        {
+             -1.0085862933e+03,  6.9725073170e+03, -7.1143574203e+03,
+              6.7730042357e+03, -1.6032792290e+04, -7.1306769761e+04,
+              4.3243614944e+04, -1.8411035768e+04
+        },
+        {
+             -1.0958872998e+03,  7.0289280572e+03, -7.1811526708e+03,
+              7.3956633871e+03, -1.6969792355e+04, -7.6642828728e+04,
+              4.5381892236e+04, -1.7591419721e+04
+        },
+        {
+             -1.0631750197e+03,  7.1358135075e+03, -7.3310491068e+03,
+              7.8931755991e+03, -1.7803640709e+04, -8.2096303624e+04,
+              4.6621594264e+04,  1.6671439196e+04
+        },
+        {
+             -1.0932365404e+03,  7.1945028886e+03, -7.6004338418e+03,
+              8.3719916807e+03, -1.8547854880e+04, -8.7463888164e+04,
+              4.6506842971e+04,  1.5846945984e+04
+        },
+        {
+             -1.0888445947e+03,  7.2627525107e+03, -7.7373225028e+03,
+              8.9730223253e+03, -1.9181020445e+04, -9.2607855590e+04,
+             -4.5529935565e+04,  1.5913119236e+04
+        },
+        {
+             -1.1320588734e+03,  7.3722594081e+03, -7.9140327053e+03,
+              9.5606397135e+03, -1.9743287889e+04, -9.6926253941e+04,
+             -4.3712636258e+04,  1.6633718934e+04
+        },
+        {
+             -1.0502336983e+03,  7.3856577636e+03, -8.2537816479e+03,
+              9.9701724918e+03, -2.0306688401e+04, -1.0028762435e+05,
+             -4.1785373949e+04,  1.8559318584e+04
+        },
+        {
+             -1.1074107133e+03, -7.4602918647e+03, -8.6263110543e+03,
+              1.0359707757e+04, -2.0849614059e+04, -1.0211987964e+05,
+             -4.0020508867e+04,  2.1288492616e+04
+        },
+        {
+             -1.1081929314e+03, -7.5376715633e+03, -8.8030730180e+03,
+              1.0877159745e+04, -2.1396871001e+04, -1.0260627347e+05,
+             -3.9400382352e+04,  2.7182430771e+04
+        },
+        {
+              1.3087228891e+03,  7.7643245575e+03, -8.8047981446e+03,
+              1.1425305881e+04, -2.1976322915e+04, -1.0185046721e+05,
+             -4.0225202329e+04,  3.2260199431e+04
+        },
+        {
+             -1.2214097999e+03,  7.8110756284e+03, -8.9266066393e+03,
+              1.1842126861e+04, -2.2597830289e+04, -1.0013339282e+05,
+             -4.2365384945e+04,  3.6926849224e+04
+        },
+        {
+             -1.2688710293e+03,  7.9550975514e+03, -9.2361626305e+03,
+              1.2131032155e+04, -2.3238665995e+04, -9.8047723113e+04,
+             -4.5553712008e+04,  4.1673611547e+04
+        },
+        {
+             -1.2355952559e+03, -7.9386289001e+03, -9.6042538532e+03,
+              1.2338403313e+04, -2.3878756709e+04, -9.6217479534e+04,
+             -4.9416922920e+04,  4.6119970853e+04
+        },
+        {
+             -1.3038238813e+03, -7.9732827637e+03, -9.9228307728e+03,
+              1.2532061532e+04, -2.4456635116e+04, -9.4965129289e+04,
+             -5.3651792254e+04,  4.9033551045e+04
+        },
+        {
+             -1.2318785073e+03, -7.9313605573e+03, -1.0142008278e+04,
+              1.2739007533e+04, -2.4985860976e+04, -9.4539005759e+04,
+             -5.7817974026e+04, -5.1010896679e+04
+        },
+        {
+             -1.2702979512e+03, -8.0221758148e+03, -1.0245559905e+04,
+              1.2885065505e+04, -2.5443786778e+04, -9.5076708338e+04,
+             -6.1976153069e+04, -5.2061380224e+04
+        },
+        {
+              1.1990678591e+03, -8.0147640646e+03, -1.0290409922e+04,
+              1.3005887230e+04, -2.5780706384e+04, -9.6148945283e+04,
+             -6.5745332768e+04, -5.2423508786e+04
+        },
+        {
+             -1.1409350983e+03, -8.0118363774e+03, -1.0286368271e+04,
+              1.3072016548e+04, -2.6030911168e+04, -9.7655478281e+04,
+             -6.9172132952e+04, -5.1915125920e+04
+        },
+        {
+              1.2306692120e+03,  8.1494671880e+03, -1.0226542017e+04,
+              1.3041955656e+04, -2.6183889898e+04, -9.9118904247e+04,
+              7.3437131964e+04, -5.0436075639e+04
+        },
+        {
+             -1.3207334957e+03, -8.0487755616e+03, -1.0148161221e+04,
+              1.3049401201e+04, -2.6258344783e+04, -1.0006478639e+05,
+              7.7615059406e+04, -4.8225875144e+04
+        },
+        {
+             -1.3906073345e+03, -8.0092123591e+03, -9.9990626586e+03,
+              1.2978130674e+04, -2.6216643671e+04, -1.0033423393e+05,
+              8.1924097735e+04, -4.5555341008e+04
+        },
+        {
+             -1.3419366779e+03, -7.7847726837e+03, -9.7667860826e+03,
+              1.2892289969e+04, -2.6090660329e+04, -9.9687914665e+04,
+              8.5922041389e+04, -4.2361482579e+04
+        },
+        {
+             -1.4757574098e+03, -7.9121112486e+03, -9.5509418371e+03,
+              1.2690189385e+04, -2.5857359843e+04, -9.7903714504e+04,
+              8.9018536160e+04, -3.8801171395e+04
+        },
+        {
+             -1.4608548706e+03,  7.8587525279e+03, -9.3641787560e+03,
+              1.2465559227e+04, -2.5544179776e+04, -9.5169209601e+04,
+              9.1441488937e+04, -3.6323217367e+04
+        },
+        {
+             -1.4156270470e+03, -7.8465936878e+03, -9.2207846315e+03,
+              1.2168527925e+04, -2.5116458864e+04, -9.1724548761e+04,
+              9.2205914994e+04, -3.4394197614e+04
+        },
+        {
+             -1.3768876510e+03, -7.6986715878e+03, -9.0480973927e+03,
+              1.1826480296e+04, -2.4582213313e+04, -8.7883348922e+04,
+              9.0911196987e+04,  3.3299898060e+04
+        },
+        {
+             -1.2396043239e+03, -7.5717072987e+03, -8.8401174822e+03,
+              1.1466166360e+04, -2.3917062217e+04, -8.3678303248e+04,
+              8.7309965699e+04,  3.0334949998e+04
+        },
+        {
+             -1.1322691604e+03,  7.5056256023e+03, -8.5935992273e+03,
+              1.1075600490e+04, -2.3131046054e+04, -7.9504993602e+04,
+              8.1940762899e+04, -2.5331111187e+04
+        },
+        {
+             -1.1279913357e+03,  7.5331896520e+03, -8.3192810118e+03,
+              1.0689170342e+04, -2.2221422172e+04, -7.5360819170e+04,
+              7.5163807577e+04, -2.3060598202e+04
+        },
+        {
+             -1.0213381620e+03,  7.4046877174e+03, -8.0497647934e+03,
+              1.0270252407e+04, -2.1160707622e+04, -7.1096544010e+04,
+              6.8053976042e+04, -2.0574902456e+04
+        },
+        {
+             -1.0602783751e+03,  7.2881909976e+03, -7.8291360594e+03,
+              9.8060412869e+03, -2.0003695660e+04, -6.6874220863e+04,
+              6.1072522041e+04, -1.7864863044e+04
+        }
+    },
+    {
+        {
+             -1.0466961470e+03,  7.6161378165e+03, -7.9247468481e+03,
+              1.0026411295e+04,  1.8037259498e+04, -6.9942351481e+04,
+              4.9155636710e+04, -1.6235198534e+04
+        },
+        {
+              1.0118981926e+03,  7.4563914974e+03, -7.7063691124e+03,
+              9.4883862697e+03,  1.7008675828e+04, -6.5487243166e+04,
+              4.7587066265e+04, -1.3617873157e+04
+        },
+        {
+             -1.0277140913e+03,  7.3892382785e+03, -7.5266346253e+03,
+              9.1151920008e+03,  1.6014209815e+04, -6.0485703979e+04,
+              4.3247720975e+04, -1.1596087283e+04
+        },
+        {
+             -1.0850257378e+03,  7.3679900176e+03, -7.3480026045e+03,
+              8.7518871943e+03,  1.5025367681e+04, -5.5999388767e+04,
+              3.8966211990e+04, -9.8254687967e+03
+        },
+        {
+             -1.0802457922e+03,  7.2286397534e+03, -7.2294094668e+03,
+              8.3970145902e+03,  1.4061863250e+04, -5.2285398954e+04,
+              3.4744018805e+04, -8.4518936363e+03
+        },
+        {
+             -1.1428630677e+03,  7.2177563293e+03, -7.1245295848e+03,
+              8.0730054138e+03,  1.3138454780e+04, -4.9185735296e+04,
+              3.0595105975e+04, -7.1291591919e+03
+        },
+        {
+             -1.0410315407e+03,  7.1739137604e+03, -7.0444394141e+03,
+              7.7702383921e+03,  1.2255454284e+04, -4.6376903356e+04,
+              2.6594715277e+04,  6.0724453469e+03
+        },
+        {
+             -1.0357268117e+03,  7.0778557316e+03, -6.9358763136e+03,
+              7.5212077660e+03,  1.1413003616e+04, -4.3567142286e+04,
+              2.2888804462e+04,  5.3382933887e+03
+        },
+        {
+             -9.6617401379e+02,  7.0543937770e+03, -6.9219565612e+03,
+              7.3295806110e+03,  1.0636325436e+04, -4.0484956741e+04,
+              2.0011421455e+04,  4.7369053059e+03
+        },
+        {
+              9.3287448626e+02,  7.0941163248e+03, -6.8911583177e+03,
+              7.1744407160e+03,  9.9342923569e+03, -3.7159807396e+04,
+              1.8262316028e+04,  4.2904636139e+03
+        },
+        {
+              9.6981342688e+02,  7.0433840314e+03, -6.8814081183e+03,
+              7.0831458502e+03,  9.3422967633e+03, -3.3829221327e+04,
+              1.7177191506e+04, -3.9760460472e+03
+        },
+        {
+             -9.9927985971e+02,  7.0208809549e+03, -6.8900290590e+03,
+              7.0479550449e+03,  8.8970939528e+03, -3.0738458664e+04,
+              1.5624464179e+04, -3.7651273740e+03
+        },
+        {
+             -9.9956837819e+02,  6.9832000451e+03, -6.9180210004e+03,
+              7.0694814965e+03,  8.6462367669e+03, -2.8254024472e+04,
+              1.2763276945e+04, -3.4284233934e+03
+        },
+        {
+             -1.0519849500e+03,  6.9845341920e+03, -6.9396157636e+03,
+              7.1079986287e+03,  8.6015457291e+03, -2.6639850713e+04,
+             -9.4949738192e+03, -3.9213989073e+03
+        },
+        {
+             -1.1219892847e+03,  6.9768190891e+03, -6.9671504075e+03,
+              7.1613191805e+03,  8.7148380202e+03, -2.6016345683e+04,
+             -7.6590657464e+03,  4.0163966709e+03
+        },
+        {
+             -1.1408305399e+03,  6.9952688080e+03, -6.9983035258e+03,
+              7.2241585706e+03,  8.9257391010e+03, -2.6008277273e+04,
+              1.0501960930e+04,  2.4449941860e+03
+        },
+        {
+             -1.1585169355e+03,  6.9910478596e+03, -7.0033051550e+03,
+              7.2755151681e+03,  9.1511988034e+03, -2.5948589224e+04,
+              1.3418397253e+04,  2.7792148626e+03
+        },
+        {
+             -1.1422997466e+03,  6.9782689916e+03, -7.0397103224e+03,
+              7.3083716051e+03,  9.2728973831e+03, -2.5092608987e+04,
+              1.4222699376e+04,  2.7163066442e+03
+        },
+        {
+             -1.1444012129e+03,  6.9906320998e+03, -7.0550184480e+03,
+              7.2936030639e+03,  9.2390951702e+03, -2.2956173526e+04,
+              1.2562076522e+04, -2.7261875699e+03
+        },
+        {
+             -1.0610171278e+03,  6.8781705349e+03, -7.0488516703e+03,
+              7.2794849534e+03,  8.9969749136e+03, -1.9625718130e+04,
+             -9.2269983016e+03, -3.5523890495e+03
+        },
+        {
+             -1.0610800896e+03,  6.9070260015e+03, -7.0354680671e+03,
+              7.1839877440e+03,  8.5461921783e+03, -1.5961116597e+04,
+             -6.3468235099e+03,  3.6425969777e+03
+        },
+        {
+             -1.1740548150e+03,  6.8096863022e+03, -7.0628164103e+03,
+              7.0351097553e+03,  7.8973247425e+03, -1.4106317272e+04,
+             -7.2895946594e+03,  3.0129734197e+03
+        },
+        {
+             -1.2260337844e+03,  7.0252959565e+03, -6.9829615547e+03,
+              6.8928410361e+03,  7.1240911427e+03, -1.5913708291e+04,
+             -9.0250485540e+03, -3.9347458761e+03
+        },
+        {
+             -1.1272584786e+03,  6.9240056589e+03, -6.9944021812e+03,
+              6.7013175125e+03,  6.3730556869e+03, -2.0293658373e+04,
+             -1.0715175187e+04, -4.8699923182e+03
+        },
+        {
+             -1.1154066743e+03,  6.9456549203e+03, -6.9460287113e+03,
+              6.5128365867e+03,  5.8380078901e+03,  2.6238841644e+04,
+             -1.2365600491e+04, -5.8258592860e+03
+        },
+        {
+             -1.1062580238e+03,  6.8914389312e+03, -6.9161127537e+03,
+              6.3364250951e+03,  5.7208580899e+03,  3.1425425062e+04,
+              1.4302325622e+04, -6.8632748855e+03
+        },
+        {
+             -1.1862126573e+03,  6.9787573378e+03, -6.8767788339e+03,
+              6.1828714769e+03,  6.1066300413e+03,  3.5216533537e+04,
+              1.6446703836e+04, -8.0172411304e+03
+        },
+        {
+             -1.1315215153e+03,  6.9626210990e+03, -6.8754630850e+03,
+              6.0161126438e+03,  6.9298707888e+03,  3.7826908596e+04,
+              1.8677020426e+04, -9.1822864088e+03
+        },
+        {
+             -1.1883081338e+03,  6.9878757027e+03, -6.8687128042e+03,
+              5.9185746213e+03,  8.0165514255e+03, -4.0570016996e+04,
+             -2.1113922362e+04, -1.0419863159e+04
+        },
+        {
+             -1.2260370657e+03,  7.0131345287e+03, -6.8234389151e+03,
+              5.9784909875e+03,  9.2327067948e+03, -4.3880464854e+04,
+             -2.3919097369e+04,  1.1708847925e+04
+        },
+        {
+             -1.2190034507e+03,  7.0903688288e+03, -6.7708539976e+03,
+              6.1572576757e+03, -1.0505310988e+04, -4.7563570827e+04,
+             -2.6851455415e+04,  1.3141048148e+04
+        },
+        {
+             -1.1894569882e+03,  7.0868033413e+03, -6.7969282889e+03,
+              6.3342642773e+03, -1.1999424987e+04, -5.1657312468e+04,
+              2.9969385665e+04,  1.4674950327e+04
+        },
+        {
+             -1.1295451346e+03,  7.1097494750e+03, -6.8975701854e+03,
+              6.4848343098e+03, -1.3413800470e+04, -5.5947818844e+04,
+              3.3264199031e+04,  1.5816236385e+04
+        },
+        {
+             -1.1171347787e+03,  7.1403713299e+03, -6.9677358820e+03,
+              6.7844240830e+03, -1.4709280476e+04, -6.0310957943e+04,
+              3.6427658683e+04,  1.6837404479e+04
+        },
+        {
+             -1.0644371892e+03,  7.2017430980e+03, -6.9887631739e+03,
+              7.2624735212e+03, -1.5870085435e+04, -6.4628039373e+04,
+              3.9240371760e+04,  1.7293591835e+04
+        },
+        {
+             -1.0688314836e+03,  7.2729891148e+03, -7.0600463026e+03,
+              7.7411166314e+03, -1.6944249944e+04, -6.8853183009e+04,
+              4.1478276074e+04,  1.7132454743e+04
+        },
+        {
+              1.0720576713e+03,  7.3218131959e+03, -7.2424942053e+03,
+              8.0916949078e+03, -1.7953463702e+04, -7.3054766281e+04,
+              4.3119328973e+04,  1.6807000834e+04
+        },
+        {
+             -1.0554007481e+03,  7.3630704907e+03, -7.4745235866e+03,
+              8.4730313224e+03, -1.8884216668e+04, -7.6941217027e+04,
+              4.3607880621e+04,  1.5955489762e+04
+        },
+        {
+             -1.0793097433e+03,  7.4325634213e+03, -7.5627412004e+03,
+              8.9851469220e+03, -1.9678298556e+04, -8.0737339485e+04,
+             -4.3908043265e+04,  1.5263700047e+04
+        },
+        {
+             -1.0733020009e+03,  7.5519770011e+03, -7.7163748954e+03,
+              9.4956159944e+03, -2.0383847600e+04, -8.4223568840e+04,
+             -4.3758999203e+04,  1.4678613321e+04
+        },
+        {
+             -1.1007943521e+03,  7.6343496245e+03, -8.0005677634e+03,
+              9.8561994193e+03, -2.1037363093e+04, -8.7313404883e+04,
+             -4.3060009624e+04,  1.4690518333e+04
+        },
+        {
+              1.0612802972e+03,  7.6409336432e+03, -8.3100059894e+03,
+              1.0247745628e+04, -2.1616322358e+04, -8.9923553788e+04,
+             -4.2068574826e+04,  1.5384354533e+04
+        },
+        {
+             -1.0648154479e+03,  7.7884300143e+03, -8.4212696822e+03,
+              1.0746224415e+04, -2.2117978554e+04, -9.1987980114e+04,
+             -4.0823093570e+04,  1.7374875225e+04
+        },
+        {
+             -1.1994834161e+03,  7.9515854593e+03, -8.4575793382e+03,
+              1.1267592507e+04, -2.2578442753e+04, -9.3499623842e+04,
+             -3.9638515722e+04,  1.9780945529e+04
+        },
+        {
+             -1.2037915258e+03,  8.0547073398e+03, -8.7062443374e+03,
+              1.1646924499e+04, -2.3036174217e+04, -9.4413634105e+04,
+             -3.8923390393e+04,  2.6882687847e+04
+        },
+        {
+             -1.2158776375e+03,  8.0827636775e+03, -9.1856850066e+03,
+              1.1898789875e+04, -2.3458301696e+04, -9.4768245755e+04,
+             -3.8787548823e+04,  3.4263661294e+04
+        },
+        {
+             -1.0872414948e+03,  8.0437087370e+03, -9.6575837745e+03,
+              1.2164665324e+04, -2.3861523666e+04, -9.4598139160e+04,
+             -3.9479105119e+04,  4.0700058643e+04
+        },
+        {
+             -1.2549536854e+03,  8.1929926626e+03, -9.9111765830e+03,
+              1.2504320336e+04, -2.4256134984e+04, -9.4180810382e+04,
+             -4.1020567382e+04,  4.6270876286e+04
+        },
+        {
+             -1.2288874599e+03,  8.2184843473e+03, -9.9213221960e+03,
+              1.2863270509e+04, -2.4676722453e+04, -9.3688038528e+04,
+             -4.3326344567e+04,  5.0561179943e+04
+        },
+        {
+             -1.2915895305e+03,  8.3298572143e+03, -9.7986365211e+03,
+              1.3204194759e+04, -2.5099975321e+04, -9.3209901950e+04,
+             -4.6163359004e+04,  5.3535586348e+04
+        },
+        {
+             -1.4037376031e+03,  8.5043449609e+03, -9.7392873167e+03,
+              1.3472723092e+04, -2.5491968615e+04, -9.2887352852e+04,
+             -4.9570936535e+04,  5.4788992645e+04
+        },
+        {
+             -1.4404165600e+03,  8.6135359841e+03, -9.7481887098e+03,
+              1.3699475240e+04, -2.5827559704e+04, -9.2800242940e+04,
+             -5.3091561475e+04,  5.5179217554e+04
+        },
+        {
+             -1.4213127667e+03,  8.6664991581e+03, -9.8179021643e+03,
+              1.3858946220e+04, -2.6099262918e+04, -9.3069160555e+04,
+             -5.6869173242e+04,  5.4777270236e+04
+        },
+        {
+             -1.4308970299e+03,  8.6803541170e+03, -9.8999481606e+03,
+              1.3977573302e+04, -2.6305616830e+04, -9.3654091436e+04,
+             -6.0441180496e+04,  5.4646120339e+04
+        },
+        {
+             -1.4241857484e+03,  8.6921488853e+03, -9.9832795059e+03,
+              1.4055574031e+04, -2.6456958563e+04, -9.4472789780e+04,
+             -6.4088595221e+04,  5.4016259658e+04
+        },
+        {
+             -1.3751877830e+03,  8.7097561062e+03, -1.0029462814e+04,
+              1.4113015694e+04, -2.6551857335e+04, -9.5562235151e+04,
+             -6.7462016899e+04,  5.2584381266e+04
+        },
+        {
+             -1.4101670718e+03,  8.6969313957e+03, -1.0050039345e+04,
+              1.4121462063e+04, -2.6567295621e+04, -9.6634130344e+04,
+              7.1112484933e+04,  5.1157642368e+04
+        },
+        {
+             -1.4330338606e+03,  8.6621127755e+03, -1.0050543325e+04,
+              1.4100712869e+04, -2.6537120896e+04, -9.7596330454e+04,
+              7.5567885223e+04,  4.8569072453e+04
+        },
+        {
+             -1.5289162482e+03,  8.7060971398e+03, -1.0071051366e+04,
+              1.4029432499e+04, -2.6440015400e+04, -9.8214493214e+04,
+              7.9945857374e+04, -4.6365908587e+04
+        },
+        {
+             -1.5295770631e+03,  8.6352525153e+03, -1.0120618955e+04,
+              1.3902433741e+04,  2.6288175911e+04, -9.8497912545e+04,
+              8.4023325535e+04,  4.4531239241e+04
+        },
+        {
+             -1.3707549164e+03,  8.3920705686e+03, -1.0198608040e+04,
+              1.3762760913e+04,  2.6069101984e+04, -9.8323189937e+04,
+              8.7404779829e+04,  4.2969802007e+04
+        },
+        {
+             -1.3321408200e+03,  8.3144135940e+03, -1.0251511211e+04,
+              1.3562770768e+04,  2.5814210321e+04, -9.7651251088e+04,
+              8.9581029562e+04,  4.1324848370e+04
+        },
+        {
+             -1.2913795290e+03,  8.2668126084e+03, -1.0199668408e+04,
+              1.3324751808e+04,  2.5464666530e+04, -9.6703088008e+04,
+              9.0321895238e+04,  3.9388715775e+04
+        },
+        {
+             -1.2722540054e+03,  8.1944145030e+03, -1.0009092578e+04,
+              1.3092171394e+04,  2.5040166308e+04, -9.5360528600e+04,
+              8.8797389437e+04, -3.7797286159e+04
+        },
+        {
+             -1.2989032449e+03,  8.1699168948e+03, -9.6797693518e+03,
+              1.2853153122e+04,  2.4507001916e+04, -9.4054967835e+04,
+              8.6440606055e+04, -3.6952468507e+04
+        },
+        {
+             -1.2727206154e+03,  8.1047299493e+03, -9.3200306509e+03,
+              1.2603828431e+04,  2.3876988768e+04, -9.2604573208e+04,
+              8.2564574016e+04, -3.5772842176e+04
+        },
+        {
+             -1.2100126747e+03,  8.0917497418e+03, -9.1107740521e+03,
+              1.2286569737e+04,  2.3191983066e+04, -9.1007619461e+04,
+              7.7574985531e+04, -3.3971833335e+04
+        },
+        {
+             -1.1703895427e+03,  7.9446068809e+03, -8.9980352297e+03,
+              1.1936629650e+04,  2.2464555855e+04, -8.9031434223e+04,
+              7.2146730734e+04, -3.1912411341e+04
+        },
+        {
+             -1.1990915627e+03,  7.8409996824e+03, -8.8651958950e+03,
+              1.1500192570e+04,  2.1713465932e+04, -8.6510665412e+04,
+              6.6923423519e+04, -2.8918725935e+04
+        },
+        {
+             -1.2164503062e+03,  7.8039826925e+03, -8.6352007219e+03,
+              1.1129803365e+04,  2.0870204381e+04, -8.3349094537e+04,
+              6.1992782871e+04, -2.5666754401e+04
+        },
+        {
+             -1.1601227300e+03,  7.6902182251e+03, -8.3328312431e+03,
+              1.0797077831e+04,  1.9922103220e+04, -7.9410520372e+04,
+              5.7432753116e+04, -2.2563245661e+04
+        },
+        {
+             -1.1042262833e+03,  7.6968473571e+03, -8.0883556452e+03,
+              1.0422274837e+04,  1.8965476272e+04, -7.4806144303e+04,
+              5.3242116512e+04, -1.9223934595e+04
+        }
+    },
+    {
+        {
+             -1.3098800479e+03,  7.7297444979e+03, -8.3426351780e+03,
+              1.0059355738e+04,  1.5630338583e+04,  8.2218945234e+04,
+              4.7657993942e+04,  1.5576155084e+04
+        },
+        {
+             -1.1734368682e+03,  7.6029152923e+03, -8.2208617690e+03,
+              9.5957816676e+03,  1.4731411014e+04,  7.4272347392e+04,
+              4.2527645424e+04,  1.3394355999e+04
+        },
+        {
+             -1.2201659125e+03,  7.5255951680e+03, -8.0386647376e+03,
+              9.2396326555e+03,  1.3780724390e+04,  6.7252981624e+04,
+              3.8140484979e+04,  1.1406148361e+04
+        },
+        {
+             -1.1576836656e+03,  7.4870769685e+03, -7.8135416066e+03,
+              8.9766760558e+03,  1.2804390361e+04,  6.0805027694e+04,
+              3.3664466933e+04,  9.8791560076e+03
+        },
+        {
+             -1.2686247400e+03,  7.4845040522e+03, -7.6414442196e+03,
+              8.6944465769e+03,  1.1894383944e+04,  5.5293488543e+04,
+              2.9577882071e+04,  8.4331927237e+03
+        },
+        {
+             -1.2475820761e+03,  7.3801715153e+03, -7.5378380270e+03,
+              8.4014855521e+03,  1.1071930940e+04,  5.0839924735e+04,
+              2.6077698698e+04,  7.1556193963e+03
+        },
+        {
+             -1.1833411421e+03,  7.2890900943e+03, -7.4429668194e+03,
+              8.1918027096e+03,  1.0320840783e+04,  4.7298904527e+04,
+              2.3260175633e+04,  5.8693078598e+03
+        },
+        {
+             -1.1448003304e+03,  7.2855729684e+03, -7.3213284272e+03,
+              8.0517080715e+03,  9.6681912135e+03,  4.4196332903e+04,
+              2.0970525911e+04,  4.7096149628e+03
+        },
+        {
+             -1.0549336729e+03,  7.1970164053e+03, -7.2664317931e+03,
+              7.9216993134e+03,  9.2023857706e+03,  4.1004014932e+04,
+              1.9261070974e+04,  3.8331730756e+03
+        },
+        {
+             -1.0349934157e+03,  7.2270744362e+03, -7.2052407793e+03,
+              7.8275150698e+03,  8.9194776267e+03,  3.7220817100e+04,
+              1.8421612436e+04,  3.2235004827e+03
+        },
+        {
+             -1.0543497445e+03,  7.2129370620e+03, -7.1489558725e+03,
+              7.8175963365e+03,  8.8382352888e+03,  3.2695489011e+04,
+              1.8324709436e+04,  2.7722754813e+03
+        },
+        {
+             -1.0351798882e+03,  7.1425984997e+03, -7.1245882386e+03,
+              7.8294179297e+03,  8.9671324328e+03, -2.8079717424e+04,
+              1.7641916242e+04,  2.3422420666e+03
+        },
+        {
+             -1.0303107465e+03,  7.1114335674e+03, -7.1419375602e+03,
+              7.8502595731e+03,  9.2832591608e+03, -2.4086688580e+04,
+              1.5489425944e+04,  2.4614760873e+03
+        },
+        {
+             -1.0911824540e+03,  7.1275017001e+03, -7.1237124719e+03,
+              7.9131887238e+03,  9.7234473870e+03, -2.1291462952e+04,
+              1.2492253369e+04, -2.4418509479e+03
+        },
+        {
+             -1.0445229400e+03,  7.0766413487e+03, -7.1338953327e+03,
+              7.9776712898e+03,  1.0209595206e+04, -2.0918845449e+04,
+              1.0806760050e+04, -2.4546973491e+03
+        },
+        {
+             -1.0797274009e+03,  7.0948725869e+03, -7.1313836697e+03,
+              8.0230518272e+03,  1.0677590650e+04, -2.3009664470e+04,
+              1.0983516729e+04, -1.1698237830e+03
+        },
+        {
+             -1.0939608432e+03,  7.0912854610e+03, -7.1284701875e+03,
+              8.0704141122e+03,  1.1034376723e+04, -2.5947432360e+04,
+              1.0718940911e+04, -3.5244621299e+03
+        },
+        {
+             -1.1599641366e+03,  7.0464774589e+03, -7.1149435477e+03,
+              8.0677100044e+03,  1.1231960899e+04, -2.7801386385e+04,
+             -9.1912538597e+03, -3.8978566584e+03
+        },
+        {
+             -1.1886397393e+03,  7.0604463613e+03, -7.1516947823e+03,
+              8.0476236290e+03,  1.1214262511e+04, -2.7279621203e+04,
+             -5.7144947703e+03, -3.5096642051e+03
+        },
+        {
+             -1.2424528713e+03,  7.0713357332e+03, -7.1342609922e+03,
+              7.9892565903e+03,  1.0955159979e+04, -2.3777380097e+04,
+             -5.1154506406e+03, -4.4961976537e+03
+        },
+        {
+             -1.2432170026e+03,  7.0678370070e+03, -7.1174869055e+03,
+              7.8821598947e+03,  1.0452921329e+04,  1.7882364014e+04,
+              5.7924541112e+03,  3.8884850439e+03
+        },
+        {
+             -1.2359057340e+03,  7.0863609922e+03, -7.1049480583e+03,
+              7.7385476804e+03,  9.7255267501e+03,  1.0538204464e+04,
+             -9.7449830976e+03,  2.8312217921e+03
+        },
+        {
+             -1.2418064338e+03,  7.0478830655e+03, -7.0932589318e+03,
+              7.5394243561e+03,  8.8426555974e+03,  8.0665031066e+03,
+             -1.1618704719e+04, -3.2191655003e+03
+        },
+        {
+             -1.2372806186e+03,  7.0951273424e+03, -7.0567648283e+03,
+              7.3441218087e+03,  7.9094178968e+03, -1.3065293639e+04,
+             -1.0726881969e+04,  3.6216649295e+03
+        },
+        {
+             -1.1713849387e+03,  7.0698731568e+03, -7.0262514669e+03,
+              7.1354835255e+03,  7.1012470898e+03,  2.0400956563e+04,
+             -1.0271126288e+04,  4.3298657654e+03
+        },
+        {
+             -1.1869645470e+03,  7.0667752934e+03, -6.9833645352e+03,
+              6.9672800700e+03,  6.6008500992e+03,  2.7525108180e+04,
+             -1.1775260557e+04, -4.9107429972e+03
+        },
+        {
+             -1.1469666511e+03,  7.1215274349e+03, -6.9584804226e+03,
+              6.7905382547e+03,  6.5824143478e+03,  3.2467170502e+04,
+              1.3936483783e+04, -5.8658288686e+03
+        },
+        {
+             -1.1516313123e+03,  7.0859984914e+03, -6.9596780271e+03,
+              6.6076068230e+03,  7.0573671974e+03,  3.5398195795e+04,
+              1.6263260964e+04, -6.9368256543e+03
+        },
+        {
+             -1.1721492165e+03,  7.1063853285e+03, -6.9592631493e+03,
+              6.5147954739e+03,  7.9042527851e+03,  3.7073084548e+04,
+              1.8582314580e+04,  7.9945020174e+03
+        },
+        {
+             -1.1756186277e+03,  7.1511300546e+03, -6.9344319149e+03,
+              6.5666285567e+03,  8.9395441067e+03, -3.9310421437e+04,
+              2.1127932633e+04,  9.0593691647e+03
+        },
+        {
+             -1.2245307290e+03,  7.1938964491e+03, -6.9045057575e+03,
+              6.7199457830e+03,  1.0072751124e+04, -4.2248977610e+04,
+              2.3865271363e+04,  1.0128325450e+04
+        },
+        {
+             -1.2185828181e+03,  7.2117721669e+03, -6.9987212291e+03,
+              6.8220847908e+03,  1.1309975664e+04, -4.5647453921e+04,
+              2.6461184048e+04,  1.1219090429e+04
+        },
+        {
+             -1.1536829370e+03,  7.3045882898e+03, -7.1100729317e+03,
+              6.9543055609e+03,  1.2568690843e+04, -4.9416434532e+04,
+              2.8889479884e+04,  1.2134753538e+04
+        },
+        {
+             -1.0989605703e+03,  7.2838068056e+03, -7.1607470441e+03,
+              7.3102248851e+03,  1.3712820608e+04, -5.3331720100e+04,
+              3.1285004620e+04,  1.2965355649e+04
+        },
+        {
+             -1.1115492598e+03,  7.3733512922e+03, -7.1795339637e+03,
+              7.7904838882e+03, -1.4789098958e+04, -5.7230607218e+04,
+              3.3639429150e+04,  1.3329509685e+04
+        },
+        {
+             -1.0915368019e+03,  7.4135660630e+03, -7.3477049506e+03,
+              8.1280300063e+03, -1.5983567936e+04, -6.0989906467e+04,
+              3.5912453921e+04, -1.4065927625e+04
+        },
+        {
+             -1.1449633335e+03,  7.5107708600e+03, -7.6109515571e+03,
+              8.4311240017e+03, -1.7118614818e+04, -6.4445841707e+04,
+              3.7808077389e+04, -1.4471736356e+04
+        },
+        {
+             -1.1764335481e+03,  7.5313269266e+03, -7.7320488398e+03,
+              8.9104729454e+03, -1.8128276988e+04, -6.7587403478e+04,
+              3.9520881262e+04, -1.4368788061e+04
+        },
+        {
+             -1.2464145817e+03,  7.6335117770e+03, -7.8279473811e+03,
+              9.4597886832e+03, -1.9060155840e+04, -7.0418723097e+04,
+              4.0955046967e+04, -1.2712632088e+04
+        },
+        {
+             -1.2372155227e+03,  7.6810584101e+03, -8.0929883794e+03,
+              9.8687056181e+03, -1.9940944248e+04, -7.2831602948e+04,
+              4.1981582611e+04,  1.2376035205e+04
+        },
+        {
+             -1.2963231325e+03,  7.7818947093e+03, -8.4304316874e+03,
+              1.0245275564e+04, -2.0766645142e+04, -7.4856860301e+04,
+              4.2639379699e+04,  1.1970310740e+04
+        },
+        {
+             -1.3441913805e+03,  7.8625203980e+03, -8.5914323148e+03,
+              1.0741889699e+04, -2.1493534076e+04, -7.6437536904e+04,
+              4.2764999666e+04,  1.2557020784e+04
+        },
+        {
+             -1.4599941064e+03,  7.9920982874e+03, -8.6647990557e+03,
+              1.1267882208e+04, -2.2177010783e+04, -7.7627023973e+04,
+              4.2324730214e+04,  1.3973979610e+04
+        },
+        {
+             -1.3976118716e+03,  8.0619829398e+03, -8.9552392044e+03,
+              1.1660061043e+04, -2.2800044569e+04, -7.8510341310e+04,
+              4.1491719605e+04,  1.7021883690e+04
+        },
+        {
+             -1.4150448322e+03,  8.0707012328e+03, -9.4829464433e+03,
+              1.1976909034e+04, -2.3344770248e+04, -7.9188347054e+04,
+              4.0225327723e+04,  2.2050427010e+04
+        },
+        {
+             -1.4572085714e+03, -8.2070709739e+03, -9.9135216945e+03,
+              1.2317655640e+04,  2.3820263099e+04, -7.9755725337e+04,
+              3.8752120573e+04,  2.8912500319e+04
+        },
+        {
+             -1.4404360376e+03, -8.1787847999e+03, -9.9820808279e+03,
+              1.2728166635e+04,  2.4247935001e+04, -8.0340384486e+04,
+              3.7114686550e+04,  3.6453409946e+04
+        },
+        {
+             -1.7719785099e+03,  8.4922075439e+03, -9.8661326425e+03,
+              1.3142854390e+04, -2.4661910893e+04, -8.0931230518e+04,
+              3.5480241283e+04,  4.2873025057e+04
+        },
+        {
+             -1.6880581203e+03,  8.5907212142e+03, -9.7739006049e+03,
+              1.3477331470e+04, -2.5033837010e+04, -8.1627309323e+04,
+             -3.6236298578e+04,  4.7784390711e+04
+        },
+        {
+             -1.6917085092e+03,  8.6893906410e+03, -9.8972481286e+03,
+              1.3739531261e+04,  2.5348795155e+04, -8.2504895844e+04,
+             -3.7864933778e+04,  5.1269245841e+04
+        },
+        {
+             -1.6507947355e+03,  8.7248189885e+03, -1.0155577371e+04,
+              1.3955856570e+04,  2.5595191434e+04, -8.3572496653e+04,
+             -4.0333426934e+04,  5.3751511295e+04
+        },
+        {
+             -1.6156143338e+03,  8.6990647574e+03, -1.0492984905e+04,
+              1.4156724413e+04,  2.5760697403e+04, -8.4962391048e+04,
+             -4.3292069534e+04,  5.5031640898e+04
+        },
+        {
+             -1.5996017325e+03, -8.7248538676e+03, -1.0777265257e+04,
+              1.4317111270e+04,  2.5865669887e+04, -8.6627531128e+04,
+             -4.6323511437e+04,  5.5378915422e+04
+        },
+        {
+             -1.5534469913e+03, -8.6982690227e+03, -1.0993011100e+04,
+              1.4459309768e+04,  2.5921489941e+04, -8.8800900418e+04,
+             -5.0008316996e+04,  5.5237374952e+04
+        },
+        {
+             -1.4998649617e+03, -8.7030338000e+03, -1.1123296147e+04,
+              1.4535883379e+04,  2.5950855992e+04, -9.1192688376e+04,
+             -5.3451793354e+04,  5.4611777464e+04
+        },
+        {
+             -1.4914826483e+03, -8.6692280642e+03, -1.1122672495e+04,
+              1.4592880484e+04,  2.5935888651e+04, -9.3732634382e+04,
+             -5.6639595567e+04,  5.3436728053e+04
+        },
+        {
+             -1.5339853050e+03,  8.7794944817e+03, -1.1060125630e+04,
+              1.4568296337e+04,  2.5889341594e+04, -9.6457676781e+04,
+             -5.9700901473e+04,  5.1008510116e+04
+        },
+        {
+             -1.4688532709e+03,  8.8219839141e+03, -1.0897185545e+04,
+              1.4509289133e+04,  2.5796534866e+04, -9.9078138643e+04,
+             -6.2622869810e+04,  4.8731161485e+04
+        },
+        {
+             -1.4458899327e+03,  8.8820434366e+03, -1.0655075316e+04,
+              1.4412698858e+04,  2.5646976535e+04, -1.0150642980e+05,
+             -6.5543005014e+04,  4.7487403334e+04
+        },
+        {
+             -1.4096319413e+03,  8.8860920525e+03, -1.0431431173e+04,
+              1.4293391887e+04,  2.5416658146e+04, -1.0351208110e+05,
+             -6.8025094583e+04,  4.5993962722e+04
+        },
+        {
+             -1.3900364065e+03,  8.8529193761e+03, -1.0283520628e+04,
+              1.4130037341e+04,  2.5053272671e+04,  1.0513092364e+05,
+              7.0719812656e+04,  4.4014827994e+04
+        },
+        {
+             -1.3570064440e+03,  8.7428962646e+03, -1.0318363948e+04,
+              1.3923718047e+04,  2.4574673263e+04,  1.0697814159e+05,
+              7.3156180363e+04,  4.2294742048e+04
+        },
+        {
+             -1.2956826097e+03,  8.6068573167e+03, -1.0459133869e+04,
+              1.3658926082e+04,  2.4009440291e+04,  1.0832712940e+05,
+              7.5443772726e+04,  4.0849074302e+04
+        },
+        {
+             -1.3219920358e+03,  8.4148652556e+03, -1.0544135672e+04,
+              1.3348960189e+04,  2.3393250745e+04,  1.0915003488e+05,
+              7.7021434872e+04,  3.9233107331e+04
+        },
+        {
+             -1.3006258003e+03,  8.3233089576e+03, -1.0392418356e+04,
+              1.3004693521e+04,  2.2733243983e+04,  1.0968539071e+05,
+              7.7719988662e+04,  3.7123944422e+04
+        },
+        {
+             -1.3458276046e+03,  8.3469363506e+03, -9.9553360602e+03,
+              1.2704712219e+04,  2.1985610477e+04,  1.0983113272e+05,
+              7.6863736694e+04,  3.5433643821e+04
+        },
+        {
+             -1.3559893768e+03,  8.2952008985e+03, -9.5105231315e+03,
+              1.2407972224e+04,  2.1130854078e+04,  1.0926080965e+05,
+              7.4123965686e+04,  3.3270070942e+04
+        },
+        {
+             -1.3148790309e+03,  8.1596287480e+03, -9.3135443378e+03,
+              1.2047924833e+04,  2.0256682110e+04,  1.0773383880e+05,
+              7.0093036156e+04, -3.0350410925e+04
+        },
+        {
+             -1.3087720361e+03,  8.1035392598e+03, -9.3002159995e+03,
+              1.1556575576e+04,  1.9419601117e+04,  1.0497306231e+05,
+              6.5371655783e+04, -2.7853653815e+04
+        },
+        {
+             -1.2349667061e+03,  7.9266472821e+03, -9.2177538817e+03,
+              1.1085478400e+04,  1.8573838755e+04,  1.0087819642e+05,
+              6.0449326295e+04,  2.4745160899e+04
+        },
+        {
+             -1.2682655905e+03,  7.8223275489e+03, -8.8826956773e+03,
+              1.0739416080e+04,  1.7600712085e+04,  9.5463661704e+04,
+              5.5948695622e+04,  2.1419501344e+04
+        },
+        {
+             -1.2893056707e+03,  7.8014380703e+03, -8.5382715957e+03,
+              1.0444849235e+04,  1.6567399053e+04,  8.9005152378e+04,
+              5.1648338387e+04,  1.8435899549e+04
+        }
+    },
+    {
+        {
+             -1.4840827585e+03,  7.7901145332e+03, -8.7065384784e+03,
+              9.8959953866e+03,  1.3815147230e+04,  7.4417866638e+04,
+              4.6197135111e+04,  1.3319850213e+04
+        },
+        {
+             -1.3312386474e+03,  7.6253834402e+03, -8.6146891619e+03,
+              9.4304889119e+03,  1.2986532411e+04,  6.7712906973e+04,
+              4.1946865103e+04,  1.1463648382e+04
+        },
+        {
+             -1.3661590158e+03,  7.6181208073e+03, -8.4932139707e+03,
+              9.0673434773e+03,  1.2112988975e+04,  6.1727043209e+04,
+              3.8087814872e+04,  9.8062196592e+03
+        },
+        {
+             -1.3720159638e+03,  7.5819232580e+03, -8.2508971366e+03,
+              8.8561996068e+03,  1.1145796418e+04,  5.6201123171e+04,
+              3.3978530115e+04,  8.6093346987e+03
+        },
+        {
+             -1.3465663441e+03,  7.5061046614e+03, -8.0590263814e+03,
+              8.6678965098e+03,  1.0205744412e+04,  5.1379867038e+04,
+              2.9897054519e+04,  7.5094971951e+03
+        },
+        {
+             -1.3433845504e+03,  7.4172912448e+03, -7.9769359489e+03,
+              8.4254435355e+03,  9.3837188194e+03,  4.7539778002e+04,
+              2.6175764170e+04,  6.6285678112e+03
+        },
+        {
+             -1.3114583382e+03,  7.3858407395e+03, -7.8895511735e+03,
+              8.2532888017e+03,  8.6331414722e+03,  4.4777177122e+04,
+              2.2941829802e+04,  5.7083473321e+03
+        },
+        {
+             -1.2813118340e+03,  7.3030590862e+03, -7.7354253353e+03,
+              8.2109136889e+03,  8.0133377563e+03,  4.2762470232e+04,
+              2.0182368477e+04,  4.8463740395e+03
+        },
+        {
+             -1.3207321358e+03,  7.3279796344e+03, -7.6615957460e+03,
+              8.1694469590e+03,  7.6721437224e+03,  4.0803042464e+04,
+              1.7854932955e+04,  4.0542661565e+03
+        },
+        {
+             -1.2605732686e+03,  7.2204503425e+03, -7.6200478308e+03,
+              8.1203464858e+03,  7.6643498344e+03,  3.7980631654e+04,
+              1.6123326730e+04,  3.3137973075e+03
+        },
+        {
+             -1.2227185809e+03,  7.2363980769e+03, -7.5473466416e+03,
+              8.1465439503e+03,  7.9703115968e+03,  3.3606095569e+04,
+              1.5194389210e+04, -3.0120804079e+03
+        },
+        {
+             -1.1853235841e+03,  7.2232193329e+03, -7.5056958438e+03,
+              8.2066180779e+03,  8.5633708780e+03,  2.7445729224e+04,
+              1.5019838945e+04,  2.5670540815e+03
+        },
+        {
+             -1.2309776075e+03,  7.1915631193e+03, -7.4956489978e+03,
+              8.2472893707e+03,  9.3246539458e+03, -2.1113413200e+04,
+              1.5082129437e+04,  2.7409349467e+03
+        },
+        {
+             -1.1446283264e+03,  6.8530667944e+03, -7.5043582363e+03,
+              8.2971026047e+03,  1.0157953506e+04, -1.7641561716e+04,
+              1.4315670397e+04, -1.7796151724e+03
+        },
+        {
+             -1.1664813140e+03,  7.1449614291e+03, -7.4479231921e+03,
+              8.3859990530e+03,  1.0938465215e+04, -1.8790375897e+04,
+              1.2176422856e+04, -1.7880084101e+03
+        },
+        {
+             -1.0860646090e+03,  7.1348236272e+03, -7.4267656361e+03,
+              8.4349185004e+03,  1.1599636537e+04, -2.4791052262e+04,
+              1.0031448578e+04,  2.1777440768e+03
+        },
+        {
+             -1.0211785017e+03,  7.1232926036e+03, -7.4228036075e+03,
+              8.4431198732e+03,  1.2080431784e+04, -3.1623218001e+04,
+              1.1446469433e+04,  2.1079171279e+03
+        },
+        {
+             -1.0590058037e+03,  7.1067845567e+03, -7.3995393241e+03,
+              8.4442927423e+03,  1.2339226759e+04,  3.6426711071e+04,
+              1.4858407065e+04, -2.7330943667e+03
+        },
+        {
+             -1.0525905434e+03,  7.1241121106e+03, -7.3742773583e+03,
+              8.4120983988e+03,  1.2329559137e+04,  3.8146358432e+04,
+              1.5918085501e+04,  5.8766513863e+03
+        },
+        {
+             -1.0949162569e+03,  7.1000014058e+03, -7.3802695667e+03,
+              8.3281067443e+03,  1.2048324680e+04,  3.5922816385e+04,
+              1.3628751166e+04,  6.7545284301e+03
+        },
+        {
+             -1.1720448672e+03,  7.0958424718e+03, -7.3647555527e+03,
+              8.2274970959e+03,  1.1511858456e+04,  3.0001930779e+04,
+              1.0176784720e+04, -5.7187678313e+03
+        },
+        {
+             -1.1867007746e+03,  7.0892500795e+03, -7.3292575350e+03,
+              8.0743891264e+03,  1.0741899502e+04,  2.1206663553e+04,
+             -9.2332255344e+03,  4.4150725287e+03
+        },
+        {
+             -1.3109776546e+03,  7.1724919036e+03, -7.3145711799e+03,
+              7.8792856784e+03,  9.8005017222e+03,  1.1031154937e+04,
+             -1.2000158938e+04, -2.1729045930e+03
+        },
+        {
+             -1.3196039811e+03,  7.1620210667e+03, -7.2979841890e+03,
+              7.6690340110e+03,  8.7895846227e+03,  8.4093798491e+03,
+             -1.2594429473e+04, -3.5839546219e+03
+        },
+        {
+             -1.2478199933e+03,  7.0985634187e+03, -7.2614730514e+03,
+              7.4779146244e+03,  7.8539508217e+03, -1.4892198337e+04,
+              1.0606050885e+04, -4.0244574588e+03
+        },
+        {
+             -1.2095931054e+03,  7.1289109631e+03, -7.2175370306e+03,
+              7.3122657782e+03,  7.1613437399e+03,  2.2304660227e+04,
+              1.0556581796e+04,  4.0857041546e+03
+        },
+        {
+             -1.2589274429e+03,  7.1731537895e+03, -7.2123804400e+03,
+              7.1307145745e+03,  6.8823611289e+03,  2.8167297119e+04,
+              1.2538331129e+04, -4.8832980808e+03
+        },
+        {
+             -1.2163117104e+03,  7.1737445721e+03, -7.2082672841e+03,
+              6.9512727633e+03,  7.0974894170e+03,  3.1604756831e+04,
+              1.4780240813e+04, -5.7597062007e+03
+        },
+        {
+             -1.2081236764e+03,  7.1686855559e+03, -7.2264067557e+03,
+              6.8838626344e+03,  7.7233701944e+03,  3.3270738264e+04,
+              1.6720301638e+04, -6.4700089645e+03
+        },
+        {
+             -1.2695081439e+03,  7.2226205227e+03, -7.1897268169e+03,
+              6.9459686427e+03,  8.5889603331e+03, -3.4523992074e+04,
+              1.8606508130e+04, -7.1629005252e+03
+        },
+        {
+             -1.2375790992e+03,  7.1950458485e+03, -7.2199918253e+03,
+              7.0381598296e+03,  9.6296390937e+03, -3.6920684710e+04,
+              2.0481656770e+04, -7.8273350068e+03
+        },
+        {
+             -1.2982420940e+03,  7.2764417478e+03, -7.3275871890e+03,
+              7.1137846932e+03,  1.0782183396e+04, -3.9741320241e+04,
+              2.2278051774e+04, -8.5609872727e+03
+        },
+        {
+             -1.3507787445e+03,  7.2573220797e+03, -7.4181163461e+03,
+              7.3265960230e+03,  1.1948176379e+04, -4.2940344607e+04,
+              2.4122665975e+04, -9.2017130212e+03
+        },
+        {
+             -1.4060536788e+03,  7.3096423704e+03, -7.4328425214e+03,
+              7.7050434164e+03,  1.3021945723e+04, -4.6300292280e+04,
+              2.6088680075e+04, -1.0029266691e+04
+        },
+        {
+             -1.4115179509e+03,  7.3669825319e+03, -7.5384805982e+03,
+              8.0589161034e+03,  1.4105500100e+04, -4.9668730338e+04,
+              2.8213598409e+04, -1.0769807018e+04
+        },
+        {
+             -1.3854741718e+03,  7.4226610519e+03, -7.7670125129e+03,
+              8.3511837246e+03,  1.5220734389e+04, -5.2880209469e+04,
+              3.0294234010e+04, -1.1245662007e+04
+        },
+        {
+             -1.3774896210e+03,  7.5496764563e+03, -7.9371098427e+03,
+              8.7509889802e+03,  1.6231298478e+04,  5.5966185101e+04,
+              3.2183711549e+04, -1.1323479616e+04
+        },
+        {
+             -1.3704838904e+03,  7.5976867067e+03, -8.0185370756e+03,
+              9.2796196813e+03,  1.7102080707e+04,  5.8984201358e+04,
+              3.3791365524e+04, -1.1053948174e+04
+        },
+        {
+             -1.2990843335e+03,  7.7185959421e+03, -8.1942056299e+03,
+              9.7333603074e+03,  1.7981139383e+04,  6.1676921940e+04,
+              3.5096189167e+04, -1.0356988975e+04
+        },
+        {
+             -1.3328557680e+03,  7.8038917664e+03, -8.5223891007e+03,
+              1.0120809079e+04,  1.8877337208e+04,  6.4079909766e+04,
+              3.5959971312e+04, -9.1748508040e+03
+        },
+        {
+             -1.3042178302e+03,  7.8121376846e+03, -8.7507250102e+03,
+              1.0569443465e+04,  1.9664606491e+04,  6.6275824384e+04,
+              3.6562296300e+04, -8.9143307303e+03
+        },
+        {
+             -1.3914810623e+03,  7.9390809344e+03, -8.8555650367e+03,
+              1.1104533305e+04,  2.0335772007e+04, -6.8415500136e+04,
+              3.6730036401e+04,  9.5161975383e+03
+        },
+        {
+             -1.5115208520e+03,  8.1367856681e+03, -9.0504614361e+03,
+              1.1558362797e+04,  2.1003048521e+04, -7.0304923954e+04,
+              3.6464186336e+04,  1.0791717333e+04
+        },
+        {
+             -1.4815185816e+03,  8.1628232882e+03, -9.4363501175e+03,
+              1.1932271117e+04,  2.1667891330e+04, -7.1999386125e+04,
+              3.5727056254e+04,  1.2840506631e+04
+        },
+        {
+             -1.4875603823e+03, -8.2248763645e+03, -9.8486676499e+03,
+              1.2322914540e+04,  2.2251934699e+04, -7.3471139505e+04,
+              3.4510409561e+04,  1.4964510338e+04
+        },
+        {
+             -1.5524514996e+03, -8.3174429243e+03, -1.0029185084e+04,
+              1.2739018694e+04,  2.2741530696e+04, -7.4800363975e+04,
+              3.2821533034e+04, -1.7846687819e+04
+        },
+        {
+             -1.5462560192e+03, -8.4319372441e+03, -1.0034975630e+04,
+              1.3118473706e+04,  2.3181565295e+04, -7.5983116133e+04,
+              3.1014904291e+04, -2.1814073896e+04
+        },
+        {
+             -1.6251894827e+03,  8.5979124459e+03, -1.0062216668e+04,
+              1.3465216362e+04,  2.3598091420e+04, -7.7129195437e+04,
+             -2.9840925032e+04,  2.6282597357e+04
+        },
+        {
+             -1.6415028655e+03,  8.6421115805e+03, -1.0255769206e+04,
+              1.3767714846e+04,  2.3943702024e+04,  7.8306847029e+04,
+             -3.0066711690e+04,  3.0870328224e+04
+        },
+        {
+             -1.6720189112e+03, -8.6906311592e+03, -1.0557340544e+04,
+              1.4015990940e+04,  2.4192495707e+04,  7.9914375332e+04,
+             -3.1110188931e+04,  3.4209006148e+04
+        },
+        {
+             -1.6995694811e+03, -8.7041486254e+03, -1.0910045502e+04,
+              1.4268286509e+04,  2.4346657493e+04,  8.1785357267e+04,
+             -3.2863602288e+04,  3.6512802561e+04
+        },
+        {
+             -1.6042656220e+03, -8.7525197808e+03, -1.1180468080e+04,
+              1.4460038142e+04,  2.4434826913e+04,  8.3950046057e+04,
+             -3.5217973132e+04,  3.7538974367e+04
+        },
+        {
+             -1.5501114973e+03, -8.7705111906e+03, -1.1378194921e+04,
+              1.4644065945e+04,  2.4471429202e+04,  8.6506445087e+04,
+             -3.8050545286e+04,  3.7643193266e+04
+        },
+        {
+             -1.4787632857e+03, -8.8184253534e+03, -1.1529848750e+04,
+              1.4763504721e+04,  2.4472761888e+04,  8.9429287879e+04,
+             -4.0991981630e+04,  3.7386521603e+04
+        },
+        {
+             -1.4855592233e+03, -8.8148320471e+03, -1.1621401993e+04,
+              1.4843587116e+04,  2.4415807484e+04,  9.2709562873e+04,
+             -4.3985762859e+04,  3.6511984268e+04
+        },
+        {
+             -1.4505940694e+03, -8.8232408288e+03, -1.1646151962e+04,
+              1.4864086769e+04,  2.4314095713e+04,  9.6135811955e+04,
+             -4.6999415990e+04,  3.6950077028e+04
+        },
+        {
+             -1.4135851500e+03, -8.8265404571e+03, -1.1619567171e+04,
+              1.4825194180e+04,  2.4175503450e+04,  9.9614905043e+04,
+              5.0440401950e+04,  3.7121507054e+04
+        },
+        {
+             -1.4376637741e+03,  8.7922894433e+03, -1.1509395921e+04,
+              1.4721378956e+04,  2.3987617605e+04,  1.0276394611e+05,
+              5.4565445614e+04,  3.6826444011e+04
+        },
+        {
+             -1.4324707418e+03, -8.9224513306e+03, -1.1292507639e+04,
+              1.4578976235e+04,  2.3762435958e+04,  1.0544958277e+05,
+              5.8536209108e+04,  3.6286566866e+04
+        },
+        {
+             -1.4307727374e+03,  8.8887833039e+03, -1.1035785493e+04,
+              1.4394275843e+04,  2.3469322946e+04,  1.0732067662e+05,
+              6.2089982424e+04,  3.5463709766e+04
+        },
+        {
+             -1.5380705611e+03,  8.9152278613e+03, -1.0760818916e+04,
+              1.4170638097e+04,  2.3087253107e+04,  1.0834767794e+05,
+              6.5337205044e+04,  3.4243274082e+04
+        },
+        {
+             -1.5318606333e+03,  8.9031040273e+03, -1.0573501964e+04,
+              1.3935838814e+04,  2.2582345279e+04,  1.0853147542e+05,
+              6.7985573961e+04,  3.3104369914e+04
+        },
+        {
+             -1.4223881152e+03,  8.6941028539e+03, -1.0552177723e+04,
+              1.3670018043e+04,  2.1934498137e+04,  1.0802159579e+05,
+              7.0587169801e+04,  3.2271754358e+04
+        },
+        {
+             -1.4672157141e+03, -8.5125815572e+03, -1.0695706426e+04,
+              1.3351797589e+04,  2.1189838522e+04,  1.0692424747e+05,
+              7.2448439388e+04,  3.1882778486e+04
+        },
+        {
+             -1.4489722794e+03, -8.4648208659e+03, -1.0711236866e+04,
+              1.2975155649e+04,  2.0471035787e+04,  1.0550377374e+05,
+              7.3124537226e+04,  3.0509196612e+04
+        },
+        {
+             -1.5178513482e+03, -8.3701009254e+03, -1.0420516650e+04,
+              1.2590683454e+04,  1.9731225042e+04,  1.0380121578e+05,
+              7.2007862265e+04,  2.8983589149e+04
+        },
+        {
+             -1.5294163277e+03,  8.3269686971e+03, -9.9594345484e+03,
+              1.2238132889e+04,  1.8932802473e+04,  1.0163828767e+05,
+              6.9394806566e+04,  2.7612767769e+04
+        },
+        {
+             -1.5755224848e+03,  8.2967602773e+03, -9.5967819458e+03,
+              1.1893280065e+04,  1.8087272414e+04,  9.8899106343e+04,
+              6.5240593656e+04,  2.5108146782e+04
+        },
+        {
+             -1.5837299731e+03,  8.2018227079e+03, -9.5183173236e+03,
+              1.1435595213e+04,  1.7260892962e+04,  9.5414452883e+04,
+              6.0785883342e+04,  2.2862683135e+04
+        },
+        {
+             -1.4950932411e+03, -8.0148334927e+03, -9.5543609979e+03,
+              1.0908626294e+04,  1.6483277441e+04,  9.1036485082e+04,
+              5.6564824194e+04,  2.0613319955e+04
+        },
+        {
+             -1.4634706833e+03, -7.9671737611e+03, -9.3461066762e+03,
+              1.0481491801e+04,  1.5647059224e+04,  8.5957222602e+04,
+              5.2737866759e+04,  1.7813939145e+04
+        },
+        {
+             -1.4676939470e+03,  7.8460660351e+03, -8.9625312220e+03,
+              1.0207463870e+04,  1.4710745444e+04,  8.0286758965e+04,
+              4.9414366817e+04,  1.5513393586e+04
+        }
+    },
+    {
+        {
+             -1.7268075505e+03,  7.8289005995e+03, -8.9406558230e+03,
+              9.5012282335e+03,  1.3344210246e+04,  6.8819312921e+04,
+              4.7010141414e+04,  1.3421106817e+04
+        },
+        {
+             -1.6822131826e+03, -7.7584963848e+03, -8.8768911713e+03,
+              9.0243743164e+03,  1.2584509354e+04,  6.3098228381e+04,
+              4.3074853670e+04,  1.1686154722e+04
+        },
+        {
+             -1.6125752720e+03, -7.6474278631e+03, -8.7535110370e+03,
+              8.7353678603e+03,  1.1718484227e+04,  5.7732423567e+04,
+              3.9660020851e+04,  1.0170753386e+04
+        },
+        {
+             -1.5651251980e+03,  7.5703291310e+03, -8.5148224752e+03,
+              8.6075307543e+03,  1.0735437712e+04,  5.2636709906e+04,
+              3.6135444932e+04,  9.0997595884e+03
+        },
+        {
+             -1.5944293001e+03,  7.5341579306e+03, -8.3612501256e+03,
+              8.4493815704e+03,  9.7609906883e+03, -4.8182823783e+04,
+              3.2630737642e+04,  7.9943858458e+03
+        },
+        {
+             -1.5700417535e+03,  7.4551465966e+03, -8.3213960214e+03,
+              8.2637535443e+03,  8.8553426912e+03,  4.4652593541e+04,
+              2.9192400723e+04,  7.1451935572e+03
+        },
+        {
+             -1.4850563539e+03,  7.4116678188e+03, -8.1807462497e+03,
+              8.1489323253e+03,  7.9587139773e+03,  4.2347740123e+04,
+              2.5899155433e+04,  6.3777704561e+03
+        },
+        {
+             -1.4981166387e+03,  7.4294633852e+03, -8.0579733507e+03,
+              8.1623688985e+03,  7.1734833667e+03,  4.1038884425e+04,
+              2.2864855982e+04,  5.6940662753e+03
+        },
+        {
+             -1.4962890260e+03,  7.3753238067e+03, -7.9640839270e+03,
+              8.1610277512e+03,  6.6911996953e+03,  3.9931358316e+04,
+              2.0139518443e+04,  4.9808113688e+03
+        },
+        {
+             -1.4755196812e+03,  7.2436651664e+03, -7.9262270399e+03,
+              8.1556663349e+03,  6.6054656334e+03,  3.7941868085e+04,
+              1.7493023517e+04,  4.2878531037e+03
+        },
+        {
+             -1.4149862606e+03,  7.2771626742e+03, -7.8443049227e+03,
+              8.2303679552e+03,  6.9643614481e+03,  3.4216785017e+04,
+              1.5229764013e+04,  3.7704190313e+03
+        },
+        {
+             -1.4374226628e+03,  7.2092509022e+03, -7.8144087813e+03,
+              8.3227361955e+03,  7.7236777895e+03,  2.8444575729e+04,
+              1.4420176289e+04,  3.2726195023e+03
+        },
+        {
+             -1.3822700992e+03,  7.2175832034e+03, -7.7811815939e+03,
+              8.3809526397e+03,  8.7075167496e+03, -2.1952841552e+04,
+              1.4828304940e+04,  2.7688712441e+03
+        },
+        {
+             -1.3036956275e+03,  7.2119305678e+03, -7.7498206284e+03,
+              8.4492525487e+03,  9.7609925749e+03, -1.8640140039e+04,
+              1.3792709038e+04, -2.7767889004e+03
+        },
+        {
+             -1.2748040994e+03,  7.2045562699e+03, -7.7058184256e+03,
+              8.5286250005e+03,  1.0752823264e+04, -2.0420115434e+04,
+              9.8729491458e+03,  2.6343105834e+03
+        },
+        {
+             -1.2458788845e+03,  7.1750173991e+03, -7.6915389039e+03,
+              8.5750187222e+03,  1.1594007447e+04, -2.7202970222e+04,
+             -7.9765613185e+03, -5.3403642946e+03
+        },
+        {
+             -1.1475000493e+03,  7.1530503396e+03, -7.6663547239e+03,
+              8.5937948222e+03,  1.2220857827e+04, -3.4740675727e+04,
+              1.4523807428e+04,  3.5757397423e+03
+        },
+        {
+             -1.0555109916e+03,  7.1124040041e+03, -7.6435950934e+03,
+              8.5901862251e+03,  1.2595051259e+04, -4.0105381325e+04,
+              2.0587333045e+04,  5.2046322165e+03
+        },
+        {
+             -1.0508063796e+03,  7.1168359323e+03, -7.6332210766e+03,
+              8.5522904829e+03,  1.2682862742e+04, -4.1957254125e+04,
+              2.1823085552e+04,  1.1907622761e+04
+        },
+        {
+              1.0143410759e+03,  7.1166246799e+03, -7.6012340221e+03,
+              8.4638032347e+03,  1.2481584931e+04, -3.9748150692e+04,
+              1.7643894071e+04, -1.1194515409e+04
+        },
+        {
+             -1.0379422562e+03,  7.0948105971e+03, -7.5847400965e+03,
+              8.3658804142e+03,  1.2023239100e+04, -3.3770732860e+04,
+              9.5975422736e+03, -4.5541153688e+03
+        },
+        {
+             -1.1217910310e+03,  7.1513504679e+03, -7.5441356316e+03,
+              8.2380783937e+03,  1.1328957110e+04, -2.4979316021e+04,
+             -4.2241913998e+03,  2.9277355689e+03
+        },
+        {
+             -1.1522802296e+03,  7.0935065861e+03, -7.5088552018e+03,
+              8.0873673487e+03,  1.0457160434e+04, -1.5538703858e+04,
+              8.2996981402e+03,  3.1093461599e+03
+        },
+        {
+             -1.2226837355e+03,  7.0635897613e+03, -7.5229348494e+03,
+              7.8956900139e+03,  9.4935935377e+03, -1.1452083147e+04,
+              1.1315926847e+04, -3.1598376768e+03
+        },
+        {
+             -1.2562475663e+03,  7.1129002224e+03, -7.4792185042e+03,
+              7.7153641848e+03,  8.5700373349e+03, -1.5402920346e+04,
+              1.1332991887e+04, -4.2306253886e+03
+        },
+        {
+             -1.3161963242e+03,  7.1586159190e+03, -7.4524154708e+03,
+              7.5474836402e+03,  7.8292439469e+03,  2.1045299980e+04,
+              1.1114405325e+04,  3.9580216616e+03
+        },
+        {
+             -1.2243170956e+03,  7.1006958895e+03, -7.3936193017e+03,
+              7.4268395163e+03,  7.4169753388e+03,  2.7083806545e+04,
+              1.2655732374e+04, -4.3158756071e+03
+        },
+        {
+             -1.2110318475e+03,  7.1589684645e+03, -7.4400327289e+03,
+              7.2875079570e+03,  7.4198809453e+03,  3.0752761352e+04,
+              1.4847155332e+04, -4.8744025232e+03
+        },
+        {
+             -1.1616889627e+03,  7.1963167416e+03, -7.4568286258e+03,
+              7.1975195866e+03,  7.8200398673e+03,  3.2480833024e+04,
+              1.6759624626e+04, -5.5619589318e+03
+        },
+        {
+             -1.1942125029e+03,  7.2186433572e+03, -7.4430623992e+03,
+              7.2244313292e+03,  8.5007228637e+03, -3.3271872862e+04,
+              1.8327233649e+04, -6.3436061815e+03
+        },
+        {
+             -1.2939890198e+03,  7.2823517623e+03, -7.4820578416e+03,
+              7.3100460827e+03,  9.3644467384e+03, -3.5242434779e+04,
+              1.9833326113e+04, -7.2461405325e+03
+        },
+        {
+             -1.2724653289e+03,  7.2580365688e+03, -7.5528280997e+03,
+              7.3941240523e+03,  1.0345796632e+04, -3.7604173345e+04,
+              2.1352227231e+04,  8.3563464645e+03
+        },
+        {
+             -1.2225556399e+03,  7.2880393823e+03, -7.6442678798e+03,
+              7.5482472273e+03,  1.1368734664e+04, -4.0406561568e+04,
+              2.2833029986e+04,  9.5672876098e+03
+        },
+        {
+             -1.3526261783e+03,  7.4099019072e+03, -7.7032457139e+03,
+              7.8456483543e+03,  1.2330400752e+04, -4.3415183006e+04,
+              2.4286387435e+04,  1.0725494813e+04
+        },
+        {
+             -1.3258862348e+03,  7.4263063626e+03, -7.7737230946e+03,
+              8.1847338630e+03,  1.3260807675e+04, -4.6489777256e+04,
+              2.5858014342e+04,  1.1862816706e+04
+        },
+        {
+             -1.3802119731e+03,  7.4988502232e+03, -7.9478717113e+03,
+              8.4793548489e+03,  1.4200209076e+04,  4.9484510489e+04,
+              2.7500628313e+04,  1.2778682765e+04
+        },
+        {
+             -1.3802504057e+03,  7.5528328032e+03, -8.1381681529e+03,
+              8.8105748071e+03,  1.5069599251e+04,  5.2872953658e+04,
+              2.9256881465e+04,  1.3653652160e+04
+        },
+        {
+             -1.4135964364e+03,  7.5837966528e+03, -8.2630758015e+03,
+              9.2800989777e+03,  1.5830615676e+04,  5.6038510709e+04,
+              3.0920430778e+04,  1.4084764500e+04
+        },
+        {
+             -1.5151074062e+03,  7.7137845956e+03, -8.4069532393e+03,
+              9.7492140622e+03,  1.6538198990e+04,  5.9087138587e+04,
+              3.2468359042e+04,  1.4086107784e+04
+        },
+        {
+             -1.4898049795e+03,  7.7819322413e+03, -8.6588306258e+03,
+              1.0131469358e+04,  1.7281434869e+04,  6.2099116484e+04,
+              3.3923119302e+04,  1.3358854920e+04
+        },
+        {
+             -1.5648977550e+03, -7.8417916244e+03, -8.9323545766e+03,
+              1.0534624186e+04,  1.7984975398e+04,  6.5102776927e+04,
+              3.5125119868e+04,  1.1663694083e+04
+        },
+        {
+             -1.6239140604e+03, -7.9655185034e+03, -9.1162763392e+03,
+              1.0999260514e+04,  1.8591516717e+04,  6.8141774009e+04,
+              3.6119113763e+04,  9.8152427441e+03
+        },
+        {
+             -1.7174900521e+03,  8.0529903049e+03, -9.2295295197e+03,
+              1.1474186047e+04,  1.9157541474e+04,  7.1122179869e+04,
+              3.6826498967e+04,  1.0422854330e+04
+        },
+        {
+             -1.7421146589e+03, -8.1877493393e+03, -9.4488497433e+03,
+              1.1872549398e+04,  1.9729586654e+04,  7.3953957330e+04,
+              3.7186426469e+04,  1.1991420162e+04
+        },
+        {
+             -1.7226653702e+03, -8.2632427328e+03, -9.7673732778e+03,
+              1.2221747050e+04,  2.0291353234e+04,  7.6634847472e+04,
+              3.7250713649e+04,  1.4357602965e+04
+        },
+        {
+             -1.7551176602e+03, -8.3515391741e+03, -1.0090629326e+04,
+              1.2571221253e+04,  2.0794111857e+04,  7.9031604555e+04,
+              3.6996164431e+04, -1.7679399576e+04
+        },
+        {
+             -1.8085831254e+03, -8.4506296465e+03, -1.0284008814e+04,
+              1.2924699258e+04,  2.1234015231e+04,  8.1284619165e+04,
+              3.6465601718e+04, -2.2541459884e+04
+        },
+        {
+             -1.8389647234e+03, -8.5642324750e+03, -1.0391337227e+04,
+              1.3255081849e+04,  2.1633923083e+04,  8.3317160821e+04,
+              3.5763384863e+04, -2.7568436442e+04
+        },
+        {
+             -1.9402340656e+03, -8.6512699081e+03, -1.0467804062e+04,
+              1.3548325313e+04,  2.1992200198e+04,  8.5213248852e+04,
+              3.5159872137e+04,  3.2986730819e+04
+        },
+        {
+             -1.8593965278e+03, -8.7188969394e+03, -1.0584249315e+04,
+              1.3793639895e+04,  2.2302103895e+04,  8.7079727643e+04,
+              3.4895161527e+04,  3.7547620986e+04
+        },
+        {
+             -1.8731075075e+03, -8.7996122313e+03, -1.0722952126e+04,
+              1.3997683772e+04,  2.2541490602e+04,  8.9077650282e+04,
+              3.5244646652e+04,  4.0873380333e+04
+        },
+        {
+             -1.7819622688e+03, -8.8542305787e+03, -1.0869488810e+04,
+              1.4154701061e+04,  2.2718761217e+04,  9.1159636413e+04,
+              3.6335210247e+04,  4.3226874054e+04
+        },
+        {
+             -1.6786849460e+03, -8.9071884857e+03, -1.1037432683e+04,
+              1.4285154080e+04,  2.2815202360e+04,  9.3389672008e+04,
+              3.8122638559e+04,  4.4179370078e+04
+        },
+        {
+             -1.5979275899e+03, -8.8655796356e+03, -1.1113466347e+04,
+              1.4383864915e+04,  2.2857098285e+04,  9.5663780505e+04,
+              4.0464045713e+04, -4.4052131355e+04
+        },
+        {
+             -1.6038404188e+03, -8.9374450017e+03, -1.1185720142e+04,
+              1.4421333401e+04,  2.2851553608e+04,  9.8143685188e+04,
+              4.3219736453e+04, -4.4486136500e+04
+        },
+        {
+             -1.5576723345e+03,  8.9276956842e+03, -1.1190621282e+04,
+              1.4420433546e+04,  2.2773168077e+04,  1.0063896800e+05,
+              4.6226520977e+04, -4.3930970503e+04
+        },
+        {
+             -1.5165240681e+03, -8.9666074271e+03, -1.1181436983e+04,
+              1.4370127210e+04,  2.2639685242e+04,  1.0289326311e+05,
+              4.9321904568e+04, -4.2787968910e+04
+        },
+        {
+             -1.5482148352e+03,  8.9868696909e+03, -1.1104552726e+04,
+              1.4284129674e+04,  2.2450976426e+04,  1.0466217249e+05,
+              5.2617427002e+04, -4.1108761622e+04
+        },
+        {
+             -1.5589796227e+03,  8.9701369524e+03, -1.0987546893e+04,
+              1.4139777482e+04,  2.2195333454e+04,  1.0580186507e+05,
+              5.5901556050e+04, -3.9084192214e+04
+        },
+        {
+             -1.5899817431e+03,  8.9224759447e+03, -1.0910688214e+04,
+              1.3979654340e+04,  2.1871473165e+04,  1.0625603048e+05,
+              5.9214697247e+04, -3.6526693932e+04
+        },
+        {
+             -1.5770142827e+03,  8.8529705910e+03, -1.0819133826e+04,
+              1.3767443723e+04,  2.1448103725e+04,  1.0585282246e+05,
+              6.2471234471e+04,  3.4232799373e+04
+        },
+        {
+             -1.5707354055e+03, -8.7895786462e+03, -1.0820781479e+04,
+              1.3523409058e+04,  2.0942133521e+04,  1.0460869637e+05,
+              6.5674820691e+04,  3.3187449764e+04
+        },
+        {
+             -1.6250074601e+03, -8.6677239684e+03, -1.0879199173e+04,
+              1.3217114849e+04,  2.0351218319e+04,  1.0271115341e+05,
+              6.8702666046e+04,  3.2059526355e+04
+        },
+        {
+             -1.6267160639e+03, -8.5898210043e+03, -1.0894404154e+04,
+              1.2877443688e+04,  1.9730648473e+04,  1.0045616954e+05,
+              7.1290340858e+04,  3.0728526173e+04
+        },
+        {
+             -1.6569331755e+03, -8.5432125905e+03, -1.0700109910e+04,
+              1.2508928243e+04,  1.9138011859e+04,  9.8087814325e+04,
+              7.2969315797e+04,  2.9320132790e+04
+        },
+        {
+             -1.7496860386e+03, -8.5316873191e+03, -1.0351249906e+04,
+              1.2162355923e+04,  1.8518805208e+04,  9.5573067269e+04,
+              7.2807514229e+04,  2.7936135320e+04
+        },
+        {
+             -1.9348504629e+03,  8.3669484892e+03, -9.9418321511e+03,
+              1.1842750996e+04,  1.7842740201e+04,  9.2947713143e+04,
+              7.0785364417e+04,  2.6143058008e+04
+        },
+        {
+             -1.7314920562e+03, -8.2985801477e+03, -9.7913104915e+03,
+              1.1443233369e+04,  1.7137558383e+04,  9.0182409359e+04,
+              6.7180886574e+04,  2.4380269343e+04
+        },
+        {
+             -1.7290959183e+03, -8.1778213397e+03, -9.8179521090e+03,
+              1.0939223116e+04,  1.6425449673e+04,  8.6720522844e+04,
+              6.2184556980e+04,  2.2337514483e+04
+        },
+        {
+             -1.6416318348e+03, -8.0971844915e+03, -9.7766021376e+03,
+              1.0436012144e+04,  1.5737953633e+04,  8.3014473309e+04,
+              5.7963421218e+04,  2.0197797423e+04
+        },
+        {
+             -1.6792603490e+03, -7.9702218828e+03, -9.4701029327e+03,
+              1.0097006863e+04,  1.4972301691e+04,  7.8732107658e+04,
+              5.3948325562e+04,  1.7842292131e+04
+        },
+        {
+             -1.6827093498e+03,  7.8852768571e+03, -9.1231265634e+03,
+              9.8436770446e+03,  1.4148889111e+04,  7.4072204567e+04,
+              5.0473725663e+04,  1.5738567088e+04
+        }
+    },
+    {
+        {
+             -1.6490021292e+03, -7.8162247111e+03, -9.2239698135e+03,
+              8.8357874380e+03, -1.3937087643e+04,  6.3846060049e+04,
+              4.5354063726e+04, -1.4977568930e+04
+        },
+        {
+             -1.5224575547e+03, -7.7048857987e+03, -9.0618003313e+03,
+              8.5477456566e+03, -1.3162009372e+04,  5.8825969496e+04,
+              4.1653772981e+04, -1.2894615794e+04
+        },
+        {
+             -1.6045630998e+03,  7.6490677617e+03, -8.8455460938e+03,
+              8.4234004897e+03, -1.2282300538e+04,  5.4088549568e+04,
+              3.8569315175e+04,  1.1536788268e+04
+        },
+        {
+             -1.6081024021e+03,  7.5700977648e+03, -8.6869446698e+03,
+              8.2588511160e+03, -1.1299943821e+04, -4.9645293387e+04,
+              3.5470954497e+04,  1.0097410807e+04
+        },
+        {
+             -1.5924322128e+03, -7.4785563113e+03, -8.6293406840e+03,
+              8.0735720799e+03,  1.0347375227e+04, -4.5921328333e+04,
+              3.2387880775e+04,  8.6980755985e+03
+        },
+        {
+             -1.5822984260e+03,  7.4540911991e+03, -8.5306020633e+03,
+              7.9512048072e+03,  9.4002361309e+03, -4.2695267503e+04,
+              2.9392164053e+04,  8.0115310149e+03
+        },
+        {
+             -1.5372132299e+03,  7.3577246003e+03, -8.4161379670e+03,
+              7.9674419941e+03,  8.4239485417e+03, -4.0012544366e+04,
+              2.6602159064e+04,  7.4016023548e+03
+        },
+        {
+             -1.5885146045e+03,  7.3990374996e+03, -8.3040832568e+03,
+              7.9831342009e+03,  7.5547859848e+03,  3.8580317409e+04,
+              2.4138669789e+04,  6.7125302731e+03
+        },
+        {
+             -1.4188756971e+03,  7.2413142408e+03, -8.2654941263e+03,
+              7.9988355577e+03,  6.8792452223e+03,  3.7372156701e+04,
+              2.1865634851e+04,  5.9613295618e+03
+        },
+        {
+             -1.4101882468e+03,  7.2692393649e+03, -8.2033584214e+03,
+              8.0629918473e+03,  6.4759990502e+03,  3.5492788860e+04,
+              1.9586319986e+04,  5.2728309382e+03
+        },
+        {
+             -1.3956035729e+03,  7.2688736939e+03, -8.1252455030e+03,
+              8.1876552657e+03,  6.4691199487e+03,  3.2264505372e+04,
+              1.7484010218e+04,  4.8142085905e+03
+        },
+        {
+             -1.3417264082e+03,  7.1909355071e+03, -8.0620858296e+03,
+              8.2807839249e+03,  6.9032269036e+03,  2.7535670728e+04,
+              1.6556787506e+04,  4.8356404314e+03
+        },
+        {
+             -1.2545400720e+03,  7.1750839401e+03, -8.0629197531e+03,
+              8.3601925786e+03,  7.6789378007e+03, -2.3115293530e+04,
+              1.6819406008e+04,  5.1508540074e+03
+        },
+        {
+             -1.2132747554e+03,  7.1576345910e+03, -7.9932010803e+03,
+              8.4575702292e+03,  8.6297766420e+03, -2.0426995311e+04,
+              1.6273972777e+04,  4.6174382452e+03
+        },
+        {
+             -1.2201598271e+03,  7.1558659573e+03, -7.9887699717e+03,
+              8.5380328676e+03,  9.5994394406e+03, -2.1272293595e+04,
+              1.3214173382e+04,  5.4704832208e+03
+        },
+        {
+             -1.1327418155e+03,  7.1225643063e+03, -7.9584239678e+03,
+              8.6077629466e+03,  1.0465967694e+04, -2.5995008260e+04,
+             -9.5492246136e+03,  7.3031530525e+03
+        },
+        {
+              1.0666214571e+03,  7.0648218191e+03, -7.9341554667e+03,
+              8.6238855572e+03,  1.1155445706e+04, -3.1877143020e+04,
+             -9.6545795430e+03,  6.2216554491e+03
+        },
+        {
+             -1.1548444751e+03,  7.1933036217e+03, -7.8986848255e+03,
+              8.6376235561e+03,  1.1628358116e+04, -3.6472797092e+04,
+              1.4585030517e+04, -6.1790606576e+03
+        },
+        {
+             -1.1538691246e+03,  7.0927053957e+03, -7.8897921407e+03,
+              8.6274084138e+03,  1.1839818123e+04, -3.8491337048e+04,
+              1.8010161680e+04, -9.9048592025e+03
+        },
+        {
+             -1.1662499946e+03,  7.0873396331e+03, -7.8509170830e+03,
+              8.5566306116e+03,  1.1782181495e+04, -3.7487963916e+04,
+              1.8192251944e+04, -1.1033848944e+04
+        },
+        {
+             -1.2031648588e+03,  7.0131704687e+03, -7.8178024392e+03,
+              8.4726115352e+03,  1.1491057603e+04, -3.3832902501e+04,
+              1.6059050828e+04,  9.0652381636e+03
+        },
+        {
+              1.4614230087e+03,  7.0301610450e+03, -7.7828377743e+03,
+              8.3618667210e+03,  1.0989405978e+04, -2.8552305175e+04,
+              1.3840779636e+04,  7.8317328480e+03
+        },
+        {
+             -1.4261933994e+03,  7.0947249417e+03, -7.7793387835e+03,
+              8.2317645502e+03,  1.0322634829e+04, -2.3447575835e+04,
+              1.3245856094e+04,  6.6285654757e+03
+        },
+        {
+             -1.4187281981e+03,  7.0658531107e+03, -7.7620279798e+03,
+              8.0785912824e+03,  9.5735676905e+03, -2.0848711566e+04,
+              1.3599196322e+04,  5.4009179468e+03
+        },
+        {
+             -1.4869203183e+03,  7.1274876280e+03, -7.7332898390e+03,
+              7.9212023266e+03,  8.8327830610e+03, -2.1571413029e+04,
+              1.3682054182e+04,  5.5273701042e+03
+        },
+        {
+             -1.4711398365e+03,  7.1259825588e+03, -7.7291370517e+03,
+              7.7669154668e+03,  8.2363535249e+03,  2.4238420593e+04,
+              1.3562500547e+04,  5.4909604643e+03
+        },
+        {
+             -1.4332259577e+03,  7.1351984050e+03, -7.7058929417e+03,
+              7.6436732994e+03,  7.8758375707e+03,  2.8180285420e+04,
+              1.4006252566e+04,  5.9250243561e+03
+        },
+        {
+             -1.4656622407e+03,  7.1274892857e+03, -7.7002856210e+03,
+              7.5397314543e+03,  7.8290410390e+03,  3.0918849731e+04,
+              1.5035687525e+04,  6.3258956137e+03
+        },
+        {
+             -1.4440909792e+03,  7.2170124391e+03, -7.7109422772e+03,
+              7.4656290367e+03,  8.0991780649e+03,  3.2397276623e+04,
+              1.6256452829e+04, -6.9597064397e+03
+        },
+        {
+             -1.4371289099e+03,  7.1611445337e+03, -7.7404470264e+03,
+              7.4258166213e+03,  8.6242852484e+03,  3.3049118797e+04,
+              1.7390873259e+04, -7.7458593531e+03
+        },
+        {
+             -1.4822115489e+03,  7.1591974285e+03, -7.7594810476e+03,
+              7.4740846977e+03,  9.3098723920e+03, -3.3971862004e+04,
+              1.8419655109e+04, -8.5890774123e+03
+        },
+        {
+             -1.4662647633e+03,  7.2018425238e+03, -7.7931806188e+03,
+              7.5652700473e+03,  1.0094474671e+04, -3.5702909077e+04,
+              1.9445816488e+04, -9.5400197974e+03
+        },
+        {
+             -1.4767158742e+03,  7.3028592212e+03, -7.8567381911e+03,
+              7.6794388006e+03,  1.0925650600e+04, -3.7807997713e+04,
+              2.0534408473e+04, -1.0571749976e+04
+        },
+        {
+             -1.4898166226e+03,  7.3536298668e+03, -7.9541435212e+03,
+              7.8629149531e+03,  1.1757793238e+04, -4.0207450299e+04,
+              2.1765744074e+04, -1.1717186191e+04
+        },
+        {
+             -1.4401756081e+03,  7.3702323040e+03, -8.0421386708e+03,
+              8.1245985763e+03,  1.2534032382e+04,  4.2845335219e+04,
+              2.3243102891e+04, -1.2900012994e+04
+        },
+        {
+             -1.4827499325e+03,  7.4620708033e+03, -8.1144737242e+03,
+              8.4234937956e+03,  1.3257664218e+04,  4.5923395033e+04,
+              2.4835132188e+04, -1.4119047473e+04
+        },
+        {
+             -1.4365042495e+03,  7.4834982041e+03, -8.2627852751e+03,
+              8.7138675677e+03,  1.3956426047e+04,  4.8970187352e+04,
+              2.6639800101e+04, -1.5214352386e+04
+        },
+        {
+             -1.4511249037e+03,  7.5590043684e+03, -8.4373138509e+03,
+              9.0487925355e+03,  1.4611131615e+04,  5.1918227832e+04,
+              2.8513367379e+04, -1.6051602136e+04
+        },
+        {
+             -1.5043626277e+03, -7.6305495813e+03, -8.5842653098e+03,
+              9.4276914800e+03,  1.5196436977e+04,  5.4793419044e+04,
+              3.0347863551e+04, -1.6612247502e+04
+        },
+        {
+             -1.5317653812e+03, -7.7613329818e+03, -8.7350840513e+03,
+              9.8451542940e+03,  1.5740745617e+04,  5.7645082892e+04,
+              3.2279269913e+04, -1.6620376605e+04
+        },
+        {
+             -1.5364238549e+03, -7.8278740167e+03, -8.9217418307e+03,
+              1.0228834837e+04,  1.6284134545e+04,  6.0556839014e+04,
+              3.4106371969e+04, -1.6213331311e+04
+        },
+        {
+             -1.5494820680e+03, -7.8896715564e+03, -9.1381981925e+03,
+              1.0573233772e+04,  1.6819062793e+04,  6.3487455054e+04,
+              3.5781525185e+04, -1.5210875143e+04
+        },
+        {
+             -1.6721860532e+03, -7.9592012687e+03, -9.3594256077e+03,
+              1.0955122181e+04,  1.7318487337e+04,  6.6424079219e+04,
+              3.7270300034e+04, -1.3692874124e+04
+        },
+        {
+             -1.7767753935e+03, -8.0566281312e+03, -9.5234725470e+03,
+              1.1348796332e+04,  1.7795918406e+04,  6.9311520985e+04,
+              3.8406405459e+04,  1.2305584078e+04
+        },
+        {
+             -1.7364444937e+03, -8.1872238492e+03, -9.6765078531e+03,
+              1.1729664006e+04,  1.8238629007e+04,  7.2114646087e+04,
+              3.9283974300e+04,  1.3454490014e+04
+        },
+        {
+             -1.7719589404e+03, -8.2486733688e+03, -9.8087922824e+03,
+              1.2081331126e+04,  1.8675849750e+04,  7.4806800205e+04,
+              3.9715530486e+04,  1.5436400563e+04
+        },
+        {
+             -1.7826603528e+03, -8.3893466048e+03, -1.0002867466e+04,
+              1.2368384530e+04,  1.9109503687e+04,  7.7014461053e+04,
+              3.9589421109e+04,  1.8264508238e+04
+        },
+        {
+             -1.8268090276e+03, -8.4815172055e+03, -1.0227155737e+04,
+              1.2630088061e+04,  1.9510806748e+04,  7.9264922627e+04,
+              3.9422316738e+04, -2.2756501413e+04
+        },
+        {
+             -1.8535417710e+03, -8.4850497836e+03, -1.0457940233e+04,
+              1.2881668499e+04,  1.9872063930e+04,  8.1439972373e+04,
+              3.9220620814e+04, -2.7523596490e+04
+        },
+        {
+             -1.7953743012e+03, -8.5628349654e+03, -1.0676412317e+04,
+              1.3073259545e+04,  2.0192050048e+04,  8.3420009670e+04,
+              3.9020207472e+04, -3.1905138166e+04
+        },
+        {
+             -1.8417753074e+03, -8.5857781806e+03, -1.0824713630e+04,
+              1.3258933314e+04,  2.0450922616e+04,  8.5411162856e+04,
+              3.9168455688e+04, -3.5980311764e+04
+        },
+        {
+             -1.7900481868e+03, -8.6554005282e+03, -1.0955113322e+04,
+              1.3398647782e+04,  2.0689013498e+04,  8.7447419849e+04,
+              3.9769812265e+04, -3.9205808748e+04
+        },
+        {
+             -1.7923601636e+03, -8.6756979896e+03, -1.1048011962e+04,
+              1.3520334651e+04,  2.0864187318e+04,  8.9462570380e+04,
+              4.1021682533e+04, -4.1957205361e+04
+        },
+        {
+             -1.8498928969e+03, -8.7565706175e+03, -1.1117050315e+04,
+              1.3588995952e+04,  2.1004963858e+04,  9.1450009205e+04,
+              4.2709879211e+04, -4.4018101580e+04
+        },
+        {
+             -1.7585069025e+03, -8.7892202672e+03, -1.1140280861e+04,
+              1.3627084154e+04,  2.1090943217e+04,  9.3407195388e+04,
+              4.4950049560e+04, -4.5229658180e+04
+        },
+        {
+             -1.6597694081e+03, -8.8046805146e+03, -1.1164598047e+04,
+              1.3613073237e+04,  2.1127404528e+04,  9.5176046859e+04,
+              4.7489302678e+04, -4.5786258020e+04
+        },
+        {
+             -1.6348429381e+03, -8.7703295113e+03, -1.1158430337e+04,
+              1.3557140749e+04,  2.1092847281e+04,  9.6620714738e+04,
+              5.0360432721e+04, -4.5526339596e+04
+        },
+        {
+             -1.5650107940e+03, -8.7892730750e+03, -1.1178890799e+04,
+              1.3455802231e+04,  2.1007111864e+04,  9.7625143833e+04,
+              5.3544313801e+04, -4.5001572139e+04
+        },
+        {
+              1.6629292216e+03, -8.7796464939e+03, -1.1150433565e+04,
+              1.3334940828e+04,  2.0865732754e+04,  9.8055410224e+04,
+              5.6889444642e+04, -4.3725251410e+04
+        },
+        {
+             -1.5180663638e+03, -8.6823756112e+03, -1.1092754729e+04,
+              1.3169431575e+04,  2.0672988763e+04,  9.7858860842e+04,
+              6.0281073665e+04, -4.2222971319e+04
+        },
+        {
+             -1.5699770748e+03, -8.7221967469e+03, -1.0995115928e+04,
+              1.2940218630e+04,  2.0433769430e+04,  9.7039709032e+04,
+              6.3546349430e+04, -4.0329513066e+04
+        },
+        {
+             -1.5345122598e+03, -8.6957686760e+03, -1.0876106769e+04,
+              1.2700126564e+04,  2.0131847218e+04,  9.5531825222e+04,
+              6.6640156548e+04, -3.8063221587e+04
+        },
+        {
+             -1.5726387394e+03, -8.6192006222e+03, -1.0645106837e+04,
+              1.2432958006e+04,  1.9792306408e+04,  9.3579155829e+04,
+              6.9424432169e+04, -3.5333497123e+04
+        },
+        {
+             -1.6240307125e+03, -8.5150209375e+03, -1.0405373949e+04,
+              1.2156809951e+04,  1.9384445429e+04,  9.1354593245e+04,
+              7.1568815865e+04, -3.2966679369e+04
+        },
+        {
+             -1.6925981281e+03, -8.4109194082e+03, -1.0249059651e+04,
+              1.1843570885e+04,  1.8913349182e+04,  8.9047069660e+04,
+              7.2597728086e+04, -3.0537500127e+04
+        },
+        {
+             -1.6591222824e+03, -8.3405648423e+03, -1.0166260913e+04,
+              1.1472710315e+04,  1.8394450138e+04,  8.6640152214e+04,
+              7.1894507540e+04,  2.8495402875e+04
+        },
+        {
+             -1.6491116905e+03, -8.3291906487e+03, -1.0145440450e+04,
+              1.1042142676e+04,  1.7851690519e+04,  8.4262938793e+04,
+              6.9610869372e+04,  2.6825126879e+04
+        },
+        {
+             -1.7049906825e+03, -8.1833053648e+03, -1.0086005589e+04,
+              1.0604809127e+04,  1.7291038430e+04,  8.1706478266e+04,
+              6.5863426546e+04,  2.4758988559e+04
+        },
+        {
+             -1.6651638510e+03, -8.1400847641e+03, -9.8692913645e+03,
+              1.0237246052e+04,  1.6663531149e+04,  7.8909700218e+04,
+              6.1219659876e+04,  2.2688845268e+04
+        },
+        {
+             -1.6696671705e+03, -8.0125415531e+03, -9.5620283220e+03,
+              9.9622946891e+03,  1.5972016861e+04,  7.5810924212e+04,
+              5.6649178036e+04,  2.0492621220e+04
+        },
+        {
+             -1.7352539281e+03,  7.9443551819e+03, -9.3460060495e+03,
+              9.6544425388e+03, -1.5296566144e+04,  7.2234810352e+04,
+              5.2416779643e+04, -1.8376690938e+04
+        },
+        {
+             -1.6859700961e+03, -7.8427569103e+03, -9.2638106330e+03,
+              9.2472203067e+03, -1.4632115834e+04,  6.8196335503e+04,
+              4.8667814062e+04, -1.6648355194e+04
+        }
+    },
+    {
+        {
+             -1.3669467701e+03, -7.9214924675e+03, -9.3708118502e+03,
+              8.5283173453e+03, -1.5212968269e+04,  6.4003365729e+04,
+              4.4372899530e+04,  1.9444247017e+04
+        },
+        {
+             -1.5226753890e+03,  7.7101104711e+03, -9.1424279068e+03,
+              8.3110174046e+03, -1.4231340188e+04,  5.8682965332e+04,
+              4.0069684479e+04,  1.6718465003e+04
+        },
+        {
+             -1.4274220216e+03,  7.8225898639e+03, -9.0285875272e+03,
+              8.0664287492e+03, -1.3140913622e+04,  5.3528906281e+04,
+              3.6466929502e+04,  1.4592341239e+04
+        },
+        {
+             -1.4038067380e+03,  7.7561952468e+03, -8.9288952588e+03,
+              7.8449206110e+03, -1.1944396876e+04, -4.8877619150e+04,
+              3.2886018859e+04,  1.2960668804e+04
+        },
+        {
+             -1.3071154755e+03,  7.6160177411e+03, -8.8376176148e+03,
+              7.7675645292e+03, -1.0636222906e+04, -4.5075482033e+04,
+              2.9573511202e+04,  1.1423504947e+04
+        },
+        {
+             -1.4031316456e+03,  7.5866117762e+03, -8.7125183457e+03,
+              7.7770176348e+03,  9.3508660479e+03, -4.1925320987e+04,
+              2.6475328275e+04, -1.0299662011e+04
+        },
+        {
+             -1.4323037167e+03,  7.5222302707e+03, -8.6312383899e+03,
+              7.8010385262e+03,  8.3710366552e+03,  3.9893764398e+04,
+              2.3720019517e+04, -9.4085779798e+03
+        },
+        {
+             -1.4763483075e+03,  7.5056682434e+03, -8.5780535232e+03,
+              7.8769330766e+03,  7.5880313478e+03,  3.7802762368e+04,
+              2.1249391868e+04, -8.5475141015e+03
+        },
+        {
+             -1.4795351365e+03,  7.4713962267e+03, -8.5030596108e+03,
+              8.0233527251e+03,  7.1162333931e+03,  3.4628494292e+04,
+              1.8970372255e+04, -7.9597700007e+03
+        },
+        {
+             -1.3875438384e+03,  7.3980855031e+03, -8.4365017615e+03,
+              8.1635311619e+03,  7.0970227095e+03, -3.0044639094e+04,
+              1.7545878021e+04, -7.8909424470e+03
+        },
+        {
+             -1.2746181939e+03,  7.4098733187e+03, -8.4024660598e+03,
+              8.2852920051e+03,  7.5300966542e+03, -2.5957772455e+04,
+              1.7377961759e+04, -7.7122237122e+03
+        },
+        {
+             -1.1264001457e+03,  7.3163048568e+03, -8.3333196135e+03,
+              8.4202014472e+03,  8.2657321180e+03, -2.3061457854e+04,
+              1.6829670421e+04, -7.7882980049e+03
+        },
+        {
+             -1.1054798790e+03,  7.3083263476e+03, -8.3015226386e+03,
+              8.5265372140e+03,  9.1098592524e+03, -2.3586730708e+04,
+              1.4257001783e+04, -7.9954811745e+03
+        },
+        {
+             -1.1361917646e+03,  7.3361184965e+03, -8.2825231095e+03,
+              8.5687682231e+03,  9.8774871795e+03, -2.7625690293e+04,
+             -1.1495401810e+04,  9.5249457243e+03
+        },
+        {
+             -1.1573949460e+03,  7.2441494809e+03, -8.2630182299e+03,
+              8.6094560399e+03,  1.0453796337e+04, -3.2245226568e+04,
+             -1.1440811061e+04, -8.5518749746e+03
+        },
+        {
+             -1.2954218125e+03,  7.2874231873e+03, -8.2215589827e+03,
+              8.6145375274e+03,  1.0765678340e+04, -3.5087923532e+04,
+              1.3902277433e+04, -7.8198549822e+03
+        },
+        {
+             -1.3872522281e+03,  7.2200260917e+03, -8.1855896092e+03,
+              8.5752360334e+03,  1.0793095128e+04, -3.5285569114e+04,
+              1.5445686113e+04, -1.0284409387e+04
+        },
+        {
+             -1.5004009833e+03,  7.2234552183e+03, -8.1610432596e+03,
+              8.4790156838e+03,  1.0551278710e+04, -3.3265186289e+04,
+              1.5194872550e+04, -1.1762607735e+04
+        },
+        {
+             -1.5563980433e+03,  7.2685827397e+03, -8.1471111188e+03,
+              8.3431531199e+03,  1.0095330578e+04, -3.0470349277e+04,
+             -1.4783734209e+04, -1.1571139210e+04
+        },
+        {
+             -1.5674629807e+03,  7.2108797423e+03, -8.1257432255e+03,
+              8.1944304849e+03,  9.5254761080e+03, -2.8713846921e+04,
+              1.4738528597e+04, -1.0225800007e+04
+        },
+        {
+             -1.5672858081e+03,  7.2354901315e+03, -8.1156082531e+03,
+              8.0502286182e+03,  8.9736259289e+03, -2.8903269350e+04,
+              1.4877531372e+04, -9.6437407217e+03
+        },
+        {
+             -1.5169189634e+03,  7.2662245954e+03, -8.0677111325e+03,
+              7.9097283917e+03,  8.5645985799e+03,  3.0708051970e+04,
+              1.4624903708e+04, -9.3183686217e+03
+        },
+        {
+             -1.5758995841e+03,  7.3027329201e+03, -8.0983405564e+03,
+              7.7657565238e+03,  8.4356579059e+03,  3.3195677737e+04,
+              1.4615823555e+04, -9.5097461840e+03
+        },
+        {
+             -1.5394257794e+03,  7.3294142313e+03, -8.0630844160e+03,
+              7.6612734908e+03,  8.6190767337e+03,  3.4841716589e+04,
+              1.5371511069e+04, -9.8691099504e+03
+        },
+        {
+             -1.5034671929e+03,  7.3450128473e+03, -8.0828129452e+03,
+              7.6078617461e+03,  9.0915728703e+03,  3.5712784431e+04,
+              1.6624848511e+04, -1.0433890358e+04
+        },
+        {
+             -1.5054451663e+03,  7.3914578876e+03, -8.1047390110e+03,
+              7.6260127769e+03,  9.7696039759e+03,  3.6437135304e+04,
+              1.7931818153e+04, -1.1299917124e+04
+        },
+        {
+             -1.5238520728e+03,  7.4135435144e+03, -8.1624021564e+03,
+              7.6876883658e+03,  1.0558918406e+04, -3.8082470677e+04,
+              1.9293070009e+04, -1.2395964677e+04
+        },
+        {
+             -1.4995165310e+03,  7.5156179432e+03, -8.2452832575e+03,
+              7.8258903474e+03,  1.1392028601e+04, -4.0227251809e+04,
+              2.0795427295e+04, -1.3752693329e+04
+        },
+        {
+             -1.4013853492e+03, -7.5779404987e+03, -8.3048073336e+03,
+              8.0529241834e+03,  1.2207032372e+04, -4.2759645727e+04,
+              2.2613623394e+04, -1.5293190624e+04
+        },
+        {
+             -1.5785701558e+03,  7.6095593140e+03, -8.4231373030e+03,
+              8.3275780588e+03,  1.2973862830e+04,  4.5824318037e+04,
+              2.4641152854e+04, -1.7065427187e+04
+        },
+        {
+             -1.5370970708e+03, -7.6808976602e+03, -8.5802539836e+03,
+              8.6418853318e+03,  1.3710415159e+04,  4.9052145782e+04,
+              2.6858033923e+04, -1.8758056826e+04
+        },
+        {
+             -1.6073490118e+03, -7.7290647896e+03, -8.7361881399e+03,
+              9.0051816090e+03,  1.4373098777e+04,  5.2239428662e+04,
+              2.9157785959e+04, -2.0297604330e+04
+        },
+        {
+             -1.6443655964e+03, -7.8578643465e+03, -8.9017727434e+03,
+              9.4160690923e+03,  1.4983824626e+04,  5.5337029334e+04,
+              3.1496340360e+04, -2.1481146126e+04
+        },
+        {
+             -1.6726658840e+03, -7.9227574297e+03, -9.0608772100e+03,
+              9.8252887361e+03,  1.5559643683e+04,  5.8480488853e+04,
+              3.3829905277e+04, -2.2214366934e+04
+        },
+        {
+             -1.7529748545e+03, -8.0670711372e+03, -9.2670813137e+03,
+              1.0236701252e+04,  1.6124634005e+04,  6.1681778453e+04,
+              3.5997257993e+04, -2.2145015688e+04
+        },
+        {
+             -1.7493337735e+03, -8.1155073871e+03, -9.4825048315e+03,
+              1.0645346262e+04,  1.6665986271e+04,  6.4897638136e+04,
+              3.7959600164e+04, -2.1461137063e+04
+        },
+        {
+             -1.7207844460e+03, -8.2477806645e+03, -9.7180431426e+03,
+              1.1035221247e+04,  1.7198936130e+04,  6.8053841361e+04,
+              3.9538362860e+04, -2.0052507836e+04
+        },
+        {
+             -1.9100224524e+03, -8.4355931478e+03, -9.9120257376e+03,
+              1.1391513084e+04,  1.7717701345e+04,  7.1157038432e+04,
+              4.0802405874e+04, -1.8929811216e+04
+        },
+        {
+             -1.7417587435e+03, -8.4389666356e+03, -1.0111756050e+04,
+              1.1759179785e+04,  1.8212174533e+04,  7.4197356443e+04,
+              4.1749207881e+04, -1.8857727418e+04
+        },
+        {
+             -1.7381717408e+03, -8.5378433159e+03, -1.0247555105e+04,
+              1.2073974340e+04,  1.8698429688e+04,  7.7076603046e+04,
+              4.2482309245e+04, -2.0887005776e+04
+        },
+        {
+             -1.7609591073e+03, -8.6071558329e+03, -1.0352328657e+04,
+              1.2365121318e+04,  1.9180684108e+04,  7.9844070434e+04,
+              4.3111204593e+04, -2.4432903581e+04
+        },
+        {
+             -1.7541936503e+03, -8.7131580614e+03, -1.0449158382e+04,
+              1.2587415383e+04,  1.9620296684e+04,  8.2474554724e+04,
+              4.3771888350e+04, -2.8613853877e+04
+        },
+        {
+             -1.7342165604e+03, -8.7755952825e+03, -1.0569682379e+04,
+              1.2761797461e+04,  2.0021062033e+04,  8.5058639455e+04,
+              4.4500849885e+04, -3.3029372379e+04
+        },
+        {
+             -1.7274681372e+03, -8.8862614908e+03, -1.0696340980e+04,
+              1.2874687982e+04,  2.0346024908e+04,  8.7561953678e+04,
+              4.5516807578e+04, -3.7234541753e+04
+        },
+        {
+             -1.7630162010e+03, -8.9128773251e+03, -1.0816818292e+04,
+              1.2962646424e+04,  2.0608574510e+04,  9.0019639330e+04,
+              4.6963198194e+04, -4.0743605414e+04
+        },
+        {
+             -1.7932581626e+03, -8.8536224476e+03, -1.0884486612e+04,
+              1.2993589291e+04,  2.0801397916e+04,  9.2270342503e+04,
+              4.8800369327e+04, -4.3375506003e+04
+        },
+        {
+             -1.8271834411e+03, -8.8987431742e+03, -1.0899652817e+04,
+              1.2964022741e+04,  2.0950957324e+04,  9.4107515696e+04,
+              5.1114519445e+04, -4.5379368627e+04
+        },
+        {
+             -1.7942180378e+03, -8.9589134144e+03, -1.0891049184e+04,
+              1.2878045990e+04,  2.1032671223e+04,  9.5499288237e+04,
+              5.3869749385e+04, -4.6258827351e+04
+        },
+        {
+             -1.6742847658e+03, -8.8664155132e+03, -1.0816936504e+04,
+              1.2748575914e+04,  2.1039181007e+04,  9.6156838435e+04,
+              5.7175377159e+04, -4.6608943544e+04
+        },
+        {
+             -1.6608803892e+03,  8.8301462053e+03, -1.0746176672e+04,
+              1.2562894241e+04,  2.0951659328e+04,  9.6035223087e+04,
+              6.0549550235e+04, -4.5714514559e+04
+        },
+        {
+             -1.5346769262e+03,  8.8086460426e+03, -1.0693180348e+04,
+              1.2324990468e+04,  2.0748724464e+04,  9.5055804078e+04,
+              6.4229683791e+04, -4.4682454626e+04
+        },
+        {
+             -1.5119898606e+03,  8.7707792650e+03, -1.0666402626e+04,
+              1.2039043315e+04, -2.0550368792e+04,  9.3290151604e+04,
+              6.7493042374e+04, -4.3080305032e+04
+        },
+        {
+             -1.4747317360e+03, -8.6943442978e+03, -1.0628514285e+04,
+              1.1707888257e+04, -2.0254209733e+04,  9.1025090503e+04,
+              7.0207601824e+04, -4.1300021926e+04
+        },
+        {
+             -1.4511520127e+03, -8.5844887346e+03, -1.0564654740e+04,
+              1.1331865924e+04, -1.9883652225e+04,  8.8460168537e+04,
+              7.1779472753e+04, -3.9350188863e+04
+        },
+        {
+             -1.4776407789e+03, -8.5201940018e+03, -1.0404337874e+04,
+              1.0941438718e+04, -1.9452536326e+04,  8.5719620934e+04,
+              7.1643839012e+04, -3.7531741820e+04
+        },
+        {
+             -1.4647337823e+03, -8.4192487625e+03, -1.0177781339e+04,
+              1.0531526602e+04, -1.8948691466e+04,  8.2970651823e+04,
+              6.9402868216e+04, -3.5427308954e+04
+        },
+        {
+             -1.4873448306e+03,  8.3802328126e+03, -9.9095974770e+03,
+              1.0137071936e+04, -1.8370587635e+04,  7.9915887421e+04,
+              6.5216727593e+04, -3.2455515260e+04
+        },
+        {
+             -1.4675059687e+03,  8.2664391607e+03, -9.7141490853e+03,
+              9.7467591477e+03, -1.7689046597e+04,  7.6591158106e+04,
+              5.9941677163e+04,  2.9780023740e+04
+        },
+        {
+             -1.4855129697e+03,  8.1886820521e+03, -9.6312780322e+03,
+              9.2913542683e+03, -1.6914535722e+04,  7.2841451029e+04,
+              5.4256100293e+04,  2.7050619141e+04
+        },
+        {
+             -1.4748982966e+03,  8.0718212319e+03, -9.5447289989e+03,
+              8.8410028432e+03, -1.6081853104e+04,  6.8621148492e+04,
+              4.9121872054e+04,  2.3467561949e+04
+        }
+    },
+    {
+        {
+             -1.5682306439e+03,  7.8453398739e+03, -9.0822092959e+03,
+              7.7796947623e+03, -1.5335855717e+04, -6.9291892779e+04,
+              4.7650254374e+04,  4.0819202455e+04
+        },
+        {
+             -1.5089580842e+03,  7.8073448078e+03, -8.9100416701e+03,
+              7.5094734680e+03, -1.4131779093e+04, -6.5288037256e+04,
+              4.5245366202e+04,  3.5552276918e+04
+        },
+        {
+             -1.3553078278e+03,  7.6953830853e+03, -8.7931317490e+03,
+              7.3350849415e+03, -1.3094968578e+04, -6.0608632025e+04,
+              4.1418029300e+04,  3.0182438846e+04
+        },
+        {
+             -1.2683355449e+03,  7.6282183471e+03, -8.6868039635e+03,
+              7.1770332329e+03, -1.1812996667e+04, -5.5492058083e+04,
+              3.7270836031e+04,  2.5521139665e+04
+        },
+        {
+             -1.2935756609e+03,  7.5478377572e+03, -8.6180542798e+03,
+              7.1226896735e+03, -1.0684814281e+04, -5.1681280764e+04,
+              3.3971345513e+04,  2.2516324121e+04
+        },
+        {
+             -1.2275044359e+03,  7.4818986691e+03, -8.5153297329e+03,
+              7.1574792194e+03,  9.3861570277e+03, -4.7901690382e+04,
+              3.0531964348e+04,  1.9716979752e+04
+        },
+        {
+             -1.3559642964e+03,  7.3937775490e+03, -8.4323563910e+03,
+              7.2296385985e+03,  8.6395611493e+03, -4.5007718133e+04,
+             -2.8071831881e+04,  1.7843491784e+04
+        },
+        {
+             -1.2246548411e+03,  7.4178583030e+03, -8.3915241110e+03,
+              7.3221247417e+03,  8.0710521417e+03, -4.1948681875e+04,
+             -2.5938538605e+04,  1.6326240783e+04
+        },
+        {
+             -1.2105827548e+03,  7.3810551743e+03, -8.3481165730e+03,
+              7.4465461449e+03,  7.7105682477e+03, -3.7717324399e+04,
+             -2.3810730246e+04,  1.5064838085e+04
+        },
+        {
+             -1.2965994996e+03,  7.3181768620e+03, -8.3086906387e+03,
+              7.5732386471e+03,  7.7099061664e+03, -3.3565212728e+04,
+             -2.2440440953e+04,  1.4390754893e+04
+        },
+        {
+             -1.4010808794e+03,  7.3172660106e+03, -8.2846792417e+03,
+              7.6936660883e+03,  8.0013536855e+03, -2.9120722066e+04,
+             -2.1229895669e+04,  1.3514442373e+04
+        },
+        {
+             -1.4286736586e+03,  7.2668916428e+03, -8.2562922077e+03,
+              7.7856417965e+03,  8.3936204459e+03, -2.7135860195e+04,
+             -1.9769589465e+04, -1.2899571469e+04
+        },
+        {
+             -1.4383981680e+03,  7.2524822116e+03, -8.2110580263e+03,
+              7.8705473896e+03,  8.8901352839e+03, -2.8091821419e+04,
+             -1.7271985499e+04, -1.2451820214e+04
+        },
+        {
+             -1.4185302807e+03,  7.2765404584e+03, -8.1787365070e+03,
+              7.9223356385e+03,  9.2428863882e+03, -3.0691710152e+04,
+             -1.5664694480e+04, -1.1979292380e+04
+        },
+        {
+             -1.4259673084e+03,  7.2216445728e+03, -8.1583277198e+03,
+              7.9237964406e+03,  9.4637301443e+03, -3.3234682710e+04,
+             -1.5682168666e+04, -1.1396429099e+04
+        },
+        {
+             -1.4202065166e+03,  7.2475275163e+03, -8.1151398995e+03,
+              7.8854062750e+03,  9.5203559651e+03, -3.4944916358e+04,
+             -1.7013588108e+04, -1.1706300166e+04
+        },
+        {
+             -1.4067033458e+03,  7.2225387744e+03, -8.0826636659e+03,
+              7.8228578946e+03,  9.4197991838e+03, -3.5442515494e+04,
+             -1.8338880060e+04, -1.2844834095e+04
+        },
+        {
+             -1.3723087322e+03,  7.2096615767e+03, -8.0540859197e+03,
+              7.7179291999e+03,  9.1934580142e+03, -3.5768275517e+04,
+             -1.9727135495e+04, -1.3942343617e+04
+        },
+        {
+             -1.3328414272e+03,  7.2110869686e+03, -8.0541029966e+03,
+              7.6013203699e+03,  8.9836951814e+03, -3.6437452814e+04,
+             -2.0418070687e+04, -1.4703082165e+04
+        },
+        {
+             -1.4391176103e+03,  7.2287943634e+03, -8.0550671585e+03,
+              7.4739816138e+03,  8.8246863565e+03, -3.7833338193e+04,
+             -2.0566683751e+04, -1.5402644690e+04
+        },
+        {
+             -1.3947753407e+03,  7.2488416694e+03, -8.0250899137e+03,
+              7.3941409523e+03,  8.8307338708e+03, -3.9264212796e+04,
+             -2.0627718704e+04, -1.6157918155e+04
+        },
+        {
+             -1.4358798690e+03,  7.3018246526e+03, -8.0017250010e+03,
+              7.3230484839e+03,  9.0021226885e+03, -4.0627448674e+04,
+             -2.1133570466e+04, -1.6789598453e+04
+        },
+        {
+             -1.4924965205e+03,  7.3395961250e+03, -8.0403221127e+03,
+              7.2600433186e+03,  9.4251524858e+03, -4.2073240664e+04,
+             -2.2246651618e+04, -1.8111741466e+04
+        },
+        {
+             -1.4447179978e+03,  7.3533699810e+03, -8.0798260061e+03,
+              7.2402509270e+03,  9.9396543079e+03, -4.3455764471e+04,
+             -2.3461389452e+04, -1.9542627234e+04
+        },
+        {
+             -1.4730056179e+03,  7.3691814505e+03, -8.1121323702e+03,
+              7.3266196650e+03,  1.0633984382e+04, -4.5419621415e+04,
+             -2.5041159576e+04,  2.1808228116e+04
+        },
+        {
+             -1.5020461869e+03,  7.4495200955e+03, -8.1441843686e+03,
+              7.4653349603e+03,  1.1258304827e+04, -4.7520829594e+04,
+             -2.6640351646e+04,  2.4023527562e+04
+        },
+        {
+             -1.4492175703e+03,  7.4904383675e+03, -8.2473463591e+03,
+              7.6299659822e+03,  1.2025999962e+04, -5.0374805426e+04,
+             -2.8757707811e+04,  2.6978288585e+04
+        },
+        {
+             -1.5214366829e+03,  7.5553005857e+03, -8.3588797760e+03,
+              7.8242816483e+03,  1.2668490418e+04, -5.3085557376e+04,
+             -3.0755659061e+04,  2.9842755861e+04
+        },
+        {
+             -1.5506640910e+03,  7.6395807973e+03, -8.4507355729e+03,
+              8.1211000364e+03,  1.3258238553e+04, -5.5937922428e+04,
+             -3.2929908750e+04,  3.2887116536e+04
+        },
+        {
+             -1.3408822553e+03, -7.4822241332e+03, -8.5454934798e+03,
+              8.5313231261e+03,  1.3882409811e+04, -5.9421572503e+04,
+             -3.5570832721e+04,  3.6163105211e+04
+        },
+        {
+             -1.5808965040e+03,  7.6974065711e+03, -8.7214073293e+03,
+              8.8226273081e+03,  1.4443196610e+04, -6.2510057790e+04,
+             -3.7793942086e+04,  3.8998124010e+04
+        },
+        {
+             -1.6145351107e+03,  7.8188184939e+03, -8.9467128872e+03,
+              9.1567982965e+03,  1.5091162781e+04, -6.6289517117e+04,
+             -4.0351245562e+04,  4.1408356971e+04
+        },
+        {
+             -1.6192969637e+03,  7.8948406387e+03, -9.0833120642e+03,
+              9.5091309934e+03,  1.5583152291e+04, -6.9498152086e+04,
+             -4.2335058857e+04,  4.2679422096e+04
+        },
+        {
+             -1.6288128212e+03,  8.0157153114e+03, -9.2185802112e+03,
+              9.9408071312e+03,  1.6136799797e+04, -7.3345220924e+04,
+             -4.4544784124e+04,  4.2723322040e+04
+        },
+        {
+             -1.6716692299e+03,  8.0902252298e+03, -9.3982029088e+03,
+              1.0255633283e+04,  1.6626433281e+04, -7.6607834508e+04,
+             -4.6081248081e+04,  4.2312911765e+04
+        },
+        {
+             -1.6735555117e+03, -8.1519011838e+03, -9.5908266042e+03,
+              1.0523599507e+04,  1.7124114574e+04, -7.9726693418e+04,
+             -4.7513996087e+04,  4.1046898597e+04
+        },
+        {
+             -1.6341319765e+03, -8.3091519263e+03, -9.7830834779e+03,
+              1.0819908406e+04,  1.7666780000e+04, -8.3286475853e+04,
+             -4.8871450706e+04,  3.9852911500e+04
+        },
+        {
+             -1.7344111764e+03, -8.2788934011e+03, -9.8712063182e+03,
+              1.1081357820e+04,  1.8096545052e+04, -8.6240293588e+04,
+             -4.9917479850e+04, -4.0478046541e+04
+        },
+        {
+             -1.7753377745e+03, -8.4340773818e+03, -9.9543330302e+03,
+              1.1345656391e+04,  1.8579579546e+04, -8.9572832803e+04,
+             -5.0982251931e+04, -4.3313991202e+04
+        },
+        {
+             -1.7924648184e+03, -8.4720505854e+03, -1.0006392180e+04,
+              1.1507411198e+04,  1.8969316238e+04, -9.2299400973e+04,
+             -5.1879261807e+04, -4.6718412887e+04
+        },
+        {
+             -1.8559809582e+03, -8.4654843903e+03, -1.0091468301e+04,
+              1.1633509364e+04,  1.9371114007e+04, -9.5382010074e+04,
+             -5.3030077004e+04, -5.1588907547e+04
+        },
+        {
+             -1.8980249238e+03, -8.5251833844e+03, -1.0172316260e+04,
+              1.1681233481e+04, -1.9711717203e+04, -9.7840584783e+04,
+             -5.4323837118e+04, -5.5823196181e+04
+        },
+        {
+             -1.9653807730e+03, -8.5631737619e+03, -1.0231174736e+04,
+              1.1699813138e+04, -2.0085040883e+04, -1.0017702698e+05,
+             -5.5963511791e+04, -5.9258969351e+04
+        },
+        {
+             -1.9772516351e+03, -8.6243112642e+03, -1.0238047319e+04,
+              1.1648989007e+04, -2.0437975179e+04, -1.0245961896e+05,
+             -5.8338372630e+04, -6.3180384604e+04
+        },
+        {
+             -1.9460753122e+03, -8.6013606169e+03, -1.0208333248e+04,
+              1.1567644937e+04, -2.0666311138e+04, -1.0388389768e+05,
+             -6.0832643562e+04,  6.6030641540e+04
+        },
+        {
+             -1.8681888833e+03, -8.5802339677e+03, -1.0157623043e+04,
+              1.1416913785e+04, -2.0813237422e+04, -1.0458756590e+05,
+             -6.3900967703e+04,  6.8472978807e+04
+        },
+        {
+             -1.8262353665e+03, -8.5640373609e+03, -1.0124400240e+04,
+              1.1219895791e+04, -2.0849055747e+04, -1.0444469408e+05,
+              6.7180709582e+04,  6.9467948434e+04
+        },
+        {
+             -1.8313888921e+03, -8.4755812812e+03, -1.0135609220e+04,
+              1.0911014103e+04, -2.0734512905e+04, -1.0328483337e+05,
+              7.1140843210e+04,  6.9633206146e+04
+        },
+        {
+             -1.8832182650e+03, -8.4290122041e+03, -1.0160716463e+04,
+              1.0590305239e+04, -2.0518667114e+04, -1.0137174380e+05,
+              7.3989279028e+04,  6.9406945260e+04
+        },
+        {
+             -1.8090109759e+03, -8.4277948233e+03, -1.0135489950e+04,
+              1.0237232479e+04, -2.0225677833e+04, -9.8846012908e+04,
+              7.5968800001e+04,  6.9424134685e+04
+        },
+        {
+             -1.8115569485e+03, -8.2977806941e+03, -9.9468680789e+03,
+              9.8654363701e+03, -1.9775715499e+04, -9.5251497680e+04,
+              7.6211017851e+04,  6.9214243295e+04
+        },
+        {
+             -1.7985263847e+03, -8.2441125422e+03, -9.7552633857e+03,
+              9.5730601743e+03, -1.9288144500e+04, -9.1726367545e+04,
+              7.4260049640e+04,  6.7606533079e+04
+        },
+        {
+             -1.7734302157e+03, -8.1876116140e+03, -9.5494151424e+03,
+              9.2027400799e+03, -1.8595245450e+04, -8.7332480588e+04,
+              6.9984333181e+04,  6.3366602978e+04
+        },
+        {
+             -1.7358760803e+03, -8.0478529381e+03, -9.4174332736e+03,
+              8.8479638277e+03, -1.7919366836e+04, -8.3364160644e+04,
+              6.4750246089e+04,  5.8453727053e+04
+        },
+        {
+             -1.6945043673e+03, -7.9942115884e+03, -9.3196819134e+03,
+              8.4179234130e+03, -1.7042802995e+04, -7.8439677711e+04,
+              5.8344988175e+04,  5.3010308986e+04
+        },
+        {
+             -1.6070489054e+03,  7.8984392403e+03, -9.2045715231e+03,
+              8.0590284609e+03, -1.6223760791e+04, -7.4028248380e+04,
+              5.2835425232e+04,  4.7279041486e+04
+        }
+    },
+    {
+        {
+             -1.4281608474e+03,  8.0759313887e+03, -9.2995546631e+03,
+              7.6786335530e+03, -1.5411657992e+04, -6.6880665272e+04,
+              4.5359561191e+04,  4.6767223824e+04
+        },
+        {
+             -1.4927541698e+03,  7.9498168963e+03, -9.0549696189e+03,
+              7.4231758304e+03, -1.4079307578e+04, -6.4279534440e+04,
+             -4.5508566928e+04,  4.2698444335e+04
+        },
+        {
+             -1.5263119688e+03,  7.8558262406e+03, -8.9707931084e+03,
+              7.2008695603e+03, -1.2829416679e+04, -5.9210759790e+04,
+             -4.0678786335e+04,  3.5707304133e+04
+        },
+        {
+             -1.5067376290e+03,  7.8431894098e+03, -8.8826051308e+03,
+              7.0460286130e+03, -1.1569435111e+04, -5.4730446918e+04,
+             -3.6500103152e+04,  2.9703345346e+04
+        },
+        {
+             -1.4088900191e+03,  7.7999077977e+03, -8.7808584763e+03,
+              7.0532540926e+03, -1.0344006113e+04, -5.0759985147e+04,
+             -3.2930394103e+04,  2.5336157647e+04
+        },
+        {
+             -1.5968589569e+03,  7.8715362905e+03, -8.6840502834e+03,
+              7.1134107861e+03,  9.5038983147e+03, -4.7065572572e+04,
+             -2.9945781650e+04,  2.1828434302e+04
+        },
+        {
+             -1.3842971194e+03,  7.6436204108e+03, -8.6667532666e+03,
+              7.1842313721e+03,  8.9497952300e+03, -4.3181442426e+04,
+             -2.7400314773e+04,  1.9209116821e+04
+        },
+        {
+             -1.4805663257e+03,  7.6471771380e+03, -8.6268338120e+03,
+              7.2649834662e+03,  8.6738934069e+03, -3.8936447838e+04,
+             -2.5270251337e+04, -1.7521780197e+04
+        },
+        {
+             -1.5664597106e+03,  7.5981572891e+03, -8.5866959531e+03,
+              7.3955909948e+03,  8.6507839035e+03, -3.4825757686e+04,
+             -2.3603741132e+04, -1.6377832740e+04
+        },
+        {
+             -1.5448719572e+03,  7.6086108193e+03, -8.5270348624e+03,
+              7.5087056247e+03,  8.7980725230e+03, -3.1960279199e+04,
+             -2.2055276331e+04, -1.5675768619e+04
+        },
+        {
+             -1.6434773822e+03,  7.5060317402e+03, -8.5035561623e+03,
+              7.5944502052e+03,  9.0437258931e+03, -3.1210974365e+04,
+             -2.0507831548e+04, -1.5296904368e+04
+        },
+        {
+             -1.5580499338e+03,  7.5282620038e+03, -8.4540122123e+03,
+              7.6247389996e+03,  9.2440310997e+03, -3.2191020572e+04,
+             -1.9413325372e+04, -1.4903094982e+04
+        },
+        {
+             -1.4934346159e+03,  7.5165942174e+03, -8.4247812483e+03,
+              7.6052657240e+03,  9.3681218917e+03, -3.3825243121e+04,
+             -1.9420625048e+04, -1.4727032655e+04
+        },
+        {
+             -1.4547532986e+03,  7.5451665225e+03, -8.3810383854e+03,
+              7.5627257943e+03,  9.3914051622e+03, -3.5415761714e+04,
+             -2.0434956541e+04, -1.4932149383e+04
+        },
+        {
+             -1.4925971385e+03,  7.5040952289e+03, -8.3598533177e+03,
+              7.4951478091e+03,  9.3835770137e+03, -3.6999282271e+04,
+             -2.1537215382e+04, -1.5659107731e+04
+        },
+        {
+             -1.4468791986e+03,  7.4599558122e+03, -8.3565832465e+03,
+              7.4096787426e+03,  9.4207577611e+03, -3.8812284226e+04,
+             -2.2276038613e+04, -1.6978975349e+04
+        },
+        {
+             -1.4700967867e+03,  7.5214188927e+03, -8.3812864039e+03,
+              7.2932068324e+03,  9.5932130597e+03, -4.0815542611e+04,
+             -2.2794510875e+04, -1.8470875330e+04
+        },
+        {
+             -1.4848152198e+03,  7.5528998694e+03, -8.4014572193e+03,
+              7.2492925341e+03,  9.9098827412e+03, -4.2870215785e+04,
+             -2.3675029270e+04, -2.0012509839e+04
+        },
+        {
+             -1.4878866732e+03,  7.5723441195e+03, -8.3980250935e+03,
+              7.3092934326e+03,  1.0373634755e+04, -4.4883681156e+04,
+             -2.4878468155e+04, -2.1958447674e+04
+        },
+        {
+             -1.4809240132e+03,  7.6619179851e+03, -8.4394935203e+03,
+              7.3726507964e+03,  1.0975177037e+04, -4.7056226772e+04,
+             -2.6617969216e+04, -2.4316228686e+04
+        },
+        {
+             -1.5017262484e+03,  7.7260443709e+03, -8.5471338725e+03,
+              7.4427585034e+03,  1.1692623772e+04, -4.9494626560e+04,
+             -2.8708950584e+04,  2.6897688836e+04
+        },
+        {
+             -1.5426760071e+03,  7.7827742552e+03, -8.5981701342e+03,
+              7.6656868657e+03,  1.2386380465e+04, -5.2229356483e+04,
+             -3.1016582688e+04, -3.0206453638e+04
+        },
+        {
+             -1.5047291144e+03,  7.8503222576e+03, -8.6484240393e+03,
+              8.0217902873e+03,  1.3047853242e+04, -5.5277940483e+04,
+             -3.3566726340e+04,  3.4263563578e+04
+        },
+        {
+             -1.5106223457e+03,  7.9163680681e+03, -8.7947484981e+03,
+              8.2938659237e+03,  1.3773275483e+04, -5.8569206273e+04,
+             -3.6274292358e+04,  3.8136109333e+04
+        },
+        {
+             -1.4701475028e+03,  7.9865780240e+03, -9.0477631995e+03,
+              8.5792716248e+03,  1.4500144935e+04, -6.2153086242e+04,
+             -3.9035371137e+04,  4.2179920157e+04
+        },
+        {
+             -1.5172851524e+03,  8.1164460585e+03, -9.1672109674e+03,
+              8.9951224218e+03,  1.5144532310e+04, -6.6059257495e+04,
+             -4.1780060316e+04,  4.5911401492e+04
+        },
+        {
+             -1.6199185094e+03,  8.2191284449e+03, -9.1803031868e+03,
+              9.4535533553e+03,  1.5771951181e+04, -7.0159021899e+04,
+             -4.4314343514e+04,  4.9139913943e+04
+        },
+        {
+             -1.5044222082e+03,  8.2737644025e+03, -9.4033913095e+03,
+              9.7919628090e+03,  1.6426205433e+04, -7.4260258851e+04,
+             -4.6604563578e+04,  5.0939067242e+04
+        },
+        {
+             -1.5056048443e+03,  8.3528698867e+03, -9.7017788033e+03,
+              1.0069481607e+04,  1.7058706684e+04, -7.8455952607e+04,
+             -4.8661212697e+04,  5.2530567792e+04
+        },
+        {
+             -1.6488983053e+03,  8.4537569828e+03, -9.9172866987e+03,
+              1.0371272682e+04,  1.7652550750e+04, -8.2555817303e+04,
+             -5.0368103852e+04,  5.3369692812e+04
+        },
+        {
+             -1.6429237552e+03,  8.5177741837e+03, -9.9913052480e+03,
+              1.0631651963e+04,  1.8225733596e+04, -8.6465987843e+04,
+             -5.1922668081e+04,  5.4216623467e+04
+        },
+        {
+             -1.7156558553e+03,  8.6135040427e+03, -1.0014128211e+04,
+              1.0847783170e+04, -1.8922543518e+04, -9.0208212399e+04,
+             -5.3312382568e+04,  5.5442593959e+04
+        },
+        {
+             -1.7980961333e+03,  8.6238841618e+03, -1.0057930497e+04,
+              1.0979282316e+04, -1.9556338991e+04, -9.3688472668e+04,
+             -5.4762223945e+04,  5.7983625026e+04
+        },
+        {
+             -1.8707884688e+03,  8.6934843052e+03, -1.0119337383e+04,
+              1.1029509133e+04, -2.0088556384e+04, -9.6561589577e+04,
+             -5.6257904224e+04,  6.1094464093e+04
+        },
+        {
+             -1.9239382687e+03, -8.7291941621e+03, -1.0145908505e+04,
+              1.1022841869e+04, -2.0516919598e+04,  9.8975211823e+04,
+             -5.8252745630e+04,  6.5371399379e+04
+        },
+        {
+             -1.9790168045e+03, -8.7106137831e+03, -1.0123386635e+04,
+              1.0951130932e+04, -2.0807500298e+04,  1.0067019333e+05,
+             -6.0582244784e+04,  6.9156219623e+04
+        },
+        {
+             -1.9944418916e+03,  8.8625945809e+03, -1.0104413639e+04,
+              1.0793889153e+04, -2.0954952759e+04,  1.0096808696e+05,
+             -6.2907385646e+04,  7.2240603385e+04
+        },
+        {
+             -2.0065432673e+03, -8.7176685422e+03, -1.0085673461e+04,
+              1.0579921003e+04, -2.0935407430e+04, -9.9768838758e+04,
+              6.5464526061e+04,  7.3942582703e+04
+        },
+        {
+             -1.9612570380e+03, -8.6354586342e+03, -1.0138752189e+04,
+              1.0307018226e+04, -2.0704705502e+04, -9.7810636088e+04,
+              6.7908239061e+04,  7.5260350871e+04
+        },
+        {
+             -1.8231130927e+03, -8.5173460228e+03, -1.0198987087e+04,
+              9.9506460686e+03, -2.0309922829e+04, -9.4854275589e+04,
+              6.9565318307e+04,  7.5769351443e+04
+        },
+        {
+             -1.7156540507e+03, -8.4591607215e+03, -1.0108334230e+04,
+              9.5653071006e+03, -1.9802353369e+04, -9.0997579214e+04,
+              6.9410745088e+04,  7.5458052681e+04
+        },
+        {
+             -1.6779251503e+03,  8.4481281102e+03, -9.8363481010e+03,
+              9.2032457859e+03, -1.9219797761e+04, -8.6691527508e+04,
+              6.7448073710e+04,  7.3055557444e+04
+        },
+        {
+             -1.5936591330e+03,  8.3597212664e+03, -9.5521425929e+03,
+              8.8646709945e+03, -1.8469856723e+04, -8.1876488889e+04,
+              6.3194747669e+04,  6.8205697523e+04
+        },
+        {
+             -1.4840466098e+03,  8.3283803012e+03, -9.4416334242e+03,
+              8.4584224181e+03, -1.7550920250e+04, -7.7001696206e+04,
+              5.7600230353e+04,  6.1382192817e+04
+        },
+        {
+             -1.4796450330e+03,  8.2461131054e+03, -9.4091145795e+03,
+              8.0170698308e+03, -1.6508108681e+04, -7.1956857201e+04,
+              5.1375863701e+04,  5.4204683653e+04
+        }
+    },
+    {
+        {
+             -1.3565181660e+03,  8.2974230656e+03, -9.2269678644e+03,
+              7.7260847399e+03, -1.4805810221e+04,  5.6776427194e+04,
+              3.7386427837e+04,  3.5363477214e+04
+        },
+        {
+             -1.3758372588e+03,  8.1592778630e+03, -9.2047849618e+03,
+              7.4523016593e+03, -1.3664085466e+04, -5.2881357767e+04,
+              3.3437218993e+04,  3.2133545277e+04
+        },
+        {
+             -1.5424239199e+03,  8.0485771821e+03, -9.2076876746e+03,
+              7.2201787822e+03, -1.2538417400e+04, -4.9711489645e+04,
+              3.0070368091e+04,  2.8947129929e+04
+        },
+        {
+             -1.7104975929e+03, -7.9624645426e+03, -9.1235763784e+03,
+              7.1458947822e+03, -1.1493909775e+04, -4.6664687566e+04,
+              2.7198034729e+04,  2.6331077094e+04
+        },
+        {
+             -1.6918101891e+03,  7.8946749930e+03, -8.9845921635e+03,
+              7.1862880407e+03,  1.0705056900e+04, -4.3799701857e+04,
+              2.4857824851e+04,  2.4390429333e+04
+        },
+        {
+             -1.6874257801e+03,  7.8622830735e+03, -8.9311994528e+03,
+              7.2315740197e+03,  1.0196122773e+04, -4.0949759291e+04,
+             -2.3313885627e+04,  2.2683711028e+04
+        },
+        {
+             -1.7604554783e+03,  7.8587944799e+03, -8.9102369606e+03,
+              7.2247121455e+03,  9.9355913855e+03, -3.8266858795e+04,
+             -2.2204977159e+04,  2.1375300284e+04
+        },
+        {
+             -1.7568754359e+03,  7.7736235242e+03, -8.9089998031e+03,
+              7.2528475463e+03,  9.8562498671e+03, -3.6106106926e+04,
+             -2.1453032160e+04,  2.0410979131e+04
+        },
+        {
+             -1.7691881837e+03,  7.7333685405e+03, -8.8937870055e+03,
+              7.2828328718e+03,  9.8907408415e+03, -3.4884246202e+04,
+             -2.1015579300e+04,  1.9669154451e+04
+        },
+        {
+             -1.6892249859e+03,  7.7111559239e+03, -8.8458338599e+03,
+              7.3172473685e+03,  9.9701128461e+03, -3.4690402304e+04,
+             -2.0860346174e+04, -1.9170267460e+04
+        },
+        {
+             -1.5670439118e+03, -7.7232880835e+03, -8.8269511157e+03,
+              7.3158157459e+03,  1.0098791527e+04, -3.5399623223e+04,
+             -2.0960614969e+04, -1.9044386816e+04
+        },
+        {
+             -1.6862716614e+03,  7.8587067938e+03, -8.7948332341e+03,
+              7.3166141797e+03,  1.0259174232e+04, -3.6731663339e+04,
+             -2.1042235547e+04,  1.9468650298e+04
+        },
+        {
+             -1.5609442832e+03,  7.7011245352e+03, -8.7682106876e+03,
+              7.3237375571e+03,  1.0465014250e+04, -3.8502883036e+04,
+             -2.1111080828e+04, -2.0370198404e+04
+        },
+        {
+             -1.5398356824e+03,  7.7849585517e+03, -8.7506842918e+03,
+              7.3879750400e+03,  1.0749197611e+04, -4.0592762645e+04,
+             -2.1429492602e+04,  2.1674143031e+04
+        },
+        {
+             -1.5662534880e+03,  7.8248997964e+03, -8.7209699656e+03,
+              7.4819365536e+03,  1.1150157518e+04, -4.2765485143e+04,
+             -2.2044731393e+04,  2.2938894020e+04
+        },
+        {
+             -1.5178914384e+03,  7.9608655969e+03, -8.7962360901e+03,
+              7.5366470501e+03,  1.1700941830e+04, -4.4988665559e+04,
+             -2.3064639131e+04,  2.4696229284e+04
+        },
+        {
+             -1.2629004011e+03, -7.9658337008e+03, -8.9260862552e+03,
+              7.6028010247e+03,  1.2352665209e+04, -4.7208276539e+04,
+             -2.4283122990e+04,  2.6375179390e+04
+        },
+        {
+             -1.4706007897e+03,  8.0124558197e+03, -8.9900908333e+03,
+              7.8785316126e+03,  1.2988097675e+04, -4.9608112766e+04,
+             -2.5780756828e+04, -2.8456833071e+04
+        },
+        {
+             -1.4625802085e+03,  8.1217455938e+03, -8.9676775466e+03,
+              8.2323148113e+03,  1.3644424484e+04, -5.2139364035e+04,
+              2.7657651593e+04, -3.0679957052e+04
+        },
+        {
+             -1.5430452962e+03,  8.2147018060e+03, -9.1199541023e+03,
+              8.5292405436e+03,  1.4347026296e+04,  5.4918719530e+04,
+              2.9799356241e+04, -3.3261579435e+04
+        },
+        {
+             -1.6662622507e+03,  8.2204745301e+03, -9.4164838412e+03,
+              8.7738738615e+03,  1.5021847782e+04,  5.8056578055e+04,
+              3.2025611221e+04, -3.5353939816e+04
+        },
+        {
+             -1.7064087089e+03, -8.3153592940e+03, -9.6251005510e+03,
+              9.0945180474e+03,  1.5667033568e+04,  6.1447454457e+04,
+              3.4321088321e+04, -3.7509495210e+04
+        },
+        {
+             -1.7435835999e+03, -8.3862327183e+03, -9.6320321491e+03,
+              9.4363677310e+03, -1.6427299231e+04,  6.4952412586e+04,
+              3.6542887137e+04, -3.9445891700e+04
+        },
+        {
+             -1.8366283102e+03, -8.5021328620e+03, -9.6551885578e+03,
+              9.7139245714e+03, -1.7204586741e+04,  6.8499442969e+04,
+              3.8770685119e+04, -4.0846585856e+04
+        },
+        {
+             -1.7808380951e+03, -8.5858626621e+03, -9.7163424760e+03,
+              9.9040116754e+03, -1.7870066422e+04,  7.1741414811e+04,
+              4.0800494170e+04, -4.2254249921e+04
+        },
+        {
+             -1.7678755196e+03, -8.5784770153e+03, -9.8425755141e+03,
+              1.0048454401e+04, -1.8438401470e+04,  7.4724756106e+04,
+              4.2862937710e+04, -4.3933934556e+04
+        },
+        {
+             -1.7641408470e+03,  8.6466427433e+03, -9.9622661951e+03,
+              1.0116751825e+04, -1.8883922561e+04,  7.7137908904e+04,
+              4.4982703429e+04, -4.5508073051e+04
+        },
+        {
+             -1.6839276049e+03, -8.6774415409e+03, -1.0028718211e+04,
+              1.0110973565e+04, -1.9211105607e+04,  7.8639385707e+04,
+              4.6972675562e+04, -4.6888080855e+04
+        },
+        {
+             -1.6791000375e+03, -8.6425584733e+03, -1.0029285479e+04,
+              1.0025326257e+04, -1.9406468312e+04,  7.9117697838e+04,
+              4.8787555355e+04, -4.7983453465e+04
+        },
+        {
+             -1.7463673405e+03, -8.6866569392e+03, -9.9373296558e+03,
+              9.8621431555e+03, -1.9457480798e+04,  7.8617550514e+04,
+              5.0303543671e+04, -4.8782761914e+04
+        },
+        {
+             -1.7902733042e+03, -8.6254759592e+03, -9.8086014610e+03,
+              9.6394800163e+03, -1.9335409206e+04,  7.6982972436e+04,
+              5.1165403463e+04, -4.9180576281e+04
+        },
+        {
+             -1.7828109054e+03,  8.5962765123e+03, -9.7157373107e+03,
+              9.3666125735e+03, -1.8990003476e+04,  7.4575545985e+04,
+              5.1368509348e+04, -4.8667613843e+04
+        },
+        {
+             -1.7046189016e+03,  8.4858483608e+03, -9.7472508100e+03,
+              9.0367475319e+03, -1.8385416818e+04,  7.1583564129e+04,
+              5.0534063914e+04, -4.7934830389e+04
+        },
+        {
+             -1.6023414057e+03, -8.3851946506e+03, -9.8166121604e+03,
+              8.6454569836e+03, -1.7600590997e+04,  6.8138405920e+04,
+              4.8483458328e+04, -4.5919184167e+04
+        },
+        {
+             -1.5159939494e+03,  8.3362367814e+03, -9.7265565845e+03,
+              8.2663034340e+03, -1.6756622015e+04,  6.4480045261e+04,
+              4.5468712296e+04,  4.3029228343e+04
+        },
+        {
+             -1.4194904399e+03,  8.2923328778e+03, -9.4557102786e+03,
+              7.9784260390e+03, -1.5847051869e+04,  6.0601796616e+04,
+              4.1629294563e+04,  3.9629761944e+04
+        }
+    },
+    {
+        {
+             -1.4923021537e+03, -7.8463596999e+03, -9.1415002140e+03,
+              7.5213125697e+03, -1.3982159295e+04,  5.5443245571e+04,
+              3.8843594272e+04, -3.2318919392e+04
+        },
+        {
+             -1.5222285458e+03, -7.7820007548e+03, -8.9749176702e+03,
+              7.3435294851e+03, -1.2754309259e+04,  5.1234723328e+04,
+              3.4537438817e+04, -2.9132687427e+04
+        },
+        {
+             -1.4925886363e+03,  7.7081654581e+03, -8.9447345896e+03,
+              7.1036502012e+03,  1.1616324004e+04, -4.7593051319e+04,
+              3.0825786765e+04, -2.6413909115e+04
+        },
+        {
+             -1.3751816142e+03, -7.6884252365e+03, -8.8906154148e+03,
+              6.9855209696e+03,  1.0902490396e+04, -4.4267671974e+04,
+              2.7966757237e+04,  2.4364595410e+04
+        },
+        {
+             -1.4626051772e+03,  7.6367682882e+03, -8.8186174826e+03,
+              7.0424319816e+03,  1.0413706082e+04, -4.1335845267e+04,
+              2.5999113447e+04,  2.2989132400e+04
+        },
+        {
+             -1.4426676439e+03,  7.5451120029e+03, -8.7383346118e+03,
+              7.1289329825e+03,  1.0206749191e+04, -3.9231332488e+04,
+              2.4866707503e+04,  2.2064977004e+04
+        },
+        {
+             -1.3828273598e+03,  7.4571865386e+03, -8.6798965644e+03,
+              7.1788217819e+03,  1.0230590199e+04, -3.8479130260e+04,
+              2.4366940990e+04,  2.1523183076e+04
+        },
+        {
+             -1.3013493952e+03, -7.4310933234e+03, -8.6549766062e+03,
+              7.2156766939e+03,  1.0394405562e+04, -3.9160999754e+04,
+              2.4087012196e+04,  2.1661532838e+04
+        },
+        {
+             -1.3437447905e+03,  7.5498920295e+03, -8.6639713588e+03,
+              7.2040554432e+03,  1.0710849450e+04, -4.1015590874e+04,
+              2.3905552820e+04, -2.2270252877e+04
+        },
+        {
+             -1.3785090226e+03, -7.6039162709e+03, -8.7075285445e+03,
+              7.2080649822e+03,  1.1206821858e+04, -4.3540646176e+04,
+              2.4100957678e+04,  2.3522591343e+04
+        },
+        {
+             -1.3272531436e+03, -7.6280098603e+03, -8.7455682866e+03,
+              7.3548516289e+03,  1.1811072699e+04, -4.6369420518e+04,
+              2.5190570363e+04, -2.5141016582e+04
+        },
+        {
+             -1.2976543808e+03,  7.6798821033e+03, -8.7511141544e+03,
+              7.7026902627e+03,  1.2459066176e+04, -4.9274652708e+04,
+              2.7046707400e+04, -2.7015368941e+04
+        },
+        {
+             -1.3549739021e+03, -7.7027451038e+03, -8.8770332683e+03,
+              7.9782256141e+03,  1.3270871928e+04,  5.2540272744e+04,
+              2.9452995888e+04, -2.9189214346e+04
+        },
+        {
+             -1.5025434230e+03, -7.9038551890e+03, -9.1114968571e+03,
+              8.1916596429e+03,  1.4183363854e+04,  5.6311753286e+04,
+              3.2223163222e+04, -3.1259671249e+04
+        },
+        {
+             -1.5318173210e+03, -7.9745895076e+03, -9.2660191659e+03,
+              8.5996894027e+03,  1.4960782803e+04,  6.0268182924e+04,
+              3.5166987610e+04, -3.3878810592e+04
+        },
+        {
+             -1.6600548944e+03, -8.0083662760e+03, -9.2657637028e+03,
+              9.0247645213e+03, -1.5764656179e+04,  6.4248065266e+04,
+              3.8194522794e+04, -3.5954168687e+04
+        },
+        {
+             -1.5279075684e+03,  7.9901657776e+03, -9.3490519371e+03,
+              9.3018937731e+03, -1.6533448139e+04,  6.7937494861e+04,
+              4.1204358557e+04, -3.7933766622e+04
+        },
+        {
+             -1.4708041186e+03,  8.1717485690e+03, -9.4654822696e+03,
+              9.4013756930e+03, -1.7147710391e+04,  7.0846852772e+04,
+              4.4082530434e+04, -3.9857503059e+04
+        },
+        {
+             -1.5613746730e+03,  8.1820527016e+03, -9.5425529443e+03,
+              9.3964527138e+03, -1.7536989387e+04,  7.2472418603e+04,
+              4.6597212531e+04, -4.1050209774e+04
+        },
+        {
+             -1.5210704396e+03,  8.2126062757e+03, -9.5234671204e+03,
+              9.2920562372e+03, -1.7652839912e+04,  7.2534031424e+04,
+              4.8443751011e+04, -4.1970880113e+04
+        },
+        {
+             -1.5703177110e+03,  8.1993036405e+03, -9.4312119463e+03,
+              9.0861068275e+03, -1.7472138033e+04,  7.0912490114e+04,
+              4.9309192829e+04, -4.1501796657e+04
+        },
+        {
+             -1.6101536431e+03, -8.1056298566e+03, -9.3801158980e+03,
+              8.7475833358e+03, -1.6977919496e+04,  6.8015824006e+04,
+              4.8715437354e+04, -4.0368480204e+04
+        },
+        {
+             -1.5254377505e+03, -7.9728557544e+03, -9.3986240788e+03,
+              8.2557572025e+03, -1.6202608865e+04,  6.4208485288e+04,
+              4.6670554957e+04, -3.8694509933e+04
+        },
+        {
+             -1.4078039656e+03, -7.9367909524e+03, -9.3724472227e+03,
+              7.7876824229e+03, -1.5199094236e+04,  5.9947230479e+04,
+              4.3307706795e+04, -3.5528973884e+04
+        }
+    },
+    {
+        {
+             -1.5113761920e+03, -7.9645215937e+03, -9.1572745771e+03,
+              7.8033841019e+03, -1.3688129082e+04,  5.3174207826e+04,
+              3.6007933753e+04, -2.8859667868e+04
+        },
+        {
+             -1.5168344443e+03, -7.7787403723e+03, -9.1175023632e+03,
+              7.4770926957e+03,  1.2578832851e+04,  5.0143305250e+04,
+              3.3200756694e+04, -2.8510821034e+04
+        },
+        {
+             -1.5481870828e+03, -7.8148273624e+03, -9.1073982484e+03,
+              7.2505859158e+03,  1.1942119858e+04, -4.8063297730e+04,
+              3.1043266190e+04, -2.8165631145e+04
+        },
+        {
+             -1.3779647408e+03, -7.7662605480e+03, -9.0298432099e+03,
+              7.2302547106e+03,  1.1745959516e+04, -4.7177467932e+04,
+              2.9848416765e+04,  2.7916160608e+04
+        },
+        {
+             -1.3571813934e+03, -7.7819024684e+03, -9.0292820425e+03,
+              7.3297979808e+03,  1.1969183832e+04, -4.7878292013e+04,
+              2.9258470206e+04, -2.7958437450e+04
+        },
+        {
+             -1.4184499472e+03, -7.7779204691e+03, -9.0035606041e+03,
+              7.5949324372e+03,  1.2515478584e+04, -4.9692119218e+04,
+              2.9513895504e+04, -2.8014375773e+04
+        },
+        {
+             -1.4154513330e+03, -7.8804740553e+03, -9.0121948693e+03,
+              7.9907065470e+03,  1.3310003657e+04,  5.2566063243e+04,
+              3.1273678572e+04, -2.8391820466e+04
+        },
+        {
+             -1.3860882703e+03, -7.9826859399e+03, -9.1830016764e+03,
+              8.2847130525e+03,  1.4235524637e+04,  5.5367573401e+04,
+              3.4173358328e+04, -2.9555504357e+04
+        },
+        {
+             -1.2769309736e+03,  8.1131674279e+03, -9.4231690974e+03,
+              8.4677919710e+03, -1.5045813480e+04,  5.7412263538e+04,
+              3.7539889064e+04, -3.1649551698e+04
+        },
+        {
+             -1.2566574947e+03, -8.2375500868e+03, -9.5456883502e+03,
+              8.5127296289e+03, -1.5520725351e+04,  5.8212148853e+04,
+              3.9959483370e+04, -3.2988065498e+04
+        },
+        {
+             -1.2911353598e+03, -8.1323707883e+03, -9.5233957505e+03,
+              8.3672818841e+03, -1.5454531443e+04,  5.7670393141e+04,
+              4.0693136195e+04, -3.2550465798e+04
+        },
+        {
+             -1.3943639227e+03,  8.0494691089e+03, -9.3449830081e+03,
+              8.1110981279e+03, -1.4798344388e+04,  5.5815258703e+04,
+              3.9149652872e+04, -3.0930298513e+04
+        }
+    },
+    {
+        {
+             -1.5731695639e+03, -8.0923800845e+03, -9.3815633984e+03,
+              7.8380911543e+03,  1.3516718751e+04,  4.9191029535e+04,
+              3.2268562847e+04, -2.5715554427e+04
+        }
+    }
+};
+
+/* Shifted by -delay_min, with delay_min = -26 (samples) */
+static const int hrtf_delay_set_22050_order_1[14][72][8] = {
+    {
+        {  309,  72,  74,  42,  55,  55,  51,  48 },
+        {  309,  74,  76,  43,  57,  56,  52,  49 },
+        {  312,  74,  77,  44,  57,  56,  52,  49 },
+        {  312,  75,  78,  45,  58,  57,  53,  50 },
+        {  318,  76,  79,  45,  58,  57,  53,  50 },
+        {  315,  77,  80,  46,  59,  58,  54,  49 },
+        {  320,  78,  81,  47,  50,  58,  54,  50 },
+        {  167, 154,  82,  48,  50,  58,  55,  57 },
+        {   23,  79,  83,  49,  51,  59,  55,  58 },
+        {  165, 155,  83,  50,  52,  59,  56,  58 },
+        {  321, 156,  84,  51,  53,  60,  56,  59 },
+        {  318, 157,  84,  52,  54,  61,  56,  59 },
+        {  318,  81,  85,  52,  55,  62,  54,  58 },
+        {  316,  81,  85,  52,  55,  62,  58,  55 },
+        {  318,  81,  85,  53,  55,  62,  58,  60 },
+        {  320,  81,  85,  53,  55,  62,  58,  55 },
+        {  321, 157,  85,  53,  55,  62,  58,  54 },
+        {  323,  81,  85,  53,  55,  61,  54,  58 },
+        {  166,  81,  85,  52,  54,  61,  54,  55 },
+        {  167,  80,  84,  52,  53,  60,  56,  54 },
+        {  321, 156,  84,  51,  52,  59,  56,  53 },
+        {  317, 156,  83,  50,  51,  59,  56,  54 },
+        {  320,  79,  83,  49,  59,  59,  55,  53 },
+        {  160, 154,  82,  48,  58,  58,  55,  51 },
+        {  163,  77,  81,  47,  58,  58,  54,  51 },
+        {  317,  77,  80,  46,  58,  57,  54,  51 },
+        {  161,  76,  79,  45,  57,  57,  53,  50 },
+        {  317,  75,  78,  45,  57,  56,  53,  50 },
+        {  315,  74,  77,  44,  56,  56,  52,  49 },
+        {  315,  73,  76,  43,  56,  55,  52,  49 },
+        {  312,  72,  75,  43,  56,  55,  51,  48 },
+        {   22,  71,  74,  42,  55,  54,  51,  46 },
+        {  312,  70,  73,  42,  46,  54,  51,  46 },
+        {  312,  70,  72,  41,  45,  54,  47,  45 },
+        {  308,  69,  71,  41,  45,  53,  47,  52 },
+        {  306,  69,  71,  41,  45,  53,  46,  52 },
+        {  309,  67,  70,  40,  44,  53,  46,  51 },
+        {  157,  67,  70,  40,  44,  52,  46,  51 },
+        {  311,  66,  69,  40,  53,  52,  45,  50 },
+        {  312,  66,  69,  39,  53,  52,  45,  49 },
+        {  307,  66,  68,  39,  53,  52,  45,  49 },
+        {  305,  66,  68,  39,  53,  52,  45,  49 },
+        {  307,  65,  68,  39,  52,  52,  45,  49 },
+        {  305,  66,  68,  39,  52,  51,  45,  49 },
+        {  306,  66,  68,  39,  52,  51,  48,  50 },
+        {  303,  66,  68,  39,  52,  52,  48,  50 },
+        {  306,  66,  68,  39,  52,  52,  48,  50 },
+        {  304,  66,  68,  39,  53,  52,  48,  50 },
+        {  308,  66,  69,  39,  53,  52,  48,  50 },
+        {  308,  67,  69,  39,  53,  52,  49,  51 },
+        {  310,  67,  70,  40,  53,  53,  49,  51 },
+        {  310,  68,  70,  40,  53,  53,  49,  52 },
+        {  307,  69,  71,  40,  54,  53,  50,  52 },
+        {  308,  70,  71,  40,  54,  54,  50,  52 },
+        {  310,  70,  72,  41,  55,  54,  50,  53 },
+        {  310,  71,  73,  41,  55,  54,  51,  53 }
+    },
+    {
+        {  309, 148,  74,  42,  56,  55,  51,  48 },
+        {  312, 149,  76,  44,  48,  56,  52,  48 },
+        {  312, 150,  77,  44,  49,  56,  53,  48 },
+        {  313, 151,  78,  45,  49,  57,  53,  49 },
+        {  311, 152,  79,  46,  50,  58,  54,  49 },
+        {  313, 153,  80,  47,  50,  58,  54,  51 },
+        {  321, 154,  81,  48,  51,  59,  52,  52 },
+        {  313, 155,  82,  48,  52,  59,  53,  52 },
+        {  309, 155,  83,  49,  52,  60,  56,  53 },
+        {  312, 156,  84,  50,  53,  60,  56,  59 },
+        {  312, 157,  84,  51,  54,  61,  54,  61 },
+        {  312, 157,  85,  52,  55,  62,  55,  61 },
+        {  315, 158,  86,  53,  55,  62,  55,  56 },
+        {  318, 158,  86,  53,  56,  63,  56,  65 },
+        {  319, 158,  86,  53,  56,  63,  57,  56 },
+        {  316, 158,  86,  54,  57,  63,  57,  55 },
+        {  161, 158,  86,  54,  57,  63,  56,  54 },
+        {  320, 158,  86,  54,  57,  63,  56,  55 },
+        {  321, 158,  86,  53,  56,  62,  55,  55 },
+        {  317, 158,  86,  53,  56,  62,  58,  54 },
+        {  318, 157,  86,  53,  55,  61,  57,  54 },
+        {  319, 157,  85,  52,  53,  61,  57,  54 },
+        {  318, 156,  85,  51,  52,  60,  56,  53 },
+        {  318, 156,  84,  50,  51,  60,  56,  53 },
+        {  316, 155,  83,  49,  51,  59,  55,  52 },
+        {  315, 154,  83,  48,  59,  59,  55,  52 },
+        {  318, 153,  82,  47,  59,  58,  54,  51 },
+        {  315, 152,  81,  46,  59,  58,  54,  51 },
+        {  315, 152,  80,  45,  58,  57,  54,  51 },
+        {  314, 151,  78,  45,  58,  57,  53,  50 },
+        {  311, 150,  77,  44,  57,  56,  53,  50 },
+        {  313, 149,  76,  43,  57,  56,  52,  48 },
+        {  311, 148,  75,  43,  56,  55,  52,  47 },
+        {  311, 147,  74,  42,  56,  55,  48,  47 },
+        {  309, 146,  73,  42,  55,  54,  48,  46 },
+        {  311, 146,  72,  41,  55,  54,  47,  46 },
+        {  304,  69,  72,  41,  54,  54,  47,  52 },
+        {  308,  68,  71,  40,  54,  53,  47,  51 },
+        {  148, 143,  70,  40,  54,  53,  46,  51 },
+        {    7, 142,  70,  40,  53,  53,  46,  51 },
+        {  303, 141,  69,  40,  53,  52,  45,  51 },
+        {  303,  66,  69,  39,  53,  52,  45,  50 },
+        {  301,  66,  68,  39,  53,  52,  45,  50 },
+        {  302,  66,  68,  39,  53,  51,  45,  49 },
+        {  300,  66,  68,  38,  53,  51,  44,  49 },
+        {  141,  65,  68,  38,  52,  51,  44,  49 },
+        {  301,  65,  68,  38,  52,  51,  44,  49 },
+        {  138, 140,  67,  38,  52,  51,  47,  49 },
+        {  301,  65,  68,  38,  52,  51,  47,  49 },
+        {  300,  65,  68,  38,  53,  51,  47,  49 },
+        {  304,  66,  68,  39,  53,  51,  48,  50 },
+        {  302,  65,  68,  39,  53,  52,  48,  50 },
+        {  302, 142,  69,  39,  53,  52,  48,  50 },
+        {  304,  66,  69,  39,  53,  52,  48,  51 },
+        {  303,  67,  69,  40,  54,  52,  49,  52 },
+        {  305,  68,  70,  40,  54,  53,  49,  53 },
+        {  307, 144,  71,  40,  54,  53,  50,  47 },
+        {  306, 145,  71,  41,  55,  54,  50,  47 },
+        {  309, 146,  72,  41,  55,  54,  50,  48 },
+        {  310, 147,  73,  42,  56,  54,  51,  48 }
+    },
+    {
+        {  310, 146,  72,  42,  46,  54,  51,  48 },
+        {  152, 148,  74,  43,  47,  55,  51,  48 },
+        {  310, 149,  75,  43,  48,  55,  52,  49 },
+        {  311, 149,  76,  44,  48,  56,  52,  49 },
+        {  311, 150,  76,  45,  49,  56,  53,  50 },
+        {  308, 151,  77,  45,  49,  57,  53,  50 },
+        {  314, 152,  78,  46,  50,  57,  54,  49 },
+        {  311, 152,  79,  47,  50,  58,  54,  50 },
+        {  314, 153,  80,  48,  51,  58,  55,  50 },
+        {  162, 154,  81,  48,  52,  59,  55,  51 },
+        {  161, 154,  82,  49,  52,  59,  56,  53 },
+        {  315, 155,  82,  50,  53,  60,  56,  53 },
+        {  316, 155,  83,  51,  54,  61,  57,  53 },
+        {  315, 156,  84,  51,  54,  61,  55,  60 },
+        {  313, 157,  84,  52,  55,  62,  55,  59 },
+        {  316, 157,  84,  52,  55,  62,  59,  56 },
+        {  315, 157,  85,  52,  56,  63,  60,  62 },
+        {  315, 157,  85,  53,  56,  63,  60,  57 },
+        {  317, 158,  85,  53,  56,  63,  60,  56 },
+        {  320, 158,  85,  53,  56,  63,  63,  63 },
+        {  319, 158,  85,  53,  56,  63,  56,  65 },
+        {  309, 158,  85,  53,  56,  62,  55,  54 },
+        {  307, 157,  85,  53,  56,  61,  55,  54 },
+        {  315, 157,  85,  52,  55,  61,  55,  54 },
+        {  315, 157,  85,  52,  54,  65,  54,  54 },
+        {  315, 156,  84,  51,  53,  65,  57,  53 },
+        {  312, 156,  84,  51,  52,  65,  56,  53 },
+        {  315, 156,  83,  50,  52,  64,  56,  53 },
+        {  312, 155,  83,  49,  51,  59,  53,  52 },
+        {  311, 154,  82,  48,  50,  59,  52,  51 },
+        {  314, 154,  81,  48,  59,  58,  52,  50 },
+        {  313, 153,  80,  47,  59,  58,  54,  50 },
+        {  312, 152,  79,  46,  58,  57,  54,  49 },
+        {  311, 152,  78,  45,  58,  57,  53,  49 },
+        {  313, 151,  78,  44,  57,  56,  53,  49 },
+        {  314, 150,  77,  44,  57,  56,  52,  48 },
+        {  153, 149,  76,  43,  57,  56,  52,  48 },
+        {  310, 148,  75,  42,  56,  55,  51,  47 },
+        {  309, 147,  74,  42,  56,  55,  48,  47 },
+        {  311, 146,  73,  42,  55,  54,  48,  46 },
+        {  307, 146,  72,  41,  55,  54,  47,  46 },
+        {  147, 145,  71,  41,  54,  54,  47,  45 },
+        {  308, 144,  71,  40,  54,  53,  47,  45 },
+        {  305, 143,  70,  40,  54,  53,  46,  51 },
+        {  306, 142,  70,  39,  53,  52,  46,  50 },
+        {  302, 142,  69,  39,  53,  52,  45,  50 },
+        {  301, 142,  68,  39,  53,  52,  45,  50 },
+        {  297, 142,  68,  38,  52,  51,  44,  50 },
+        {  301, 141,  67,  38,  52,  51,  44,  49 },
+        {  303, 140,  67,  38,  52,  51,  44,  49 },
+        {  302, 139,  67,  38,  52,  51,  44,  49 },
+        {  304, 139,  67,  38,  52,  50,  44,  49 },
+        {  303, 138,  66,  38,  51,  50,  43,  49 },
+        {    2, 138,  66,  37,  51,  50,  43,  49 },
+        {    2, 138,  66,  37,  51,  50,  43,  49 },
+        {    0, 138,  66,  37,  51,  50,  43,  49 },
+        {    1, 138,  66,  37,  51,  50,  46,  49 },
+        {  303, 138,  66,  37,  51,  50,  46,  49 },
+        {  301, 139,  66,  37,  51,  50,  46,  48 },
+        {  299, 139,  66,  37,  42,  50,  46,  42 },
+        {  301, 140,  66,  37,  42,  50,  47,  43 },
+        {  300, 140,  67,  38,  42,  50,  47,  43 },
+        {  299, 141,  67,  38,  43,  50,  47,  43 },
+        {  300, 141,  67,  38,  43,  51,  47,  44 },
+        {  301, 141,  68,  38,  43,  51,  48,  45 },
+        {  302, 141,  68,  39,  43,  51,  48,  45 },
+        {  305, 142,  68,  39,  44,  51,  48,  45 },
+        {  307, 143,  69,  39,  44,  52,  49,  46 },
+        {  297, 143,  70,  40,  44,  52,  49,  46 },
+        {  303, 144,  70,  40,  45,  52,  49,  46 },
+        {  307, 145,  71,  41,  45,  53,  50,  47 },
+        {  306, 145,  72,  41,  46,  53,  50,  47 }
+    },
+    {
+        {  304, 146,  72,  42,  46,  58,  50,  46 },
+        {  307, 147,  73,  43,  46,  59,  51,  47 },
+        {  303, 148,  73,  43,  47,  59,  51,  47 },
+        {  310, 149,  74,  44,  47,  60,  52,  48 },
+        {  308, 150,  75,  45,  48,  60,  53,  48 },
+        {  307, 151,  76,  45,  49,  61,  53,  49 },
+        {  310, 152,  77,  46,  49,  62,  54,  49 },
+        {  312, 152,  78,  47,  50,  62,  54,  50 },
+        {  316, 153,  79,  48,  51,  63,  55,  50 },
+        {  316, 154,  80,  49,  52,  63,  56,  51 },
+        {  315, 154,  80,  49,  52,  64,  56,  51 },
+        {  316, 155,  81,  50,  53,  60,  57,  52 },
+        {  317, 155,  82,  51,  54,  60,  57,  53 },
+        {  315, 156,  82,  51,  54,  61,  58,  63 },
+        {  316, 156,  83,  52,  55,  62,  59,  55 },
+        {  317, 157,  83,  52,  55,  63,  59,  53 },
+        {  317, 157,  83,  52,  56,  64,  60,  61 },
+        {  315, 157,  84,  53,  56,  64,  57,  61 },
+        {  316, 158,  84,  53,  56,  64,  57,  61 },
+        {  316, 158,  84,  53,  56,  64,  65,  61 },
+        {  315, 158,  84,  53,  56,  70,  63,  63 },
+        {  315, 158,  84,  53,  56,  70,  61,  63 },
+        {  313, 157,  84,  52,  56,  57,  61,  55 },
+        {  313, 157,  83,  52,  55,  61,  61,  53 },
+        {  315, 157,  83,  52,  55,  65,  54,  57 },
+        {  314, 156,  83,  51,  54,  65,  54,  58 },
+        {  315, 156,  82,  51,  53,  64,  56,  57 },
+        {  313, 155,  82,  50,  52,  64,  56,  57 },
+        {  312, 155,  81,  49,  51,  64,  55,  51 },
+        {  313, 154,  80,  48,  50,  58,  55,  51 },
+        {  311, 153,  80,  47,  50,  58,  55,  50 },
+        {  312, 153,  79,  46,  49,  58,  54,  50 },
+        {  312, 152,  78,  46,  49,  57,  54,  49 },
+        {  312, 151,  77,  45,  48,  57,  53,  49 },
+        {  313, 150,  76,  44,  57,  56,  53,  48 },
+        {  313, 149,  75,  43,  57,  56,  52,  53 },
+        {  308, 149,  74,  43,  56,  55,  52,  53 },
+        {  307, 148,  74,  42,  56,  55,  51,  52 },
+        {  305, 147,  73,  42,  55,  54,  51,  52 },
+        {  306, 146,  72,  41,  55,  54,  50,  46 },
+        {  303, 146,  71,  40,  54,  53,  50,  45 },
+        {  304, 145,  70,  40,  54,  53,  50,  45 },
+        {  301, 143,  70,  40,  53,  53,  49,  44 },
+        {  304, 143,  69,  39,  53,  52,  49,  44 },
+        {  301, 143,  68,  39,  53,  52,  48,  50 },
+        {  297,  67,  68,  38,  43,  51,  48,  49 },
+        {  299,  66,  67,  38,  43,  51,  48,  49 },
+        {  296, 141,  67,  38,  52,  51,  47,  49 },
+        {  297, 139,  66,  38,  51,  50,  44,  49 },
+        {  300, 139,  66,  37,  42,  50,  44,  48 },
+        {  301, 139,  66,  37,  42,  50,  43,  48 },
+        {  300, 139,  65,  37,  41,  50,  43,  48 },
+        {  298,  63,  65,  37,  41,  50,  43,  48 },
+        {  297,  63,  65,  36,  41,  49,  43,  48 },
+        {  298,  63,  65,  36,  41,  49,  43,  48 },
+        {  298,  63,  65,  36,  41,  49,  43,  48 },
+        {  297, 139,  65,  36,  41,  49,  43,  48 },
+        {  297, 138,  65,  36,  41,  49,  43,  42 },
+        {  301, 138,  65,  37,  41,  49,  43,  42 },
+        {  302, 138,  65,  37,  41,  49,  43,  42 },
+        {  302, 138,  65,  37,  41,  54,  46,  42 },
+        {  301, 139,  66,  37,  42,  54,  46,  42 },
+        {  301, 140,  66,  37,  42,  54,  47,  43 },
+        {  295, 141,  66,  37,  42,  55,  47,  43 },
+        {  297, 141,  67,  38,  42,  55,  47,  43 },
+        {  300, 141,  67,  38,  43,  55,  48,  44 },
+        {  303, 142,  68,  39,  43,  56,  48,  44 },
+        {  304, 142,  68,  39,  43,  56,  48,  45 },
+        {  304, 143,  69,  40,  44,  56,  49,  46 },
+        {  304, 144,  70,  40,  44,  57,  49,  45 },
+        {  305, 145,  70,  41,  45,  57,  50,  45 },
+        {  307, 146,  71,  41,  45,  58,  50,  46 }
+    },
+    {
+        {  303, 146,  72,  42,  45,  58,  51,  46 },
+        {  307, 147,  72,  42,  45,  59,  51,  47 },
+        {  306, 148,  73,  43,  46,  59,  52,  47 },
+        {  306, 149,  74,  44,  47,  60,  52,  48 },
+        {  308, 150,  75,  45,  47,  60,  53,  48 },
+        {  307, 151,  76,  45,  48,  61,  53,  49 },
+        {  308, 152,  76,  46,  49,  62,  54,  49 },
+        {  311, 152,  77,  47,  49,  62,  54,  50 },
+        {  311, 153,  78,  48,  50,  63,  55,  50 },
+        {  312, 154,  79,  49,  51,  63,  56,  51 },
+        {  315, 154,  80,  49,  52,  64,  56,  57 },
+        {  315, 155,  80,  50,  53,  64,  57,  56 },
+        {  312, 155,  81,  51,  54,  60,  58,  57 },
+        {  308, 156,  81,  51,  54,  61,  58,  59 },
+        {  313, 156,  82,  51,  55,  62,  59,  64 },
+        {  316, 156,  82,  52,  55,  63,  60,  59 },
+        {  318, 157,  82,  52,  56,  64,  60,  55 },
+        {  316, 157,  83,  52,  56,  69,  61,  59 },
+        {  318, 157,  83,  52,  56,  69,  61,  61 },
+        {  315, 157,  83,  52,  56,  69,  62,  61 },
+        {  313, 157,  83,  52,  56,  70,  62,  60 },
+        {  316, 157,  83,  52,  56,  70,  60,  58 },
+        {  312, 157,  83,  52,  55,  70,  61,  57 },
+        {  312, 157,  82,  52,  55,  56,  61,  59 },
+        {  313, 157,  82,  51,  54,  60,  58,  58 },
+        {  314, 156,  82,  51,  54,  65,  57,  56 },
+        {  312, 156,  81,  50,  53,  64,  57,  57 },
+        {  312, 155,  81,  49,  52,  64,  56,  57 },
+        {  312, 154,  80,  49,  51,  64,  56,  56 },
+        {  311, 154,  79,  48,  50,  58,  55,  56 },
+        {  313, 153,  79,  47,  49,  58,  55,  55 },
+        {  312, 153,  78,  46,  49,  57,  54,  55 },
+        {  307, 152,  77,  45,  48,  57,  54,  54 },
+        {  307, 151,  76,  45,  48,  56,  53,  54 },
+        {  306, 150,  75,  44,  47,  56,  53,  53 },
+        {  305, 150,  75,  43,  47,  55,  52,  53 },
+        {  305, 149,  74,  42,  46,  60,  52,  52 },
+        {  305, 148,  73,  42,  46,  59,  51,  52 },
+        {  310, 147,  72,  41,  45,  59,  51,  51 },
+        {  305, 146,  71,  40,  45,  58,  50,  51 },
+        {  306, 145,  70,  40,  45,  58,  50,  44 },
+        {  305, 144,  70,  39,  44,  52,  49,  45 },
+        {  302, 143,  69,  39,  44,  52,  49,  44 },
+        {  302, 143,  68,  38,  43,  52,  49,  44 },
+        {  300,  66,  68,  38,  43,  51,  48,  43 },
+        {  299,  65,  67,  38,  42,  51,  48,  44 },
+        {  302,  64,  67,  37,  42,  50,  48,  44 },
+        {  301, 140,  66,  37,  42,  50,  44,  48 },
+        {  301, 139,  66,  37,  41,  55,  44,  48 },
+        {  299,  63,  65,  37,  41,  54,  44,  48 },
+        {  296,  63,  65,  36,  41,  54,  43,  48 },
+        {  297,  63,  65,  36,  41,  54,  43,  48 },
+        {  296,  63,  65,  36,  41,  54,  43,  47 },
+        {  295,  63,  65,  36,  41,  54,  43,  47 },
+        {  294,  63,  64,  36,  40,  54,  43,  47 },
+        {  295,  63,  64,  36,  40,  54,  43,  41 },
+        {  295,  63,  64,  36,  40,  54,  46,  41 },
+        {  293, 138,  64,  36,  40,  54,  46,  42 },
+        {  300,  62,  65,  36,  40,  54,  46,  42 },
+        {  300, 138,  65,  36,  41,  54,  46,  42 },
+        {  299, 138,  65,  36,  41,  54,  46,  42 },
+        {  300, 138,  65,  37,  41,  54,  46,  42 },
+        {  303, 139,  66,  37,  41,  54,  47,  43 },
+        {  297,  64,  66,  37,  41,  55,  47,  43 },
+        {  297,  65,  66,  37,  42,  55,  47,  43 },
+        {  297,  65,  67,  38,  42,  55,  48,  43 },
+        {  302, 142,  67,  38,  42,  56,  48,  44 },
+        {  302, 142,  68,  39,  43,  56,  48,  44 },
+        {  302, 143,  69,  39,  43,  56,  49,  44 },
+        {  302,  68,  69,  40,  44,  57,  49,  45 },
+        {  303,  68,  70,  40,  44,  57,  50,  45 },
+        {  304, 145,  71,  41,  44,  58,  50,  46 }
+    },
+    {
+        {  301, 147,  72,  42,  45,  58,  51,  46 },
+        {  302,  71,  73,  43,  45,  59,  51,  47 },
+        {  302,  72,  74,  44,  46,  59,  52,  47 },
+        {  305, 150,  74,  44,  46,  60,  52,  48 },
+        {  306, 150,  75,  45,  47,  56,  53,  48 },
+        {  304, 151,  76,  46,  48,  61,  53,  49 },
+        {  307, 152,  77,  47,  48,  62,  54,  49 },
+        {  309, 153,  78,  48,  49,  62,  54,  50 },
+        {  308, 154,  78,  48,  50,  63,  55,  51 },
+        {  308, 154,  79,  49,  51,  64,  56,  51 },
+        {  313, 155,  80,  50,  52,  64,  56,  52 },
+        {  310, 156,  80,  50,  53,  64,  57,  52 },
+        {  312, 156,  81,  51,  54,  60,  58,  53 },
+        {  314, 156,  81,  51,  55,  61,  58,  59 },
+        {  313, 157,  82,  52,  55,  63,  59,  58 },
+        {  313, 157,  82,  52,  55,  63,  57,  60 },
+        {  314, 157,  82,  52,  56,  64,  61,  59 },
+        {  317, 157,  83,  52,  56,  64,  61,  60 },
+        {  317, 157,  83,  53,  56,  64,  61,  60 },
+        {  163, 157,  83,  53,  56,  64,  61,  59 },
+        {  318, 157,  83,  53,  56,  64,  61,  58 },
+        {  317, 157,  83,  52,  56,  64,  57,  59 },
+        {  317, 157,  83,  52,  55,  64,  59,  58 },
+        {  314, 157,  82,  52,  55,  62,  58,  59 },
+        {  313, 157,  82,  51,  55,  61,  58,  58 },
+        {  314, 156,  82,  51,  54,  65,  57,  57 },
+        {  317, 155,  81,  50,  53,  65,  57,  57 },
+        {  313, 155,  81,  50,  52,  64,  56,  57 },
+        {  315, 155,  80,  49,  51,  64,  56,  56 },
+        {  314, 154,  80,  48,  50,  59,  55,  56 },
+        {  310, 153,  79,  47,  50,  58,  55,  55 },
+        {  310, 153,  78,  47,  49,  58,  54,  53 },
+        {  312, 152,  77,  46,  49,  57,  54,  53 },
+        {  308, 151,  76,  45,  48,  57,  53,  52 },
+        {  310, 151,  76,  44,  48,  56,  53,  52 },
+        {  307, 150,  75,  44,  47,  60,  52,  51 },
+        {  306, 149,  74,  43,  47,  60,  52,  51 },
+        {  306, 148,  73,  42,  46,  59,  51,  50 },
+        {  305, 147,  72,  42,  46,  59,  51,  50 },
+        {  305, 147,  72,  41,  45,  58,  51,  49 },
+        {  303,  69,  71,  40,  45,  58,  50,  49 },
+        {  301,  68,  70,  40,  44,  57,  50,  45 },
+        {  300, 144,  70,  40,  44,  57,  49,  45 },
+        {  300,  67,  69,  39,  43,  57,  49,  44 },
+        {  299,  66,  68,  39,  43,  56,  49,  44 },
+        {  297,  66,  68,  38,  43,  56,  48,  45 },
+        {  298,  66,  67,  38,  42,  56,  48,  44 },
+        {  298,  65,  67,  38,  42,  55,  48,  44 },
+        {  297,  64,  66,  37,  42,  55,  47,  45 },
+        {  298,  63,  66,  37,  41,  55,  47,  45 },
+        {  298,  63,  66,  37,  41,  55,  47,  45 },
+        {  298,  63,  65,  37,  41,  54,  46,  45 },
+        {  299,  63,  65,  36,  41,  54,  46,  45 },
+        {  300,  62,  65,  36,  41,  54,  46,  43 },
+        {  299,  62,  65,  36,  41,  54,  46,  43 },
+        {  298, 139,  65,  36,  40,  54,  46,  43 },
+        {  299,  62,  65,  36,  40,  54,  46,  43 },
+        {  298, 139,  65,  36,  40,  54,  46,  43 },
+        {  298, 139,  65,  36,  40,  54,  46,  44 },
+        {  299, 139,  65,  37,  41,  54,  46,  44 },
+        {  301, 139,  66,  37,  41,  54,  47,  42 },
+        {  300,  63,  66,  37,  41,  54,  47,  43 },
+        {  297,  64,  66,  37,  41,  55,  47,  43 },
+        {  298,  65,  67,  37,  41,  55,  47,  43 },
+        {  299,  65,  67,  38,  42,  55,  48,  43 },
+        {  300,  65,  68,  38,  42,  56,  48,  44 },
+        {  296, 142,  68,  39,  42,  56,  48,  44 },
+        {  302,  66,  69,  39,  42,  56,  49,  44 },
+        {  300,  67,  69,  40,  43,  57,  49,  45 },
+        {  300,  68,  70,  40,  43,  57,  49,  45 },
+        {  302,  69,  71,  41,  44,  57,  50,  46 },
+        {  303, 146,  71,  41,  44,  58,  50,  46 }
+    },
+    {
+        {  303,  71,  73,  43,  54,  59,  51,  52 },
+        {  307,  72,  74,  44,  55,  59,  52,  52 },
+        {  306, 149,  75,  44,  55,  60,  52,  51 },
+        {  307, 150,  75,  45,  56,  56,  53,  52 },
+        {  306,  74,  76,  46,  47,  56,  53,  49 },
+        {  305, 152,  77,  47,  48,  57,  54,  50 },
+        {  307, 152,  77,  48,  48,  57,  54,  50 },
+        {  304, 153,  78,  48,  49,  63,  55,  51 },
+        {  309, 154,  79,  49,  50,  63,  55,  51 },
+        {  311, 154,  79,  50,  51,  64,  56,  52 },
+        {  312, 155,  80,  50,  52,  64,  57,  55 },
+        {  312, 156,  81,  51,  53,  65,  57,  56 },
+        {  315, 156,  81,  51,  54,  61,  58,  57 },
+        {  314, 156,  82,  52,  55,  62,  58,  57 },
+        {  314, 157,  82,  52,  55,  62,  59,  58 },
+        {  316, 157,  82,  52,  55,  63,  56,  58 },
+        {  165, 157,  83,  53,  56,  64,  57,  58 },
+        {  317, 157,  83,  53,  56,  64,  61,  58 },
+        {  315, 157,  83,  53,  56,  64,  61,  58 },
+        {  318, 158,  83,  53,  56,  64,  61,  58 },
+        {  319, 158,  83,  53,  56,  64,  60,  59 },
+        {  161, 158,  83,  53,  56,  64,  60,  59 },
+        {  312, 158,  83,  53,  56,  63,  60,  58 },
+        {  314, 158,  82,  52,  55,  63,  59,  58 },
+        {  311, 157,  82,  52,  55,  62,  59,  57 },
+        {  310, 157,  82,  51,  54,  66,  58,  57 },
+        {  312, 157,  81,  51,  53,  66,  58,  56 },
+        {  309, 156,  81,  50,  52,  65,  57,  56 },
+        {  311, 156,  80,  50,  52,  65,  57,  54 },
+        {  311, 155,  80,  49,  51,  64,  56,  53 },
+        {  309, 154,  79,  48,  50,  59,  56,  53 },
+        {  311, 154,  79,  48,  50,  58,  55,  52 },
+        {  308, 153,  78,  47,  49,  58,  55,  52 },
+        {  309, 152,  77,  46,  49,  57,  54,  51 },
+        {  309, 152,  76,  45,  48,  61,  54,  51 },
+        {  307, 151,  76,  45,  48,  61,  53,  50 },
+        {  308, 150,  75,  44,  47,  61,  53,  50 },
+        {  307, 149,  74,  43,  47,  60,  52,  49 },
+        {  305,  71,  73,  43,  46,  60,  52,  49 },
+        {  306,  71,  73,  42,  46,  59,  51,  49 },
+        {  306,  70,  72,  41,  45,  59,  51,  48 },
+        {  304,  69,  71,  41,  45,  58,  50,  48 },
+        {  301,  69,  71,  40,  44,  58,  50,  47 },
+        {  299,  68,  70,  40,  44,  57,  50,  45 },
+        {  301,  67,  69,  40,  44,  57,  49,  45 },
+        {  300,  66,  69,  39,  43,  57,  49,  44 },
+        {  301,  66,  68,  39,  43,  56,  49,  44 },
+        {  300,  66,  68,  38,  43,  56,  48,  45 },
+        {  298,  65,  68,  38,  42,  56,  48,  45 },
+        {  298,  65,  67,  38,  42,  56,  48,  45 },
+        {  297,  65,  67,  38,  42,  56,  48,  45 },
+        {  298,  65,  67,  37,  41,  55,  47,  44 },
+        {  298,  64,  66,  37,  41,  55,  47,  44 },
+        {  294,  64,  66,  37,  41,  55,  47,  44 },
+        {  297,  64,  66,  37,  41,  55,  47,  44 },
+        {  299,  64,  66,  37,  41,  55,  47,  44 },
+        {  299,  64,  66,  37,  41,  55,  47,  44 },
+        {  298,  64,  66,  37,  41,  55,  47,  44 },
+        {  139,  64,  66,  37,  41,  55,  47,  45 },
+        {  298,  64,  67,  37,  41,  55,  47,  45 },
+        {  299,  64,  67,  37,  41,  55,  47,  45 },
+        {  300,  65,  67,  38,  41,  55,  48,  45 },
+        {  300,  65,  67,  38,  41,  55,  48,  45 },
+        {  301,  65,  68,  38,  42,  56,  48,  46 },
+        {  298,  65,  68,  39,  42,  56,  48,  46 },
+        {  300,  66,  69,  39,  42,  56,  49,  45 },
+        {  302,  67,  69,  39,  42,  57,  49,  45 },
+        {  298,  68,  70,  40,  43,  57,  49,  45 },
+        {  302,  68,  70,  40,  43,  57,  50,  46 },
+        {  302,  69,  71,  41,  44,  58,  50,  46 },
+        {  302, 146,  72,  42,  53,  58,  51,  51 },
+        {  303,  70,  72,  42,  54,  58,  51,  52 }
+    },
+    {
+        {  306,  70,  72,  42,  53,  57,  50,  49 },
+        {  299, 147,  73,  42,  53,  58,  50,  49 },
+        {  304, 148,  74,  43,  54,  58,  51,  50 },
+        {  306, 149,  75,  44,  54,  54,  51,  50 },
+        {  309, 150,  75,  45,  55,  55,  52,  51 },
+        {  307, 150,  76,  46,  47,  56,  53,  50 },
+        {  308, 151,  77,  47,  47,  61,  53,  50 },
+        {  309, 152,  78,  48,  48,  62,  54,  51 },
+        {  309, 153,  78,  48,  49,  62,  54,  52 },
+        {  309, 154,  79,  49,  50,  58,  55,  52 },
+        {  312, 154,  79,  50,  51,  59,  56,  53 },
+        {  316, 154,  80,  50,  52,  59,  56,  53 },
+        {  316, 155,  80,  50,  53,  60,  56,  54 },
+        {  315, 155,  81,  51,  53,  61,  54,  56 },
+        {  315, 155,  81,  51,  54,  61,  55,  55 },
+        {  313, 156,  81,  51,  54,  62,  58,  55 },
+        {  311, 156,  81,  51,  54,  62,  58,  55 },
+        {  309, 156,  81,  51,  54,  61,  58,  55 },
+        {  310, 156,  81,  51,  53,  61,  55,  55 },
+        {  309, 156,  81,  51,  53,  61,  57,  54 },
+        {  308, 156,  80,  50,  52,  60,  57,  54 },
+        {  308, 155,  80,  50,  52,  64,  56,  53 },
+        {  307, 155,  80,  49,  51,  64,  56,  53 },
+        {  308, 154,  79,  48,  50,  63,  55,  52 },
+        {  310, 153,  78,  48,  49,  63,  54,  52 },
+        {  308, 153,  78,  47,  49,  62,  54,  51 },
+        {  305, 152,  77,  46,  48,  57,  53,  50 },
+        {  307, 151,  76,  45,  47,  56,  53,  50 },
+        {  313,  73,  75,  44,  47,  55,  52,  49 },
+        {  305, 149,  75,  44,  46,  60,  52,  49 },
+        {  306,  72,  74,  43,  46,  59,  51,  48 },
+        {  304,  71,  73,  42,  45,  59,  51,  48 },
+        {  303,  70,  72,  41,  45,  58,  50,  47 },
+        {  304,  69,  71,  41,  44,  57,  50,  47 },
+        {  302,  68,  70,  40,  43,  57,  49,  46 },
+        {  301,  68,  70,  39,  43,  57,  49,  46 },
+        {  302,  67,  69,  39,  42,  56,  48,  45 },
+        {  301,  66,  68,  38,  42,  56,  48,  45 },
+        {  299,  66,  68,  38,  42,  55,  48,  45 },
+        {  299,  65,  67,  38,  41,  55,  47,  44 },
+        {  299,  64,  67,  37,  41,  55,  47,  44 },
+        {  300,  63,  66,  37,  41,  54,  47,  44 },
+        {  300,  63,  66,  37,  40,  54,  46,  43 },
+        {  300,  63,  66,  37,  40,  54,  46,  43 },
+        {  298,  63,  66,  36,  40,  54,  46,  43 },
+        {  298,  63,  66,  36,  40,  54,  46,  43 },
+        {  296,  63,  66,  36,  40,  54,  46,  43 },
+        {  297,  62,  66,  36,  40,  54,  46,  43 },
+        {  299,  63,  66,  36,  40,  54,  46,  43 },
+        {  297, 139,  66,  36,  40,  54,  46,  44 },
+        {  300, 140,  66,  37,  40,  54,  46,  44 },
+        {  299, 140,  66,  37,  49,  54,  47,  44 },
+        {  301,  64,  67,  37,  49,  54,  47,  44 },
+        {  299,  65,  67,  37,  50,  55,  47,  45 },
+        {  300,  65,  68,  38,  50,  55,  47,  45 },
+        {  302,  66,  69,  38,  50,  55,  48,  45 },
+        {  303, 143,  69,  39,  51,  56,  48,  46 },
+        {  303, 143,  70,  40,  51,  56,  48,  48 },
+        {  304, 145,  71,  40,  52,  57,  49,  48 },
+        {  303, 146,  71,  41,  52,  57,  49,  48 }
+    },
+    {
+        {  305, 149,  75,  44,  55,  55,  51,  50 },
+        {  304, 150,  76,  45,  56,  55,  52,  51 },
+        {  308, 150,  77,  46,  56,  56,  52,  51 },
+        {  310, 151,  78,  47,  57,  56,  53,  52 },
+        {  309, 152,  78,  48,  58,  57,  53,  52 },
+        {  311, 153,  79,  49,  49,  58,  54,  53 },
+        {  304, 153,  80,  50,  50,  58,  52,  54 },
+        {  312, 154,  80,  50,  51,  59,  52,  54 },
+        {  315, 155,  81,  51,  52,  59,  53,  55 },
+        {  310, 155,  81,  52,  53,  60,  53,  55 },
+        {  310, 156,  82,  52,  53,  60,  54,  56 },
+        {  308, 156,  82,  52,  54,  61,  54,  55 },
+        {  310, 157,  83,  53,  54,  62,  55,  55 },
+        {  311, 157,  83,  53,  55,  62,  55,  55 },
+        {  312, 157,  83,  53,  55,  62,  55,  55 },
+        {  313, 157,  83,  53,  55,  62,  55,  55 },
+        {  311, 157,  83,  53,  55,  62,  55,  55 },
+        {  312, 157,  83,  53,  54,  62,  55,  55 },
+        {  313, 157,  82,  52,  54,  61,  55,  55 },
+        {  309, 156,  82,  52,  53,  61,  54,  54 },
+        {  312, 156,  82,  51,  53,  60,  54,  54 },
+        {  311, 156,  81,  51,  52,  60,  53,  53 },
+        {  308, 155,  81,  50,  51,  59,  53,  53 },
+        {  309, 154,  80,  49,  51,  59,  52,  52 },
+        {  308, 154,  79,  48,  50,  58,  52,  53 },
+        {  308, 153,  79,  48,  50,  58,  51,  53 },
+        {  308, 152,  78,  47,  49,  57,  50,  52 },
+        {  305, 151,  77,  46,  48,  57,  50,  52 },
+        {  303, 151,  76,  45,  48,  56,  50,  51 },
+        {  312,  74,  76,  44,  47,  55,  49,  51 },
+        {  304, 149,  75,  44,  47,  55,  49,  50 },
+        {  303, 148,  74,  43,  46,  54,  48,  50 },
+        {  302, 147,  73,  42,  46,  54,  48,  49 },
+        {  303, 147,  72,  42,  45,  54,  47,  49 },
+        {  302, 146,  72,  41,  45,  53,  47,  48 },
+        {  302,  69,  71,  41,  44,  53,  46,  48 },
+        {  303,  68,  71,  40,  44,  52,  46,  48 },
+        {  299,  67,  70,  40,  43,  52,  46,  46 },
+        {  301,  67,  70,  40,  43,  52,  46,  46 },
+        {  300,  66,  69,  40,  43,  52,  45,  45 },
+        {  299,  66,  69,  39,  43,  51,  45,  45 },
+        {  300,  66,  69,  39,  52,  51,  45,  45 },
+        {  298,  66,  69,  39,  52,  51,  45,  45 },
+        {  298,  66,  69,  39,  51,  51,  45,  45 },
+        {  299,  66,  69,  39,  51,  51,  45,  47 },
+        {  300,  66,  69,  39,  51,  51,  45,  47 },
+        {  300,  66,  69,  39,  52,  51,  48,  47 },
+        {  300,  67,  70,  40,  52,  51,  48,  47 },
+        {  297,  67,  70,  40,  52,  52,  48,  47 },
+        {  298,  68,  70,  40,  52,  52,  49,  48 },
+        {  299,  68,  71,  40,  53,  52,  49,  48 },
+        {  300,  69,  71,  41,  53,  52,  49,  48 },
+        {  301,  69,  72,  41,  53,  53,  49,  49 },
+        {  302,  70,  73,  42,  54,  53,  50,  49 },
+        {  303,  71,  74,  43,  54,  54,  50,  50 },
+        {  304, 148,  74,  43,  55,  54,  51,  50 }
+    },
+    {
+        {  303, 147,  73,  42,  53,  52,  49,  48 },
+        {  304, 148,  74,  43,  54,  53,  47,  49 },
+        {  305, 149,  75,  44,  54,  54,  47,  49 },
+        {  305, 150,  76,  45,  55,  54,  48,  50 },
+        {  305, 150,  77,  46,  56,  55,  48,  50 },
+        {  298, 151,  77,  47,  48,  55,  49,  51 },
+        {  307, 152,  78,  48,  48,  56,  49,  51 },
+        {  307, 153,  79,  48,  49,  57,  50,  50 },
+        {  307, 153,  79,  49,  50,  57,  50,  51 },
+        {  313, 154,  79,  49,  50,  58,  51,  51 },
+        {  306, 154,  80,  49,  51,  58,  51,  51 },
+        {  308, 154,  80,  50,  51,  58,  51,  52 },
+        {  308, 154,  80,  50,  51,  58,  51,  52 },
+        {  309, 154,  80,  49,  51,  58,  51,  52 },
+        {  308, 153,  80,  49,  51,  58,  51,  51 },
+        {  309, 153,  79,  49,  50,  58,  51,  51 },
+        {  306, 153,  79,  48,  50,  57,  50,  51 },
+        {  306, 152,  78,  47,  49,  57,  50,  50 },
+        {  307, 152,  78,  47,  48,  56,  49,  50 },
+        {  306, 151,  77,  46,  48,  56,  49,  49 },
+        {  306, 150,  76,  45,  47,  55,  48,  50 },
+        {  303, 149,  75,  44,  46,  54,  48,  48 },
+        {  306, 148,  75,  43,  46,  54,  47,  49 },
+        {  304, 147,  74,  42,  45,  53,  47,  48 },
+        {  303, 147,  73,  41,  44,  53,  46,  48 },
+        {  303, 146,  72,  41,  44,  52,  46,  47 },
+        {  302, 145,  71,  40,  43,  52,  45,  47 },
+        {  303, 144,  70,  40,  43,  51,  45,  46 },
+        {  301, 144,  70,  39,  42,  51,  44,  46 },
+        {  297, 143,  69,  38,  42,  50,  44,  46 },
+        {  299, 142,  69,  38,  41,  50,  44,  45 },
+        {  299, 142,  68,  38,  50,  50,  43,  45 },
+        {  298, 141,  68,  38,  50,  49,  43,  45 },
+        {  299, 141,  68,  37,  50,  49,  43,  45 },
+        {  298,  64,  68,  37,  50,  54,  43,  45 },
+        {  298,  64,  68,  37,  49,  54,  43,  45 },
+        {  299, 141,  68,  37,  50,  54,  43,  45 },
+        {  297,  65,  68,  37,  50,  49,  46,  45 },
+        {  296,  65,  68,  38,  50,  49,  46,  45 },
+        {  296,  66,  69,  38,  50,  50,  46,  45 },
+        {  297,  67,  69,  38,  50,  50,  47,  46 },
+        {  299, 143,  70,  39,  51,  50,  47,  46 },
+        {  302, 144,  71,  39,  51,  51,  47,  46 },
+        {  303, 145,  71,  40,  52,  51,  48,  47 },
+        {  302, 145,  72,  41,  52,  52,  48,  47 }
+    },
+    {
+        {  305, 145,  72,  40,  51,  56,  48,  47 },
+        {  305, 146,  72,  41,  52,  51,  48,  47 },
+        {  303, 147,  73,  42,  53,  52,  49,  47 },
+        {  301,  71,  74,  43,  53,  52,  49,  48 },
+        {  302, 148,  75,  44,  45,  53,  49,  48 },
+        {  304, 149,  75,  44,  45,  53,  47,  49 },
+        {  302, 150,  76,  45,  46,  54,  48,  49 },
+        {  303, 150,  76,  45,  47,  54,  48,  49 },
+        {  303, 150,  76,  45,  47,  55,  48,  50 },
+        {  303, 150,  76,  46,  47,  55,  48,  48 },
+        {  307,  74,  76,  45,  47,  55,  48,  48 },
+        {  302, 150,  76,  45,  47,  55,  48,  50 },
+        {  305, 150,  76,  45,  46,  54,  48,  48 },
+        {  307, 149,  75,  44,  46,  54,  48,  49 },
+        {  303, 149,  75,  44,  45,  54,  47,  49 },
+        {  306, 148,  74,  43,  45,  53,  47,  48 },
+        {  308,  71,  74,  42,  44,  53,  46,  48 },
+        {  303, 147,  73,  41,  44,  52,  46,  46 },
+        {  304, 145,  72,  41,  43,  52,  48,  45 },
+        {  302, 145,  71,  40,  42,  56,  48,  45 },
+        {  298, 144,  70,  39,  42,  55,  47,  45 },
+        {  299,  67,  70,  38,  41,  55,  47,  44 },
+        {  299,  66,  69,  38,  50,  54,  46,  44 },
+        {  299,  65,  69,  37,  50,  54,  46,  43 },
+        {  300,  65,  68,  37,  49,  54,  46,  43 },
+        {  299,  64,  68,  37,  49,  54,  46,  43 },
+        {  299, 141,  67,  36,  49,  53,  46,  43 },
+        {  299,  64,  67,  36,  49,  53,  46,  43 },
+        {  298,  64,  67,  36,  49,  53,  46,  43 },
+        {  300,  64,  68,  37,  49,  53,  46,  43 },
+        {  300,  64,  68,  37,  49,  53,  46,  43 },
+        {  299, 141,  68,  37,  49,  54,  46,  43 },
+        {  300, 142,  69,  37,  50,  54,  46,  44 },
+        {  301,  67,  69,  38,  50,  54,  47,  44 },
+        {  301, 144,  70,  38,  50,  55,  47,  46 },
+        {  304, 144,  71,  39,  51,  55,  47,  46 }
+    },
+    {
+        {  306,  72,  75,  44,  55,  59,  51,  49 },
+        {  309,  72,  76,  45,  56,  60,  52,  49 },
+        {  307, 150,  77,  46,  47,  56,  52,  50 },
+        {  310,  74,  78,  47,  48,  56,  53,  52 },
+        {  308, 151,  78,  47,  49,  57,  53,  52 },
+        {  311, 152,  79,  48,  49,  57,  53,  52 },
+        {  311, 152,  79,  48,  49,  57,  54,  52 },
+        {  313,  76,  79,  48,  49,  57,  54,  52 },
+        {  311, 152,  79,  47,  49,  57,  53,  51 },
+        {  309,  75,  78,  47,  48,  57,  53,  52 },
+        {  310,  74,  77,  46,  48,  56,  53,  50 },
+        {  312, 149,  76,  45,  47,  55,  52,  49 },
+        {  310,  72,  75,  44,  46,  60,  52,  49 },
+        {  303,  71,  74,  43,  46,  59,  51,  48 },
+        {  306,  71,  74,  42,  45,  58,  51,  48 },
+        {  304,  70,  73,  42,  54,  58,  50,  48 },
+        {  304, 145,  72,  41,  53,  57,  50,  47 },
+        {  306, 145,  72,  41,  53,  57,  50,  47 },
+        {  304, 144,  72,  41,  53,  57,  50,  47 },
+        {  305, 145,  72,  41,  53,  57,  50,  47 },
+        {  305, 145,  72,  41,  53,  57,  50,  47 },
+        {  305,  69,  73,  41,  53,  57,  50,  47 },
+        {  303,  70,  73,  42,  54,  58,  50,  48 },
+        {  306,  71,  74,  43,  54,  58,  51,  48 }
+    },
+    {
+        {  306,  70,  74,  42,  54,  57,  50,  47 },
+        {  304,  71,  75,  43,  45,  58,  50,  48 },
+        {  307,  72,  75,  44,  46,  54,  51,  48 },
+        {  307,  72,  76,  44,  46,  54,  51,  50 },
+        {  307,  72,  75,  44,  46,  54,  51,  48 },
+        {  307,  71,  75,  43,  45,  54,  50,  48 },
+        {  308,  70,  74,  42,  45,  58,  50,  47 },
+        {  307,  69,  73,  41,  44,  57,  50,  47 },
+        {  307, 145,  72,  40,  53,  57,  49,  47 },
+        {  307,  69,  72,  40,  52,  57,  49,  47 },
+        {  306,  69,  72,  40,  52,  57,  49,  47 },
+        {  305, 145,  73,  41,  53,  57,  50,  47 }
+    },
+    {
+        {  302,  69,  72,  40,  43,  56,  49,  46 }
+    }
+};
+
+/* 1st order HRTF approximation */
+
+static const float hrtf_amplitude_set_32000_order_1[14][72][8] = {
+    {
+        {
+             -1.4237350780e+03, -7.0595725711e+03, -7.5717321163e+03,
+              8.6941002619e+03, -1.9511337868e+04, -7.1966163060e+04,
+              3.9086551582e+04, -1.2363538052e+04
+        },
+        {
+             -1.4745060257e+03, -6.8578426520e+03, -7.3487907144e+03,
+              7.9777312137e+03, -1.7743766186e+04, -6.9858706399e+04,
+              3.8227749066e+04, -1.0068516316e+04
+        },
+        {
+             -1.4422476669e+03, -6.8836173118e+03, -7.2435673491e+03,
+              7.4752656199e+03, -1.6638783112e+04, -6.5024134572e+04,
+              3.4502198006e+04,  8.3968059215e+03
+        },
+        {
+             -1.4038231303e+03, -6.7930307911e+03, -7.1469372153e+03,
+              6.9739100991e+03, -1.5274658301e+04, -5.9290708132e+04,
+              3.0518468273e+04,  7.2014977543e+03
+        },
+        {
+             -1.2819853761e+03, -6.7690749550e+03, -7.1122194527e+03,
+              6.5386883104e+03, -1.4008285290e+04, -5.4094621482e+04,
+              2.7566119478e+04,  6.3474023955e+03
+        },
+        {
+             -1.2598675564e+03,  6.7531399989e+03, -7.1108077749e+03,
+              6.1393452263e+03, -1.2387627058e+04, -4.7761277775e+04,
+              2.4720190031e+04,  5.4323983893e+03
+        },
+        {
+             -1.0706938702e+03,  6.6789354855e+03, -7.1017015656e+03,
+              5.9184493953e+03, -1.0858490095e+04, -4.2268465006e+04,
+              2.2515886336e+04,  4.6879196877e+03
+        },
+        {
+              9.9288115050e+02,  6.6489624546e+03, -7.1147102295e+03,
+              5.7622152743e+03,  9.5530580549e+03, -3.6852796433e+04,
+              2.0528895201e+04,  3.8855858472e+03
+        },
+        {
+              9.5655536921e+02,  6.6115169196e+03, -7.1605895112e+03,
+              5.7355533294e+03,  8.2507425483e+03, -3.0470042744e+04,
+              1.8201622473e+04,  2.9129056863e+03
+        },
+        {
+              1.0625810568e+03,  6.5790929512e+03, -7.2460237962e+03,
+              5.7795441893e+03,  7.4450753100e+03, -2.4751105277e+04,
+              1.5905811477e+04,  2.1054477576e+03
+        },
+        {
+              1.0259077836e+03,  6.5886237227e+03, -7.3319444535e+03,
+              5.9037724478e+03,  7.0375946764e+03, -1.8595971162e+04,
+              1.2463819351e+04, -1.5801768967e+03
+        },
+        {
+             -1.0631994554e+03,  6.6509839181e+03, -7.3940868584e+03,
+              6.0394639041e+03,  7.1048594320e+03, -1.5920949043e+04,
+              8.3504235133e+03, -1.6095422239e+03
+        },
+        {
+             -1.1027013825e+03,  6.5938941307e+03, -7.4375279018e+03,
+              6.2002767426e+03,  7.4474130146e+03, -1.7896710779e+04,
+             -4.5152587013e+03, -1.0496920416e+03
+        },
+        {
+             -1.1649597059e+03,  6.6009621584e+03, -7.5007292068e+03,
+              6.2833800829e+03,  7.7276356381e+03, -2.1256420988e+04,
+              6.6119924759e+03,  7.0628703024e+02
+        },
+        {
+             -1.1566616743e+03,  6.6164386391e+03, -7.5199129919e+03,
+              6.3381797674e+03,  7.8442543477e+03, -2.3492855364e+04,
+              9.5847874885e+03, -1.2023117149e+03
+        },
+        {
+             -1.0721425063e+03,  6.6711335884e+03, -7.5437992378e+03,
+              6.3184256293e+03,  7.6778430162e+03, -2.3674912463e+04,
+              1.0486596492e+04,  1.4258312324e+03
+        },
+        {
+             -9.9980201707e+02,  6.5758684380e+03, -7.5654385409e+03,
+              6.2495641567e+03,  7.2674618348e+03, -2.2087886542e+04,
+              8.7527174993e+03,  1.4312777052e+03
+        },
+        {
+             -9.5316601460e+02,  6.5291529461e+03, -7.5334826696e+03,
+              6.1108641648e+03,  6.5620790425e+03, -1.9907127935e+04,
+             -7.7393200791e+03,  2.0909785043e+03
+        },
+        {
+              1.0602219678e+03,  6.5537810015e+03, -7.5184976962e+03,
+              5.9338839424e+03,  5.9264538838e+03, -2.0297547123e+04,
+             -1.0412775081e+04, -2.6528752619e+03
+        },
+        {
+              1.0153566159e+03,  6.5823242176e+03, -7.4640617904e+03,
+              5.7028790772e+03,  5.5074969894e+03, -2.5034105308e+04,
+              1.4510634189e+04, -3.3994134858e+03
+        },
+        {
+              1.0446181748e+03,  6.6302452328e+03, -7.4146020392e+03,
+              5.5077776350e+03,  5.7065711556e+03, -3.1175833176e+04,
+              1.6739878844e+04, -4.1902587213e+03
+        },
+        {
+             -1.0790632493e+03,  6.6510637407e+03, -7.3748761927e+03,
+              5.3277847087e+03,  6.4570176023e+03, -3.7451336730e+04,
+              1.8472628361e+04, -5.1580620093e+03
+        },
+        {
+             -1.0367137530e+03,  6.6682635707e+03, -7.3404956797e+03,
+              5.2112964221e+03, -8.0430362583e+03, -4.3912894678e+04,
+              2.1047999563e+04, -6.5541302918e+03
+        },
+        {
+              1.1007488935e+03,  6.6384957537e+03, -7.3089795021e+03,
+              5.2147152322e+03, -9.7901348734e+03, -4.8654309437e+04,
+              2.3650013633e+04, -8.0242506856e+03
+        },
+        {
+              1.2115280308e+03,  6.6004530341e+03, -7.2127695975e+03,
+              5.3708638523e+03, -1.1660182867e+04, -5.4062079679e+04,
+              2.7177008898e+04, -9.8816865488e+03
+        },
+        {
+             -1.0967564524e+03,  6.7522025437e+03, -7.2779897426e+03,
+              5.6085023785e+03, -1.3002406260e+04, -5.8840212707e+04,
+              3.0069463705e+04, -1.1474005834e+04
+        },
+        {
+              1.1375623677e+03,  6.7410855015e+03, -7.2840748505e+03,
+              6.0205150110e+03, -1.4202164046e+04, -6.4605615366e+04,
+             -3.3165775273e+04, -1.2736243980e+04
+        },
+        {
+             -1.0788473324e+03,  6.8299869906e+03, -7.3265604970e+03,
+              6.5067960738e+03, -1.4946324153e+04, -6.9515795281e+04,
+             -3.5631835821e+04, -1.3238026678e+04
+        },
+        {
+             -1.1241121207e+03,  6.9113926581e+03, -7.4251999678e+03,
+              6.9968683793e+03, -1.5501976197e+04, -7.4377476337e+04,
+             -3.8185541117e+04, -1.3252820680e+04
+        },
+        {
+             -1.1253193703e+03,  7.0163848832e+03, -7.5564769424e+03,
+              7.6273318210e+03, -1.5988365492e+04, -7.9660364644e+04,
+              4.1205318868e+04, -1.2882935573e+04
+        },
+        {
+             -1.1416515359e+03,  7.0448088304e+03, -7.6490432362e+03,
+              8.2312331140e+03, -1.6359282832e+04, -8.3532778793e+04,
+              4.3419312218e+04,  1.3011106751e+04
+        },
+        {
+             -9.9347487751e+02, -7.1115421788e+03, -7.9252110987e+03,
+              8.8466114714e+03, -1.6832312625e+04, -8.7238961413e+04,
+              4.4542319547e+04,  1.3486993786e+04
+        },
+        {
+             -1.1117363770e+03,  7.1295300207e+03, -8.0538576725e+03,
+              9.3969391662e+03, -1.7310069298e+04, -8.9579211547e+04,
+             -4.4616827009e+04,  1.4399436810e+04
+        },
+        {
+             -1.0775195852e+03, -7.2096992318e+03, -8.2101078229e+03,
+              1.0046730454e+04,  1.8026048145e+04, -9.1055439536e+04,
+             -4.4153614491e+04,  1.5617706349e+04
+        },
+        {
+             -1.1756467095e+03, -7.3503177582e+03, -8.4449163322e+03,
+              1.0495690596e+04,  1.8733121995e+04, -9.1508058364e+04,
+             -4.3919566396e+04,  1.7126584870e+04
+        },
+        {
+             -1.1902536157e+03, -7.3695340900e+03, -8.6938739468e+03,
+              1.0913450252e+04,  1.9473311281e+04, -9.1135777190e+04,
+             -4.3841572450e+04, -1.8985836226e+04
+        },
+        {
+             -1.1859504646e+03, -7.5148490579e+03, -8.8803323952e+03,
+              1.1393393305e+04,  2.0281328787e+04, -9.0407778179e+04,
+             -4.4541572266e+04, -2.1090490352e+04
+        },
+        {
+              1.1857091830e+03, -7.5320624021e+03, -8.9994513265e+03,
+              1.1766492202e+04, -2.1026892194e+04, -9.0008138618e+04,
+             -4.5499351783e+04, -2.3855514260e+04
+        },
+        {
+              1.1238231810e+03,  7.6043756454e+03, -9.1696585386e+03,
+              1.2096300256e+04, -2.1895705606e+04, -8.9942671087e+04,
+             -4.7054469222e+04, -2.6371194083e+04
+        },
+        {
+              1.0759832018e+03, -7.6922329458e+03, -9.3596436075e+03,
+              1.2294028614e+04, -2.2595942419e+04, -9.0561178962e+04,
+             -4.8650519020e+04, -2.8052966082e+04
+        },
+        {
+             -1.1058413041e+03, -7.6137706673e+03, -9.5340580771e+03,
+              1.2512331589e+04, -2.3277032167e+04, -9.1777086444e+04,
+             -5.0724611592e+04, -2.9360501812e+04
+        },
+        {
+             -1.1049620738e+03, -7.6636122839e+03, -9.6406975161e+03,
+              1.2637528809e+04, -2.3782337053e+04, -9.3377389172e+04,
+             -5.2805325704e+04, -2.9920113365e+04
+        },
+        {
+              1.1266549134e+03, -7.7064266607e+03, -9.6692772715e+03,
+              1.2697743858e+04, -2.4171242124e+04, -9.5301318947e+04,
+             -5.4739447354e+04, -2.9764013413e+04
+        },
+        {
+             -1.2500142194e+03, -7.7601536203e+03, -9.6910275830e+03,
+              1.2711994603e+04, -2.4472336318e+04, -9.8215629643e+04,
+             -5.7359996891e+04, -2.8564313093e+04
+        },
+        {
+             -1.3772201976e+03, -7.7526658943e+03, -9.6785227543e+03,
+              1.2682948865e+04, -2.4646557818e+04, -1.0088845104e+05,
+             -5.9157705027e+04, -2.6665485333e+04
+        },
+        {
+             -1.5481140669e+03, -7.7707397223e+03, -9.5817354744e+03,
+              1.2575215082e+04, -2.4750579597e+04, -1.0404289638e+05,
+              6.1254724599e+04,  2.4904277843e+04
+        },
+        {
+             -1.4936309309e+03, -7.7585251354e+03, -9.4818662269e+03,
+              1.2460890218e+04, -2.4806277384e+04, -1.0610255054e+05,
+              6.2314645606e+04,  2.4022154743e+04
+        },
+        {
+             -1.4454635153e+03, -7.6609143603e+03, -9.2820261070e+03,
+              1.2249613553e+04, -2.4769066403e+04, -1.0785363247e+05,
+              6.2750437430e+04,  2.2688018970e+04
+        },
+        {
+             -1.2669078162e+03, -7.5693857338e+03, -9.1402896997e+03,
+              1.2017098586e+04, -2.4653804942e+04, -1.0828312805e+05,
+              6.1867903336e+04,  2.1668022569e+04
+        },
+        {
+             -1.2964993768e+03, -7.5360652312e+03, -8.9859196505e+03,
+              1.1753902936e+04, -2.4487943226e+04, -1.0751269454e+05,
+              5.9735527331e+04,  2.0822692123e+04
+        },
+        {
+             -1.2032384490e+03, -7.3938570343e+03, -8.7740195242e+03,
+              1.1373308606e+04, -2.4173145991e+04, -1.0503591338e+05,
+             -5.6751098021e+04, -1.9591397521e+04
+        },
+        {
+             -1.2156182835e+03, -7.3796682956e+03, -8.5914692555e+03,
+              1.1022875553e+04, -2.3792079228e+04, -1.0152558585e+05,
+             -5.4146833534e+04, -1.8039361885e+04
+        },
+        {
+             -1.3121390443e+03, -7.3022825593e+03, -8.3457936478e+03,
+              1.0575400749e+04, -2.3176945432e+04, -9.6174406802e+04,
+              5.1572866827e+04, -1.6028949832e+04
+        },
+        {
+             -1.3441080080e+03, -7.2068408939e+03, -8.1195649207e+03,
+              1.0169243242e+04, -2.2476437812e+04, -9.0580141762e+04,
+              4.9547661801e+04, -1.5606604887e+04
+        },
+        {
+             -1.3466139611e+03, -7.1467552357e+03, -7.8932294389e+03,
+              9.6325078944e+03, -2.1507123380e+04, -8.3553190290e+04,
+              4.6482544183e+04, -1.5332623342e+04
+        },
+        {
+             -1.3394510478e+03, -7.1731594393e+03, -7.7532400723e+03,
+              9.1454907261e+03, -2.0538764512e+04, -7.7658748253e+04,
+              4.3120184696e+04, -1.4104547645e+04
+        }
+    },
+    {
+        {
+             -1.1070977974e+03,  7.3457166637e+03, -7.6314720562e+03,
+              9.3387419738e+03, -1.8889032001e+04, -6.2729027705e+04,
+              5.3327761178e+04, -1.4370457323e+04
+        },
+        {
+             -1.0153477915e+03,  7.1978910975e+03, -7.4087821149e+03,
+              8.6315586450e+03,  1.7427421504e+04, -5.9076427066e+04,
+              5.1017005249e+04, -1.0304356276e+04
+        },
+        {
+             -1.0501688354e+03,  7.1213637222e+03, -7.2365493451e+03,
+              8.1785030353e+03,  1.6265730867e+04, -5.6246410446e+04,
+              4.4374922796e+04,  8.2942254098e+03
+        },
+        {
+             -1.0707981836e+03,  7.0840340109e+03, -7.0826235106e+03,
+              7.7317248654e+03,  1.5107139886e+04, -5.3862801039e+04,
+              3.7835430092e+04,  7.0204380557e+03
+        },
+        {
+             -1.1189822298e+03,  7.0022809129e+03, -7.0185681312e+03,
+              7.2688449353e+03,  1.3988246570e+04, -5.1522961364e+04,
+              3.1663570242e+04,  6.0412102161e+03
+        },
+        {
+             -1.1397393353e+03,  6.9879615826e+03, -6.9487127458e+03,
+              6.8972075258e+03,  1.2844145218e+04, -4.8622189358e+04,
+              2.5800877915e+04,  5.2369712995e+03
+        },
+        {
+             -1.0205730924e+03,  6.9985296981e+03, -6.9024978751e+03,
+              6.5748641629e+03,  1.1708110076e+04, -4.5119536882e+04,
+             -2.1973156809e+04,  4.7072614728e+03
+        },
+        {
+             -1.1828856489e+03,  6.9675732195e+03, -6.8959079972e+03,
+              6.3281612448e+03,  1.0589643208e+04, -4.0947876858e+04,
+             -1.9083938563e+04,  4.2439774854e+03
+        },
+        {
+             -1.2631943238e+03,  6.8548930109e+03, -6.9368150055e+03,
+              6.1944715364e+03,  9.5203313672e+03, -3.6413056965e+04,
+             -1.7099391308e+04,  3.7296909865e+03
+        },
+        {
+             -1.3014041920e+03,  6.8340809455e+03, -6.9755517700e+03,
+              6.1341312976e+03,  8.6260265309e+03, -3.1694442660e+04,
+              1.5278847730e+04,  3.1171329347e+03
+        },
+        {
+             -1.4069174504e+03,  6.8648285454e+03, -7.0273493088e+03,
+              6.1681600453e+03,  7.9973608745e+03, -2.7367774577e+04,
+             -1.2781429450e+04,  2.4923676083e+03
+        },
+        {
+             -1.4619271131e+03,  6.8476249774e+03, -7.0793951261e+03,
+              6.2401276584e+03,  7.7135970568e+03, -2.4460220220e+04,
+             -9.3838220833e+03,  1.8817006195e+03
+        },
+        {
+             -1.3859240995e+03,  6.7630173409e+03, -7.1682995493e+03,
+              6.3321926485e+03,  7.7388050631e+03, -2.3881054787e+04,
+             -6.4043501738e+03,  1.3813724709e+03
+        },
+        {
+             -1.2495533481e+03,  6.7601648299e+03, -7.1932955397e+03,
+              6.4492211212e+03,  7.9394629086e+03, -2.4952820621e+04,
+             -6.8577638673e+03, -6.8824589885e+02
+        },
+        {
+             -1.1249475572e+03,  6.7826609647e+03, -7.2051716435e+03,
+              6.5239995594e+03,  8.1168321475e+03, -2.5923821350e+04,
+             -9.0723707778e+03,  1.2014262205e+03
+        },
+        {
+             -1.0876142402e+03,  6.8107537036e+03, -7.2257183673e+03,
+              6.5450780290e+03,  8.1236270922e+03, -2.5670177550e+04,
+             -9.9963671479e+03,  9.3691374743e+02
+        },
+        {
+              1.1303317643e+03,  6.7762675858e+03, -7.2581959293e+03,
+              6.5204281094e+03,  7.8784321889e+03, -2.3892456747e+04,
+             -9.1618401086e+03,  1.5476764808e+03
+        },
+        {
+             -1.0484245523e+03,  6.7771121591e+03, -7.2389218993e+03,
+              6.4362062392e+03,  7.3428102248e+03, -2.1491574698e+04,
+             -8.1592840093e+03,  1.6512861719e+03
+        },
+        {
+             -1.0747559793e+03,  6.7352938349e+03, -7.2348575901e+03,
+              6.2913190458e+03,  6.6110208869e+03, -2.0195277022e+04,
+             -8.7522156459e+03,  2.1247380886e+03
+        },
+        {
+             -1.1645901453e+03,  6.8208173316e+03, -7.1812824238e+03,
+              6.1008866170e+03,  5.8299569783e+03, -2.1734827764e+04,
+              1.0994817233e+04,  2.7555864775e+03
+        },
+        {
+             -1.1647301612e+03,  6.7840493994e+03, -7.1545457554e+03,
+              5.8812677069e+03,  5.3290798750e+03, -2.5965935369e+04,
+              1.3635459911e+04,  3.4830112775e+03
+        },
+        {
+             -1.1107447311e+03,  6.8119748194e+03, -7.1114490747e+03,
+              5.6714305281e+03,  5.4172837438e+03, -3.1328822489e+04,
+             -1.6075198448e+04,  4.2914075580e+03
+        },
+        {
+             -1.0900231059e+03,  6.8274581497e+03, -7.0832819471e+03,
+              5.4552782315e+03,  6.1703680170e+03, -3.6576418870e+04,
+             -1.8717238150e+04, -5.4757828165e+03
+        },
+        {
+             -1.0666784304e+03,  6.7973288603e+03, -7.0260386882e+03,
+              5.3415251203e+03,  7.3950605756e+03, -4.1236526120e+04,
+             -2.1599289108e+04, -6.8589416903e+03
+        },
+        {
+             -1.0810156508e+03,  6.8465398346e+03, -6.9947280440e+03,
+              5.3146994573e+03,  8.8434713256e+03, -4.5618629912e+04,
+             -2.4762754892e+04, -8.3063941802e+03
+        },
+        {
+             -1.0671145056e+03,  6.8391084219e+03, -6.9731596912e+03,
+              5.3938122873e+03, -1.0550039945e+04, -5.0184518285e+04,
+             -2.8180178534e+04, -9.7906403382e+03
+        },
+        {
+             -1.0313419834e+03,  6.8656222233e+03, -6.9635302885e+03,
+              5.5846730205e+03, -1.2264980715e+04, -5.5176820327e+04,
+             -3.1822056323e+04, -1.1080070680e+04
+        },
+        {
+             -1.0668301892e+03,  6.9889178464e+03, -6.9667001042e+03,
+              5.9355310285e+03, -1.3782257220e+04, -6.0564489223e+04,
+             -3.5588601915e+04, -1.1978377929e+04
+        },
+        {
+             -1.0409071442e+03,  6.9319674722e+03, -7.0313279449e+03,
+              6.3291419041e+03, -1.5071386847e+04, -6.6079550536e+04,
+             -3.9174478607e+04, -1.2307328408e+04
+        },
+        {
+             -1.0878619361e+03,  7.0472157440e+03, -7.1405027487e+03,
+              6.8000928899e+03, -1.6193701019e+04, -7.1609545560e+04,
+             -4.2343367305e+04,  1.1876824077e+04
+        },
+        {
+             -1.1643858045e+03,  7.1026363263e+03, -7.2581220906e+03,
+              7.3462312524e+03, -1.7165274150e+04, -7.7008683871e+04,
+             -4.4455819467e+04,  1.1532490862e+04
+        },
+        {
+             -1.1333313425e+03,  7.2070671435e+03, -7.4082019959e+03,
+              7.8442750565e+03, -1.8012613542e+04, -8.2461887753e+04,
+             -4.5775852279e+04,  1.1226478058e+04
+        },
+        {
+             -1.1770364829e+03,  7.2798734968e+03, -7.5867258144e+03,
+              8.4250814518e+03, -1.8743402643e+04, -8.7861620233e+04,
+             -4.5849995699e+04,  1.1390166198e+04
+        },
+        {
+             -1.1309786151e+03,  7.3412724294e+03, -7.7906481295e+03,
+              8.9492925784e+03, -1.9404846556e+04, -9.3104174285e+04,
+             -4.4988327757e+04,  1.2168413720e+04
+        },
+        {
+             -1.1558555038e+03,  7.4318277795e+03, -8.0664354863e+03,
+              9.4498965592e+03, -1.9993957337e+04, -9.7447502709e+04,
+             -4.3090328911e+04,  1.3304703517e+04
+        },
+        {
+             -1.1156499059e+03,  7.4810916349e+03, -8.2284899307e+03,
+              1.0007499287e+04, -2.0530549003e+04, -1.0085229093e+05,
+             -4.1074641546e+04,  1.5151285159e+04
+        },
+        {
+             -1.1998179262e+03,  7.5722428851e+03, -8.4891274866e+03,
+              1.0470860642e+04, -2.1062543393e+04,  1.0291636262e+05,
+             -3.9249634353e+04,  1.7098609568e+04
+        },
+        {
+             -1.1840761766e+03,  7.6107465876e+03, -8.8282790368e+03,
+              1.0874941256e+04, -2.1624747630e+04, -1.0323619518e+05,
+             -3.8586383625e+04,  1.9162751356e+04
+        },
+        {
+              1.4031917105e+03,  7.8060876739e+03, -8.9864092052e+03,
+              1.1325967751e+04, -2.2211181164e+04, -1.0245893461e+05,
+             -3.9383265551e+04, -2.1337014164e+04
+        },
+        {
+              1.1536111573e+03,  7.8424781193e+03, -9.1331593670e+03,
+              1.1732172737e+04, -2.2825392742e+04, -1.0070607855e+05,
+             -4.1545019716e+04, -2.3639980666e+04
+        },
+        {
+             -1.3324455676e+03,  7.9955485959e+03, -9.3970771050e+03,
+              1.2055535151e+04, -2.3455270695e+04, -9.8632826660e+04,
+             -4.4807087259e+04, -2.5652383792e+04
+        },
+        {
+             -1.3415740641e+03,  7.9991842973e+03, -9.6659638906e+03,
+              1.2315742399e+04, -2.4086460524e+04, -9.6752531574e+04,
+             -4.8757713088e+04, -2.7384789743e+04
+        },
+        {
+             -1.4179675708e+03,  8.0513145595e+03, -9.8511300300e+03,
+              1.2560567810e+04, -2.4665276928e+04, -9.5481771907e+04,
+             -5.3065890095e+04, -2.8791048854e+04
+        },
+        {
+             -1.3437938018e+03,  7.9815571775e+03, -9.9671485085e+03,
+              1.2796712003e+04, -2.5194651055e+04, -9.5018717225e+04,
+             -5.7335573636e+04, -2.9935088740e+04
+        },
+        {
+             -1.3480079946e+03,  8.1125582014e+03, -1.0018023499e+04,
+              1.2950975309e+04, -2.5654806987e+04, -9.5530225581e+04,
+             -6.1598505762e+04, -3.0609289070e+04
+        },
+        {
+              1.2480962357e+03,  8.1134161094e+03, -1.0048791578e+04,
+              1.3070074827e+04, -2.5989555150e+04, -9.6569427265e+04,
+             -6.5420614263e+04, -3.0532228990e+04
+        },
+        {
+             -1.2055651660e+03,  8.1346043818e+03, -1.0057888401e+04,
+              1.3129786203e+04, -2.6239720958e+04, -9.8054582222e+04,
+             -6.8895515972e+04, -2.9690277913e+04
+        },
+        {
+             -1.3421745708e+03,  8.2982109373e+03, -1.0039083233e+04,
+              1.3089337247e+04, -2.6387177188e+04, -9.9493535902e+04,
+              7.2562900775e+04,  2.8579276407e+04
+        },
+        {
+             -1.4557192070e+03,  8.1424442703e+03, -1.0038936351e+04,
+              1.3077474778e+04, -2.6452145795e+04, -1.0048582922e+05,
+              7.6653393180e+04,  2.7569309433e+04
+        },
+        {
+             -1.5098562783e+03,  8.0549632096e+03, -1.0002371291e+04,
+              1.2975371260e+04, -2.6401273426e+04, -1.0073637642e+05,
+              8.0986972938e+04,  2.6273486218e+04
+        },
+        {
+             -1.4418540253e+03, -7.8050198913e+03, -9.8549190561e+03,
+              1.2861823387e+04, -2.6270098743e+04, -1.0004675413e+05,
+              8.4962201871e+04,  2.4753511252e+04
+        },
+        {
+             -1.5703239960e+03, -7.9441269721e+03, -9.6532812005e+03,
+              1.2649356786e+04, -2.6040231387e+04, -9.8266083268e+04,
+              8.8116381855e+04,  2.3340981145e+04
+        },
+        {
+             -1.5646778329e+03,  7.9182183811e+03, -9.4517907070e+03,
+              1.2426674283e+04, -2.5726668660e+04, -9.5559949832e+04,
+              9.0584000011e+04,  2.2096837104e+04
+        },
+        {
+             -1.4676793289e+03,  7.9088718721e+03, -9.3003988252e+03,
+              1.2131007576e+04, -2.5294764138e+04, -9.2094235957e+04,
+              9.1381548020e+04,  2.1585869643e+04
+        },
+        {
+             -1.3784191332e+03,  7.8027288711e+03, -9.0762558718e+03,
+              1.1810900011e+04, -2.4751695833e+04, -8.8204056499e+04,
+              9.0130465931e+04,  2.1480864347e+04
+        },
+        {
+             -1.2104841013e+03,  7.6744898324e+03, -8.8353759111e+03,
+              1.1467454411e+04, -2.4072208046e+04, -8.3969575033e+04,
+              8.6642916574e+04, -2.0558838394e+04
+        },
+        {
+              1.1285735569e+03,  7.6261652977e+03, -8.5760204756e+03,
+              1.1088235138e+04, -2.3270162238e+04, -7.9702256683e+04,
+              8.1176490089e+04, -2.0382924572e+04
+        },
+        {
+             -1.0887266252e+03,  7.6559429047e+03, -8.3211150934e+03,
+              1.0691124681e+04, -2.2352904690e+04, -7.5491307959e+04,
+              7.4287650647e+04, -1.9976685941e+04
+        },
+        {
+              9.9773337163e+02,  7.5132396863e+03, -8.0961517533e+03,
+              1.0240713059e+04, -2.1285296228e+04, -7.1132382117e+04,
+              6.7178618743e+04, -1.8764822901e+04
+        },
+        {
+              1.0502851871e+03,  7.3945544101e+03, -7.8834146652e+03,
+              9.7699727004e+03, -2.0119358129e+04, -6.6861391732e+04,
+              6.0157990661e+04, -1.6818105403e+04
+        }
+    },
+    {
+        {
+             -1.0714403701e+03,  7.7094211930e+03, -7.9832962222e+03,
+              9.9867916924e+03,  1.8034856430e+04, -6.9830359693e+04,
+              4.7683683740e+04,  1.5787078401e+04
+        },
+        {
+              1.0872911397e+03,  7.5518676025e+03, -7.7057549682e+03,
+              9.5076143053e+03,  1.6968784198e+04, -6.5409895437e+04,
+              4.6289756309e+04, -1.2109203692e+04
+        },
+        {
+             -1.0765237294e+03,  7.4839648188e+03, -7.5343204546e+03,
+              9.1296755432e+03,  1.5984724343e+04, -6.0495833747e+04,
+              4.2166915670e+04, -1.0211246192e+04
+        },
+        {
+             -1.1347192404e+03,  7.4591352877e+03, -7.3911494384e+03,
+              8.7273685461e+03,  1.5025926824e+04, -5.6122409270e+04,
+              3.8030712619e+04, -8.7268130244e+03
+        },
+        {
+             -1.1339184364e+03,  7.3152291259e+03, -7.2617886260e+03,
+              8.3881457561e+03,  1.4060575411e+04, -5.2455649294e+04,
+              3.3969398275e+04,  7.4530317851e+03
+        },
+        {
+             -1.1969957644e+03,  7.3047608728e+03, -7.1497965853e+03,
+              8.0766685801e+03,  1.3134669465e+04, -4.9400024505e+04,
+              2.9938773929e+04,  6.4206866459e+03
+        },
+        {
+             -1.1024255214e+03,  7.2582418274e+03, -7.0826546640e+03,
+              7.7567447406e+03,  1.2264557027e+04, -4.6612153933e+04,
+              2.5969708605e+04,  5.0237137605e+03
+        },
+        {
+             -1.1020492692e+03,  7.1583440195e+03, -6.9745555059e+03,
+              7.5109962158e+03,  1.1423784266e+04, -4.3783174738e+04,
+              2.2259226624e+04,  4.2227215253e+03
+        },
+        {
+             -1.0369036681e+03,  7.1324579567e+03, -6.9613194612e+03,
+              7.3192098267e+03,  1.0650776007e+04, -4.0699740651e+04,
+             -1.9492326496e+04,  3.7291139253e+03
+        },
+        {
+              1.0071407844e+03,  7.1726076816e+03, -6.9311400148e+03,
+              7.1598570210e+03,  9.9530277210e+03, -3.7382776401e+04,
+              1.7653923394e+04,  3.3920982503e+03
+        },
+        {
+              1.0442987334e+03,  7.1200639487e+03, -6.9127859276e+03,
+              7.0858632806e+03,  9.3592910136e+03, -3.4054766572e+04,
+              1.6698052194e+04,  3.1420833817e+03
+        },
+        {
+             -1.0235397644e+03,  7.0961109177e+03, -6.9233588361e+03,
+              7.0466705662e+03,  8.9159953766e+03, -3.0965636365e+04,
+              1.5246198141e+04, -2.9730916228e+03
+        },
+        {
+             -1.0256695157e+03,  7.0583184331e+03, -6.9575734473e+03,
+              7.0560336584e+03,  8.6647149684e+03, -2.8464494503e+04,
+              1.2407275856e+04,  2.6936206090e+03
+        },
+        {
+             -1.0874873212e+03,  7.0592696538e+03, -6.9775264075e+03,
+              7.0985431343e+03,  8.6188023755e+03, -2.6820485613e+04,
+             -9.2370665218e+03,  2.5048947399e+03
+        },
+        {
+             -1.1577500825e+03,  7.0539364157e+03, -7.0021797805e+03,
+              7.1578383427e+03,  8.7329420931e+03, -2.6144583522e+04,
+             -7.3536646208e+03, -2.4969094676e+03
+        },
+        {
+             -1.1771778934e+03,  7.0718031538e+03, -7.0315865725e+03,
+              7.2245941367e+03,  8.9452216865e+03, -2.6105111239e+04,
+              1.0078893157e+04, -1.9192942310e+03
+        },
+        {
+             -1.2145392601e+03,  7.0671050876e+03, -7.0392006036e+03,
+              7.2707936521e+03,  9.1685816345e+03, -2.6024872923e+04,
+              1.3022829221e+04, -1.4578080128e+03
+        },
+        {
+             -1.2248525702e+03,  7.0560643439e+03, -7.0764652253e+03,
+              7.3038204470e+03,  9.2900421349e+03, -2.5160083377e+04,
+              1.3840121542e+04, -1.8610543302e+03
+        },
+        {
+             -1.2145158536e+03,  7.0675876390e+03, -7.0927868004e+03,
+              7.2861534528e+03,  9.2544346396e+03, -2.3037865333e+04,
+              1.2206780779e+04, -1.4605450280e+03
+        },
+        {
+             -1.1197778355e+03,  6.9529978303e+03, -7.0894079806e+03,
+              7.2654927595e+03,  9.0077521377e+03, -1.9692425329e+04,
+             -8.9291230897e+03,  2.2640803939e+03
+        },
+        {
+             -1.1341709717e+03,  6.9850276571e+03, -7.0754945831e+03,
+              7.1719270313e+03,  8.5529028757e+03, -1.5997794010e+04,
+             -6.1988114706e+03,  2.0523617325e+03
+        },
+        {
+             -1.2549394160e+03,  6.8851044836e+03, -7.1019247616e+03,
+              7.0314881973e+03,  7.9033267220e+03, -1.4089708405e+04,
+             -7.1252935390e+03,  2.0906684943e+03
+        },
+        {
+             -1.3130481360e+03,  7.1059491065e+03, -7.0177049180e+03,
+              6.8956173167e+03,  7.1323626048e+03, -1.5897652594e+04,
+             -8.8586302348e+03, -2.6698348067e+03
+        },
+        {
+             -1.2052645491e+03,  6.9948336713e+03, -7.0296164027e+03,
+              6.7057248938e+03,  6.3860106195e+03, -2.0341922049e+04,
+             -1.0531647655e+04, -3.2372019630e+03
+        },
+        {
+             -1.1842203002e+03,  7.0208563119e+03, -6.9835018047e+03,
+              6.5104020494e+03,  5.8617214977e+03,  2.6439271242e+04,
+             -1.2174488421e+04, -3.8997964253e+03
+        },
+        {
+             -1.1502771190e+03,  6.9663342465e+03, -6.9606705018e+03,
+              6.3145127846e+03,  5.7621783159e+03,  3.1726593204e+04,
+             -1.3983796928e+04, -4.5636993064e+03
+        },
+        {
+             -1.2246639966e+03,  7.0569018615e+03, -6.9236334929e+03,
+              6.1549567144e+03,  6.1662210937e+03,  3.5615477522e+04,
+              1.6052308007e+04, -5.3733687134e+03
+        },
+        {
+             -1.1747410470e+03,  7.0392886641e+03, -6.9067583853e+03,
+              6.0290317967e+03,  6.9872408700e+03,  3.8281510510e+04,
+             -1.8369433230e+04, -6.2842634587e+03
+        },
+        {
+             -1.2333920503e+03,  7.0618346043e+03, -6.8825883434e+03,
+              5.9719064369e+03,  8.0567442555e+03, -4.0909823266e+04,
+             -2.0962063457e+04, -7.2324227242e+03
+        },
+        {
+             -1.2657401830e+03,  7.0925917858e+03, -6.8599970036e+03,
+              5.9778786980e+03,  9.2810885112e+03, -4.4157021109e+04,
+             -2.3723275651e+04, -8.2786500895e+03
+        },
+        {
+             -1.2510975969e+03,  7.1756962322e+03, -6.8472764352e+03,
+              6.0709047739e+03, -1.0629507105e+04, -4.7831050727e+04,
+             -2.6631512712e+04, -9.2602934650e+03
+        },
+        {
+             -1.2463174954e+03,  7.1675027338e+03, -6.8575244945e+03,
+              6.2854597525e+03, -1.2113585921e+04, -5.1878846747e+04,
+             -2.9674159570e+04, -1.0188550861e+04
+        },
+        {
+             -1.2156803830e+03,  7.1892301142e+03, -6.9047503904e+03,
+              6.5376995147e+03, -1.3499678089e+04, -5.6192001264e+04,
+             -3.2785662031e+04, -1.0975899295e+04
+        },
+        {
+             -1.1986734754e+03,  7.2206036294e+03, -6.9653794193e+03,
+              6.8455685184e+03, -1.4788062870e+04, -6.0551849952e+04,
+             -3.5790100216e+04, -1.1400967316e+04
+        },
+        {
+             -1.1176786115e+03,  7.2826072318e+03, -7.0371479441e+03,
+              7.2382295032e+03, -1.5968172400e+04, -6.4908520479e+04,
+             -3.8540323221e+04,  1.1361066389e+04
+        },
+        {
+             -1.0929751909e+03,  7.3515172100e+03, -7.1610584116e+03,
+              7.6459930094e+03, -1.7060437079e+04, -6.9163536838e+04,
+             -4.0814661844e+04,  1.1194067305e+04
+        },
+        {
+              1.1475836857e+03,  7.4052365178e+03, -7.2892653594e+03,
+              8.0687144298e+03, -1.8055060325e+04, -7.3350039533e+04,
+             -4.2542033525e+04,  1.0919386572e+04
+        },
+        {
+             -1.1202908647e+03,  7.4583131150e+03, -7.4388427407e+03,
+              8.5378848387e+03, -1.8971971200e+04, -7.7281654649e+04,
+             -4.3214084682e+04,  1.0769063218e+04
+        },
+        {
+             -1.1281124815e+03,  7.5176587221e+03, -7.6087870299e+03,
+              8.9633612893e+03, -1.9797488378e+04, -8.1109150761e+04,
+             -4.3578738873e+04,  1.0793642085e+04
+        },
+        {
+              1.1189564700e+03,  7.6274770595e+03, -7.8228223773e+03,
+              9.4220517826e+03, -2.0528393695e+04, -8.4617490144e+04,
+             -4.3340934187e+04,  1.1116006861e+04
+        },
+        {
+             -1.1721284309e+03,  7.7345988662e+03, -7.9721583698e+03,
+              9.8892640058e+03, -2.1172638261e+04, -8.7767510246e+04,
+             -4.2598719899e+04,  1.1893623629e+04
+        },
+        {
+             -1.1364711315e+03,  7.7501544970e+03, -8.2310108220e+03,
+              1.0310319931e+04, -2.1761659041e+04, -9.0433066250e+04,
+             -4.1546145124e+04,  1.3260755803e+04
+        },
+        {
+              1.1300790624e+03,  7.8645396962e+03, -8.5044514057e+03,
+              1.0703907239e+04, -2.2291927243e+04, -9.2581500387e+04,
+             -4.0273904119e+04,  1.5000865432e+04
+        },
+        {
+             -1.2089119208e+03,  8.0007659533e+03, -8.6716725262e+03,
+              1.1153900958e+04, -2.2770197293e+04, -9.4132817627e+04,
+             -3.9075038264e+04, -1.7431417164e+04
+        },
+        {
+             -1.2291020678e+03,  8.1124125048e+03, -8.8683727604e+03,
+              1.1568471868e+04, -2.3230196619e+04, -9.5110793163e+04,
+             -3.8337048242e+04, -2.0585589876e+04
+        },
+        {
+             -1.2714811920e+03,  8.1912752352e+03, -9.1649822632e+03,
+              1.1906358799e+04, -2.3659307387e+04, -9.5510938880e+04,
+             -3.8237823864e+04, -2.3661569462e+04
+        },
+        {
+             -1.1853956609e+03,  8.2098036579e+03, -9.4195065484e+03,
+              1.2241812228e+04, -2.4078440778e+04, -9.5406187793e+04,
+             -3.8970311439e+04, -2.6458333511e+04
+        },
+        {
+             -1.4009489367e+03,  8.3869998690e+03, -9.5725571530e+03,
+              1.2594459473e+04, -2.4488847322e+04, -9.4964539966e+04,
+             -4.0535801956e+04, -2.9013007626e+04
+        },
+        {
+             -1.3581558362e+03,  8.3870960837e+03, -9.6847236895e+03,
+              1.2912220185e+04, -2.4898979131e+04, -9.4463524183e+04,
+             -4.2854756526e+04, -3.1281189675e+04
+        },
+        {
+             -1.3655844239e+03,  8.4131635904e+03, -9.8327884908e+03,
+              1.3187142858e+04, -2.5271315194e+04, -9.3926421696e+04,
+             -4.5780626720e+04, -3.3152981444e+04
+        },
+        {
+             -1.4423792491e+03,  8.4866858773e+03, -1.0069216016e+04,
+              1.3404681461e+04, -2.5593411050e+04, -9.3539084385e+04,
+             -4.9231469144e+04, -3.4951185262e+04
+        },
+        {
+             -1.4268200143e+03,  8.5245560665e+03, -1.0273695539e+04,
+              1.3613222469e+04, -2.5863176691e+04, -9.3427811767e+04,
+             -5.2894993509e+04, -3.6305569264e+04
+        },
+        {
+             -1.3804802543e+03,  8.5471054429e+03, -1.0421337174e+04,
+              1.3777656540e+04, -2.6096796073e+04, -9.3672477833e+04,
+             -5.6706540265e+04, -3.7256296325e+04
+        },
+        {
+             -1.3476834159e+03,  8.5544471026e+03, -1.0507646859e+04,
+              1.3908416025e+04, -2.6283729273e+04, -9.4239514793e+04,
+             -6.0408832037e+04, -3.7793830131e+04
+        },
+        {
+             -1.3337231561e+03,  8.5643834267e+03, -1.0570424264e+04,
+              1.3997715250e+04, -2.6428160960e+04, -9.5045675968e+04,
+             -6.3985931260e+04, -3.7705967327e+04
+        },
+        {
+             -1.3607555046e+03,  8.5860813373e+03, -1.0598833107e+04,
+              1.4061556547e+04, -2.6517004869e+04, -9.6035428904e+04,
+             -6.7418838100e+04, -3.7153308940e+04
+        },
+        {
+             -1.4027640484e+03,  8.5805084386e+03, -1.0613317773e+04,
+              1.4071415018e+04, -2.6529434837e+04, -9.7034811582e+04,
+             -7.0780587132e+04, -3.5936120899e+04
+        },
+        {
+             -1.4290080009e+03,  8.5503877260e+03, -1.0587068415e+04,
+              1.4050769770e+04, -2.6507249302e+04, -9.7894164298e+04,
+              7.4476972832e+04, -3.4108311459e+04
+        },
+        {
+             -1.5488279551e+03,  8.6407011656e+03, -1.0525690229e+04,
+              1.3980917643e+04, -2.6431717501e+04, -9.8422439181e+04,
+              7.8774521825e+04, -3.2150351725e+04
+        },
+        {
+             -1.5660522182e+03,  8.6446264514e+03, -1.0392807355e+04,
+              1.3864830000e+04, -2.6311497952e+04, -9.8557489817e+04,
+              8.2734378553e+04, -2.9893421565e+04
+        },
+        {
+             -1.4421923805e+03,  8.4862578056e+03, -1.0215387230e+04,
+              1.3748948614e+04, -2.6116151998e+04, -9.8290752320e+04,
+              8.5972756082e+04,  2.8344862618e+04
+        },
+        {
+             -1.4244534474e+03,  8.4878806040e+03, -1.0044734062e+04,
+              1.3580644435e+04, -2.5860544475e+04, -9.7560877800e+04,
+              8.8058312005e+04,  2.6851883520e+04
+        },
+        {
+             -1.3761484684e+03,  8.4625702091e+03, -9.9342814313e+03,
+              1.3360695765e+04, -2.5477670458e+04, -9.6520251051e+04,
+              8.8799388067e+04,  2.5663758699e+04
+        },
+        {
+             -1.3435590156e+03,  8.3448544555e+03, -9.8681059075e+03,
+              1.3115231957e+04, -2.5031842091e+04, -9.5144345016e+04,
+              8.7184236561e+04,  2.4615771305e+04
+        },
+        {
+             -1.3420870213e+03,  8.2717517107e+03, -9.6962575733e+03,
+              1.2842618722e+04,  2.4500110058e+04, -9.3803686214e+04,
+              8.4767812043e+04,  2.3587981913e+04
+        },
+        {
+             -1.3035929191e+03,  8.1774468276e+03, -9.4332986959e+03,
+              1.2558943189e+04,  2.3889404952e+04, -9.2369923681e+04,
+              8.0807599828e+04,  2.2679930957e+04
+        },
+        {
+             -1.2482539645e+03,  8.1652839111e+03, -9.2124013644e+03,
+              1.2240078405e+04,  2.3204122251e+04, -9.0762009050e+04,
+              7.5708161424e+04,  2.1773152165e+04
+        },
+        {
+              1.2404580569e+03,  8.0421993084e+03, -9.0370324648e+03,
+              1.1916130719e+04,  2.2448683889e+04, -8.8761012177e+04,
+              7.0259270346e+04,  2.2171518881e+04
+        },
+        {
+             -1.2710119625e+03,  7.9480138140e+03, -8.8409501546e+03,
+              1.1512584068e+04,  2.1664182614e+04, -8.6305566262e+04,
+              6.5067216924e+04,  2.2709847601e+04
+        },
+        {
+             -1.3126964910e+03,  7.9109108830e+03, -8.6004946149e+03,
+              1.1154358717e+04,  2.0808664934e+04, -8.3130261754e+04,
+              6.0125820961e+04,  2.2218474089e+04
+        },
+        {
+             -1.2172476520e+03,  7.7870611099e+03, -8.3605889336e+03,
+              1.0782764143e+04,  1.9895261988e+04, -7.9209641164e+04,
+              5.5706320239e+04,  2.0744908034e+04
+        },
+        {
+             -1.1603797330e+03,  7.7874712865e+03, -8.1431726770e+03,
+              1.0387837896e+04,  1.8955082980e+04, -7.4668234140e+04,
+              5.1615930169e+04,  1.8521389024e+04
+        }
+    },
+    {
+        {
+             -1.3654524132e+03,  7.8186349119e+03, -8.4454270379e+03,
+              9.9788911217e+03,  1.5697959084e+04,  8.2901835222e+04,
+              4.6603876785e+04, -1.7194268426e+04
+        },
+        {
+             -1.2509676347e+03,  7.7091502733e+03, -8.2027191724e+03,
+              9.6237170549e+03,  1.4726901688e+04,  7.4940762126e+04,
+              4.1552877216e+04, -1.4243821225e+04
+        },
+        {
+             -1.3036108072e+03,  7.6325370539e+03, -8.0066274076e+03,
+              9.2877909568e+03,  1.3772649597e+04,  6.7821699183e+04,
+              3.7191018740e+04, -1.1786367587e+04
+        },
+        {
+             -1.2223462103e+03,  7.5853594951e+03, -7.8561568673e+03,
+              8.9439751730e+03,  1.2855845941e+04,  6.1297352053e+04,
+              3.2818427812e+04, -9.9592640635e+03
+        },
+        {
+             -1.3336779031e+03,  7.5850190537e+03, -7.6834893933e+03,
+              8.6608326771e+03,  1.1949564717e+04,  5.5726350335e+04,
+              2.8770583684e+04, -8.5644195780e+03
+        },
+        {
+             -1.3219037617e+03,  7.4804340324e+03, -7.5458008859e+03,
+              8.4143315592e+03,  1.1101541980e+04,  5.1251385823e+04,
+              2.5350395774e+04, -7.5451830312e+03
+        },
+        {
+             -1.2552644372e+03,  7.3854397920e+03, -7.4559732160e+03,
+              8.2010696079e+03,  1.0350671804e+04,  4.7694633706e+04,
+              2.2583114576e+04, -6.5469165916e+03
+        },
+        {
+             -1.2178179431e+03,  7.3794638111e+03, -7.3480910557e+03,
+              8.0409601744e+03,  9.7003295162e+03,  4.4576877383e+04,
+              2.0307807621e+04,  5.6480841578e+03
+        },
+        {
+             -1.1313830752e+03,  7.2871849462e+03, -7.2924523125e+03,
+              7.9146396097e+03,  9.2221040516e+03,  4.1349815312e+04,
+              1.8631929165e+04,  4.8332718786e+03
+        },
+        {
+             -1.1155499993e+03,  7.3163558239e+03, -7.2229248352e+03,
+              7.8348162458e+03,  8.9231654399e+03,  3.7528762691e+04,
+              1.7873033352e+04,  3.9835218722e+03
+        },
+        {
+             -1.1329156220e+03,  7.3031029980e+03, -7.1721066581e+03,
+              7.8155130294e+03,  8.8318429521e+03,  3.2952318941e+04,
+              1.7849076134e+04,  3.1350071324e+03
+        },
+        {
+             -1.1132050986e+03,  7.2298679108e+03, -7.1516567717e+03,
+              7.8207111178e+03,  8.9507572778e+03, -2.8211590473e+04,
+              1.7210964132e+04,  2.7767994935e+03
+        },
+        {
+             -1.1040974627e+03,  7.1950845815e+03, -7.1625199828e+03,
+              7.8540715364e+03,  9.2621270366e+03, -2.4163796405e+04,
+              1.5106203002e+04,  2.7002655044e+03
+        },
+        {
+             -1.1444296315e+03,  7.2140303265e+03, -7.1430645829e+03,
+              7.9160577443e+03,  9.7026315390e+03, -2.1347856698e+04,
+              1.2156542950e+04,  2.1033174799e+03
+        },
+        {
+             -1.0832941400e+03,  7.1586742375e+03, -7.1556587669e+03,
+              7.9740190820e+03,  1.0190407634e+04, -2.1006015636e+04,
+              1.0513223514e+04,  2.1674234728e+03
+        },
+        {
+             -1.1191396914e+03,  7.1799387854e+03, -7.1532286935e+03,
+              8.0190877861e+03,  1.0662267529e+04, -2.3138341635e+04,
+              1.0681314717e+04,  1.2056258210e+03
+        },
+        {
+             -1.1360991047e+03,  7.1768622825e+03, -7.1506911293e+03,
+              8.0661015286e+03,  1.1024000087e+04, -2.6123727488e+04,
+              1.0394903988e+04,  2.1207586005e+03
+        },
+        {
+             -1.2032497923e+03,  7.1312489380e+03, -7.1360771396e+03,
+              8.0649313671e+03,  1.1223059269e+04, -2.8009445320e+04,
+             -9.0089437695e+03, -2.7034167319e+03
+        },
+        {
+             -1.2267736516e+03,  7.1451512916e+03, -7.1723925603e+03,
+              8.0463140074e+03,  1.1206066499e+04, -2.7512517152e+04,
+             -5.4773257787e+03,  2.2221097796e+03
+        },
+        {
+             -1.2773009481e+03,  7.1582796791e+03, -7.1579603725e+03,
+              7.9818660545e+03,  1.0939941713e+04, -2.4025325491e+04,
+             -4.7998035107e+03, -2.7547231435e+03
+        },
+        {
+             -1.2951888196e+03,  7.1589678064e+03, -7.1442574179e+03,
+              7.8710921122e+03,  1.0429633364e+04,  1.8176956826e+04,
+             -5.9293091141e+03,  2.4445560241e+03
+        },
+        {
+             -1.3119261649e+03,  7.1777720046e+03, -7.1306891917e+03,
+              7.7331110946e+03,  9.6963093165e+03,  1.0720253187e+04,
+             -9.8080764358e+03, -1.9120225858e+03
+        },
+        {
+             -1.3131493824e+03,  7.1340748156e+03, -7.1156652505e+03,
+              7.5425868987e+03,  8.8075558296e+03,  7.9160409840e+03,
+             -1.1450888455e+04, -2.1955242431e+03
+        },
+        {
+             -1.2989569842e+03,  7.1837353929e+03, -7.0763058384e+03,
+              7.3531375770e+03,  7.8716320029e+03, -1.2930600827e+04,
+             -1.0370440183e+04, -2.5163695248e+03
+        },
+        {
+             -1.2314765052e+03,  7.1564135298e+03, -7.0485983730e+03,
+              7.1402767745e+03,  7.0678927361e+03,  2.0438635339e+04,
+             -1.0092770194e+04, -2.8969403862e+03
+        },
+        {
+             -1.2405559951e+03,  7.1541142945e+03, -7.0182718129e+03,
+              6.9484188779e+03,  6.5841426362e+03,  2.7692067510e+04,
+             -1.1549216700e+04, -3.5544577516e+03
+        },
+        {
+             -1.1979916950e+03,  7.2100894941e+03, -6.9972502833e+03,
+              6.7631672612e+03,  6.5952426992e+03,  3.2760650390e+04,
+              1.3515246291e+04, -4.3027222047e+03
+        },
+        {
+             -1.2151068884e+03,  7.1708718322e+03, -6.9757009575e+03,
+              6.6300962762e+03,  7.0846988322e+03,  3.5807869845e+04,
+              1.5917891369e+04, -5.1033025042e+03
+        },
+        {
+             -1.2435778484e+03,  7.1911393752e+03, -6.9576297757e+03,
+              6.5721884750e+03,  7.9317895242e+03,  3.7535653765e+04,
+              1.8182511694e+04, -5.9068751549e+03
+        },
+        {
+             -1.2480188899e+03,  7.2423032192e+03, -6.9725835880e+03,
+              6.5455472687e+03,  8.9963843014e+03, -3.9673753083e+04,
+              2.0628738630e+04, -6.8114971666e+03
+        },
+        {
+             -1.2871074851e+03,  7.2866628440e+03, -6.9786673318e+03,
+              6.6328797763e+03,  1.0158405380e+04, -4.2562350064e+04,
+              2.3245928624e+04, -7.7788244602e+03
+        },
+        {
+             -1.2839078254e+03,  7.3025113804e+03, -7.0279602277e+03,
+              6.8176606205e+03,  1.1352914163e+04, -4.5903567178e+04,
+              2.5790798162e+04, -8.6891417624e+03
+        },
+        {
+             -1.2273878175e+03,  7.3982379227e+03, -7.0833494823e+03,
+              7.0360752562e+03,  1.2557992638e+04, -4.9638724348e+04,
+              2.8177973656e+04, -9.4228475915e+03
+        },
+        {
+             -1.1746823642e+03,  7.3763924963e+03, -7.1718391221e+03,
+              7.3303792359e+03,  1.3727173730e+04, -5.3558389209e+04,
+              3.0505948406e+04, -9.8306768711e+03
+        },
+        {
+             -1.1583386504e+03,  7.4616426950e+03, -7.2711493715e+03,
+              7.6986772195e+03, -1.4919069707e+04, -5.7492710969e+04,
+              3.2820640785e+04, -9.9270810332e+03
+        },
+        {
+             -1.1224542772e+03,  7.5071930319e+03, -7.4173828767e+03,
+              8.0682996023e+03, -1.6104756123e+04, -6.1308994742e+04,
+              3.5088064773e+04, -1.0532524921e+04
+        },
+        {
+             -1.2144072710e+03,  7.6172000972e+03, -7.5656110012e+03,
+              8.4968298267e+03, -1.7209596209e+04, -6.4766631342e+04,
+              3.6887727663e+04, -1.0427503021e+04
+        },
+        {
+             -1.2559901173e+03,  7.6326055468e+03, -7.7184405036e+03,
+              8.9377753582e+03, -1.8234874872e+04, -6.7936208049e+04,
+              3.8533602105e+04,  9.5818746988e+03
+        },
+        {
+             -1.3022442139e+03,  7.7165635226e+03, -7.9380019216e+03,
+              9.3784277588e+03, -1.9198306277e+04, -7.0770336572e+04,
+              3.9958804615e+04,  9.5550217970e+03
+        },
+        {
+             -1.2975098934e+03,  7.7768663670e+03, -8.1378717637e+03,
+              9.8410632308e+03, -2.0080433548e+04, -7.3187513360e+04,
+              4.0951768297e+04,  1.0039813740e+04
+        },
+        {
+             -1.3770278864e+03,  7.9028063273e+03, -8.3616453958e+03,
+              1.0290964019e+04, -2.0902646709e+04, -7.5207472708e+04,
+              4.1555792645e+04,  1.0990569737e+04
+        },
+        {
+             -1.4104610396e+03,  7.9617655698e+03, -8.6262403557e+03,
+              1.0722163150e+04, -2.1656840113e+04, -7.6791584282e+04,
+              4.1647942477e+04, -1.2987636266e+04
+        },
+        {
+             -1.5015617651e+03,  8.0540138543e+03, -8.8557379330e+03,
+              1.1171584394e+04, -2.2353070309e+04, -7.7970603347e+04,
+              4.1196925727e+04, -1.6503658982e+04
+        },
+        {
+             -1.4473967140e+03,  8.1399889807e+03, -9.0767426396e+03,
+              1.1603696488e+04, -2.2981401082e+04, -7.8844032474e+04,
+              4.0329590761e+04, -2.0164824455e+04
+        },
+        {
+             -1.5116451613e+03,  8.2122240576e+03, -9.3534850222e+03,
+              1.2011439617e+04, -2.3549711450e+04, -7.9548647960e+04,
+              3.9063064516e+04, -2.4018155997e+04
+        },
+        {
+             -1.5841519855e+03,  8.3521992141e+03, -9.6121863268e+03,
+              1.2384248649e+04, -2.4045163756e+04, -8.0138112174e+04,
+              3.7478732816e+04, -2.7647185919e+04
+        },
+        {
+             -1.5319147407e+03,  8.3346582853e+03, -9.7750754691e+03,
+              1.2757733093e+04, -2.4475943910e+04, -8.0717954248e+04,
+              3.5722718815e+04, -3.1151661890e+04
+        },
+        {
+             -1.8260609539e+03,  8.5721368495e+03, -9.9724685448e+03,
+              1.3112922823e+04, -2.4838669878e+04, -8.1325398272e+04,
+             -3.5292455835e+04, -3.4268561738e+04
+        },
+        {
+             -1.7006941709e+03,  8.5552317416e+03, -1.0191837085e+04,
+              1.3413014837e+04, -2.5128788703e+04, -8.2033808418e+04,
+             -3.6105166722e+04, -3.7030944519e+04
+        },
+        {
+             -1.6808987167e+03,  8.6127602829e+03, -1.0439588796e+04,
+              1.3684585049e+04, -2.5347512342e+04, -8.2917872020e+04,
+             -3.7754334610e+04, -3.9537962291e+04
+        },
+        {
+             -1.6341592265e+03,  8.6727124231e+03, -1.0614911009e+04,
+              1.3928401897e+04,  2.5560687809e+04, -8.4028089262e+04,
+             -4.0211985444e+04, -4.1523245312e+04
+        },
+        {
+             -1.6386060428e+03,  8.7148277338e+03, -1.0754822685e+04,
+              1.4145977056e+04,  2.5750355604e+04, -8.5425934640e+04,
+             -4.3161433855e+04, -4.3072864449e+04
+        },
+        {
+             -1.6661387359e+03,  8.8118710824e+03, -1.0828366859e+04,
+              1.4305120363e+04,  2.5894474741e+04, -8.7092599694e+04,
+             -4.6251870010e+04, -4.3948307483e+04
+        },
+        {
+             -1.6296845068e+03,  8.8080549398e+03, -1.0889081346e+04,
+              1.4437028065e+04,  2.5988995991e+04, -8.9226949175e+04,
+             -4.9939029938e+04, -4.4902733152e+04
+        },
+        {
+             -1.5730193756e+03,  8.8293610588e+03, -1.0947987004e+04,
+              1.4505719471e+04,  2.6039599689e+04, -9.1608495465e+04,
+             -5.3312363588e+04, -4.4845535313e+04
+        },
+        {
+             -1.5605381910e+03,  8.8143908213e+03, -1.0964255614e+04,
+              1.4563566285e+04,  2.6020345948e+04, -9.4163931044e+04,
+             -5.6531221903e+04, -4.4304019949e+04
+        },
+        {
+             -1.5927387419e+03,  8.9256414339e+03, -1.0992607107e+04,
+              1.4547195465e+04,  2.5945447479e+04, -9.6807971571e+04,
+             -5.9665614027e+04, -4.3158821150e+04
+        },
+        {
+             -1.5220649025e+03,  8.9047195851e+03, -1.0987511799e+04,
+              1.4500285812e+04,  2.5806403867e+04, -9.9401618902e+04,
+             -6.2646138814e+04, -4.1087809851e+04
+        },
+        {
+             -1.4494115628e+03,  8.8896658339e+03, -1.0944793269e+04,
+              1.4411341042e+04,  2.5601124500e+04, -1.0175416665e+05,
+             -6.5441499017e+04, -3.8105733773e+04
+        },
+        {
+             -1.3717602008e+03,  8.8233209686e+03, -1.0911767192e+04,
+              1.4288970107e+04,  2.5330129869e+04, -1.0375542084e+05,
+             -6.7988990952e+04, -3.4997450737e+04
+        },
+        {
+             -1.3514455973e+03,  8.7746252419e+03, -1.0814548280e+04,
+              1.4110942726e+04,  2.4974756816e+04,  1.0569578134e+05,
+             -7.0039837701e+04, -3.1790527273e+04
+        },
+        {
+             -1.3673367998e+03,  8.7405161144e+03, -1.0654197475e+04,
+              1.3895351234e+04,  2.4548888540e+04,  1.0749004306e+05,
+             -7.1579142985e+04, -2.8660852376e+04
+        },
+        {
+             -1.3564987123e+03,  8.7412120023e+03, -1.0423690094e+04,
+              1.3646438323e+04,  2.4034247460e+04,  1.0883167543e+05,
+              7.3619693462e+04,  2.6353114250e+04
+        },
+        {
+             -1.4324993143e+03,  8.6357977946e+03, -1.0224737989e+04,
+              1.3371971858e+04,  2.3418859323e+04,  1.0975581042e+05,
+              7.5374914076e+04,  2.4961774732e+04
+        },
+        {
+             -1.3688845128e+03,  8.5232925238e+03, -1.0143805455e+04,
+              1.3036015621e+04,  2.2731872312e+04,  1.1035937623e+05,
+              7.6164405702e+04,  2.4017271849e+04
+        },
+        {
+             -1.3911873041e+03,  8.4522733180e+03, -9.9986334794e+03,
+              1.2685565470e+04,  2.1995446574e+04,  1.1053895725e+05,
+              7.5408012718e+04,  2.3101852517e+04
+        },
+        {
+             -1.3884763134e+03,  8.3586324767e+03, -9.6959829778e+03,
+              1.2337031200e+04,  2.1171881089e+04,  1.1008345538e+05,
+              7.2809100111e+04,  2.2366971803e+04
+        },
+        {
+             -1.3743618362e+03,  8.2239095892e+03, -9.4650918298e+03,
+              1.1977483496e+04,  2.0299957792e+04,  1.0860326508e+05,
+              6.8801651167e+04, -2.3231971289e+04
+        },
+        {
+             -1.3861228603e+03,  8.2082128411e+03, -9.3226930715e+03,
+              1.1542502925e+04,  1.9424326035e+04,  1.0586977299e+05,
+              6.4123349915e+04, -2.4021555447e+04
+        },
+        {
+             -1.3428625385e+03,  8.0557676466e+03, -9.1092679043e+03,
+              1.1146220869e+04,  1.8517993418e+04,  1.0175564994e+05,
+              5.9326688177e+04, -2.3345122225e+04
+        },
+        {
+             -1.3648094891e+03,  7.9409344756e+03, -8.8213077447e+03,
+              1.0780470500e+04,  1.7565142447e+04,  9.6266902057e+04,
+              5.4803135758e+04, -2.1408550647e+04
+        },
+        {
+             -1.3567431846e+03,  7.8941855298e+03, -8.6151780316e+03,
+              1.0389903344e+04,  1.6610039342e+04,  8.9805303957e+04,
+              5.0638336827e+04, -1.9541528970e+04
+        }
+    },
+    {
+        {
+             -1.5537973828e+03,  7.8741349471e+03, -8.8628277742e+03,
+              9.7778159061e+03,  1.3945770509e+04,  7.5259865348e+04,
+              4.5600714153e+04, -1.6358076854e+04
+        },
+        {
+             -1.4359013608e+03,  7.7295342671e+03, -8.6261813099e+03,
+              9.4330563221e+03,  1.3044907407e+04,  6.8467181357e+04,
+              4.1381680942e+04, -1.3540691139e+04
+        },
+        {
+             -1.4906339163e+03,  7.7330745135e+03, -8.4355754820e+03,
+              9.1440254967e+03,  1.2130633333e+04,  6.2365844580e+04,
+              3.7563927031e+04, -1.1537858179e+04
+        },
+        {
+             -1.4801149541e+03,  7.6855727110e+03, -8.2932776725e+03,
+              8.8288598907e+03,  1.1238439274e+04,  5.6721263740e+04,
+              3.3482854954e+04, -1.0064761559e+04
+        },
+        {
+             -1.4370478520e+03,  7.6089510271e+03, -8.1187363945e+03,
+              8.6155989605e+03,  1.0318729153e+04,  5.1849795540e+04,
+              2.9420598157e+04, -8.7785724787e+03
+        },
+        {
+             -1.4374514866e+03,  7.5237595523e+03, -7.9870411595e+03,
+              8.4367944974e+03,  9.4585597983e+03,  4.7999345135e+04,
+              2.5695152164e+04, -7.7394863153e+03
+        },
+        {
+             -1.4094270568e+03,  7.4922544405e+03, -7.8904909291e+03,
+              8.2788882505e+03,  8.6956786128e+03,  4.5256282782e+04,
+              2.2510092694e+04, -6.7027043517e+03
+        },
+        {
+             -1.3573167970e+03,  7.4069821822e+03, -7.7585901359e+03,
+              8.2018755341e+03,  8.0824724006e+03,  4.3250557708e+04,
+              1.9781822643e+04, -5.6455023366e+03
+        },
+        {
+             -1.3834731491e+03,  7.4352851392e+03, -7.6981009916e+03,
+              8.1392918831e+03,  7.7290125952e+03,  4.1262459838e+04,
+              1.7476216516e+04, -4.7796697875e+03
+        },
+        {
+             -1.3315174342e+03,  7.3230525843e+03, -7.6308240711e+03,
+              8.1318143484e+03,  7.6847701038e+03,  3.8363467806e+04,
+              1.5741898589e+04, -4.2872819399e+03
+        },
+        {
+             -1.3073391616e+03,  7.3384200823e+03, -7.5616309463e+03,
+              8.1525878197e+03,  7.9734289934e+03,  3.3895051694e+04,
+              1.4807666657e+04, -4.0267030510e+03
+        },
+        {
+             -1.2605978523e+03,  7.3245274308e+03, -7.5317364990e+03,
+              8.1922038224e+03,  8.5553680233e+03,  2.7637635987e+04,
+              1.4689687052e+04, -3.3507195948e+03
+        },
+        {
+             -1.3029846296e+03,  7.2907816085e+03, -7.5089704617e+03,
+              8.2543882748e+03,  9.3160305066e+03, -2.1133722819e+04,
+              1.4850699542e+04, -3.3550367386e+03
+        },
+        {
+             -1.2116323740e+03,  6.9384890768e+03, -7.5225370196e+03,
+              8.3003883086e+03,  1.0154730321e+04, -1.7653938216e+04,
+              1.4198940684e+04, -2.3636657869e+03
+        },
+        {
+             -1.2628782818e+03,  7.2406781835e+03, -7.4724989987e+03,
+              8.3773057997e+03,  1.0944445812e+04, -1.8903981813e+04,
+              1.2086408150e+04,  1.8464563136e+03
+        },
+        {
+             -1.1956366644e+03,  7.2283042443e+03, -7.4488250513e+03,
+              8.4316141728e+03,  1.1617454735e+04, -2.5001352359e+04,
+              9.8514465816e+03, -1.9208177673e+03
+        },
+        {
+             -1.1105249050e+03,  7.2148222114e+03, -7.4395930746e+03,
+              8.4474810755e+03,  1.2109273065e+04, -3.1871901653e+04,
+              1.1115521933e+04, -1.6364585270e+03
+        },
+        {
+             -1.1189379565e+03,  7.1966648919e+03, -7.4182499154e+03,
+              8.4423466179e+03,  1.2371625228e+04,  3.6806982631e+04,
+              1.4456480253e+04,  2.2410974715e+03
+        },
+        {
+             -1.0976210051e+03,  7.2138533405e+03, -7.3908690524e+03,
+              8.4117279412e+03,  1.2363504057e+04,  3.8525497053e+04,
+              1.5503139992e+04,  3.7486588724e+03
+        },
+        {
+             -1.1280624222e+03,  7.1917956305e+03, -7.3978301320e+03,
+              8.3265129433e+03,  1.2078857160e+04,  3.6274608977e+04,
+              1.3255346570e+04, -3.5789497248e+03
+        },
+        {
+             -1.1929104912e+03,  7.1892083092e+03, -7.3864706943e+03,
+              8.2186659474e+03,  1.1530674598e+04,  3.0316647247e+04,
+              9.9410638748e+03, -3.7181329062e+03
+        },
+        {
+             -1.2116962051e+03,  7.1836123221e+03, -7.3506075848e+03,
+              8.0666729927e+03,  1.0750957015e+04,  2.1450355039e+04,
+             -9.4480554103e+03,  2.4716892833e+03
+        },
+        {
+             -1.3500074050e+03,  7.2700155895e+03, -7.3309200744e+03,
+              7.8829055610e+03,  9.8004203967e+03,  1.1141731188e+04,
+             -1.2054595985e+04, -1.4135805122e+03
+        },
+        {
+             -1.3837463322e+03,  7.2618723878e+03, -7.3129225745e+03,
+              7.6802750596e+03,  8.7834517472e+03,  8.2538058797e+03,
+             -1.2434882246e+04,  1.9560236075e+03
+        },
+        {
+             -1.3341096300e+03,  7.1981217271e+03, -7.2834115701e+03,
+              7.4797164200e+03,  7.8455930809e+03, -1.4800416297e+04,
+              1.0349331137e+04,  2.6092840612e+03
+        },
+        {
+             -1.2905011535e+03,  7.2295272111e+03, -7.2518356706e+03,
+              7.2909066199e+03,  7.1637962974e+03,  2.2408630507e+04,
+             -1.0386425870e+04,  3.0552564172e+03
+        },
+        {
+             -1.3326784718e+03,  7.2739803618e+03, -7.2455124236e+03,
+              7.1126532877e+03,  6.9101445971e+03,  2.8392854477e+04,
+              1.2148165116e+04,  3.6477306045e+03
+        },
+        {
+             -1.3176008530e+03,  7.2718538285e+03, -7.2175531481e+03,
+              6.9807829049e+03,  7.1400798925e+03,  3.1933535099e+04,
+              1.4490300135e+04,  4.4582676058e+03