# Fitting a synthetic string in time


<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->

``` python
from pathlib import Path

import equinox as eqx
import jax
import jax.numpy as jnp
import matplotlib.pyplot as plt
import numpy as np
import optax

# import scienceplots  # noqa: F401
from IPython.display import Audio, display
from jaxtyping import Array, ArrayLike, Float
from tqdm import tqdm

from jaxdiffmodal.excitations import create_pluck_modal
from jaxdiffmodal.ftm import (
    StringParameters,
    evaluate_string_eigenfunctions,
    string_eigenvalues,
)
from jaxdiffmodal.time_integrators import (
    solve_sv_ic,
    string_tau_with_density,
)

# plt.style.use(["ieee", "no-latex"])
# plt.rcParams["legend.framealpha"] = 1.0
# plt.rcParams["legend.fancybox"] = True
```

# Utilities

``` python
def create_static_filter(
    model,
    static_params_lambda,
):
    is_static_filter = jax.tree_util.tree_map(lambda _: False, model)

    selected_params = static_params_lambda(model)

    if isinstance(selected_params, tuple):
        true_values = tuple(True for _ in selected_params)
    else:
        # Single parameter case
        true_values = True

    is_static_filter = eqx.tree_at(
        static_params_lambda,
        is_static_filter,
        true_values,
    )
    return is_static_filter


def visualize_results(
    model,
    time: Array,
    n_steps_vis: int,
    n_steps_train: int,
    dt: float,
    n_modes: int,
    losses: Array | None = None,
):
    """Visualize training results and model predictions."""
    print("Generating visualizations...")

    time_test = jnp.arange(n_steps_vis) * dt

    # Get modal trajectories for visualization
    targ_test_traj_modal: Array = gt_model(
        n_steps=n_steps_vis,
        dt=dt,
        n_modes=n_modes,
        return_modal=True,
    )

    pred_test_traj_modal = model(
        n_steps=n_steps_vis,
        dt=dt,
        n_modes=n_modes,
        return_modal=True,
    )

    pred_test_traj_phys: Array = model(
        n_steps=n_steps_vis,
        dt=dt,
        n_modes=n_modes,
        return_modal=False,
    )

    # Target physical position
    targ_test_traj_phys: Array = targ_test_traj_position

    # Check if losses exist and training is complete
    plot_losses = losses is not None and len(losses) > 0

    # Create plots - adjust subplot layout based on whether we're plotting losses
    if plot_losses:
        fig = plt.figure(figsize=(15, 10))
        gs_main = fig.add_gridspec(2, 2, hspace=0.3, wspace=0.3)
        # Plot loss in bottom right when training is complete
        loss_ax = fig.add_subplot(gs_main[1, 1])
        loss_ax.semilogy(losses)
        loss_ax.set_title("Training Loss")
        loss_ax.set_xlabel("Epoch")
        loss_ax.set_ylabel("MSE Loss")
        loss_ax.grid(True)
    else:
        fig = plt.figure(figsize=(15, 5))
        gs_main = fig.add_gridspec(1, 2, hspace=0.3, wspace=0.3)

    # Plot 1: Physical space comparison
    physical_ax = fig.add_subplot(gs_main[0, 0])
    physical_ax.plot(
        time_test[:n_steps_vis],
        targ_test_traj_phys[:n_steps_vis],
        "b-",
        label="Target",
    )
    physical_ax.plot(
        time_test[:n_steps_vis],
        pred_test_traj_phys[:n_steps_vis],
        "r--",
        label="Neural ODE",
    )
    physical_ax.set_title("Physical Space Displacement")
    physical_ax.set_xlabel("Time (s)")
    physical_ax.set_ylabel("Displacement (m)")
    physical_ax.set_ylim(-0.0025, 0.0025)
    physical_ax.grid(True)
    physical_ax.axvline(
        x=n_steps_train * dt,
        color="k",
        alpha=1.0,
        label="Train/Test Split",
    )
    physical_ax.legend(loc="upper right")

    # Plot 2: Modal amplitudes comparison - use the right half of top row
    if plot_losses:
        # Create subplot within the top-right area, avoiding the loss plot
        modal_gs = gs_main[0, 1].subgridspec(3, 1, hspace=0.4)
    else:
        # Use the right half for modal plots
        modal_gs = gs_main[0, 1].subgridspec(3, 1, hspace=0.4)

    for mode_idx in range(min(3, n_modes)):
        modal_ax = fig.add_subplot(modal_gs[mode_idx, 0])
        modal_ax.plot(
            time_test,
            targ_test_traj_modal[:n_steps_vis, mode_idx],
            label="Target",
            alpha=0.8,
            linewidth=1.5,
        )
        modal_ax.plot(
            time_test,
            pred_test_traj_modal[:n_steps_vis, mode_idx],
            "--",
            label="Prediction",
            alpha=0.8,
            linewidth=1.5,
        )
        modal_ax.set_title(f"Mode {mode_idx + 1}", fontsize=10)
        if mode_idx == 2:  # Only bottom plot gets x-label
            modal_ax.set_xlabel("Time (s)", fontsize=9)
        modal_ax.set_ylabel("Amplitude", fontsize=9)
        modal_ax.set_ylim(-0.0083, 0.0083)
        modal_ax.tick_params(labelsize=8)
        if mode_idx == 0:  # Only top plot gets legend
            modal_ax.legend(fontsize=8)
        modal_ax.grid(True, alpha=0.3)
        modal_ax.axvline(
            x=n_steps_train * dt,
            color="k",
            alpha=0.7,
            linestyle=":",
        )

    plt.show()
```

