shithub: leaf

Download patch

ref: 982eb8edc41b8aff44c0181f533290f802f9d376
parent: 8ea545cd68e5cf321fe47c9ad73207f2fbd117dd
author: spiricom <jeff@snyderphonics.com>
date: Wed Mar 25 21:23:38 EDT 2020

added tSlide, atodb, and dbtoa

binary files a/.DS_Store b/.DS_Store differ
--- a/LEAF/Inc/leaf-analysis.h
+++ b/LEAF/Inc/leaf-analysis.h
@@ -21,6 +21,14 @@
 #include "leaf-filters.h"
 #include "leaf-envelopes.h"
     
+    /*!
+     * @internal
+     * Header.
+     * @include basic-oscillators.h
+     * @example basic-oscillators.c
+     * An example.
+     */
+    
     //==============================================================================
     
     /* Envelope Follower */
--- a/LEAF/Inc/leaf-delay.h
+++ b/LEAF/Inc/leaf-delay.h
@@ -18,6 +18,14 @@
 #include "leaf-math.h"
 #include "leaf-mempool.h"
     
+    /*!
+     * @internal
+     * Header.
+     * @include basic-oscillators.h
+     * @example basic-oscillators.c
+     * An example.
+     */
+    
     //==============================================================================
     
     /* Non-interpolating delay, reimplemented from STK (Cook and Scavone). */
--- a/LEAF/Inc/leaf-distortion.h
+++ b/LEAF/Inc/leaf-distortion.h
@@ -19,6 +19,14 @@
 #include "leaf-mempool.h"
 #include "leaf-math.h"
     
+    /*!
+     * @internal
+     * Header.
+     * @include basic-oscillators.h
+     * @example basic-oscillators.c
+     * An example.
+     */
+    
     //==============================================================================
     
     typedef struct _tSampleReducer
@@ -136,6 +144,7 @@
     void    tCrusher_setSamplingRatio (tCrusher* const, float ratio);
     
     //==============================================================================
+
     
 #ifdef __cplusplus
 }
--- a/LEAF/Inc/leaf-dynamics.h
+++ b/LEAF/Inc/leaf-dynamics.h
@@ -21,6 +21,14 @@
 #include "leaf-mempool.h"
 #include "leaf-analysis.h"
     
+    /*!
+     * @internal
+     * Header.
+     * @include basic-oscillators.h
+     * @example basic-oscillators.c
+     * An example.
+     */
+    
     //==============================================================================
     
     // ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
@@ -80,6 +88,30 @@
     
     //==============================================================================
     
+
+    //Threshold with hysteresis (like Max/MSP thresh~ object)
+
+    typedef struct _tThreshold {
+        float highThresh, lowThresh;
+		int currentValue;
+
+    } _tThreshold;
+
+    typedef _tThreshold* tThreshold;
+
+    void    tThreshold_init        (tThreshold* const, float low, float high);
+    void    tThreshold_free        (tThreshold* const);
+    void    tThreshold_initToPool  (tThreshold* const, float low, float high, tMempool* const);
+    void    tThreshold_freeFromPool(tThreshold* const, tMempool* const);
+
+    int   tThreshold_tick        (tThreshold* const, float input);
+    void   tThreshold_setLow        (tThreshold* const, float low);
+    void   tThreshold_setHigh       (tThreshold* const, float high);
+
+
+
+    //////======================================================================
+
 #ifdef __cplusplus
 }
 #endif
--- a/LEAF/Inc/leaf-effects.h
+++ b/LEAF/Inc/leaf-effects.h
@@ -21,6 +21,14 @@
 #include "leaf-analysis.h"
 #include "leaf-envelopes.h"
     
+    /*!
+     * @internal
+     * Header.
+     * @include basic-oscillators.h
+     * @example basic-oscillators.c
+     * An example.
+     */
+    
     //==============================================================================
     
     /* tTalkbox */
--- a/LEAF/Inc/leaf-electrical.h
+++ b/LEAF/Inc/leaf-electrical.h
@@ -18,6 +18,14 @@
 #include "leaf-math.h"
 #include "leaf-mempool.h"
     
+    /*!
+     * @internal
+     * Header.
+     * @include basic-oscillators.h
+     * @example basic-oscillators.c
+     * An example.
+     */
+    
     //==============================================================================
     
     typedef enum WDFComponentType
--- a/LEAF/Inc/leaf-envelopes.h
+++ b/LEAF/Inc/leaf-envelopes.h
@@ -24,6 +24,14 @@
 #include "leaf-analysis.h"
 #include "leaf-envelopes.h"
     
+    /*!
+     * @internal
+     * Header.
+     * @include basic-oscillators.h
+     * @example basic-oscillators.c
+     * An example.
+     */
+
     // ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
     
     /* Attack-Decay envelope */
@@ -154,6 +162,26 @@
     void    tRamp_setVal        (tRamp* const, float val);
 
     
+
+    //Slide (based on Max/MSP's slide~)
+	typedef struct _tSlide {
+		float prevOut;
+		float currentOut;
+		float prevIn;
+		float invUpSlide;
+		float invDownSlide;
+
+	} _tSlide;
+
+	typedef _tSlide* tSlide;
+
+	void    tSlide_init          (tSlide* const, float upSlide, float downSlide);
+	void    tSlide_free          (tSlide* const);
+	void    tSlide_initToPool    (tSlide* const, float upSlide, float downSlide, tMempool* const);
+	void    tSlide_freeFromPool  (tSlide* const, tMempool* const);
+
+	float   tSlide_tick          (tSlide* const, float in);
+
 #ifdef __cplusplus
 }
 #endif
--- a/LEAF/Inc/leaf-filters.h
+++ b/LEAF/Inc/leaf-filters.h
@@ -20,6 +20,14 @@
 #include "leaf-delay.h"
 #include "leaf-tables.h"
     
+    /*!
+     * @internal
+     * Header.
+     * @include basic-oscillators.h
+     * @example basic-oscillators.c
+     * An example.
+     */
+    
     //==============================================================================
     
     /* tAllpass: Schroeder allpass. Comb-filter with feedforward and feedback. */
@@ -344,10 +352,31 @@
     void    tFIR_freeFromPool   (tFIR* const, tMempool* const);
     
     float   tFIR_tick           (tFIR* const, float input);
-    void    tFIR_coeffs         (tFIR* const, float in);
+
     
     //==============================================================================
     
+
+    typedef struct _tMedianFilter
+    {
+    	float* val;
+    	int* age;
+    	int m;
+    	int size;
+    	int middlePosition;
+    	int last;
+    	int pos;
+    } _tMedianFilter;
+
+    typedef _tMedianFilter* tMedianFilter;
+
+    void    tMedianFilter_init           (tMedianFilter* const, int size);
+	void    tMedianFilter_free           (tMedianFilter* const);
+	void    tMedianFilter_initToPool     (tMedianFilter* const, int size, tMempool* const);
+	void    tMedianFilter_freeFromPool   (tMedianFilter* const, tMempool* const);
+
+	float   tMedianFilter_tick           (tMedianFilter* const, float input);
+
 #ifdef __cplusplus
 }
 #endif
--- a/LEAF/Inc/leaf-global.h
+++ b/LEAF/Inc/leaf-global.h
@@ -15,17 +15,29 @@
 extern "C" {
 #endif
     
-    typedef struct _LEAF
+#include "leaf-mempool.h"
+    
+    /*!
+     * @ingroup leaf
+     * @brief The struct of the global LEAF instance `leaf`. Contains global variables and settings.
+     */
+    struct LEAF
     {
-        float   sampleRate;
-        float   invSampleRate;
-        int     blockSize;
-        float   twoPiTimesInvSampleRate;
-        float   (*random)(void);
-        int     clearOnAllocation;
-    } LEAF;
+        ///@{ 
+        float   sampleRate; //!< The current audio sample rate. Set with LEAF_setSampleRate().
+        float   invSampleRate; //!< The inverse of the current sample rate.
+        int     blockSize; //!< The audio block size.
+        float   twoPiTimesInvSampleRate; //!<  Two-pi times the inverse of the current sample rate.
+        float   (*random)(void); //!< A pointer to the random() function provided on initialization.
+        int     clearOnAllocation; //!< A flag that determines whether memory allocated from the LEAF memory pool will be cleared.
+        tMempool mempool; //!< The default LEAF mempool object.
+        _tMempool _mempool;
+        size_t header_size; //!< The size in bytes of memory region headers within mempools.
+        ///@}
+    };
+    typedef struct LEAF LEAF;
     
-    extern LEAF leaf; // The global instance of LEAF.
+    extern LEAF leaf;
     
     //==============================================================================
     
@@ -36,4 +48,5 @@
 #endif  // LEAF_GLOBAL_H_INCLUDED
 
 //==============================================================================
+
 
--- a/LEAF/Inc/leaf-instruments.h
+++ b/LEAF/Inc/leaf-instruments.h
@@ -21,6 +21,14 @@
 #include "leaf-filters.h"
 #include "leaf-envelopes.h"
     
+    /*!
+     * @internal
+     * Header.
+     * @include basic-oscillators.h
+     * @example basic-oscillators.c
+     * An example.
+     */
+    
     //==============================================================================
     
     // 808 Cowbell
--- a/LEAF/Inc/leaf-math.h
+++ b/LEAF/Inc/leaf-math.h
@@ -167,6 +167,9 @@
     
     float dbtorms(float f);
     
+    float atodb(float a);
+
+    float dbtoa(float db);
     //==============================================================================
     
 #ifdef __cplusplus
--- a/LEAF/Inc/leaf-mempool.h
+++ b/LEAF/Inc/leaf-mempool.h
@@ -54,8 +54,11 @@
     
     //#define size_t unsigned long
     
-    /**
-     * memory pool structure
+    /*!
+     * @defgroup tmempool tMempool
+     * @ingroup mempool
+     * An object that can contain an additional mempool for the allocation of LEAF objects.
+     * @{
      */
     
     // node of free list
@@ -66,28 +69,75 @@
         size_t size;
     } mpool_node_t;
     
-    typedef struct mpool_t {
+    typedef struct _tMempool
+    {
         void*         mpool;       // start of the mpool
         size_t        usize;       // used size of the pool
         size_t        msize;       // max size of the pool
         mpool_node_t* head;        // first node of memory pool free list
-    } mpool_t;
+    } _tMempool;
+
+    typedef _tMempool* tMempool;
     
-    void mpool_create (char* memory, size_t size, mpool_t* pool);
+    //! Initialize a tMempool for a given memory location and size to the default LEAF mempool.
+    /*!
+     @param pool A pointer to the tMempool to be initialized.
+     @param memory A pointer to the chunk of memory to be used as a mempool.
+     @param size The size of the chunk of memory to be used as a mempool.
+     */
+    void    tMempool_init           (tMempool* const pool, char* memory, size_t size);
+    
+    
+    //! Free a tMempool from the default LEAF mempool.
+    /*!
+     @param pool A pointer to the tMempool to be freed.
+     */
+    void    tMempool_free           (tMempool* const pool);
+    
+    
+    //! Initialize a tMempool for a given memory location and size to a specified mempool.
+    /*!
+     @param pool A pointer to the tMempool to be initialized.
+     @param memory A pointer to the chunk of memory to be used as a mempool.
+     @param size The size of the chuck of memory to be used as a mempool.
+     @param poolTo A pointer to the tMempool to which a tMempool should be initialized.
+     */
+    void    tMempool_initToPool     (tMempool* const pool, char* memory, size_t size, tMempool* const poolTo);
+    
+    
+    //! Free a tMempool from a specified mempool.
+    /*!
+     @param pool A pointer to the tMempool to be freed from the default LEAF mempool.
+     @param poolFrom A pointer to the tMempool from which a tMempool should be freed.
+     */
+    void    tMempool_freeFromPool   (tMempool* const pool, tMempool* const poolFrom);
+    
+    /*! @} */
+    
+    //==============================================================================
 
-    void* mpool_alloc(size_t size, mpool_t* pool);
-    void* mpool_calloc(size_t asize, mpool_t* pool);
-
-    void mpool_free(void* ptr, mpool_t* pool);
+    //    typedef struct mpool_t {
+    //        void*         mpool;       // start of the mpool
+    //        size_t        usize;       // used size of the pool
+    //        size_t        msize;       // max size of the pool
+    //        mpool_node_t* head;        // first node of memory pool free list
+    //    } mpool_t;
     
-    size_t mpool_get_size(mpool_t* pool);
-    size_t mpool_get_used(mpool_t* pool);
+    void mpool_create (char* memory, size_t size, _tMempool* pool);
     
+    void* mpool_alloc(size_t size, _tMempool* pool);
+    void* mpool_calloc(size_t asize, _tMempool* pool);
+    
+    void mpool_free(void* ptr, _tMempool* pool);
+    
+    size_t mpool_get_size(_tMempool* pool);
+    size_t mpool_get_used(_tMempool* pool);
+    
     void leaf_pool_init(char* memory, size_t size);
     
     void* leaf_alloc(size_t size);
     void* leaf_calloc(size_t size);
-
+    
     void leaf_free(void* ptr);
     
     size_t leaf_pool_get_size(void);
@@ -96,24 +146,6 @@
     void* leaf_pool_get_pool(void);
     
     void leaf_mempool_overrun(void);
-    
-    // User object for creating additional mempools
-    
-    typedef struct _tMempool
-    {
-        mpool_t pool;
-    } _tMempool;
-    
-    typedef _tMempool* tMempool;
-    
-    void    tMempool_init           (tMempool* const, char* memory, size_t size);
-    void    tMempool_free           (tMempool* const);
-    void    tMempool_initToPool     (tMempool* const, char* memory, size_t size, tMempool* const);
-    void    tMempool_freeFromPool   (tMempool* const, tMempool* const);
-    
-    //==============================================================================
-    
-    extern tMempool leaf_mempool;
     
 #ifdef __cplusplus
 }
--- a/LEAF/Inc/leaf-midi.h
+++ b/LEAF/Inc/leaf-midi.h
@@ -20,10 +20,25 @@
 #include "leaf-math.h"
 #include "leaf-envelopes.h"
     
+    /*!
+     * @internal
+     * Header.
+     * @include basic-oscillators.h
+     * @example basic-oscillators.c
+     * An example.
+     */
+    
     //==============================================================================
     
     // ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
     
+    /*!
+     * @defgroup tstack tStack
+     * @ingroup midi
+     * @brief A basic stack of integers with a fixed max size of 128, used by tPoly to keep track of MIDI notes.
+     * @{
+     */
+    
     // STACK implementation (fixed size)
 #define STACK_SIZE 128
     typedef struct _tStack
@@ -38,22 +53,121 @@
     
     typedef _tStack* tStack;
     
-    void    tStack_init                 (tStack* const);
-    void    tStack_free                 (tStack* const);
-    void    tStack_initToPool           (tStack* const, tMempool* const);
-    void    tStack_freeFromPool         (tStack* const, tMempool* const);
+    //! Initialize a tStack to the default LEAF mempool.
+    /*!
+     @param stack A pointer to the tStack to be initialized.
+     */
+    void    tStack_init                 (tStack* const stack);
     
-    void    tStack_setCapacity          (tStack* const, uint16_t cap);
-    int     tStack_addIfNotAlreadyThere (tStack* const, uint16_t item);
-    void    tStack_add                  (tStack* const, uint16_t item);
-    int     tStack_remove               (tStack* const, uint16_t item);
-    void    tStack_clear                (tStack* const);
-    int     tStack_first                (tStack* const);
-    int     tStack_getSize              (tStack* const);
-    int     tStack_contains             (tStack* const, uint16_t item);
-    int     tStack_next                 (tStack* const);
-    int     tStack_get                  (tStack* const, int which);
     
+    //! Free a tStack from the default LEAF mempool.
+    /*!
+     @param stack A pointer to the tStack to be freed.
+     */
+    void    tStack_free                 (tStack* const stack);
+    
+    
+    //! Initialize a tStack to a specified mempool.
+    /*!
+     @param stack A pointer to the tStack to be initialized.
+     @param pool A pointer to the tMempool to which the tStack should be initialized.
+     */
+    void    tStack_initToPool           (tStack* const stack, tMempool* const pool);
+    
+    
+    //! Free a tStack from a specified mempool.
+    /*!
+     @param stack A pointer to the tStack to be freed.
+     @param pool A pointer to the tMempool from which the tStack should be freed.
+     */
+    void    tStack_freeFromPool         (tStack* const stack, tMempool* const pool);
+    
+    //! Set the capacity of the stack.
+    /*!
+     @param stack A pointer to the relevant tStack.
+     @param cap The new capacity.
+     */
+    void    tStack_setCapacity          (tStack* const stack, uint16_t cap);
+    
+    
+    //! Add a value to the stack only if that value is not already in the stack.
+    /*!
+     @param stack A pointer to the relevant tStack.
+     @param item The value to be added.
+     */
+    int     tStack_addIfNotAlreadyThere (tStack* const stack, uint16_t item);
+    
+    
+    //! Add a value to the stack.
+    /*!
+     @param stack A pointer to the relevant tStack.
+     @param item The value to be added.
+     */
+    void    tStack_add                  (tStack* const stack, uint16_t item);
+    
+    
+    //! Remove a single instance of a value from the stack.
+    /*!
+     @param stack A pointer to the relevant tStack.
+     @param item The value to be removed.
+     */
+    int     tStack_remove               (tStack* const stack, uint16_t item);
+    
+    
+    //! Clear the stack.
+    /*!
+     @param stack A pointer to the relevant tStack.
+     */
+    void    tStack_clear                (tStack* const stack);
+    
+    
+    //! Get the first value in the stack.
+    /*!
+     @param stack A pointer to the relevant tStack.
+     @return The first value in the stack.
+     */
+    int     tStack_first                (tStack* const stack);
+    
+    
+    //! Get the current size of the stack.
+    /*!
+     @param stack A pointer to the relevant tStack.
+     @return The current size of the stack.
+     */
+    int     tStack_getSize              (tStack* const stack);
+    
+    //! Check if the stack contains a value, and if it does, get the index of that value.
+    /*!
+     @param stack A pointer to the relevant tStack.
+     @param item The value to check against the stack.
+     @return The index of the value or -1 if the stack does not contain the value.
+     */
+    int     tStack_contains             (tStack* const stack, uint16_t item);
+    
+    //! Get the next value in the stack, starting from the earliest added values.
+    /*!
+     @param stack A pointer to the relevant tStack.
+     @return The next value in the stack or -1 if there are no values in the stack.
+     */
+    int     tStack_next                 (tStack* const stack);
+    
+    //! Get the value at a given index of the stack.
+    /*!
+     @param stack A pointer to the relevant tStack.
+     @param index The index of the stack from which to get a value.
+     @return The value at the given index.
+     */
+    int     tStack_get                  (tStack* const stack, int index);
+    
+    /*! @} */
+    
+    /*!
+     * @defgroup tpoly tPoly
+     * @ingroup midi
+     * @brief An object for polyphonic handling.
+     * @{
+     */
+    
     /* tPoly */
     typedef struct _tPoly
     {
@@ -93,32 +207,159 @@
     typedef _tPoly* tPoly;
     
     /* MPoly*/
-    void    tPoly_init                  (tPoly* const, int maxNumVoices);
-    void    tPoly_free                  (tPoly* const);
-    void    tPoly_initToPool            (tPoly* const, int maxNumVoices, tMempool* const);
-    void    tPoly_freeFromPool          (tPoly* const, tMempool* const);
+    //! Initialize a tPoly to the default LEAF mempool.
+    /*!
+     @param poly A pointer to the tPoly to be initialized.
+     @param maxNumVoices The maximum number of voices this tPoly can handle at once.
+     */
+    void    tPoly_init                  (tPoly* const poly, int maxNumVoices);
     
-    //ADDING A NOTE
-    int     tPoly_noteOn                (tPoly* const, int note, uint8_t vel);
-    int     tPoly_noteOff               (tPoly* const, uint8_t note);
-    void    tPoly_orderedAddToStack     (tPoly* const, uint8_t noteVal);
-    void    tPoly_setNumVoices          (tPoly* const, uint8_t numVoices);
     
-    void    tPoly_setPitchBend          (tPoly* const, float pitchBend);
-    void    tPoly_setPitchGlideActive   (tPoly* const, oBool isActive);
-    void    tPoly_setPitchGlideTime     (tPoly* const, float t);
-    void 	tPoly_setBendGlideTime		(tPoly* const polyh, float t);
-    void 	tPoly_setBendSamplesPerTick	(tPoly* const polyh, float t);
-    void    tPoly_tickPitch             (tPoly* const);
-    void    tPoly_tickPitchGlide        (tPoly* const);
-    void    tPoly_tickPitchBend         (tPoly* const);
+    //! Free a tPoly from the default LEAF mempool.
+    /*!
+     @param poly A pointer to the tPoly to be freed.
+     */
+    void    tPoly_free                  (tPoly* const poly);
     
-    int     tPoly_getNumVoices          (tPoly* const);
-    int     tPoly_getNumActiveVoices    (tPoly* const);
-    float   tPoly_getPitch              (tPoly* const, uint8_t voice);
-    int     tPoly_getKey                (tPoly* const, uint8_t voice);
-    int     tPoly_getVelocity           (tPoly* const, uint8_t voice);
-    int     tPoly_isOn                  (tPoly* const, uint8_t voice);
+    
+    //! Initialize a tPoly to a specified mempool.
+    /*!
+     @param poly A pointer to the tPoly to be initialized.
+     @param pool A pointer to the tMempool to which the tPoly should be initialized.
+     */
+    void    tPoly_initToPool            (tPoly* const poly, int maxNumVoices, tMempool* const pool);
+    
+    
+    //! Free a tPoly from a specified mempool.
+    /*!
+     @param poly A pointer to the tPoly to be freed.
+     @param pool A pointer to the tMempool from which the tPoly should be freed.
+     */
+    void    tPoly_freeFromPool          (tPoly* const poly, tMempool* const pool);
+    
+    //! Add a note with a given velocity to the poly handler.
+    /*!
+     @param poly A pointer to the relevant tPoly.
+     @param note The MIDI note number to add.
+     @param vel The MIDI velocity of the note to add.
+     @return The voice that will play the note.
+     */
+    int     tPoly_noteOn                (tPoly* const poly, int note, uint8_t vel);
+    
+    
+    //! Remove a note from the poly handler.
+    /*!
+     @param poly A pointer to the relevant tPoly.
+     @param note The MIDI note number to remove.
+     @return The voice that was playing the removed note.
+     */
+    int     tPoly_noteOff               (tPoly* const poly, uint8_t note);
+    
+    void    tPoly_orderedAddToStack     (tPoly* const poly, uint8_t note);
+    
+    
+    //! Set the number of voices available to play notes.
+    /*!
+     @param poly A pointer to the relevant tPoly.
+     @param numVoices The new number of available voices. Cannot be greater than the max number voices given in tPoly_init().
+     */
+    void    tPoly_setNumVoices          (tPoly* const poly, uint8_t numVoices);
+    
+    //! Set whether pitch glide over note changes in voices is active.
+    /*!
+     @param poly A pointer to the relevant tPoly.
+     @param isActive Whether pitch glide should be active or not.
+     */
+    void    tPoly_setPitchGlideActive   (tPoly* const poly, oBool isActive);
+    
+    //! Set how long pitch glide over note changes in voices takes.
+    /*!
+     @param poly A pointer to the relevant tPoly.
+     @param t The time to glide in milliseconds.
+     */
+    void    tPoly_setPitchGlideTime     (tPoly* const poly, float t);
+    
+    //! Set the amount of pitch bend
+    /*!
+     @param poly A pointer to the relevant tPoly.
+     @param pitchBend The new amount of pitch bend.
+     */
+    void    tPoly_setPitchBend          (tPoly* const poly, float pitchBend);
+    void 	tPoly_setBendGlideTime		(tPoly* const poly, float t);
+    void 	tPoly_setBendSamplesPerTick	(tPoly* const poly, float t);
+
+    
+    //! Execute all tick-rate changes in the poly handler's pitch, including glide and bend.
+    /*!
+     @param poly A pointer to the relevant tPoly.
+     */
+    void    tPoly_tickPitch             (tPoly* const poly);
+    
+    
+    //! Execute the tick-rate change of the poly handler's pitch glide.
+    /*!
+     @param poly A pointer to the relevant tPoly.
+     */
+    void    tPoly_tickPitchGlide        (tPoly* const poly);
+    
+    
+    //! Execute the tick-rate change of the poly handler's pitch bend.
+    /*!
+     @param poly A pointer to the relevant tPoly.
+     */
+    void    tPoly_tickPitchBend         (tPoly* const poly);
+    
+    
+    //! Get the current number of voices available to play notes.
+    /*!
+     @param poly A pointer to the relevant tPoly.
+     @return The current number of voices available to play notes.
+     */
+    int     tPoly_getNumVoices          (tPoly* const poly);
+    
+    //! Get the number of voices currently playing notes.
+    /*!
+     @param poly A pointer to the relevant tPoly.
+     @return The number of voices currently playing notes.
+     */
+    int     tPoly_getNumActiveVoices    (tPoly* const poly);
+    
+    //! Get the current pitch of a given voice.
+    /*!
+     @param poly A pointer to the relevant tPoly.
+     @param voice The voice to get the pitch of.
+     @return The current pitch of the given voice as a fractional MIDI note number.
+     */
+    float   tPoly_getPitch              (tPoly* const poly, uint8_t voice);
+    
+    
+    //! Get the current MIDI note number of a given voice.
+    /*!
+     @param poly A pointer to the relevant tPoly.
+     @param voice The voice to get the MIDI note number of.
+     @return The MIDI note number of the given voice.
+     */
+    int     tPoly_getKey                (tPoly* const poly, uint8_t voice);
+    
+    
+    //! Get the current MIDI velocity of a given voice.
+    /*!
+     @param poly A pointer to the relevant tPoly.
+     @param voice The voice to get the MIDI velocity of.
+     @return The current MIDI velocity of the given voice.
+     */
+    int     tPoly_getVelocity           (tPoly* const poly, uint8_t voice);
+    
+    
+    //! Get the current play state of a given voice.
+    /*!
+     @param poly A pointer to the relevant tPoly.
+     @param voice The voice to get the state of.
+     @return The current play state of the given voice.
+     */
+    int     tPoly_isOn                  (tPoly* const poly, uint8_t voice);
+    
+    /*! @} */
     
     //==============================================================================
     
--- a/LEAF/Inc/leaf-oscillators.h
+++ b/LEAF/Inc/leaf-oscillators.h
@@ -15,29 +15,82 @@
     
 #include "leaf-math.h"
 #include "leaf-mempool.h"
+#include  "leaf-tables.h"
 #include "leaf-filters.h"
     
+    /*!
+     * Header.
+     * @include basic-oscillators.h
+     * @example basic-oscillators.c
+     * An example.
+     */
+    
     //==============================================================================
     
-    /* tCycle: Cycle/Sine waveform. Wavetable synthesis.*/
     typedef struct _tCycle
     {
         // Underlying phasor
         float phase;
         float inc,freq;
-        
     } _tCycle;
     
     typedef _tCycle* tCycle;
     
-    void    tCycle_init         (tCycle* const);
-    void    tCycle_free         (tCycle* const);
-    void    tCycle_initToPool   (tCycle* const, tMempool* const);
-    void    tCycle_freeFromPool (tCycle* const, tMempool* const);
+    /*!
+     * @defgroup tcycle tCycle
+     * @ingroup oscillators
+     * @brief A cycle/sine waveform oscillator. Uses wavetable synthesis.
+     * @{
+     */
     
-    float   tCycle_tick         (tCycle* const);
-    int     tCycle_setFreq      (tCycle* const, float freq);
+    //! Initialize a tCycle to the default LEAF mempool.
+    /*!
+     @param osc A pointer to the tCycle to be initialized.
+     */
+    void    tCycle_init         (tCycle* const osc);
     
+    
+    //! Free a tCycle from the default LEAF mempool.
+    /*!
+     @param osc A pointer to the tCycle to be freed.
+     */
+    void    tCycle_free         (tCycle* const osc);
+    
+    
+    //! Initialize a tCycle to a specified mempool.
+    /*!
+     @param osc A pointer to the tCycle to be initialized.
+     @param pool A pointer to the tMempool to which the tCycle should be initialized.
+     */
+    void    tCycle_initToPool   (tCycle* const osc, tMempool* const pool);
+    
+    
+    //! Free a tCycle from a specified mempool.
+    /*!
+     @param osc A pointer to the tCycle to be freed.
+     @param pool A pointer to the tMempool from which the tCycle should be freed.
+     */
+    void    tCycle_freeFromPool (tCycle* const osc, tMempool* const pool);
+    
+    
+    //! Tick a tCycle oscillator.
+    /*!
+     @param osc A pointer to the relevant tCycle.
+     @return The ticked sample as a float from -1 to 1.
+     */
+    float   tCycle_tick         (tCycle* const osc);
+    
+    
+    //! Set the frequency of a tCycle oscillator.
+    /*!
+     @param osc A pointer to the relevant tCycle.
+     @param freq The frequency to set the oscillator to.
+     */
+    void    tCycle_setFreq      (tCycle* const osc, float freq);
+    
+    /*! @} */
+    
+    
     //==============================================================================
     
     /* tTriangle: Anti-aliased Triangle waveform using wavetable interpolation. Wavetables constructed from sine components. */
@@ -46,19 +99,66 @@
         // Underlying phasor
         float phase;
         float inc,freq;
-        
+        TableName oct;
+        float w;
     } _tTriangle;
     
     typedef _tTriangle* tTriangle;
     
-    void    tTriangle_init          (tTriangle* const);
-    void    tTriangle_free          (tTriangle* const);
-    void    tTriangle_initToPool    (tTriangle* const, tMempool* const);
-    void    tTriangle_freeFromPool  (tTriangle* const, tMempool* const);
+    /*!
+     * @defgroup ttriangle tTriangle
+     * @ingroup oscillators
+     * @brief An anti-aliased triangle waveform oscillator. Uses wavetable synthesis.
+     * @{
+     */
     
-    float   tTriangle_tick          (tTriangle* const);
-    int     tTriangle_setFreq       (tTriangle* const, float freq);
+    //! Initialize a tTriangle to the default LEAF mempool.
+    /*!
+     @param osc A pointer to the tTriangle to be initialized.
+     */
+    void    tTriangle_init          (tTriangle* const osc);
     
+    
+    //! Free a tTriangle from the default LEAF mempool.
+    /*!
+     @param osc A pointer to the tTriangle to be freed.
+     */
+    void    tTriangle_free          (tTriangle* const osc);
+    
+    
+    //! Initialize a tTriangle to a specified mempool.
+    /*!
+     @param osc A pointer to the tTriangle to be initialized.
+     @param pool A pointer to the tMempool to which the tTriangle should be initialized.
+     */
+    void    tTriangle_initToPool    (tTriangle* const osc, tMempool* const pool);
+    
+    
+    //! Free a tTriangle from a specified mempool.
+    /*!
+     @param osc A pointer to the tTriangle to be freed.
+     @param pool A pointer to the tMempool from which the tTriangle should be freed.
+     */
+    void    tTriangle_freeFromPool  (tTriangle* const osc, tMempool* const pool);
+    
+    
+    //! Tick a tTriangle oscillator.
+    /*!
+     @param osc A pointer to the relevant tTriangle.
+     @return The ticked sample as a float from -1 to 1.
+     */
+    float   tTriangle_tick          (tTriangle* const osc);
+    
+    
+    //! Set the frequency of a tTriangle oscillator.
+    /*!
+     @param osc A pointer to the relevant tTriangle.
+     @param freq The frequency to set the oscillator to.
+     */
+    void    tTriangle_setFreq       (tTriangle* const osc, float freq);
+    
+    /*! @} */
+    
     //==============================================================================
     
     /* tSquare: Anti-aliased Square waveform using wavetable interpolation. Wavetables constructed from sine components. */
@@ -67,19 +167,66 @@
         // Underlying phasor
         float phase;
         float inc,freq;
-        
+        TableName oct;
+        float w;
     } _tSquare;
     
     typedef _tSquare* tSquare;
     
-    void    tSquare_init        (tSquare* const);
-    void    tSquare_free        (tSquare* const);
-    void    tSquare_initToPool  (tSquare* const, tMempool* const);
-    void    tSquare_freeFromPool(tSquare* const, tMempool* const);
+    /*!
+     * @defgroup tsquare tSquare
+     * @ingroup oscillators
+     * @brief An anti-aliased square waveform oscillator. Uses wavetable synthesis.
+     * @{
+     */
     
-    float   tSquare_tick        (tSquare* const);
-    int     tSquare_setFreq     (tSquare* const, float freq);
+    //! Initialize a tSquare to the default LEAF mempool.
+    /*!
+     @param osc A pointer to the tSquare to be initialized.
+     */
+    void    tSquare_init        (tSquare* const osc);
     
+    
+    //! Free a tSquare from the default LEAF mempool.
+    /*!
+     @param osc A pointer to the tSquare to be freed.
+     */
+    void    tSquare_free        (tSquare* const osc);
+    
+    
+    //! Initialize a tSquare to a specified mempool.
+    /*!
+     @param osc A pointer to the tSquare to be initialized.
+     @param pool A pointer to the tMempool to which the tSquare should be initialized.
+     */
+    void    tSquare_initToPool  (tSquare* const osc, tMempool* const);
+    
+    
+    //! Free a tSquare from a specified mempool.
+    /*!
+     @param osc A pointer to the tSquare to be freed.
+     @param pool A pointer to the tMempool from which the tSquare should be freed.
+     */
+    void    tSquare_freeFromPool(tSquare* const osc, tMempool* const);
+    
+    
+    //! Tick a tSquare oscillator.
+    /*!
+     @param osc A pointer to the relevant tSquare.
+     @return The ticked sample as a float from -1 to 1.
+     */
+    float   tSquare_tick        (tSquare* const osc);
+
+    
+    //! Set the frequency of a tSquare oscillator.
+    /*!
+     @param osc A pointer to the relevant tSquare.
+     @param freq The frequency to set the oscillator to.
+     */
+    void    tSquare_setFreq     (tSquare* const osc, float freq);
+    
+    /*! @} */
+    
     //==============================================================================
     
     /* tSawtooth: Anti-aliased Sawtooth waveform using wavetable interpolation. Wavetables constructed from sine components. */
@@ -88,19 +235,66 @@
         // Underlying phasor
         float phase;
         float inc,freq;
-        
+        TableName oct;
+        float w;
     } _tSawtooth;
     
     typedef _tSawtooth* tSawtooth;
     
-    void    tSawtooth_init          (tSawtooth* const);
-    void    tSawtooth_free          (tSawtooth* const);
-    void    tSawtooth_initToPool    (tSawtooth* const, tMempool* const);
-    void    tSawtooth_freeFromPool  (tSawtooth* const, tMempool* const);
+    /*!
+     * @defgroup tsawtooth tSawtooth
+     * @ingroup oscillators
+     * @brief An anti-aliased sawtooth waveform oscillator. Uses wavetable synthesis.
+     * @{
+     */
     
-    float   tSawtooth_tick          (tSawtooth* const);
-    int     tSawtooth_setFreq       (tSawtooth* const, float freq);
+    //! Initialize a tSawtooth to the default LEAF mempool.
+    /*!
+     @param osc A pointer to the tSawtooth to be initialized.
+     */
+    void    tSawtooth_init          (tSawtooth* const osc);
     
+    
+    //! Free a tSawtooth from the default LEAF mempool.
+    /*!
+     @param osc A pointer to the tSawtooth to be freed.
+     */
+    void    tSawtooth_free          (tSawtooth* const osc);
+    
+    
+    //! Initialize a tSawtooth to a specified mempool.
+    /*!
+     @param osc A pointer to the tSawtooth to be initialized.
+     @param pool A pointer to the tMempool to which the tSawtooth should be initialized.
+     */
+    void    tSawtooth_initToPool    (tSawtooth* const osc, tMempool* const pool);
+    
+    
+    //! Free a tSawtooth from a specified mempool.
+    /*!
+     @param osc A pointer to the tSawtooth to be freed.
+     @param pool A pointer to the tMempool from which the tSawtooth should be freed.
+     */
+    void    tSawtooth_freeFromPool  (tSawtooth* const osc, tMempool* const pool);
+    
+    
+    //! Tick a tSawtooth oscillator.
+    /*!
+     @param osc A pointer to the relevant tSawtooth.
+     @return The ticked sample as a float from -1 to 1.
+     */
+    float   tSawtooth_tick          (tSawtooth* const osc);
+    
+    
+    //! Set the frequency of a tSawtooth oscillator.
+    /*!
+     @param osc A pointer to the relevant tSawtooth.
+     @param freq The frequency to set the oscillator to.
+     */
+    void    tSawtooth_setFreq       (tSawtooth* const osc, float freq);
+    
+    /*! @} */
+    
     //==============================================================================
     
     /* tPhasor: Aliasing phasor [0.0, 1.0) */
@@ -113,24 +307,82 @@
     
     typedef _tPhasor* tPhasor;
     
-    void    tPhasor_init        (tPhasor* const);
-    void    tPhasor_free        (tPhasor* const);
-    void    tPhasor_initToPool  (tPhasor* const, tMempool* const);
-    void    tPhasor_freeFromPool(tPhasor* const, tMempool* const);
+    /*!
+     * @defgroup tphasor Phasor
+     * @ingroup oscillators
+     * @brief An aliasing phasor.
+     * @{
+     */
     
-    float   tPhasor_tick        (tPhasor* const);
-    int     tPhasor_setFreq     (tPhasor* const, float freq);
+    //! Initialize a tPhasor to the default LEAF mempool.
+    /*!
+     @param osc A pointer to the tPhasor to be initialized.
+     */
+    void    tPhasor_init        (tPhasor* const osc);
     
+    
+    //! Free a tPhasor from the default LEAF mempool.
+    /*!
+     @param osc A pointer to the tPhasor to be freed.
+     */
+    void    tPhasor_free        (tPhasor* const osc);
+    
+    
+    //! Initialize a tPhasor to a specified mempool.
+    /*!
+     @param osc A pointer to the tPhasor to be initialized.
+     @param pool A pointer to the tMempool to which the tPhasor should be initialized.
+     */
+    void    tPhasor_initToPool  (tPhasor* const osc, tMempool* const);
+    
+    
+    //! Free a tPhasor from a specified mempool.
+    /*!
+     @param osc A pointer to the tPhasor to be freed.
+     @param pool A pointer to the tMempool from which the tPhasor should be freed.
+     */
+    void    tPhasor_freeFromPool(tPhasor* const osc, tMempool* const);
+    
+    
+    //! Tick a tPhasor oscillator.
+    /*!
+     @param osc A pointer to the relevant tPhasor.
+     @return The ticked sample as a float from 0 to 1.
+     */
+    float   tPhasor_tick        (tPhasor* const osc);
+    
+    
+    //! Set the frequency of a tPhasor oscillator.
+    /*!
+     @param osc A pointer to the relevant tPhasor.
+     @param freq The frequency to set the oscillator to.
+     */
+    void    tPhasor_setFreq     (tPhasor* const osc, float freq);
+    
+    /*! @} */
+    
     //==============================================================================
     
+    /*!
+     * @defgroup tnoise tNoise
+     * @ingroup oscillators
+     * @brief A noise generator.
+     * @{
+     */
+    
     /* tNoise. WhiteNoise, PinkNoise. */
-    typedef enum NoiseType
+    /*!
+     * Noise types
+     */
+    enum NoiseType
     {
-        WhiteNoise=0,
-        PinkNoise,
+        WhiteNoise, //!< White noise. Full spectrum.
+        PinkNoise, //!< Pink noise. Inverse frequency-proportional spectrum.
         NoiseTypeNil,
-    } NoiseType;
+    };
     
+    typedef enum NoiseType NoiseType;
+    
     typedef struct _tNoise
     {
         NoiseType type;
@@ -141,23 +393,65 @@
     
     typedef _tNoise* tNoise;
     
-    void    tNoise_init         (tNoise* const, NoiseType type);
-    void    tNoise_free         (tNoise* const);
-    void    tNoise_initToPool   (tNoise* const, NoiseType type, tMempool* const);
-    void    tNoise_freeFromPool (tNoise* const, tMempool* const);
+    //! Initialize a tNoise to the default LEAF mempool.
+    /*!
+     @param osc A pointer to the tNoise to be initialized.
+     */
+    void    tNoise_init         (tNoise* const noise, NoiseType type);
     
-    float   tNoise_tick         (tNoise* const);
     
+    //! Free a tNoise from the default LEAF mempool.
+    /*!
+     @param osc A pointer to the tNoise to be freed.
+     */
+    void    tNoise_free         (tNoise* const noise);
+    
+    
+    //! Initialize a tNoise to a specified mempool.
+    /*!
+     @param osc A pointer to the tNoise to be initialized.
+     @param pool A pointer to the tMempool to which the tNoise should be initialized.
+     */
+    void    tNoise_initToPool   (tNoise* const noise, NoiseType type, tMempool* const);
+    
+    
+    //! Free a tNoise from a specified mempool.
+    /*!
+     @param osc A pointer to the tNoise to be freed.
+     @param pool A pointer to the tMempool from which the tNoise should be freed.
+     */
+    void    tNoise_freeFromPool (tNoise* const noise, tMempool* const);
+    
+    
+    //! Tick a tNoise oscillator.
+    /*!
+     @param osc A pointer to the relevant tNoise.
+     @return The ticked sample as a float from -1 to 1.
+     */
+    float   tNoise_tick         (tNoise* const noise);
+    
+    /*! @} */
+    
     //==============================================================================
     
-    /* tNeuron */
-    typedef enum NeuronMode
+    /*!
+     * @defgroup tneuron tNeuron
+     * @ingroup oscillators
+     * @brief A model of a neuron, adapted to act as an oscillator.
+     * @{
+     */
+    
+    /*!
+     * Neuron modes
+     */
+    enum NeuronMode
     {
-        NeuronNormal = 0,
-        NeuronTanh,
-        NeuronAaltoShaper,
+        NeuronNormal, //!< Normal operation
+        NeuronTanh, //!< Tanh voltage shaping
+        NeuronAaltoShaper, //!< Aalto voltage shaping
         NeuronModeNil
-    } NeuronMode;
+    };
+    typedef enum NeuronMode NeuronMode;
     
     typedef struct _tNeuron
     {
@@ -178,23 +472,131 @@
     
     typedef _tNeuron* tNeuron;
     
-    void    tNeuron_init        (tNeuron* const);
-    void    tNeuron_free        (tNeuron* const);
-    void    tNeuron_initToPool  (tNeuron* const, tMempool* const);
-    void    tNeuron_freeFromPool(tNeuron* const, tMempool* const);
+    //! Initialize a tNeuron to the default LEAF mempool.
+    /*!
+     @param neuron A pointer to the tNeuron to be initialized.
+     */
+    void    tNeuron_init        (tNeuron* const neuron);
     
-    void    tNeuron_reset       (tNeuron* const);
-    float   tNeuron_tick        (tNeuron* const);
-    void    tNeuron_setMode     (tNeuron* const, NeuronMode mode);
-    void    tNeuron_setCurrent  (tNeuron* const, float current);
-    void    tNeuron_setK        (tNeuron* const, float K);
-    void    tNeuron_setL        (tNeuron* const, float L);
-    void    tNeuron_setN        (tNeuron* const, float N);
-    void    tNeuron_setC        (tNeuron* const, float C);
-    void    tNeuron_setV1       (tNeuron* const, float V1);
-    void    tNeuron_setV2       (tNeuron* const, float V2);
-    void    tNeuron_setV3       (tNeuron* const, float V3);
-    void    tNeuron_setTimeStep (tNeuron* const, float timestep);
+    
+    //! Free a tNeuron from the default LEAF mempool.
+    /*!
+     @param neuron A pointer to the tNeuron to be freed.
+     */
+    void    tNeuron_free        (tNeuron* const neuron);
+    
+    
+    //! Initialize a tNeuron to a specified mempool.
+    /*!
+     @param neuron A pointer to the tNeuron to be initialized.
+     @param pool A pointer to the tMempool to which the tNeuron should be initialized.
+     */
+    void    tNeuron_initToPool  (tNeuron* const neuron, tMempool* const pool);
+    
+    
+    //! Free a tNeuron from a specified mempool.
+    /*!
+     @param neuron A pointer to the tNeuron to be freed.
+     @param pool A pointer to the tMempool from which the tNeuron should be freed.
+     */
+    void    tNeuron_freeFromPool(tNeuron* const neuron, tMempool* const pool);
+    
+    
+    //! Reset the neuron model.
+    /*!
+     @param neuron A pointer to the relevant tNeuron.
+     */
+    void    tNeuron_reset       (tNeuron* const neuron);
+    
+    
+    //! Tick a tNeuron oscillator.
+    /*!
+     @param neuron A pointer to the relevant tNeuron.
+     @return The ticked sample as a float from -1 to 1.
+     */
+    float   tNeuron_tick        (tNeuron* const neuron);
+    
+    
+    //! Set the tNeuron shaping mode.
+    /*!
+     @param neuron A pointer to the relevant tNeuron.
+     @param mode The mode to set the tNeuron to.
+     */
+    void    tNeuron_setMode     (tNeuron* const neuron, NeuronMode mode);
+    
+    
+    //! Set the current.
+    /*!
+     @param neuron A pointer to the relevant tNeuron.
+     @param current The new current.
+     */
+    void    tNeuron_setCurrent  (tNeuron* const neuron, float current);
+    
+    
+    //! Set the potassium value.
+    /*!
+     @param neuron A pointer to the relevant tNeuron.
+     @param K The new potassium.
+     */
+    void    tNeuron_setK        (tNeuron* const neuron, float K);
+    
+    
+    //! Set the chloride value.
+    /*!
+     @param neuron A pointer to the relevant tNeuron.
+     @param L The new chloride value.
+     */
+    void    tNeuron_setL        (tNeuron* const neuron, float L);
+    
+    
+    //! Set the sodium value.
+    /*!
+     @param neuron A pointer to the relevant tNeuron.
+     @param N The new sodium value.
+     */
+    void    tNeuron_setN        (tNeuron* const neuron, float N);
+    
+    
+    //! Set the calcium value.
+    /*!
+     @param neuron A pointer to the relevant tNeuron.
+     @param C The new calcium.
+     */
+    void    tNeuron_setC        (tNeuron* const neuron, float C);
+    
+    
+    //! Set the V1 value.
+    /*!
+     @param neuron A pointer to the relevant tNeuron.
+     @param V1 The new V1.
+     */
+    void    tNeuron_setV1       (tNeuron* const neuron, float V1);
+    
+    
+    //! Set the V2 value.
+    /*!
+     @param neuron A pointer to the relevant tNeuron.
+     @param V2 The new V2.
+     */
+    void    tNeuron_setV2       (tNeuron* const neuron, float V2);
+    
+    
+    //! Set the V3 value.
+    /*!
+     @param neuron A pointer to the relevant tNeuron.
+     @param V3 The new V3.
+     */
+    void    tNeuron_setV3       (tNeuron* const neuron, float V3);
+    
+    
+    //! Set the time step.
+    /*!
+     @param neuron A pointer to the relevant tNeuron.
+     @param timestep The new time step
+     */
+    void    tNeuron_setTimeStep (tNeuron* const neuron, float timestep);
+    
+    /*! @} */
     
     //==============================================================================
     
--- a/LEAF/Inc/leaf-physical.h
+++ b/LEAF/Inc/leaf-physical.h
@@ -26,6 +26,14 @@
 #include "leaf-envelopes.h"
 #include "leaf-dynamics.h"
     
+    /*!
+     * @internal
+     * Header.
+     * @include basic-oscillators.h
+     * @example basic-oscillators.c
+     * An example.
+     */
+    
     //==============================================================================
     
     /* Karplus Strong model */
--- a/LEAF/Inc/leaf-reverb.h
+++ b/LEAF/Inc/leaf-reverb.h
@@ -22,6 +22,14 @@
 #include "leaf-filters.h"
 #include "leaf-oscillators.h"
     
+    /*!
+     * @internal
+     * Header.
+     * @include basic-oscillators.h
+     * @example basic-oscillators.c
+     * An example.
+     */
+
     //==============================================================================
     
     /* PRCReverb: Reverb, reimplemented from STK (Cook and Scavone). */
--- a/LEAF/Inc/leaf-sampling.h
+++ b/LEAF/Inc/leaf-sampling.h
@@ -23,6 +23,14 @@
 #include "leaf-mempool.h"
 #include "leaf-analysis.h"
     
+    /*!
+     * @internal
+     * Header.
+     * @include basic-oscillators.h
+     * @example basic-oscillators.c
+     * An example.
+     */
+    
     //==============================================================================
     
     typedef enum RecordMode
--- a/LEAF/Inc/leaf-tables.h
+++ b/LEAF/Inc/leaf-tables.h
@@ -32,23 +32,23 @@
 #define FILTERTAN_TABLE_SIZE 4096
     
 #define SHAPER1_TABLE_SIZE 65536
-extern const float shaper1[SHAPER1_TABLE_SIZE];
+extern const float __leaf_table_shaper1[SHAPER1_TABLE_SIZE];
     
 #define COEFFS_SIZE 32
-extern const float* firCoeffs[COEFFS_SIZE];
-extern const float firNumTaps[COEFFS_SIZE];
-extern const float fir2XLow[32];
-extern const float fir4XLow[64];
-extern const float fir8XLow[64];
-extern const float fir16XLow[128];
-extern const float fir32XLow[256];
-extern const float fir64XLow[256];
-extern const float fir2XHigh[128];
-extern const float fir4XHigh[256];
-extern const float fir8XHigh[256];
-extern const float fir16XHigh[512];
-extern const float fir32XHigh[512];
-extern const float fir64XHigh[1024];
+extern const float* __leaf_tableref_firCoeffs[COEFFS_SIZE];
+extern const float __leaf_tablesize_firNumTaps[COEFFS_SIZE];
+extern const float __leaf_table_fir2XLow[32];
+extern const float __leaf_table_fir4XLow[64];
+extern const float __leaf_table_fir8XLow[64];
+extern const float __leaf_table_fir16XLow[128];
+extern const float __leaf_table_fir32XLow[256];
+extern const float __leaf_table_fir64XLow[256];
+extern const float __leaf_table_fir2XHigh[128];
+extern const float __leaf_table_fir4XHigh[256];
+extern const float __leaf_table_fir8XHigh[256];
+extern const float __leaf_table_fir16XHigh[512];
+extern const float __leaf_table_fir32XHigh[512];
+extern const float __leaf_table_fir64XHigh[1024];
 
 typedef enum TableName
 {
@@ -68,26 +68,26 @@
 
 // mtof lookup table based on input range [0.0,1.0) in 4096 increments - midi frequency values scaled between m25 and m134 (from the Snyderphonics DrumBox code)
 
-extern const float exp_decay[EXP_DECAY_TABLE_SIZE];
-extern const float attack_decay_inc[ATTACK_DECAY_INC_TABLE_SIZE];
+extern const float __leaf_table_exp_decay[EXP_DECAY_TABLE_SIZE];
+extern const float __leaf_table_attack_decay_inc[ATTACK_DECAY_INC_TABLE_SIZE];
 
-extern const float filtertan[FILTERTAN_TABLE_SIZE];
+extern const float __leaf_table_filtertan[FILTERTAN_TABLE_SIZE];
 
-extern const float mtof1[MTOF1_TABLE_SIZE];
-extern const float decayCoeffTable[DECAY_COEFF_TABLE_SIZE];
+extern const float __leaf_table_mtof1[MTOF1_TABLE_SIZE];
+extern const float __leaf_table_decayCoeffTable[DECAY_COEFF_TABLE_SIZE];
 
-extern const float tanh1[TANH1_TABLE_SIZE];
+extern const float __leaf_table_tanh1[TANH1_TABLE_SIZE];
 
 //==============================================================================
 
 /* Sine wave table ripped from http://aquaticus.info/pwm-sine-wave. */
-extern const float sinewave[SINE_TABLE_SIZE];
+extern const float __leaf_table_sinewave[SINE_TABLE_SIZE];
 
-extern const float sawtooth[11][SAW_TABLE_SIZE];
+extern const float __leaf_table_sawtooth[11][SAW_TABLE_SIZE];
 
-extern const float triangle[11][TRI_TABLE_SIZE];
+extern const float __leaf_table_triangle[11][TRI_TABLE_SIZE];
 
-extern const float squarewave[11][SQR_TABLE_SIZE];
+extern const float __leaf_table_squarewave[11][SQR_TABLE_SIZE];
 
 //==============================================================================
     
--- a/LEAF/Src/leaf-analysis.c
+++ b/LEAF/Src/leaf-analysis.c
@@ -41,7 +41,7 @@
 void    tEnvelopeFollower_initToPool    (tEnvelopeFollower* const ef, float attackThreshold, float decayCoeff, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tEnvelopeFollower* e = *ef = (_tEnvelopeFollower*) mpool_alloc(sizeof(_tEnvelopeFollower), &m->pool);
+    _tEnvelopeFollower* e = *ef = (_tEnvelopeFollower*) mpool_alloc(sizeof(_tEnvelopeFollower), m);
     
     e->y = 0.0f;
     e->a_thresh = attackThreshold;
@@ -53,7 +53,7 @@
     _tMempool* m = *mp;
     _tEnvelopeFollower* e = *ef;
     
-    mpool_free(e, &m->pool);
+    mpool_free(e, m);
 }
 
 float   tEnvelopeFollower_tick(tEnvelopeFollower* const ef, float x)
@@ -108,7 +108,7 @@
 void    tPowerFollower_initToPool   (tPowerFollower* const pf, float factor, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tPowerFollower* p = *pf = (_tPowerFollower*) mpool_alloc(sizeof(_tPowerFollower), &m->pool);
+    _tPowerFollower* p = *pf = (_tPowerFollower*) mpool_alloc(sizeof(_tPowerFollower), m);
     
     p->curr=0.0f;
     p->factor=factor;
@@ -120,7 +120,7 @@
     _tMempool* m = *mp;
     _tPowerFollower* p = *pf;
     
-    mpool_free(p, &m->pool);
+    mpool_free(p, m);
 }
 
 int     tPowerFollower_setFactor(tPowerFollower* const pf, float factor)
@@ -206,7 +206,7 @@
 void    tEnvPD_initToPool       (tEnvPD* const xpd, int ws, int hs, int bs, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tEnvPD* x = *xpd = (_tEnvPD*) mpool_calloc(sizeof(_tEnvPD), &m->pool);
+    _tEnvPD* x = *xpd = (_tEnvPD*) mpool_calloc(sizeof(_tEnvPD), m);
     
     int period = hs, npoints = ws;
     
@@ -251,7 +251,7 @@
     _tMempool* m = *mp;
     _tEnvPD* x = *xpd;
     
-    mpool_free(x, &m->pool);
+    mpool_free(x, m);
 }
 
 float tEnvPD_tick (tEnvPD* const xpd)
@@ -323,7 +323,7 @@
 void    tAttackDetection_initToPool     (tAttackDetection* const ad, int blocksize, int atk, int rel, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    *ad = (_tAttackDetection*) mpool_alloc(sizeof(_tAttackDetection), &m->pool);
+    *ad = (_tAttackDetection*) mpool_alloc(sizeof(_tAttackDetection), m);
     
     atkdtk_init(ad, blocksize, atk, rel);
 }
@@ -333,7 +333,7 @@
     _tMempool* m = *mp;
     _tAttackDetection* a = *ad;
     
-    mpool_free(a, &m->pool);
+    mpool_free(a, m);
 }
 
 /*******Public Functions***********/
@@ -495,7 +495,7 @@
 void    tSNAC_initToPool    (tSNAC* const snac, int overlaparg, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tSNAC* s = *snac = (_tSNAC*) mpool_alloc(sizeof(_tSNAC), &m->pool);
+    _tSNAC* s = *snac = (_tSNAC*) mpool_alloc(sizeof(_tSNAC), m);
     
     s->biasfactor = DEFBIAS;
     s->timeindex = 0;
@@ -505,10 +505,10 @@
     s->minrms = DEFMINRMS;
     s->framesize = SNAC_FRAME_SIZE;
 
-    s->inputbuf = (float*) mpool_calloc(sizeof(float) * SNAC_FRAME_SIZE, &m->pool);
-    s->processbuf = (float*) mpool_calloc(sizeof(float) * (SNAC_FRAME_SIZE * 2), &m->pool);
-    s->spectrumbuf = (float*) mpool_calloc(sizeof(float) * (SNAC_FRAME_SIZE / 2), &m->pool);
-    s->biasbuf = (float*) mpool_calloc(sizeof(float) * SNAC_FRAME_SIZE, &m->pool);
+    s->inputbuf = (float*) mpool_calloc(sizeof(float) * SNAC_FRAME_SIZE, m);
+    s->processbuf = (float*) mpool_calloc(sizeof(float) * (SNAC_FRAME_SIZE * 2), m);
+    s->spectrumbuf = (float*) mpool_calloc(sizeof(float) * (SNAC_FRAME_SIZE / 2), m);
+    s->biasbuf = (float*) mpool_calloc(sizeof(float) * SNAC_FRAME_SIZE, m);
     
     snac_biasbuf(snac);
     tSNAC_setOverlap(snac, overlaparg);
@@ -519,11 +519,11 @@
     _tMempool* m = *mp;
     _tSNAC* s = *snac;
     
-    mpool_free(s->inputbuf, &m->pool);
-    mpool_free(s->processbuf, &m->pool);
-    mpool_free(s->spectrumbuf, &m->pool);
-    mpool_free(s->biasbuf, &m->pool);
-    mpool_free(s, &m->pool);
+    mpool_free(s->inputbuf, m);
+    mpool_free(s->processbuf, m);
+    mpool_free(s->spectrumbuf, m);
+    mpool_free(s->biasbuf, m);
+    mpool_free(s, m);
 }
 
 /******************************************************************************/
@@ -840,18 +840,18 @@
 //===========================================================================
 void    tPeriodDetection_init    (tPeriodDetection* const pd, float* in, float* out, int bufSize, int frameSize)
 {
-    tPeriodDetection_initToPool(pd, in, out, bufSize, frameSize, &leaf_mempool);
+    tPeriodDetection_initToPool(pd, in, out, bufSize, frameSize, &leaf.mempool);
 }
 
 void tPeriodDetection_free (tPeriodDetection* const pd)
 {
-    tPeriodDetection_freeFromPool(pd, &leaf_mempool);
+    tPeriodDetection_freeFromPool(pd, &leaf.mempool);
 }
 
 void    tPeriodDetection_initToPool  (tPeriodDetection* const pd, float* in, float* out, int bufSize, int frameSize, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tPeriodDetection* p = *pd = (_tPeriodDetection*) mpool_calloc(sizeof(_tPeriodDetection), &m->pool);
+    _tPeriodDetection* p = *pd = (_tPeriodDetection*) mpool_calloc(sizeof(_tPeriodDetection), m);
     
     p->inBuffer = in;
     p->outBuffer = out;
@@ -882,7 +882,7 @@
     
     tEnvPD_freeFromPool(&p->env, mp);
     tSNAC_freeFromPool(&p->snac, mp);
-    mpool_free(p, &m->pool);
+    mpool_free(p, m);
 }
 
 float tPeriodDetection_tick (tPeriodDetection* pd, float sample)
--- a/LEAF/Src/leaf-delay.c
+++ b/LEAF/Src/leaf-delay.c
@@ -21,24 +21,24 @@
 // ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Delay ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ //
 void    tDelay_init (tDelay* const dl, uint32_t delay, uint32_t maxDelay)
 {
-    tDelay_initToPool(dl, delay, maxDelay, &leaf_mempool);
+    tDelay_initToPool(dl, delay, maxDelay, &leaf.mempool);
 }
 
 void    tDelay_free(tDelay* const dl)
 {
-    tDelay_freeFromPool(dl, &leaf_mempool);
+    tDelay_freeFromPool(dl, &leaf.mempool);
 }
 
 void    tDelay_initToPool   (tDelay* const dl, uint32_t delay, uint32_t maxDelay, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tDelay* d = *dl = (_tDelay*) mpool_alloc(sizeof(_tDelay), &m->pool);
+    _tDelay* d = *dl = (_tDelay*) mpool_alloc(sizeof(_tDelay), m);
     
     d->maxDelay = maxDelay;
     
     d->delay = delay;
     
-    d->buff = (float*) mpool_alloc(sizeof(float) * maxDelay, &m->pool);
+    d->buff = (float*) mpool_alloc(sizeof(float) * maxDelay, m);
     
     d->inPoint = 0;
     d->outPoint = 0;
@@ -56,8 +56,8 @@
     _tMempool* m = *mp;
     _tDelay* d = *dl;
     
-    mpool_free(d->buff, &m->pool);
-    mpool_free(d, &m->pool);
+    mpool_free(d->buff, m);
+    mpool_free(d, m);
 }
 
 void    tDelay_clear(tDelay* const dl)
@@ -169,18 +169,18 @@
 // ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ LinearDelay ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ //
 void   tLinearDelay_init (tLinearDelay* const dl, float delay, uint32_t maxDelay)
 {
-    tLinearDelay_initToPool(dl, delay, maxDelay, &leaf_mempool);
+    tLinearDelay_initToPool(dl, delay, maxDelay, &leaf.mempool);
 }
 
 void tLinearDelay_free(tLinearDelay* const dl)
 {
-    tLinearDelay_freeFromPool(dl, &leaf_mempool);
+    tLinearDelay_freeFromPool(dl, &leaf.mempool);
 }
 
 void    tLinearDelay_initToPool  (tLinearDelay* const dl, float delay, uint32_t maxDelay, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tLinearDelay* d = *dl = (_tLinearDelay*) mpool_alloc(sizeof(_tLinearDelay), &m->pool);
+    _tLinearDelay* d = *dl = (_tLinearDelay*) mpool_alloc(sizeof(_tLinearDelay), m);
     
     d->maxDelay = maxDelay;
     
@@ -188,7 +188,7 @@
     else if (delay < 0.0f)  d->delay = 0.0f;
     else                    d->delay = delay;
     
-    d->buff = (float*) mpool_alloc(sizeof(float) * maxDelay, &m->pool);
+    d->buff = (float*) mpool_alloc(sizeof(float) * maxDelay, m);
     
     d->gain = 1.0f;
     
@@ -206,8 +206,8 @@
     _tMempool* m = *mp;
     _tLinearDelay* d = *dl;
     
-    mpool_free(d->buff, &m->pool);
-    mpool_free(d, &m->pool);
+    mpool_free(d->buff, m);
+    mpool_free(d, m);
 }
 
 void    tLinearDelay_clear(tLinearDelay* const dl)
@@ -367,18 +367,18 @@
 // ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ LinearDelay ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ //
 void   tHermiteDelay_init (tHermiteDelay* const dl, float delay, uint32_t maxDelay)
 {
-    tHermiteDelay_initToPool(dl, delay, maxDelay, &leaf_mempool);
+    tHermiteDelay_initToPool(dl, delay, maxDelay, &leaf.mempool);
 }
 
 void tHermiteDelay_free(tHermiteDelay* const dl)
 {
-    tHermiteDelay_freeFromPool(dl, &leaf_mempool);
+    tHermiteDelay_freeFromPool(dl, &leaf.mempool);
 }
 
 void    tHermiteDelay_initToPool  (tHermiteDelay* const dl, float delay, uint32_t maxDelay, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tHermiteDelay* d = *dl = (_tHermiteDelay*) mpool_alloc(sizeof(_tHermiteDelay), &m->pool);
+    _tHermiteDelay* d = *dl = (_tHermiteDelay*) mpool_alloc(sizeof(_tHermiteDelay), m);
 
     d->maxDelay = maxDelay;
 
@@ -386,7 +386,7 @@
     else if (delay < 0.0f)  d->delay = 0.0f;
     else                    d->delay = delay;
 
-    d->buff = (float*) mpool_alloc(sizeof(float) * maxDelay, &m->pool);
+    d->buff = (float*) mpool_alloc(sizeof(float) * maxDelay, m);
 
     d->gain = 1.0f;
 
@@ -404,8 +404,8 @@
     _tMempool* m = *mp;
     _tHermiteDelay* d = *dl;
 
-    mpool_free(d->buff, &m->pool);
-    mpool_free(d, &m->pool);
+    mpool_free(d->buff, m);
+    mpool_free(d, m);
 }
 
 
@@ -567,18 +567,18 @@
 // ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ AllpassDelay ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ //
 void  tAllpassDelay_init (tAllpassDelay* const dl, float delay, uint32_t maxDelay)
 {
-    tAllpassDelay_initToPool(dl, delay, maxDelay, &leaf_mempool);
+    tAllpassDelay_initToPool(dl, delay, maxDelay, &leaf.mempool);
 }
 
 void tAllpassDelay_free(tAllpassDelay* const dl)
 {
-    tAllpassDelay_freeFromPool(dl, &leaf_mempool);
+    tAllpassDelay_freeFromPool(dl, &leaf.mempool);
 }
 
 void    tAllpassDelay_initToPool  (tAllpassDelay* const dl, float delay, uint32_t maxDelay, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tAllpassDelay* d = *dl = (_tAllpassDelay*) mpool_alloc(sizeof(_tAllpassDelay), &m->pool);
+    _tAllpassDelay* d = *dl = (_tAllpassDelay*) mpool_alloc(sizeof(_tAllpassDelay), m);
     
     d->maxDelay = maxDelay;
     
@@ -586,7 +586,7 @@
     else if (delay < 0.0f)  d->delay = 0.0f;
     else                    d->delay = delay;
     
-    d->buff = (float*) mpool_alloc(sizeof(float) * maxDelay, &m->pool);
+    d->buff = (float*) mpool_alloc(sizeof(float) * maxDelay, m);
     
     d->gain = 1.0f;
     
@@ -606,8 +606,8 @@
     _tMempool* m = *mp;
     _tAllpassDelay* d = *dl;
     
-    mpool_free(d->buff, &m->pool);
-    mpool_free(d, &m->pool);
+    mpool_free(d->buff, m);
+    mpool_free(d, m);
 }
 
 void    tAllpassDelay_clear(tAllpassDelay* const dl)
@@ -747,22 +747,22 @@
 // ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ TapeDelay ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ //
 void   tTapeDelay_init (tTapeDelay* const dl, float delay, uint32_t maxDelay)
 {
-    tTapeDelay_initToPool(dl, delay, maxDelay, &leaf_mempool);
+    tTapeDelay_initToPool(dl, delay, maxDelay, &leaf.mempool);
 }
 
 void tTapeDelay_free(tTapeDelay* const dl)
 {
-    tTapeDelay_freeFromPool(dl, &leaf_mempool);
+    tTapeDelay_freeFromPool(dl, &leaf.mempool);
 }
 
 void    tTapeDelay_initToPool  (tTapeDelay* const dl, float delay, uint32_t maxDelay, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tTapeDelay* d = *dl = (_tTapeDelay*) mpool_alloc(sizeof(_tTapeDelay), &m->pool);
+    _tTapeDelay* d = *dl = (_tTapeDelay*) mpool_alloc(sizeof(_tTapeDelay), m);
     
     d->maxDelay = maxDelay;
     
-    d->buff = (float*) mpool_alloc(sizeof(float) * maxDelay, &m->pool);
+    d->buff = (float*) mpool_alloc(sizeof(float) * maxDelay, m);
     
     d->gain = 1.0f;
     
@@ -781,8 +781,8 @@
     _tMempool* m = *mp;
     _tTapeDelay* d = *dl;
     
-    mpool_free(d->buff, &m->pool);
-    mpool_free(d, &m->pool);
+    mpool_free(d->buff, m);
+    mpool_free(d, m);
 }
 
 void    tTapeDelay_clear(tTapeDelay* const dl)
--- a/LEAF/Src/leaf-distortion.c
+++ b/LEAF/Src/leaf-distortion.c
@@ -45,7 +45,7 @@
 void    tSampleReducer_initToPool   (tSampleReducer* const sr, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tSampleReducer* s = *sr = (_tSampleReducer*) mpool_alloc(sizeof(_tSampleReducer), &m->pool);
+    _tSampleReducer* s = *sr = (_tSampleReducer*) mpool_alloc(sizeof(_tSampleReducer), m);
     
     s->invRatio = 1.0f;
     s->hold = 0.0f;
@@ -57,7 +57,7 @@
     _tMempool* m = *mp;
     _tSampleReducer* s = *sr;
     
-    mpool_free(s, &m->pool);
+    mpool_free(s, m);
 }
 
 float tSampleReducer_tick(tSampleReducer* const sr, float input)
@@ -97,9 +97,9 @@
         ratio == 32 || ratio == 64) {
         os->ratio = ratio;
         int idx = (int)(log2f(os->ratio))-1+offset;
-        os->numTaps = firNumTaps[idx];
+        os->numTaps = __leaf_tablesize_firNumTaps[idx];
         os->phaseLength = os->numTaps / os->ratio;
-        os->pCoeffs = (float*) firCoeffs[idx];
+        os->pCoeffs = (float*) __leaf_tableref_firCoeffs[idx];
         os->upState = leaf_alloc(sizeof(float) * os->numTaps * 2);
         os->downState = leaf_alloc(sizeof(float) * os->numTaps * 2);
     }
@@ -117,7 +117,7 @@
 void    tOversampler_initToPool     (tOversampler* const osr, int ratio, oBool extraQuality, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tOversampler* os = *osr = (_tOversampler*) mpool_alloc(sizeof(_tOversampler), &m->pool);
+    _tOversampler* os = *osr = (_tOversampler*) mpool_alloc(sizeof(_tOversampler), m);
     
     uint8_t offset = 0;
     if (extraQuality) offset = 6;
@@ -126,11 +126,11 @@
         ratio == 32 || ratio == 64) {
         os->ratio = ratio;
         int idx = (int)(log2f(os->ratio))-1+offset;
-        os->numTaps = firNumTaps[idx];
+        os->numTaps = __leaf_tablesize_firNumTaps[idx];
         os->phaseLength = os->numTaps / os->ratio;
-        os->pCoeffs = (float*) firCoeffs[idx];
-        os->upState = mpool_alloc(sizeof(float) * os->numTaps * 2, &m->pool);
-        os->downState = mpool_alloc(sizeof(float) * os->numTaps * 2, &m->pool);
+        os->pCoeffs = (float*) __leaf_tableref_firCoeffs[idx];
+        os->upState = mpool_alloc(sizeof(float) * os->numTaps * 2, m);
+        os->downState = mpool_alloc(sizeof(float) * os->numTaps * 2, m);
     }
 }
 
@@ -139,9 +139,9 @@
     _tMempool* m = *mp;
     _tOversampler* os = *osr;
     
-    mpool_free(os->upState, &m->pool);
-    mpool_free(os->downState, &m->pool);
-    mpool_free(os, &m->pool);
+    mpool_free(os->upState, m);
+    mpool_free(os->downState, m);
+    mpool_free(os, m);
 }
 
 float tOversampler_tick(tOversampler* const osr, float input, float (*effectTick)(float))
@@ -385,7 +385,7 @@
 void    tLockhartWavefolder_initToPool   (tLockhartWavefolder* const wf, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tLockhartWavefolder* w = *wf = (_tLockhartWavefolder*) mpool_alloc(sizeof(_tLockhartWavefolder), &m->pool);
+    _tLockhartWavefolder* w = *wf = (_tLockhartWavefolder*) mpool_alloc(sizeof(_tLockhartWavefolder), m);
     
     w->Ln1 = 0.0;
     w->Fn1 = 0.0;
@@ -412,7 +412,7 @@
     _tMempool* m = *mp;
     _tLockhartWavefolder* w = *wf;
     
-    mpool_free(w, &m->pool);
+    mpool_free(w, m);
 }
 
 double tLockhartWavefolderLambert(double x, double ln)
@@ -511,7 +511,7 @@
 void    tCrusher_initToPool   (tCrusher* const cr, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tCrusher* c = *cr = (_tCrusher*) mpool_alloc(sizeof(_tCrusher), &m->pool);
+    _tCrusher* c = *cr = (_tCrusher*) mpool_alloc(sizeof(_tCrusher), m);
     
     c->op = 4;
     c->div = SCALAR;
@@ -526,7 +526,7 @@
     _tMempool* m = *mp;
     _tCrusher* c = *cr;
     tSampleReducer_freeFromPool(&c->sReducer, mp);
-    mpool_free(c, &m->pool);
+    mpool_free(c, m);
 }
 
 float   tCrusher_tick    (tCrusher* const cr, float input)
--- a/LEAF/Src/leaf-dynamics.c
+++ b/LEAF/Src/leaf-dynamics.c
@@ -66,7 +66,7 @@
 void    tCompressor_initToPool  (tCompressor* const comp, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tCompressor* c = *comp = (_tCompressor*) mpool_alloc(sizeof(_tCompressor), &m->pool);
+    _tCompressor* c = *comp = (_tCompressor*) mpool_alloc(sizeof(_tCompressor), m);
     
     c->tauAttack = 100;
     c->tauRelease = 100;
@@ -84,7 +84,7 @@
     _tMempool* m = *mp;
     _tCompressor* c = *comp;
     
-    mpool_free(c, &m->pool);
+    mpool_free(c, m);
 }
 
 float tCompressor_tick(tCompressor* const comp, float in)
@@ -160,7 +160,7 @@
 void    tFeedbackLeveler_initToPool     (tFeedbackLeveler* const fb, float targetLevel, float factor, float strength, int mode, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tFeedbackLeveler* p = *fb = (_tFeedbackLeveler*) mpool_alloc(sizeof(_tFeedbackLeveler), &m->pool);
+    _tFeedbackLeveler* p = *fb = (_tFeedbackLeveler*) mpool_alloc(sizeof(_tFeedbackLeveler), m);
     
     p->curr=0.0f;
     p->targetLevel=targetLevel;
@@ -175,7 +175,7 @@
     _tFeedbackLeveler* p = *fb;
     
     tPowerFollower_freeFromPool(&p->pwrFlw, mp);
-    mpool_free(p, &m->pool);
+    mpool_free(p, m);
 }
 
 void     tFeedbackLeveler_setStrength(tFeedbackLeveler* const fb, float strength)
@@ -219,3 +219,63 @@
     p->targetLevel=TargetLevel;
 }
 
+
+
+void    tThreshold_init(tThreshold* const th, float low, float high)
+{
+	tThreshold_initToPool(th, low, high, &leaf.mempool);
+}
+
+void tThreshold_free(tThreshold* const th)
+{
+	tThreshold_freeFromPool(th, &leaf.mempool);
+}
+
+void    tThreshold_initToPool  (tThreshold* const th, float low, float high, tMempool* const mp)
+{
+    _tMempool* m = *mp;
+    _tThreshold* t = *th = (_tThreshold*) mpool_alloc(sizeof(_tThreshold), m);
+
+    t->highThresh = high;
+    t->lowThresh = low;
+
+    t->currentValue = 0;
+}
+
+void    tThreshold_freeFromPool(tThreshold* const th, tMempool* const mp)
+{
+    _tMempool* m = *mp;
+    _tThreshold* t = *th;
+
+    mpool_free(t, m);
+}
+
+int tThreshold_tick(tThreshold* const th, float in)
+{
+    _tThreshold* t = *th;
+
+    if (in >= t->highThresh)
+    {
+    	t->currentValue = 1;
+    }
+    else if (in <= t->lowThresh)
+	{
+    	t->currentValue = 0;
+	}
+
+    return t->currentValue;
+}
+
+void tThreshold_setLow(tThreshold* const th, float low)
+{
+    _tThreshold* t = *th;
+
+    t->lowThresh = low;
+}
+
+void tThreshold_setHigh(tThreshold* const th, float high)
+{
+    _tThreshold* t = *th;
+
+    t->highThresh = high;
+}
--- a/LEAF/Src/leaf-effects.c
+++ b/LEAF/Src/leaf-effects.c
@@ -62,7 +62,7 @@
 void    tTalkbox_initToPool     (tTalkbox* const voc, int bufsize, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tTalkbox* v = *voc = (_tTalkbox*) mpool_alloc(sizeof(_tTalkbox), &m->pool);
+    _tTalkbox* v = *voc = (_tTalkbox*) mpool_alloc(sizeof(_tTalkbox), m);
     
     v->param[0] = 0.5f;  //wet
     v->param[1] = 0.0f;  //dry
@@ -71,11 +71,11 @@
     
     v->bufsize = bufsize;
     
-    v->car0 =   (float*) mpool_alloc(sizeof(float) * v->bufsize, &m->pool);
-    v->car1 =   (float*) mpool_alloc(sizeof(float) * v->bufsize, &m->pool);
-    v->window = (float*) mpool_alloc(sizeof(float) * v->bufsize, &m->pool);
-    v->buf0 =   (float*) mpool_alloc(sizeof(float) * v->bufsize, &m->pool);
-    v->buf1 =   (float*) mpool_alloc(sizeof(float) * v->bufsize, &m->pool);
+    v->car0 =   (float*) mpool_alloc(sizeof(float) * v->bufsize, m);
+    v->car1 =   (float*) mpool_alloc(sizeof(float) * v->bufsize, m);
+    v->window = (float*) mpool_alloc(sizeof(float) * v->bufsize, m);
+    v->buf0 =   (float*) mpool_alloc(sizeof(float) * v->bufsize, m);
+    v->buf1 =   (float*) mpool_alloc(sizeof(float) * v->bufsize, m);
     
     tTalkbox_update(voc);
     tTalkbox_suspend(voc);
@@ -86,13 +86,13 @@
     _tMempool* m = *mp;
     _tTalkbox* v = *voc;
     
-    mpool_free(v->buf1, &m->pool);
-    mpool_free(v->buf0, &m->pool);
-    mpool_free(v->window, &m->pool);
-    mpool_free(v->car1, &m->pool);
-    mpool_free(v->car0, &m->pool);
+    mpool_free(v->buf1, m);
+    mpool_free(v->buf0, m);
+    mpool_free(v->window, m);
+    mpool_free(v->car1, m);
+    mpool_free(v->car0, m);
     
-    mpool_free(v, &m->pool);
+    mpool_free(v, m);
 }
 
 void tTalkbox_update(tTalkbox* const voc) ///update internal parameters...
@@ -297,7 +297,7 @@
 void    tVocoder_initToPool     (tVocoder* const voc, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tVocoder* v = *voc = (_tVocoder*) mpool_alloc(sizeof(_tVocoder), &m->pool);
+    _tVocoder* v = *voc = (_tVocoder*) mpool_alloc(sizeof(_tVocoder), m);
     
     v->param[0] = 0.33f;  //input select
     v->param[1] = 0.50f;  //output dB
@@ -316,7 +316,7 @@
     _tMempool* m = *mp;
     _tVocoder* v = *voc;
     
-    mpool_free(v, &m->pool);
+    mpool_free(v, m);
 }
 
 void        tVocoder_update      (tVocoder* const voc)
@@ -518,10 +518,10 @@
 {
     _tMempool* m = *mp;
 
-    _tSOLAD* w = *wp = (_tSOLAD*) mpool_calloc(sizeof(_tSOLAD), &m->pool);
+    _tSOLAD* w = *wp = (_tSOLAD*) mpool_calloc(sizeof(_tSOLAD), m);
     
     w->pitchfactor = 1.;
-    w->delaybuf = (float*) mpool_calloc(sizeof(float) * (LOOPSIZE+16), &m->pool);
+    w->delaybuf = (float*) mpool_calloc(sizeof(float) * (LOOPSIZE+16), m);
 
     solad_init(w);
 }
@@ -531,8 +531,8 @@
     _tMempool* m = *mp;
     _tSOLAD* w = *wp;
     
-    mpool_free(w->delaybuf, &m->pool);
-    mpool_free(w, &m->pool);
+    mpool_free(w->delaybuf, m);
+    mpool_free(w, m);
 }
 
 // send one block of input samples, receive one block of output samples
@@ -901,7 +901,7 @@
 {
     _tMempool* m = *mp;
 
-    _tPitchShift* ps = *psr = (_tPitchShift*) mpool_calloc(sizeof(_tPitchShift), &m->pool);
+    _tPitchShift* ps = *psr = (_tPitchShift*) mpool_calloc(sizeof(_tPitchShift), m);
 
     _tPeriodDetection* p = *pd;
     
@@ -930,7 +930,7 @@
     
     tSOLAD_freeFromPool(&ps->sola, mp);
     tHighpass_freeFromPool(&ps->hp, mp);
-    mpool_free(ps, &m->pool);
+    mpool_free(ps, m);
 }
 
 void tPitchShift_setPitchFactor(tPitchShift* psr, float pf)
@@ -1052,25 +1052,25 @@
 
 void tRetune_init(tRetune* const rt, int numVoices, int bufSize, int frameSize)
 {
-    tRetune_initToPool(rt, numVoices, bufSize, frameSize, &leaf_mempool);
+    tRetune_initToPool(rt, numVoices, bufSize, frameSize, &leaf.mempool);
 }
 
 void tRetune_free(tRetune* const rt)
 {
-    tRetune_freeFromPool(rt, &leaf_mempool);
+    tRetune_freeFromPool(rt, &leaf.mempool);
 }
 
 void    tRetune_initToPool      (tRetune* const rt, int numVoices, int bufSize, int frameSize, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tRetune* r = *rt = (_tRetune*) mpool_alloc(sizeof(_tRetune), &m->pool);
+    _tRetune* r = *rt = (_tRetune*) mpool_alloc(sizeof(_tRetune), m);
     
     r->bufSize = bufSize;
     r->frameSize = frameSize;
     r->numVoices = numVoices;
     
-    r->inBuffer = (float*) mpool_calloc(sizeof(float) * r->bufSize, &m->pool);
-    r->outBuffers = (float**) mpool_calloc(sizeof(float*) * r->numVoices, &m->pool);
+    r->inBuffer = (float*) mpool_calloc(sizeof(float) * r->bufSize, m);
+    r->outBuffers = (float**) mpool_calloc(sizeof(float*) * r->numVoices, m);
     
     r->hopSize = DEFHOPSIZE;
     r->windowSize = DEFWINDOWSIZE;
@@ -1079,12 +1079,12 @@
     
     r->inputPeriod = 0.0f;
 
-    r->ps = (tPitchShift*) mpool_calloc(sizeof(tPitchShift) * r->numVoices, &m->pool);
-    r->pitchFactor = (float*) mpool_calloc(sizeof(float) * r->numVoices, &m->pool);
-    r->tickOutput = (float*) mpool_calloc(sizeof(float) * r->numVoices, &m->pool);
+    r->ps = (tPitchShift*) mpool_calloc(sizeof(tPitchShift) * r->numVoices, m);
+    r->pitchFactor = (float*) mpool_calloc(sizeof(float) * r->numVoices, m);
+    r->tickOutput = (float*) mpool_calloc(sizeof(float) * r->numVoices, m);
     for (int i = 0; i < r->numVoices; ++i)
     {
-        r->outBuffers[i] = (float*) mpool_calloc(sizeof(float) * r->bufSize, &m->pool);
+        r->outBuffers[i] = (float*) mpool_calloc(sizeof(float) * r->bufSize, m);
     }
     
     tPeriodDetection_initToPool(&r->pd, r->inBuffer, r->outBuffers[0], r->bufSize, r->frameSize, mp);
@@ -1104,14 +1104,14 @@
     for (int i = 0; i < r->numVoices; ++i)
     {
         tPitchShift_freeFromPool(&r->ps[i], mp);
-        mpool_free(r->outBuffers[i], &m->pool);
+        mpool_free(r->outBuffers[i], m);
     }
-    mpool_free(r->tickOutput, &m->pool);
-    mpool_free(r->pitchFactor, &m->pool);
-    mpool_free(r->ps, &m->pool);
-    mpool_free(r->inBuffer, &m->pool);
-    mpool_free(r->outBuffers, &m->pool);
-    mpool_free(r, &m->pool);
+    mpool_free(r->tickOutput, m);
+    mpool_free(r->pitchFactor, m);
+    mpool_free(r->ps, m);
+    mpool_free(r->inBuffer, m);
+    mpool_free(r->outBuffers, m);
+    mpool_free(r, m);
 }
 
 float* tRetune_tick(tRetune* const rt, float sample)
@@ -1225,25 +1225,25 @@
 
 void tAutotune_init(tAutotune* const rt, int numVoices, int bufSize, int frameSize)
 {
-    tAutotune_initToPool(rt, numVoices, bufSize, frameSize, &leaf_mempool);
+    tAutotune_initToPool(rt, numVoices, bufSize, frameSize, &leaf.mempool);
 }
 
 void tAutotune_free(tAutotune* const rt)
 {
-    tAutotune_freeFromPool(rt, &leaf_mempool);
+    tAutotune_freeFromPool(rt, &leaf.mempool);
 }
 
 void    tAutotune_initToPool        (tAutotune* const rt, int numVoices, int bufSize, int frameSize, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tAutotune* r = *rt = (_tAutotune*) mpool_alloc(sizeof(_tAutotune), &m->pool);
+    _tAutotune* r = *rt = (_tAutotune*) mpool_alloc(sizeof(_tAutotune), m);
     
     r->bufSize = bufSize;
     r->frameSize = frameSize;
     r->numVoices = numVoices;
     
-    r->inBuffer = (float*) mpool_alloc(sizeof(float) * r->bufSize, &m->pool);
-    r->outBuffers = (float**) mpool_alloc(sizeof(float*) * r->numVoices, &m->pool);
+    r->inBuffer = (float*) mpool_alloc(sizeof(float) * r->bufSize, m);
+    r->outBuffers = (float**) mpool_alloc(sizeof(float*) * r->numVoices, m);
     
     r->hopSize = DEFHOPSIZE;
     r->windowSize = DEFWINDOWSIZE;
@@ -1250,12 +1250,12 @@
     r->fba = FBA;
     tAutotune_setTimeConstant(rt, DEFTIMECONSTANT);
     
-    r->ps = (tPitchShift*) mpool_alloc(sizeof(tPitchShift) * r->numVoices, &m->pool);
-    r->freq = (float*) mpool_alloc(sizeof(float) * r->numVoices, &m->pool);
-    r->tickOutput = (float*) mpool_alloc(sizeof(float) * r->numVoices, &m->pool);
+    r->ps = (tPitchShift*) mpool_alloc(sizeof(tPitchShift) * r->numVoices, m);
+    r->freq = (float*) mpool_alloc(sizeof(float) * r->numVoices, m);
+    r->tickOutput = (float*) mpool_alloc(sizeof(float) * r->numVoices, m);
     for (int i = 0; i < r->numVoices; ++i)
     {
-        r->outBuffers[i] = (float*) mpool_alloc(sizeof(float) * r->bufSize, &m->pool);
+        r->outBuffers[i] = (float*) mpool_alloc(sizeof(float) * r->bufSize, m);
     }
     
     tPeriodDetection_initToPool(&r->pd, r->inBuffer, r->outBuffers[0], r->bufSize, r->frameSize, mp);
@@ -1277,14 +1277,14 @@
     for (int i = 0; i < r->numVoices; ++i)
     {
         tPitchShift_freeFromPool(&r->ps[i], mp);
-        mpool_free(r->outBuffers[i], &m->pool);
+        mpool_free(r->outBuffers[i], m);
     }
-    mpool_free(r->tickOutput, &m->pool);
-    mpool_free(r->freq, &m->pool);
-    mpool_free(r->ps, &m->pool);
-    mpool_free(r->inBuffer, &m->pool);
-    mpool_free(r->outBuffers, &m->pool);
-    mpool_free(r, &m->pool);
+    mpool_free(r->tickOutput, m);
+    mpool_free(r->freq, m);
+    mpool_free(r->ps, m);
+    mpool_free(r->inBuffer, m);
+    mpool_free(r->outBuffers, m);
+    mpool_free(r, m);
 }
 
 float* tAutotune_tick(tAutotune* const rt, float sample)
@@ -1453,19 +1453,19 @@
 void    tFormantShifter_initToPool      (tFormantShifter* const fsr, int order, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tFormantShifter* fs = *fsr = (_tFormantShifter*) mpool_alloc(sizeof(_tFormantShifter), &m->pool);
+    _tFormantShifter* fs = *fsr = (_tFormantShifter*) mpool_alloc(sizeof(_tFormantShifter), m);
     
     fs->ford = order;
-    fs->fk = (float*) mpool_calloc(sizeof(float) * fs->ford, &m->pool);
-    fs->fb = (float*) mpool_calloc(sizeof(float) * fs->ford, &m->pool);
-    fs->fc = (float*) mpool_calloc(sizeof(float) * fs->ford, &m->pool);
-    fs->frb = (float*) mpool_calloc(sizeof(float) * fs->ford, &m->pool);
-    fs->frc = (float*) mpool_calloc(sizeof(float) * fs->ford, &m->pool);
-    fs->fsig = (float*) mpool_calloc(sizeof(float) * fs->ford, &m->pool);
-    fs->fsmooth = (float*) mpool_calloc(sizeof(float) * fs->ford, &m->pool);
-    fs->ftvec = (float*) mpool_calloc(sizeof(float) * fs->ford, &m->pool);
+    fs->fk = (float*) mpool_calloc(sizeof(float) * fs->ford, m);
+    fs->fb = (float*) mpool_calloc(sizeof(float) * fs->ford, m);
+    fs->fc = (float*) mpool_calloc(sizeof(float) * fs->ford, m);
+    fs->frb = (float*) mpool_calloc(sizeof(float) * fs->ford, m);
+    fs->frc = (float*) mpool_calloc(sizeof(float) * fs->ford, m);
+    fs->fsig = (float*) mpool_calloc(sizeof(float) * fs->ford, m);
+    fs->fsmooth = (float*) mpool_calloc(sizeof(float) * fs->ford, m);
+    fs->ftvec = (float*) mpool_calloc(sizeof(float) * fs->ford, m);
     
-    fs->fbuff = (float*) mpool_calloc(sizeof(float*) * fs->ford, &m->pool);
+    fs->fbuff = (float*) mpool_calloc(sizeof(float*) * fs->ford, m);
 
     
     fs->falph = powf(0.001f, 10.0f * leaf.invSampleRate);
@@ -1489,20 +1489,20 @@
     _tMempool* m = *mp;
     _tFormantShifter* fs = *fsr;
     
-    mpool_free(fs->fk, &m->pool);
-    mpool_free(fs->fb, &m->pool);
-    mpool_free(fs->fc, &m->pool);
-    mpool_free(fs->frb, &m->pool);
-    mpool_free(fs->frc, &m->pool);
-    mpool_free(fs->fsig, &m->pool);
-    mpool_free(fs->fsmooth, &m->pool);
-    mpool_free(fs->ftvec, &m->pool);
-    mpool_free(fs->fbuff, &m->pool);
+    mpool_free(fs->fk, m);
+    mpool_free(fs->fb, m);
+    mpool_free(fs->fc, m);
+    mpool_free(fs->frb, m);
+    mpool_free(fs->frc, m);
+    mpool_free(fs->fsig, m);
+    mpool_free(fs->fsmooth, m);
+    mpool_free(fs->ftvec, m);
+    mpool_free(fs->fbuff, m);
     tHighpass_freeFromPool(&fs->hp, mp);
     tHighpass_freeFromPool(&fs->hp2, mp);
     tFeedbackLeveler_freeFromPool(&fs->fbl1, mp);
     tFeedbackLeveler_freeFromPool(&fs->fbl2, mp);
-    mpool_free(fs, &m->pool);
+    mpool_free(fs, m);
 }
 
 float tFormantShifter_tick(tFormantShifter* const fsr, float in)
--- a/LEAF/Src/leaf-electrical.c
+++ b/LEAF/Src/leaf-electrical.c
@@ -181,7 +181,7 @@
 void    tWDF_initToPool             (tWDF* const wdf, WDFComponentType type, float value, tWDF* const rL, tWDF* const rR, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    *wdf = (_tWDF*) mpool_alloc(sizeof(_tWDF), &m->pool);
+    *wdf = (_tWDF*) mpool_alloc(sizeof(_tWDF), m);
     
     wdf_init(wdf, type, value, rL, rR);
 }
@@ -191,7 +191,7 @@
     _tMempool* m = *mp;
     _tWDF* r = *wdf;
     
-    mpool_free(r, &m->pool);
+    mpool_free(r, m);
 }
 
 float tWDF_tick(tWDF* const wdf, float sample, tWDF* const outputPoint, uint8_t paramsChanged)
--- a/LEAF/Src/leaf-envelopes.c
+++ b/LEAF/Src/leaf-envelopes.c
@@ -28,9 +28,9 @@
 {
     _tEnvelope* env = *envlp = (_tEnvelope*) leaf_alloc(sizeof(_tEnvelope));
     
-    env->exp_buff = exp_decay;
-    env->inc_buff = attack_decay_inc;
-    env->buff_size = sizeof(exp_decay);
+    env->exp_buff = __leaf_table_exp_decay;
+    env->inc_buff = __leaf_table_attack_decay_inc;
+    env->buff_size = sizeof(__leaf_table_exp_decay);
     
     env->loop = loop;
     
@@ -73,11 +73,11 @@
 void    tEnvelope_initToPool    (tEnvelope* const envlp, float attack, float decay, oBool loop, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tEnvelope* env = *envlp = (_tEnvelope*) mpool_alloc(sizeof(_tEnvelope), &m->pool);
+    _tEnvelope* env = *envlp = (_tEnvelope*) mpool_alloc(sizeof(_tEnvelope), m);
     
-    env->exp_buff = exp_decay;
-    env->inc_buff = attack_decay_inc;
-    env->buff_size = sizeof(exp_decay);
+    env->exp_buff = __leaf_table_exp_decay;
+    env->inc_buff = __leaf_table_attack_decay_inc;
+    env->buff_size = sizeof(__leaf_table_exp_decay);
     
     env->loop = loop;
     
@@ -115,7 +115,7 @@
 {
     _tMempool* m = *mp;
     _tEnvelope* env = *envlp;
-    mpool_free(env, &m->pool);
+    mpool_free(env, m);
 }
 
 void     tEnvelope_setAttack(tEnvelope* const envlp, float attack)
@@ -258,9 +258,9 @@
 {
     _tADSR* adsr = *adsrenv = (_tADSR*) leaf_alloc(sizeof(_tADSR));
     
-    adsr->exp_buff = exp_decay;
-    adsr->inc_buff = attack_decay_inc;
-    adsr->buff_size = sizeof(exp_decay);
+    adsr->exp_buff = __leaf_table_exp_decay;
+    adsr->inc_buff = __leaf_table_attack_decay_inc;
+    adsr->buff_size = sizeof(__leaf_table_exp_decay);
     
     if (attack > 8192.0f)
         attack = 8192.0f;
@@ -323,11 +323,11 @@
 void    tADSR_initToPool    (tADSR* const adsrenv, float attack, float decay, float sustain, float release, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tADSR* adsr = *adsrenv = (_tADSR*) mpool_alloc(sizeof(_tADSR), &m->pool);
+    _tADSR* adsr = *adsrenv = (_tADSR*) mpool_alloc(sizeof(_tADSR), m);
     
-    adsr->exp_buff = exp_decay;
-    adsr->inc_buff = attack_decay_inc;
-    adsr->buff_size = sizeof(exp_decay);
+    adsr->exp_buff = __leaf_table_exp_decay;
+    adsr->inc_buff = __leaf_table_attack_decay_inc;
+    adsr->buff_size = sizeof(__leaf_table_exp_decay);
     
     if (attack > 8192.0f)
         attack = 8192.0f;
@@ -383,7 +383,7 @@
 {
     _tMempool* m = *mp;
     _tADSR* adsr = *adsrenv;
-    mpool_free(adsr, &m->pool);
+    mpool_free(adsr, m);
 }
 
 void     tADSR_setAttack(tADSR* const adsrenv, float attack)
@@ -614,7 +614,7 @@
 void    tRamp_initToPool    (tRamp* const r, float time, int samples_per_tick, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tRamp* ramp = *r = (_tRamp*) mpool_alloc(sizeof(_tRamp), &m->pool);
+    _tRamp* ramp = *r = (_tRamp*) mpool_alloc(sizeof(_tRamp), m);
     
     ramp->inv_sr_ms = 1.0f/(leaf.sampleRate*0.001f);
     ramp->minimum_time = ramp->inv_sr_ms * samples_per_tick;
@@ -639,7 +639,7 @@
     _tMempool* m = *mp;
     _tRamp* ramp = *r;
     
-    mpool_free(ramp, &m->pool);
+    mpool_free(ramp, m);
 }
 
 void     tRamp_setTime(tRamp* const ramp, float time)
@@ -723,7 +723,7 @@
 void    tExpSmooth_initToPool   (tExpSmooth* const expsmooth, float val, float factor, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tExpSmooth* smooth = *expsmooth = (_tExpSmooth*) mpool_alloc(sizeof(_tExpSmooth), &m->pool);
+    _tExpSmooth* smooth = *expsmooth = (_tExpSmooth*) mpool_alloc(sizeof(_tExpSmooth), m);
     
     smooth->curr=val;
     smooth->dest=val;
@@ -738,7 +738,7 @@
     _tMempool* m = *mp;
     _tExpSmooth* smooth = *expsmooth;
     
-    mpool_free(smooth, &m->pool);
+    mpool_free(smooth, m);
 }
 
 void     tExpSmooth_setFactor(tExpSmooth* const expsmooth, float factor)
@@ -776,5 +776,63 @@
 {
     _tExpSmooth* smooth = *expsmooth;
     return smooth->curr;
+}
+
+//tSlide is based on the max/msp slide~ object
+////
+
+void    tSlide_init          (tSlide* const sl, float upSlide, float downSlide)
+{
+	tSlide_initToPool    (sl, upSlide, downSlide, &leaf.mempool);
+}
+void    tSlide_free          (tSlide* const sl)
+{
+	tSlide_freeFromPool    (sl, &leaf.mempool);
+}
+void    tSlide_initToPool    (tSlide* const sl, float upSlide, float downSlide, tMempool* const mp)
+{
+    _tMempool* m = *mp;
+    _tSlide* s = *sl = (_tSlide*) mpool_alloc(sizeof(_tSlide), m);
+    s->prevIn = 0.0f;
+    s->currentOut = 0.0f;
+    s->prevOut = 0.0f;
+    if (upSlide < 1.0f)
+    {
+    	upSlide = 1.0f;
+    }
+
+    if (downSlide < 1.0f)
+    {
+    	downSlide = 1.0f;
+    }
+    s->invUpSlide = 1.0f / upSlide;
+    s->invDownSlide = 1.0f / downSlide;
+}
+
+void    tSlide_freeFromPool  (tSlide* const sl, tMempool* const mp)
+{
+	_tMempool* m = *mp;
+	    _tSlide* s = *sl;
+
+	    mpool_free(s, m);
+}
+
+float tSlide_tick(tSlide* const sl, float in)
+{
+	_tSlide* s = *sl;
+
+
+	if (in >= s->prevOut)
+	{
+		s->currentOut = s->prevOut + ((in - s->prevOut) * s->invUpSlide);
+	}
+	else
+	{
+		s->currentOut = s->prevOut + ((in - s->prevOut) * s->invDownSlide);
+	}
+	if (s->currentOut < VSF) s->currentOut = 0.0f;
+	s->prevIn = in;
+	s->prevOut = s->currentOut;
+	return s->currentOut;
 }
 
--- a/LEAF/Src/leaf-filters.c
+++ b/LEAF/Src/leaf-filters.c
@@ -43,7 +43,7 @@
 void    tAllpass_initToPool     (tAllpass* const ft, float initDelay, uint32_t maxDelay, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tAllpass* f = *ft = (_tAllpass*) mpool_alloc(sizeof(_tAllpass), &m->pool);
+    _tAllpass* f = *ft = (_tAllpass*) mpool_alloc(sizeof(_tAllpass), m);
     
     f->gain = 0.7f;
     
@@ -58,7 +58,7 @@
     _tAllpass* f = *ft;
     
     tLinearDelay_freeFromPool(&f->delay, mp);
-    mpool_free(f, &m->pool);
+    mpool_free(f, m);
 }
 
 void    tAllpass_setDelay(tAllpass* const ft, float delay)
@@ -112,7 +112,7 @@
 void    tOnePole_initToPool     (tOnePole* const ft, float freq, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tOnePole* f = *ft = (_tOnePole*) mpool_alloc(sizeof(_tOnePole), &m->pool);
+    _tOnePole* f = *ft = (_tOnePole*) mpool_alloc(sizeof(_tOnePole), m);
     
     f->gain = 1.0f;
     f->a0 = 1.0;
@@ -128,7 +128,7 @@
     _tMempool* m = *mp;
     _tOnePole* f = *ft;
     
-    mpool_free(f, &m->pool);
+    mpool_free(f, m);
 }
 
 void    tOnePole_setB0(tOnePole* const ft, float b0)
@@ -215,7 +215,7 @@
 void    tTwoPole_initToPool     (tTwoPole* const ft, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tTwoPole* f = *ft = (_tTwoPole*) mpool_alloc(sizeof(_tTwoPole), &m->pool);
+    _tTwoPole* f = *ft = (_tTwoPole*) mpool_alloc(sizeof(_tTwoPole), m);
     
     f->gain = 1.0f;
     f->a0 = 1.0;
@@ -230,7 +230,7 @@
     _tMempool* m = *mp;
     _tTwoPole* f = *ft;
     
-    mpool_free(f, &m->pool);
+    mpool_free(f, m);
 }
 
 float   tTwoPole_tick(tTwoPole* const ft, float input)
@@ -341,7 +341,7 @@
 void    tOneZero_initToPool     (tOneZero* const ft, float theZero, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tOneZero* f = *ft = (_tOneZero*) mpool_alloc(sizeof(_tOneZero), &m->pool);
+    _tOneZero* f = *ft = (_tOneZero*) mpool_alloc(sizeof(_tOneZero), m);
     
     f->gain = 1.0f;
     f->lastIn = 0.0f;
@@ -354,7 +354,7 @@
     _tMempool* m = *mp;
     _tOneZero* f = *ft;
     
-    mpool_free(f, &m->pool);
+    mpool_free(f, m);
 }
 
 float   tOneZero_tick(tOneZero* const ft, float input)
@@ -456,7 +456,7 @@
 void    tTwoZero_initToPool     (tTwoZero* const ft, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tTwoZero* f = *ft = (_tTwoZero*) mpool_alloc(sizeof(_tTwoZero), &m->pool);
+    _tTwoZero* f = *ft = (_tTwoZero*) mpool_alloc(sizeof(_tTwoZero), m);
     
     f->gain = 1.0f;
     f->lastIn[0] = 0.0f;
@@ -468,7 +468,7 @@
     _tMempool* m = *mp;
     _tTwoZero* f = *ft;
     
-    mpool_free(f, &m->pool);
+    mpool_free(f, m);
 }
 
 float   tTwoZero_tick(tTwoZero* const ft, float input)
@@ -564,7 +564,7 @@
 void    tPoleZero_initToPool        (tPoleZero* const pzf, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tPoleZero* f = *pzf = (_tPoleZero*) mpool_alloc(sizeof(_tPoleZero), &m->pool);
+    _tPoleZero* f = *pzf = (_tPoleZero*) mpool_alloc(sizeof(_tPoleZero), m);
     
     f->gain = 1.0f;
     f->b0 = 1.0;
@@ -579,7 +579,7 @@
     _tMempool* m = *mp;
     _tPoleZero* f = *pzf;
     
-    mpool_free(f, &m->pool);
+    mpool_free(f, m);
 }
 
 void    tPoleZero_setB0(tPoleZero* const pzf, float b0)
@@ -695,7 +695,7 @@
 void    tBiQuad_initToPool     (tBiQuad* const ft, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tBiQuad* f = *ft = (_tBiQuad*) mpool_alloc(sizeof(_tBiQuad), &m->pool);
+    _tBiQuad* f = *ft = (_tBiQuad*) mpool_alloc(sizeof(_tBiQuad), m);
     
     f->gain = 1.0f;
     
@@ -713,7 +713,7 @@
     _tMempool* m = *mp;
     _tBiQuad* f = *ft;
     
-    mpool_free(f, &m->pool);
+    mpool_free(f, m);
 }
 
 float   tBiQuad_tick(tBiQuad* const ft, float input)
@@ -867,7 +867,7 @@
 void    tSVF_initToPool     (tSVF* const svff, SVFType type, float freq, float Q, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tSVF* svf = *svff = (_tSVF*) mpool_alloc(sizeof(_tSVF), &m->pool);
+    _tSVF* svf = *svff = (_tSVF*) mpool_alloc(sizeof(_tSVF), m);
     
     svf->type = type;
     
@@ -886,7 +886,7 @@
     _tMempool* m = *mp;
     _tSVF* svf = *svff;
     
-    mpool_free(svf, &m->pool);
+    mpool_free(svf, m);
 }
 
 float   tSVF_tick(tSVF* const svff, float v0)
@@ -939,7 +939,7 @@
     svf->ic1eq = 0;
     svf->ic2eq = 0;
     
-    svf->g = filtertan[input];
+    svf->g = __leaf_table_filtertan[input];
     svf->k = 1.0f/Q;
     svf->a1 = 1.0f/(1.0f+svf->g*(svf->g+svf->k));
     svf->a2 = svf->g*svf->a1;
@@ -956,7 +956,7 @@
 void    tEfficientSVF_initToPool    (tEfficientSVF* const svff, SVFType type, uint16_t input, float Q, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tEfficientSVF* svf = *svff = (_tEfficientSVF*) mpool_alloc(sizeof(_tEfficientSVF), &m->pool);
+    _tEfficientSVF* svf = *svff = (_tEfficientSVF*) mpool_alloc(sizeof(_tEfficientSVF), m);
     
     svf->type = type;
     
@@ -963,7 +963,7 @@
     svf->ic1eq = 0;
     svf->ic2eq = 0;
     
-    svf->g = filtertan[input];
+    svf->g = __leaf_table_filtertan[input];
     svf->k = 1.0f/Q;
     svf->a1 = 1.0f/(1.0f+svf->g*(svf->g+svf->k));
     svf->a2 = svf->g*svf->a1;
@@ -975,7 +975,7 @@
     _tMempool* m = *mp;
     _tEfficientSVF* svf = *svff;
     
-    mpool_free(svf, &m->pool);
+    mpool_free(svf, m);
 }
 
 float   tEfficientSVF_tick(tEfficientSVF* const svff, float v0)
@@ -1002,7 +1002,7 @@
 {
     _tEfficientSVF* svf = *svff;
     
-    svf->g = filtertan[input];
+    svf->g = __leaf_table_filtertan[input];
     svf->a1 = 1.0f/(1.0f + svf->g * (svf->g + svf->k));
     svf->a2 = svf->g * svf->a1;
     svf->a3 = svf->g * svf->a2;
@@ -1040,7 +1040,7 @@
 void    tHighpass_initToPool    (tHighpass* const ft, float freq, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tHighpass* f = *ft = (_tHighpass*) mpool_calloc(sizeof(_tHighpass), &m->pool);
+    _tHighpass* f = *ft = (_tHighpass*) mpool_calloc(sizeof(_tHighpass), m);
     
     f->R = (1.0f - (freq * leaf.twoPiTimesInvSampleRate));
     f->ys = 0.0f;
@@ -1054,7 +1054,7 @@
     _tMempool* m = *mp;
     _tHighpass* f = *ft;
     
-    mpool_free(f, &m->pool);
+    mpool_free(f, m);
 }
 
 void     tHighpass_setFreq(tHighpass* const ft, float freq)
@@ -1121,7 +1121,7 @@
 void    tButterworth_initToPool     (tButterworth* const ft, int N, float f1, float f2, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tButterworth* f = *ft = (_tButterworth*) mpool_alloc(sizeof(_tButterworth), &m->pool);
+    _tButterworth* f = *ft = (_tButterworth*) mpool_alloc(sizeof(_tButterworth), m);
     
     f->f1 = f1;
     f->f2 = f2;
@@ -1149,7 +1149,7 @@
         tSVF_freeFromPool(&f->high[i], mp);
     }
     
-    mpool_free(f, &m->pool);
+    mpool_free(f, m);
 }
 
 float tButterworth_tick(tButterworth* const ft, float samp)
@@ -1214,11 +1214,11 @@
 void    tFIR_initToPool     (tFIR* const firf, float* coeffs, int numTaps, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tFIR* fir = *firf = (_tFIR*) mpool_alloc(sizeof(_tFIR), &m->pool);
+    _tFIR* fir = *firf = (_tFIR*) mpool_alloc(sizeof(_tFIR), m);
     
     fir->numTaps = numTaps;
     fir->coeff = coeffs;
-    fir->past = (float*) mpool_alloc(sizeof(float) * fir->numTaps, &m->pool);
+    fir->past = (float*) mpool_alloc(sizeof(float) * fir->numTaps, m);
     for (int i = 0; i < fir->numTaps; ++i) fir->past[i] = 0.0f;
 }
 
@@ -1227,8 +1227,8 @@
     _tMempool* m = *mp;
     _tFIR* fir = *firf;
     
-    mpool_free(fir->past, &m->pool);
-    mpool_free(fir, &m->pool);
+    mpool_free(fir->past, m);
+    mpool_free(fir, m);
 }
 
 float	tFIR_tick(tFIR* const firf, float input)
@@ -1241,3 +1241,86 @@
 	for (int i = fir->numTaps-1; i > 0; --i) fir->past[i] = fir->past[i-1];
 	return y;
 }
+
+//---------------------------------------------
+////
+/// Median filter implemented based on James McCartney's median filter in Supercollider,
+/// translated from a Gen~ port of the Supercollider code that I believe was made by Rodrigo Costanzo and which I got from PA Tremblay - JS
+
+
+void    tMedianFilter_init           (tMedianFilter* const f, int size)
+{
+	tMedianFilter_initToPool(f, size, &leaf.mempool);
+}
+void    tMedianFilter_free           (tMedianFilter* const f)
+{
+	tMedianFilter_freeFromPool(f, &leaf.mempool);
+}
+void    tMedianFilter_initToPool     (tMedianFilter* const mf, int size, tMempool* const mp)
+{
+    _tMempool* m = *mp;
+    _tMedianFilter* f = *mf = (_tMedianFilter*) mpool_alloc(sizeof(_tMedianFilter), m);
+
+    f->size = size;
+    f->middlePosition = size / 2;
+	f->last = size - 1;
+	f->pos = -1;
+    f->val = (float*) mpool_alloc(sizeof(float) * size, m);
+    f->age = (int*) mpool_alloc(sizeof(int) * size, m);
+    for (int i = 0; i < f->size; ++i)
+	{
+    	f->val[i] = 0.0f;
+    	f->age[i] = i;
+	}
+
+}
+void    tMedianFilter_freeFromPool   (tMedianFilter* const mf, tMempool* const mp)
+{
+    _tMempool* m = *mp;
+    _tMedianFilter* f = *mf;
+
+    mpool_free(f->val, m);
+    mpool_free(f->age, m);
+    mpool_free(f, m);
+}
+
+float   tMedianFilter_tick           (tMedianFilter* const mf, float input)
+{
+	_tMedianFilter* f = *mf;
+
+	for(int i=0; i<f->size; i++) {
+		int thisAge = f->age[i];
+		if(thisAge == f->last) {
+			f->pos = i;
+		}
+		else {
+			thisAge++;
+			f->age[i] = thisAge;
+		}
+	}
+
+	while( f->pos!=0 ) {
+		float test = f->val[f->pos-1];
+		if(input < test) {
+			f->val[f->pos]=test;
+			f->age[f->pos]=f->age[f->pos-1];
+			f->pos -= 1;
+		} else {break;}
+	}
+
+	while(f->pos != f->last) {
+		float test = f->val[f->pos+1];
+		if( input > test) {
+			f->val[f->pos] = test;
+			f->age[f->pos] = f->age[f->pos+1];
+			f->pos += 1;
+		} else {break;}
+	}
+
+	f->val[f->pos] = input;
+	f->age[f->pos] = 0;
+
+	return  f->val[f->middlePosition];
+}
+
+
--- a/LEAF/Src/leaf-instruments.c
+++ b/LEAF/Src/leaf-instruments.c
@@ -66,7 +66,7 @@
 void        t808Cowbell_initToPool      (t808Cowbell* const cowbellInst, int useStick, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _t808Cowbell* cowbell = *cowbellInst = (_t808Cowbell*) mpool_alloc(sizeof(_t808Cowbell), &m->pool);
+    _t808Cowbell* cowbell = *cowbellInst = (_t808Cowbell*) mpool_alloc(sizeof(_t808Cowbell), m);
     
     tSquare_initToPool(&cowbell->p[0], mp);
     tSquare_setFreq(&cowbell->p[0], 540.0f);
@@ -107,7 +107,7 @@
     tHighpass_freeFromPool(&cowbell->highpass, mp);
     tNoise_freeFromPool(&cowbell->stick, mp);
     tEnvelope_freeFromPool(&cowbell->envStick, mp);
-    mpool_free(cowbell, &m->pool);
+    mpool_free(cowbell, m);
 }
 
 void t808Cowbell_on(t808Cowbell* const cowbellInst, float vel)
@@ -242,7 +242,7 @@
 void    t808Hihat_initToPool  (t808Hihat* const hihatInst, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _t808Hihat* hihat = *hihatInst = (_t808Hihat*) mpool_alloc(sizeof(_t808Hihat), &m->pool);
+    _t808Hihat* hihat = *hihatInst = (_t808Hihat*) mpool_alloc(sizeof(_t808Hihat), m);
     
     for (int i = 0; i < 6; i++)
     {
@@ -294,7 +294,7 @@
     
     tHighpass_freeFromPool(&hihat->highpass, mp);
     
-    mpool_free(hihat, &m->pool);
+    mpool_free(hihat, m);
 }
 
 void t808Hihat_on(t808Hihat* const hihatInst, float vel)
@@ -454,7 +454,7 @@
 void    t808Snare_initToPool    (t808Snare* const snareInst, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _t808Snare* snare = *snareInst = (_t808Snare*) mpool_alloc(sizeof(_t808Snare), &m->pool);
+    _t808Snare* snare = *snareInst = (_t808Snare*) mpool_alloc(sizeof(_t808Snare), m);
     
     float ratio[2] = {1.0, 1.5};
     for (int i = 0; i < 2; i++)
@@ -499,7 +499,7 @@
     tEnvelope_freeFromPool(&snare->noiseEnvGain, mp);
     tEnvelope_freeFromPool(&snare->noiseEnvFilter, mp);
     
-    mpool_free(snare, &m->pool);
+    mpool_free(snare, m);
 }
 
 void t808Snare_on(t808Snare* const snareInst, float vel)
@@ -629,7 +629,7 @@
 void    t808Kick_initToPool (t808Kick* const kickInst, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _t808Kick* kick = *kickInst = (_t808Kick*) mpool_alloc(sizeof(_t808Kick), &m->pool);
+    _t808Kick* kick = *kickInst = (_t808Kick*) mpool_alloc(sizeof(_t808Kick), m);
     
     tCycle_initToPool(&kick->tone, mp);
     kick->toneInitialFreq = 40.0f;
@@ -658,7 +658,7 @@
     tNoise_freeFromPool(&kick->noiseOsc, mp);
     tEnvelope_freeFromPool(&kick->noiseEnvGain, mp);
     
-    mpool_free(kick, &m->pool);
+    mpool_free(kick, m);
 }
 
 float       t808Kick_tick                  (t808Kick* const kickInst)
--- a/LEAF/Src/leaf-math.c
+++ b/LEAF/Src/leaf-math.c
@@ -18,11 +18,28 @@
 
 #endif
 
-// The C-embedded Audio Library.
-#define TWO_TO_16 65536.f
 
 #define EXPONENTIAL_TABLE_SIZE 65536
 
+#define log10f_fast(x)  (log2f_approx(x)*0.3010299956639812f)
+
+// This is a fast approximation to log2() found on http://openaudio.blogspot.com/2017/02/faster-log10-and-pow.html credited to this post https://community.arm.com/developer/tools-software/tools/f/armds-forum/4292/cmsis-dsp-new-functionality-proposal/22621#22621
+// Y = C[0]*F*F*F + C[1]*F*F + C[2]*F + C[3] + E;
+float log2f_approx(float X) {
+  float Y, F;
+  int E;
+  F = frexpf(fabsf(X), &E);
+  Y = 1.23149591368684f;
+  Y *= F;
+  Y += -4.11852516267426f;
+  Y *= F;
+  Y += 6.02197014179219f;
+  Y *= F;
+  Y += -3.13396450166353f;
+  Y += E;
+  return(Y);
+}
+
 float interpolate3max(float *buf, const int peakindex)
 {
     float a = buf[peakindex-1];
@@ -190,11 +207,12 @@
     return roundf(input * scale) / scale;
 }
 
-union unholy_t unholy;
 
+
 float LEAF_bitwise_xor(float input, uint32_t op)
 {
-    unholy.f = input;
+	union unholy_t unholy;
+	unholy.f = input;
     unholy.i = (unholy.i ^ op);
     
     return unholy.f;
@@ -444,8 +462,8 @@
     if (f <= 0) return (0);
     else
     {
-        float val = 100 + 10.f/LOGTEN * logf(f);
-        return (val < 0 ? 0 : val);
+        float val = 100.0f + 10.0f/LOGTEN * logf(f);
+        return (val < 0.0f ? 0.0f : val);
     }
 }
 
@@ -482,4 +500,18 @@
     }
     return (expf((LOGTEN * 0.05f) * (f-100.0f)));
 }
+
+
+float atodb(float a)
+{
+	return 20.0f*log10f(a);
+}
+
+float dbtoa(float db)
+{
+	return powf(10.0f, db * 0.05f);
+	//return expf(0.115129254649702f * db); //faster version from http://openaudio.blogspot.com/2017/02/faster-log10-and-pow.html
+}
+
+
 
--- a/LEAF/Src/leaf-mempool.c
+++ b/LEAF/Src/leaf-mempool.c
@@ -48,11 +48,6 @@
 
 #endif
 
-_tMempool leaf_pool;
-tMempool leaf_mempool;
-size_t header_size;
-
-
 /**
  * private function
  */
@@ -63,33 +58,33 @@
 /**
  * create memory pool
  */
-void mpool_create (char* memory, size_t size, mpool_t* pool)
+void mpool_create (char* memory, size_t size, _tMempool* pool)
 {
-    header_size = mpool_align(sizeof(mpool_node_t));
+    leaf.header_size = mpool_align(sizeof(mpool_node_t));
     
     pool->mpool = (void*)memory;
     pool->usize  = 0;
     pool->msize  = size;
     
-    pool->head = create_node(pool->mpool, NULL, NULL, pool->msize-header_size);
+    pool->head = create_node(pool->mpool, NULL, NULL, pool->msize-leaf.header_size);
     
     for (int i = 0; i < pool->head->size; i++)
     {
-        memory[i+header_size]=0;
+        memory[i+leaf.header_size]=0;
     }
 }
 
 void leaf_pool_init(char* memory, size_t size)
 {
-    mpool_create(memory, size, &leaf_pool.pool);
+    mpool_create(memory, size, &leaf._mempool);
     
-    leaf_mempool = &leaf_pool;
+    leaf.mempool = &leaf._mempool;
 }
 
 /**
  * allocate memory from memory pool
  */
-void* mpool_alloc(size_t asize, mpool_t* pool)
+void* mpool_alloc(size_t asize, _tMempool* pool)
 {
     // If the head is NULL, the mempool is full
     if (pool->head == NULL) return NULL;
@@ -112,14 +107,14 @@
     mpool_node_t* new_node;
     size_t leftover = node_to_alloc->size - size_to_alloc;
     node_to_alloc->size = size_to_alloc;
-    if (leftover > header_size)
+    if (leftover > leaf.header_size)
     {
         long offset = (char*) node_to_alloc - (char*) pool->mpool;
-        offset += header_size + node_to_alloc->size;
+        offset += leaf.header_size + node_to_alloc->size;
         new_node = create_node(&pool->mpool[offset],
                                node_to_alloc->next,
                                node_to_alloc->prev,
-                               leftover - header_size);
+                               leftover - leaf.header_size);
     }
     else
     {
@@ -139,7 +134,7 @@
     // Remove the allocated node from the free list
     delink_node(node_to_alloc);
     
-    pool->usize += header_size + node_to_alloc->size;
+    pool->usize += leaf.header_size + node_to_alloc->size;
     
     if (leaf.clearOnAllocation > 0)
     {
@@ -155,7 +150,7 @@
 /**
  * allocate memory from memory pool and also clear that memory to be blank
  */
-void* mpool_calloc(size_t asize, mpool_t* pool)
+void* mpool_calloc(size_t asize, _tMempool* pool)
 {
     // If the head is NULL, the mempool is full
     if (pool->head == NULL) return NULL;
@@ -178,14 +173,14 @@
     mpool_node_t* new_node;
     size_t leftover = node_to_alloc->size - size_to_alloc;
     node_to_alloc->size = size_to_alloc;
-    if (leftover > header_size)
+    if (leftover > leaf.header_size)
     {
         long offset = (char*) node_to_alloc - (char*) pool->mpool;
-        offset += header_size + node_to_alloc->size;
+        offset += leaf.header_size + node_to_alloc->size;
         new_node = create_node(&pool->mpool[offset],
                                node_to_alloc->next,
                                node_to_alloc->prev,
-                               leftover - header_size);
+                               leftover - leaf.header_size);
     }
     else
     {
@@ -205,7 +200,7 @@
     // Remove the allocated node from the free list
     delink_node(node_to_alloc);
     
-    pool->usize += header_size + node_to_alloc->size;
+    pool->usize += leaf.header_size + node_to_alloc->size;
     // Format the new pool
     char* new_pool = (char*)node_to_alloc->pool;
     for (int i = 0; i < node_to_alloc->size; i++) new_pool[i] = 0;
@@ -216,7 +211,7 @@
 void* leaf_alloc(size_t size)
 {
     //printf("alloc %i\n", size);
-    void* block = mpool_alloc(size, &leaf_pool.pool);
+    void* block = mpool_alloc(size, &leaf._mempool);
     
     if (block == NULL) leaf_mempool_overrun();
     
@@ -226,7 +221,7 @@
 void* leaf_calloc(size_t size)
 {
     //printf("alloc %i\n", size);
-    void* block = mpool_calloc(size, &leaf_pool.pool);
+    void* block = mpool_calloc(size, &leaf._mempool);
     
     if (block == NULL) leaf_mempool_overrun();
     
@@ -234,13 +229,13 @@
     return block;
 }
 
-void mpool_free(void* ptr, mpool_t* pool)
+void mpool_free(void* ptr, _tMempool* pool)
 {
     //if (ptr < pool->mpool || ptr >= pool->mpool + pool->msize)
     // Get the node at the freed space
-    mpool_node_t* freed_node = (mpool_node_t*) (ptr - header_size);
+    mpool_node_t* freed_node = (mpool_node_t*) (ptr - leaf.header_size);
     
-    pool->usize -= header_size + freed_node->size;
+    pool->usize -= leaf.header_size + freed_node->size;
     
     // Check each node in the list against the newly freed one to see if it's adjacent in memory
     mpool_node_t* other_node = pool->head;
@@ -249,10 +244,10 @@
     {
         next_node = other_node->next;
         // Check if a node is directly after the freed node
-        if ((long) freed_node + (header_size + freed_node->size) == (long) other_node)
+        if ((long) freed_node + (leaf.header_size + freed_node->size) == (long) other_node)
         {
             // Increase freed node's size
-            freed_node->size += header_size + other_node->size;
+            freed_node->size += leaf.header_size + other_node->size;
             // If we are merging with the head, move the head forward
             if (other_node == pool->head) pool->head = pool->head->next;
             // Delink the merged node
@@ -260,10 +255,10 @@
         }
         
         // Check if a node is directly before the freed node
-        else if ((long) other_node + (header_size + other_node->size) == (long) freed_node)
+        else if ((long) other_node + (leaf.header_size + other_node->size) == (long) freed_node)
         {
             // Increase the merging node's size
-            other_node->size += header_size + freed_node->size;
+            other_node->size += leaf.header_size + freed_node->size;
             
             if (other_node != pool->head)
             {
@@ -298,15 +293,15 @@
 
 void leaf_free(void* ptr)
 {
-    mpool_free(ptr, &leaf_pool.pool);
+    mpool_free(ptr, &leaf._mempool);
 }
 
-size_t mpool_get_size(mpool_t* pool)
+size_t mpool_get_size(_tMempool* pool)
 {
     return pool->msize;
 }
 
-size_t mpool_get_used(mpool_t* pool)
+size_t mpool_get_used(_tMempool* pool)
 {
     return pool->usize;
 }
@@ -313,17 +308,17 @@
 
 size_t leaf_pool_get_size(void)
 {
-    return mpool_get_size(&leaf_pool.pool);
+    return mpool_get_size(&leaf._mempool);
 }
 
 size_t leaf_pool_get_used(void)
 {
-    return mpool_get_used(&leaf_pool.pool);
+    return mpool_get_used(&leaf._mempool);
 }
 
 void* leaf_pool_get_pool(void)
 {
-    float* buff = (float*)leaf_pool.pool.mpool;
+    float* buff = (float*)leaf._mempool.mpool;
     
     return buff;
 }
@@ -338,7 +333,7 @@
 static inline mpool_node_t* create_node(void* block_location, mpool_node_t* next, mpool_node_t* prev, size_t size)
 {
     mpool_node_t* node = (mpool_node_t*)block_location;
-    node->pool = block_location + header_size;
+    node->pool = block_location + leaf.header_size;
     node->next = next;
     node->prev = prev;
     node->size = size;
@@ -372,20 +367,20 @@
 
 void tMempool_init(tMempool* const mp, char* memory, size_t size)
 {
-    tMempool_initToPool(mp, memory, size, &leaf_mempool);
+    tMempool_initToPool(mp, memory, size, &leaf.mempool);
 }
 
 void tMempool_free(tMempool* const mp)
 {
-    tMempool_freeFromPool(mp, &leaf_mempool);
+    tMempool_freeFromPool(mp, &leaf.mempool);
 }
 
 void    tMempool_initToPool     (tMempool* const mp, char* memory, size_t size, tMempool* const mem)
 {
     _tMempool* mm = *mem;
-    _tMempool* m = *mp = (_tMempool*) mpool_alloc(sizeof(_tMempool), &mm->pool);
+    _tMempool* m = *mp = (_tMempool*) mpool_alloc(sizeof(_tMempool), mm);
     
-    mpool_create (memory, size, &m->pool);
+    mpool_create (memory, size, m);
 }
 
 void    tMempool_freeFromPool   (tMempool* const mp, tMempool* const mem)
@@ -393,5 +388,5 @@
     _tMempool* mm = *mem;
     _tMempool* m = *mp;
     
-    mpool_free(m, &mm->pool);
+    mpool_free(m, mm);
 }
--- a/LEAF/Src/leaf-midi.c
+++ b/LEAF/Src/leaf-midi.c
@@ -42,7 +42,7 @@
 void    tStack_initToPool           (tStack* const stack, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tStack* ns = *stack = (_tStack*) mpool_alloc(sizeof(_tStack), &m->pool);
+    _tStack* ns = *stack = (_tStack*) mpool_alloc(sizeof(_tStack), m);
     
     ns->ordered = OFALSE;
     ns->size = 0;
@@ -57,7 +57,7 @@
     _tMempool* m = *mp;
     _tStack* ns = *stack;
     
-    mpool_free(ns, &m->pool);
+    mpool_free(ns, m);
 }
 
 // If stack contains note, returns index. Else returns -1;
@@ -339,7 +339,7 @@
 void    tPoly_initToPool            (tPoly* const polyh, int maxNumVoices, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tPoly* poly = *polyh = (_tPoly*) mpool_alloc(sizeof(_tPoly), &m->pool);
+    _tPoly* poly = *polyh = (_tPoly*) mpool_alloc(sizeof(_tPoly), m);
     
     poly->numVoices = maxNumVoices;
     poly->maxNumVoices = maxNumVoices;
@@ -359,14 +359,14 @@
     
     poly->glideTime = 5.0f;
     
-    poly->ramps = (tRamp*) mpool_alloc(sizeof(tRamp) * poly->maxNumVoices, &m->pool);
-    poly->rampVals = (float*) mpool_alloc(sizeof(float) * poly->maxNumVoices, &m->pool);
-    poly->firstReceived = (oBool*) mpool_alloc(sizeof(oBool) * poly->maxNumVoices, &m->pool);
-    poly->voices = (int**) mpool_alloc(sizeof(int*) * poly->maxNumVoices, &m->pool);
+    poly->ramps = (tRamp*) mpool_alloc(sizeof(tRamp) * poly->maxNumVoices, m);
+    poly->rampVals = (float*) mpool_alloc(sizeof(float) * poly->maxNumVoices, m);
+    poly->firstReceived = (oBool*) mpool_alloc(sizeof(oBool) * poly->maxNumVoices, m);
+    poly->voices = (int**) mpool_alloc(sizeof(int*) * poly->maxNumVoices, m);
     
     for (int i = 0; i < poly->maxNumVoices; ++i)
     {
-        poly->voices[i] = (int*) mpool_alloc(sizeof(int) * 2, &m->pool);
+        poly->voices[i] = (int*) mpool_alloc(sizeof(int) * 2, m);
         poly->voices[i][0] = -1;
         poly->firstReceived[i] = OFALSE;
         
@@ -390,18 +390,18 @@
     for (int i = 0; i < poly->maxNumVoices; i++)
     {
         tRamp_freeFromPool(&poly->ramps[i], mp);
-        mpool_free(poly->voices[i], &m->pool);
+        mpool_free(poly->voices[i], m);
     }
     tRamp_freeFromPool(&poly->pitchBendRamp, mp);
     tStack_freeFromPool(&poly->stack, mp);
     tStack_freeFromPool(&poly->orderStack, mp);
     
-    mpool_free(poly->voices, &m->pool);
-    mpool_free(poly->ramps, &m->pool);
-    mpool_free(poly->rampVals, &m->pool);
-    mpool_free(poly->firstReceived, &m->pool);
+    mpool_free(poly->voices, m);
+    mpool_free(poly->ramps, m);
+    mpool_free(poly->rampVals, m);
+    mpool_free(poly->firstReceived, m);
     
-    mpool_free(poly, &m->pool);
+    mpool_free(poly, m);
 }
 
 void tPoly_tickPitch(tPoly* polyh)
--- a/LEAF/Src/leaf-oscillators.c
+++ b/LEAF/Src/leaf-oscillators.c
@@ -6,13 +6,11 @@
 
 #if _WIN32 || _WIN64
 
-#include "..\Inc\leaf-tables.h"
 #include "..\Inc\leaf-oscillators.h"
 #include "..\leaf.h"
 
 #else
 
-#include "../Inc/leaf-tables.h"
 #include "../Inc/leaf-oscillators.h"
 #include "../leaf.h"
 
@@ -21,24 +19,18 @@
 // Cycle
 void    tCycle_init(tCycle* const cy)
 {
-    _tCycle* c = *cy = (_tCycle*) leaf_alloc(sizeof(_tCycle));
-    
-    c->inc      =  0.0f;
-    c->phase    =  0.0f;
-
+    tCycle_initToPool(cy, &leaf.mempool);
 }
 
 void    tCycle_free(tCycle* const cy)
 {
-    _tCycle* c = *cy;
-    
-    leaf_free(c);
+    tCycle_freeFromPool(cy, &leaf.mempool);
 }
 
 void    tCycle_initToPool   (tCycle* const cy, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tCycle* c = *cy = (_tCycle*) mpool_alloc(sizeof(_tCycle), &m->pool);
+    _tCycle* c = *cy = (_tCycle*) mpool_alloc(sizeof(_tCycle), m);
     
     c->inc      =  0.0f;
     c->phase    =  0.0f;
@@ -50,17 +42,18 @@
     _tMempool* m = *mp;
     _tCycle* c = *cy;
     
-    mpool_free(c, &m->pool);
+    mpool_free(c, m);
 }
 
-int     tCycle_setFreq(tCycle* const cy, float freq)
+void     tCycle_setFreq(tCycle* const cy, float freq)
 {
     _tCycle* c = *cy;
     
-    c->freq = freq;
+    if (freq < 0.0f) c->freq = 0.0f;
+    else if (freq > 20480.0f) c->freq = 20480.0f;
+    else c->freq  = freq;
+
     c->inc = freq * leaf.invSampleRate;
-    
-    return 0;
 }
 
 //need to check bounds and wrap table properly to allow through-zero FM
@@ -76,7 +69,7 @@
     // Phasor increment
     c->phase += c->inc;
     while (c->phase >= 1.0f) c->phase -= 1.0f;
-    while (c->phase <= 0.0f) c->phase += 1.0f;
+    while (c->phase < 0.0f) c->phase += 1.0f;
 
     // Wavetable synthesis
 
@@ -83,9 +76,9 @@
 	temp = SINE_TABLE_SIZE * c->phase;
 	intPart = (int)temp;
 	fracPart = temp - (float)intPart;
-	samp0 = sinewave[intPart];
+	samp0 = __leaf_table_sinewave[intPart];
 	if (++intPart >= SINE_TABLE_SIZE) intPart = 0;
-	samp1 = sinewave[intPart];
+	samp1 = __leaf_table_sinewave[intPart];
 
     return (samp0 + (samp1 - samp0) * fracPart);
 
@@ -102,26 +95,22 @@
 /* Triangle */
 void   tTriangle_init(tTriangle* const cy)
 {
-    _tTriangle* c = *cy = (_tTriangle*) leaf_alloc(sizeof(_tTriangle));
-    
-    c->inc      =  0.0f;
-    c->phase    =  0.0f;
+    tTriangle_initToPool(cy, &leaf.mempool);
 }
 
 void   tTriangle_free(tTriangle* const cy)
 {
-    _tTriangle* c = *cy;
-    
-    leaf_free(c);
+    tTriangle_freeFromPool(cy, &leaf.mempool);
 }
 
 void    tTriangle_initToPool    (tTriangle* const cy, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tTriangle* c = *cy = (_tTriangle*) mpool_alloc(sizeof(_tTriangle), &m->pool);
+    _tTriangle* c = *cy = (_tTriangle*) mpool_alloc(sizeof(_tTriangle), m);
     
     c->inc      =  0.0f;
     c->phase    =  0.0f;
+    tTriangle_setFreq(cy, 220);
 }
 
 void    tTriangle_freeFromPool  (tTriangle* const cy, tMempool* const mp)
@@ -129,19 +118,25 @@
     _tMempool* m = *mp;
     _tTriangle* c = *cy;
     
-    mpool_free(c, &m->pool);
+    mpool_free(c, m);
 }
 
-int tTriangle_setFreq(tTriangle* const cy, float freq)
+void tTriangle_setFreq(tTriangle* const cy, float freq)
 {
     _tTriangle* c = *cy;
     
-    if (freq < 0.0f) freq = 0.0f;
+    if (freq < 0.0f) c->freq = 0.0f;
+    else if (freq > 20480.0f) c->freq = 20480.0f;
+    else c->freq  = freq;
     
-    c->freq = freq;
-    c->inc = freq * leaf.invSampleRate;
+    c->inc = c->freq * leaf.invSampleRate;
     
-    return 0;
+    c->w = c->freq * INV_20;
+    for (c->oct = 0; c->w > 2.0f; c->oct++)
+    {
+        c->w = 0.5f * c->w;
+    }
+    c->w = 2.0f - c->w;
 }
 
 
@@ -152,73 +147,16 @@
     // Phasor increment
     c->phase += c->inc;
     while (c->phase >= 1.0f) c->phase -= 1.0f;
+    while (c->phase < 0.0f) c->phase += 1.0f;
     
     float out = 0.0f;
-    float w;
     
     int idx = (int)(c->phase * TRI_TABLE_SIZE);
     
     // Wavetable synthesis
+    out = __leaf_table_triangle[c->oct+1][idx] +
+         (__leaf_table_triangle[c->oct][idx] - __leaf_table_triangle[c->oct+1][idx]) * c->w;
     
-    if (c->freq <= 20.0f)
-    {
-        out = triangle[T20][idx];
-    }
-    else if (c->freq <= 40.0f)
-    {
-        w = ((40.0f - c->freq) * INV_20);
-        out = (triangle[T20][idx] * w) + (triangle[T40][idx] * (1.0f - w));
-    }
-    else if (c->freq <= 80.0f)
-    {
-        w = ((80.0f - c->freq) * INV_40);
-        out = (triangle[T40][idx] * w) + (triangle[T80][idx] * (1.0f - w));
-    }
-    else if (c->freq <= 160.0f)
-    {
-        w = ((160.0f - c->freq) * INV_80);
-        out = (triangle[T80][idx] * w) + (triangle[T160][idx] * (1.0f - w));
-    }
-    else if (c->freq <= 320.0f)
-    {
-        w = ((320.0f - c->freq) * INV_160);
-        out = (triangle[T160][idx] * w) + (triangle[T320][idx] * (1.0f - w));
-    }
-    else if (c->freq <= 640.0f)
-    {
-        w = ((640.0f - c->freq) * INV_320);
-        out = (triangle[T320][idx] * w) + (triangle[T640][idx] * (1.0f - w));
-    }
-    else if (c->freq <= 1280.0f)
-    {
-        w = ((1280.0f - c->freq) * INV_640);
-        out = (triangle[T640][idx] * w) + (triangle[T1280][idx] * (1.0f - w));
-    }
-    else if (c->freq <= 2560.0f)
-    {
-        w = ((2560.0f - c->freq) * INV_1280);
-        out = (triangle[T1280][idx] * w) + (triangle[T2560][idx] * (1.0f - w));
-    }
-    else if (c->freq <= 5120.0f)
-    {
-        w = ((5120.0f - c->freq) * INV_2560);
-        out = (triangle[T2560][idx] * w) + (triangle[T5120][idx] * (1.0f - w));
-    }
-    else if (c->freq <= 10240.0f)
-    {
-        w = ((10240.0f - c->freq) * INV_5120);
-        out = (triangle[T5120][idx] * w) + (triangle[T10240][idx] * (1.0f - w));
-    }
-    else if (c->freq <= 20480.0f)
-    {
-        w = ((20480.0f - c->freq) * INV_10240);
-        out = (triangle[T10240][idx] * w) + (triangle[T20480][idx] * (1.0f - w));
-    }
-    else
-    {
-        out = triangle[T20480][idx];
-    }
-    
     return out;
 }
 
@@ -233,26 +171,22 @@
 /* Square */
 void   tSquare_init(tSquare* const cy)
 {
-    _tSquare* c = *cy = (_tSquare*) leaf_alloc(sizeof(_tSquare));
-    
-    c->inc      =  0.0f;
-    c->phase    =  0.0f;
+    tSquare_initToPool(cy, &leaf.mempool);
 }
 
 void   tSquare_free(tSquare* const cy)
 {
-    _tSquare* c = *cy;
-    
-    leaf_free(c);
+    tSquare_freeFromPool(cy, &leaf.mempool);
 }
 
 void    tSquare_initToPool  (tSquare* const cy, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tSquare* c = *cy = (_tSquare*) mpool_alloc(sizeof(_tSquare), &m->pool);
+    _tSquare* c = *cy = (_tSquare*) mpool_alloc(sizeof(_tSquare), m);
     
     c->inc      =  0.0f;
     c->phase    =  0.0f;
+    tSquare_setFreq(cy, 220);
 }
 
 void    tSquare_freeFromPool(tSquare* const cy, tMempool* const mp)
@@ -260,19 +194,25 @@
     _tMempool* m = *mp;
     _tSquare* c = *cy;
     
-    mpool_free(c, &m->pool);
+    mpool_free(c, m);
 }
 
-int     tSquare_setFreq(tSquare* const cy, float freq)
+void    tSquare_setFreq(tSquare* const cy, float freq)
 {
     _tSquare* c = *cy;
     
-    if (freq < 0.0f) freq = 0.0f;
+    if (freq < 0.0f) c->freq = 0.0f;
+    else if (freq > 20480.0f) c->freq = 20480.0f;
+    else c->freq  = freq;
     
-    c->freq = freq;
-    c->inc = freq * leaf.invSampleRate;
+    c->inc = c->freq * leaf.invSampleRate;
     
-    return 0;
+    c->w = c->freq * INV_20;
+    for (c->oct = 0; c->w > 2.0f; c->oct++)
+    {
+        c->w = 0.5f * c->w;
+    }
+    c->w = 2.0f - c->w;
 }
 
 float   tSquare_tick(tSquare* const cy)
@@ -282,72 +222,16 @@
     // Phasor increment
     c->phase += c->inc;
     while (c->phase >= 1.0f) c->phase -= 1.0f;
+    while (c->phase < 0.0f) c->phase += 1.0f;
     
     float out = 0.0f;
-    float w = 0.0f;
-    int idx = (int)(c->phase * TRI_TABLE_SIZE);
     
+    int idx = (int)(c->phase * SQR_TABLE_SIZE);
+    
     // Wavetable synthesis
+    out = __leaf_table_squarewave[c->oct+1][idx] +
+         (__leaf_table_squarewave[c->oct][idx] - __leaf_table_squarewave[c->oct+1][idx]) * c->w;
     
-    if (c->freq <= 20.0f)
-    {
-        out = squarewave[T20][idx];
-    }
-    else if (c->freq <= 40.0f)
-    {
-        w = ((40.0f - c->freq) * INV_20);
-        out = (squarewave[T20][idx] * w) + (squarewave[T40][idx] * (1.0f - w));
-    }
-    else if (c->freq <= 80.0f)
-    {
-        w = ((80.0f - c->freq) * INV_40);
-        out = (squarewave[T40][idx] * w) + (squarewave[T80][idx] * (1.0f - w));
-    }
-    else if (c->freq <= 160.0f)
-    {
-        w = ((160.0f - c->freq) * INV_80);
-        out = (squarewave[T80][idx] * w) + (squarewave[T160][idx] * (1.0f - w));
-    }
-    else if (c->freq <= 320.0f)
-    {
-        w = ((320.0f - c->freq) * INV_160);
-        out = (squarewave[T160][idx] * w) + (squarewave[T320][idx] * (1.0f - w));
-    }
-    else if (c->freq <= 640.0f)
-    {
-        w = ((640.0f - c->freq) * INV_320);
-        out = (squarewave[T320][idx] * w) + (squarewave[T640][idx] * (1.0f - w));
-    }
-    else if (c->freq <= 1280.0f)
-    {
-        w = ((1280.0f - c->freq) * INV_640);
-        out = (squarewave[T640][idx] * w) + (squarewave[T1280][idx] * (1.0f - w));
-    }
-    else if (c->freq <= 2560.0f)
-    {
-        w = ((2560.0f - c->freq) * INV_1280);
-        out = (squarewave[T1280][idx] * w) + (squarewave[T2560][idx] * (1.0f - w));
-    }
-    else if (c->freq <= 5120.0f)
-    {
-        w = ((5120.0f - c->freq) * INV_2560);
-        out = (squarewave[T2560][idx] * w) + (squarewave[T5120][idx] * (1.0f - w));
-    }
-    else if (c->freq <= 10240.0f)
-    {
-        w = ((10240.0f - c->freq) * INV_5120);
-        out = (squarewave[T5120][idx] * w) + (squarewave[T10240][idx] * (1.0f - w));
-    }
-    else if (c->freq <= 20480.0f)
-    {
-        w = ((20480.0f - c->freq) * INV_10240);
-        out = (squarewave[T10240][idx] * w) + (squarewave[T20480][idx] * (1.0f - w));
-    }
-    else
-    {
-        out = squarewave[T20480][idx];
-    }
-    
     return out;
 }
 
@@ -362,26 +246,22 @@
 // Sawtooth
 void    tSawtooth_init(tSawtooth* const cy)
 {
-    _tSawtooth* c = *cy = (_tSawtooth*) leaf_alloc(sizeof(_tSawtooth));
-    
-    c->inc      = 0.0f;
-    c->phase    = 0.0f;
+    tSawtooth_initToPool(cy, &leaf.mempool);
 }
 
 void    tSawtooth_free(tSawtooth* const cy)
 {
-    _tSawtooth* c = *cy;
-    
-    leaf_free(c);
+    tSawtooth_freeFromPool(cy, &leaf.mempool);
 }
 
 void    tSawtooth_initToPool    (tSawtooth* const cy, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tSawtooth* c = *cy = (_tSawtooth*) mpool_alloc(sizeof(_tSawtooth), &m->pool);
+    _tSawtooth* c = *cy = (_tSawtooth*) mpool_alloc(sizeof(_tSawtooth), m);
     
     c->inc      = 0.0f;
     c->phase    = 0.0f;
+    tSawtooth_setFreq(cy, 220);
 }
 
 void    tSawtooth_freeFromPool  (tSawtooth* const cy, tMempool* const mp)
@@ -389,19 +269,25 @@
     _tMempool* m = *mp;
     _tSawtooth* c = *cy;
     
-    mpool_free(c, &m->pool);
+    mpool_free(c, m);
 }
 
-int     tSawtooth_setFreq(tSawtooth* const cy, float freq)
+void    tSawtooth_setFreq(tSawtooth* const cy, float freq)
 {
     _tSawtooth* c = *cy;
     
-    if (freq < 0.0f) freq = 0.0f;
+    if (freq < 0.0f) c->freq = 0.0f;
+    else if (freq > 20480.0f) c->freq = 20480.0f;
+    else c->freq  = freq;
     
-    c->freq = freq;
-    c->inc = freq * leaf.invSampleRate;
+    c->inc = c->freq * leaf.invSampleRate;
     
-    return 0;
+    c->w = c->freq * INV_20;
+    for (c->oct = 0; c->w > 2.0f; c->oct++)
+    {
+        c->w = 0.5f * c->w;
+    }
+    c->w = 2.0f - c->w;
 }
 
 float   tSawtooth_tick(tSawtooth* const cy)
@@ -411,73 +297,16 @@
     // Phasor increment
     c->phase += c->inc;
     while (c->phase >= 1.0f) c->phase -= 1.0f;
+    while (c->phase < 0.0f) c->phase += 1.0f;
     
     float out = 0.0f;
-    float w;
     
-    int idx = (int)(c->phase * TRI_TABLE_SIZE);
+    int idx = (int)(c->phase * SAW_TABLE_SIZE);
     
     // Wavetable synthesis
+    out = __leaf_table_sawtooth[c->oct+1][idx] +
+         (__leaf_table_sawtooth[c->oct][idx] - __leaf_table_sawtooth[c->oct+1][idx]) * c->w;
     
-    if (c->freq <= 20.0f)
-    {
-        out = sawtooth[T20][idx];
-    }
-    else if (c->freq <= 40.0f)
-    {
-        w = ((40.0f - c->freq) * INV_20);
-        out = (sawtooth[T20][idx] * w) + (sawtooth[T40][idx] * (1.0f - w));
-    }
-    else if (c->freq <= 80.0f)
-    {
-        w = ((80.0f - c->freq) * INV_40);
-        out = (sawtooth[T40][idx] * w) + (sawtooth[T80][idx] * (1.0f - w));
-    }
-    else if (c->freq <= 160.0f)
-    {
-        w = ((160.0f - c->freq) * INV_80);
-        out = (sawtooth[T80][idx] * w) + (sawtooth[T160][idx] * (1.0f - w));
-    }
-    else if (c->freq <= 320.0f)
-    {
-        w = ((320.0f - c->freq) * INV_160);
-        out = (sawtooth[T160][idx] * w) + (sawtooth[T320][idx] * (1.0f - w));
-    }
-    else if (c->freq <= 640.0f)
-    {
-        w = ((640.0f - c->freq) * INV_320);
-        out = (sawtooth[T320][idx] * w) + (sawtooth[T640][idx] * (1.0f - w));
-    }
-    else if (c->freq <= 1280.0f)
-    {
-        w = ((1280.0f - c->freq) * INV_640);
-        out = (sawtooth[T640][idx] * w) + (sawtooth[T1280][idx] * (1.0f - w));
-    }
-    else if (c->freq <= 2560.0f)
-    {
-        w = ((2560.0f - c->freq) * INV_1280);
-        out = (sawtooth[T1280][idx] * w) + (sawtooth[T2560][idx] * (1.0f - w));
-    }
-    else if (c->freq <= 5120.0f)
-    {
-        w = ((5120.0f - c->freq) * INV_2560);
-        out = (sawtooth[T2560][idx] * w) + (sawtooth[T5120][idx] * (1.0f - w));
-    }
-    else if (c->freq <= 10240.0f)
-    {
-        w = ((10240.0f - c->freq) * INV_5120);
-        out = (sawtooth[T5120][idx] * w) + (sawtooth[T10240][idx] * (1.0f - w));
-    }
-    else if (c->freq <= 20480.0f)
-    {
-        w = ((20480.0f - c->freq) * INV_10240);
-        out = (sawtooth[T10240][idx] * w) + (sawtooth[T20480][idx] * (1.0f - w));
-    }
-    else
-    {
-        out = sawtooth[T20480][idx];
-    }
-    
     return out;
 }
 
@@ -499,23 +328,18 @@
 
 void    tPhasor_init(tPhasor* const ph)
 {
-    _tPhasor* p = *ph = (_tPhasor*) leaf_alloc(sizeof(_tPhasor));
-    
-    p->phase = 0.0f;
-    p->inc = 0.0f;
+    tPhasor_initToPool(ph, &leaf.mempool);
 }
 
 void    tPhasor_free(tPhasor* const ph)
 {
-    _tPhasor* p = *ph;
-    
-    leaf_free(p);
+    tPhasor_freeFromPool(ph, &leaf.mempool);
 }
 
 void    tPhasor_initToPool  (tPhasor* const ph, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tPhasor* p = *ph = (_tPhasor*) mpool_alloc(sizeof(_tPhasor), &m->pool);
+    _tPhasor* p = *ph = (_tPhasor*) mpool_alloc(sizeof(_tPhasor), m);
     
     p->phase = 0.0f;
     p->inc = 0.0f;
@@ -526,19 +350,18 @@
     _tMempool* m = *mp;
     _tPhasor* p = *ph;
     
-    mpool_free(p, &m->pool);
+    mpool_free(p, m);
 }
 
-int     tPhasor_setFreq(tPhasor* const ph, float freq)
+void    tPhasor_setFreq(tPhasor* const ph, float freq)
 {
     _tPhasor* p = *ph;
     
-    if (freq < 0.0f) freq = 0.0f;
+    if (freq < 0.0f) p->freq = 0.0f;
+    else if (freq > 20480.0f) p->freq = 20480.0f;
+    else p->freq  = freq;
     
-    p->freq = freq;
     p->inc = freq * leaf.invSampleRate;
-    
-    return 0;
 }
 
 float   tPhasor_tick(tPhasor* const ph)
@@ -555,23 +378,18 @@
 /* Noise */
 void    tNoise_init(tNoise* const ns, NoiseType type)
 {
-    _tNoise* n = *ns = (_tNoise*) leaf_alloc(sizeof(_tNoise));
-    
-    n->type = type;
-    n->rand = leaf.random;
+    tNoise_initToPool(ns, type, &leaf.mempool);
 }
 
 void    tNoise_free(tNoise* const ns)
 {
-    _tNoise* n = *ns;
-    
-    leaf_free(n);
+    tNoise_freeFromPool(ns, &leaf.mempool);
 }
 
 void    tNoise_initToPool   (tNoise* const ns, NoiseType type, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tNoise* n = *ns = (_tNoise*) mpool_alloc(sizeof(_tNoise), &m->pool);
+    _tNoise* n = *ns = (_tNoise*) mpool_alloc(sizeof(_tNoise), m);
     
     n->type = type;
     n->rand = leaf.random;
@@ -582,7 +400,7 @@
     _tMempool* m = *mp;
     _tNoise* n = *ns;
     
-    mpool_free(n, &m->pool);
+    mpool_free(n, m);
 }
 
 float   tNoise_tick(tNoise* const ns)
@@ -616,47 +434,18 @@
 
 void    tNeuron_init(tNeuron* const nr)
 {
-    _tNeuron* n = *nr = (_tNeuron*) leaf_alloc(sizeof(_tNeuron));
-    
-    tPoleZero_init(&n->f);
-    
-    tPoleZero_setBlockZero(&n->f, 0.99f);
-    
-    n->timeStep = 1.0f / 50.0f;
-    
-    n->current = 0.0f; // 100.0f for sound
-    n->voltage = 0.0f;
-    
-    n->mode = NeuronNormal;
-    
-    n->P[0] = 0.0f;
-    n->P[1] = 0.0f;
-    n->P[2] = 1.0f;
-    
-    n->V[0] = -12.0f;
-    n->V[1] = 115.0f;
-    n->V[2] = 10.613f;
-    
-    n->gK = 36.0f;
-    n->gN = 120.0f;
-    n->gL = 0.3f;
-    n->C = 1.0f;
-    
-    n->rate[2] = n->gL/n->C;
+    tNeuron_initToPool(nr, &leaf.mempool);
 }
 
 void    tNeuron_free(tNeuron* const nr)
 {
-    _tNeuron* n = *nr;
-    
-    tPoleZero_free(&n->f);
-    leaf_free(n);
+    tNeuron_freeFromPool(nr, &leaf.mempool);
 }
 
 void    tNeuron_initToPool  (tNeuron* const nr, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tNeuron* n = *nr = (_tNeuron*) mpool_alloc(sizeof(_tNeuron), &m->pool);
+    _tNeuron* n = *nr = (_tNeuron*) mpool_alloc(sizeof(_tNeuron), m);
     
     tPoleZero_initToPool(&n->f, mp);
     
@@ -691,7 +480,7 @@
     _tNeuron* n = *nr;
     
     tPoleZero_free(&n->f);
-    mpool_free(n, &m->pool);
+    mpool_free(n, m);
 }
 
 void   tNeuron_reset(tNeuron* const nr)
--- a/LEAF/Src/leaf-physical.c
+++ b/LEAF/Src/leaf-physical.c
@@ -19,18 +19,18 @@
 /* ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ tPluck ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ */
 void    tPluck_init         (tPluck* const pl, float lowestFrequency)
 {
-    tPluck_initToPool(pl, lowestFrequency, &leaf_mempool);
+    tPluck_initToPool(pl, lowestFrequency, &leaf.mempool);
 }
 
 void tPluck_free (tPluck* const pl)
 {
-    tPluck_freeFromPool(pl, &leaf_mempool);
+    tPluck_freeFromPool(pl, &leaf.mempool);
 }
 
 void    tPluck_initToPool    (tPluck* const pl, float lowestFrequency, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tPluck* p = *pl = (_tPluck*) mpool_alloc(sizeof(_tPluck), &m->pool);
+    _tPluck* p = *pl = (_tPluck*) mpool_alloc(sizeof(_tPluck), m);
     
     if ( lowestFrequency <= 0.0f )  lowestFrequency = 10.0f;
     
@@ -56,7 +56,7 @@
     tOneZero_freeFromPool(&p->loopFilter, mp);
     tAllpassDelay_freeFromPool(&p->delayLine, mp);
     
-    mpool_free(p, &m->pool);
+    mpool_free(p, m);
 }
 
 float   tPluck_getLastOut    (tPluck* const pl)
@@ -139,18 +139,18 @@
 /* ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ tKarplusStrong ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ */
 void    tKarplusStrong_init (tKarplusStrong* const pl, float lowestFrequency)
 {
-    tKarplusStrong_initToPool(pl, lowestFrequency, &leaf_mempool);
+    tKarplusStrong_initToPool(pl, lowestFrequency, &leaf.mempool);
 }
 
 void tKarplusStrong_free (tKarplusStrong* const pl)
 {
-    tKarplusStrong_freeFromPool(pl, &leaf_mempool);
+    tKarplusStrong_freeFromPool(pl, &leaf.mempool);
 }
 
 void    tKarplusStrong_initToPool   (tKarplusStrong* const pl, float lowestFrequency, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tKarplusStrong* p = *pl = (_tKarplusStrong*) mpool_alloc(sizeof(_tKarplusStrong), &m->pool);
+    _tKarplusStrong* p = *pl = (_tKarplusStrong*) mpool_alloc(sizeof(_tKarplusStrong), m);
     
     if ( lowestFrequency <= 0.0f )  lowestFrequency = 8.0f;
     
@@ -194,7 +194,7 @@
         tBiQuad_freeFromPool(&p->biquad[i], mp);
     }
     
-    mpool_free(p, &m->pool);
+    mpool_free(p, m);
 }
 
 float   tKarplusStrong_getLastOut    (tKarplusStrong* const pl)
@@ -358,12 +358,12 @@
                                  float decay, float targetLev, float levSmoothFactor,
                                  float levStrength, int levMode)
 {
-    tSimpleLivingString_initToPool(pl, freq, dampFreq, decay, targetLev, levSmoothFactor, levStrength, levMode, &leaf_mempool);
+    tSimpleLivingString_initToPool(pl, freq, dampFreq, decay, targetLev, levSmoothFactor, levStrength, levMode, &leaf.mempool);
 }
 
 void tSimpleLivingString_free(tSimpleLivingString* const pl)
 {
-    tSimpleLivingString_freeFromPool(pl, &leaf_mempool);
+    tSimpleLivingString_freeFromPool(pl, &leaf.mempool);
 }
 
 void    tSimpleLivingString_initToPool  (tSimpleLivingString* const pl, float freq, float dampFreq,
@@ -371,7 +371,7 @@
                                          float levStrength, int levMode, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tSimpleLivingString* p = *pl = (_tSimpleLivingString*) mpool_alloc(sizeof(_tSimpleLivingString), &m->pool);
+    _tSimpleLivingString* p = *pl = (_tSimpleLivingString*) mpool_alloc(sizeof(_tSimpleLivingString), m);
     
     p->curr=0.0f;
     tExpSmooth_initToPool(&p->wlSmooth, leaf.sampleRate/freq, 0.01, mp); // smoother for string wavelength (not freq, to avoid expensive divisions)
@@ -396,7 +396,7 @@
     tHighpass_freeFromPool(&p->DCblocker, mp);
     tFeedbackLeveler_freeFromPool(&p->fbLev, mp);
     
-    mpool_free(p, &m->pool);
+    mpool_free(p, m);
 }
 
 void     tSimpleLivingString_setFreq(tSimpleLivingString* const pl, float freq)
@@ -480,12 +480,12 @@
                            float dampFreq, float decay, float targetLev, float levSmoothFactor,
                            float levStrength, int levMode)
 {
-    tLivingString_initToPool(pl, freq, pickPos, prepIndex, dampFreq, decay, targetLev, levSmoothFactor, levStrength, levMode, &leaf_mempool);
+    tLivingString_initToPool(pl, freq, pickPos, prepIndex, dampFreq, decay, targetLev, levSmoothFactor, levStrength, levMode, &leaf.mempool);
 }
 
 void tLivingString_free(tLivingString* const pl)
 {
-    tLivingString_freeFromPool(pl, &leaf_mempool);
+    tLivingString_freeFromPool(pl, &leaf.mempool);
 }
 
 void    tLivingString_initToPool    (tLivingString* const pl, float freq, float pickPos, float prepIndex,
@@ -493,7 +493,7 @@
                                      float levStrength, int levMode, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tLivingString* p = *pl = (_tLivingString*) mpool_alloc(sizeof(_tLivingString), &m->pool);
+    _tLivingString* p = *pl = (_tLivingString*) mpool_alloc(sizeof(_tLivingString), m);
     
     p->curr=0.0f;
     tExpSmooth_initToPool(&p->wlSmooth, leaf.sampleRate/freq, 0.01, mp); // smoother for string wavelength (not freq, to avoid expensive divisions)
@@ -544,7 +544,7 @@
     tFeedbackLeveler_freeFromPool(&p->fbLevU, mp);
     tFeedbackLeveler_freeFromPool(&p->fbLevL, mp);
     
-    mpool_free(p, &m->pool);
+    mpool_free(p, m);
 }
 
 void     tLivingString_setFreq(tLivingString* const pl, float freq)
@@ -689,7 +689,7 @@
 void    tReedTable_initToPool   (tReedTable* const pm, float offset, float slope, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tReedTable* p = *pm = (_tReedTable*) mpool_alloc(sizeof(_tReedTable), &m->pool);
+    _tReedTable* p = *pm = (_tReedTable*) mpool_alloc(sizeof(_tReedTable), m);
     
     p->offset = offset;
     p->slope = slope;
@@ -700,7 +700,7 @@
     _tMempool* m = *mp;
     _tReedTable* p = *pm;
     
-    mpool_free(p, &m->pool);
+    mpool_free(p, m);
 }
 
 float   tReedTable_tick      (tReedTable* const pm, float input)
--- a/LEAF/Src/leaf-reverb.c
+++ b/LEAF/Src/leaf-reverb.c
@@ -68,7 +68,7 @@
 void    tPRCReverb_initToPool   (tPRCReverb* const rev, float t60, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tPRCReverb* r = *rev = (_tPRCReverb*) mpool_alloc(sizeof(_tPRCReverb), &m->pool);
+    _tPRCReverb* r = *rev = (_tPRCReverb*) mpool_alloc(sizeof(_tPRCReverb), m);
     
     if (t60 <= 0.0f) t60 = 0.001f;
     
@@ -110,7 +110,7 @@
     tDelay_freeFromPool(&r->allpassDelays[0], mp);
     tDelay_freeFromPool(&r->allpassDelays[1], mp);
     tDelay_freeFromPool(&r->combDelay, mp);
-    mpool_free(r, &m->pool);
+    mpool_free(r, m);
 }
 
 void    tPRCRevert_clear(tPRCReverb* const rev)
@@ -243,7 +243,7 @@
 void    tNReverb_initToPool     (tNReverb* const rev, float t60, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tNReverb* r = *rev = (_tNReverb*) mpool_alloc(sizeof(_tNReverb), &m->pool);
+    _tNReverb* r = *rev = (_tNReverb*) mpool_alloc(sizeof(_tNReverb), m);
     
     if (t60 <= 0.0f) t60 = 0.001f;
     
@@ -296,7 +296,7 @@
         tLinearDelay_freeFromPool(&r->allpassDelays[i], mp);
     }
     
-    mpool_free(r, &m->pool);
+    mpool_free(r, m);
 }
 
 void    tNReverb_setT60(tNReverb* const rev, float t60)
@@ -457,18 +457,18 @@
 
 void    tDattorroReverb_init              (tDattorroReverb* const rev)
 {
-    tDattorroReverb_initToPool(rev, &leaf_mempool);
+    tDattorroReverb_initToPool(rev, &leaf.mempool);
 }
 
 void    tDattorroReverb_free              (tDattorroReverb* const rev)
 {
-    tDattorroReverb_freeFromPool(rev, &leaf_mempool);
+    tDattorroReverb_freeFromPool(rev, &leaf.mempool);
 }
 
 void    tDattorroReverb_initToPool        (tDattorroReverb* const rev, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tDattorroReverb* r = *rev = (_tDattorroReverb*) mpool_alloc(sizeof(_tDattorroReverb), &m->pool);
+    _tDattorroReverb* r = *rev = (_tDattorroReverb*) mpool_alloc(sizeof(_tDattorroReverb), m);
     
     r->size_max = 2.0f;
     r->size = 1.f;
@@ -567,7 +567,7 @@
     
     tCycle_freeFromPool(&r->f2_lfo, mp);
     
-    mpool_free(r, &m->pool);
+    mpool_free(r, m);
 }
 
 void    tDattorroReverb_clear             (tDattorroReverb* const rev)
--- a/LEAF/Src/leaf-sampling.c
+++ b/LEAF/Src/leaf-sampling.c
@@ -26,20 +26,20 @@
 
 void  tBuffer_init (tBuffer* const sb, uint32_t length)
 {
-    tBuffer_initToPool(sb, length, &leaf_mempool);
+    tBuffer_initToPool(sb, length, &leaf.mempool);
 }
 
 void  tBuffer_free (tBuffer* const sb)
 {
-    tBuffer_freeFromPool(sb, &leaf_mempool);
+    tBuffer_freeFromPool(sb, &leaf.mempool);
 }
 
 void  tBuffer_initToPool (tBuffer* const sb, uint32_t length, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tBuffer* s = *sb = (_tBuffer*) mpool_alloc(sizeof(_tBuffer), &m->pool);
+    _tBuffer* s = *sb = (_tBuffer*) mpool_alloc(sizeof(_tBuffer), m);
     
-    s->buff = (float*) mpool_alloc( sizeof(float) * length, &m->pool);
+    s->buff = (float*) mpool_alloc( sizeof(float) * length, m);
     
     s->bufferLength = length;
     s->recordedLength = 0;
@@ -53,8 +53,8 @@
     _tMempool* m = *mp;
     _tBuffer* s = *sb;
 
-    mpool_free(s->buff, &m->pool);
-    mpool_free(s, &m->pool);
+    mpool_free(s->buff, m);
+    mpool_free(s, m);
 }
 
 void tBuffer_tick (tBuffer* const sb, float sample)
@@ -154,18 +154,18 @@
 
 void tSampler_init(tSampler* const sp, tBuffer* const b)
 {
-    tSampler_initToPool(sp, b, &leaf_mempool);
+    tSampler_initToPool(sp, b, &leaf.mempool);
 }
 
 void tSampler_free         (tSampler* const sp)
 {
-    tSampler_freeFromPool(sp, &leaf_mempool);
+    tSampler_freeFromPool(sp, &leaf.mempool);
 }
 
 void tSampler_initToPool(tSampler* const sp, tBuffer* const b, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tSampler* p = *sp = (_tSampler*) mpool_alloc(sizeof(_tSampler), &m->pool);
+    _tSampler* p = *sp = (_tSampler*) mpool_alloc(sizeof(_tSampler), m);
     _tBuffer* s = *b;
     
     p->samp = s;
@@ -202,7 +202,7 @@
     _tSampler* p = *sp;
     tRamp_freeFromPool(&p->gain, mp);
     
-    mpool_free(p, &m->pool);
+    mpool_free(p, m);
 }
 
 void tSampler_setSample (tSampler* const sp, tBuffer* const b)
@@ -709,18 +709,18 @@
 
 void    tAutoSampler_init   (tAutoSampler* const as, tBuffer* const b)
 {
-    tAutoSampler_initToPool(as, b, &leaf_mempool);
+    tAutoSampler_initToPool(as, b, &leaf.mempool);
 }
 
 void    tAutoSampler_free   (tAutoSampler* const as)
 {
-    tAutoSampler_freeFromPool(as, &leaf_mempool);
+    tAutoSampler_freeFromPool(as, &leaf.mempool);
 }
 
 void    tAutoSampler_initToPool (tAutoSampler* const as, tBuffer* const b, tMempool* const mp)
 {
     _tMempool* m = *mp;
-    _tAutoSampler* a = *as = (_tAutoSampler*) mpool_alloc(sizeof(_tAutoSampler), &m->pool);
+    _tAutoSampler* a = *as = (_tAutoSampler*) mpool_alloc(sizeof(_tAutoSampler), m);
     
     tBuffer_setRecordMode(b, RecordOneShot);
     tSampler_initToPool(&a->sampler, b, mp);
@@ -736,7 +736,7 @@
     tEnvelopeFollower_freeFromPool(&a->ef, mp);
     tSampler_freeFromPool(&a->sampler, mp);
     
-    mpool_free(a, &m->pool);
+    mpool_free(a, m);
 }
 
 float   tAutoSampler_tick               (tAutoSampler* const as, float input)
--- a/LEAF/Src/leaf-tables.c
+++ b/LEAF/Src/leaf-tables.c
@@ -14,41 +14,41 @@
 
 #include "stdlib.h"
 
-const float fir2XLow[32] = { 0.001067048115027622,    -0.004557728776555209,    -0.016711590887520535,    -0.021065500881657994,    -0.003828695019946828,    0.01865935152799254,    0.012036365576553658,    -0.02064070362810112,    -0.02682399333687091,    0.017862623081258543,    0.0492716766870816,    -0.004310232755957251,    -0.08571879958189704,    -0.03828300159135686,    0.18420501161808442,    0.4054061613074031,    0.4054061613074031,    0.18420501161808442,    -0.03828300159135686,    -0.08571879958189704,    -0.004310232755957251,    0.0492716766870816,    0.017862623081258543,    -0.02682399333687091,    -0.02064070362810112,    0.012036365576553658,    0.01865935152799254,    -0.003828695019946828,    -0.021065500881657994,    -0.016711590887520535,    -0.004557728776555209,    0.001067048115027622
+const float __leaf_table_fir2XLow[32] = { 0.001067048115027622,    -0.004557728776555209,    -0.016711590887520535,    -0.021065500881657994,    -0.003828695019946828,    0.01865935152799254,    0.012036365576553658,    -0.02064070362810112,    -0.02682399333687091,    0.017862623081258543,    0.0492716766870816,    -0.004310232755957251,    -0.08571879958189704,    -0.03828300159135686,    0.18420501161808442,    0.4054061613074031,    0.4054061613074031,    0.18420501161808442,    -0.03828300159135686,    -0.08571879958189704,    -0.004310232755957251,    0.0492716766870816,    0.017862623081258543,    -0.02682399333687091,    -0.02064070362810112,    0.012036365576553658,    0.01865935152799254,    -0.003828695019946828,    -0.021065500881657994,    -0.016711590887520535,    -0.004557728776555209,    0.001067048115027622
     
 };
-const float fir4XLow[64] = { 0.0006952369848543607,    -0.0021602595656775407,    -0.005046940892783684,    -0.009045400833780066,    -0.01291169046367334,    -0.015115999752735221,    -0.014305643164290147,    -0.009951858009311934,    -0.0028258377448417927,    0.004999374847547033,    0.010750729432710248,    0.012011264580991868,    0.007846433846826574,    -0.0005004296670167205,    -0.009772888585453377,    -0.015810363406761653,    -0.01525350231205246,    -0.007226084282741553,    0.005835838890105145,    0.018676910759237414,    0.025091142837250335,    0.02056199072613674,    0.004658087892329196,    -0.017877850338462058,    -0.03800800914197999,    -0.04518029996599868,    -0.031146769751981856,    0.006553281738260734,    0.06282284508297871,    0.1257919544316159,    0.18007204974638935,    0.21145499612282317,    0.21145499612282317,    0.18007204974638935,    0.1257919544316159,    0.06282284508297871,    0.006553281738260734,    -0.031146769751981856,    -0.04518029996599868,    -0.03800800914197999,    -0.017877850338462058,    0.004658087892329196,    0.02056199072613674,    0.025091142837250335,    0.018676910759237414,    0.005835838890105145,    -0.007226084282741553,    -0.01525350231205246,    -0.015810363406761653,    -0.009772888585453377,    -0.0005004296670167205,    0.007846433846826574,    0.012011264580991868,    0.010750729432710248,    0.004999374847547033,    -0.0028258377448417927,    -0.009951858009311934,    -0.014305643164290147,    -0.015115999752735221,    -0.01291169046367334,    -0.009045400833780066,    -0.005046940892783684,    -0.0021602595656775407,    0.0006952369848543607
+const float __leaf_table_fir4XLow[64] = { 0.0006952369848543607,    -0.0021602595656775407,    -0.005046940892783684,    -0.009045400833780066,    -0.01291169046367334,    -0.015115999752735221,    -0.014305643164290147,    -0.009951858009311934,    -0.0028258377448417927,    0.004999374847547033,    0.010750729432710248,    0.012011264580991868,    0.007846433846826574,    -0.0005004296670167205,    -0.009772888585453377,    -0.015810363406761653,    -0.01525350231205246,    -0.007226084282741553,    0.005835838890105145,    0.018676910759237414,    0.025091142837250335,    0.02056199072613674,    0.004658087892329196,    -0.017877850338462058,    -0.03800800914197999,    -0.04518029996599868,    -0.031146769751981856,    0.006553281738260734,    0.06282284508297871,    0.1257919544316159,    0.18007204974638935,    0.21145499612282317,    0.21145499612282317,    0.18007204974638935,    0.1257919544316159,    0.06282284508297871,    0.006553281738260734,    -0.031146769751981856,    -0.04518029996599868,    -0.03800800914197999,    -0.017877850338462058,    0.004658087892329196,    0.02056199072613674,    0.025091142837250335,    0.018676910759237414,    0.005835838890105145,    -0.007226084282741553,    -0.01525350231205246,    -0.015810363406761653,    -0.009772888585453377,    -0.0005004296670167205,    0.007846433846826574,    0.012011264580991868,    0.010750729432710248,    0.004999374847547033,    -0.0028258377448417927,    -0.009951858009311934,    -0.014305643164290147,    -0.015115999752735221,    -0.01291169046367334,    -0.009045400833780066,    -0.005046940892783684,    -0.0021602595656775407,    0.0006952369848543607
 };
-const float fir8XLow[64] = { 0.0006754949160790157,    0.0002779478357299437,    0.00016529299248029802,    -0.00013134896547707938,    -0.0006717131404275674,    -0.0015110701381990592,    -0.002691718323402088,    -0.004233151560515273,    -0.006122759810873029,    -0.008309678451155357,    -0.010700324896169348,    -0.013154262594364387,    -0.015486775440587882,    -0.01748014690133886,    -0.018887653514132675,    -0.019456772349369558,    -0.01894272181784527,    -0.017131243827335194,    -0.013858969256894846,    -0.009032963777720983,    -0.0026459262830678125,    0.00521276165394513,    0.01435273458276724,    0.024486845310977834,    0.03524172116254876,    0.04617574968276393,    0.05680505888194891,    0.06663123541320262,    0.07517390607705798,    0.08200222626654773,    0.0867639105153248,    0.08920930675382921,    0.08920930675382921,    0.0867639105153248,    0.08200222626654773,    0.07517390607705798,    0.06663123541320262,    0.05680505888194891,    0.04617574968276393,    0.03524172116254876,    0.024486845310977834,    0.01435273458276724,    0.00521276165394513,    -0.0026459262830678125,    -0.009032963777720983,    -0.013858969256894846,    -0.017131243827335194,    -0.01894272181784527,    -0.019456772349369558,    -0.018887653514132675,    -0.01748014690133886,    -0.015486775440587882,    -0.013154262594364387,    -0.010700324896169348,    -0.008309678451155357,    -0.006122759810873029,    -0.004233151560515273,    -0.002691718323402088,    -0.0015110701381990592,    -0.0006717131404275674,    -0.00013134896547707938,    0.00016529299248029802,    0.0002779478357299437,    0.0006754949160790157
+const float __leaf_table_fir8XLow[64] = { 0.0006754949160790157,    0.0002779478357299437,    0.00016529299248029802,    -0.00013134896547707938,    -0.0006717131404275674,    -0.0015110701381990592,    -0.002691718323402088,    -0.004233151560515273,    -0.006122759810873029,    -0.008309678451155357,    -0.010700324896169348,    -0.013154262594364387,    -0.015486775440587882,    -0.01748014690133886,    -0.018887653514132675,    -0.019456772349369558,    -0.01894272181784527,    -0.017131243827335194,    -0.013858969256894846,    -0.009032963777720983,    -0.0026459262830678125,    0.00521276165394513,    0.01435273458276724,    0.024486845310977834,    0.03524172116254876,    0.04617574968276393,    0.05680505888194891,    0.06663123541320262,    0.07517390607705798,    0.08200222626654773,    0.0867639105153248,    0.08920930675382921,    0.08920930675382921,    0.0867639105153248,    0.08200222626654773,    0.07517390607705798,    0.06663123541320262,    0.05680505888194891,    0.04617574968276393,    0.03524172116254876,    0.024486845310977834,    0.01435273458276724,    0.00521276165394513,    -0.0026459262830678125,    -0.009032963777720983,    -0.013858969256894846,    -0.017131243827335194,    -0.01894272181784527,    -0.019456772349369558,    -0.018887653514132675,    -0.01748014690133886,    -0.015486775440587882,    -0.013154262594364387,    -0.010700324896169348,    -0.008309678451155357,    -0.006122759810873029,    -0.004233151560515273,    -0.002691718323402088,    -0.0015110701381990592,    -0.0006717131404275674,    -0.00013134896547707938,    0.00016529299248029802,    0.0002779478357299437,    0.0006754949160790157
 };
-const float fir16XLow[128] = {    0.0046126349429950276,    0.002418251320043122,    0.002998396982119693,    0.0036278090719021024,    0.0042975430005925104,    0.004996222179947315,    0.005711926725799716,    0.00643079625328543,    0.007135468516004265,    0.007808520869830334,    0.008432568881455365,    0.008987453845736109,    0.00945525638237626,    0.009815890031354925,    0.01005214318250272,    0.0101471696783731,    0.010086582032584102,    0.009858344528406827,    0.009453351108896472,    0.00886647074448095,    0.008096771309653635,    0.00714751717242796,    0.006026566967445846,    0.004745997071949807,    0.0033222377606249025,    0.0017766711441555428,    0.00013504407845816216,    -0.0015717347700967995,    -0.0033094088955885038,    -0.005040712758495562,    -0.0067262136355625045,    -0.00832548062138737,    -0.009796853749250854,    -0.011097728611024173,    -0.012187337326564303,    -0.013023698103098556,    -0.013573509920266506,    -0.013801755448129987,    -0.013685636499932173,    -0.0132011750541409,    -0.012328290422335804,    -0.011059565013468301,    -0.009397775060844537,    -0.007349071952063118,    -0.004920665178899413,    -0.002134336426912994,    0.0009664872092121234,    0.00436478920287496,    0.008003553325930378,    0.011839210717492617,    0.015814297525442545,    0.01987142580304551,    0.023948983229671674,    0.0279823843957138,    0.03190689232743185,    0.03565816745288488,    0.03917373689862927,    0.042395392373465575,    0.04526788671987817,    0.0477424527036618,    0.04977580760639264,    0.051332653704811104,    0.05238580079738586,    0.05291690409987073,    0.05291690409987073,    0.05238580079738586,    0.051332653704811104,    0.04977580760639264,    0.0477424527036618,    0.04526788671987817,    0.042395392373465575,    0.03917373689862927,    0.03565816745288488,    0.03190689232743185,    0.0279823843957138,    0.023948983229671674,    0.01987142580304551,    0.015814297525442545,    0.011839210717492617,    0.008003553325930378,    0.00436478920287496,    0.0009664872092121234,    -0.002134336426912994,    -0.004920665178899413,    -0.007349071952063118,    -0.009397775060844537,    -0.011059565013468301,    -0.012328290422335804,    -0.0132011750541409,    -0.013685636499932173,    -0.013801755448129987,    -0.013573509920266506,    -0.013023698103098556,    -0.012187337326564303,    -0.011097728611024173,    -0.009796853749250854,    -0.00832548062138737,    -0.0067262136355625045,    -0.005040712758495562,    -0.0033094088955885038,    -0.0015717347700967995,    0.00013504407845816216,    0.0017766711441555428,    0.0033222377606249025,    0.004745997071949807,    0.006026566967445846,    0.00714751717242796,    0.008096771309653635,    0.00886647074448095,    0.009453351108896472,    0.009858344528406827,    0.010086582032584102,    0.0101471696783731,    0.01005214318250272,    0.009815890031354925,    0.00945525638237626,    0.008987453845736109,    0.008432568881455365,    0.007808520869830334,    0.007135468516004265,    0.00643079625328543,    0.005711926725799716,    0.004996222179947315,    0.0042975430005925104,    0.0036278090719021024,    0.002998396982119693,    0.002418251320043122,    0.0046126349429950276
+const float __leaf_table_fir16XLow[128] = {    0.0046126349429950276,    0.002418251320043122,    0.002998396982119693,    0.0036278090719021024,    0.0042975430005925104,    0.004996222179947315,    0.005711926725799716,    0.00643079625328543,    0.007135468516004265,    0.007808520869830334,    0.008432568881455365,    0.008987453845736109,    0.00945525638237626,    0.009815890031354925,    0.01005214318250272,    0.0101471696783731,    0.010086582032584102,    0.009858344528406827,    0.009453351108896472,    0.00886647074448095,    0.008096771309653635,    0.00714751717242796,    0.006026566967445846,    0.004745997071949807,    0.0033222377606249025,    0.0017766711441555428,    0.00013504407845816216,    -0.0015717347700967995,    -0.0033094088955885038,    -0.005040712758495562,    -0.0067262136355625045,    -0.00832548062138737,    -0.009796853749250854,    -0.011097728611024173,    -0.012187337326564303,    -0.013023698103098556,    -0.013573509920266506,    -0.013801755448129987,    -0.013685636499932173,    -0.0132011750541409,    -0.012328290422335804,    -0.011059565013468301,    -0.009397775060844537,    -0.007349071952063118,    -0.004920665178899413,    -0.002134336426912994,    0.0009664872092121234,    0.00436478920287496,    0.008003553325930378,    0.011839210717492617,    0.015814297525442545,    0.01987142580304551,    0.023948983229671674,    0.0279823843957138,    0.03190689232743185,    0.03565816745288488,    0.03917373689862927,    0.042395392373465575,    0.04526788671987817,    0.0477424527036618,    0.04977580760639264,    0.051332653704811104,    0.05238580079738586,    0.05291690409987073,    0.05291690409987073,    0.05238580079738586,    0.051332653704811104,    0.04977580760639264,    0.0477424527036618,    0.04526788671987817,    0.042395392373465575,    0.03917373689862927,    0.03565816745288488,    0.03190689232743185,    0.0279823843957138,    0.023948983229671674,    0.01987142580304551,    0.015814297525442545,    0.011839210717492617,    0.008003553325930378,    0.00436478920287496,    0.0009664872092121234,    -0.002134336426912994,    -0.004920665178899413,    -0.007349071952063118,    -0.009397775060844537,    -0.011059565013468301,    -0.012328290422335804,    -0.0132011750541409,    -0.013685636499932173,    -0.013801755448129987,    -0.013573509920266506,    -0.013023698103098556,    -0.012187337326564303,    -0.011097728611024173,    -0.009796853749250854,    -0.00832548062138737,    -0.0067262136355625045,    -0.005040712758495562,    -0.0033094088955885038,    -0.0015717347700967995,    0.00013504407845816216,    0.0017766711441555428,    0.0033222377606249025,    0.004745997071949807,    0.006026566967445846,    0.00714751717242796,    0.008096771309653635,    0.00886647074448095,    0.009453351108896472,    0.009858344528406827,    0.010086582032584102,    0.0101471696783731,    0.01005214318250272,    0.009815890031354925,    0.00945525638237626,    0.008987453845736109,    0.008432568881455365,    0.007808520869830334,    0.007135468516004265,    0.00643079625328543,    0.005711926725799716,    0.004996222179947315,    0.0042975430005925104,    0.0036278090719021024,    0.002998396982119693,    0.002418251320043122,    0.0046126349429950276
 };
 
-const float fir32XLow[256] = {    0.003135815035675548,    0.0008156232239328851,    0.000917068197598276,    0.0010233321389754753,    0.001134110218761504,    0.0012491667970169805,    0.0013680375075057851,    0.001490070275243389,    0.0016147643011084855,    0.0017417157238882276,    0.0018700914504121836,    0.0019991579415749683,    0.002128471863076254,    0.0022567566738769186,    0.002383672659264704,    0.002508166194956474,    0.002629506399721181,    0.0027467683378931368,    0.0028590361951993043,    0.0029653540222406116,    0.0030647286416823558,    0.00315623470697179,    0.003238837936508139,    0.0033114996375323753,    0.003373275427426179,    0.003423120728613286,    0.0034602078573979502,    0.00348370126489233,    0.0034928589363555137,    0.003487024926580723,    0.00346544617544127,    0.0034275901596743786,    0.003372744288160786,    0.003300374368830668,    0.0032100011629779615,    0.0031011259873207366,    0.0029734835473811155,    0.002826966057696581,    0.002661647372342504,    0.002477856491791658,    0.0022758592957851788,    0.002056324802981239,    0.0018188203182857804,    0.0015643564184398945,    0.0012926118931092972,    0.0010045690459120843,    0.0007018867678747181,    0.0003860391202902529,    0.00005849980158161824,    -0.0002799696936324717,    -0.0006296005356373679,    -0.0009895247437558183,    -0.0013546785675169304,    -0.0017195561866995873,    -0.0020963876502479964,    -0.002468260301862593,    -0.0028417218921490055,    -0.0032120394918615683,    -0.0035773608021516137,    -0.003935505336691309,    -0.004284369920502227,    -0.004621670593236145,    -0.004945031807804129,    -0.005252279037886353,    -0.005541035510098375,    -0.0058089264241534076,    -0.006054095814242929,    -0.006274068947767563,    -0.00646696244866887,    -0.0066305675756926155,    -0.006762900683506128,    -0.0068620368760529005,    -0.006926182735003765,    -0.0069537046122919695,    -0.006943019919480639,    -0.006892771889917669,    -0.006801741377343995,    -0.006668838708546407,    -0.006493264006045824,    -0.006274267867821416,    -0.006011320357808483,    -0.0057040303527059145,    -0.0053521596030233955,    -0.004955865565614219,    -0.0045153171035821945,    -0.004031251472901679,    -0.0035043462024212605,    -0.002935495552851842,    -0.0023258420785969196,    -0.0016765768456949962,    -0.0009892344368254917,    -0.0002656979807816483,    0.0004919846584003508,    0.0012815018066687268,    0.0021009777555761797,    0.002947120990883713,    0.003818897132096946,    0.004711821532573362,    0.005623441877750917,    0.0065507318610126455,    0.00749007256295643,    0.008438601047417412,    0.009393231377415961,    0.010349728929990198,    0.011304034683748016,    0.012253787036798792,    0.0131957325172224,    0.014123534046112132,    0.015037407721547907,    0.015930638333497147,    0.016801083762848282,    0.017644931748342123,    0.018458926379618365,    0.019239740862760844,    0.0199842074278331,    0.02068926196032209,    0.021351902836904902,    0.021969538576994418,    0.022539688024890127,    0.02305979792910538,    0.023527892067270753,    0.023941757493848588,    0.02429975740762361,    0.024600378168866704,    0.02484241441905009,    0.025024893038415853,    0.025146995906550493,    0.025208214258904054,    0.025208214258904054,    0.025146995906550493,    0.025024893038415853,    0.02484241441905009,    0.024600378168866704,    0.02429975740762361,    0.023941757493848588,    0.023527892067270753,    0.02305979792910538,    0.022539688024890127,    0.021969538576994418,    0.021351902836904902,    0.02068926196032209,    0.0199842074278331,    0.019239740862760844,    0.018458926379618365,    0.017644931748342123,    0.016801083762848282,    0.015930638333497147,    0.015037407721547907,    0.014123534046112132,    0.0131957325172224,    0.012253787036798792,    0.011304034683748016,    0.010349728929990198,    0.009393231377415961,    0.008438601047417412,    0.00749007256295643,    0.0065507318610126455,    0.005623441877750917,    0.004711821532573362,    0.00381889
\ No newline at end of file
+const float __leaf_table_fir32XLow[256] = {    0.003135815035675548,    0.0008156232239328851,    0.000917068197598276,    0.0010233321389754753,    0.001134110218761504,    0.0012491667970169805,    0.0013680375075057851,    0.001490070275243389,    0.0016147643011084855,    0.0017417157238882276,    0.0018700914504121836,    0.0019991579415749683,    0.002128471863076254,    0.0022567566738769186,    0.002383672659264704,    0.002508166194956474,    0.002629506399721181,    0.0027467683378931368,    0.0028590361951993043,    0.0029653540222406116,    0.0030647286416823558,    0.00315623470697179,    0.003238837936508139,    0.0033114996375323753,    0.003373275427426179,    0.003423120728613286,    0.0034602078573979502,    0.00348370126489233,    0.0034928589363555137,    0.003487024926580723,    0.00346544617544127,    0.0034275901596743786,    0.003372744288160786,    0.003300374368830668,    0.0032100011629779615,    0.0031011259873207366,    0.0029734835473811155,    0.002826966057696581,    0.002661647372342504,    0.002477856491791658,    0.0022758592957851788,    0.002056324802981239,    0.0018188203182857804,    0.0015643564184398945,    0.0012926118931092972,    0.0010045690459120843,    0.0007018867678747181,    0.0003860391202902529,    0.00005849980158161824,    -0.0002799696936324717,    -0.0006296005356373679,    -0.0009895247437558183,    -0.0013546785675169304,    -0.0017195561866995873,    -0.0020963876502479964,    -0.002468260301862593,    -0.0028417218921490055,    -0.0032120394918615683,    -0.0035773608021516137,    -0.003935505336691309,    -0.004284369920502227,    -0.004621670593236145,    -0.004945031807804129,    -0.005252279037886353,    -0.005541035510098375,    -0.0058089264241534076,    -0.006054095814242929,    -0.006274068947767563,    -0.00646696244866887,    -0.0066305675756926155,    -0.006762900683506128,    -0.0068620368760529005,    -0.006926182735003765,    -0.0069537046122919695,    -0.006943019919480639,    -0.006892771889917669,    -0.006801741377343995,    -0.006668838708546407,    -0.006493264006045824,    -0.006274267867821416,    -0.006011320357808483,    -0.0057040303527059145,    -0.0053521596030233955,    -0.004955865565614219,    -0.0045153171035821945,    -0.004031251472901679,    -0.0035043462024212605,    -0.002935495552851842,    -0.0023258420785969196,    -0.0016765768456949962,    -0.0009892344368254917,    -0.0002656979807816483,    0.0004919846584003508,    0.0012815018066687268,    0.0021009777555761797,    0.002947120990883713,    0.003818897132096946,    0.004711821532573362,    0.005623441877750917,    0.0065507318610126455,    0.00749007256295643,    0.008438601047417412,    0.009393231377415961,    0.010349728929990198,    0.011304034683748016,    0.012253787036798792,    0.0131957325172224,    0.014123534046112132,    0.015037407721547907,    0.015930638333497147,    0.016801083762848282,    0.017644931748342123,    0.018458926379618365,    0.019239740862760844,    0.0199842074278331,    0.02068926196032209,    0.021351902836904902,    0.021969538576994418,    0.022539688024890127,    0.02305979792910538,    0.023527892067270753,    0.023941757493848588,    0.02429975740762361,    0.024600378168866704,    0.02484241441905009,    0.025024893038415853,    0.025146995906550493,    0.025208214258904054,    0.025208214258904054,    0.025146995906550493,    0.025024893038415853,    0.02484241441905009,    0.024600378168866704,    0.02429975740762361,    0.023941757493848588,    0.023527892067270753,    0.02305979792910538,    0.022539688024890127,    0.021969538576994418,    0.021351902836904902,    0.02068926196032209,    0.0199842074278331,    0.019239740862760844,    0.018458926379618365,    0.017644931748342123,    0.016801083762848282,    0.015930638333497147,    0.015037407721547907,    0.014123534046112132,    0.0131957325172224,    0.012253787036798792,    0.011304034683748016,    0.010349728929990198,    0.009393231377415961,    0.008438601047417412,    0.00749007256295643,    0.0065507318610126455,    0.005623441877750917,    0.004711821532573362, 
\ No newline at end of file
 7132096946,    0.002947120990883713,    0.0021009777555761797,    0.0012815018066687268,    0.0004919846584003508,    -0.0002656979807816483,    -0.0009892344368254917,    -0.0016765768456949962,    -0.0023258420785969196,    -0.002935495552851842,    -0.0035043462024212605,    -0.004031251472901679,    -0.0045153171035821945,    -0.004955865565614219,    -0.0053521596030233955,    -0.0057040303527059145,    -0.006011320357808483,    -0.006274267867821416,    -0.006493264006045824,    -0.006668838708546407,    -0.006801741377343995,    -0.006892771889917669,    -0.006943019919480639,    -0.0069537046122919695,    -0.006926182735003765,    -0.0068620368760529005,    -0.006762900683506128,    -0.0066305675756926155,    -0.00646696244866887,    -0.006274068947767563,    -0.006054095814242929,    -0.0058089264241534076,    -0.005541035510098375,    -0.005252279037886353,    -0.004945031807804129,    -0.004621670593236145,    -0.004284369920502227,    -0.003935505336691309,    -0.0035773608021516137,    -0.0032120394918615683,    -0.0028417218921490055,    -0.002468260301862593,    -0.0020963876502479964,    -0.0017195561866995873,    -0.0013546785675169304,    -0.0009895247437558183,    -0.0006296005356373679,    -0.0002799696936324717,    0.00005849980158161824,    0.0003860391202902529,    0.0007018867678747181,    0.0010045690459120843,    0.0012926118931092972,    0.0015643564184398945,    0.0018188203182857804,    0.002056324802981239,    0.0022758592957851788,    0.002477856491791658,    0.002661647372342504,    0.002826966057696581,    0.0029734835473811155,    0.0031011259873207366,    0.0032100011629779615,    0.003300374368830668,    0.003372744288160786,    0.0034275901596743786,    0.00346544617544127,    0.003487024926580723,    0.0034928589363555137,    0.00348370126489233,    0.0034602078573979502,    0.003423120728613286,    0.003373275427426179,    0.0033114996375323753,    0.003238837936508139,    0.00315623470697179,    0.0030647286416823558,    0.0029653540222406116,    0.0028590361951993043,    0.0027467683378931368,    0.002629506399721181,    0.002508166194956474,    0.002383672659264704,    0.0022567566738769186,    0.002128471863076254,    0.0019991579415749683,    0.0018700914504121836,    0.0017417157238882276,    0.0016147643011084855,    0.001490070275243389,    0.0013680375075057851,    0.0012491667970169805,    0.001134110218761504,    0.0010233321389754753,    0.000917068197598276,    0.0008156232239328851,    0.003135815035675548
-096946,    0.002947120990883713,    0.0021009777555761797,    0.0012815018066687268,    0.0004919846584003508,    -0.0002656979807816483,    -0.0009892344368254917,    -0.0016765768456949962,    -0.0023258420785969196,    -0.002935495552851842,    -0.0035043462024212605,    -0.004031251472901679,    -0.0045153171035821945,    -0.004955865565614219,    -0.0053521596030233955,    -0.0057040303527059145,    -0.006011320357808483,    -0.006274267867821416,    -0.006493264006045824,    -0.006668838708546407,    -0.006801741377343995,    -0.006892771889917669,    -0.006943019919480639,    -0.0069537046122919695,    -0.006926182735003765,    -0.0068620368760529005,    -0.006762900683506128,    -0.0066305675756926155,    -0.00646696244866887,    -0.006274068947767563,    -0.006054095814242929,    -0.0058089264241534076,    -0.005541035510098375,    -0.005252279037886353,    -0.004945031807804129,    -0.004621670593236145,    -0.004284369920502227,    -0.003935505336691309,    -0.0035773608021516137,    -0.0032120394918615683,    -0.0028417218921490055,    -0.002468260301862593,    -0.0020963876502479964,    -0.0017195561866995873,    -0.0013546785675169304,    -0.0009895247437558183,    -0.0006296005356373679,    -0.0002799696936324717,    0.00005849980158161824,    0.0003860391202902529,    0.0007018867678747181,    0.0010045690459120843,    0.0012926118931092972,    0.0015643564184398945,    0.0018188203182857804,    0.002056324802981239,    0.0022758592957851788,    0.002477856491791658,    0.002661647372342504,    0.002826966057696581,    0.0029734835473811155,    0.0031011259873207366,    0.0032100011629779615,    0.003300374368830668,    0.003372744288160786,    0.0034275901596743786,    0.00346544617544127,    0.003487024926580723,    0.0034928589363555137,    0.00348370126489233,    0.0034602078573979502,    0.003423120728613286,    0.003373275427426179,    0.0033114996375323753,    0.003238837936508139,    0.00315623470697179,    0.0030647286416823558,    0.0029653540222406116,    0.0028590361951993043,    0.0027467683378931368,    0.002629506399721181,    0.002508166194956474,    0.002383672659264704,    0.0022567566738769186,    0.002128471863076254,    0.0019991579415749683,    0.0018700914504121836,    0.0017417157238882276,    0.0016147643011084855,    0.001490070275243389,    0.0013680375075057851,    0.0012491667970169805,    0.001134110218761504,    0.0010233321389754753,    0.000917068197598276,    0.0008156232239328851,    0.003135815035675548
+.003818897132096946,    0.002947120990883713,    0.0021009777555761797,    0.0012815018066687268,    0.0004919846584003508,    -0.0002656979807816483,    -0.0009892344368254917,    -0.0016765768456949962,    -0.0023258420785969196,    -0.002935495552851842,    -0.0035043462024212605,    -0.004031251472901679,    -0.0045153171035821945,    -0.004955865565614219,    -0.0053521596030233955,    -0.0057040303527059145,    -0.006011320357808483,    -0.006274267867821416,    -0.006493264006045824,    -0.006668838708546407,    -0.006801741377343995,    -0.006892771889917669,    -0.006943019919480639,    -0.0069537046122919695,    -0.006926182735003765,    -0.0068620368760529005,    -0.006762900683506128,    -0.0066305675756926155,    -0.00646696244866887,    -0.006274068947767563,    -0.006054095814242929,    -0.0058089264241534076,    -0.005541035510098375,    -0.005252279037886353,    -0.004945031807804129,    -0.004621670593236145,    -0.004284369920502227,    -0.003935505336691309,    -0.0035773608021516137,    -0.0032120394918615683,    -0.0028417218921490055,    -0.002468260301862593,    -0.0020963876502479964,    -0.0017195561866995873,    -0.0013546785675169304,    -0.0009895247437558183,    -0.0006296005356373679,    -0.0002799696936324717,    0.00005849980158161824,    0.0003860391202902529,    0.0007018867678747181,    0.0010045690459120843,    0.0012926118931092972,    0.0015643564184398945,    0.0018188203182857804,    0.002056324802981239,    0.0022758592957851788,    0.002477856491791658,    0.002661647372342504,    0.002826966057696581,    0.0029734835473811155,    0.0031011259873207366,    0.0032100011629779615,    0.003300374368830668,    0.003372744288160786,    0.0034275901596743786,    0.00346544617544127,    0.003487024926580723,    0.0034928589363555137,    0.00348370126489233,    0.0034602078573979502,    0.003423120728613286,    0.003373275427426179,    0.0033114996375323753,    0.003238837936508139,    0.00315623470697179,    0.0030647286416823558,    0.0029653540222406116,    0.0028590361951993043,    0.0027467683378931368,    0.002629506399721181,    0.002508166194956474,    0.002383672659264704,    0.0022567566738769186,    0.002128471863076254,    0.0019991579415749683,    0.0018700914504121836,    0.0017417157238882276,    0.0016147643011084855,    0.001490070275243389,    0.0013680375075057851,    0.0012491667970169805,    0.001134110218761504,    0.0010233321389754753,    0.000917068197598276,    0.0008156232239328851,    0.003135815035675548
 7,    0.005736960631925176,    0.005902264421456515,    0.006068673112862706,    0.006236075536115428,    0.006404404103216645,    0.006573347381526989,    0.006743241263261084,    0.006913918086775748,    0.007085185727911214,    0.007255841416075524,    0.007427788300814843,    0.007599440425756014,    0.007771491831017079,    0.007940210385740073,    0.008115982431613405,    0.008286230477311076,    0.008455728261315427,    0.008624828065636171,    0.0087938382520137,    0.008961934603559608,    0.009129309914478244,    0.009295705048569773,    0.009460895719293651,    0.009624512383898252,    0.009786590519239425,    0.009946995212091796,    0.010105592312872629,    0.010262212502414601,    0.010416818688520148,    0.010569268906811192,    0.010719396502249774,    0.010867082742078902,    0.011012274230511132,    0.011154883295408143,    0.01129473907939671,    0.011431766458575066,    0.011565861880187342,    0.011696890630696698,    0.011824548066976817,    0.011948823922340134,    0.012069629781346847,    0.012186937947306629,    0.012300432892104241,    0.01241055721228422,    0.012517086983512674,    0.012619772868365714,    0.01271694508250919,    0.012811738843612799,    0.012901614577029171,    0.012987520090940792,    0.013067705672196494,    0.013146659639966262,    0.013218602399208508,    0.013285987093409357,    0.013349032229359648,    0.013407929990549725,    0.013461999810303231,    0.013511437444384976,    0.013556082697096088,    0.013595835757053917,    0.013630499982440026,    0.01366023670087255,    0.013685042776887582,    0.013704903172994373,    0.013719772986706352,    0.013729721512429531,    0.01373472352074017,    0.01373472352074017,    0.013729721512429531,    0.013719772986706352,    0.013704903172994373,    0.013685042776887582,    0.01366023670087255,    0.013630499982440026,    0.013595835757053917,    0.013556082697096088,    0.013511437444384976,    0.013461999810303231,    0.013407929990549725,    0.013349032229359648,    0.013285987093409357,    0.013218602399208508,    0.013146659639966262,    0.013067705672196494,    0.012987520090940792,    0.012901614577029171,    0.012811738843612799,    0.01271694508250919,    0.012619772868365714,    0.012517086983512674,    0.01241055721228422,    0.012300432892104241,    0.012186937947306629,    0.012069629781346847,    0.011948823922340134,    0.011824548066976817,    0.011696890630696698,    0.011565861880187342,    0.011431766458575066,    0.01129473907939671,    0.011154883295408143,    0.011012274230511132,    0.010867082742078902,    0.010719396502249774,    0.010569268906811192,    0.010416818688520148,    0.010262212502414601,    0.010105592312872629,    0.009946995212091796,    0.009786590519239425,    0.009624512383898252,    0.009460895719293651,    0.009295705048569773,    0.009129309914478244,    0.008961934603559608,    0.0087938382520137,    0.008624828065636171,    0.008455728261315427,    0.008286230477311076,    0.008115982431613405,    0.007940210385740073,    0.007771491831017079,    0.007599440425756014,    0.007427788300814843,    0.007255841416075524,    0.007085185727911214,    0.006913918086775748,    0.006743241263261084,    0.006573347381526989,    0.006404404103216645,    0.006236075536115428,    0.006068673112862706,    0.005902264421456515,    0.005736960631925176,    0.00557279812512997,    0.005410043882397958,    0.005248795189805357,    0.005089107569792517,    0.004931017978539705,    0.00477464934326076,    0.004620059305184111,    0.004467271202856345,    0.004316384032044447,    0.004167535061341574,    0.004020837780560375,    0.003876285696289593,    0.00373401564369845,    0.003594116005810746,    0.00345667963318062,    0.0033216131163189126,    0.0031892620828723227,    0.003059760096689252,    0.0029332425986383416,    0.0028092893752555753,    0.0026886907797787993,    0.0025707750602413674,    0.0024546715656463027,    0.002324224442263978,    0.0022249923434846707,    0.002115750178775707,    0.0020102102191501834,    0.0019074086707092258,    0.0018082288964809644,    0.0017113538530254156
\ No newline at end of file
 };
-0.005736960631925176,    0.005902264421456515,    0.006068673112862706,    0.006236075536115428,    0.006404404103216645,    0.006573347381526989,    0.006743241263261084,    0.006913918086775748,    0.007085185727911214,    0.007255841416075524,    0.007427788300814843,    0.007599440425756014,    0.007771491831017079,    0.007940210385740073,    0.008115982431613405,    0.008286230477311076,    0.008455728261315427,    0.008624828065636171,    0.0087938382520137,    0.008961934603559608,    0.009129309914478244,    0.009295705048569773,    0.009460895719293651,    0.009624512383898252,    0.009786590519239425,    0.009946995212091796,    0.010105592312872629,    0.010262212502414601,    0.010416818688520148,    0.010569268906811192,    0.010719396502249774,    0.010867082742078902,    0.011012274230511132,    0.011154883295408143,    0.01129473907939671,    0.011431766458575066,    0.011565861880187342,    0.011696890630696698,    0.011824548066976817,    0.011948823922340134,    0.012069629781346847,    0.012186937947306629,    0.012300432892104241,    0.01241055721228422,    0.012517086983512674,    0.012619772868365714,    0.01271694508250919,    0.012811738843612799,    0.012901614577029171,    0.012987520090940792,    0.013067705672196494,    0.013146659639966262,    0.013218602399208508,    0.013285987093409357,    0.013349032229359648,    0.013407929990549725,    0.013461999810303231,    0.013511437444384976,    0.013556082697096088,    0.013595835757053917,    0.013630499982440026,    0.01366023670087255,    0.013685042776887582,    0.013704903172994373,    0.013719772986706352,    0.013729721512429531,    0.01373472352074017,    0.01373472352074017,    0.013729721512429531,    0.013719772986706352,    0.013704903172994373,    0.013685042776887582,    0.01366023670087255,    0.013630499982440026,    0.013595835757053917,    0.013556082697096088,    0.013511437444384976,    0.013461999810303231,    0.013407929990549725,    0.013349032229359648,    0.013285987093409357,    0.013218602399208508,    0.013146659639966262,    0.013067705672196494,    0.012987520090940792,    0.012901614577029171,    0.012811738843612799,    0.01271694508250919,    0.012619772868365714,    0.012517086983512674,    0.01241055721228422,    0.012300432892104241,    0.012186937947306629,    0.012069629781346847,    0.011948823922340134,    0.011824548066976817,    0.011696890630696698,    0.011565861880187342,    0.011431766458575066,    0.01129473907939671,    0.011154883295408143,    0.011012274230511132,    0.010867082742078902,    0.010719396502249774,    0.010569268906811192,    0.010416818688520148,    0.010262212502414601,    0.010105592312872629,    0.009946995212091796,    0.009786590519239425,    0.009624512383898252,    0.009460895719293651,    0.009295705048569773,    0.009129309914478244,    0.008961934603559608,    0.0087938382520137,    0.008624828065636171,    0.008455728261315427,    0.008286230477311076,    0.008115982431613405,    0.007940210385740073,    0.007771491831017079,    0.007599440425756014,    0.007427788300814843,    0.007255841416075524,    0.007085185727911214,    0.006913918086775748,    0.006743241263261084,    0.006573347381526989,    0.006404404103216645,    0.006236075536115428,    0.006068673112862706,    0.005902264421456515,    0.005736960631925176,    0.00557279812512997,    0.005410043882397958,    0.005248795189805357,    0.005089107569792517,    0.004931017978539705,    0.00477464934326076,    0.004620059305184111,    0.004467271202856345,    0.004316384032044447,    0.004167535061341574,    0.004020837780560375,    0.003876285696289593,    0.00373401564369845,    0.003594116005810746,    0.00345667963318062,    0.0033216131163189126,    0.0031892620828723227,    0.003059760096689252,    0.0029332425986383416,    0.0028092893752555753,    0.0026886907797787993,    0.0025707750602413674,    0.0024546715656463027,    0.002324224442263978,    0.0022249923434846707,    0.002115750178775707,    0.0020102102191501834,    0.0019074086707092258,    0.0018082288964809644,    0.0017113538530254156,    0
\ No newline at end of file
+  0.00557279812512997,    0.005736960631925176,    0.005902264421456515,    0.006068673112862706,    0.006236075536115428,    0.006404404103216645,    0.006573347381526989,    0.006743241263261084,    0.006913918086775748,    0.007085185727911214,    0.007255841416075524,    0.007427788300814843,    0.007599440425756014,    0.007771491831017079,    0.007940210385740073,    0.008115982431613405,    0.008286230477311076,    0.008455728261315427,    0.008624828065636171,    0.0087938382520137,    0.008961934603559608,    0.009129309914478244,    0.009295705048569773,    0.009460895719293651,    0.009624512383898252,    0.009786590519239425,    0.009946995212091796,    0.010105592312872629,    0.010262212502414601,    0.010416818688520148,    0.010569268906811192,    0.010719396502249774,    0.010867082742078902,    0.011012274230511132,    0.011154883295408143,    0.01129473907939671,    0.011431766458575066,    0.011565861880187342,    0.011696890630696698,    0.011824548066976817,    0.011948823922340134,    0.012069629781346847,    0.012186937947306629,    0.012300432892104241,    0.01241055721228422,    0.012517086983512674,    0.012619772868365714,    0.01271694508250919,    0.012811738843612799,    0.012901614577029171,    0.012987520090940792,    0.013067705672196494,    0.013146659639966262,    0.013218602399208508,    0.013285987093409357,    0.013349032229359648,    0.013407929990549725,    0.013461999810303231,    0.013511437444384976,    0.013556082697096088,    0.013595835757053917,    0.013630499982440026,    0.01366023670087255,    0.013685042776887582,    0.013704903172994373,    0.013719772986706352,    0.013729721512429531,    0.01373472352074017,    0.01373472352074017,    0.013729721512429531,    0.013719772986706352,    0.013704903172994373,    0.013685042776887582,    0.01366023670087255,    0.013630499982440026,    0.013595835757053917,    0.013556082697096088,    0.013511437444384976,    0.013461999810303231,    0.013407929990549725,    0.013349032229359648,    0.013285987093409357,    0.013218602399208508,    0.013146659639966262,    0.013067705672196494,    0.012987520090940792,    0.012901614577029171,    0.012811738843612799,    0.01271694508250919,    0.012619772868365714,    0.012517086983512674,    0.01241055721228422,    0.012300432892104241,    0.012186937947306629,    0.012069629781346847,    0.011948823922340134,    0.011824548066976817,    0.011696890630696698,    0.011565861880187342,    0.011431766458575066,    0.01129473907939671,    0.011154883295408143,    0.011012274230511132,    0.010867082742078902,    0.010719396502249774,    0.010569268906811192,    0.010416818688520148,    0.010262212502414601,    0.010105592312872629,    0.009946995212091796,    0.009786590519239425,    0.009624512383898252,    0.009460895719293651,    0.009295705048569773,    0.009129309914478244,    0.008961934603559608,    0.0087938382520137,    0.008624828065636171,    0.008455728261315427,    0.008286230477311076,    0.008115982431613405,    0.007940210385740073,    0.007771491831017079,    0.007599440425756014,    0.007427788300814843,    0.007255841416075524,    0.007085185727911214,    0.006913918086775748,    0.006743241263261084,    0.006573347381526989,    0.006404404103216645,    0.006236075536115428,    0.006068673112862706,    0.005902264421456515,    0.005736960631925176,    0.00557279812512997,    0.005410043882397958,    0.005248795189805357,    0.005089107569792517,    0.004931017978539705,    0.00477464934326076,    0.004620059305184111,    0.004467271202856345,    0.004316384032044447,    0.004167535061341574,    0.004020837780560375,    0.003876285696289593,    0.00373401564369845,    0.003594116005810746,    0.00345667963318062,    0.0033216131163189126,    0.0031892620828723227,    0.003059760096689252,    0.0029332425986383416,    0.0028092893752555753,    0.0026886907797787993,    0.0025707750602413674,    0.0024546715656463027,    0.002324224442263978,    0.0022249923434846707,    0.002115750178775707,    0.0020102102191501834,    0.0019074086707092258,    0.0018082288964809644,    0
\ No newline at end of file
 7,    0.005089107569792517,    0.004931017978539705,    0.00477464934326076,    0.004620059305184111,    0.004467271202856345,    0.004316384032044447,    0.004167535061341574,    0.004020837780560375,    0.003876285696289593,    0.00373401564369845,    0.003594116005810746,    0.00345667963318062,    0.0033216131163189126,    0.0031892620828723227,    0.003059760096689252,    0.0029332425986383416,    0.0028092893752555753,    0.0026886907797787993,    0.0025707750602413674,    0.0024546715656463027,    0.002324224442263978,    0.0022249923434846707,    0.002115750178775707,    0.0020102102191501834,    0.0019074086707092258,    0.0018082288964809644,    0.0017113538530254156,    0.0016175658016292192,    0.0015269066196715306,    0.0014394035452673572,    0.0013547197757430203,    0.0012730564419046215,    0.0011944092399743605,    0.0011188000414977899,    0.001046184181770156,    0.000976697360607544,    0.0009103261049980538,    0.00084702149975344,    0.0007867375202056556,    0.0007295120216703175,    0.00067534060229161,    0.0006241866818625697,    0.0005760959724897604,    0.0005311398297784606,    0.0004893648798719514,    0.00045068714217736007,    0.00041517688767673063,    0.0003828493219762104,    0.0003537347795633787,    0.0003276748319944884,    0.00030498547559247845,    0.0002857208679875607,    0.0002699368701027846,    0.0002570861260137623,    0.0002481761013286244,    0.00024263723882202515,    0.00024079274850113426,    -0.007573012406345277
-  0.005089107569792517,    0.004931017978539705,    0.00477464934326076,    0.004620059305184111,    0.004467271202856345,    0.004316384032044447,    0.004167535061341574,    0.004020837780560375,    0.003876285696289593,    0.00373401564369845,    0.003594116005810746,    0.00345667963318062,    0.0033216131163189126,    0.0031892620828723227,    0.003059760096689252,    0.0029332425986383416,    0.0028092893752555753,    0.0026886907797787993,    0.0025707750602413674,    0.0024546715656463027,    0.002324224442263978,    0.0022249923434846707,    0.002115750178775707,    0.0020102102191501834,    0.0019074086707092258,    0.0018082288964809644,    0.0017113538530254156,    0.0016175658016292192,    0.0015269066196715306,    0.0014394035452673572,    0.0013547197757430203,    0.0012730564419046215,    0.0011944092399743605,    0.0011188000414977899,    0.001046184181770156,    0.000976697360607544,    0.0009103261049980538,    0.00084702149975344,    0.0007867375202056556,    0.0007295120216703175,    0.00067534060229161,    0.0006241866818625697,    0.0005760959724897604,    0.0005311398297784606,    0.0004893648798719514,    0.00045068714217736007,    0.00041517688767673063,    0.0003828493219762104,    0.0003537347795633787,    0.0003276748319944884,    0.00030498547559247845,    0.0002857208679875607,    0.0002699368701027846,    0.0002570861260137623,    0.0002481761013286244,    0.00024263723882202515,    0.00024079274850113426,    -0.007573012406345277
+5189805357,    0.005089107569792517,    0.004931017978539705,    0.00477464934326076,    0.004620059305184111,    0.004467271202856345,    0.004316384032044447,    0.004167535061341574,    0.004020837780560375,    0.003876285696289593,    0.00373401564369845,    0.003594116005810746,    0.00345667963318062,    0.0033216131163189126,    0.0031892620828723227,    0.003059760096689252,    0.0029332425986383416,    0.0028092893752555753,    0.0026886907797787993,    0.0025707750602413674,    0.0024546715656463027,    0.002324224442263978,    0.0022249923434846707,    0.002115750178775707,    0.0020102102191501834,    0.0019074086707092258,    0.0018082288964809644,    0.0017113538530254156,    0.0016175658016292192,    0.0015269066196715306,    0.0014394035452673572,    0.0013547197757430203,    0.0012730564419046215,    0.0011944092399743605,    0.0011188000414977899,    0.001046184181770156,    0.000976697360607544,    0.0009103261049980538,    0.00084702149975344,    0.0007867375202056556,    0.0007295120216703175,    0.00067534060229161,    0.0006241866818625697,    0.0005760959724897604,    0.0005311398297784606,    0.0004893648798719514,    0.00045068714217736007,    0.00041517688767673063,    0.0003828493219762104,    0.0003537347795633787,    0.0003276748319944884,    0.00030498547559247845,    0.0002857208679875607,    0.0002699368701027846,    0.0002570861260137623,    0.0002481761013286244,    0.00024263723882202515,    0.00024079274850113426,    -0.007573012406345277
 78994388,    -0.00041922406056782083,    0.0012010034203710784,    0.0006552234666252462,    -0.0007096577214822187,    -0.0006850628390191059,    0.00032465365599127654,    0.0005862297350582802,    -0.00006832501012358436,    -0.0004344444061086839,    -0.00007473591299809917,    0.00027753923597010266,    0.00012753607518766694,    -0.0001504708418330321,    -0.00012648324239817438,    0.00006083206665324362,    0.0000961395818492714,    -0.00001118322316939516,    -0.00006163665493961978,    -0.000011636477685383897,    0.00003091988960026406,    0.000014692437654954816,    -0.000012481751035611902,    -0.000011653029986124283,    0.0000017841093721093506,    0.000005239591854415941,    5.807441351521463e-7,    -0.00000213110629785921,    -0.00000136947295895967,    -2.84059575423864e-7
-4388,    -0.00041922406056782083,    0.0012010034203710784,    0.0006552234666252462,    -0.0007096577214822187,    -0.0006850628390191059,    0.00032465365599127654,    0.0005862297350582802,    -0.00006832501012358436,    -0.0004344444061086839,    -0.00007473591299809917,    0.00027753923597010266,    0.00012753607518766694,    -0.0001504708418330321,    -0.00012648324239817438,    0.00006083206665324362,    0.0000961395818492714,    -0.00001118322316939516,    -0.00006163665493961978,    -0.000011636477685383897,    0.00003091988960026406,    0.000014692437654954816,    -0.000012481751035611902,    -0.000011653029986124283,    0.0000017841093721093506,    0.000005239591854415941,    5.807441351521463e-7,    -0.00000213110629785921,    -0.00000136947295895967,    -2.84059575423864e-7
+336,    -0.0017446179378994388,    -0.00041922406056782083,    0.0012010034203710784,    0.0006552234666252462,    -0.0007096577214822187,    -0.0006850628390191059,    0.00032465365599127654,    0.0005862297350582802,    -0.00006832501012358436,    -0.0004344444061086839,    -0.00007473591299809917,    0.00027753923597010266,    0.00012753607518766694,    -0.0001504708418330321,    -0.00012648324239817438,    0.00006083206665324362,    0.0000961395818492714,    -0.00001118322316939516,    -0.00006163665493961978,    -0.000011636477685383897,    0.00003091988960026406,    0.000014692437654954816,    -0.000012481751035611902,    -0.000011653029986124283,    0.0000017841093721093506,    0.000005239591854415941,    5.807441351521463e-7,    -0.00000213110629785921,    -0.00000136947295895967,    -2.84059575423864e-7
 1779,    -0.03735668670551693,    -0.0005458966005379449,    0.0578178869957579,    0.12496957303698586,    0.18372600900451644,    0.21795911568314993,    0.21795911568314993,    0.18372600900451644,    0.12496957303698586,    0.0578178869957579,    -0.0005458966005379449,    -0.03735668670551693,    -0.04790631293501779,    -0.036160130412882435,    -0.01233979307221452,    0.011414259133477645,    0.02555053211054643,    0.026109899142542758,    0.01526523041211863,    -0.0005292356782833587,    -0.013786276388279539,    -0.019193722858760427,    -0.015510462180576574,    -0.00554207852540761,    0.0055655403444453775,    0.012810645017913123,    0.013466881500422878,    0.007998600315936934,    -0.0004986705357686102,    -0.007935453568187856,    -0.011124936147882954,    -0.00908888688929085,    -0.003263596560752136,    0.003376641721920036,    0.00778770755309392,    0.008213402548972962,    0.004842595616255233,    -0.0004583930086451031,    -0.0051353491910507984,    -0.0071497618238720055,    -0.005843180111542266,    -0.0021053850268023615,    0.002164099554982996,    0.004999101428335298,    0.005254266475282044,    0.003046185830666762,    -0.0004124431830693066,    -0.0034548726172607498,    -0.004750945120551563,    -0.003874469283244301,    -0.001415068708295585,    0.0013786588356217962,    0.003219398725098763,    0.0033649169125380706,    0.0019025392919524162,    -0.0003642960983689493,    -0.0023436048910665127,    -0.00317200799245191,    -0.0025836938014065975,    -0.0009743823002432432,    0.000837174097496827,    0.0020180799074488486,    0.0020968295391595774,    0.0011425257824338887,    -0.00031822317984990035,    -0.0015812527530506791,    -0.0020995520812018714,    -0.0017133793271509106,    -0.0006853292543951153,    0.0004602570434921762,    0.0011981314765901019,    0.0012391753523202087,    0.0006358082850902164,    -0.00027554321698262794,    -0.0010555177901930952,    -0.001368894036877941,    -0.0011250441730682327,    -0.0004919858457618222,    0.00020580176646200433,    0.0006504775398685704,    0.0006717577010285365,    0.00030790928383371996,    -0.00023554905807185743,    -0.0006955854650565154,    -0.0008768456304295432,    -0.0007303801286775824,    -0.0003593242009009715,    0.00004577001768172358,    0.0003015617300329922,    0.00031390651451180623,    0.00010787721721971545,    -0.0001968527747134386,    -0.00045235278384860993,    -0.000550680089032831,    -0.0004679330143401381,    -0.00026298229853436046,    -0.000041503003504151876,    0.00009819903503597289,    0.00010675981100488967,    2.4069038430437714e-7,    -0.00015737268974254042,    -0.00028781004597914193,    -0.00033660459070401045,    -0.00029242213522170924,    -0.0001870435534541462,    -0.00007376494795165521,    -0.000001824861163195929,    0.000005858218684625342,    -0.00004241909459592675,    -0.00011458014625437172,    -0.0001738448733058993,    -0.00019443471041769651,    -0.00017229784061896603,    -0.00012208654155480072,    -0.00006864404983689099,    -0.00003337527183661095,    -0.000026338754429996997,    -0.000043204247279965386,    -0.000070350790919461,    -0.00009207287115371104,    -0.00009817726370665003,    -0.00008704299086494871,    -0.00006494904958257674,    -0.00004148092321827023,    -0.000024937785475375726,    -0.000018929805847104457,    -0.000021726870316473222,    -0.000028580071407296435,    -0.00003356141383522181,    -0.00003403970018224806,    -0.000028297461945285203,    -0.000020341389435584184,    -0.000010486216859223391,    -0.000005005316694254475
-,    -0.03735668670551693,    -0.0005458966005379449,    0.0578178869957579,    0.12496957303698586,    0.18372600900451644,    0.21795911568314993,    0.21795911568314993,    0.18372600900451644,    0.12496957303698586,    0.0578178869957579,    -0.0005458966005379449,    -0.03735668670551693,    -0.04790631293501779,    -0.036160130412882435,    -0.01233979307221452,    0.011414259133477645,    0.02555053211054643,    0.026109899142542758,    0.01526523041211863,    -0.0005292356782833587,    -0.013786276388279539,    -0.019193722858760427,    -0.015510462180576574,    -0.00554207852540761,    0.0055655403444453775,    0.012810645017913123,    0.013466881500422878,    0.007998600315936934,    -0.0004986705357686102,    -0.007935453568187856,    -0.011124936147882954,    -0.00908888688929085,    -0.003263596560752136,    0.003376641721920036,    0.00778770755309392,    0.008213402548972962,    0.004842595616255233,    -0.0004583930086451031,    -0.0051353491910507984,    -0.0071497618238720055,    -0.005843180111542266,    -0.0021053850268023615,    0.002164099554982996,    0.004999101428335298,    0.005254266475282044,    0.003046185830666762,    -0.0004124431830693066,    -0.0034548726172607498,    -0.004750945120551563,    -0.003874469283244301,    -0.001415068708295585,    0.0013786588356217962,    0.003219398725098763,    0.0033649169125380706,    0.0019025392919524162,    -0.0003642960983689493,    -0.0023436048910665127,    -0.00317200799245191,    -0.0025836938014065975,    -0.0009743823002432432,    0.000837174097496827,    0.0020180799074488486,    0.0020968295391595774,    0.0011425257824338887,    -0.00031822317984990035,    -0.0015812527530506791,    -0.0020995520812018714,    -0.0017133793271509106,    -0.0006853292543951153,    0.0004602570434921762,    0.0011981314765901019,    0.0012391753523202087,    0.0006358082850902164,    -0.00027554321698262794,    -0.0010555177901930952,    -0.001368894036877941,    -0.0011250441730682327,    -0.0004919858457618222,    0.00020580176646200433,    0.0006504775398685704,    0.0006717577010285365,    0.00030790928383371996,    -0.00023554905807185743,    -0.0006955854650565154,    -0.0008768456304295432,    -0.0007303801286775824,    -0.0003593242009009715,    0.00004577001768172358,    0.0003015617300329922,    0.00031390651451180623,    0.00010787721721971545,    -0.0001968527747134386,    -0.00045235278384860993,    -0.000550680089032831,    -0.0004679330143401381,    -0.00026298229853436046,    -0.000041503003504151876,    0.00009819903503597289,    0.00010675981100488967,    2.4069038430437714e-7,    -0.00015737268974254042,    -0.00028781004597914193,    -0.00033660459070401045,    -0.00029242213522170924,    -0.0001870435534541462,    -0.00007376494795165521,    -0.000001824861163195929,    0.000005858218684625342,    -0.00004241909459592675,    -0.00011458014625437172,    -0.0001738448733058993,    -0.00019443471041769651,    -0.00017229784061896603,    -0.00012208654155480072,    -0.00006864404983689099,    -0.00003337527183661095,    -0.000026338754429996997,    -0.000043204247279965386,    -0.000070350790919461,    -0.00009207287115371104,    -0.00009817726370665003,    -0.00008704299086494871,    -0.00006494904958257674,    -0.00004148092321827023,    -0.000024937785475375726,    -0.000018929805847104457,    -0.000021726870316473222,    -0.000028580071407296435,    -0.00003356141383522181,    -0.00003403970018224806,    -0.000028297461945285203,    -0.000020341389435584184,    -0.000010486216859223391,    -0.000005005316694254475
+60130412882435,    -0.04790631293501779,    -0.03735668670551693,    -0.0005458966005379449,    0.0578178869957579,    0.12496957303698586,    0.18372600900451644,    0.21795911568314993,    0.21795911568314993,    0.18372600900451644,    0.12496957303698586,    0.0578178869957579,    -0.0005458966005379449,    -0.03735668670551693,    -0.04790631293501779,    -0.036160130412882435,    -0.01233979307221452,    0.011414259133477645,    0.02555053211054643,    0.026109899142542758,    0.01526523041211863,    -0.0005292356782833587,    -0.013786276388279539,    -0.019193722858760427,    -0.015510462180576574,    -0.00554207852540761,    0.0055655403444453775,    0.012810645017913123,    0.013466881500422878,    0.007998600315936934,    -0.0004986705357686102,    -0.007935453568187856,    -0.011124936147882954,    -0.00908888688929085,    -0.003263596560752136,    0.003376641721920036,    0.00778770755309392,    0.008213402548972962,    0.004842595616255233,    -0.0004583930086451031,    -0.0051353491910507984,    -0.0071497618238720055,    -0.005843180111542266,    -0.0021053850268023615,    0.002164099554982996,    0.004999101428335298,    0.005254266475282044,    0.003046185830666762,    -0.0004124431830693066,    -0.0034548726172607498,    -0.004750945120551563,    -0.003874469283244301,    -0.001415068708295585,    0.0013786588356217962,    0.003219398725098763,    0.0033649169125380706,    0.0019025392919524162,    -0.0003642960983689493,    -0.0023436048910665127,    -0.00317200799245191,    -0.0025836938014065975,    -0.0009743823002432432,    0.000837174097496827,    0.0020180799074488486,    0.0020968295391595774,    0.0011425257824338887,    -0.00031822317984990035,    -0.0015812527530506791,    -0.0020995520812018714,    -0.0017133793271509106,    -0.0006853292543951153,    0.0004602570434921762,    0.0011981314765901019,    0.0012391753523202087,    0.0006358082850902164,    -0.00027554321698262794,    -0.0010555177901930952,    -0.001368894036877941,    -0.0011250441730682327,    -0.0004919858457618222,    0.00020580176646200433,    0.0006504775398685704,    0.0006717577010285365,    0.00030790928383371996,    -0.00023554905807185743,    -0.0006955854650565154,    -0.0008768456304295432,    -0.0007303801286775824,    -0.0003593242009009715,    0.00004577001768172358,    0.0003015617300329922,    0.00031390651451180623,    0.00010787721721971545,    -0.0001968527747134386,    -0.00045235278384860993,    -0.000550680089032831,    -0.0004679330143401381,    -0.00026298229853436046,    -0.000041503003504151876,    0.00009819903503597289,    0.00010675981100488967,    2.4069038430437714e-7,    -0.00015737268974254042,    -0.00028781004597914193,    -0.00033660459070401045,    -0.00029242213522170924,    -0.0001870435534541462,    -0.00007376494795165521,    -0.000001824861163195929,    0.000005858218684625342,    -0.00004241909459592675,    -0.00011458014625437172,    -0.0001738448733058993,    -0.00019443471041769651,    -0.00017229784061896603,    -0.00012208654155480072,    -0.00006864404983689099,    -0.00003337527183661095,    -0.000026338754429996997,    -0.000043204247279965386,    -0.000070350790919461,    -0.00009207287115371104,    -0.00009817726370665003,    -0.00008704299086494871,    -0.00006494904958257674,    -0.00004148092321827023,    -0.000024937785475375726,    -0.000018929805847104457,    -0.000021726870316473222,    -0.000028580071407296435,    -0.00003356141383522181,    -0.00003403970018224806,    -0.000028297461945285203,    -0.000020341389435584184,    -0.000010486216859223391,    -0.000005005316694254475
 358005,    -0.0004962768841556523,    -0.0005966792410792791,    -0.0006363992327126103,    -0.0006072812580573203,    -0.0005078006712943802,    -0.00034391453642163835,    -0.0001291740152058233,    0.00011608199926386939,    0.0003663883172395964,    0.0005935643814352129,    0.0007697197860148682,    0.0008705060394986916,    0.0008782421413312541,    0.0007845404678866458,    0.0005921472961030223,    0.0003155390021514345,    -0.00001975662025403667,    -0.0003792242746719516,    -0.0007226903878816747,    -0.0010085916592065419,    -0.0011987843551975912,    -0.0012633390417589486,    -0.0011847927602402282,    -0.0009612078105002279,    -0.000607656728473499,    -0.00015580100244720835,    0.0003485912201162041,    0.0008499567444557006,    0.0012888238057625968,    0.0016085750487669262,    0.0017624573232133487,    0.0017198572703654494,    0.0014712649629561752,    0.0010309092850789008,    0.0004369297346610886,    -0.0002514846038907312,    -0.0009595058667715721,    -0.0016045955886596882,    -0.002105611566700304,    -0.002392827139552557,    -0.0024168530933362325,    -0.00215621955374809,    -0.0016217376891380843,    -0.0008577023023227786,    0.00006118480472750677,    0.0010364584424907685,    0.001956049351551786,    0.002706696800527712,    0.00318733017834542,    0.003322096376141488,    0.0030709922507173265,    0.0024373280210738995,    0.0014701293295941087,    0.0002616176696267551,    -0.0010608870493178752,    -0.002347699681593795,    -0.0034429894732297774,    -0.004203029219555798,    -0.00451398893736866,    -0.004307677839041472,    -0.0035726927213363046,    -0.0023597776381211666,    -0.0007800969761600126,    0.00100380173046076,    0.0027935634872831047,    0.0043761562977185555,    0.005547954061740437,    0.006139532362567163,    0.006038187372164252,    0.005205193104614497,    0.003685832364921369,    0.001610065959141185,    -0.000816509624547802,    -0.003331179568244694,    -0.005640769473740277,    -0.007453565321222198,    -0.008513609412918493,    -0.008633348531283494,    -0.0077207439401804495,    -0.005797651634024999,    -0.003006470630061831,    0.00039645931697321107,    0.004060688288708085,    0.007573881722373314,    0.010503477916637444,    0.012443852783009171,    0.013064660267980682,    0.012154652149365373,    0.009656403107118496,    0.005687627159122434,    0.000545686660735971,    -0.0053060804504155646,    -0.011269885881064536,    -0.016661104177372186,    -0.02076782817847515,    -0.022917127850131423,    -0.022542073972735464,    -0.01924294503235089,    -0.012836088871532723,    -0.0033855865368634104,    0.008786222880026725,    0.023111259021133423,    0.038810833745067747,    0.05495087979175688,    0.0705128544598909,    0.08447430461530625,    0.0958915908436123,    0.10397774191970133,    0.10816816138474043,    0.10816816138474043,    0.10397774191970133,    0.0958915908436123,    0.08447430461530625,    0.0705128544598909,    0.05495087979175688,    0.038810833745067747,    0.023111259021133423,    0.008786222880026725,    -0.0033855865368634104,    -0.012836088871532723,    -0.01924294503235089,    -0.022542073972735464,    -0.022917127850131423,    -0.02076782817847515,    -0.016661104177372186,    -0.011269885881064536,    -0.0053060804504155646,    0.000545686660735971,    0.005687627159122434,    0.009656403107118496,    0.012154652149365373,    0.013064660267980682,    0.012443852783009171,    0.010503477916637444,    0.007573881722373314,    0.004060688288708085,    0.00039645931697321107,    -0.003006470630061831,    -0.005797651634024999,    -0.0077207439401804495,    -0.008633348531283494,    -0.008513609412918493,    -0.007453565321222198,    -0.005640769473740277,    -0.003331179568244694,    -0.000816509624547802,    0.001610065959141185,    0.003685832364921369,    0.005205193104614497,    0.006038187372164252,    0.006139532362567163,    0.005547954061740437,    0.0043761562977185555,    0.0027935634872831047,    0.00100380173046076,    -0.0007800969761600126,    -0.0023597776381211666,    -0.0035726927213363046,    -0.004307677
\ No newline at end of file
 };
-,    -0.0004962768841556523,    -0.0005966792410792791,    -0.0006363992327126103,    -0.0006072812580573203,    -0.0005078006712943802,    -0.00034391453642163835,    -0.0001291740152058233,    0.00011608199926386939,    0.0003663883172395964,    0.0005935643814352129,    0.0007697197860148682,    0.0008705060394986916,    0.0008782421413312541,    0.0007845404678866458,    0.0005921472961030223,    0.0003155390021514345,    -0.00001975662025403667,    -0.0003792242746719516,    -0.0007226903878816747,    -0.0010085916592065419,    -0.0011987843551975912,    -0.0012633390417589486,    -0.0011847927602402282,    -0.0009612078105002279,    -0.000607656728473499,    -0.00015580100244720835,    0.0003485912201162041,    0.0008499567444557006,    0.0012888238057625968,    0.0016085750487669262,    0.0017624573232133487,    0.0017198572703654494,    0.0014712649629561752,    0.0010309092850789008,    0.0004369297346610886,    -0.0002514846038907312,    -0.0009595058667715721,    -0.0016045955886596882,    -0.002105611566700304,    -0.002392827139552557,    -0.0024168530933362325,    -0.00215621955374809,    -0.0016217376891380843,    -0.0008577023023227786,    0.00006118480472750677,    0.0010364584424907685,    0.001956049351551786,    0.002706696800527712,    0.00318733017834542,    0.003322096376141488,    0.0030709922507173265,    0.0024373280210738995,    0.0014701293295941087,    0.0002616176696267551,    -0.0010608870493178752,    -0.002347699681593795,    -0.0034429894732297774,    -0.004203029219555798,    -0.00451398893736866,    -0.004307677839041472,    -0.0035726927213363046,    -0.0023597776381211666,    -0.0007800969761600126,    0.00100380173046076,    0.0027935634872831047,    0.0043761562977185555,    0.005547954061740437,    0.006139532362567163,    0.006038187372164252,    0.005205193104614497,    0.003685832364921369,    0.001610065959141185,    -0.000816509624547802,    -0.003331179568244694,    -0.005640769473740277,    -0.007453565321222198,    -0.008513609412918493,    -0.008633348531283494,    -0.0077207439401804495,    -0.005797651634024999,    -0.003006470630061831,    0.00039645931697321107,    0.004060688288708085,    0.007573881722373314,    0.010503477916637444,    0.012443852783009171,    0.013064660267980682,    0.012154652149365373,    0.009656403107118496,    0.005687627159122434,    0.000545686660735971,    -0.0053060804504155646,    -0.011269885881064536,    -0.016661104177372186,    -0.02076782817847515,    -0.022917127850131423,    -0.022542073972735464,    -0.01924294503235089,    -0.012836088871532723,    -0.0033855865368634104,    0.008786222880026725,    0.023111259021133423,    0.038810833745067747,    0.05495087979175688,    0.0705128544598909,    0.08447430461530625,    0.0958915908436123,    0.10397774191970133,    0.10816816138474043,    0.10816816138474043,    0.10397774191970133,    0.0958915908436123,    0.08447430461530625,    0.0705128544598909,    0.05495087979175688,    0.038810833745067747,    0.023111259021133423,    0.008786222880026725,    -0.0033855865368634104,    -0.012836088871532723,    -0.01924294503235089,    -0.022542073972735464,    -0.022917127850131423,    -0.02076782817847515,    -0.016661104177372186,    -0.011269885881064536,    -0.0053060804504155646,    0.000545686660735971,    0.005687627159122434,    0.009656403107118496,    0.012154652149365373,    0.013064660267980682,    0.012443852783009171,    0.010503477916637444,    0.007573881722373314,    0.004060688288708085,    0.00039645931697321107,    -0.003006470630061831,    -0.005797651634024999,    -0.0077207439401804495,    -0.008633348531283494,    -0.008513609412918493,    -0.007453565321222198,    -0.005640769473740277,    -0.003331179568244694,    -0.000816509624547802,    0.001610065959141185,    0.003685832364921369,    0.005205193104614497,    0.006038187372164252,    0.006139532362567163,    0.005547954061740437,    0.0043761562977185555,    0.0027935634872831047,    0.00100380173046076,    -0.0007800969761600126,    -0.0023597776381211666,    -0.0035726927213363046,    -0.004307677839041
\ No newline at end of file
+ -0.00017002451555728345,    -0.00034851615605358005,    -0.0004962768841556523,    -0.0005966792410792791,    -0.0006363992327126103,    -0.0006072812580573203,    -0.0005078006712943802,    -0.00034391453642163835,    -0.0001291740152058233,    0.00011608199926386939,    0.0003663883172395964,    0.0005935643814352129,    0.0007697197860148682,    0.0008705060394986916,    0.0008782421413312541,    0.0007845404678866458,    0.0005921472961030223,    0.0003155390021514345,    -0.00001975662025403667,    -0.0003792242746719516,    -0.0007226903878816747,    -0.0010085916592065419,    -0.0011987843551975912,    -0.0012633390417589486,    -0.0011847927602402282,    -0.0009612078105002279,    -0.000607656728473499,    -0.00015580100244720835,    0.0003485912201162041,    0.0008499567444557006,    0.0012888238057625968,    0.0016085750487669262,    0.0017624573232133487,    0.0017198572703654494,    0.0014712649629561752,    0.0010309092850789008,    0.0004369297346610886,    -0.0002514846038907312,    -0.0009595058667715721,    -0.0016045955886596882,    -0.002105611566700304,    -0.002392827139552557,    -0.0024168530933362325,    -0.00215621955374809,    -0.0016217376891380843,    -0.0008577023023227786,    0.00006118480472750677,    0.0010364584424907685,    0.001956049351551786,    0.002706696800527712,    0.00318733017834542,    0.003322096376141488,    0.0030709922507173265,    0.0024373280210738995,    0.0014701293295941087,    0.0002616176696267551,    -0.0010608870493178752,    -0.002347699681593795,    -0.0034429894732297774,    -0.004203029219555798,    -0.00451398893736866,    -0.004307677839041472,    -0.0035726927213363046,    -0.0023597776381211666,    -0.0007800969761600126,    0.00100380173046076,    0.0027935634872831047,    0.0043761562977185555,    0.005547954061740437,    0.006139532362567163,    0.006038187372164252,    0.005205193104614497,    0.003685832364921369,    0.001610065959141185,    -0.000816509624547802,    -0.003331179568244694,    -0.005640769473740277,    -0.007453565321222198,    -0.008513609412918493,    -0.008633348531283494,    -0.0077207439401804495,    -0.005797651634024999,    -0.003006470630061831,    0.00039645931697321107,    0.004060688288708085,    0.007573881722373314,    0.010503477916637444,    0.012443852783009171,    0.013064660267980682,    0.012154652149365373,    0.009656403107118496,    0.005687627159122434,    0.000545686660735971,    -0.0053060804504155646,    -0.011269885881064536,    -0.016661104177372186,    -0.02076782817847515,    -0.022917127850131423,    -0.022542073972735464,    -0.01924294503235089,    -0.012836088871532723,    -0.0033855865368634104,    0.008786222880026725,    0.023111259021133423,    0.038810833745067747,    0.05495087979175688,    0.0705128544598909,    0.08447430461530625,    0.0958915908436123,    0.10397774191970133,    0.10816816138474043,    0.10816816138474043,    0.10397774191970133,    0.0958915908436123,    0.08447430461530625,    0.0705128544598909,    0.05495087979175688,    0.038810833745067747,    0.023111259021133423,    0.008786222880026725,    -0.0033855865368634104,    -0.012836088871532723,    -0.01924294503235089,    -0.022542073972735464,    -0.022917127850131423,    -0.02076782817847515,    -0.016661104177372186,    -0.011269885881064536,    -0.0053060804504155646,    0.000545686660735971,    0.005687627159122434,    0.009656403107118496,    0.012154652149365373,    0.013064660267980682,    0.012443852783009171,    0.010503477916637444,    0.007573881722373314,    0.004060688288708085,    0.00039645931697321107,    -0.003006470630061831,    -0.005797651634024999,    -0.0077207439401804495,    -0.008633348531283494,    -0.008513609412918493,    -0.007453565321222198,    -0.005640769473740277,    -0.003331179568244694,    -0.000816509624547802,    0.001610065959141185,    0.003685832364921369,    0.005205193104614497,    0.006038187372164252,    0.006139532362567163,    0.005547954061740437,    0.0043761562977185555,    0.0027935634872831047,    0.00100380173046076,    -0.0007800969761600126,    -0.00235977763812116
\ No newline at end of file
 472,    -0.00451398893736866,    -0.004203029219555798,    -0.0034429894732297774,    -0.002347699681593795,    -0.0010608870493178752,    0.0002616176696267551,    0.0014701293295941087,    0.0024373280210738995,    0.0030709922507173265,    0.003322096376141488,    0.00318733017834542,    0.002706696800527712,    0.001956049351551786,    0.0010364584424907685,    0.00006118480472750677,    -0.0008577023023227786,    -0.0016217376891380843,    -0.00215621955374809,    -0.0024168530933362325,    -0.002392827139552557,    -0.002105611566700304,    -0.0016045955886596882,    -0.0009595058667715721,    -0.0002514846038907312,    0.0004369297346610886,    0.0010309092850789008,    0.0014712649629561752,    0.0017198572703654494,    0.0017624573232133487,    0.0016085750487669262,    0.0012888238057625968,    0.0008499567444557006,    0.0003485912201162041,    -0.00015580100244720835,    -0.000607656728473499,    -0.0009612078105002279,    -0.0011847927602402282,    -0.0012633390417589486,    -0.0011987843551975912,    -0.0010085916592065419,    -0.0007226903878816747,    -0.0003792242746719516,    -0.00001975662025403667,    0.0003155390021514345,    0.0005921472961030223,    0.0007845404678866458,    0.0008782421413312541,    0.0008705060394986916,    0.0007697197860148682,    0.0005935643814352129,    0.0003663883172395964,    0.00011608199926386939,    -0.0001291740152058233,    -0.00034391453642163835,    -0.0005078006712943802,    -0.0006072812580573203,    -0.0006363992327126103,    -0.0005966792410792791,    -0.0004962768841556523,    -0.00034851615605358005,    -0.00017002451555728345,    0.000021269501878054377,    0.00020804636935322743,    0.00037520607336543075,    0.0005111129662557197,    0.0006082918945412483,    0.0006636425833116022,    0.0006780841482803052,    0.0006561179367621888,    0.0006044238440905041,    0.0005319258847527823,    0.00044625388761023913,    0.0003584099608999308,    0.0002696485066015727,    0.00019849261073490482,    0.00011952623149469952,    0.00009875809063575779,    0.00003151783634577697
-    -0.00451398893736866,    -0.004203029219555798,    -0.0034429894732297774,    -0.002347699681593795,    -0.0010608870493178752,    0.0002616176696267551,    0.0014701293295941087,    0.0024373280210738995,    0.0030709922507173265,    0.003322096376141488,    0.00318733017834542,    0.002706696800527712,    0.001956049351551786,    0.0010364584424907685,    0.00006118480472750677,    -0.0008577023023227786,    -0.0016217376891380843,    -0.00215621955374809,    -0.0024168530933362325,    -0.002392827139552557,    -0.002105611566700304,    -0.0016045955886596882,    -0.0009595058667715721,    -0.0002514846038907312,    0.0004369297346610886,    0.0010309092850789008,    0.0014712649629561752,    0.0017198572703654494,    0.0017624573232133487,    0.0016085750487669262,    0.0012888238057625968,    0.0008499567444557006,    0.0003485912201162041,    -0.00015580100244720835,    -0.000607656728473499,    -0.0009612078105002279,    -0.0011847927602402282,    -0.0012633390417589486,    -0.0011987843551975912,    -0.0010085916592065419,    -0.0007226903878816747,    -0.0003792242746719516,    -0.00001975662025403667,    0.0003155390021514345,    0.0005921472961030223,    0.0007845404678866458,    0.0008782421413312541,    0.0008705060394986916,    0.0007697197860148682,    0.0005935643814352129,    0.0003663883172395964,    0.00011608199926386939,    -0.0001291740152058233,    -0.00034391453642163835,    -0.0005078006712943802,    -0.0006072812580573203,    -0.0006363992327126103,    -0.0005966792410792791,    -0.0004962768841556523,    -0.00034851615605358005,    -0.00017002451555728345,    0.000021269501878054377,    0.00020804636935322743,    0.00037520607336543075,    0.0005111129662557197,    0.0006082918945412483,    0.0006636425833116022,    0.0006780841482803052,    0.0006561179367621888,    0.0006044238440905041,    0.0005319258847527823,    0.00044625388761023913,    0.0003584099608999308,    0.0002696485066015727,    0.00019849261073490482,    0.00011952623149469952,    0.00009875809063575779,    0.00003151783634577697
+   -0.0035726927213363046,    -0.004307677839041472,    -0.00451398893736866,    -0.004203029219555798,    -0.0034429894732297774,    -0.002347699681593795,    -0.0010608870493178752,    0.0002616176696267551,    0.0014701293295941087,    0.0024373280210738995,    0.0030709922507173265,    0.003322096376141488,    0.00318733017834542,    0.002706696800527712,    0.001956049351551786,    0.0010364584424907685,    0.00006118480472750677,    -0.0008577023023227786,    -0.0016217376891380843,    -0.00215621955374809,    -0.0024168530933362325,    -0.002392827139552557,    -0.002105611566700304,    -0.0016045955886596882,    -0.0009595058667715721,    -0.0002514846038907312,    0.0004369297346610886,    0.0010309092850789008,    0.0014712649629561752,    0.0017198572703654494,    0.0017624573232133487,    0.0016085750487669262,    0.0012888238057625968,    0.0008499567444557006,    0.0003485912201162041,    -0.00015580100244720835,    -0.000607656728473499,    -0.0009612078105002279,    -0.0011847927602402282,    -0.0012633390417589486,    -0.0011987843551975912,    -0.0010085916592065419,    -0.0007226903878816747,    -0.0003792242746719516,    -0.00001975662025403667,    0.0003155390021514345,    0.0005921472961030223,    0.0007845404678866458,    0.0008782421413312541,    0.0008705060394986916,    0.0007697197860148682,    0.0005935643814352129,    0.0003663883172395964,    0.00011608199926386939,    -0.0001291740152058233,    -0.00034391453642163835,    -0.0005078006712943802,    -0.0006072812580573203,    -0.0006363992327126103,    -0.0005966792410792791,    -0.0004962768841556523,    -0.00034851615605358005,    -0.00017002451555728345,    0.000021269501878054377,    0.00020804636935322743,    0.00037520607336543075,    0.0005111129662557197,    0.0006082918945412483,    0.0006636425833116022,    0.0006780841482803052,    0.0006561179367621888,    0.0006044238440905041,    0.0005319258847527823,    0.00044625388761023913,    0.0003584099608999308,    0.0002696485066015727,    0.00019849261073490482,    0.00011952623149469952,    0.00009875809063575779,    0.00003151783634577697
 992854616,    -0.00074329154026803,    -0.00069943732077003,    -0.0006283153390612298,    -0.0005317674541381928,    -0.0004122736350806254,    -0.0002728965175373041,    -0.00011721898154916056,    0.000050727732077616854,    0.00022654511040849531,    0.0004055654685261572,    0.0005829725151929097,    0.0007539299891718014,    0.0009136968081628693,    0.001057727366040496,    0.0011817838315511687,    0.0012820768752281682,    0.0013553936088779655,    0.0013991567634035874,    0.0014114626691980761,    0.0013911994521601603,    0.001338158623469115,    0.0012529312652788224,    0.0011368782078168052,    0.0009924227419316402,    0.0008225367782712132,    0.0006311126153653432,    0.000422596130820185,    0.00020202566973633374,    -0.000025140126274052846,    -0.00025314012889659734,    -0.00047605825978268214,    -0.0006879757889763613,    -0.0008831265836660278,    -0.001056052961049124,    -0.0012017570118505278,    -0.0013158443800074546,    -0.0013946550179738235,    -0.00143537714856422,    -0.0014361430413177665,    -0.0013961025273104373,    -0.0013154698934900741,    -0.0011955448624625515,    -0.001038705445344848,    -0.000848370211905452,    -0.0006289357238567322,    -0.00038567726087640876,    -0.00012464084542349136,    0.00014751424024790855,    0.00042365555592108265,    0.000696381707633601,    0.0009581911739190034,    0.0012016945125591883,    0.0014198129038021875,    0.0016059677163340854,    0.0017542822302381216,    0.0018597489437935104,    0.0019183843680031518,    0.001927370582069373,    0.0018851569558006424,    0.0017915316423764106,    0.0016476681649469273,    0.001456129721890939,    0.0012208322294896099,    0.0009469770920907817,    0.0006409478559993642,    0.0003101659717946291,    -0.00003708137047780295,    -0.0003918367361265021,    -0.0007446984520565823,    -0.0010860619549777095,    -0.0014063764577860907,    -0.001696397687712767,    -0.0019474488265779002,    -0.002151669227747982,    -0.002302249012563522,    -0.0023936395957784356,    -0.0024217386080201218,    -0.002384046464152241,    -0.0022797724899456247,    -0.0021099040224506474,    -0.0018772300452061593,    -0.001586318069799396,    -0.0012434422926464283,    -0.0008564627353582099,    -0.0004346583284416864,    0.000011483258960353713,    0.0004705125435918996,    0.0009302983176219571,    0.0013783347882871506,    0.0018020649278141442,    0.002189218072448032,    0.002528151228372692,    0.0028081778185230755,    0.0030198855690580883,    0.0031554218226391927,    0.0032087539967944043,    0.003175891861997494,    0.003055052047477484,    0.0028467769761391067,    0.0025539826540715814,    0.0021819611806385975,    0.00173831289146853,    0.0012328190076443134,    0.0006772405314859651,    0.0000850660373523537,    -0.0005287869617277397,    -0.001148321137491392,    -0.0017568578913237647,    -0.002337465469832778,    -0.0028733927792042916,    -0.0033485134261990474,    -0.0037477874636434095,    -0.004057705229541436,    -0.0042666789949867895,    -0.004365411194693107,    -0.004347246153946479,    -0.0042084293493284755,    -0.003948276264434998,    -0.0035693427342337308,    -0.003077468630328199,    -0.002481682761858642,    -0.0017941893541420268,    -0.0010300505400156208,    -0.00020699101191350578,    0.0006550244158311212,    0.0015341931983222652,    0.002407385154286287,    0.0032506853111441327,    0.004039981949981368,    0.004751579445675196,    0.0053628234864281235,    0.0058527242916193226,    0.006202559568610708,    0.006396443797782178,    0.006421849969755556,    0.006270068071543294,    0.005936587372391708,    0.0054213915962429745,    0.004729156264045173,    0.0038693427245538904,    0.0028561826064778697,    0.0017085458613360902,    0.0004497040612160084,    -0.0008930343940838381,    -0.002288760766598498,    -0.0037035572532650445,    -0.005101096327651239,    -0.006443406350064504,    -0.007691613708744422,    -0.008806783345605503,    -0.009750779708566895,    -0.010487104621962649,    -0.010981761556592558,    -0.011204077521465777,    -0.01112745993022714,    -0.010730106
\ No newline at end of file
 };
-616,    -0.00074329154026803,    -0.00069943732077003,    -0.0006283153390612298,    -0.0005317674541381928,    -0.0004122736350806254,    -0.0002728965175373041,    -0.00011721898154916056,    0.000050727732077616854,    0.00022654511040849531,    0.0004055654685261572,    0.0005829725151929097,    0.0007539299891718014,    0.0009136968081628693,    0.001057727366040496,    0.0011817838315511687,    0.0012820768752281682,    0.0013553936088779655,    0.0013991567634035874,    0.0014114626691980761,    0.0013911994521601603,    0.001338158623469115,    0.0012529312652788224,    0.0011368782078168052,    0.0009924227419316402,    0.0008225367782712132,    0.0006311126153653432,    0.000422596130820185,    0.00020202566973633374,    -0.000025140126274052846,    -0.00025314012889659734,    -0.00047605825978268214,    -0.0006879757889763613,    -0.0008831265836660278,    -0.001056052961049124,    -0.0012017570118505278,    -0.0013158443800074546,    -0.0013946550179738235,    -0.00143537714856422,    -0.0014361430413177665,    -0.0013961025273104373,    -0.0013154698934900741,    -0.0011955448624625515,    -0.001038705445344848,    -0.000848370211905452,    -0.0006289357238567322,    -0.00038567726087640876,    -0.00012464084542349136,    0.00014751424024790855,    0.00042365555592108265,    0.000696381707633601,    0.0009581911739190034,    0.0012016945125591883,    0.0014198129038021875,    0.0016059677163340854,    0.0017542822302381216,    0.0018597489437935104,    0.0019183843680031518,    0.001927370582069373,    0.0018851569558006424,    0.0017915316423764106,    0.0016476681649469273,    0.001456129721890939,    0.0012208322294896099,    0.0009469770920907817,    0.0006409478559993642,    0.0003101659717946291,    -0.00003708137047780295,    -0.0003918367361265021,    -0.0007446984520565823,    -0.0010860619549777095,    -0.0014063764577860907,    -0.001696397687712767,    -0.0019474488265779002,    -0.002151669227747982,    -0.002302249012563522,    -0.0023936395957784356,    -0.0024217386080201218,    -0.002384046464152241,    -0.0022797724899456247,    -0.0021099040224506474,    -0.0018772300452061593,    -0.001586318069799396,    -0.0012434422926464283,    -0.0008564627353582099,    -0.0004346583284416864,    0.000011483258960353713,    0.0004705125435918996,    0.0009302983176219571,    0.0013783347882871506,    0.0018020649278141442,    0.002189218072448032,    0.002528151228372692,    0.0028081778185230755,    0.0030198855690580883,    0.0031554218226391927,    0.0032087539967944043,    0.003175891861997494,    0.003055052047477484,    0.0028467769761391067,    0.0025539826540715814,    0.0021819611806385975,    0.00173831289146853,    0.0012328190076443134,    0.0006772405314859651,    0.0000850660373523537,    -0.0005287869617277397,    -0.001148321137491392,    -0.0017568578913237647,    -0.002337465469832778,    -0.0028733927792042916,    -0.0033485134261990474,    -0.0037477874636434095,    -0.004057705229541436,    -0.0042666789949867895,    -0.004365411194693107,    -0.004347246153946479,    -0.0042084293493284755,    -0.003948276264434998,    -0.0035693427342337308,    -0.003077468630328199,    -0.002481682761858642,    -0.0017941893541420268,    -0.0010300505400156208,    -0.00020699101191350578,    0.0006550244158311212,    0.0015341931983222652,    0.002407385154286287,    0.0032506853111441327,    0.004039981949981368,    0.004751579445675196,    0.0053628234864281235,    0.0058527242916193226,    0.006202559568610708,    0.006396443797782178,    0.006421849969755556,    0.006270068071543294,    0.005936587372391708,    0.0054213915962429745,    0.004729156264045173,    0.0038693427245538904,    0.0028561826064778697,    0.0017085458613360902,    0.0004497040612160084,    -0.0008930343940838381,    -0.002288760766598498,    -0.0037035572532650445,    -0.005101096327651239,    -0.006443406350064504,    -0.007691613708744422,    -0.008806783345605503,    -0.009750779708566895,    -0.010487104621962649,    -0.010981761556592558,    -0.011204077521465777,    -0.01112745993022714,    -0.010730106123767
\ No newline at end of file
+28976477190042,    -0.0007451789241688792,    -0.0007587025992854616,    -0.00074329154026803,    -0.00069943732077003,    -0.0006283153390612298,    -0.0005317674541381928,    -0.0004122736350806254,    -0.0002728965175373041,    -0.00011721898154916056,    0.000050727732077616854,    0.00022654511040849531,    0.0004055654685261572,    0.0005829725151929097,    0.0007539299891718014,    0.0009136968081628693,    0.001057727366040496,    0.0011817838315511687,    0.0012820768752281682,    0.0013553936088779655,    0.0013991567634035874,    0.0014114626691980761,    0.0013911994521601603,    0.001338158623469115,    0.0012529312652788224,    0.0011368782078168052,    0.0009924227419316402,    0.0008225367782712132,    0.0006311126153653432,    0.000422596130820185,    0.00020202566973633374,    -0.000025140126274052846,    -0.00025314012889659734,    -0.00047605825978268214,    -0.0006879757889763613,    -0.0008831265836660278,    -0.001056052961049124,    -0.0012017570118505278,    -0.0013158443800074546,    -0.0013946550179738235,    -0.00143537714856422,    -0.0014361430413177665,    -0.0013961025273104373,    -0.0013154698934900741,    -0.0011955448624625515,    -0.001038705445344848,    -0.000848370211905452,    -0.0006289357238567322,    -0.00038567726087640876,    -0.00012464084542349136,    0.00014751424024790855,    0.00042365555592108265,    0.000696381707633601,    0.0009581911739190034,    0.0012016945125591883,    0.0014198129038021875,    0.0016059677163340854,    0.0017542822302381216,    0.0018597489437935104,    0.0019183843680031518,    0.001927370582069373,    0.0018851569558006424,    0.0017915316423764106,    0.0016476681649469273,    0.001456129721890939,    0.0012208322294896099,    0.0009469770920907817,    0.0006409478559993642,    0.0003101659717946291,    -0.00003708137047780295,    -0.0003918367361265021,    -0.0007446984520565823,    -0.0010860619549777095,    -0.0014063764577860907,    -0.001696397687712767,    -0.0019474488265779002,    -0.002151669227747982,    -0.002302249012563522,    -0.0023936395957784356,    -0.0024217386080201218,    -0.002384046464152241,    -0.0022797724899456247,    -0.0021099040224506474,    -0.0018772300452061593,    -0.001586318069799396,    -0.0012434422926464283,    -0.0008564627353582099,    -0.0004346583284416864,    0.000011483258960353713,    0.0004705125435918996,    0.0009302983176219571,    0.0013783347882871506,    0.0018020649278141442,    0.002189218072448032,    0.002528151228372692,    0.0028081778185230755,    0.0030198855690580883,    0.0031554218226391927,    0.0032087539967944043,    0.003175891861997494,    0.003055052047477484,    0.0028467769761391067,    0.0025539826540715814,    0.0021819611806385975,    0.00173831289146853,    0.0012328190076443134,    0.0006772405314859651,    0.0000850660373523537,    -0.0005287869617277397,    -0.001148321137491392,    -0.0017568578913237647,    -0.002337465469832778,    -0.0028733927792042916,    -0.0033485134261990474,    -0.0037477874636434095,    -0.004057705229541436,    -0.0042666789949867895,    -0.004365411194693107,    -0.004347246153946479,    -0.0042084293493284755,    -0.003948276264434998,    -0.0035693427342337308,    -0.003077468630328199,    -0.002481682761858642,    -0.0017941893541420268,    -0.0010300505400156208,    -0.00020699101191350578,    0.0006550244158311212,    0.0015341931983222652,    0.002407385154286287,    0.0032506853111441327,    0.004039981949981368,    0.004751579445675196,    0.0053628234864281235,    0.0058527242916193226,    0.006202559568610708,    0.006396443797782178,    0.006421849969755556,    0.006270068071543294,    0.005936587372391708,    0.0054213915962429745,    0.004729156264045173,    0.0038693427245538904,    0.0028561826064778697,    0.0017085458613360902,    0.0004497040612160084,    -0.0008930343940838381,    -0.002288760766598498,    -0.0037035572532650445,    -0.005101096327651239,    -0.006443406350064504,    -0.007691613708744422,    -0.008806783345605503,    -0.009750779708566895,    -0.010487104621962649,    -0.010981761556592558,    -0.0
\ No newline at end of file
 11721898154916056,    0.000050727732077616854,    0.00022654511040849531,    0.0004055654685261572,    0.0005829725151929097,    0.0007539299891718014,    0.0009136968081628693,    0.001057727366040496,    0.0011817838315511687,    0.0012820768752281682,    0.0013553936088779655,    0.0013991567634035874,    0.0014114626691980761,    0.0013911994521601603,    0.001338158623469115,    0.0012529312652788224,    0.0011368782078168052,    0.0009924227419316402,    0.0008225367782712132,    0.0006311126153653432,    0.000422596130820185,    0.00020202566973633374,    -0.000025140126274052846,    -0.00025314012889659734,    -0.00047605825978268214,    -0.0006879757889763613,    -0.0008831265836660278,    -0.001056052961049124,    -0.0012017570118505278,    -0.0013158443800074546,    -0.0013946550179738235,    -0.00143537714856422,    -0.0014361430413177665,    -0.0013961025273104373,    -0.0013154698934900741,    -0.0011955448624625515,    -0.001038705445344848,    -0.000848370211905452,    -0.0006289357238567322,    -0.00038567726087640876,    -0.00012464084542349136,    0.00014751424024790855,    0.00042365555592108265,    0.000696381707633601,    0.0009581911739190034,    0.0012016945125591883,    0.0014198129038021875,    0.0016059677163340854,    0.0017542822302381216,    0.0018597489437935104,    0.0019183843680031518,    0.001927370582069373,    0.0018851569558006424,    0.0017915316423764106,    0.0016476681649469273,    0.001456129721890939,    0.0012208322294896099,    0.0009469770920907817,    0.0006409478559993642,    0.0003101659717946291,    -0.00003708137047780295,    -0.0003918367361265021,    -0.0007446984520565823,    -0.0010860619549777095,    -0.0014063764577860907,    -0.001696397687712767,    -0.0019474488265779002,    -0.002151669227747982,    -0.002302249012563522,    -0.0023936395957784356,    -0.0024217386080201218,    -0.002384046464152241,    -0.0022797724899456247,    -0.0021099040224506474,    -0.0018772300452061593,    -0.001586318069799396,    -0.0012434422926464283,    -0.0008564627353582099,    -0.0004346583284416864,    0.000011483258960353713,    0.0004705125435918996,    0.0009302983176219571,    0.0013783347882871506,    0.0018020649278141442,    0.002189218072448032,    0.002528151228372692,    0.0028081778185230755,    0.0030198855690580883,    0.0031554218226391927,    0.0032087539967944043,    0.003175891861997494,    0.003055052047477484,    0.0028467769761391067,    0.0025539826540715814,    0.0021819611806385975,    0.00173831289146853,    0.0012328190076443134,    0.0006772405314859651,    0.0000850660373523537,    -0.0005287869617277397,    -0.001148321137491392,    -0.0017568578913237647,    -0.002337465469832778,    -0.0028733927792042916,    -0.0033485134261990474,    -0.0037477874636434095,    -0.004057705229541436,    -0.0042666789949867895,    -0.004365411194693107,    -0.004347246153946479,    -0.0042084293493284755,    -0.003948276264434998,    -0.0035693427342337308,    -0.003077468630328199,    -0.002481682761858642,    -0.0017941893541420268,    -0.0010300505400156208,    -0.00020699101191350578,    0.0006550244158311212,    0.0015341931983222652,    0.002407385154286287,    0.0032506853111441327,    0.004039981949981368,    0.004751579445675196,    0.0053628234864281235,    0.0058527242916193226,    0.006202559568610708,    0.006396443797782178,    0.006421849969755556,    0.006270068071543294,    0.005936587372391708,    0.0054213915962429745,    0.004729156264045173,    0.0038693427245538904,    0.0028561826064778697,    0.0017085458613360902,    0.0004497040612160084,    -0.0008930343940838381,    -0.002288760766598498,    -0.0037035572532650445,    -0.005101096327651239,    -0.006443406350064504,    -0.007691613708744422,    -0.008806783345605503,    -0.009750779708566895,    -0.010487104621962649,    -0.010981761556592558,    -0.011204077521465777,    -0.01112745993022714,    -0.010730106123767362,    -0.009995629398181848,    -0.008913569832214968,    -0.007479799008370572,    -0.005696809921316997,    -0.0035738648415050284,    -0.0011270001382152866,    0.0016
\ No newline at end of file
 };
-98154916056,    0.000050727732077616854,    0.00022654511040849531,    0.0004055654685261572,    0.0005829725151929097,    0.0007539299891718014,    0.0009136968081628693,    0.001057727366040496,    0.0011817838315511687,    0.0012820768752281682,    0.0013553936088779655,    0.0013991567634035874,    0.0014114626691980761,    0.0013911994521601603,    0.001338158623469115,    0.0012529312652788224,    0.0011368782078168052,    0.0009924227419316402,    0.0008225367782712132,    0.0006311126153653432,    0.000422596130820185,    0.00020202566973633374,    -0.000025140126274052846,    -0.00025314012889659734,    -0.00047605825978268214,    -0.0006879757889763613,    -0.0008831265836660278,    -0.001056052961049124,    -0.0012017570118505278,    -0.0013158443800074546,    -0.0013946550179738235,    -0.00143537714856422,    -0.0014361430413177665,    -0.0013961025273104373,    -0.0013154698934900741,    -0.0011955448624625515,    -0.001038705445344848,    -0.000848370211905452,    -0.0006289357238567322,    -0.00038567726087640876,    -0.00012464084542349136,    0.00014751424024790855,    0.00042365555592108265,    0.000696381707633601,    0.0009581911739190034,    0.0012016945125591883,    0.0014198129038021875,    0.0016059677163340854,    0.0017542822302381216,    0.0018597489437935104,    0.0019183843680031518,    0.001927370582069373,    0.0018851569558006424,    0.0017915316423764106,    0.0016476681649469273,    0.001456129721890939,    0.0012208322294896099,    0.0009469770920907817,    0.0006409478559993642,    0.0003101659717946291,    -0.00003708137047780295,    -0.0003918367361265021,    -0.0007446984520565823,    -0.0010860619549777095,    -0.0014063764577860907,    -0.001696397687712767,    -0.0019474488265779002,    -0.002151669227747982,    -0.002302249012563522,    -0.0023936395957784356,    -0.0024217386080201218,    -0.002384046464152241,    -0.0022797724899456247,    -0.0021099040224506474,    -0.0018772300452061593,    -0.001586318069799396,    -0.0012434422926464283,    -0.0008564627353582099,    -0.0004346583284416864,    0.000011483258960353713,    0.0004705125435918996,    0.0009302983176219571,    0.0013783347882871506,    0.0018020649278141442,    0.002189218072448032,    0.002528151228372692,    0.0028081778185230755,    0.0030198855690580883,    0.0031554218226391927,    0.0032087539967944043,    0.003175891861997494,    0.003055052047477484,    0.0028467769761391067,    0.0025539826540715814,    0.0021819611806385975,    0.00173831289146853,    0.0012328190076443134,    0.0006772405314859651,    0.0000850660373523537,    -0.0005287869617277397,    -0.001148321137491392,    -0.0017568578913237647,    -0.002337465469832778,    -0.0028733927792042916,    -0.0033485134261990474,    -0.0037477874636434095,    -0.004057705229541436,    -0.0042666789949867895,    -0.004365411194693107,    -0.004347246153946479,    -0.0042084293493284755,    -0.003948276264434998,    -0.0035693427342337308,    -0.003077468630328199,    -0.002481682761858642,    -0.0017941893541420268,    -0.0010300505400156208,    -0.00020699101191350578,    0.0006550244158311212,    0.0015341931983222652,    0.002407385154286287,    0.0032506853111441327,    0.004039981949981368,    0.004751579445675196,    0.0053628234864281235,    0.0058527242916193226,    0.006202559568610708,    0.006396443797782178,    0.006421849969755556,    0.006270068071543294,    0.005936587372391708,    0.0054213915962429745,    0.004729156264045173,    0.0038693427245538904,    0.0028561826064778697,    0.0017085458613360902,    0.0004497040612160084,    -0.0008930343940838381,    -0.002288760766598498,    -0.0037035572532650445,    -0.005101096327651239,    -0.006443406350064504,    -0.007691613708744422,    -0.008806783345605503,    -0.009750779708566895,    -0.010487104621962649,    -0.010981761556592558,    -0.011204077521465777,    -0.01112745993022714,    -0.010730106123767362,    -0.009995629398181848,    -0.008913569832214968,    -0.007479799008370572,    -0.005696809921316997,    -0.0035738648415050284,    -0.0011270001382152866,    0.0016211002
\ No newline at end of file
+25151929097,    0.0007539299891718014,    0.0009136968081628693,    0.001057727366040496,    0.0011817838315511687,    0.0012820768752281682,    0.0013553936088779655,    0.0013991567634035874,    0.0014114626691980761,    0.0013911994521601603,    0.001338158623469115,    0.0012529312652788224,    0.0011368782078168052,    0.0009924227419316402,    0.0008225367782712132,    0.0006311126153653432,    0.000422596130820185,    0.00020202566973633374,    -0.000025140126274052846,    -0.00025314012889659734,    -0.00047605825978268214,    -0.0006879757889763613,    -0.0008831265836660278,    -0.001056052961049124,    -0.0012017570118505278,    -0.0013158443800074546,    -0.0013946550179738235,    -0.00143537714856422,    -0.0014361430413177665,    -0.0013961025273104373,    -0.0013154698934900741,    -0.0011955448624625515,    -0.001038705445344848,    -0.000848370211905452,    -0.0006289357238567322,    -0.00038567726087640876,    -0.00012464084542349136,    0.00014751424024790855,    0.00042365555592108265,    0.000696381707633601,    0.0009581911739190034,    0.0012016945125591883,    0.0014198129038021875,    0.0016059677163340854,    0.0017542822302381216,    0.0018597489437935104,    0.0019183843680031518,    0.001927370582069373,    0.0018851569558006424,    0.0017915316423764106,    0.0016476681649469273,    0.001456129721890939,    0.0012208322294896099,    0.0009469770920907817,    0.0006409478559993642,    0.0003101659717946291,    -0.00003708137047780295,    -0.0003918367361265021,    -0.0007446984520565823,    -0.0010860619549777095,    -0.0014063764577860907,    -0.001696397687712767,    -0.0019474488265779002,    -0.002151669227747982,    -0.002302249012563522,    -0.0023936395957784356,    -0.0024217386080201218,    -0.002384046464152241,    -0.0022797724899456247,    -0.0021099040224506474,    -0.0018772300452061593,    -0.001586318069799396,    -0.0012434422926464283,    -0.0008564627353582099,    -0.0004346583284416864,    0.000011483258960353713,    0.0004705125435918996,    0.0009302983176219571,    0.0013783347882871506,    0.0018020649278141442,    0.002189218072448032,    0.002528151228372692,    0.0028081778185230755,    0.0030198855690580883,    0.0031554218226391927,    0.0032087539967944043,    0.003175891861997494,    0.003055052047477484,    0.0028467769761391067,    0.0025539826540715814,    0.0021819611806385975,    0.00173831289146853,    0.0012328190076443134,    0.0006772405314859651,    0.0000850660373523537,    -0.0005287869617277397,    -0.001148321137491392,    -0.0017568578913237647,    -0.002337465469832778,    -0.0028733927792042916,    -0.0033485134261990474,    -0.0037477874636434095,    -0.004057705229541436,    -0.0042666789949867895,    -0.004365411194693107,    -0.004347246153946479,    -0.0042084293493284755,    -0.003948276264434998,    -0.0035693427342337308,    -0.003077468630328199,    -0.002481682761858642,    -0.0017941893541420268,    -0.0010300505400156208,    -0.00020699101191350578,    0.0006550244158311212,    0.0015341931983222652,    0.002407385154286287,    0.0032506853111441327,    0.004039981949981368,    0.004751579445675196,    0.0053628234864281235,    0.0058527242916193226,    0.006202559568610708,    0.006396443797782178,    0.006421849969755556,    0.006270068071543294,    0.005936587372391708,    0.0054213915962429745,    0.004729156264045173,    0.0038693427245538904,    0.0028561826064778697,    0.0017085458613360902,    0.0004497040612160084,    -0.0008930343940838381,    -0.002288760766598498,    -0.0037035572532650445,    -0.005101096327651239,    -0.006443406350064504,    -0.007691613708744422,    -0.008806783345605503,    -0.009750779708566895,    -0.010487104621962649,    -0.010981761556592558,    -0.011204077521465777,    -0.01112745993022714,    -0.010730106123767362,    -0.009995629398181848,    -0.008913569832214968,    -0.007479799008370572,    -0.005696809921316997,    -0.0035738648415050284,    -0.0011270001382152866,    0.001621100228821588,    0.004641370935060121,    0.00789877655149075,    0.0113528526524623,    0.014958365872953214, 
\ No newline at end of file
 05829725151929097,    0.0007539299891718014,    0.0009136968081628693,    0.001057727366040496,    0.0011817838315511687,    0.0012820768752281682,    0.0013553936088779655,    0.0013991567634035874,    0.0014114626691980761,    0.0013911994521601603,    0.001338158623469115,    0.0012529312652788224,    0.0011368782078168052,    0.0009924227419316402,    0.0008225367782712132,    0.0006311126153653432,    0.000422596130820185,    0.00020202566973633374,    -0.000025140126274052846,    -0.00025314012889659734,    -0.00047605825978268214,    -0.0006879757889763613,    -0.0008831265836660278,    -0.001056052961049124,    -0.0012017570118505278,    -0.0013158443800074546,    -0.0013946550179738235,    -0.00143537714856422,    -0.0014361430413177665,    -0.0013961025273104373,    -0.0013154698934900741,    -0.0011955448624625515,    -0.001038705445344848,    -0.000848370211905452,    -0.0006289357238567322,    -0.00038567726087640876,    -0.00012464084542349136,    0.00014751424024790855,    0.00042365555592108265,    0.000696381707633601,    0.0009581911739190034,    0.0012016945125591883,    0.0014198129038021875,    0.0016059677163340854,    0.0017542822302381216,    0.0018597489437935104,    0.0019183843680031518,    0.001927370582069373,    0.0018851569558006424,    0.0017915316423764106,    0.0016476681649469273,    0.001456129721890939,    0.0012208322294896099,    0.0009469770920907817,    0.0006409478559993642,    0.0003101659717946291,    -0.00003708137047780295,    -0.0003918367361265021,    -0.0007446984520565823,    -0.0010860619549777095,    -0.0014063764577860907,    -0.001696397687712767,    -0.0019474488265779002,    -0.002151669227747982,    -0.002302249012563522,    -0.0023936395957784356,    -0.0024217386080201218,    -0.002384046464152241,    -0.0022797724899456247,    -0.0021099040224506474,    -0.0018772300452061593,    -0.001586318069799396,    -0.0012434422926464283,    -0.0008564627353582099,    -0.0004346583284416864,    0.000011483258960353713,    0.0004705125435918996,    0.0009302983176219571,    0.0013783347882871506,    0.0018020649278141442,    0.002189218072448032,    0.002528151228372692,    0.0028081778185230755,    0.0030198855690580883,    0.0031554218226391927,    0.0032087539967944043,    0.003175891861997494,    0.003055052047477484,    0.0028467769761391067,    0.0025539826540715814,    0.0021819611806385975,    0.00173831289146853,    0.0012328190076443134,    0.0006772405314859651,    0.0000850660373523537,    -0.0005287869617277397,    -0.001148321137491392,    -0.0017568578913237647,    -0.002337465469832778,    -0.0028733927792042916,    -0.0033485134261990474,    -0.0037477874636434095,    -0.004057705229541436,    -0.0042666789949867895,    -0.004365411194693107,    -0.004347246153946479,    -0.0042084293493284755,    -0.003948276264434998,    -0.0035693427342337308,    -0.003077468630328199,    -0.002481682761858642,    -0.0017941893541420268,    -0.0010300505400156208,    -0.00020699101191350578,    0.0006550244158311212,    0.0015341931983222652,    0.002407385154286287,    0.0032506853111441327,    0.004039981949981368,    0.004751579445675196,    0.0053628234864281235,    0.0058527242916193226,    0.006202559568610708,    0.006396443797782178,    0.006421849969755556,    0.006270068071543294,    0.005936587372391708,    0.0054213915962429745,    0.004729156264045173,    0.0038693427245538904,    0.0028561826064778697,    0.0017085458613360902,    0.0004497040612160084,    -0.0008930343940838381,    -0.002288760766598498,    -0.0037035572532650445,    -0.005101096327651239,    -0.006443406350064504,    -0.007691613708744422,    -0.008806783345605503,    -0.009750779708566895,    -0.010487104621962649,    -0.010981761556592558,    -0.011204077521465777,    -0.01112745993022714,    -0.010730106123767362,    -0.009995629398181848,    -0.008913569832214968,    -0.007479799008370572,    -0.005696809921316997,    -0.0035738648415050284,    -0.0011270001382152866,    0.001621100228821588,    0.004641370935060121,    0.00789877655149075,    0.0113528526524623,    0.01495836587295
\ No newline at end of file
-829725151929097,    0.0007539299891718014,    0.0009136968081628693,    0.001057727366040496,    0.0011817838315511687,    0.0012820768752281682,    0.0013553936088779655,    0.0013991567634035874,    0.0014114626691980761,    0.0013911994521601603,    0.001338158623469115,    0.0012529312652788224,    0.0011368782078168052,    0.0009924227419316402,    0.0008225367782712132,    0.0006311126153653432,    0.000422596130820185,    0.00020202566973633374,    -0.000025140126274052846,    -0.00025314012889659734,    -0.00047605825978268214,    -0.0006879757889763613,    -0.0008831265836660278,    -0.001056052961049124,    -0.0012017570118505278,    -0.0013158443800074546,    -0.0013946550179738235,    -0.00143537714856422,    -0.0014361430413177665,    -0.0013961025273104373,    -0.0013154698934900741,    -0.0011955448624625515,    -0.001038705445344848,    -0.000848370211905452,    -0.0006289357238567322,    -0.00038567726087640876,    -0.00012464084542349136,    0.00014751424024790855,    0.00042365555592108265,    0.000696381707633601,    0.0009581911739190034,    0.0012016945125591883,    0.0014198129038021875,    0.0016059677163340854,    0.0017542822302381216,    0.0018597489437935104,    0.0019183843680031518,    0.001927370582069373,    0.0018851569558006424,    0.0017915316423764106,    0.0016476681649469273,    0.001456129721890939,    0.0012208322294896099,    0.0009469770920907817,    0.0006409478559993642,    0.0003101659717946291,    -0.00003708137047780295,    -0.0003918367361265021,    -0.0007446984520565823,    -0.0010860619549777095,    -0.0014063764577860907,    -0.001696397687712767,    -0.0019474488265779002,    -0.002151669227747982,    -0.002302249012563522,    -0.0023936395957784356,    -0.0024217386080201218,    -0.002384046464152241,    -0.0022797724899456247,    -0.0021099040224506474,    -0.0018772300452061593,    -0.001586318069799396,    -0.0012434422926464283,    -0.0008564627353582099,    -0.0004346583284416864,    0.000011483258960353713,    0.0004705125435918996,    0.0009302983176219571,    0.0013783347882871506,    0.0018020649278141442,    0.002189218072448032,    0.002528151228372692,    0.0028081778185230755,    0.0030198855690580883,    0.0031554218226391927,    0.0032087539967944043,    0.003175891861997494,    0.003055052047477484,    0.0028467769761391067,    0.0025539826540715814,    0.0021819611806385975,    0.00173831289146853,    0.0012328190076443134,    0.0006772405314859651,    0.0000850660373523537,    -0.0005287869617277397,    -0.001148321137491392,    -0.0017568578913237647,    -0.002337465469832778,    -0.0028733927792042916,    -0.0033485134261990474,    -0.0037477874636434095,    -0.004057705229541436,    -0.0042666789949867895,    -0.004365411194693107,    -0.004347246153946479,    -0.0042084293493284755,    -0.003948276264434998,    -0.0035693427342337308,    -0.003077468630328199,    -0.002481682761858642,    -0.0017941893541420268,    -0.0010300505400156208,    -0.00020699101191350578,    0.0006550244158311212,    0.0015341931983222652,    0.002407385154286287,    0.0032506853111441327,    0.004039981949981368,    0.004751579445675196,    0.0053628234864281235,    0.0058527242916193226,    0.006202559568610708,    0.006396443797782178,    0.006421849969755556,    0.006270068071543294,    0.005936587372391708,    0.0054213915962429745,    0.004729156264045173,    0.0038693427245538904,    0.0028561826064778697,    0.0017085458613360902,    0.0004497040612160084,    -0.0008930343940838381,    -0.002288760766598498,    -0.0037035572532650445,    -0.005101096327651239,    -0.006443406350064504,    -0.007691613708744422,    -0.008806783345605503,    -0.009750779708566895,    -0.010487104621962649,    -0.010981761556592558,    -0.011204077521465777,    -0.01112745993022714,    -0.010730106123767362,    -0.009995629398181848,    -0.008913569832214968,    -0.007479799008370572,    -0.005696809921316997,    -0.0035738648415050284,    -0.0011270001382152866,    0.001621100228821588,    0.004641370935060121,    0.00789877655149075,    0.0113528526524623,    0.0149583658729532
\ No newline at end of file
+.0012820768752281682,    0.0013553936088779655,    0.0013991567634035874,    0.0014114626691980761,    0.0013911994521601603,    0.001338158623469115,    0.0012529312652788224,    0.0011368782078168052,    0.0009924227419316402,    0.0008225367782712132,    0.0006311126153653432,    0.000422596130820185,    0.00020202566973633374,    -0.000025140126274052846,    -0.00025314012889659734,    -0.00047605825978268214,    -0.0006879757889763613,    -0.0008831265836660278,    -0.001056052961049124,    -0.0012017570118505278,    -0.0013158443800074546,    -0.0013946550179738235,    -0.00143537714856422,    -0.0014361430413177665,    -0.0013961025273104373,    -0.0013154698934900741,    -0.0011955448624625515,    -0.001038705445344848,    -0.000848370211905452,    -0.0006289357238567322,    -0.00038567726087640876,    -0.00012464084542349136,    0.00014751424024790855,    0.00042365555592108265,    0.000696381707633601,    0.0009581911739190034,    0.0012016945125591883,    0.0014198129038021875,    0.0016059677163340854,    0.0017542822302381216,    0.0018597489437935104,    0.0019183843680031518,    0.001927370582069373,    0.0018851569558006424,    0.0017915316423764106,    0.0016476681649469273,    0.001456129721890939,    0.0012208322294896099,    0.0009469770920907817,    0.0006409478559993642,    0.0003101659717946291,    -0.00003708137047780295,    -0.0003918367361265021,    -0.0007446984520565823,    -0.0010860619549777095,    -0.0014063764577860907,    -0.001696397687712767,    -0.0019474488265779002,    -0.002151669227747982,    -0.002302249012563522,    -0.0023936395957784356,    -0.0024217386080201218,    -0.002384046464152241,    -0.0022797724899456247,    -0.0021099040224506474,    -0.0018772300452061593,    -0.001586318069799396,    -0.0012434422926464283,    -0.0008564627353582099,    -0.0004346583284416864,    0.000011483258960353713,    0.0004705125435918996,    0.0009302983176219571,    0.0013783347882871506,    0.0018020649278141442,    0.002189218072448032,    0.002528151228372692,    0.0028081778185230755,    0.0030198855690580883,    0.0031554218226391927,    0.0032087539967944043,    0.003175891861997494,    0.003055052047477484,    0.0028467769761391067,    0.0025539826540715814,    0.0021819611806385975,    0.00173831289146853,    0.0012328190076443134,    0.0006772405314859651,    0.0000850660373523537,    -0.0005287869617277397,    -0.001148321137491392,    -0.0017568578913237647,    -0.002337465469832778,    -0.0028733927792042916,    -0.0033485134261990474,    -0.0037477874636434095,    -0.004057705229541436,    -0.0042666789949867895,    -0.004365411194693107,    -0.004347246153946479,    -0.0042084293493284755,    -0.003948276264434998,    -0.0035693427342337308,    -0.003077468630328199,    -0.002481682761858642,    -0.0017941893541420268,    -0.0010300505400156208,    -0.00020699101191350578,    0.0006550244158311212,    0.0015341931983222652,    0.002407385154286287,    0.0032506853111441327,    0.004039981949981368,    0.004751579445675196,    0.0053628234864281235,    0.0058527242916193226,    0.006202559568610708,    0.006396443797782178,    0.006421849969755556,    0.006270068071543294,    0.005936587372391708,    0.0054213915962429745,    0.004729156264045173,    0.0038693427245538904,    0.0028561826064778697,    0.0017085458613360902,    0.0004497040612160084,    -0.0008930343940838381,    -0.002288760766598498,    -0.0037035572532650445,    -0.005101096327651239,    -0.006443406350064504,    -0.007691613708744422,    -0.008806783345605503,    -0.009750779708566895,    -0.010487104621962649,    -0.010981761556592558,    -0.011204077521465777,    -0.01112745993022714,    -0.010730106123767362,    -0.009995629398181848,    -0.008913569832214968,    -0.007479799008370572,    -0.005696809921316997,    -0.0035738648415050284,    -0.0011270001382152866,    0.001621100228821588,    0.004641370935060121,    0.00789877655149075,    0.0113528526524623,    0.014958365872953214,    0.018666074072644187,    0.02242359380770534,    0.026176337546106928,    0.029868513059052665,    0.0334441505881633
\ No newline at end of file
 8623469115,    0.0012529312652788224,    0.0011368782078168052,    0.0009924227419316402,    0.0008225367782712132,    0.0006311126153653432,    0.000422596130820185,    0.00020202566973633374,    -0.000025140126274052846,    -0.00025314012889659734,    -0.00047605825978268214,    -0.0006879757889763613,    -0.0008831265836660278,    -0.001056052961049124,    -0.0012017570118505278,    -0.0013158443800074546,    -0.0013946550179738235,    -0.00143537714856422,    -0.0014361430413177665,    -0.0013961025273104373,    -0.0013154698934900741,    -0.0011955448624625515,    -0.001038705445344848,    -0.000848370211905452,    -0.0006289357238567322,    -0.00038567726087640876,    -0.00012464084542349136,    0.00014751424024790855,    0.00042365555592108265,    0.000696381707633601,    0.0009581911739190034,    0.0012016945125591883,    0.0014198129038021875,    0.0016059677163340854,    0.0017542822302381216,    0.0018597489437935104,    0.0019183843680031518,    0.001927370582069373,    0.0018851569558006424,    0.0017915316423764106,    0.0016476681649469273,    0.001456129721890939,    0.0012208322294896099,    0.0009469770920907817,    0.0006409478559993642,    0.0003101659717946291,    -0.00003708137047780295,    -0.0003918367361265021,    -0.0007446984520565823,    -0.0010860619549777095,    -0.0014063764577860907,    -0.001696397687712767,    -0.0019474488265779002,    -0.002151669227747982,    -0.002302249012563522,    -0.0023936395957784356,    -0.0024217386080201218,    -0.002384046464152241,    -0.0022797724899456247,    -0.0021099040224506474,    -0.0018772300452061593,    -0.001586318069799396,    -0.0012434422926464283,    -0.0008564627353582099,    -0.0004346583284416864,    0.000011483258960353713,    0.0004705125435918996,    0.0009302983176219571,    0.0013783347882871506,    0.0018020649278141442,    0.002189218072448032,    0.002528151228372692,    0.0028081778185230755,    0.0030198855690580883,    0.0031554218226391927,    0.0032087539967944043,    0.003175891861997494,    0.003055052047477484,    0.0028467769761391067,    0.0025539826540715814,    0.0021819611806385975,    0.00173831289146853,    0.0012328190076443134,    0.0006772405314859651,    0.0000850660373523537,    -0.0005287869617277397,    -0.001148321137491392,    -0.0017568578913237647,    -0.002337465469832778,    -0.0028733927792042916,    -0.0033485134261990474,    -0.0037477874636434095,    -0.004057705229541436,    -0.0042666789949867895,    -0.004365411194693107,    -0.004347246153946479,    -0.0042084293493284755,    -0.003948276264434998,    -0.0035693427342337308,    -0.003077468630328199,    -0.002481682761858642,    -0.0017941893541420268,    -0.0010300505400156208,    -0.00020699101191350578,    0.0006550244158311212,    0.0015341931983222652,    0.002407385154286287,    0.0032506853111441327,    0.004039981949981368,    0.004751579445675196,    0.0053628234864281235,    0.0058527242916193226,    0.006202559568610708,    0.006396443797782178,    0.006421849969755556,    0.006270068071543294,    0.005936587372391708,    0.0054213915962429745,    0.004729156264045173,    0.0038693427245538904,    0.0028561826064778697,    0.0017085458613360902,    0.0004497040612160084,    -0.0008930343940838381,    -0.002288760766598498,    -0.0037035572532650445,    -0.005101096327651239,    -0.006443406350064504,    -0.007691613708744422,    -0.008806783345605503,    -0.009750779708566895,    -0.010487104621962649,    -0.010981761556592558,    -0.011204077521465777,    -0.01112745993022714,    -0.010730106123767362,    -0.009995629398181848,    -0.008913569832214968,    -0.007479799008370572,    -0.005696809921316997,    -0.0035738648415050284,    -0.0011270001382152866,    0.001621100228821588,    0.004641370935060121,    0.00789877655149075,    0.0113528526524623,    0.014958365872953214,    0.018666074072644187,    0.02242359380770534,    0.026176337546106928,    0.029868513059052665,    0.03344415058816331,    0.03684815553847075,    0.04002735371317269,    0.042931503142136666,    0.04551426282729147,    0.04773408588853776,    0.0495550301
\ No newline at end of file
 };
 
@@ -3326,7 +3326,7 @@
 072217f, 0.072136f, 0.072055f, 0.071974f,
 0.071894f, 0.071813f, 0.071732f, 0.071652f, 0.071571f, 0.07149f, 0.07141f, 0.071329f, 0.071248f, 0.071168f, 0.071087f, 0.071006f, 0.070926f, 0.070845f, 0.070764f, 0.070684f, 0.070603f, 0.070522f, 0.070442f, 0.070361f,
 0.070281f, 0.0702f, 0.070119f, 0.070039f, 0.069958f, 0.069878f, 0.069797f, 0.069716f, 0.069636f, 0.069555f, 0.069475f, 0.069394f, 0.069314f, 0.069233f, 0.069152f, 0.069072f, 0.068991f, 0.068911f, 0.06883f, 0.06875f,
- 0.068991f, 0.068911f, 0.06883f, 0.06875f,
+6f, 0.069636f, 0.069555f, 0.069475f, 0.069394f, 0.069314f, 0.069233f, 0.069152f, 0.069072f, 0.068991f, 0.068911f, 0.06883f, 0.06875f,
 0.068669f, 0.068589f, 0.068508f, 0.068428f, 0.068347f, 0.068267f, 0.068186f, 0.068106f, 0.068025f, 0.067945f, 0.067864f, 0.067784f, 0.067703f, 0.067623f, 0.067542f, 0.067462f, 0.067381f, 0.067301f, 0.06722f, 0.06714f,
 0.06706f, 0.066979f, 0.066899f, 0.066818f, 0.066738f, 0.066657f, 0.066577f, 0.066497f, 0.066416f, 0.066336f, 0.066255f, 0.066175f, 0.066095f, 0.066014f, 0.065934f, 0.065853f, 0.065773f, 0.065693f, 0.065612f, 0.065532f,
 0.065452f, 0.065371f, 0.065291f, 0.065211f, 0.06513f, 0.06505f, 0.06497f, 0.064889f, 0.064809f, 0.064729f, 0.064648f, 0.064568f, 0.064488f, 0.064408f, 0.064327f, 0.064247f, 0.064167f, 0.064086f, 0.064006f, 0.063926f,
@@ -3376,7 +3376,7 @@
 94188f, -0.19424f, -0.194292f, -0.194343f, -0.194395f, -0.194447f, -0.194498f, -0.19455f, -0.194602f, -0.194653f, -0.194705f, -0.194757f, -0.194808f, -0.19486f, -0.194912f, -0.194963f,
 -0.195015f, -0.195066f, -0.195118f, -0.19517f, -0.195221f, -0.195273f, -0.195324f, -0.195376f, -0.195427f, -0.195479f, -0.19553f, -0.195582f, -0.195633f, -0.195685f, -0.195736f, -0.195788f, -0.195839f, -0.19589f, -0.195942f, -0.195993f,
 -0.196045f, -0.196096f, -0.196147f, -0.196199f, -0.19625f, -0.196301f, -0.196353f, -0.196404f, -0.196455f, -0.196507f, -0.196558f, -0.196609f, -0.196661f, -0.196712f, -0.196763f, -0.196814f, -0.196866f, -0.196917f, -0.196968f, -0.197019f,
--0.19424f, -0.194292f, -0.194343f, -0.194395f, -0.194447f, -0.194498f, -0.19455f, -0.194602f, -0.194653f, -0.194705f, -0.194757f, -0.194808f, -0.19486f, -0.194912f, -0.194963f,
+77f, -0.193929f,
 f, -0.194447f, -0.194498f, -0.19455f, -0.194602f, -0.194653f, -0.194705f, -0.194757f, -0.194808f, -0.19486f, -0.194912f, -0.194963f,
 -0.195015f, -0.195066f, -0.195118f, -0.19517f, -0.195221f, -0.195273f, -0.195324f, -0.195376f, -0.195427f, -0.195479f, -0.19553f, -0.195582f, -0.195633f, -0.195685f, -0.195736f, -0.195788f, -0.195839f, -0.19589f, -0.195942f, -0.195993f,
 -0.196045f, -0.196096f, -0.196147f, -0.196199f, -0.19625f, -0.196301f, -0.196353f, -0.196404f, -0.196455f, -0.196507f, -0.196558f, -0.196609f, -0.196661f, -0.196712f, -0.196763f, -0.196814f, -0.196866f, -0.196917f, -0.196968f, -0.197019f,
@@ -3424,7 +3424,7 @@
 05985f, 0.206507f, 0.20661f, 0.207783f, 0.209117f, 0.20934f, 0.209671f, 0.211088f, 0.212135f, 0.212183f, 0.212843f, 0.214356f, 0.215049f, 0.215087f, 0.216105f, 0.217541f, 0.217895f, 0.218092f, 0.21941f, 0.220615f, 0.220724f, 0.221212f, 0.222705f, 0.223576f, 0.22359f, 0.224435f, 0.225937f, 0.226448f, 0.226541f, 0.227728f, 0.229068f, 0.229276f, 0.229604f, 0.231037f, 0.232083f, 0.232116f, 0.232781f, 0.234308f, 0.234993f, 0.235018f, 0.236047f, 0.237493f, 0.237834f, 0.238024f, 0.239358f, 0.240565f, 0.240658f, 0.241147f, 0.242656f, 0.243523f, 0.243521f, 0.244375f, 0.24589f, 0.24639f, 0.246472f, 0.247673f, 0.249021f, 0.249212f, 0.249537f, 0.250987f, 0.252032f, 0.252047f, 0.252718f, 0.254261f, 0.254937f, 0.254948f, 0.255989f, 0.257447f, 0.257772f, 0.257954f, 0.259305f, 0.260517f, 0.260591f, 0.26108f, 0.262609f, 0.26347f, 0.263451f, 0.264314f, 0.265845f, 0.266331f, 0.266401f, 0.267618f, 0.268974f, 0.269148f, 0.269468f, 0.270937f, 0.271982f, 0.271978f, 0.272654f, 0.274215f, 0.274882f, 0.274877f, 0.275931f, 0.277402f, 0.277711f, 0.277884f, 0.279253f, 0.28047f, 0.280524f, 0.281013f, 0.282562f, 0.283418f, 0.28338f, 0.284253f, 0.2858f, 0.286273f, 0.286329f, 0.287563f, 0.288929f, 0.289083f, 0.289398f, 0.290889f, 0.291933f, 0.291908f, 0.292589f, 0.29417f, 0.294827f, 0.294804f, 0.295873f, 0.297358f, 0.297649f, 0.297811f, 0.299202f, 0.300424f, 0.300456f, 0.300945f, 0.302516f, 0.303367f, 0.303308f, 0.304191f, 0.305757f, 0.306215f, 0.306255f, 0.307508f, 0.308886f, 0.309018f, 0.309327f, 0.310841f, 0.311886f, 0.311837f, 0.312523f, 0.314127f, 0.314773f, 0.31473f, 0.315814f, 0.317316f, 0.317587f, 0.317737f, 0.319151f, 0.32038f, 0.320387f, 0.320875f, 0.322471f, 0.323317f, 0.323234f, 0.324128f, 0.325716f, 0.326157f, 0.32618f, 0.327454f, 0.328844f, 0.328952f, 0.329254f, 0.330794f, 0.33184f, 0.331764f, 0.332455f, 0.334085f, 0.33472f, 0.334654f, 0.335755f, 0.337276f, 0.337525f, 0.337662f, 0.339101f, 0.340337f, 0.340317f, 0.340804f, 0.342428f, 0.343268f, 0.343158f, 0.344064f, 0.345677f, 0.346099f, 0.346102f, 0.347399f, 0.348804f, 0.348885f, 0.349179f, 0.350748f, 0.351795f, 0.35169f, 0.352387f, 0.354046f, 0.354667f, 0.354575f, 0.355696f, 0.357238f, 0.357463f, 0.357584f, 0.359051f, 0.360296f, 0.360246f, 0.360731f, 0.362386f, 0.36322f, 0.363081f, 0.364f, 0.365639f, 0.366042f, 0.366023f, 0.367345f, 0.368766f, 0.368818f, 0.369102f, 0.370703f, 0.371753f, 0.371615f, 0.372317f, 0.374008f, 0.374615f, 0.374495f, 0.375637f, 0.377203f, 0.377401f, 0.377504f, 0.379002f, 0.380258f, 0.380173f, 0.380656f, 0.382346f, 0.383174f, 0.383001f, 0.383934f, 0.385604f, 0.385986f, 0.38594f, 0.387291f, 0.388731f, 0.38875f, 0.389023f, 0.39066f, 0.391712f, 0.391537f, 0.392246f, 0.393972f, 0.394565f, 0.394412f, 0.395577f, 0.39717f, 0.397338f, 0.397421f, 0.398954f, 0.400222f, 0.400099f, 0.400579f, 0.402308f, 0.40313f, 0.402919f, 0.403868f, 0.405572f, 0.405929f, 0.405855f, 0.407237f, 0.408699f, 0.408681f, 0.408941f, 0.410618f, 0.411674f, 0.411457f, 0.412173f, 0.413939f, 0.414515f, 0.414326f, 0.415516f, 0.41714f, 0.417275f, 0.417335f, 0.418908f, 0.420189f, 0.420023f, 0.4205f, 0.422273f, 0.423088f, 0.422834f, 0.4238f, 0.425543f, 0.425874f, 0.425767f, 0.427184f, 0.42867f, 0.428611f, 0.428856f, 0.430579f, 0.431638f, 0.431375f, 0.432098f, 0.433909f, 0.434467f, 0.434237f, 0.435455f, 0.437114f, 0.437212f, 0.437246f, 0.438862f, 0.440159f, 0.439945f, 0.440418f, 0.44224f, 0.443047f, 0.442745f, 0.443731f, 0.445518f, 0.445818f, 0.445674f, 0.447131f, 0.448645f, 0.448539f, 0.448767f, 0.450541f, 0.451605f, 0.451289f, 0.452021f, 0.453883f, 0.454421f, 0.454143f, 0.455394f, 0.457092f, 0.457148f, 0.457152f, 0.458818f, 0.460133f, 0.459865f, 0.460332f, 0.462211f, 0.46301f, 0.462653f, 0.46366f, 0.465498f, 0.465764f, 0.465577f, 0.467078f, 0.468625f, 0.468466f, 0.468674f, 0.470506f, 0.471576f, 0.4712f, 0.47194f, 0.473861f, 0.474376f, 0.474045f, 0.475331f, 0.477075f, 0.477084f, 0.477053f, 0.478775f, 0.480112f, 0.479782f, 0.480243f, 0.482186f, 0.482975f, 0.482555f, 0.483587f, 0.485482f, 0.48571f, 0.485475f, 0.487026f, 0.48861f, 0.488391f, 0.488576f, 0.490475f, 0.491552f, 0.491107f, 0.491856f, 0.493845f, 0.49
\ No newline at end of file
     },
     
-507f, 0.20661f, 0.207783f, 0.209117f, 0.20934f, 0.209671f, 0.211088f, 0.212135f, 0.212183f, 0.212843f, 0.214356f, 0.215049f, 0.215087f, 0.216105f, 0.217541f, 0.217895f, 0.218092f, 0.21941f, 0.220615f, 0.220724f, 0.221212f, 0.222705f, 0.223576f, 0.22359f, 0.224435f, 0.225937f, 0.226448f, 0.226541f, 0.227728f, 0.229068f, 0.229276f, 0.229604f, 0.231037f, 0.232083f, 0.232116f, 0.232781f, 0.234308f, 0.234993f, 0.235018f, 0.236047f, 0.237493f, 0.237834f, 0.238024f, 0.239358f, 0.240565f, 0.240658f, 0.241147f, 0.242656f, 0.243523f, 0.243521f, 0.244375f, 0.24589f, 0.24639f, 0.246472f, 0.247673f, 0.249021f, 0.249212f, 0.249537f, 0.250987f, 0.252032f, 0.252047f, 0.252718f, 0.254261f, 0.254937f, 0.254948f, 0.255989f, 0.257447f, 0.257772f, 0.257954f, 0.259305f, 0.260517f, 0.260591f, 0.26108f, 0.262609f, 0.26347f, 0.263451f, 0.264314f, 0.265845f, 0.266331f, 0.266401f, 0.267618f, 0.268974f, 0.269148f, 0.269468f, 0.270937f, 0.271982f, 0.271978f, 0.272654f, 0.274215f, 0.274882f, 0.274877f, 0.275931f, 0.277402f, 0.277711f, 0.277884f, 0.279253f, 0.28047f, 0.280524f, 0.281013f, 0.282562f, 0.283418f, 0.28338f, 0.284253f, 0.2858f, 0.286273f, 0.286329f, 0.287563f, 0.288929f, 0.289083f, 0.289398f, 0.290889f, 0.291933f, 0.291908f, 0.292589f, 0.29417f, 0.294827f, 0.294804f, 0.295873f, 0.297358f, 0.297649f, 0.297811f, 0.299202f, 0.300424f, 0.300456f, 0.300945f, 0.302516f, 0.303367f, 0.303308f, 0.304191f, 0.305757f, 0.306215f, 0.306255f, 0.307508f, 0.308886f, 0.309018f, 0.309327f, 0.310841f, 0.311886f, 0.311837f, 0.312523f, 0.314127f, 0.314773f, 0.31473f, 0.315814f, 0.317316f, 0.317587f, 0.317737f, 0.319151f, 0.32038f, 0.320387f, 0.320875f, 0.322471f, 0.323317f, 0.323234f, 0.324128f, 0.325716f, 0.326157f, 0.32618f, 0.327454f, 0.328844f, 0.328952f, 0.329254f, 0.330794f, 0.33184f, 0.331764f, 0.332455f, 0.334085f, 0.33472f, 0.334654f, 0.335755f, 0.337276f, 0.337525f, 0.337662f, 0.339101f, 0.340337f, 0.340317f, 0.340804f, 0.342428f, 0.343268f, 0.343158f, 0.344064f, 0.345677f, 0.346099f, 0.346102f, 0.347399f, 0.348804f, 0.348885f, 0.349179f, 0.350748f, 0.351795f, 0.35169f, 0.352387f, 0.354046f, 0.354667f, 0.354575f, 0.355696f, 0.357238f, 0.357463f, 0.357584f, 0.359051f, 0.360296f, 0.360246f, 0.360731f, 0.362386f, 0.36322f, 0.363081f, 0.364f, 0.365639f, 0.366042f, 0.366023f, 0.367345f, 0.368766f, 0.368818f, 0.369102f, 0.370703f, 0.371753f, 0.371615f, 0.372317f, 0.374008f, 0.374615f, 0.374495f, 0.375637f, 0.377203f, 0.377401f, 0.377504f, 0.379002f, 0.380258f, 0.380173f, 0.380656f, 0.382346f, 0.383174f, 0.383001f, 0.383934f, 0.385604f, 0.385986f, 0.38594f, 0.387291f, 0.388731f, 0.38875f, 0.389023f, 0.39066f, 0.391712f, 0.391537f, 0.392246f, 0.393972f, 0.394565f, 0.394412f, 0.395577f, 0.39717f, 0.397338f, 0.397421f, 0.398954f, 0.400222f, 0.400099f, 0.400579f, 0.402308f, 0.40313f, 0.402919f, 0.403868f, 0.405572f, 0.405929f, 0.405855f, 0.407237f, 0.408699f, 0.408681f, 0.408941f, 0.410618f, 0.411674f, 0.411457f, 0.412173f, 0.413939f, 0.414515f, 0.414326f, 0.415516f, 0.41714f, 0.417275f, 0.417335f, 0.418908f, 0.420189f, 0.420023f, 0.4205f, 0.422273f, 0.423088f, 0.422834f, 0.4238f, 0.425543f, 0.425874f, 0.425767f, 0.427184f, 0.42867f, 0.428611f, 0.428856f, 0.430579f, 0.431638f, 0.431375f, 0.432098f, 0.433909f, 0.434467f, 0.434237f, 0.435455f, 0.437114f, 0.437212f, 0.437246f, 0.438862f, 0.440159f, 0.439945f, 0.440418f, 0.44224f, 0.443047f, 0.442745f, 0.443731f, 0.445518f, 0.445818f, 0.445674f, 0.447131f, 0.448645f, 0.448539f, 0.448767f, 0.450541f, 0.451605f, 0.451289f, 0.452021f, 0.453883f, 0.454421f, 0.454143f, 0.455394f, 0.457092f, 0.457148f, 0.457152f, 0.458818f, 0.460133f, 0.459865f, 0.460332f, 0.462211f, 0.46301f, 0.462653f, 0.46366f, 0.465498f, 0.465764f, 0.465577f, 0.467078f, 0.468625f, 0.468466f, 0.468674f, 0.470506f, 0.471576f, 0.4712f, 0.47194f, 0.473861f, 0.474376f, 0.474045f, 0.475331f, 0.477075f, 0.477084f, 0.477053f, 0.478775f, 0.480112f, 0.479782f, 0.480243f, 0.482186f, 0.482975f, 0.482555f, 0.483587f, 0.485482f, 0.48571f, 0.485475f, 0.487026f, 0.48861f, 0.488391f, 0.488576f, 0.490475f, 0.491552f, 0.491107f, 0.491856f, 0.493845f, 0.494333f, 0.4939
\ No newline at end of file
+20079f, 0.201276f, 0.202755f, 0.20363f, 0.203659f, 0.204495f, 0.205985f, 0.206507f, 0.20661f, 0.207783f, 0.209117f, 0.20934f, 0.209671f, 0.211088f, 0.212135f, 0.212183f, 0.212843f, 0.214356f, 0.215049f, 0.215087f, 0.216105f, 0.217541f, 0.217895f, 0.218092f, 0.21941f, 0.220615f, 0.220724f, 0.221212f, 0.222705f, 0.223576f, 0.22359f, 0.224435f, 0.225937f, 0.226448f, 0.226541f, 0.227728f, 0.229068f, 0.229276f, 0.229604f, 0.231037f, 0.232083f, 0.232116f, 0.232781f, 0.234308f, 0.234993f, 0.235018f, 0.236047f, 0.237493f, 0.237834f, 0.238024f, 0.239358f, 0.240565f, 0.240658f, 0.241147f, 0.242656f, 0.243523f, 0.243521f, 0.244375f, 0.24589f, 0.24639f, 0.246472f, 0.247673f, 0.249021f, 0.249212f, 0.249537f, 0.250987f, 0.252032f, 0.252047f, 0.252718f, 0.254261f, 0.254937f, 0.254948f, 0.255989f, 0.257447f, 0.257772f, 0.257954f, 0.259305f, 0.260517f, 0.260591f, 0.26108f, 0.262609f, 0.26347f, 0.263451f, 0.264314f, 0.265845f, 0.266331f, 0.266401f, 0.267618f, 0.268974f, 0.269148f, 0.269468f, 0.270937f, 0.271982f, 0.271978f, 0.272654f, 0.274215f, 0.274882f, 0.274877f, 0.275931f, 0.277402f, 0.277711f, 0.277884f, 0.279253f, 0.28047f, 0.280524f, 0.281013f, 0.282562f, 0.283418f, 0.28338f, 0.284253f, 0.2858f, 0.286273f, 0.286329f, 0.287563f, 0.288929f, 0.289083f, 0.289398f, 0.290889f, 0.291933f, 0.291908f, 0.292589f, 0.29417f, 0.294827f, 0.294804f, 0.295873f, 0.297358f, 0.297649f, 0.297811f, 0.299202f, 0.300424f, 0.300456f, 0.300945f, 0.302516f, 0.303367f, 0.303308f, 0.304191f, 0.305757f, 0.306215f, 0.306255f, 0.307508f, 0.308886f, 0.309018f, 0.309327f, 0.310841f, 0.311886f, 0.311837f, 0.312523f, 0.314127f, 0.314773f, 0.31473f, 0.315814f, 0.317316f, 0.317587f, 0.317737f, 0.319151f, 0.32038f, 0.320387f, 0.320875f, 0.322471f, 0.323317f, 0.323234f, 0.324128f, 0.325716f, 0.326157f, 0.32618f, 0.327454f, 0.328844f, 0.328952f, 0.329254f, 0.330794f, 0.33184f, 0.331764f, 0.332455f, 0.334085f, 0.33472f, 0.334654f, 0.335755f, 0.337276f, 0.337525f, 0.337662f, 0.339101f, 0.340337f, 0.340317f, 0.340804f, 0.342428f, 0.343268f, 0.343158f, 0.344064f, 0.345677f, 0.346099f, 0.346102f, 0.347399f, 0.348804f, 0.348885f, 0.349179f, 0.350748f, 0.351795f, 0.35169f, 0.352387f, 0.354046f, 0.354667f, 0.354575f, 0.355696f, 0.357238f, 0.357463f, 0.357584f, 0.359051f, 0.360296f, 0.360246f, 0.360731f, 0.362386f, 0.36322f, 0.363081f, 0.364f, 0.365639f, 0.366042f, 0.366023f, 0.367345f, 0.368766f, 0.368818f, 0.369102f, 0.370703f, 0.371753f, 0.371615f, 0.372317f, 0.374008f, 0.374615f, 0.374495f, 0.375637f, 0.377203f, 0.377401f, 0.377504f, 0.379002f, 0.380258f, 0.380173f, 0.380656f, 0.382346f, 0.383174f, 0.383001f, 0.383934f, 0.385604f, 0.385986f, 0.38594f, 0.387291f, 0.388731f, 0.38875f, 0.389023f, 0.39066f, 0.391712f, 0.391537f, 0.392246f, 0.393972f, 0.394565f, 0.394412f, 0.395577f, 0.39717f, 0.397338f, 0.397421f, 0.398954f, 0.400222f, 0.400099f, 0.400579f, 0.402308f, 0.40313f, 0.402919f, 0.403868f, 0.405572f, 0.405929f, 0.405855f, 0.407237f, 0.408699f, 0.408681f, 0.408941f, 0.410618f, 0.411674f, 0.411457f, 0.412173f, 0.413939f, 0.414515f, 0.414326f, 0.415516f, 0.41714f, 0.417275f, 0.417335f, 0.418908f, 0.420189f, 0.420023f, 0.4205f, 0.422273f, 0.423088f, 0.422834f, 0.4238f, 0.425543f, 0.425874f, 0.425767f, 0.427184f, 0.42867f, 0.428611f, 0.428856f, 0.430579f, 0.431638f, 0.431375f, 0.432098f, 0.433909f, 0.434467f, 0.434237f, 0.435455f, 0.437114f, 0.437212f, 0.437246f, 0.438862f, 0.440159f, 0.439945f, 0.440418f, 0.44224f, 0.443047f, 0.442745f, 0.443731f, 0.445518f, 0.445818f, 0.445674f, 0.447131f, 0.448645f, 0.448539f, 0.448767f, 0.450541f, 0.451605f, 0.451289f, 0.452021f, 0.453883f, 0.454421f, 0.454143f, 0.455394f, 0.457092f, 0.457148f, 0.457152f, 0.458818f, 0.460133f, 0.459865f, 0.460332f, 0.462211f, 0.46301f, 0.462653f, 0.46366f, 0.465498f, 0.465764f, 0.465577f, 0.467078f, 0.468625f, 0.468466f, 0.468674f, 0.470506f, 0.471576f, 0.4712f, 0.47194f, 0.473861f, 0.474376f, 0.474045f, 0.475331f, 0.477075f, 0.477084f, 0.477053f, 0.478775f, 0.480112f, 0.479782f, 0.480243f, 0.482186f, 0.482975f, 0.482555f, 0.483587f, 0.485482f, 0.48571f, 0.485475f, 0.487026f, 0.48861f, 0.488391f, 0.488
\ No newline at end of file
 , 0.209671f, 0.211088f, 0.212135f, 0.212183f, 0.212843f, 0.214356f, 0.215049f, 0.215087f, 0.216105f, 0.217541f, 0.217895f, 0.218092f, 0.21941f, 0.220615f, 0.220724f, 0.221212f, 0.222705f, 0.223576f, 0.22359f, 0.224435f, 0.225937f, 0.226448f, 0.226541f, 0.227728f, 0.229068f, 0.229276f, 0.229604f, 0.231037f, 0.232083f, 0.232116f, 0.232781f, 0.234308f, 0.234993f, 0.235018f, 0.236047f, 0.237493f, 0.237834f, 0.238024f, 0.239358f, 0.240565f, 0.240658f, 0.241147f, 0.242656f, 0.243523f, 0.243521f, 0.244375f, 0.24589f, 0.24639f, 0.246472f, 0.247673f, 0.249021f, 0.249212f, 0.249537f, 0.250987f, 0.252032f, 0.252047f, 0.252718f, 0.254261f, 0.254937f, 0.254948f, 0.255989f, 0.257447f, 0.257772f, 0.257954f, 0.259305f, 0.260517f, 0.260591f, 0.26108f, 0.262609f, 0.26347f, 0.263451f, 0.264314f, 0.265845f, 0.266331f, 0.266401f, 0.267618f, 0.268974f, 0.269148f, 0.269468f, 0.270937f, 0.271982f, 0.271978f, 0.272654f, 0.274215f, 0.274882f, 0.274877f, 0.275931f, 0.277402f, 0.277711f, 0.277884f, 0.279253f, 0.28047f, 0.280524f, 0.281013f, 0.282562f, 0.283418f, 0.28338f, 0.284253f, 0.2858f, 0.286273f, 0.286329f, 0.287563f, 0.288929f, 0.289083f, 0.289398f, 0.290889f, 0.291933f, 0.291908f, 0.292589f, 0.29417f, 0.294827f, 0.294804f, 0.295873f, 0.297358f, 0.297649f, 0.297811f, 0.299202f, 0.300424f, 0.300456f, 0.300945f, 0.302516f, 0.303367f, 0.303308f, 0.304191f, 0.305757f, 0.306215f, 0.306255f, 0.307508f, 0.308886f, 0.309018f, 0.309327f, 0.310841f, 0.311886f, 0.311837f, 0.312523f, 0.314127f, 0.314773f, 0.31473f, 0.315814f, 0.317316f, 0.317587f, 0.317737f, 0.319151f, 0.32038f, 0.320387f, 0.320875f, 0.322471f, 0.323317f, 0.323234f, 0.324128f, 0.325716f, 0.326157f, 0.32618f, 0.327454f, 0.328844f, 0.328952f, 0.329254f, 0.330794f, 0.33184f, 0.331764f, 0.332455f, 0.334085f, 0.33472f, 0.334654f, 0.335755f, 0.337276f, 0.337525f, 0.337662f, 0.339101f, 0.340337f, 0.340317f, 0.340804f, 0.342428f, 0.343268f, 0.343158f, 0.344064f, 0.345677f, 0.346099f, 0.346102f, 0.347399f, 0.348804f, 0.348885f, 0.349179f, 0.350748f, 0.351795f, 0.35169f, 0.352387f, 0.354046f, 0.354667f, 0.354575f, 0.355696f, 0.357238f, 0.357463f, 0.357584f, 0.359051f, 0.360296f, 0.360246f, 0.360731f, 0.362386f, 0.36322f, 0.363081f, 0.364f, 0.365639f, 0.366042f, 0.366023f, 0.367345f, 0.368766f, 0.368818f, 0.369102f, 0.370703f, 0.371753f, 0.371615f, 0.372317f, 0.374008f, 0.374615f, 0.374495f, 0.375637f, 0.377203f, 0.377401f, 0.377504f, 0.379002f, 0.380258f, 0.380173f, 0.380656f, 0.382346f, 0.383174f, 0.383001f, 0.383934f, 0.385604f, 0.385986f, 0.38594f, 0.387291f, 0.388731f, 0.38875f, 0.389023f, 0.39066f, 0.391712f, 0.391537f, 0.392246f, 0.393972f, 0.394565f, 0.394412f, 0.395577f, 0.39717f, 0.397338f, 0.397421f, 0.398954f, 0.400222f, 0.400099f, 0.400579f, 0.402308f, 0.40313f, 0.402919f, 0.403868f, 0.405572f, 0.405929f, 0.405855f, 0.407237f, 0.408699f, 0.408681f, 0.408941f, 0.410618f, 0.411674f, 0.411457f, 0.412173f, 0.413939f, 0.414515f, 0.414326f, 0.415516f, 0.41714f, 0.417275f, 0.417335f, 0.418908f, 0.420189f, 0.420023f, 0.4205f, 0.422273f, 0.423088f, 0.422834f, 0.4238f, 0.425543f, 0.425874f, 0.425767f, 0.427184f, 0.42867f, 0.428611f, 0.428856f, 0.430579f, 0.431638f, 0.431375f, 0.432098f, 0.433909f, 0.434467f, 0.434237f, 0.435455f, 0.437114f, 0.437212f, 0.437246f, 0.438862f, 0.440159f, 0.439945f, 0.440418f, 0.44224f, 0.443047f, 0.442745f, 0.443731f, 0.445518f, 0.445818f, 0.445674f, 0.447131f, 0.448645f, 0.448539f, 0.448767f, 0.450541f, 0.451605f, 0.451289f, 0.452021f, 0.453883f, 0.454421f, 0.454143f, 0.455394f, 0.457092f, 0.457148f, 0.457152f, 0.458818f, 0.460133f, 0.459865f, 0.460332f, 0.462211f, 0.46301f, 0.462653f, 0.46366f, 0.465498f, 0.465764f, 0.465577f, 0.467078f, 0.468625f, 0.468466f, 0.468674f, 0.470506f, 0.471576f, 0.4712f, 0.47194f, 0.473861f, 0.474376f, 0.474045f, 0.475331f, 0.477075f, 0.477084f, 0.477053f, 0.478775f, 0.480112f, 0.479782f, 0.480243f, 0.482186f, 0.482975f, 0.482555f, 0.483587f, 0.485482f, 0.48571f, 0.485475f, 0.487026f, 0.48861f, 0.488391f, 0.488576f, 0.490475f, 0.491552f, 0.491107f, 0.491856f, 0.493845f, 0.494333f, 0.493941f, 0.495268f, 0.497065f, 0.497019f, 0.496949
\ No newline at end of file
     },
     
@@ -3473,7 +3473,7 @@
 2f, 0.108576f, 0.108825f, 0.109358f, 0.110216f, 0.111384f, 0.112791f, 0.114326f, 0.115854f, 0.11724f, 0.118378f, 0.119201f, 0.119699f, 0.119919f, 0.119957f, 0.119941f, 0.120008f, 0.120281f, 0.120846f, 0.12174f, 0.12294f, 0.12437f, 0.125915f, 0.127438f, 0.128806f, 0.129914f, 0.130703f, 0.131166f, 0.131359f, 0.131381f, 0.131363f, 0.131442f, 0.131739f, 0.132338f, 0.133266f, 0.134498f, 0.13595f, 0.137504f, 0.139021f, 0.14037f, 0.141449f, 0.142202f, 0.142632f, 0.142797f, 0.142803f, 0.142784f, 0.142877f, 0.1432f, 0.143832f, 0.144796f, 0.146058f, 0.147533f, 0.149095f, 0.150605f, 0.151933f, 0.152981f, 0.153698f, 0.154094f, 0.154233f, 0.154224f, 0.154205f, 0.154312f, 0.154662f, 0.155328f, 0.156328f, 0.157622f, 0.159117f, 0.160686f, 0.162188f, 0.163494f, 0.16451f, 0.165192f, 0.165554f, 0.165666f, 0.165644f, 0.165626f, 0.165749f, 0.166126f, 0.166827f, 0.167863f, 0.169188f, 0.170703f, 0.172277f, 0.173771f, 0.175054f, 0.176038f, 0.176683f, 0.17701f, 0.177097f, 0.177062f, 0.177046f, 0.177186f, 0.177593f, 0.178329f, 0.179401f, 0.180756f, 0.18229f, 0.18387f, 0.185353f, 0.186612f, 0.187563f, 0.188171f, 0.188464f, 0.188526f, 0.188479f, 0.188467f, 0.188625f, 0.189061f, 0.189834f, 0.190942f, 0.192327f, 0.19388f, 0.195463f, 0.196934f, 0.198169f, 0.199085f, 0.199656f, 0.199915f, 0.199952f, 0.199895f, 0.199887f, 0.200065f, 0.200532f, 0.201342f, 0.202486f, 0.203901f, 0.205471f, 0.207057f, 0.208515f, 0.209724f, 0.210605f, 0.211138f, 0.211364f, 0.211377f, 0.211309f, 0.211307f, 0.211506f, 0.212005f, 0.212852f, 0.214033f, 0.215477f, 0.217065f, 0.218652f, 0.220096f, 0.221277f, 0.222122f, 0.222617f, 0.222809f, 0.222799f, 0.222722f, 0.222727f, 0.222948f, 0.22348f, 0.224365f, 0.225584f, 0.227056f, 0.22866f, 0.230248f, 0.231676f, 0.232828f, 0.233636f, 0.234092f, 0.234251f, 0.234218f, 0.234134f, 0.234147f, 0.234391f, 0.234957f, 0.235882f, 0.237137f, 0.238638f, 0.240257f, 0.241844f, 0.243255f, 0.244377f, 0.245148f, 0.245565f, 0.24569f, 0.245635f, 0.245544f, 0.245567f, 0.245836f, 0.246437f, 0.247401f, 0.248694f, 0.250223f, 0.251856f, 0.253441f, 0.254834f, 0.255925f, 0.256657f, 0.257034f, 0.257126f, 0.25705f, 0.256953f, 0.256987f, 0.257281f, 0.257919f, 0.258923f, 0.260253f, 0.261811f, 0.263457f, 0.265039f, 0.266412f, 0.267471f, 0.268163f, 0.2685f, 0.268559f, 0.268462f, 0.26836f, 0.268407f, 0.268729f, 0.269404f, 0.270449f, 0.271817f, 0.273402f, 0.275061f, 0.276637f, 0.27799f, 0.279014f, 0.279666f, 0.279963f, 0.279988f, 0.279871f, 0.279766f, 0.279827f, 0.280177f, 0.280891f, 0.281978f, 0.283383f, 0.284995f, 0.286666f, 0.288237f, 0.289567f, 0.290556f, 0.291166f, 0.291422f, 0.291414f, 0.291278f, 0.291171f, 0.291246f, 0.291627f, 0.292381f, 0.293511f, 0.294954f, 0.296592f, 0.298273f, 0.299837f, 0.301143f, 0.302096f, 0.302663f, 0.302878f, 0.302837f, 0.302682f, 0.302573f, 0.302666f, 0.303078f, 0.303873f, 0.305047f, 0.306528f, 0.308192f, 0.309883f, 0.311438f, 0.312718f, 0.313633f, 0.314156f, 0.314329f, 0.314256f, 0.314083f, 0.313975f, 0.314086f, 0.314531f, 0.315369f, 0.316586f, 0.318106f, 0.319796f, 0.321495f, 0.32304f, 0.324293f, 0.325168f, 0.325647f, 0.325777f, 0.325671f, 0.325481f, 0.325374f, 0.325505f, 0.325986f, 0.326867f, 0.328129f, 0.329688f, 0.331403f, 0.33311f, 0.334642f, 0.335867f, 0.336701f, 0.337133f, 0.337221f, 0.337082f, 0.336876f, 0.336772f, 0.336925f, 0.337442f, 0.338368f, 0.339677f, 0.341274f, 0.343014f, 0.344727f, 0.346246f, 0.34744f, 0.348232f, 0.348617f, 0.34866f, 0.348489f, 0.348267f, 0.348168f, 0.348344f, 0.348899f, 0.349872f, 0.351228f, 0.352864f, 0.354628f, 0.356346f, 0.357851f, 0.359012f, 0.35976f, 0.360096f, 0.360096f, 0.359892f, 0.359656f, 0.359562f, 0.359763f, 0.360359f, 0.36138f, 0.362783f, 0.364459f, 0.366247f, 0.367969f, 0.369457f, 0.370584f, 0.371285f, 0.371572f, 0.371526f, 0.371291f, 0.371041f, 0.370954f, 0.371182f, 0.37182f, 0.372891f, 0.374343f, 0.376058f, 0.37787f, 0.379594f, 0.381064f, 0.382155f, 0.382808f, 0.383043f, 0.382952f, 0.382685f, 0.382422f, 0.382344f, 0.382601f, 0.383282f, 0.384405f, 0.385908f, 0.387663f, 0.389497f, 0.391223f, 0.392672f, 0.393725f, 0.394328f, 0.394511f, 0.394373f, 0.394073f, 0.393799f, 0.393731f, 0.3940
\ No newline at end of file
     },
     
-8576f, 0.108825f, 0.109358f, 0.110216f, 0.111384f, 0.112791f, 0.114326f, 0.115854f, 0.11724f, 0.118378f, 0.119201f, 0.119699f, 0.119919f, 0.119957f, 0.119941f, 0.120008f, 0.120281f, 0.120846f, 0.12174f, 0.12294f, 0.12437f, 0.125915f, 0.127438f, 0.128806f, 0.129914f, 0.130703f, 0.131166f, 0.131359f, 0.131381f, 0.131363f, 0.131442f, 0.131739f, 0.132338f, 0.133266f, 0.134498f, 0.13595f, 0.137504f, 0.139021f, 0.14037f, 0.141449f, 0.142202f, 0.142632f, 0.142797f, 0.142803f, 0.142784f, 0.142877f, 0.1432f, 0.143832f, 0.144796f, 0.146058f, 0.147533f, 0.149095f, 0.150605f, 0.151933f, 0.152981f, 0.153698f, 0.154094f, 0.154233f, 0.154224f, 0.154205f, 0.154312f, 0.154662f, 0.155328f, 0.156328f, 0.157622f, 0.159117f, 0.160686f, 0.162188f, 0.163494f, 0.16451f, 0.165192f, 0.165554f, 0.165666f, 0.165644f, 0.165626f, 0.165749f, 0.166126f, 0.166827f, 0.167863f, 0.169188f, 0.170703f, 0.172277f, 0.173771f, 0.175054f, 0.176038f, 0.176683f, 0.17701f, 0.177097f, 0.177062f, 0.177046f, 0.177186f, 0.177593f, 0.178329f, 0.179401f, 0.180756f, 0.18229f, 0.18387f, 0.185353f, 0.186612f, 0.187563f, 0.188171f, 0.188464f, 0.188526f, 0.188479f, 0.188467f, 0.188625f, 0.189061f, 0.189834f, 0.190942f, 0.192327f, 0.19388f, 0.195463f, 0.196934f, 0.198169f, 0.199085f, 0.199656f, 0.199915f, 0.199952f, 0.199895f, 0.199887f, 0.200065f, 0.200532f, 0.201342f, 0.202486f, 0.203901f, 0.205471f, 0.207057f, 0.208515f, 0.209724f, 0.210605f, 0.211138f, 0.211364f, 0.211377f, 0.211309f, 0.211307f, 0.211506f, 0.212005f, 0.212852f, 0.214033f, 0.215477f, 0.217065f, 0.218652f, 0.220096f, 0.221277f, 0.222122f, 0.222617f, 0.222809f, 0.222799f, 0.222722f, 0.222727f, 0.222948f, 0.22348f, 0.224365f, 0.225584f, 0.227056f, 0.22866f, 0.230248f, 0.231676f, 0.232828f, 0.233636f, 0.234092f, 0.234251f, 0.234218f, 0.234134f, 0.234147f, 0.234391f, 0.234957f, 0.235882f, 0.237137f, 0.238638f, 0.240257f, 0.241844f, 0.243255f, 0.244377f, 0.245148f, 0.245565f, 0.24569f, 0.245635f, 0.245544f, 0.245567f, 0.245836f, 0.246437f, 0.247401f, 0.248694f, 0.250223f, 0.251856f, 0.253441f, 0.254834f, 0.255925f, 0.256657f, 0.257034f, 0.257126f, 0.25705f, 0.256953f, 0.256987f, 0.257281f, 0.257919f, 0.258923f, 0.260253f, 0.261811f, 0.263457f, 0.265039f, 0.266412f, 0.267471f, 0.268163f, 0.2685f, 0.268559f, 0.268462f, 0.26836f, 0.268407f, 0.268729f, 0.269404f, 0.270449f, 0.271817f, 0.273402f, 0.275061f, 0.276637f, 0.27799f, 0.279014f, 0.279666f, 0.279963f, 0.279988f, 0.279871f, 0.279766f, 0.279827f, 0.280177f, 0.280891f, 0.281978f, 0.283383f, 0.284995f, 0.286666f, 0.288237f, 0.289567f, 0.290556f, 0.291166f, 0.291422f, 0.291414f, 0.291278f, 0.291171f, 0.291246f, 0.291627f, 0.292381f, 0.293511f, 0.294954f, 0.296592f, 0.298273f, 0.299837f, 0.301143f, 0.302096f, 0.302663f, 0.302878f, 0.302837f, 0.302682f, 0.302573f, 0.302666f, 0.303078f, 0.303873f, 0.305047f, 0.306528f, 0.308192f, 0.309883f, 0.311438f, 0.312718f, 0.313633f, 0.314156f, 0.314329f, 0.314256f, 0.314083f, 0.313975f, 0.314086f, 0.314531f, 0.315369f, 0.316586f, 0.318106f, 0.319796f, 0.321495f, 0.32304f, 0.324293f, 0.325168f, 0.325647f, 0.325777f, 0.325671f, 0.325481f, 0.325374f, 0.325505f, 0.325986f, 0.326867f, 0.328129f, 0.329688f, 0.331403f, 0.33311f, 0.334642f, 0.335867f, 0.336701f, 0.337133f, 0.337221f, 0.337082f, 0.336876f, 0.336772f, 0.336925f, 0.337442f, 0.338368f, 0.339677f, 0.341274f, 0.343014f, 0.344727f, 0.346246f, 0.34744f, 0.348232f, 0.348617f, 0.34866f, 0.348489f, 0.348267f, 0.348168f, 0.348344f, 0.348899f, 0.349872f, 0.351228f, 0.352864f, 0.354628f, 0.356346f, 0.357851f, 0.359012f, 0.35976f, 0.360096f, 0.360096f, 0.359892f, 0.359656f, 0.359562f, 0.359763f, 0.360359f, 0.36138f, 0.362783f, 0.364459f, 0.366247f, 0.367969f, 0.369457f, 0.370584f, 0.371285f, 0.371572f, 0.371526f, 0.371291f, 0.371041f, 0.370954f, 0.371182f, 0.37182f, 0.372891f, 0.374343f, 0.376058f, 0.37787f, 0.379594f, 0.381064f, 0.382155f, 0.382808f, 0.383043f, 0.382952f, 0.382685f, 0.382422f, 0.382344f, 0.382601f, 0.383282f, 0.384405f, 0.385908f, 0.387663f, 0.389497f, 0.391223f, 0.392672f, 0.393725f, 0.394328f, 0.394511f, 0.394373f, 0.394073f, 0.393799f, 0.393731f, 0.394019f, 0.3
\ No newline at end of file
+6839f, 0.107696f, 0.108228f, 0.108477f, 0.108533f, 0.10852f, 0.108576f, 0.108825f, 0.109358f, 0.110216f, 0.111384f, 0.112791f, 0.114326f, 0.115854f, 0.11724f, 0.118378f, 0.119201f, 0.119699f, 0.119919f, 0.119957f, 0.119941f, 0.120008f, 0.120281f, 0.120846f, 0.12174f, 0.12294f, 0.12437f, 0.125915f, 0.127438f, 0.128806f, 0.129914f, 0.130703f, 0.131166f, 0.131359f, 0.131381f, 0.131363f, 0.131442f, 0.131739f, 0.132338f, 0.133266f, 0.134498f, 0.13595f, 0.137504f, 0.139021f, 0.14037f, 0.141449f, 0.142202f, 0.142632f, 0.142797f, 0.142803f, 0.142784f, 0.142877f, 0.1432f, 0.143832f, 0.144796f, 0.146058f, 0.147533f, 0.149095f, 0.150605f, 0.151933f, 0.152981f, 0.153698f, 0.154094f, 0.154233f, 0.154224f, 0.154205f, 0.154312f, 0.154662f, 0.155328f, 0.156328f, 0.157622f, 0.159117f, 0.160686f, 0.162188f, 0.163494f, 0.16451f, 0.165192f, 0.165554f, 0.165666f, 0.165644f, 0.165626f, 0.165749f, 0.166126f, 0.166827f, 0.167863f, 0.169188f, 0.170703f, 0.172277f, 0.173771f, 0.175054f, 0.176038f, 0.176683f, 0.17701f, 0.177097f, 0.177062f, 0.177046f, 0.177186f, 0.177593f, 0.178329f, 0.179401f, 0.180756f, 0.18229f, 0.18387f, 0.185353f, 0.186612f, 0.187563f, 0.188171f, 0.188464f, 0.188526f, 0.188479f, 0.188467f, 0.188625f, 0.189061f, 0.189834f, 0.190942f, 0.192327f, 0.19388f, 0.195463f, 0.196934f, 0.198169f, 0.199085f, 0.199656f, 0.199915f, 0.199952f, 0.199895f, 0.199887f, 0.200065f, 0.200532f, 0.201342f, 0.202486f, 0.203901f, 0.205471f, 0.207057f, 0.208515f, 0.209724f, 0.210605f, 0.211138f, 0.211364f, 0.211377f, 0.211309f, 0.211307f, 0.211506f, 0.212005f, 0.212852f, 0.214033f, 0.215477f, 0.217065f, 0.218652f, 0.220096f, 0.221277f, 0.222122f, 0.222617f, 0.222809f, 0.222799f, 0.222722f, 0.222727f, 0.222948f, 0.22348f, 0.224365f, 0.225584f, 0.227056f, 0.22866f, 0.230248f, 0.231676f, 0.232828f, 0.233636f, 0.234092f, 0.234251f, 0.234218f, 0.234134f, 0.234147f, 0.234391f, 0.234957f, 0.235882f, 0.237137f, 0.238638f, 0.240257f, 0.241844f, 0.243255f, 0.244377f, 0.245148f, 0.245565f, 0.24569f, 0.245635f, 0.245544f, 0.245567f, 0.245836f, 0.246437f, 0.247401f, 0.248694f, 0.250223f, 0.251856f, 0.253441f, 0.254834f, 0.255925f, 0.256657f, 0.257034f, 0.257126f, 0.25705f, 0.256953f, 0.256987f, 0.257281f, 0.257919f, 0.258923f, 0.260253f, 0.261811f, 0.263457f, 0.265039f, 0.266412f, 0.267471f, 0.268163f, 0.2685f, 0.268559f, 0.268462f, 0.26836f, 0.268407f, 0.268729f, 0.269404f, 0.270449f, 0.271817f, 0.273402f, 0.275061f, 0.276637f, 0.27799f, 0.279014f, 0.279666f, 0.279963f, 0.279988f, 0.279871f, 0.279766f, 0.279827f, 0.280177f, 0.280891f, 0.281978f, 0.283383f, 0.284995f, 0.286666f, 0.288237f, 0.289567f, 0.290556f, 0.291166f, 0.291422f, 0.291414f, 0.291278f, 0.291171f, 0.291246f, 0.291627f, 0.292381f, 0.293511f, 0.294954f, 0.296592f, 0.298273f, 0.299837f, 0.301143f, 0.302096f, 0.302663f, 0.302878f, 0.302837f, 0.302682f, 0.302573f, 0.302666f, 0.303078f, 0.303873f, 0.305047f, 0.306528f, 0.308192f, 0.309883f, 0.311438f, 0.312718f, 0.313633f, 0.314156f, 0.314329f, 0.314256f, 0.314083f, 0.313975f, 0.314086f, 0.314531f, 0.315369f, 0.316586f, 0.318106f, 0.319796f, 0.321495f, 0.32304f, 0.324293f, 0.325168f, 0.325647f, 0.325777f, 0.325671f, 0.325481f, 0.325374f, 0.325505f, 0.325986f, 0.326867f, 0.328129f, 0.329688f, 0.331403f, 0.33311f, 0.334642f, 0.335867f, 0.336701f, 0.337133f, 0.337221f, 0.337082f, 0.336876f, 0.336772f, 0.336925f, 0.337442f, 0.338368f, 0.339677f, 0.341274f, 0.343014f, 0.344727f, 0.346246f, 0.34744f, 0.348232f, 0.348617f, 0.34866f, 0.348489f, 0.348267f, 0.348168f, 0.348344f, 0.348899f, 0.349872f, 0.351228f, 0.352864f, 0.354628f, 0.356346f, 0.357851f, 0.359012f, 0.35976f, 0.360096f, 0.360096f, 0.359892f, 0.359656f, 0.359562f, 0.359763f, 0.360359f, 0.36138f, 0.362783f, 0.364459f, 0.366247f, 0.367969f, 0.369457f, 0.370584f, 0.371285f, 0.371572f, 0.371526f, 0.371291f, 0.371041f, 0.370954f, 0.371182f, 0.37182f, 0.372891f, 0.374343f, 0.376058f, 0.37787f, 0.379594f, 0.381064f, 0.382155f, 0.382808f, 0.383043f, 0.382952f, 0.382685f, 0.382422f, 0.382344f, 0.382601f, 0.383282f, 0.384405f, 0.385908f, 0.387663f, 0.389497f, 0.391223f, 0.392672f, 0.393725f, 0.394328f, 0.39
\ No newline at end of file
  0.112791f, 0.114326f, 0.115854f, 0.11724f, 0.118378f, 0.119201f, 0.119699f, 0.119919f, 0.119957f, 0.119941f, 0.120008f, 0.120281f, 0.120846f, 0.12174f, 0.12294f, 0.12437f, 0.125915f, 0.127438f, 0.128806f, 0.129914f, 0.130703f, 0.131166f, 0.131359f, 0.131381f, 0.131363f, 0.131442f, 0.131739f, 0.132338f, 0.133266f, 0.134498f, 0.13595f, 0.137504f, 0.139021f, 0.14037f, 0.141449f, 0.142202f, 0.142632f, 0.142797f, 0.142803f, 0.142784f, 0.142877f, 0.1432f, 0.143832f, 0.144796f, 0.146058f, 0.147533f, 0.149095f, 0.150605f, 0.151933f, 0.152981f, 0.153698f, 0.154094f, 0.154233f, 0.154224f, 0.154205f, 0.154312f, 0.154662f, 0.155328f, 0.156328f, 0.157622f, 0.159117f, 0.160686f, 0.162188f, 0.163494f, 0.16451f, 0.165192f, 0.165554f, 0.165666f, 0.165644f, 0.165626f, 0.165749f, 0.166126f, 0.166827f, 0.167863f, 0.169188f, 0.170703f, 0.172277f, 0.173771f, 0.175054f, 0.176038f, 0.176683f, 0.17701f, 0.177097f, 0.177062f, 0.177046f, 0.177186f, 0.177593f, 0.178329f, 0.179401f, 0.180756f, 0.18229f, 0.18387f, 0.185353f, 0.186612f, 0.187563f, 0.188171f, 0.188464f, 0.188526f, 0.188479f, 0.188467f, 0.188625f, 0.189061f, 0.189834f, 0.190942f, 0.192327f, 0.19388f, 0.195463f, 0.196934f, 0.198169f, 0.199085f, 0.199656f, 0.199915f, 0.199952f, 0.199895f, 0.199887f, 0.200065f, 0.200532f, 0.201342f, 0.202486f, 0.203901f, 0.205471f, 0.207057f, 0.208515f, 0.209724f, 0.210605f, 0.211138f, 0.211364f, 0.211377f, 0.211309f, 0.211307f, 0.211506f, 0.212005f, 0.212852f, 0.214033f, 0.215477f, 0.217065f, 0.218652f, 0.220096f, 0.221277f, 0.222122f, 0.222617f, 0.222809f, 0.222799f, 0.222722f, 0.222727f, 0.222948f, 0.22348f, 0.224365f, 0.225584f, 0.227056f, 0.22866f, 0.230248f, 0.231676f, 0.232828f, 0.233636f, 0.234092f, 0.234251f, 0.234218f, 0.234134f, 0.234147f, 0.234391f, 0.234957f, 0.235882f, 0.237137f, 0.238638f, 0.240257f, 0.241844f, 0.243255f, 0.244377f, 0.245148f, 0.245565f, 0.24569f, 0.245635f, 0.245544f, 0.245567f, 0.245836f, 0.246437f, 0.247401f, 0.248694f, 0.250223f, 0.251856f, 0.253441f, 0.254834f, 0.255925f, 0.256657f, 0.257034f, 0.257126f, 0.25705f, 0.256953f, 0.256987f, 0.257281f, 0.257919f, 0.258923f, 0.260253f, 0.261811f, 0.263457f, 0.265039f, 0.266412f, 0.267471f, 0.268163f, 0.2685f, 0.268559f, 0.268462f, 0.26836f, 0.268407f, 0.268729f, 0.269404f, 0.270449f, 0.271817f, 0.273402f, 0.275061f, 0.276637f, 0.27799f, 0.279014f, 0.279666f, 0.279963f, 0.279988f, 0.279871f, 0.279766f, 0.279827f, 0.280177f, 0.280891f, 0.281978f, 0.283383f, 0.284995f, 0.286666f, 0.288237f, 0.289567f, 0.290556f, 0.291166f, 0.291422f, 0.291414f, 0.291278f, 0.291171f, 0.291246f, 0.291627f, 0.292381f, 0.293511f, 0.294954f, 0.296592f, 0.298273f, 0.299837f, 0.301143f, 0.302096f, 0.302663f, 0.302878f, 0.302837f, 0.302682f, 0.302573f, 0.302666f, 0.303078f, 0.303873f, 0.305047f, 0.306528f, 0.308192f, 0.309883f, 0.311438f, 0.312718f, 0.313633f, 0.314156f, 0.314329f, 0.314256f, 0.314083f, 0.313975f, 0.314086f, 0.314531f, 0.315369f, 0.316586f, 0.318106f, 0.319796f, 0.321495f, 0.32304f, 0.324293f, 0.325168f, 0.325647f, 0.325777f, 0.325671f, 0.325481f, 0.325374f, 0.325505f, 0.325986f, 0.326867f, 0.328129f, 0.329688f, 0.331403f, 0.33311f, 0.334642f, 0.335867f, 0.336701f, 0.337133f, 0.337221f, 0.337082f, 0.336876f, 0.336772f, 0.336925f, 0.337442f, 0.338368f, 0.339677f, 0.341274f, 0.343014f, 0.344727f, 0.346246f, 0.34744f, 0.348232f, 0.348617f, 0.34866f, 0.348489f, 0.348267f, 0.348168f, 0.348344f, 0.348899f, 0.349872f, 0.351228f, 0.352864f, 0.354628f, 0.356346f, 0.357851f, 0.359012f, 0.35976f, 0.360096f, 0.360096f, 0.359892f, 0.359656f, 0.359562f, 0.359763f, 0.360359f, 0.36138f, 0.362783f, 0.364459f, 0.366247f, 0.367969f, 0.369457f, 0.370584f, 0.371285f, 0.371572f, 0.371526f, 0.371291f, 0.371041f, 0.370954f, 0.371182f, 0.37182f, 0.372891f, 0.374343f, 0.376058f, 0.37787f, 0.379594f, 0.381064f, 0.382155f, 0.382808f, 0.383043f, 0.382952f, 0.382685f, 0.382422f, 0.382344f, 0.382601f, 0.383282f, 0.384405f, 0.385908f, 0.387663f, 0.389497f, 0.391223f, 0.392672f, 0.393725f, 0.394328f, 0.394511f, 0.394373f, 0.394073f, 0.393799f, 0.393731f, 0.394019f, 0.394747f, 0.395923f, 0.397478f, 0.399273f, 0.401129f
\ No newline at end of file
     },
     
@@ -6753,7 +6753,7 @@
 f, 0.919797f, 0.919768f, 0.919739f, 0.91971f, 0.91968f, 0.919651f, 0.919622f, 0.919593f, 0.919563f, 0.919534f, 0.919505f, 0.919475f, 0.919446f, 0.919417f, 0.919388f, 0.919358f, 0.919329f,
 0.9193f, 0.919271f, 0.919241f, 0.919212f, 0.919183f, 0.919154f, 0.919124f, 0.919095f, 0.919066f, 0.919037f, 0.919007f, 0.918978f, 0.918949f, 0.91892f, 0.91889f, 0.918861f, 0.918832f, 0.918803f, 0.918773f, 0.918744f,
 0.918715f, 0.918686f, 0.918656f, 0.918627f, 0.918598f, 0.918569f, 0.918539f, 0.91851f, 0.918481f, 0.918452f, 0.918422f, 0.918393f, 0.918364f, 0.918335f, 0.918305f, 0.918276f, 0.918247f, 0.918218f, 0.918188f, 0.918159f,
-9534f, 0.919505f, 0.919475f, 0.919446f, 0.919417f, 0.919388f, 0.919358f, 0.919329f,
+ 0.919768f, 0.919739f, 0.91971f, 0.91968f, 0.919651f, 0.919622f, 0.919593f, 0.919563f, 0.919534f, 0.919505f, 0.919475f, 0.919446f, 0.919417f, 0.919388f, 0.919358f, 0.919329f,
 .919358f, 0.919329f,
 0.9193f, 0.919271f, 0.919241f, 0.919212f, 0.919183f, 0.919154f, 0.919124f, 0.919095f, 0.919066f, 0.919037f, 0.919007f, 0.918978f, 0.918949f, 0.91892f, 0.91889f, 0.918861f, 0.918832f, 0.918803f, 0.918773f, 0.918744f,
 0.918715f, 0.918686f, 0.918656f, 0.918627f, 0.918598f, 0.918569f, 0.918539f, 0.91851f, 0.918481f, 0.918452f, 0.918422f, 0.918393f, 0.918364f, 0.918335f, 0.918305f, 0.918276f, 0.918247f, 0.918218f, 0.918188f, 0.918159f,
@@ -10033,7 +10033,7 @@
  3.96467f, 3.963232f, 3.961794f, 3.960358f, 3.958922f,
 3.957488f, 3.956055f, 3.954622f, 3.953191f, 3.951761f, 3.950332f, 3.948903f, 3.947476f, 3.94605f, 3.944625f, 3.943201f, 3.941778f, 3.940356f, 3.938935f, 3.937515f, 3.936096f, 3.934678f, 3.933261f, 3.931845f, 3.930431f,
 3.929017f, 3.927604f, 3.926192f, 3.924781f, 3.923372f, 3.921963f, 3.920555f, 3.919148f, 3.917743f, 3.916338f, 3.914934f, 3.913532f, 3.91213f, 3.910729f, 3.90933f, 3.907931f, 3.906533f, 3.905136f, 3.903741f, 3.902346f,
-778f, 3.940356f, 3.938935f, 3.937515f, 3.936096f, 3.934678f, 3.933261f, 3.931845f, 3.930431f,
+.953191f, 3.951761f, 3.950332f, 3.948903f, 3.947476f, 3.94605f, 3.944625f, 3.943201f, 3.941778f, 3.940356f, 3.938935f, 3.937515f, 3.936096f, 3.934678f, 3.933261f, 3.931845f, 3.930431f,
 3.934678f, 3.933261f, 3.931845f, 3.930431f,
 3.929017f, 3.927604f, 3.926192f, 3.924781f, 3.923372f, 3.921963f, 3.920555f, 3.919148f, 3.917743f, 3.916338f, 3.914934f, 3.913532f, 3.91213f, 3.910729f, 3.90933f, 3.907931f, 3.906533f, 3.905136f, 3.903741f, 3.902346f,
 3.900952f, 3.89956f, 3.898168f, 3.896777f, 3.895388f, 3.893999f, 3.892611f, 3.891224f, 3.889839f, 3.888454f, 3.88707f, 3.885687f, 3.884305f, 3.882925f, 3.881545f, 3.880166f, 3.878788f, 3.877411f, 3.876035f, 3.87466f,
@@ -13936,7 +13936,7 @@
 .932255f,
 -0.932247f, -0.932239f, -0.932231f, -0.932223f, -0.932215f, -0.932207f, -0.932199f, -0.932191f, -0.932183f, -0.932175f, -0.932167f, -0.932159f, -0.932151f, -0.932143f, -0.932135f, -0.932127f, -0.932119f, -0.932111f, -0.932103f, -0.932095f,
 -0.932087f, -0.932079f, -0.932071f, -0.932063f, -0.932055f, -0.932047f, -0.932039f, -0.932031f, -0.932023f, -0.932015f, -0.932007f, -0.931999f, -0.931991f, -0.931983f, -0.931975f, -0.931967f, -0.931959f, -0.931951f, -0.931943f, -0.931935f,
-0.932247f, -0.932239f, -0.932231f, -0.932223f, -0.932215f, -0.932207f, -0.932199f, -0.932191f, -0.932183f, -0.932175f, -0.932167f, -0.932159f, -0.932151f, -0.932143f, -0.932135f, -0.932127f, -0.932119f, -0.932111f, -0.932103f, -0.932095f,
+11f, -0.932303f, -0.932295f, -0.932287f, -0.932279f, -0.932271f, -0.932263f, -0.932255f,
 f,
 -0.932087f, -0.932079f, -0.932071f, -0.932063f, -0.932055f, -0.932047f, -0.932039f, -0.932031f, -0.932023f, -0.932015f, -0.932007f, -0.931999f, -0.931991f, -0.931983f, -0.931975f, -0.931967f, -0.931959f, -0.931951f, -0.931943f, -0.931935f,
 -0.931927f, -0.931919f, -0.931911f, -0.931903f, -0.931895f, -0.931887f, -0.931879f, -0.931871f, -0.931863f, -0.931855f, -0.931847f, -0.931839f, -0.931831f, -0.931823f, -0.931815f, -0.931807f, -0.931798f, -0.93179f, -0.931782f, -0.931774f,