## Step 1: Generate Synthetic String Data

First, we’ll create synthetic string data using jaxdiffmodal’s physical
model. We’ll generate both linear and nonlinear dynamics to have target
data for training.

``` python
n_modes: int = 15
sample_rate: int = 16000
dt: float = 1.0 / sample_rate
n_steps_train: int = 1000
n_steps_test: int = 16000
n_steps_vis = 2000
```

``` python
string_params = StringParameters()
indices = jnp.arange(n_modes) + 1

lambda_mu = string_eigenvalues(
    n_modes,
    string_params.length,
)
exc = create_pluck_modal(
    lambdas=lambda_mu,
    string_length=string_params.length,
    initial_deflection=0.03,
)

weights = evaluate_string_eigenfunctions(
    indices=indices,
    position=jnp.array(0.6),
    params=string_params,
)

u0 = jnp.array(exc)
v0 = jnp.zeros_like(u0)
time = jnp.arange(n_steps_train) * dt


class StringModel(eqx.Module):
    length: ArrayLike
    d3_with_density: ArrayLike
    log_Ts0_with_density: ArrayLike
    bending_stiffness_with_density: ArrayLike
    tau_with_density: ArrayLike
    v0: Array
    u0: Array
    weights: Array  # Modal weights for single position output
    mlp: eqx.Module | None = None

    def __call__(
        self,
        n_steps: int,
        dt: float,
        n_modes: int = 10,
        return_modal: bool = False,
    ) -> Float[Array, " n_steps"] | Float[Array, "n_steps n_modes"]:
        # Unpack parameters
        length: ArrayLike = self.length
        d3_with_density: ArrayLike = self.d3_with_density
        # Convert from log-space
        Ts0_with_density: ArrayLike = jnp.exp(self.log_Ts0_with_density)
        bending_stiffness_with_density: ArrayLike = self.bending_stiffness_with_density
        tau_with_density: ArrayLike = self.tau_with_density
        u0: Array = self.u0
        v0: Array = self.v0

        # get the analytical eigenvalues
        lambda_mu: Array = string_eigenvalues(
            n_modes,
            length,
        )

        # get the damping and stiffness terms
        omega_mu_squared: Array = (
            bending_stiffness_with_density * lambda_mu**2 + Ts0_with_density * lambda_mu
        )
        gamma2_mu: Array = d3_with_density * lambda_mu

        # calculate the factor for the nonlinear term
        string_norm: float = string_params.length / 2
        string_tau: Array = tau_with_density * lambda_mu / string_norm

        def nl_fn(q: ArrayLike) -> Array:
            return lambda_mu * q * (string_tau @ q**2)

        def nl_fn_nn(q: ArrayLike) -> Array:
            return lambda_mu * self.mlp(q)

        _, traj = solve_sv_ic(
            gamma2_mu=gamma2_mu,
            omega_mu_squared=omega_mu_squared,
            u0=u0,
            v0=v0,
            dt=dt,
            n_steps=n_steps,
            nl_fn=nl_fn_nn if self.mlp is not None else nl_fn,
        )

        if return_modal:
            return traj
        else:
            # Apply weights to get single position output
            return traj @ self.weights
```

``` python
string_tau: float = string_tau_with_density(string_params)

gt_model = StringModel(
    length=string_params.length,
    log_Ts0_with_density=jnp.log(string_params.Ts0 / string_params.density),
    d3_with_density=(string_params.d3 / string_params.density),
    bending_stiffness_with_density=(
        string_params.bending_stiffness / string_params.density
    ),
    tau_with_density=string_tau_with_density(string_params),
    u0=u0,
    v0=v0,
    weights=weights,
    mlp=None,
)


# Get weighted trajectory at single position for training target
targ_test_traj_position: Array = gt_model(
    n_steps=n_steps_test,
    dt=dt,
    n_modes=n_modes,
    return_modal=False,
)

# slice a section for training
targ_train_traj_position: Array = targ_test_traj_position[:n_steps_train]
```

``` python
# Initialize model with random weights for optimization
key = jax.random.PRNGKey(12345)
(
    key_len,
    key_Ts0,
    key_d3,
) = jax.random.split(key, 3)

model = StringModel(
    length=jax.random.uniform(
        shape=(1,),
        minval=0.6,
        maxval=0.8,
        key=key_len,
    ),
    log_Ts0_with_density=jax.random.uniform(
        shape=(1,),
        minval=jnp.log(10_000),
        maxval=jnp.log(80_000),
        key=key_Ts0,
    ),
    d3_with_density=jax.random.uniform(
        shape=(1,),
        minval=5.0,
        maxval=7.0,
        key=key_d3,
    ),
    bending_stiffness_with_density=(
        string_params.bending_stiffness / string_params.density
    ),
    tau_with_density=string_tau_with_density(string_params),
    u0=u0,
    v0=v0,
    weights=weights,
    mlp=None,
)

# Create the static filter using the wrapper function
is_static_filter = create_static_filter(
    model=model,
    static_params_lambda=lambda m: (
        m.v0,
        m.u0,
        m.weights,
        m.bending_stiffness_with_density,
    ),
)

# Now, partition the model using our custom filter
static_model, diff_model = eqx.partition(
    model,
    is_static_filter,
)

pred_init_traj_position = model(
    n_steps=n_steps_test,
    dt=dt,
    n_modes=n_modes,
    return_modal=False,
)

display(Audio(targ_test_traj_position, rate=sample_rate))
display(Audio(pred_init_traj_position, rate=sample_rate))
```

                <audio  controls="controls" >
                    <source src="data:audio/wav;base64,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" type="audio/wav" />
                    Your browser does not support the audio element.
                </audio>
              

                <audio  controls="controls" >
                    <source src="data:audio/wav;base64,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5f/l/+b/5//n/+j/6f/q/+v/6//s/+3/7//w//H/8v/z//T/9v/3//j/+f/7//z//f///wAAAAABAAMABAAFAAYACAAJAAoACwAMAA0ADgAPABAAEQASABIAEwAUABQAFQAVABYAFgAXABcAFwAXABcAFwAXABcAFwAXABcAFgAWABYAFQAVABQAEwATABIAEQARABAADwAOAA0ADAALAAoACQAIAAcABgAFAAQAAwACAAEAAAAAAP///v/9//z/+//6//n/+P/3//b/9f/1//T/8//y//L/8f/x//D/8P/v/+//7v/u/+7/7v/t/+3/7f/t/+3/7f/t/+7/7v/u/+7/7//v/+//8P/w//H/8f/y//P/8//0//X/9f/2//f/+P/5//n/+v/7//z//f/+//7///8AAAAAAQACAAMAAwAEAAUABgAGAAcACAAJAAkACgAKAAsADAAMAAwADQANAA4ADgAOAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADgAOAA4ADQANAA0ADAAMAAsACwAKAAoACQAIAAgABwAHAAYABQAFAAQAAwADAAIAAQAAAAAAAAD//////v/9//3//P/7//v/+v/6//n/+f/4//j/9//3//b/9v/2//X/9f/1//T/9P/0//T/9P/0//T/9P/0//T/9P/0//T/9P/0//X/9f/1//b/9v/2//f/9//3//j/+P/5//n/+v/6//v/+//8//z//f/9//7//////wAAAAAAAAAAAQACAAIAAwADAAQABAAFAAUABgAGAAYABwAHAAcACAAIAAgACQAJAAkACQAJAAoACgAKAAoACgAKAAoACgAKAAoACgAJAAkACQAJAAkACAAIAAgACAAHAAcABwAGAAYABQAFAAUABAAEAAMAAwACAAIAAQABAAEAAAAAAAAAAAD//////v/+//7//f/9//z//P/8//v/+//7//r/+v/6//n/+f/5//n/+f/5//j/+P/4//j/+P/4//j/+P/4//j/+P/4//j/+f/5//n/+f/5//n/+v/6//r/+v/7//v/+//8//z//P/9//3//f/+//7/////////AAAAAAAAAAAAAAEAAQABAAIAAgACAAMAAwADAAQABAAEAAQABQAFAAUABQAFAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAUABQAFAAUABQAEAAQABAAEAAMAAwADAAMAAgACAAIAAQABAAEAAAAAAAAAAAAAAAAAAAD///////////7//v/+//3//f/9//3//f/8//z//P/8//z//P/7//v/+//7//v/+//7//v/+//7//v/+//7//v/+//7//v/+//7//z//P/8//z//P/8//3//f/9//3//f/+//7//v/+//7///////////8AAAAAAAAAAAAAAAAAAAAAAQABAAEAAQACAAIAAgACAAIAAwADAAMAAwADAAMAAwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAwADAAMAAwADAAMAAwADAAIAAgACAAIAAgACAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAP/////////////+//7//v/+//7//v/+//7//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/+//7//v/+//7//v/+//7/////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAwADAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgABAAEAAQABAAEAAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////////7//v/+//7//v/+//7//v/+//7//v/+//7//v/+//7//v/+//7//v/+//7//v/+//7//////////////////////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////////////////////////////////////////////////////////////////////////////////////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////////////////////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==" type="audio/wav" />
                    Your browser does not support the audio element.
                </audio>
              &#10;
Define the training loop and loss function.

``` python
def save_animation_frame(
    model,
    time: Array,
    weights: Array,
    frame_idx: int,
    gt_model,
    output_dir: str = "tmp_node",
):
    Path(output_dir).mkdir(exist_ok=True, parents=True)

    time_test = jnp.arange(n_steps_test) * dt

    pred_test_traj_modal = model(
        n_steps=n_steps_test,
        dt=dt,
        n_modes=n_modes,
        return_modal=True,
    )

    pred_test_traj_phys: Array = model(
        n_steps=n_steps_test,
        dt=dt,
        n_modes=n_modes,
        return_modal=False,
    )

    # Target physical position
    targ_test_traj_phys: Array = targ_test_traj_position

    # Create figure with centered plot and table underneath
    fig = plt.figure(figsize=(12, 6))
    gs = fig.add_gridspec(2, 1, height_ratios=[4, 1], hspace=0.4)

    # Plot 1: Physical space comparison (centered)
    physical_ax = fig.add_subplot(gs[0, 0])
    physical_ax.plot(
        time_test[: n_steps_vis * 2],
        targ_test_traj_phys[: n_steps_vis * 2],
        "b-",
        label="Target",
    )
    physical_ax.plot(
        time_test[: n_steps_vis * 2],
        pred_test_traj_phys[: n_steps_vis * 2],
        "r--",
        label="Optim",
    )
    physical_ax.set_title("Physical Space Displacement")
    physical_ax.set_xlabel("Time (s)")
    physical_ax.set_ylabel("Displacement (m)")
    physical_ax.set_ylim(-0.0025, 0.0025)
    physical_ax.legend(loc="upper right")
    physical_ax.grid(True)
    physical_ax.axvline(
        x=n_steps_train * dt,
        color="k",
        linestyle=":",
        alpha=0.7,
        label="Train/Test Split",
    )

    # Add parameter table
    table_ax = fig.add_subplot(gs[1, 0])
    table_ax.axis("off")

    # Create table data - handle both JAX arrays and floats
    def format_param(param):
        return param.item() if hasattr(param, "item") else param

    table_data = [
        ["Parameter", "Current", "Ground Truth"],
        [
            "Length",
            f"{format_param(model.length):.4f}",
            f"{format_param(gt_model.length):.4f}",
        ],
        [
            r"$\hat{d}_3$",
            f"{format_param(model.d3_with_density):.6f}",
            f"{format_param(gt_model.d3_with_density):.6f}",
        ],
        [
            r"$\hat{T}_0$",
            # Show actual value, not log
            f"{format_param(jnp.exp(model.log_Ts0_with_density)):.1f}",
            f"{format_param(jnp.exp(gt_model.log_Ts0_with_density)):.1f}",
        ],
    ]

    table = table_ax.table(
        cellText=table_data,
        cellLoc="center",
        loc="center",
        colWidths=[0.25, 0.25, 0.25],
    )
    table.auto_set_font_size(False)
    table.set_fontsize(12)
    table.scale(1, 2)

    # Style the header row
    for i in range(len(table_data[0])):
        table[(0, i)].set_facecolor("#40466e")
        table[(0, i)].set_text_props(weight="bold", color="white")

    plt.tight_layout()
    plt.savefig(f"{output_dir}/frame_{frame_idx:05d}.png", dpi=150, bbox_inches="tight")
    plt.close()
```

``` python
def train_neural_ode(
    model,
    save_frames=False,
    frame_interval=50,
):
    print("Training...")

    # normalise target trajectory for better training stability
    # Now using single position target instead of modal trajectories
    scale: float = jnp.max(jnp.abs(targ_train_traj_position)).item()
    targ_train_traj_position_scaled = targ_train_traj_position / scale

    @eqx.filter_jit
    def training_step(
        model,
        optimizer,
        opt_state,
        targ_train_traj_position_scaled,
    ):
        @eqx.filter_value_and_grad
        def loss_fn(
            diff_model,
            static_model,
            targ_train_traj_position_scaled,
        ):
            model: eqx.Module = eqx.combine(diff_model, static_model)

            pred_train_traj_position: Array = model(
                n_steps=n_steps_train,
                dt=dt,
                n_modes=n_modes,
                return_modal=False,
            )

            pred_train_traj_position: Array = (
                pred_train_traj_position / scale
            )  # normalise predictions

            # MSE loss
            mse_loss = jnp.mean(
                (pred_train_traj_position - targ_train_traj_position_scaled) ** 2
            )

            total_loss = mse_loss

            return total_loss

        static_model, diff_model = eqx.partition(
            model,
            is_static_filter,
        )
        loss_value, grads = loss_fn(
            diff_model,
            static_model,
            targ_train_traj_position_scaled,
        )

        updates, opt_state = optimizer.update(grads, opt_state)
        model = eqx.apply_updates(model, updates)
        return model, opt_state, loss_value

    # Training setup
    epochs = 10000
    learning_rate = 1e-4
    schedule = optax.cosine_onecycle_schedule(
        transition_steps=epochs,
        peak_value=learning_rate,
    )
    optimizer = optax.chain(
        optax.clip_by_global_norm(1.0),
        optax.adabelief(schedule),
    )
    opt_state = optimizer.init(
        eqx.filter(model, eqx.is_array),
    )

    losses = []

    bar = tqdm(range(epochs))
    for epoch in bar:
        model, opt_state, loss_value = training_step(
            model,
            optimizer,
            opt_state,
            targ_train_traj_position_scaled,
        )
        losses.append(loss_value)

        # Early stopping if NaN detected or loss explodes
        if jnp.isnan(loss_value) or loss_value > 1e8:
            print(
                f"\nWarning: Training stopped early at epoch {epoch + 1} due to instability"
            )
            print(f"Loss value: {loss_value}")
            break

        bar.set_description(f"Epoch {epoch + 1}/{epochs} | Loss: {loss_value:.6f}")

        # Save animation frame periodically
        if save_frames and epoch % frame_interval == 0:
            save_animation_frame(
                model=model,
                time=time,
                weights=weights,
                frame_idx=epoch // frame_interval,
                gt_model=gt_model,
            )

    return model, losses
```

``` python
# First visualisation of the initial model
visualize_results(
    model=model,
    time=time,
    n_steps_vis=n_steps_vis,
    n_steps_train=n_steps_train,
    dt=dt,
    n_modes=n_modes
)
```

    Generating visualizations...

![](optimise_string_time_files/figure-commonmark/cell-10-output-2.png)

``` python
print("Starting training...")
trained_model, training_losses = train_neural_ode(
    model,
    save_frames=False,
    frame_interval=100,
)
print(f"Training completed! Final loss: {training_losses[-1]:.6f}")
```

    Starting training...
    Training...

    Epoch 10000/10000 | Loss: 0.000000: 100%|██████████| 10000/10000 [00:24<00:00, 402.16it/s]

    Training completed! Final loss: 0.000000

``` python
visualize_results(
    model=trained_model,
    time=time,
    losses=training_losses,
    n_steps_vis=n_steps_vis,
    n_steps_train=n_steps_train,
    dt=dt,
    n_modes=n_modes
)
```

    Generating visualizations...

![](optimise_string_time_files/figure-commonmark/cell-12-output-2.png)
