diff --git a/Documentation/Tex/MiMeS.tex b/Documentation/Tex/MiMeS.tex
index f0f83fd..b9b2bcb 100644
--- a/Documentation/Tex/MiMeS.tex
+++ b/Documentation/Tex/MiMeS.tex
@@ -1,1859 +1,1867 @@
 \documentclass[11pt,a4paper]{article}
 \usepackage[utf8]{inputenc}
 \usepackage{amsmath}
 \usepackage{amsfonts}
 \usepackage{amssymb}
 \usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry}
 
 
 \usepackage{slashed}
 \usepackage{hyperref}
 \usepackage{graphicx}
 \usepackage{caption}
 \usepackage{float}
 \usepackage{subcaption}
 \usepackage{multirow}
 \usepackage[dvipsnames]{xcolor}
 \usepackage{multicol}
 \usepackage{authblk}
 
 \renewcommand{\theequation}{\arabic{section}.\arabic{equation}}
 
 
 
 \include{macros}
 
 
 
 %%%%%%%-----------------------Rules-----------------------%%%%%%%
 % 1. Put any new macros in macros.tex.
 
 % 2. Section should start with:
 	%\section{This is a section}\label{sec:Intro}
 	%\setcounter{equation}{0}
 
 % 3. labels for Figs should start with fig:, for equations should start with eq:, for sections with sec:, etc.
 %%%%%%%--------------------------------------------------%%%%%%%
 
 
 
 
 \author[ ]{Karamitros Dimitrios}
 \affil[ ]{\em School of Physics and Astronomy, The University of Manchester,
 	Manchester M13 9PL, United Kingdom}
 \affil[ ]{\textit{E-mail: } \href{mailto:dimitrios.karamitros@manchester.ac.uk}{\color{blue}{dimitrios.karamitros@manchester.ac.uk}}}
 	
 	
 \title{{\tt MiMeS}: Misalignment Mechanism Solver}
 \begin{document}
 
 \maketitle
 
 \begin{abstract}
 	We introduce a \CPP header-only library that solves the Axion equation of motion, \mimes.  
 	\mimes makes no assumptions regarding the cosmology and the thermal mass of the axion, which allows the user 
 	to consider various cosmological scenarios and axion-like models.
 	\mimes also includes a convenient \PY interface, which allows the user to use it without writing any code \CPP.
 \end{abstract}
 
 
 \section{Introduction}\label{sec:intro}
 \setcounter{equation}{0}
 
 About the axion...
 
 \section{Physics background}\label{sec:abundance}
 \setcounter{equation}{0}
 %
 Although there are several works in the literature (such as~\cite{Chang:1998ys}) that can provide a insight on the solution of the axion equation of motion (EOM), in this section we define, derive, and discuss the various quantities we need, in order to understand how \mimes works in detail.
 
 \paragraph{The EOM} %The axion field is written as 
 %
 %\begin{equation}
 %	A  \equiv \fa \ \theta,
 %	\label{eq:fa_def}
 %\end{equation}
 %%
 %with $\fa$ the scale of the axion that determines the the scale at which the PQ symmetry breaks. 
 %
 The EOM in terms of the axion angle, $\theta$, is 
 %
 \begin{equation}
 	\lrb{\dfrac{d^2}{d t^2} + 3 H(t) \ \dfrac{d}{d t} } \theta(t) + \maT^2(t) \ \sin \theta(t) = 0 \; ,
 	\label{eq:eom}
 \end{equation}
 %
 with $H(t)$ the Hubble parameter (determined by the cosmology), and $\maT(t)$  the time (temperature) dependent mass of the axion, with 
 \begin{equation}
 	\maT^2(T) = \dfrac{\chi(T)}{\fa^2}\;,
 	\label{eq:axion_mass_def}
 \end{equation} 
 %
 and $\chi$ a function of the temperature, and $\fa$ the scale at which the Peccei Quinn symmetry breaks \DK{ref??}. For the QCD axion, this has been calculated using lattice simulations in~\cite{Borsanyi:2016ksw}.~\footnote{The data provided by ref.~\cite{Borsanyi:2016ksw} are used by  \mimes out-of-the-box. However, the user is free to change them.}
 
 
 \paragraph{Initial conditions}
 %
 \begin{figure}[h!]
 	\includegraphics[width=1\textwidth]{figs/axion_mass.pdf}
 	\caption{The mass of the axion as a function of the temperature for $\fa=10^{12}~\GeV$, using the data provided in ref.~\cite{Borsanyi:2016ksw}.}
 	\label{fig:axion_mass}
 \end{figure}
 %
 Assuming that the PQ symmetry breaks before inflation, the initial conditions (\ie at some $t=0$, after inflation) for the EOM is random. However, we note that $\maT \to 0$ (see \Figs{fig:axion_mass}) -- \ie $\maT \ll H$ -- at very early times. Therefore, after inflation, the EOM is simply
 %
 \begin{equation}
 	\lrb{\dfrac{d^2}{d t^2} + 3 H(t) \ \dfrac{d}{d t}  } \theta(t) = 0 \; ,
 	\label{eq:massless_eom}
 \end{equation}
 %
 which is solved by $\theta = \thetai + C \dint_{0}^t d t' \ \lrb{ \dfrac{a(t'=0)}{a(t')} }^3$, with $\thetai$ a constant and $a$ the scale factor of the Universe. That is, as the Universe expands, $\theta \approx \thetai$. Since we would like to calculate the relic abundance of axions, we can integrate \eqs{eq:eom} from a time after inflation (call it $t = \ti$) such that $ \dot \theta |_{t=\ti} = 0$ and  $\theta|_{t=\ti} \approx \thetai$.   
 
 
 
 \subsection{The WKB approximation}
 %
 In order to solve analytically \eqs{eq:eom}, we assume $\theta \ll 1$, which results in the linearised EOM
 %
 \begin{equation}
 	\lrb{\dfrac{d^2}{d t^2} + 3 H(t) \ \dfrac{d}{d t} + \maT^2(t) } \theta(t) = 0 \; .
 	\label{eq:linear_eom}
 \end{equation}
 
 Using a trial solution $\theta_{\rm trial} = \exp\lrsb{ i \dint d t \ \lrBigb{u(t) +3/2 \ i \ H(t)} }$, and defining $\Omega^2 = \maT^2 - \dfrac{9}{4} H^2 -  \dfrac{3}{2} \dot H $ we can transform the \eqs{eq:linear_eom} to 
 %
 \begin{equation}
 	u^2 = \Omega^2 + i \ \dot u \; ,
 	\label{eq:eom_of_u}
 \end{equation}
 %
 which has a formal solution $u = \pm \sqrt{\Omega^2 + i \dot u}$. Assuming that $\dot u \ll \Omega^2$ and $\dot \Omega \ll \Omega^2$, we can approximate $u$ as
 %
 \begin{equation}
 	u \approx \pm \Omega + \dfrac{i}{2} \dfrac{d \log \Omega}{d t} \;,
 	\label{eq:u_approx}
 \end{equation}
 %
 which results in the general solution of \eqs{eq:linear_eom} 
 %
 \begin{equation}
 	\theta \approx \dfrac{1}{\sqrt{\Omega}} \exp\lrb{-\dfrac{3}{2} \int d t \ H} \lrsb{ A \cos\lrb{ \int d t \ \Omega} +  B \sin\lrb{ \int d t \ \Omega}    } \;. 
 	\label{eq:general_solution_eom_approx}
 \end{equation}
 
 Applying, then, the initial conditions $ \dot \theta |_{t=\ti} = 0$ and  $\theta|_{t=\ti} \approx \thetai$, we arrive at 
 %
 \begin{equation}
 \theta(t) \approx \thetai \sqrt{ \dfrac{ \Omegai }{\Omega (t)} } \lrb{\dfrac{a}{\ai}}^{-3/2} \  \cos\lrb{ \int_{\ti}^t d t^\prime  \ \Omega(t^\prime)}   \;.
 \label{eq:solution_eom_approx} 
 \end{equation}
 
 
 In order to further simplify this approximate result, we note that $\theta$ deviates from $\thetai$ close to $t=\tosc$ -- corresponding to $T = \Tosc$, the so-called ``oscillation temperature" -- $\maT|_{t = \tosc} = 3 H|_{t = \tosc}$, which is defined as the point at which the axion begins to oscillate. 
 %
 This observation allows us to set $\ti = \tosc$.  Moreover, at $t > \tosc$, we approximate $\Omega \approx \maT$, as $H^2$ and $\dot H$ become much smaller than $\maT^2$ quickly after $t=\tosc$. Finally, the axion angle takes the form
 %
 \begin{equation}
 	\theta(t) \approx \thetaosc \lrb{\dfrac{3}{4}}^{1/4} \sqrt{ \dfrac{ \maT|_{t=\tosc} }{\maT  (t)} } \lrb{\dfrac{a}{\aosc}}^{-3/2} \  \cos\lrb{ \int_{\tosc}^t d t^\prime  \ \maT(t^\prime)}   \;,
 	\label{eq:solution_eom_approx_theta_osc} 
 \end{equation}
 %
 where $\thetaosc = \theta|_{t=\tosc}$. This equation is further simplified if we assume that $\thetaosc \approx \thetai$, \ie
 %
 \begin{equation}
 	\theta(t) \approx \thetai \lrb{\dfrac{3}{4}}^{1/4} \sqrt{ \dfrac{ \maT|_{t=\tosc} }{\maT  (t)} } \lrb{\dfrac{a}{\aosc}}^{-3/2} \  \cos\lrb{ \int_{\tosc}^t d t^\prime  \ \maT(t^\prime)}   \;.
 	\label{eq:solution_eom_approx_final} 
 \end{equation}
 %
 It is worth mentioning that the accuracy of this approximation depends, in general, on $\Tosc$; it determines the difference between $\thetai$ and $\thetaosc$, the deviation of $\dot \theta|_{t=\tosc}$ from $0$, and whether $\dot \Omega \ll \Omega^2$. 
 
 
 \paragraph{Axion energy density}
 %
 The energy density of the axion is 
 %
 \begin{eqnarray}
 	\rho_{a} = \dfrac{1}{2} \fa^2 \lrsb{ \dot{\theta}^2 + \maT^2 \theta^2 } \;.
 	\label{eq:rho_a_def} 
 \end{eqnarray}
 %
 For the relic abundance of axions, we need to calculate their energy density at very late times. That is, $\dot{\tilde{m}}_a = 0$, $\maT \gg H$ and $\dot H \ll H^2$. After some algebra, we obtain the approximate form of the energy density (as a function of the scale factor $a$) 
 %
 \begin{eqnarray}
 	\rho_{a} \approx \dfrac{\ma }{2}  \ \fa^2 \ \thetai^2  \ \maT(\aosc) \ \lrb{\dfrac{\aosc}{a}}^3 \;,
 	\label{eq:rho_a0} 
 \end{eqnarray}
 %
 which shows that the energy density of axions at late times scales as the energy density of matter. If there is a period of entropy injection to the plasma for $T<\Tosc$, the axion energy density gets diluted, since 
 %
 \begin{equation}
 	a^3 \ s = \gamma \ \aosc^3 \ s_{\rm osc} \Rightarrow  \lrb{\dfrac{\aosc}{a}}^3 = \gamma^{-1} \dfrac{s}{s_{\rm osc}} \;,
 \end{equation}
 %
 with $\gamma$ the amount of entropy injection to the plasma between $\tosc$ and $t$. Therefore, the present (at $T=T_0$) energy density of the axion, becomes
 %
 \begin{eqnarray}
 	\rho_{a,0} = \gamma^{-1}  \dfrac{s_0}{s_{\rm osc}} \  \dfrac{1 }{2}  \ \fa^2 \ \ma \ \maT_{,{\rm osc}} \ \thetai^2    \;,
 	\label{eq:rho_a_approx} 
 \end{eqnarray}
 with $\ma$ the mass of the axion at $T=T_0$. Notice that the explicit dependence on $\fa$ cancels, since $\maT \sim 1/\fa$. That is, $\fa$ only affects the energy density of the axions through its impact on $\Tosc$. 
 %
 
 \subsection{Notation}\label{sec:notation}
 %
 %The WKB approximation is very useful in order to understand the evolution of the axion field. However, it fails to explain how the oscillation begins before $\dot \Omega \ll \Omega^2$ is reached. In this section we will try to understand the evolution of the axion as generally as possible. 
 %
 The EOM~(\ref{eq:eom}) depends on time, which is not very useful variable in a non-standard comsological setting. Therefore, we introduce 
 %
 \begin{eqnarray}
 	u = \log \dfrac{a}{\ai} \;,
 	\label{eq:natation}
 \end{eqnarray}
 %
 which results in 
 %
 \begin{eqnarray}
 	&\dfrac{d F}{dt} &=  H  \dfrac{d F}{du} 
 	\nonumber \\
 	&\dfrac{d^2 F}{dt^2} &= H^2 \ \lrb{ \dfrac{d^2 F}{du^2} + \dfrac{1}{2} \dfrac{d \log H^2}{du}  \dfrac{d F}{du} }\;.
 	\label{eq:deriv_u}
 \end{eqnarray}
 
 The EOM in terms of $u$, then, becomes
 %
 \begin{equation}
 	\dfrac{d^2  \theta}{du^2} + \lrsb{\dfrac{1}{2} \dfrac{d \log H^2}{du} + 3 } \dfrac{d  \theta}{d u} + \ \lrb{\dfrac{\maT}{H}}^2 \ \sin \theta
 	=0 \;.
 	\label{eq:eom_u}
 \end{equation}
 
 Notice that in a radiation dominated Universe
 %
 $$
 \dfrac{d \log H^2}{du} = -\lrb{ \dfrac{d \log \geff}{d \log T} +4 } \delta_h^{-1}\;,
 $$
 with  $ \delta_h = 1+ \dfrac{1}{3} \dfrac{d \log \heff}{d \log T} $. 
 %
 In a general cosmological setting, the expansion rate is dominated by an energy density that scales as $\rho \sim a^{-c}$, which results in $\dfrac{d \log H^2}{du}  = -c$. However, close to rapid particle annihilations and decays, the evolution of the energy densities change, and $\dfrac{d \log H^2}{du}$ can only be computed numerically.
 
 It is also worth mentioning that the EOM~\ref{eq:eom_u} with the initial condition $\theta(u=0)=\thetai$ and $d\theta/du (u=0)=0$ can be written as a system of first order 
 %
 \begin{eqnarray}
 & \dfrac{d  \zeta}{du} + \lrsb{\dfrac{1}{2} \dfrac{d \log H^2}{du} + 3 } \zeta + \ \lrb{\dfrac{\maT}{H}}^2 \ \sin \theta
 =0 \;. \\ \nonumber
 &\dfrac{d \theta}{d u} - \zeta=0 \;.
 \label{eq:eom_sys}
 \end{eqnarray}
 %
 This form of the EOM is suitable for integration via Runge-Kutta methods, which are briefly discussed in Appendix~\ref{app:RK}.
 
 
 \subsection{Beyond the WKB approximation}\label{sec:beyond_WKB}
 %
 \DK{This needs to be changed}
 The WKB approximation is very useful, as it helps us understand the evolution of the axion field after it begins to oscillate adiabatically. However, it fails to capture the dynamics before the adiabatic conditions are met, result in inaccurate axion relic abundance result. In this section, we examine the deviation of $\thetaosc$ from the initial value of $\theta$, as well how to treat cases where the EOM cannot be linearized.
 
 \subsubsection{Behaviour close to the initial condition}\label{sec:close_to_ini}
 %
 \DK{This subsection is not really correct. The WKB approximation {\bf underestimates} the relic for $\theta \gtrsim 1$, but the first approximation estimate is closer to the true relic. Maybe I should remove the discussion on $\thetaosc$ -- since it can be misleading, and replace it with deviation between numerical and WKB estimates.}
 %
 The accuracy of the approximate evolution of the axion angle given in \eqs{eq:solution_eom_approx_final} depends on the deviation between $\thetai$ and $\thetaosc$. In order to examine their deviation, we expand \eqs{eq:eom} at a time $t =\ti + \delta t$ with $\delta t \to 0$. That is, we use the following approximations 
 %
 \begin{equation*}
 	\ddot{\theta} \approx \dfrac{\dot \theta (\ti+ \delta t)  - \dot \theta (\ti)}{ \delta  t } =  \dfrac{\dot \theta (\ti + \delta t)  }{\delta  t } \;,
 	\qquad
 	\dot \theta(\ti + \delta t) = \dfrac{\theta(\ti + \delta t) - \thetai}{\delta t} \;.
 \end{equation*} 
 %
 and, solve the EOM~\ref{eq:eom} for $\theta(\ti + \delta t)$. This results in
 %
 \begin{equation}
 	\theta(\ti + \delta t)  \approx  \thetai -\dfrac{\delta t^2}{1+3\ \delta t \ H(\ti + \delta t) } \  \maT^2(\ti + \delta t)  \sin \theta(\ti + \delta t)  
 	\approx   \thetai - \delta t^2 \ \maT^2(\ti) \ \sin \thetai  \ + \mathcal{O}(\delta t^3)\;, 
 	\label{eq:theta_dt}
 \end{equation}
 %
 which indicates that the angle decreases (increases) as the temperature drops if $\thetai>0$ ($\thetai<0$). Using the notation introduced in section~\ref{sec:notation}, \eqs{eq:theta_dt} takes the form
 %
 \begin{eqnarray}
 	\theta \approx    \thetai - \delta u^2 \ \lrb{\dfrac{\maT}{H}}_{t=\ti}^2 \ \sin \thetai \;,
 	\label{eq:theta_du}
 \end{eqnarray}
 %
 which can be used to estimate the angle at the oscillation temperature
 %
 \begin{eqnarray}
 	\thetaosc \approx    \thetai -  \lrb{\dfrac{\maT}{H}}_{t=\ti}^2 
 	\lrsb{1- \dfrac{\Ti}{\Tosc}\lrb{\dfrac{\heff_{,\rm ini}}{\heff_{,\rm osc}}\gamma_{\rm osc}}^{1/3}}^{2}   \ \sin \thetai \;,
 	\label{eq:theta_osc}
 \end{eqnarray}
 %
 where  $\gamma_{\rm osc}$ is the entropy injection between $\Ti$ and $\Tosc$. Notice that in the derivation of \eqs{eq:solution_eom_approx_final} we used $\theta_{\rm osc} = \thetai$ as our first approximation. Thus, \eqs{eq:theta_osc} provides a correction that takes into account the deviation between $\theta_{\rm osc} $ and $ \thetai$, and \eqs{eq:rho_a_approx} becomes (for $\thetai \ll 1$)
 %
 \begin{eqnarray}
 	\rho_{a,0} = \gamma^{-1}  \dfrac{s_0}{s_{\rm osc}} \  \dfrac{1 }{2}  \ \fa^2 \ \ma \ \maT_{,{\rm osc}} \ \thetai^2 \lrBiggcb{
 		1 - \ \lrb{\dfrac{\maT}{H}}_{t=\ti}^2 \  \lrb{1- \dfrac{\Ti}{\Tosc}\lrb{\dfrac{\heff_{,\rm ini}}{\heff_{,\rm osc}}\gamma_{\rm osc}}^{1/3}}^{2}   }^2    \;,
 	\label{eq:rho_a_NLO} 
 \end{eqnarray}
 %
 which implies that the WKB approximation overestimates the energy density of the axion, since $\gamma_{\rm osc}$, $H_{\rm ini}$, and $\Tosc$ can vary. 
 
 \subsubsection{Example}\label{sec:comparison_between_WKB_approaches}
 In order to demonstrate the effect of the deviation between $\thetai$ and $\thetaosc$, we show \Figs{fig:WKB_diff_i,fig:WKB_diff_osc}, for different cosmological scenarios. In both figures, the red and black (dashed) lines correspond to standard cosmological scenario and early matter dominated (EMD) Universe, respectively.~\footnote{For the matter dominated case (following the notation of refs.~\cite{Arias:2019uol,Arias:2020qty}), we have used 
 $T_{\rm end}=10^{-2} ~\GeV,\; c=3, \; T_{\rm ini}=10^{12} ~\GeV, \; \text{and}\; r=0.1$.} For the matter dominated case, entropy is injected to the plasma both before and after $\Tosc$. The entropy injection factor, $\gamma_{\rm osc}$, as a function of $\fa$ is shown in \Figs{fig:gamma_osc}.
 
 In \Figs{fig:WKB_diff_i} we show the relative difference between $\Omega h^2$ using \eqs{eq:solution_eom_approx_final} and the result obtained from \mimes. It should be apparent that the accuracy of the estimate based on \eqs{eq:solution_eom_approx_final} depends of $\fa$, since for high values of $\fa$, $\Tosc$ is low. That is, the deviation between $\thetai$ and $\thetaosc$ is greater than the corresponding difference for lower $\fa$, especially for the matter dominated case, where the entropy injection is great (see \Figs{fig:gamma_osc}).
 
 In \Figs{fig:WKB_diff_osc} we show the relative difference between $\Omega h^2$ obtained by integrating numerically \eqs{eq:eom_u}  and using \eqs{eq:solution_eom_approx_theta_osc} with \eqs{eq:theta_osc}. The relative difference between the two estimates, once again, depends $\fa$. It should be noted that the estimate for $\thetaosc$ depends on the choice of $\Ti$. For \Figs{fig:WKB_diff_osc}, we define $\Ti$ as the temperature at which $3H/\maT = 2$. We note that this estimate is more accurate, its accuracy still depends on whether the axion evolves adiabatically at $T<\Tosc$. Moreover, an increase of $\gamma_{\rm osc}$ invalidates the estimate of $\thetaosc$; higher powers of $\delta u$ may be needed.    
 %
 \begin{figure}[t]
 	\begin{subfigure}[]{0.5\textwidth}
 		\includegraphics[width=1\textwidth]{figs/WKB_diff_i.pdf}
 		\caption{}
 		\label{fig:WKB_diff_i}
 	\end{subfigure}
 	\begin{subfigure}[]{0.5\textwidth}
 		\includegraphics[width=1\textwidth]{figs/WKB_diff_osc.pdf}
 		\caption{}
 		\label{fig:WKB_diff_osc}
 	\end{subfigure}
 	\begin{center}
 	\begin{subfigure}[]{0.5\textwidth}
 		\includegraphics[width=1\textwidth]{figs/gamma_osc.pdf}
 		\caption{}
 		\label{fig:gamma_osc}
 	\end{subfigure}
 	\end{center}
 \caption{...}
 \label{fig:WKB_diff}
 \end{figure}
 %
 
 Nevertheless, neither estimates based on \eqs{eq:solution_eom_approx_theta_osc,eq:solution_eom_approx_final} seem to provide a result comparable to numerically integrating \eqs{eq:eom_u}. Therefore, numerical integration should be preferred. 
 
 \subsubsection{Adiabatic invariant and the anharmonic factor}\label{sec:an_fac}
 %
 In oscillatory systems with varying period, the energy is not conserved, and it is usually useful to define an ``adiabatic invariant", which is an approximate constant of motion.
 
 \paragraph{Definition of the adiabatic invariant}
 %
 Given a system with Hamiltonian $\mathcal{H}(\theta,p;t)$, the equations of motion are 
 %
 \begin{equation}
 	\dot p = - \dfrac{\partial \mathcal{H}}{\partial \theta} \;, \;\; 
 	\dot \theta =  \dfrac{\partial \mathcal{H}}{\partial p} \;.
 	\label{eq:hamiltonian_eoms}
 \end{equation}
 
 Moreover, we note that
 %
 \begin{equation}
 	d \Ham = \dot \theta \ d p - \dot p \ d \theta + \dfrac{\partial \Ham}{\partial t} \ d t \;.  
 	\label{eq:total_dH}
 \end{equation}
 
 
 If this system exhibits closed orbits (\eg if it oscillates), we define 
 %
 \begin{equation}
 	J \equiv C \ \oint p \ d \theta \;,
 	\label{eq:adiabatic_inv_def}
 \end{equation}
 %
 where the integral is over a closed path (\eg a period, $T$), and $C$ indicates that $J$ can always be rescaled with a constant. This quantity is the adiabatic invariant of the system, if the Hamiltonian varies slowly during a cycle. That is,
 %
 \[
 \dfrac{d J}{d t} = C \ \oint \lrBigb{\dot p \ d \theta + p \ d \dot \theta} = C \ \dint_{t}^{t+T}  \dfrac{\partial \Ham}{\partial t^\prime} \ d t^\prime \approx T \ \dfrac{\partial \Ham(t^{\prime})}{\partial t^{\prime}}\Big|_{t^{\prime}=t} \approx 0 
 \;. 
 \]
 %
 
 
 
 
 \paragraph{Application to the axion}
 %
 The Hamiltonian that results in the EOM of \eqs{eq:eom} is
 %
 \begin{equation}
 	\Ham = \dfrac{1}{2} \dfrac{p^2}{\fa^2 \ a^3} + V(\theta) \ a^3\;,
 	\label{eq:axion_H}
 \end{equation}
 %
 with 
 %
 \begin{eqnarray}
 	& p = \fa^2 \ a^3 \ \dot \theta \\
 	\label{eq:momentum}
 	& V(\theta) = \maT^2 \fa^2 (1-\cos \theta) \;.
 	\label{eq:potential}
 \end{eqnarray}
 
 Notice that the Hamiltonian varies slowly if $\dot \maT/\maT \ll \maT$ and $H \ll \maT$, which are the adiabatic conditions.  When these conditions are met, the adiabatic invariant for this system becomes
 %
 \begin{equation}
 	J = \dfrac{\oint p \ d \theta}{\pi \fa^2} = \dfrac{1}{\pi \fa^2} \oint \sqrt{ 2\lrb{ \Ham(\theta) - V(\theta) \ a^3} \ \fa^2 a^3 \ }  \ d \theta  =
 	 \dfrac{2}{\pi \fa^2} \int_{-\thetamax}^{\thetamax} \sqrt{ 2\lrb{ \Ham(\thetamax) - V(\theta) \ a^3} \ \fa^2 a^3 \ } d \theta \;,
 	 \label{eq:J_axion_definition}
 \end{equation}
 %
 where we note that $\thetamax$ denotes the maximum of $\theta$ -- the peak of the oscillation, which corresponds to $p=0$. That is, $\Ham(\thetamax) = V(\thetamax) \ a^3$. Therefore, the adiabatic invariant, takes the form 
 
 \begin{eqnarray}
 	J=&  \dfrac{2 \sqrt{2} }{\pi \fa}  \int_{- \thetamax} ^{\thetamax}  \sqrt{ V(\thetamax) - V(\theta) } a^{3} d \theta = 
 	\dfrac{2 \sqrt{2} }{\pi} \ \maT \, a^3 \ \dint_{- \thetamax}^{\thetamax} \sqrt{\cos \theta - \cos \thetamax} \ d \theta  
 	\;,
 	\label{eq:J_axion_derivation}
 \end{eqnarray}
 %
 where, for the last equality. we have used the adiabatic conditions, \ie negligible change of $\maT$ and $a$ during one period. Usually, the adiabatic invariant is written as~\cite{Lyth:1991ub,Bae:2008ue} 
 %
 \begin{equation}
 	J = a^3 \ \maT \ \thetamax^2  \, f(\thetamax)  \;,
 	\label{eq:J_axion_final_form}
 \end{equation}
 %
 where 
 \begin{equation}
 	f(\thetamax) =\dfrac{ 2 \sqrt{2}}{\pi \thetamax^2 } \dint_{- \thetamax}^{\thetamax} d \theta \sqrt{ \cos \theta - \cos \thetamax } \;,
 	\label{eq:anharmonic_f}
 \end{equation}
 %
 is called the anharmonic factor, with $ 0.5 \lesssim f(\thetamax) \leq 1$ (see \Figs{fig:anharmonic_factor}).
 
 
 \begin{figure}[t]
 	\includegraphics[width=1\textwidth]{figs/anharmonic_factor.pdf}
 	\caption{The anharmonic factor for $0 \leq \thetamax < \pi $.}
 	\label{fig:anharmonic_factor}
 \end{figure}
 
 
 
 \paragraph{The role of the adiabatic invariant in the axion relic energy density}
 %
 The adiabatic invariant allows us to calculate the maximum value of the angle $\theta$ at late times from its corresponding value at some point after the adiabatic conditions where met. It allows us to calculate the energy density of the axions field for $\theta \gtrsim 1$ since we have taken into account the exact potential.
 
 In order to do this, we can numerically integrate \eqs{eq:eom}, and identify the maxima of $\theta$. Once the adiabatic conditions are fulfilled, we can stop the integration at a peak, $\thetamax_{,*}$ -- which corresponds to $T=T_{*}$ and $a=a_{*}$. Then, the value of the maximum angle today ($\thetamax_{,0} \ll 1$) is related to $\thetamax_{,*}$ via
 %
 \begin{eqnarray}
 	\thetamax_{,0}^2 &=  \lrb{\dfrac{a_*}{a_0}}^3 \ \dfrac{\maT_{,*}}{\ma} \ f(\thetamax_{,*}) \ \thetamax_{,*}^2  =
 	\gamma^{-1} \ \dfrac{s_0}{s_*} \ \dfrac{\maT_{,*}}{\ma} \ f(\thetamax_{,*}) \ \thetamax_{,*}^2 
 	\; .
 	\label{eq:theta_relation}
 \end{eqnarray}
 %
 Using this, and since we evaluate the energy density at the maximum of $\theta$ (\ie $\dot \theta = 0$), we can determine the energy density of axions today from \eqs{eq:rho_a_def}. That is,
 %
 \begin{equation}
 	\rho_{a,0} = \gamma^{-1} \ \dfrac{s_0}{s_*} \ \ma \ \maT_{,*} \ \dfrac{1}{2} \ \fa^2 \ \thetamax_{,*}^2 \;  \ f(\thetamax_{,*}) \;,
 	\label{eq:rho_axion_exact}
 \end{equation}
 %
 where $\gamma$ is the entropy injection coefficient between $T_{*}$ and $T_0$, defined from 
 %
 \begin{equation}
 	a^3(T_0) \ s(T_0) = \gamma \ a^3(T_*) \ s(T_*) \;
 	\label{eq:entropy_injection_gamma}
 \end{equation}
 
 Notice that \eqs{eq:rho_axion_exact} is similar to the corresponding WKB result~(\ref{eq:rho_a_approx}) at $\tosc \to t_*$, multiplied by the anharmonic factor $f(\thetamax_{,*})$. That is, if the axion starts to evolve adiabatically close to $t=\tosc$, and $\thetaosc \ll 1$, the WKB approximation is valid.
 
 
 
 \section{First steps with \mimes}\label{sec:first_steps}
 \setcounter{equation}{0}
 %
 \begin{lstlisting}[caption={Commands in order to download \mimes, the differential equation solvers, and the interpolation libraries.},captionpos=b, label=list:git_download]
 	git clone git@github.com:dkaramit/MiMeS.git
 	cd MiMeS
 	git submodule init
 	git submodule update --remote
 \end{lstlisting}
 %
 The library can downloaded from \href{https:/github.com/dkaramit/MiMeS}{github.com/dkaramit/MiMeS}. Since the library depends on {\tt NaBBODES}~\cite{NaBBODES} {\tt SpleSplines}~\cite{SimpleSplines}, one has to download the, too. However, in order to get \mimes ready, one can run the commands shown in listing~\ref{list:git_download}. Although this method should be preferred in order to get the latest version, \mimes can also be downloaded from \href{https:/mimes.hepforge.org/downloads/}{mimes.hepforge.org/downloads}.
 
 
 Once everything is downloaded successfully, we can go inside the \mimes directory, and run \run{bash configure.sh}~\footnote{It is recommended to use {\tt bash}.} and \run{make}.  The {\tt bash} script {\tt configure.sh}, just writes some paths to some files, formats the data files provided in an acceptable format (in section~\ref{sec:input} the format is explained), and makes some directories.
 %
 The {\tt makefile} is responsible for compiling some examples and checks, as well as the shared libraries that needed for the \PY interface.  If everything runs successfully, there should be two new directories {\tt exec} and {\tt lib}. Inside {\tt exec}, there are several executables that ready to run, in order to ensure that the code runs (\eg no segmentation fault occurs). For example, {\tt exec/AxionSolve\_check.run}, should print the values of the parameters $\thetai$ and $\fa$, the oscillation temperature and the corresponding value of $\theta$, the evolution of the axion (\eg temperature, $\theta$, $\rho_{a}$, etc.), and the values of various quantities on the peaks of the oscillation.  In the directory {\tt lib}, there are several shared libraries for the \PY interface.
 
 Although there are various options available at compile-time, we first discuss how \mimes can be used, in order for the role of these options to be clear. 
 
 
 \subsection{First examples}\label{sec:First_examples} 
 %
 There are several examples in \CPP ({\tt MiMeS/UserSpace/Cpp}) and \PY ({\tt MiMeS/UserSpace/Python}), as well as \JUPY  notebooks ({\tt MiMeS/UserSpace/JupyterNotebooks}), that show in detail how \mimes can be used. 
 
 \subsubsection{Using \mimes in \CPP}\label{sec:cpp_first_example}
 %
 The class that is responsible for the solution of the EOM is \cppin{mimes::Axion<LD,Solver,Method>}, located in {\tt MiMeS/src/Axion}. However, in order to use it, we have to define the mass of the axion as a function of the temperature and $\fa$. The axion mass is defined as an instance of the \cppin{mimes::AxionMass<LD>}, which is defined in the header file {\tt \mimes/src/AxionMass/AxionMass.hpp}. We should note that {\tt LD} is the numerical type we use (\eg { \tt long double}). The other template arguments are related to the differential equation solver, and their role will be explained in later sections. 
 
 Therefore, at the top of the main {\tt .cpp} file, we need to include 
 %
 \begin{cpp}
 	#include "MiMeS/src/AxionMass/AxionMass.hpp"
 	#include "MiMeS/src/Axion/AxionSolve.hpp"
 \end{cpp}
 %
 Notice that if the this {\tt .cpp} file is not in the root directory of \mimes, we need to compile it using the flag {\tt -Ipath-to-root}, "path-to-root" the relative path to the root directory of \mimes; \eg if the {\tt .cpp} is in the {\tt MiMeS/UserSpace/Cpp/Axion} directory, this flag should be {\tt -I../../../}.
 
 The mass of the axion can be defined in two ways; either via a data file or by a user defined function. 
 
 \paragraph{Axion mass form data file} 
 In many cases, axion mass cannot be written in a closed form. In these cases, the user may provide a data file. Then, the axion mass can be defined via this file as
 %
 \begin{cpp}
 	mimes::AxionMass<LD> axionMass(chi_PATH, minT, maxT);
 \end{cpp}
 %
 Here {\tt chi\_PATH} is a (relative or absolute) path to a file with two columns; $T$ (in $\GeV$) and $\chi$ (in $\GeV^4$), with increasing $T$. In this case, the axion mass is interpolated between the temperatures {\tt minT} and {\tt maxT}. These two parameters are just suggestions, and the actual interpolation limits, {\tt  TMin} and {\tt TMax}, are chosen as the closest temperatures in the data file. That is, in general, {\tt TMin} $\geq$ {\tt minT} and {\tt TMax} $\leq$ {\tt maxT}. Beyond these limits, the mass is assumed to constant by default. However, one can change this by using 
 %
 \begin{cpp}
 	axionMass.set_ma2_MAX(ma2_MAX);
 	axionMass.set_ma2_MIN(ma2_MIN);
 \end{cpp}
 %
 with {\tt ma2\_MAX} and {\tt ma2\_MIN} the axion mass squared as functions (or any other callable objects) with signatures {\tt LD ma2\_MAX(LD T, LD fa)} and {\tt LD ma2\_MIN(LD T, LD fa)}. These functions are called for $T\geq${\tt TMax} and $T\leq${\tt TMin}, respectively. Usually, in order to ensure continuity of the axion mass, one needs to know {\tt TMin}, {\tt TMax}, $\chi(${\tt TMin}$)$, and $\chi(${\tt TMax}$)$; which can be found by calling {\tt axionMass.getTMin()}, {\tt axionMass.getTMax()}, {\tt axionMass.getChiMin()}, and {\tt axionMass.getChiMax()}, respectively.
 
 \paragraph{Axion mass function} 
 In some cases, the dependence of the axion mass on the temperature is known. If this is the case, the user can define the axion mass via 
 %
 \begin{cpp}
 	mimes::AxionMass<LD> axionMass(ma2);
 \end{cpp}
 %
 with {\tt ma2} the axion mass squared as a callable object with signature {\tt LD ma2(LD T, LD fa)}.
 
 \paragraph{The EOM solver}
 Once the axion mass is defined, we can declare a variable that will be used to solve the EOM, as
 %
 \begin{cpp}
 	mimes::Axion<LD,Solver,Method> ax(theta_i, fa, umax, TSTOP, ratio_ini, 
 	N_convergence_max, convergence_lim, inputFile, &axionMass, initial_step_size,
 	minimum_step_size, maximum_step_size, absolute_tolerance, relative_tolerance, 
 	beta, fac_max, fac_min, maximum_No_steps);
 \end{cpp}
 %
 Here, {\tt LD} should be the desirable numeric type to be used; it is recommended to use {\tt long double}, but other choices are also available as we discuss later. Moreover {\tt Solver} and {\tt Method} depend on the type of Runge-Kutta the user chooses (see section~\ref{sec:options} as well as the Appendices~\refs{app:RK,app:usr_input} for more details). 
 
 The various parameters are as follows:
 %
 \begin{enumerate}
 	\item {\tt theta\_i}: initial angle.
 	\item {\tt fa}: the PQ scale.
 	\item {\tt umax }: if $u>${\tt umax} the integration stops (remember that $u=\log(a/a_i)$). Typically, this should be a large number ($\sim 1000$), in order to avoid stopping the integration before the axion begins to evolve  adiabatically.    
 	\item {\tt TSTOP}: if the temperature drops below this, integration stops. In most cases this should be around 
 	$10^{-4}~\GeV$, in order to be sure that any entropy injection has stopped before integration stops (since BBN bounds~\cite{Kolb:206230,Peebles:1993} should not be violated).
 	\item {\tt ratio\_ini}: integration starts when $3H/\maT \approx${\tt ratio\_ini} (the exact point depends on the file ``{\tt inputFile}", which we will see later). 
 	\item  {\tt N\_convergence\_max} and {\tt convergence\_lim}: integration stops when the relative difference 
 	between two consecutive peaks is less than {\tt convergence\_lim} for {\tt N\_convergence\_max} 
 	consecutive peaks.
 	\item  {\tt inputFile}: relative (or absolute) path to a file that describes the cosmology. the columns should be: $u$ $T ~[\GeV]$ $\log H$, sorted so that $u$ increases.~\footnote{One can run \run{bash MiMeS/src/FormatFile.sh inputFile} in order to sort it and remove any unwanted duplicates. See Appendix~\ref{app:util} for details of {\tt MiMeS/src/FormatFile.sh}.}
 	%
 	It is important to remember that \mimes assumes that the entropy injection has stopped before the lowest temperature of given in {\tt inputFile}. Since \mimes is unable to guess the cosmology beyond what is given in this file, the user has to make sure that there are data between the initial temperature (which corresponds to {\tt ratio\_ini}, and {\tt TSTOP}).
 	
 	\item {\tt axionMass}: an instance of the \cppin{mimes::AxionMass<LD>} class, passed by pointer. 
 	
 	\item {\tt initial\_stepsize} (optional): initial step the solver takes. 
 	
 	\item {\tt maximum\_stepsize} (optional): This limits the step-size to an upper limit. 
 	\item {\tt minimum\_stepsize} (optional): This limits the step-size to a lower limit. 
 	
 	\item {\tt absolute\_tolerance} (optional): absolute tolerance of the RK solver
 	
 	\item {\tt relative\_tolerance} (optional): relative tolerance of the RK solver.
 	%
 	Generally, both absolute and relative tolerances should be $10^{-8}$. 
 	In some cases, however, one may need more accurate result (\eg if {\tt f\_a} is extremely high, 
 	the oscillations happen violently, and the system destabilizes). Whatever the case, if the  
 	tolerances are below $10^{-8}$, long doubles have be used. \mimes by default uses {long double} variables, 
 	in order to change it see the options available in section~\ref{sec:input}.
 	
 	\item {\tt beta} (optional): controls how agreesive the adaptation is. Generally, it should be around but less than 1.
 	
 	\item {\tt fac\_max},  {\tt fac\_min} (optional): the stepsize does not increase more than fac\_max, and less than fac\_min. 
 	This ensures a better stability. Ideally, {\tt fac\_max}$=\infty$ and {\tt fac\_min}$=0$, but in reality one must 
 	tweak them in order to avoid instabilities.
 	
 	\item {\tt maximum\_No\_steps} (optional): maximum steps the solver can take Quits if this number is reached even if integration
 	is not finished. 
 \end{enumerate}
 %
 in order to understand the usage of the optional parameters, some basic techniques of Runge-Kutta methods are discussed in Appendix~\ref{app:RK}. 
 
 The EOM~(\ref{eq:eom_u}), then can be solved using 
 %
 \begin{cpp}
 	ax.solveAxion();
 \end{cpp}
 %
 Once the EOM is solved, we can access $\Tosc$, $\thetaosc$, and $\Omega h^2$  via {\tt ax.T\_osc}, {\tt ax.theta\_osc}, and {\tt ax.relic}. The entire evolution (the points the integrator took) of the axion angle is stored in {\tt ax.points}, which is a two-dimensional {\tt std::vector}, with the columns corresponding to  $a$, $T~[\GeV]$, 
 $\theta$, $d\theta/du$, $\rho_a$. Moreover, the peaks of he oscillation are stored in another two-dimensional {\tt std::vector}, with the columns corresponding to $a$, $T~[\GeV]$, $\thetamax$, $d\theta/du=0$, $\rho_a$, $J$. We should note that the peaks are identified using linear interpolation between integration points, in order to ensure that $d\theta/du = 0$. That is, the values stored in {\tt ax.peaks} do not exist in {\tt ax.points}. Finally, the local errors (see Appendix~\ref{app:RK}) of the integration points of $\theta$ and $\zeta$ are stored in {\tt ax.dtheta} and {\tt ax.dzeta}.
 
 
 \paragraph{Changing axion mass definition}
 %
 The axion mass definiton can change at any time by changing the data file (or {\tt ma2\_MIN} and {\tt ma2\_MAX}) or using using 
 %
 \begin{cpp}
 	ax.set_ma2(ma2);
 \end{cpp}
 %
 with {\tt ma2} a callable object with signature {\tt LD ma2(LD T, LD fa)}.
 
 However, since integration starts at a temperature determined by {\tt ratio\_ini}, if the mass changes (including the definitions beyond the interpolation limits), we have to remake the interpolation of the underlying cosmology described by the parameter {\tt inputFile}. Thus, if we  change the definition of the mass, we need to call 
 %
 \begin{cpp}
 	ax.restart();
 \end{cpp}
 %
 This function remakes the interpolations, clears all vector, and sets all variable to $0$. 
 
 
 \paragraph{Changing initial condition}
 %
 The final member function is \cppin{mimes::Axion::setTheta\_i}, which allows the user to set a different $\thetai$ without generating another instance.~\footnote{Since the interpolations of the data of {\tt inputFile} are made inside the constructor of the \cppin{mimes::Axion<LD,Solver,Method>} class, \cppin{mimes::Axion<LD,Solver,Method>::setTheta\_i} is a faster choice if ones needs to solve the EOM for a different initial condition.} This function is used as    
 %
 \begin{cpp}
 	ax.setTeta_i(new_theta_ini);
 \end{cpp}
 %
 where {\tt new\_theta\_ini} is the new value of $\thetai$. Running this function resets all variables to $0$ (except {\tt T\_osc} and {\tt a\_osc}, since they should not change), and clears all {\tt std::vector} variables, which allows the user to simply run \run{ax.solveAxion();} as if {\tt ax} was a freshly defined instance.  
 
 
 
 \subsubsection{Using \mimes in \PY}\label{sec:begin_py}
 %
 The modules for the \PY interface are located in {\tt MiMeS/src/interfacePy}. Although the usage of the {\tt AxionMass} and {\tt Axion} classes is similar to the \CPP case, it is worth showing explicitly how the \PY interface works.
 
  
  
  
 The two classes the modules {\tt interfacePy.AxionMass} and {\tt interfacePy.Axion}, and can be loaded in a \PY script as 
 %
 \begin{py}
 	from sys import path as sysPath
 	from os import path as osPath
 	sysPath.append(osPath.join(osPath.dirname(__file__), 'path_to_src'))
 	from interfacePy.AxionMass import AxionMass
 	from interfacePy.Axion import Axion
 \end{py}
 %
 It is important that {\tt 'path\_to\_src'} provides the relative path to the {\tt MiMeS/src} directory. For example, if the script is located in {\tt MiMeS/UserSpace/Python}, {\tt 'path\_to\_src'} should be {\tt '../../src'}.
 
 \paragraph{Axion mass definition via a data file}
 As before, we first need to define the axion mass. Similarly to the previous case, in order to define the axion mass via a file
 In many cases, axion mass cannot be written in a closed form. In these cases, the user may provide a data file. Then, the axion mass can be defined via this file as
 %
 \begin{py}
 	AxionMass axionMass(chi_PATH, minT, maxT)
 \end{py}
 %
 Here, the constructor requires the same parameters as in \CPP. Moreover, the axion mass beyond the interpolation limits can be changed via
 %
 \begin{py}
 	axionMass.set_ma2_MAX(ma2_MAX)
 	axionMass.set_ma2_MIN(ma2_MIN)
 \end{py}
 %
 Although the naming is the same as in the \CPP case, there on important difference. Namely, {\tt ma2\_MAX} and {\tt ma2\_MIN} have to be functions (that take $T$ and $\fa$ as arguments and return $\maT^2$), and cannot be any other callable object. The reason is that \mimes uses the {\tt ctypes} module, which only works with objects compatible with {\tt C}. 
 %
 Moreover, the values of {\tt TMin}, {\tt TMax}, $\chi(${\tt TMin}$)$, and $\chi(${\tt TMax}$)$ can be obtained by {\tt axionMass.getTMin()}, {\tt axionMass.getTMax()}, {\tt axionMass.getChiMin()}, and {\tt axionMass.getChiMax()}, respectively.
 
 \paragraph{Axion mass definition via a function}
 %
 Again this can be done as
 %
 \begin{py}
 	AxionMass axionMass(ma2)
 \end{py}
 %
 with {\tt ma2} the axion mass squared, which should be a function (not any callable object) of $T$ and $\fa$.
 
 
 \paragraph{The EOM solver}
 %
 We can define an {\tt Axion} instance as follows 
 %
 \begin{py}
 	ax=Axion(theta_i, fa, umax, TSTOP, ratio_ini, N_convergence_max, convergence_lim, 
 	inputFile, axionMass, initial_step_size, minimum_step_size, maximum_step_size, 
 	absolute_tolerance, relative_tolerance, beta, fac_max, fac_min, maximum_No_steps)
 \end{py}
 %
 Here the input parameters are the same as in the \CPP case (the usage of the class can be found by running {\tt ?Axion} after loading the module). The only slight difference is that the {\tt axionMass} is not passed as a pointer; which is done internally using {\tt ctypes}. 
 
 
 Using the defined variable ({\tt ax} in this example), we can simply run  
 %
 \begin{py}
 	ax.solveAxion()
 \end{py}
 %
 in order to solve the EOM of the axion. In contrast to the \CPP implementation, this only gives us access to $\Tosc$, $\thetaosc$, and $\Omega h^2$; the corresponding variables are {\tt ax.T\_osc}, {\tt ax.theta\_osc}, and {\tt ax.relic}. In order to get the evolution of the axion field, we need to run 
 %
 \begin{py}
 	ax.getPoints()
 \end{py}
 %
 This will make {\tt numpy} arrays that contain the scale factor ({\tt ax.a}), temperature ({\tt ax.T}), $\theta$ ({\tt ax.theta}), its derivative with respect to $u$ ({\tt ax.zeta}), and the energy density of the axion ({\tt ax.rho\_axion}).
 
 Moreover, in order to get the various quantities on the peaks of the oscillation, we can run
 %
 \begin{py}
 	ax.getPeaks()
 \end{py}
 %
 This makes {\tt numpy} arrays that contain the scale factor ({\tt ax.a\_peak}), temperature ({\tt ax.T\_peak}), $\theta$ ({\tt ax.theta\_peak}), its derivative with respect to $u$ ({\tt ax.zeta\_peak}, which should be equal to $0$), the energy density of the axion ({\tt ax.rho\_axion\_peak}), and the values of the adiabatic invariant on the peaks ({\tt ax.adiabatic\_invariant}).
 
 Moreover, we can run the following
 %
 \begin{py}
 	ax.getErrors()
 \end{py}
 %
 in order to store the local errors (see Appendix~\ref{app:RK}) of $\theta$ and $\zeta$ in {\tt ax.dtheta} and {\tt ax.dzeta}, respectively. 
 
 \paragraph{Changing axion mass definition}
 %
 We can change the axion mass by changing the file, {\tt ma2\_MIN} and {\tt ma2\_MAX}, or using 
 %
 \begin{cpp}
 	ax.set_ma2(ma2)
 \end{cpp}
 %
 with {\tt ma2} a function that takes $T$ and $\fa$, and returns the $\maT^2$. As in the \CPP case, if the definition of the mass of the axion changes (including the definitions beyond the interpolation limits), we have to call
 %
 \begin{cpp}
 	ax.restart()
 \end{cpp}
 %
 in order to remake the interpolation of cosmological quantities and reset the various variables.x
 
 \paragraph{Changing the initial condition}
 %
 The initial condition $\thetai$ can be changed using 
 %
 \begin{py}
 	ax.setTeta_i(new_theta_ini)
 \end{py}
 %
 which is faster than running the constructor again, since all the interpolations are reused. However, running this function, erases all the arrays, and resets all variables to $0$ (except {\tt T\_osc} and {\tt a\_osc}, as they should not change). 
 
 \paragraph{Importand note} The {\tt Axion} class constructs a pointer to an instance of the underlying \cppin{mimes::Axion} class, which has to be manually deleted. Therefore, once {\tt ax} is used it must be deleted, \ie we need to run 
 %
 \begin{py}
 	del ax
 \end{py}
 %
 We should note that this must run even if we assign another instance to the same variable {\tt ax}, otherwise we risk running out of memory.
 
 
 \section{Assumptions and user input}\label{sec:assumptions}
 \setcounter{equation}{0}
 %
 \mimes only makes a few, fairly general, assumptions. First of all, it is assumed that the axion energy density is always subdominant compared to radiation or any other component of the Universe, and that decays and annihilations of particles have a negligible effect on the axion energy density. Moreover, the initial condition is always assumed to be $\theta_{t=\ti} = \thetai$ and $\dot \theta|_{t=\ti}=0$. 
 %
 Furthermore, it is also assumed that $3H/\maT$ increases monotonically at high temperatures. 
 %
 Also, it is assumed that the entropy is resumes its conserved status at a temperature higher than the minimum temperature of  {\tt inputFile} (which is required by the constructor of the \cppin{mimes::Axion<LD,Solver,Method>} class).  
 %
 Finally, \mimes does not try to predict anything regarding the cosmology. Therefore, the temperatures in {\tt inputFile} {\em must} cover the entire region of  integration; \ie the maximum temperature has to be larger than the one required to reach {\tt ratio\_ini}, while the minimum one should be lower than {\tt TSTOP}.
 
 \subsection{Options at Compile-time}\label{sec:options}
 %
 The user has a number of options regarding different aspects for the code. The various choices for the shared libraries used by the \PY interface are given in {\tt \mimes/Definitions.mk}. while the corresponding options for the \CPP examples are in the {\tt Definitions.mk} files in the directories inside {\tt \mimes/UserSpace/Cpp}.  The options correspond to different variables, which are
 %
 \begin{enumerate}
 	\item {\tt rootDir}: the relative path of root directory of \mimes.  
 	%
 	\item {\tt LONG}: this should be either {\tt long} or omitted. If omitted, the type of the numeric values is {\tt double} (double precision). On the other hand, if {\tt LONG=long},  the type is  {\tt long double}. Generally, using {\tt double} should enough. For the sake of numerical stability, then, it is advised to always use {\tt LONG=long}, as it a safer option. The reason is that the axion angle redshifts, and can become very small, which introduces ``rounding errors". Moreover, if the parameters {\tt absolute\_tolerance} or {\tt absolute\_tolerance} are chosen to be below $\sim 10^{-8}$, then double precision numbers may not be enough, and {\tt LONG=long} is preferable.  This choice comes at the cost of speed; double precision operations are usually preformed much faster. It is important to note that {\tt LONG} defines a macro with the same name, which then defines the macro {\tt LD} (in all the {\tt .cpp} files) as {\tt \#define LD LONG double}.
 	%
 	\item {\tt LONGpy}: the same as {\tt LONG}, but for the \PY interface.
 	%
 	\item {\tt SOLVER}: \mimes uses the ordinary differential equation (ODE) integrators of ref.~\cite{NaBBODES}. Currently, there are two available choices; {\tt Rosenbrock} and {\tt RKF}. The former is a general embedded Rosenbrock implementation and it is used if {\tt Solver=1}, while the latter is a general explicit embedded Runge-Kutta implementation and can be chose by using {\tt SOLVER=2} (a brief description of how these algorithms are implemented can be found in Appendix~\ref{app:RK}). The default option for that \mimes uses is {\tt SOLVER=1}, because the axion EOM tends to oscillate rapidly. However, in some cases, a high order explicit method may also work. This variable, is used to define a macro with the same name and value in {\tt \mimes/src/Axion/AxionSolve.hpp}.
 	%
 	\item {\tt METHOD}: Depending on the type of solver is chosen, there are some available methods.~\footnote{It is worth mentioning that {\tt NaBBODES} is built in order to be a template for all possible Rosenbrock and explicit Runge-Kutta embedded methods, and one can provide their own Butcher tableau if they want to use another method, as shown in Appendix~\ref{app:RK}. This variable, is used to define a macro with the same name and value in {\tt \mimes/src/Axion/AxionSolve.hpp}.} 
 	\begin{itemize}
 		\item 	For {\tt SOLVER=1}, the available methods are 
 		{\tt METHOD=RODASPR2} and {\tt METHOD=ROS34PW2}. The {\tt RODASPR2} choice is a fourth order Rosenbrock-Wanner method (more information can be found in ref.~\cite{RANG2015128}). The {ROS34PW2} choice corresponds to a third order Rosenbrock-Wanner method~\cite{RangAngermann2005}. 
 		%
 		\item 	For {\tt SOLVER=2}, the only reliable method available in {\tt NaBBODES} is the Dormand-Prince~\cite{DORMAND198019} chosen if {\tt METHOD=DormandPrince}, which is an explicit Runge-Kutta method of seventh order.
 	\end{itemize}
 	%
 	\item {\tt CC}: the \CPP compiler that one chooses to use. The default option is {\tt CC=g++}, which is the {\tt GNU} \CPP compiler, and is available for all systems. Another option is to use the {\tt clang} compiler, which is chosen by {\tt CC=clang -lstdc++}. \mimes is mostly tested using {\tt g++}, but {\tt clang} also seems to work (and the resulting executables are sometimes faster), but the user has to make sure that their version of the compiler of choice supports the \CPP17 standard, otherwise \mimes probably will not work.
 	%
 	\item {\tt OPT}: Optimization level of the compiler. By default, this is {\tt OPT=O3}, which produces executables that are marginally faster than {\tt OPT=O1} and {\tt OPT=O2}, but significantly faster than {\tt OPT=O0}. There is another choice, {\tt OPT=Ofast}, but it can cause various numerical instabilities, and is generally considered dangerous -- although we have not observed any problems when running \mimes. 
 \end{enumerate}
 %
 These options can only be used when the compilation is done using the various {\tt makefile} files. For compilation of a user provided {\tt .cpp} file, these have to be define by the user inside this file. If one compiles the examples without {\tt makefile}, the variables {\tt LONG},  {\tt LONGpy}, {\tt SOLVER}, and {\tt METHOD} correspond to macros with the same name.~\footnote{Macros can be defined using the {\tt -D} flag
 	in the compiler. For example {\tt METHOD=DormandPrince} is the same as passing {\tt -DMETHOD=DormandPrince} to the compiler.} It should be pointed-out that,  in the examples, {\tt LONG} is used to define a macro {\tt LD} which becomes {\tt double} or {\tt long double} accordingly. the actual choice of numeric type is passed as a template parameter in all classes.
 \subsection{User input}\label{sec:input}
 %
 \subsubsection{Compile-time input}\label{sec:compile_time_input} 
 %
 \paragraph{Files} \mimes requires files that provide data for the relativistic degrees of freedom (RDOF) of the plasma, and the anharmonic factor. Although \mimes is shipped with the standard model RDOF found in~\cite{Saikawa:2020swg}, and a few points for $f(\thetamax)$ introduced in \eqs{eq:anharmonic_f}, the user is free change them via the corresponding variables in {\tt Paths.mk} (in the root directory of \mimes). Moreover, there is a set of data for the QCD axion mass as calculated in ref.\cite{Borsanyi:2016ksw}.
 %
 The variables pointing to these data files are {\tt cosmoDat}, {\tt axMDat}, and {\tt anFDat}, for the RDOF, axion mass, and the anharmonic factor; respectively.
 
 The format of the files has to be the following:
 %
 \begin{itemize}
 	\item The RDOF data must be given in three columns; $T$ (in $\GeV$), $\heff$, and $\geff$.
 	%
 	\item The axion mass data must be given in two columns; $T$ (in $\GeV$), $\chi$ (in $\GeV^4$). Here, $\chi$ is defined as in \eqs{eq:axion_mass_def}. 
 	The user can provide a function instead of data for the axion mass, by leaving the  {\tt axMDat} variable empty. 
 	%
 	\item The data for the anharmonic factor must be give in two columns   $\thetamax$ $f(\thetamax)$; with increasing $\thetamax$.
 \end{itemize}
 %
 The paths to these files should be given at compile time. That is, once {\tt Paths.mk} changes, \run{bash configure.sh} and then \run{\tt make} must be ran. The user can change the content of the data files (without changing their paths), in order to use them without compiling \mimes again. However, the user has to make sure that all the files are sorted so that the values of first column increase (with no duplicates or empty lines). In order to ensure this, it is advised to run \run{bash FormatFile.sh path-to-file} (in Appendix~\ref{app:util} there are some details on {\tt MiMeS/src/FormatFile.sh}), in order to format the file (that should exist in \run{path-to-file}) complies with the requirements of \mimes.
 
 These paths are stored as strings in {\tt \mimes/src/misc\_dir/path.hpp} at compile-time (they are defined as {\tt constexpr}), and can be accessed once this header file is included. The corresponding variables are {\tt cosmo\_PATH}, {\tt chi\_PATH}, and {\tt anharmonic\_PATH}, for the path to data file of the plasma quantities, $\chi(T)$, and $f(\thetamax)$; respectively. Although, the axion mass data file may be omitted -- since the axion mass is defined by the user, the variable {\tt chi\_PATH} is still useful if the axion mass is defined via a data file, as it is automatically converted to an absolute path.~\footnote{Absolute paths have the advantage to be accessible from everywhere else in the system. Thus, executables that seek the corresponding files can be called and copied easily.}
 
 
 
 
 \subsubsection{Run-time input}\label{sec:run_time_input}
 %
 The run-time user input is described in sec.~\ref{sec:first_steps}. The user has to provide at least the parameters that describe the axion evolution, $\thetai$ and $\fa$. 
 
 Moreover,  the maximum allowed value of $u$ and the minimum value of $T$, allow the user to decide when the integration has to stop even if the axion has not reached its adiabatic evolution. Ideally, {\tt umax}$=\infty$ and {\tt TSTOP}$=0$, but \mimes is designed to be as general as possible and there may be cases where one needs to stop the integration abruptly.~\footnote{These two variables are not optional, because the user must be aware of them, in order to choose them according to their needs.}
 
 Furthermore, {\tt ratio\_ini} allows the user to choose a desired point at which the interpolation of the data in {\tt inputFile} begins. This can save valuable computation time as well as memory, as only the necessary data are stored and searched. Generally, for {\tt ratio\_ini}$>10^{3}$, the relic abundance becomes
 independent from  {\tt ratio\_ini}, but one has to choose it carefully, in order to find a balance between accuracy and computation time.
 
 Finally, the convergence conditions -- \ie~{\tt N\_convergence\_max} and {\tt convergence\_lim} -- allow the user to decide when the adiabatic evolution of the axion begins. Generally, the relic abundance does not have a strong dependence on these parameters as log as they are  {\tt N\_convergence\_max}$>3$ and {\tt convergence\_lim}$<10^{-1}$ (\ie the adiabatic invariant does not vary more that $10\%$ for three consecutive peaks of the oscillation). 
 %
 However, we should note that greedy choices (\eg~{\tt N\_convergence\_max}$=100$ and {\tt convergence\_lim}$=10^{-5}$) are dangerous, as $\theta$ tends to oscillate rapidly and destabilize the differential equation solver. Therefore, these parameters should be chosen carefully, in order to ensure that integration stops when axion has reached its adiabatic evolution, without destabilising the EOM.
 
 \subsection{Complete Examples}\label{sec:complete_examples}
 %
 Although one can modify the examples provided in {\tt \mimes/UserSpace}, in this section we show a complete example in both \CPP and \PY. 
 %
 
 The underlying cosmology is assumed to be an EMD scenario. In terms of the parametrisation of ref.~\cite{Arias:2020qty}, it is defined through the same parameters as in the example shown in section~\ref{sec:comparison_between_WKB_approaches}.
 %
 and the evolution of the energy densities of the plasma and a fluid $\Phi$ is shown in \Figs{fig:energy_densities}.
 %
 \begin{figure}[t]
 	\includegraphics[width=1\textwidth]{figs/energy_densities.pdf}
 	\caption{The energy densities of the plasma and a hypothetical decaying fluid. The parameters of the cosmological scenario  $T_{\rm END}=10^{-2}~\GeV$, $c=3$, $T_{\rm ini}=10^{12}~\GeV$, and $r=0.1$; the parameters  follow the definitions in ref.~\cite{Arias:2020qty}. }
 	\label{fig:energy_densities}
 \end{figure}
 %
 The various regime changes are indicated as $T_{{\rm E}_{1,2}}$ -- corresponding to the first and second time where $\rho_{\Phi} = \rho_{\rm R}$,  and $T_{{\rm D}_{1,2}}$ -- which correspond to the start and end of entropy injection (for more precise definition see~\cite{Arias:2020qty}). Regarding the axion, this cosmological scenario alters it evolution, since both the Hubble parameter and the entropy of the plasma change significantly. This results in a shift in the oscillation temperature, and the dilution of the axion energy density.
 
 Moreover, we will use the QCD axion mass of ref.~\cite{Borsanyi:2016ksw}. For the axion mass beyond the minimum and maximum temperatures, $T_{\rm min, \, max}$, in the corresponding data file, we will take
 %
 \begin{equation}
 	\maT = \Bigg\{
 	\begin{matrix}
 		\dfrac{\chi(T_{\rm min})}{\fa^2} & \text{for } T<T_{\rm min} 
 		\\ \\
 		\dfrac{\chi(T_{\rm max})}{\fa^2}   \lrb{\dfrac{T}{T_{\rm max}}}^{-8.16} & \text{for } T>T_{\rm max} 
 	\end{matrix} \;.
 	\label{eq:axM-limits}
 \end{equation}
 
 
 \subsubsection{complete example in \CPP}\label{sec:cpp_example}
 %
 In order to write a \CPP program that uses \mimes in order to solve the EOM~\ref{eq:eom_sys}, we must include the header files {\tt src/AxionMass/AxionMss.hpp} and {\tt src/Axion/AxionSolve.hpp}. In the example at hand, the {\tt main} function should contain the definition of the axion mass
 %
 \begin{cpp}
 	// use chi_PATH to interpolate the axion mass.
 	mimes::AxionMass<LD> axionMass(chi_PATH,0,mimes::Cosmo<LD>::mP);
 
 	/* This is the axion mass squared beyond the interpolation limits 
 	for the current data. If you don't specify them, the axion mass 
 	is taken to be constant beyond these limits */
 
 	/*set ma2 for T>TMax*/
 	long double TMax=axionMass.getTMax();    
 	long double chiMax=axionMass.getChiMax();    
 	axionMass.set_ma2_MAX(
 		[&chiMax,&TMax](long double T, long double fa){
 			return chiMax/fa/fa*std::pow(T/TMax,-8.16);
 		}
 	);  
 	
 	/*set ma2 for T<TMin*/
 	long double TMin=axionMass.getTMin();  
 	long double chiMin=axionMass.getChiMin();    
 	axionMass.set_ma2_MIN( 
 		[&chiMin,&TMin](long double T, long double fa){
 			return chiMin/fa/fa;
 		}
 	);
 \end{cpp}
 %
 It should be noted that, since we have used {\tt chi\_PATH}, we need to include the {\tt path.hpp} header file from {\tt \mimes/src/misc\_dir}. Moreover, we note that we have used as parameter \cppin{mimes::Cosmo<LD>::mP}, which is the Planck  mass, as a static member of the {\tt Cosmo} class (described in Appendix~\ref{app:classes}), in order to interpolate the mass up to $T=m_P$, \ie the entire possible mass range.
 
 Following, the axion EOM can be solve as
 %
 \begin{cpp}
  	std::string inputFile = std::string(rootDir)+
     				std::string("/UserSpace/InputExamples/MatterInput.dat");
 	
 	mimes::Axion<long double, 1, RODASPR2<long double> > 
 	ax(0.1, 1e16, 500, 1e-4, 1e3, 15, 1e-2, inputFile, &axionMAss, 
 	1e-1, 1e-8, 1e-1, 1e-11, 1e-11, 0.9, 1.2, 0.8, int(1e7));
 	
 	ax.solveAxion();
 \end{cpp}
 %
 This program should solve the axion EOM. However, one needs to print anything that they need. For example, the relic abundance is printed by adding {\tt std::cout<<ax.relic<<"\\n";} after {\tt ax.solveAxion();}. It should be noted that, in order to make sure that the code is compiled successfully, one should add at the top of the file any other header they need. In particular, in this case, we need to add {\tt \#include<iostream>}, in order to be able to use {\tt std::cout}.
 
 
 \paragraph{Parameter choice}
 %
 It should be noted that the string that is assigned to the variable {\tt inputFile}, is the path of file that exists in {\tt \mimes/UserSpace/InputExamples/MatterInput.dat}. Also, {\tt rootDir} is a constant static ({\tt char[]}) variable that  is defined in {\tt \mimes/src/path.hpp} that , and it is automatically generated when {\tt bash configure.sh} is executed.  Moreover, the other parameters used in the constructor are:
 %
 \begin{itemize}
 	\begin{minipage}{0.3\linewidth}
 	\item {\tt theta\_i}$=0.1$
 	\item {\tt fa}$=10^{16}~\GeV$
 	\item {\tt umax }$=500$
 	\item {\tt TSTOP}$=10^{-4}~\GeV$
 	\item {\tt ratio\_ini}$=10^3$
 	\item  {\tt N\_convergence\_max}$=15$
 	\end{minipage}
 	\begin{minipage}{0.35\linewidth}
 	\item  {\tt convergence\_lim}$=10^{-2}$
 	\item {\tt initial\_stepsize}$=10^{-1}$ 
 	\item {\tt maximum\_stepsize}$=10^{-1}$ 
 	\item {\tt minimum\_stepsize}$=10^{-8}$
 	\item {\tt absolute\_tolerance}$=10^{-11}$
 	\item {\tt relative\_tolerance}$=10^{-11}$
 	\end{minipage}
 	\begin{minipage}{0.3\linewidth}
 	\item {\tt beta}$=0.9$
 	\item {\tt fac\_max}$=1.2$
 	\item {\tt fac\_min}$=0.8$
 	\item {\tt maximum\_No\_steps}$=10^7$
 	\item[]{\vfill}	\item[]{\vfill}	\item[]{\vfill}
 	\end{minipage}
 \end{itemize}
 
 \paragraph{Template arguments}
 %
 Furthermore, The first template parameter is {\tt long double}, which means that all the numeric types (apart from integers like {\tt maximum\_No\_steps}) have ``long double" precision. which is useful when considering low tolerances as in this example. The second and third template parameters are responsible for the Runge-Kutta method we use. That is, n this case, the second template parameter -- $1$ -- means that we use a Rosenbrock method, with the method being {\tt RODASPR2}. Notice that the method also needs a template parameter that declares all member variables of the {\tt RODASPR2} class.
 
 \paragraph{Compilation}
 %
 Assuming that we have already executed {\tt bash configure.sh}, compilation of the above example is trivial. Assuming that we name the file that contains the code {\tt axionExample.cpp}, and it is located in {\tt \mimes/UserSpace}, the only thing we need to do is run
 %
 \begin{pseudo}
 	g++ -O3 -std=c++17 -lm -I../ -o axion axionExample.cpp
 \end{pseudo}
 %
 or 
 %
 \begin{pseudo}
 	clang -lstdc++ -O3 -std=c++17 -lm -I../ -o axion axionExample.cpp
 \end{pseudo}
 
 Both of these commands should create an executable that solves the axion EOM. That is, assuming we have a terminal open in   {\tt \mimes/UserSpace}, we can run {\tt ./axion}, and get the results we chose. It should be noted that all paths that \mimes uses by default are written as absolute paths when we run {bash ./configure.sh}. Therefore, if the {\tt inputFile} variable is also an absolute path, the executable can be copied and used in any other directory of the same system. However, it should be preferred that executables are kept under the \mimes directory, in order to be able to compile them with different data file paths if needed.
 
 
 
 \paragraph{The entire code}
 %
 This example consists of only a few lines of code, which, including the change in the axion mass beyond the interpolation limit, is
 %
 \begin{cpp}
 	#include<iostream>
 	//include everything you need from \mimes
 	#include"src/Axion/AxionSolve.hpp"
 	#include"src/AxionMass/AxionMass.hpp"
 	#include"src/Cosmo/Cosmo.hpp"
 	#include"src/misc_dir/path.hpp"
 	
 	int main(){		
 		// use chi_PATH to interpolate the axion mass.
 		mimes::AxionMass<LD> axionMass(chi_PATH,0,mimes::Cosmo<LD>::mP);
 		
 		/*set ?$\maT^2$? for ?$T\geq T_{\rm max}$?*/
 		long double TMax=axionMass.getTMax();    
 		long double chiMax=axionMass.getChiMax();    
 		axionMass.set_ma2_MAX(
 			[&chiMax,&TMax](long double T, long double fa){
 				return chiMax/fa/fa*std::pow(T/TMax,-8.16);
 			}
 		);  
 		
 		/*set ?$\maT^2$? for ?$T\leq T_{\rm min}$?*/
 		long double TMin=axionMass.getTMin();  
 		long double chiMin=axionMass.getChiMin();    
 		axionMass.set_ma2_MIN( 
 			[&chiMin,&TMin](long double T, long double fa){
 				return chiMin/fa/fa;
 			}
 		);		
 
 		std::string inputFile = std::string(rootDir)+
 			std::string("/UserSpace/InputExamples/MatterInput.dat");
 		
 		mimes::Axion<long double, 1, RODASPR2<long double> > 
 		ax(0.1, 1e16, 500, 1e-4, 1e3, 15, 1e-2, inputFile, &axionMass, 
 		1e-1, 1e-8, 1e-1, 1e-11, 1e-11, 0.9, 1.2, 0.8, int(1e7));
 		
 		ax.solveAxion();
 		
 		std::cout<<ax.relic<<"\n";
 		
 		return 0;
 	}
 \end{cpp}
 %
 
 %
 We should point out that another example is given in {\tt \mimes/UserSpace/Cpp/Axion}, where all parameters are taken as command-line inputs, the various compilation-time options can be given {\tt \mimes/UserSpace/Cpp/Axion/Definitions.mk}, and then compiled using {\tt make}. Therefore, the user can just modify this code in order to meet their needs. That is, using this example, one only needs to add their preferred definition of {\tt ma2\_MAX} and {\tt ma2\_MIN} -- or change the {\tt axionMass} variable (in {\tt \mimes/src/static.hpp}) using a function as mentioned in section~\ref{sec:compile_time_input} without writing the entire program themselves.
 
 \paragraph{Alternative axion mass definition}
 %
 For this particular example, we could have used the approximate definition of the axion mass
 %
 \begin{equation}
 	\maT^2 \approx \ma^2 \times \Bigg\{ 
 	\begin{matrix}
 	\lrb{\dfrac{T_{\rm QCD}}{T}}^{8.16} & \quad \text{for } T\geq T_{\rm QCD} 
 	\\ \\
 	1 & \quad \text{for } T\leq T_{\rm QCD}
 \end{matrix} \;,
 	\label{eq:axM_approx}
 \end{equation}
 %
 where $T_{\rm QCD}  \approx 150~\MeV$ and $\ma=\dfrac{3.2 \times 10^{-5} ~\GeV^4}{\fa^2}$. This can be done by substituting the {\tt axionMass} definition (lines $9$-$28$) with 
 %
 \begin{cpp}
 	auto ma2 = [](long double T,long double fa){
 	    long double TQCD=150*1e-3;
 	    long double ma20=3.1575e-05/fa/fa;
 	    if(T<=TQCD){return ma20;}
 	    else{return ma20*std::pow((TQCD/T),8.16);}
 	};
 	mimes::AxionMass<LD> axionMass(ma2);
 \end{cpp}
 
 
 \subsubsection{complete example in \PY}
 %
 In order to be able use the {\tt AxionMass} and {\tt Axion} classes in \PY, we need to import the corresponding module from {\tt \mimes/src/interfacePy}. That is, assuming that the script from which we intend to import {\tt \mimes/src/interfacePy/Axion/Axion.py} is in {\tt \mimes/UserSpace}, we can import the {\tt Axion} class by writing the following
 %
 \begin{py}
 	#add the relative path for MiMeS/src
 	from sys import path as sysPath
 	from os import path as osPath
 	sysPath.append(osPath.join(osPath.dirname(__file__), '../src'))
 	
 
 	from interfacePy.AxionMass import AxionMass #import the AxionMass class
 	from interfacePy.Axion import Axion #import the Axion class
 	from interfacePy.Cosmo import mP #import the Planck mass
 \end{py} 
 %
 Once everything we need is imported, we can simply follow the steps outlined in section~\ref{sec:begin_py}. For the example at hand, we can create an instance of the {\tt AxionMAss} class as
 %
 \begin{py}
 	# AxionMass instance
 	axionMass = AxionMass(r'../src/data/chi.dat',0,mP)
 	
 	# This is the axion mass squared beyond the interpolation limits for the current data. 
 	# If you don't specify them, the axion mass is taken to be constant beyond these limits
 	TMax=axionMass.getTMax() 
 	chiMax=axionMass.getChiMax()
 	TMin=axionMass.getTMin() 
 	chiMin=axionMass.getChiMin()
 	
 	axionMass.set_ma2_MAX( lambda T,fa: chiMax/fa/fa*pow(T/TMax,-8.16) )
 	axionMass.set_ma2_MIN( lambda T,fa: chiMin/fa/fa )
 \end{py}
 %
 
 Then we can simply create an instance of the {\tt Axion} class as 
 %
 \begin{py}
 	#in python it is more convenient to use relative paths
 	inputFile = inputFile="./InputExamples/MatterInput.dat"  
 	
 	ax = Axion(0.1, 1e16, 500, 1e-4, 1e3, 15, 1e-2, inputFile, axionMass, 
 	1e-1, 1e-8, 1e-1, 1e-11, 1e-11, 0.9, 1.2, 0.8, int(1e7))
 \end{py}
 %
 Again, the parameters for the constructor are the same as in the \CPP example. The axion EOM, then, is solved using
 %
 \begin{py}
 	ax.solveAxion()
 \end{py}
 %
 In contrast to the \CPP usage of this function, this only stores the $\thetai$, $\fa$, $\thetaosc$, $\Tosc$, and $\Omega h^2$ in the variables {\tt ax.theta\_i}, {\tt ax.fa}, {\tt ax.theta\_osc}, {\tt ax.T\_osc}, and {\tt ax.relic}; respectively. Therefore, we can print the relic abundance by calling \run{print(ax.relic)}. In order to get the integration points (\ie the evolution of the angle and the other quantities), the quantities at the  peaks, and the local integration errors, we need to call
 %
 \begin{py}
 	#this gives you all the points of integration
 	ax.getPoints()
 	
 	#this gives you the peaks of the oscillation
 	ax.getPeaks()
 	
 	#this gives you local integration errors
 	ax.getErrors()
 \end{py}
 %
 The documentation of any \PY function can be read directly inside the script using {\tt ?} as a prefix. For example, in order to see what the functionality and usage of the {\tt getPeaks} function, we can call \run{?ax.getPeaks}, and its documentation will be printed. 
 
 As already mentioned, it is important to always delete any instance of the {\tt Axion} class that is not going to be used. In this case this is done by calling
 %
 \begin{py}
 	del ax
 \end{py}
 
 
 \paragraph{Compilation of the shared library}
 %
 As described in section~\ref{sec:compile_time_input}, we may need to change the default data file paths, or the various compilation options. This is done through the variables in {\tt \mimes/Definitions.mk} and {\tt \mimes/Paths.mk} described in section~\ref{sec:options}. 
 
 Once we have chosen everything according to our needs, the library can be created by opening a terminal inside the root directory of \mimes and running
 %
 \begin{py}
 	bash configure.sh
 	make lib/Axion_py.so
 \end{py}
 %
 
 \paragraph{The entire code}
 %
 As in the \CPP example, this example consists of only a few lines of code. The script we described here is
 %
 \begin{py}
 	#add the relative path for MiMeS/src
 	from sys import path as sysPath
 	from os import path as osPath
 	sysPath.append(osPath.join(osPath.dirname(__file__), '../src'))
 	
 	from interfacePy.AxionMass import AxionMass #import the AxionMass class
 	from interfacePy.Axion import Axion #import the Axion class
 	from interfacePy.Cosmo import mP #import the Planck mass
 
 	# AxionMass instance
 	axionMass = AxionMass(r'../src/data/chi.dat',0,mP)
 	
 	# define ?$\maT^2$? for ?$T\leq T_{\rm min}$?
 	TMin=axionMass.getTMin() 
 	chiMin=axionMass.getChiMin()
 	axionMass.set_ma2_MIN( lambda T,fa: chiMin/fa/fa )
 
 	# define ?$\maT^2$? for ?$T\geq T_{\rm max}$?
 	TMax=axionMass.getTMax() 
 	chiMax=axionMass.getChiMax()
 	axionMass.set_ma2_MAX( lambda T,fa: chiMax/fa/fa*pow(TMax/T),8.16) )
 	
 	#in python it is more convenient to use relative paths
 	inputFile = inputFile="./InputExamples/MatterInput.dat"  
 	
 	ax = Axion(0.1, 1e16, 500, 1e-4, 1e3, 15, 1e-2, inputFile, axionMass, 
 	1e-1, 1e-8, 1e-1, 1e-11, 1e-11, 0.9, 1.2, 0.8, int(1e7))
 
 	ax.solveAxion()
 	
 	print(ax.relic)
 	
 	#once we are done we should run the destructor
 	del ax
 \end{py} 
 
 
 One can find a complete example, including the option to create several plots, in the script {\tt \mimes/UserSpace/Python/Axion.py}. Also, the same example can be used interactively, in jupyter notebook environment, that can be found in {\tt \mimes/UserSpace/JupyterNotebooks/Axion.ipynb}. One can read the comments, and change all different parameters, in order to examine how the results are affected. 
 
 \paragraph{Alternative axion mass definition}
 %
 In order to use the approximate axion mass as defined in \eqs{eq:axM_approx}, we could replace the definition of the {\tt axionMass} variable (lines $10$-$21$) with
 %
 \begin{py}
 	def ma2(T,fa):
 		TQCD=150*1e-3
 		ma20=3.1575e-05/fa/fa
 		if T<=TQCD:
 			return ma20;
 		return ma20*(TQCD/T)**8.16
 	axionMass = AxionMass(ma2)
 \end{py}
 
 \subsubsection{Results}
 %
 In both \CPP and \PY one should get the same results (if the same numeric type, and RK parameters and method are used), which should be similar to \Figs{fig:theta_evolution-EMD}. 
 %
 It should be noted that this particular example is chosen such that the axion relic abundance is close to its observed value~\cite{Planck:2018vyg} ($\Omega h^2 \approx 0.12$), and is indicative of the features one can expect if entropy is injected to the plasma for $T \ll \Tosc$.
 %
 \begin{figure}[h]
 	\begin{subfigure}[]{0.5\textwidth}
 		\includegraphics[width=1\textwidth]{figs/theta_evolution-EMD.pdf}
 		\caption{}
 		\label{fig:theta_evolution-EMD}
 	\end{subfigure}
 	\begin{subfigure}[]{0.5\textwidth}
 		\includegraphics[width=1\textwidth]{figs/theta_evolution-RD.pdf}
 		\caption{}
 		\label{fig:theta_evolution-RD}
 	\end{subfigure}
 	\caption{...}
 	\label{fig:results}
 \end{figure}
 %
 In \Figs{fig:theta_evolution-EMD} we show the evolution  of $\theta$ for temperatures $T \in [0.025,0.15]~\GeV$, where the vertical line indicates $\Tosc$, while the horizontal one the corresponding value of $\theta$, $\thetaosc$. Also, the blue curve connects the peaks of the oscillation. For comparison, in \Figs{fig:theta_evolution-RD} we also show the evolution of the angle in a radiation dominated Universe with constant entropy (\ie standard cosmological scenario). From these figures, we can see that the effect of an early matter domination reduces the amplitude of oscillation -- due to the injection of entropy -- as well the oscillation temperature -- due to the increase of the Hubble parameter. Furthermore, as expected from \eqs{eq:theta_osc}, the angle at $T=\Tosc$ in the EMD scenario is much smaller that the corresponding value in the standard cosmological case. This shows again that approximating $\thetaosc \approx \thetai$ results in an inaccurate result, especially in cases where entropy is injected to the plasma (as expected by \eqs{eq:theta_osc}).
 
 %
 Moreover, in \Figs{fig:RK_response}, we show the relative local error of integration as well as a histogram of the number of integration steps for $0.025~\GeV < T < 0.15 ~\GeV$.
 %
 \begin{figure}[h]
 	\begin{subfigure}[]{0.5\textwidth}
 		\includegraphics[width=1\textwidth]{figs/local_errors-EMD.pdf}
 		\caption{}
 		\label{fig:local_errors-EMD}
 	\end{subfigure}
 	\begin{subfigure}[]{0.5\textwidth}
 		\includegraphics[width=1\textwidth]{figs/histogram-EMD.pdf}
 		\caption{}
 		\label{fig:histogram-EMD}
 	\end{subfigure}
 	\caption{...}
 	\label{fig:RK_response}
 \end{figure}
 %
 The local relative errors, defined in Appendix~\ref{app:RK}, are shown in \Figs{fig:local_errors-EMD}. The black and red lines correspond to $\delta \theta/\theta$ and $\delta \zeta/\zeta$, respectively. This figure indicates that the local errors are relatively well behaved for $T>\Tosc$, and they only start to oscillate violently once the oscillations start. However, the adaptation of the integration step seems to work, as the errors are kept below $\sim 10^{-7}$ (the relative error of $zeta$ is large because $\zeta \approx 0$ before the $\Tosc$).  In order to examine how the step-size is adapted to the difficulty of the problem, we also show a histogram which show how many integration steps are taken for fixed temperature intervals.~\footnote{More precisely, the histogram is made by dividing the the temperature range $0.025~\GeV\lesssim T\lesssim 0.15~\GeV$ to $30$ bins of equal size.} 
 %
 In this figure, we see that the number of integration steps increases rapidly for temperatures below the oscillation temperature. 
 %
 This is expected, since integration becomes more difficult as the frequency of the oscillation increases -- $\maT/H$ increases rapidly for $T<\Tosc$. That is, the local integration error tends to increase. Thus, in order to reduce the local error, the embedded RK method we employ, reduces the step-size. This means that for $T \lesssim \Tosc$ the number of integration steps increase drastically.
 %
 This is the general picture of how adaptation happens. However, one has to experiment with all the available parameters, in order to solve the axion EOM as accurately and fast as possible.  
 
 
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 % APPENDICES
 \pagebreak
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \setcounter{section}{0}
 \section*{Appendix}
 \appendix
 
 \renewcommand{\theequation}{\Alph{section}.\arabic{equation}}
 \setcounter{equation}{0}  % reset counter
 %%%%%%%%%%%%%%%%%%%%%%%
 
 \section{Basics of embedded Runge-Kutta Mehtods}\label{app:RK}
 \setcounter{equation}{0}
 %
 Runge-Kutta (RK) methods are employed in order to solve an ordinary differential equation (ODE), or a system of ODEs of first order.~\footnote{Boundary value problems, and higher order differential equations are expressed as first order ODEs, and then solved. Similarly to  \eqs{eq:eom_sys}.}   Although there are some very insightful sources in the literature (\eg~\cite{Hairer,hairer2010solving,10.5555/1403886}) we give a brief overview of them in order to help the user to make appropriate decisions when using \mimes.
 
 The general form of a system of first order of ODEs is
 %
 \begin{equation}
 	\dfrac{d\vec{y}}{dt}=\vec{f}(\vec{y},t) \;,
 	\label{eq:ODE_definition}
 \end{equation}
 %
 with given initial condition $\vec{y}(0)$. Also, the components of $\vec{y}$ denote the unknown functions. Note that we can always shift $t$ to start at $0$, which simplifies the notation. In order to solve the the system of \eqs{eq:ODE_definition}, an RK method uses an iteration of the form 
 %
 \begin{equation}
 	\vec{y}_{n+1}=\vec{y}_{n}+ h\sum_{i=1}^{s} b_i \ \vec{k}_i \;,
 	\label{eq:RK_iter}
 \end{equation}
 %
 with $n$ denoting the iteration number, $h$ the ``step-size" that is used to progress $t$; $t_{n+1}=t_{n}+h$. Moreover, $s$, $b_i$ and $\vec{k}_i$ define the corresponding RK method. For example,
 the classic Euler method is an RK method with $s=1$, $b=1$, and $\vec{k}_1 = \vec{f}(\vec{y_n , t_n})$. Methods with $\vec{k}$ that depends on previous step (\ie $\vec{k} =\vec{k}\lrsb{y_{n},t_{n}}$), are called explicit, while the ones that try to also predict next step (\ie $\vec{k} =\vec{k}\lrsb{y_{n},t_{n}; y_{n+1},t_{n+1}}$) are called implicit.~\footnote{Generally, by substituting  implicit methods $y_{n+1}$ as in \eqs{eq:RK_iter}, we end up with a system of equations that need to be solved in order to compute $\vec{k}$.} 
 
 \subsection{Embedded RK methods}
 %
 A large category of RK methods are  the so-called embedded RK methods. These methods make two estimates for the same step simultaneously -- without evaluating  $\vec{k}$ many times within the same iteration. Therefore, together with the iteration of \eqs{eq:RK_iter}, a second estimate is given by
 %
 \begin{equation}
 	\vec{y}_{n+1}^{(*)}=\vec{y}_{n}+ h\sum_{i=1}^{s} b_i^{(*)} \vec{k}_i \;,
 	\label{eq:RK_Embedded_iter}
 \end{equation}
 %
 with $b_i^{(*)}$ is an extra parameter that characterise the ``embedded" method of different order (typically, one order higher that the estimate~\ref{eq:RK_iter}). The local (for the step $t_{n+1}$) error divided by the scale of the solution, then, estimated as
 %
 \begin{equation}
 	\Delta \equiv  \sqrt{\frac{1}{N}\sum_{d=1}^{N}\lrb{\frac{y_{n+1 ,d}-y^{*}_{n+1,d}}{ \Lambda_d }}^{2}} \;,
 	\label{eq:error_estimate}
 \end{equation}
 %
 where $n$ the iteration number, $N$ the number of ODEs, $d$ the component of $\vec{y}$, and $\Lambda_d$ defined as 
 %
 \begin{equation}
 	\Lambda_d = {\tt Atol} + \max\lrb{|y_{n+1, d}|,|y^{*}_{n+1 ,d}|} \; {\tt Rtol} \;,
 	\label{eq:RK_scale}
 \end{equation}
 %
 with {\tt Atol} and {\tt Rtol} the absolute and relative tolerances that characterise the desirable accuracy we want to achieve; user defined values, typically {\tt Atol}$=${\tt Rtol}$\ll 1$.  With these definitions, the desirable error is reached when  $\Delta \lesssim 1$. 
 
 \paragraph{Step-control} The definition~\ref{eq:error_estimate}, allows us to adjust the step-size $h$ in such way that $\Delta \approx 1$. That is, we take trial steps, and $h$ is adapted until $\Delta \approx 1$.  A simple adaptive strategy adjusts step-size, using
 %
 \begin{eqnarray}
 	h \to \beta \; h \;  {\rm max} \lrsb{f_{\rm min}, {\rm min} \lrb{\Delta^{-\frac{1}{p+1}}, f_{\rm max}}} \;,
 	\label{eq:step-control}
 \end{eqnarray}
 %
 with $p$ the order of the RK method ($p+1$ is the order of the embedded one), $\beta$  a bias factor of the adaptive strategy (typically $\beta$ is close but below $1$), used to adjust the tendency of $h$ to be somewhat smaller than what the step-control predicts. Also, $f_{min}$ and $f_{max}$ are the minimum and maximum allowed factors, respectively, that can multiply $\beta \ h$, used in order to avoid large fluctuations that can destabilise the process. All these parameters are chosen by the user, in order to make the step-control process as aggressive or safe as needed. 
 
 \paragraph{Correspondence between \mimes parameters and RK ones}
 %
 The various parameters that \mimes are described in section~\ref{sec:input}. The correspondence between them and the RK parameters is given in table~\ref{tab:RK_mimes_params}.
 %
 \begin{table}[t!]
 	\centering
 	\begin{tabular}{|c|c|}
 		\mimes & Runge-Kutta \\
 		\hline
 		{\tt absolute\_tolerance } & {\tt Atol}  \\
 		\hline
 		{\tt relative\_tolerance } & {\tt Rtol}  \\
 		\hline
 		{\tt b} & $\beta$  \\
 		\hline
 		{\tt fac\_min} & $f_{\rm min}$  \\
 		\hline
 		{\tt fac\_max} & $f_{\rm max}$  \\
 		\hline
 	\end{tabular}
 	\caption{Correspondence between the user \mimes user input and the RK parameters described in the text.}
 	\label{tab:RK_mimes_params}
 \end{table}
 
 \subsection{Explicit embedded RK methods}
 %
 Explicit methods use only the information of the previous step in order to compute $\vec{k}_i$ from  
 %
 \begin{equation}
 	\vec{k}_{i}=\vec f\lrBiggb{ \vec{y}_{n}+h \lrBigb{ \sum_{j=1}^{i-1}a_{ij}\vec{k}_{j} }, t_{n}+ c_{i} \; h}\;, \quad \forall i=1,2,\dots, s\;,
 	\label{eq:explicit_RK_k}
 \end{equation}
 %
 with $a_{ij}$, $c_i$, together with $b_i$ and $b_i^{(*)}$, consist the so-called Butcher tableau of teh corresponding method. For explicit methods this is usually presented as 
 %
 \begin{equation}
 	\begin{array}{c|cccccc}
 		0      & 0      &   0   &      0& \dots & 0& 0\\
 		c_2    & a_{21} &   0   &   0   & \dots & 0& 0\\
 		c_3    & a_{31} & a_{32}&      0& \dots & 0& 0\\
 		\vdots & \vdots & \vdots& \vdots&\ddots &\ddots& \vdots\\
 		c_s    & a_{s1} & a_{s2}& a_{s3}& \dots & a_{s s-1}& 0 \\
 		\hline
 		p      & b_1    & b_2  & b_3 & \dots & b_{s-1} & b_s \\
 		p+1      & b_1^{\star}    & b_2^{\star}  & b_3^{\star} & \dots & b_{s-1}^{\star} & b_s^{\star}
 	\end{array}
 	\label{eq:Butcher}
 \end{equation}
 %
 It should be noted that $c_i = \displaystyle\sum_{j=1}^{s} a_{ij} $.
 
 \subsection{Rosenbrock methods}
 %
 Explicit RK methods, encounter instabilities when a system is ``stiff"~\footnote{A definition of stiffness can be found in~\cite{hairer2010solving,Hairer}.}; when is oscillates rapidly, or has different elements at different scales. This problems are somewhat resolved by trying to predict the next step inside $\vec{k}$; \ie in implicit methods. However, then one has to solve a non-linear set of equations in order to compute $\vec{y}_{n+1}$, which is generally a slow process, as the Newton method (or some variation) needs to be applied. However, there exist another way, a compromise between explicit and implicit methods.  Linearly implicit RK methods, usually called Rosenbrock methods -- with popular improvements as Rosenbrock-Wanner methods, introduce  parameters in the diagonal of the Butcher tableau~\ref{eq:Butcher} and linearise the system of  non-linear equations (for details, see~\cite{hairer2010solving}). In these methods, $\vec{k}$ is determined by  
 %
 \begin{equation}
 	\left(\hat I - \gamma h \hat{J}\right)\cdot \vec{k}_{i}=
 	h \vec{f}\Big(\vec{y}_n+\sum_{j=1}^{i-1}a_{ij}\vec{k}_{j},t_n + c_{i}h \Big)+
 	h^2 \left(\gamma + \sum_{j=1}^{i-1}\gamma_{ij}\right)\dfrac{\partial \vec{f} }{\partial t}+
 	h \hat J \cdot \sum_{j=1}^{i-1}\gamma_{ij} \vec{k}_{j}\; ,
 	\label{eq:Ros_k}
 \end{equation}
 %
 which is written in such a way that everything is evaluated at $t = t_{n}$. In \eqs{eq:Ros_k},  $\hat J = \dfrac{\partial \vec f}{ \partial \vec y}$ the Jacobian of the system of ODEs, $\hat I$ the unit matrix with dimension equal to the number of ODEs. Moreover, $\gamma$ and $\gamma_{ij}$ are parameters that characterise the method (along with $a_{ij}$, $c_i$,  $b_i$, and $b_i^{(*)}$).
 
 \paragraph{Implementing a new Butcher tableau in {\tt NaBBODES}} As already mentioned, \mimes uses {\tt NaBBODES}, which supports the implementation of new Butcher tableaux. This is done by adding a new class (or struct) inside the header file {\tt METHOD.hpp} that can be found in {\tt \mimes/src/NaBBODES/RKF} for the explicit RK and  {\tt \mimes/src/NaBBODES/Rosenbrock} for the Rosenbrock embedded methods. All the new parameters must be {\tt public},  {\tt constexpr static} variables, of a type that is the template parameter of the method. For example, the Heun-Euler method can be implemented, adding the following code in  {\tt \mimes/src/NaBBODES/RKF/METHOD.hpp}
 %
 \begin{cpp}
 	/*-----Implementation of the Heun-Euler method-----*/
 	/*-----It shouldn't be used for MiMeS, since it is likely to fail-----*/
 	
 	//LD is the numeric type (\ie double, or long double).
 	template<class LD>
 	//use struct because its variables are public by default.
 	struct HeunEuler{  
 		static constexpr unsigned int s=2; // HeunEuler is a 2-stage RK
 		static constexpr unsigned int p=1; // first order, with embedded ?$p+1=2$?
 
 		//these are aliases for the arrays
 		using arr=std::array<LD,s>;
 		using arr2=std::array<std::array<LD,s>,s>;
 		
 		static constexpr arr b={0.5,0.5}; // this is ?$b_i$?
 		static constexpr arr bstar={0.5,0.5}; // this is ?$b_i^{(*)}$?
 		static constexpr arr c={0,1}; // remember that ?$c_i = \displaystyle\sum_{j=1}^{s} a_{ij}$?
 		
 		// this is ?$a_{ij}$?
 		static constexpr arr2 a={
 			arr{0,0},
 			arr{1,0}
 		};			
 	};
 \end{cpp}
 
 In order to implement the ROS3w~\cite{RangAngermann2005} method, one can add the following code in the header file {\tt \mimes/src/NaBBODES/Rosenbrock/METHOD.hpp}
 %
 \begin{cpp}
 	/*-----Implementation of the ROS3w method-----*/
 	/*-----It shouldn't be used for MiMeS, since it is likely to fail-----*/
 	
 	
 	//LD is the numeric type (?\ie? double, or long double).
 	template<class LD>
 	struct ROS3w{
 		static constexpr unsigned int s=3; // 3-stage
 		static constexpr unsigned int p=2; // second order (embedded order is ?$p+1$?)
 		
 		//aliases for the arrays
 		using arr=std::array<LD,s>;
 		using arr2=std::array<std::array<LD,s>,s>;
 
 		static constexpr arr b={0.25,0.25,0.5 };  // this is ?$b_i$?
 		// this is ?$b_i^{(*)}$?
 		static constexpr arr bstar={ 0.746704703274,0.1144064078371,0.1388888888888};  
 		
 		static constexpr arr c={0,2/3.,4/3.}; // remember that ?$c_i = \displaystyle\sum_{j=1}^{s} a_{ij}$?
 		static constexpr LD gamma=0.4358665215084; // this is ?$\gamma$?
 		
 		// this is ?$a_{ij}$?
 		static constexpr arr2 a={
 			arr{0,0,0},
 			arr{2/3.,0,0},
 			arr{2/3.,2/3.,0}	
 		};
 	
 		// this is ?$\gamma_{ij}$?	
 		static constexpr arr2 g={
 			arr{0,0,0},
 			arr{0.3635068368900,0,0},
 			arr{-0.8996866791992,-0.1537997822626,0}
 		};
 	};
 \end{cpp}
 
 \paragraph{How to compile \mimes in order to use the newly implemented method} One a new Butcher tableau is implemented, the \cppin{mimes::Axion} class can use it. This class, needs the name of method assigned to the macro {\tt METHOD}. That is, before you include the header file {\tt src/Axion/AxionSolve.hpp}, this macro needs to be defined. A convenient way to do this, is to define the macro using the {\tt -D} flag of the compiler; \eg in order to use the ROS3w method, this definition ca be done by adding  {\tt -DMETHOD=ROS3w} when compiling the code. Alternatively, if one uses the {\tt makefile} files, a method can be chosen by adding it in the corresponding {\tt Definitions.mk} file as {\tt METHOD=ROS3w}.~\footnote{One make sure to use the correct {\tt SOLVER} macro -- {\tt SOLVER=1} for Rosenbrock method  and {\tt SOLVER=2} for explicit RK method-- otherwise the compilation will fail.} 
 
 
 \section{\CPP classes}\label{app:classes}
 \setcounter{equation}{0}
 %
 \mimes is designed as an object-oriented header-only library. That is, all the basic components of the library are defined in classes in header files. All the classes relevant to the use of \mimes are under the namespace {\tt mimies}.
 
 \subsection{{\tt Cosmo} class}
 %
 The {\tt Cosmo<LD>} class is responsible for interpolation of the various quantities of the plasma. Its header file is {\tt \mimes.src/Cosmo/Cosmo.hpp}, and needs to be included in order to use this class. The template parameter {\tt LD} is the numeric type that will be used, \eg {\tt double}. The constructor of this class is
 %
 \begin{cpp}
 	template<class LD>
 	mimes::Cosmo<LD>(std::string cosmo_PATH, LD minT=0, LD maxT=mimes::Cosmo<LD>::mP)
 \end{cpp}
 %
 The argument {\tt cosmo\_PATH} is the path of the data file that contains $T$ (in $\GeV$), $\heff$, $\geff$, with increasing $T$. The parameters {\tt minT} and {\tt maxT} are minimum and maximum interpolation temperatures. These temperatures are just limits, and the action interpolation is done between the closest temperatures in the data file. Moreover, beyond the interpolation temperatures, both $\heff$ and $\geff$ are assumed to be constants.
 
 Interpolation of the RDOF, allows us to define various quantities related to the plasma; \eg the entropy density is defined as $s = \dfrac{2\pi^2}{45} \heff T^3$. These quantities are given as the member functions:
 %
 \begin{itemize}
 	\item \cppin{ template<class LD> LD mimes::Cosmo<LD>::heff(LD T)}: $\heff$ as a function of $T$.
 	\item \cppin{ template<class LD> LD mimes::Cosmo<LD>::geff(LD T)}: $\geff$ as a function of $T$.
 	% 
 	\item \cppin{ template<class LD> LD mimes::Cosmo<LD>::dheffdT(LD T)}: $d\heff/dT$ as a function of $T$.
 	\item \cppin{ template<class LD> LD mimes::Cosmo<LD>::dgeffdT(LD T)}: $d\geff/dT$ as a function of $T$.
 	%
 	\item \cppin{ template<class LD> LD mimes::Cosmo<LD>::dh(LD T)}: $\delta_h = 1 + \frac{1}{3} \frac{d\log \heff}{d\log T}$ as a function of $T$.
 	%
 	\item \cppin{ template<class LD> LD mimes::Cosmo<LD>::s(LD T)}: The entropy density of the plasma as a function of $T$.
 	\item \cppin{ template<class LD> LD mimes::Cosmo<LD>::rhoR(LD T)}: The energy density of the plasma as a function of $T$.
 	\item \cppin{ template<class LD> LD mimes::Cosmo<LD>::Hubble(LD T)}: The Hubble parameter assuming radiation dominated expansion as a function of $T$.
 \end{itemize}
 
 Moreover, there are several cosmological quantities are given as members variables:
 %
 \begin{itemize}
 	\item \cppin{template<class LD> constexpr static LD mimes::Cosmo<LD>::T0}: CMB temperature today~\cite{Zyla:2020zbs} in $\GeV$.
 	\item \cppin{ template<class LD> constexpr static LD mimes::Cosmo<LD>::h\_hub}: Dimensionless Hubble constant~\cite{Zyla:2020zbs}.
-	\item \cppin{ template<class LD> constexpr static LD mimes::Cosmo<LD>::rho\_crit}: Critical density~\cite{Zyla:2020zbs}.
+	\item \cppin{ template<class LD> constexpr static LD mimes::Cosmo<LD>::rho\_crit}: Critical density~\cite{Zyla:2020zbs} in $\GeV^3$.
 	\item \cppin{ template<class LD> constexpr static LD mimes::Cosmo<LD>::relicDM\_obs}: Central value of the measured DM relic abundance~\cite{Planck:2018vyg}.
 	\item \cppin{ template<class LD> constexpr static LD mimes::Cosmo<LD>::mP}: Planck mass~\cite{Zyla:2020zbs} in $\GeV$.
 \end{itemize}
 
 
 \subsection{{\tt AnharmonicFactor} class}
 %
 The class \cppin{mimes::AnharmonicFactor<LD>} is responsible interpolating the anharmonic factor as defined in \eqs{eq:anharmonic_f}. The corresponding header file is {\tt \mimes/src/AnharmonicFactor/AnharmonicFactor.hpp}. 
 
 The constructor of this class is
 %
 \begin{cpp}
 	template<class LD>
 	mimes::AnharmonicFactor<LD>(std::string anharmonic_PATH)
 \end{cpp}
 %
 Again, the template argument {\tt LD} is a numeric type, and the {\tt anharmonic\_PATH} string is the path of the data file with data for $\thetamax$ (which should be in increasing order) and $f(\thetamax)$.
 
 The member function that \mimes uses is the overloaded call operator
 %
 \begin{cpp}
 	template<class LD> LD mimes::AnharmonicFactor<LD>::operator()(LD theta_peak)
 \end{cpp}
 %
 This function returns the value of the anharmonic factor at $\thetamax=${\tt theta\_peak}. Although, there is no need to call this function beyond the interpolation limits (as long as the data file contains $0\leq \thetamax \leq \pi$), it is important to note that the anharmonic factor is taken to be constant beyond these limits. 
 
 
 \subsection{{\tt AxionMass} class}
 %
 The \cppin{mimes::AxionMass<LD>} class is responsible for the definition of the axion mass. The header file of this class is {\tt \mimes/src/AxionMass/AxionMass.hpp}. Its usage and member functions are described in the examples given in sections~\refs{sec:First_examples,sec:complete_examples}. However, it would be helpful to outline them here.
 
 The class has two constructors. The first one is
 %
 \begin{cpp}
 	template<class LD>
 	mimes::AxionMass<LD>(std::string chi_PATH, LD minT=0, LD maxT=mimes::Cosmo::mP)
 \end{cpp}
 %
 The first argument, {\tt chi\_PATH}, is the path to a data file that contains two columns; $T$ (in $\GeV$) and $chi$ (in $\GeV^4$), with increasing $T$. The arguments {\tt minT} and {\tt maxT} are the interpolation limits. These limits are used in order to stop the interpolation in the closest temperatures that exist in the data file. That is the actual interpolation limits are $T_{\min}\geq${\tt minT} and $T_{\max}\leq${\tt maxT}. Beyond these limits, by default, the axion mass is assumed to be constant. However, this can be changed by using the member functions
 %
 \begin{cpp}
 	void set_ma2_MIN(std::function<LD(LD,LD)> ma2_MIN)
 	void set_ma2_MAX(std::function<LD(LD,LD)> ma2_MAX)
 \end{cpp}
 %
 Here, {\tt ma2\_MIN} and {\tt ma2\_MAX} are functors that define the axion mass squared beyond the interpolation limits. In order to ensure that the axion mass is continues, usually we need $T_{\min}$, $T_{\max}$, $\chi(T_{\rm min})$, and $\chi(T_{\rm max})$. These values can be obtained using the member functions
 %
 \begin{itemize}
 	\item \cppin{template<class LD> LD mimes::AxionMass<LD>::getTMin()}: This function returns the minimum interpolation temperature, $T_{\rm min}$. 
 	\item \cppin{template<class LD> LD mimes::AxionMass<LD>::getTMax()}: This function returns the maximum interpolation temperature, $T_{\rm max}$.
 	\item \cppin{template<class LD> LD mimes::AxionMass<LD>::getChiMin()}: This function returns $\chi(T_{\rm min})$.
 	\item \cppin{template<class LD> LD mimes::AxionMass<LD>::getChiMax()}: This function returns $\chi(T_{\rm max})$.
 \end{itemize}
 
 An alternative way to define the axion mass is via the constructor
 %
 \begin{cpp}
 	template<class LD>
 	mimes::AxionMass<LD>(std::function<LD(LD,LD)> ma2)
 \end{cpp}
 %
 Here, the only argument is the axion mass squared, $\maT$, defined as a callable object.
 
 
 Once an instance of the class is defined, we can get $\maT^2$ using the member function
 %
 \begin{cpp}
 	template<class LD>	LD mimes::AxionMass<LD>::ma2(LD T, LD fa)
 \end{cpp}
 %
 We should note that {\tt ma2} is a public {\tt std::function<LD(LD,LD)>} member variable. Therefore, it can be assigned using the assignment operator. However,  in order to change its definition, we can use the following member function:
 %
 \begin{cpp}
 	template<class LD> void mimes::AxionMass<LD>::set_ma2(std::function<LD(LD,LD)> ma2)
 \end{cpp}
 
 
 \subsection{{\tt AxionEOM} class}
 %
 The \cppin{mimes::AxionEOM<LD>} class is not useful for the user. However, it is responsible for the interpolation of the underlying cosmology, and the definition of the axion EOM~\ref{eq:eom_sys}, which is passed to the ODE solver of {\tt NaBBODES}. 
 
 The constructor of the class is
 %
 \begin{cpp}
 	template<class LD>
 	mimes::AxionEOM<LD>(LD fa, LD ratio_ini, std::string inputFile, AxionMass<LD> *axionMass)
 \end{cpp}
 %
 The role of the arguments are discussed in section~\refs{sec:cpp_first_example,sec:run_time_input} as well as in table~\ref{tab:run_time-input}. One the instance is created, we the interpolations are constructed by calling the member function
 %
 \begin{cpp}
 	template<class LD> void mimes::AxionMass<LD>::makeInt()
 \end{cpp}
 %
 Then, the temperature as a function of $u=\log a/\ai$, is given via the member function 
 %
 \begin{cpp}
 	template<class LD> LD mimes::AxionMass<LD>::Temperature(LD u)
 \end{cpp}
 %
 Another useful member function is  
 %
 \begin{cpp}
 	template<class LD> LD mimes::AxionMass<LD>::logH2(LD u)
 \end{cpp}
 %
 This function returns $\log H^2$  as a function of $u$. Moreover, its derivative, $\frac{d \log H^2}{du}$, is computed using 
 %
 \begin{cpp}
 	template<class LD> LD mimes::AxionMass<LD>::dlogH2du(LD u)
 \end{cpp}
 %
 It should be noted that the highest interpolation temperature is determined by {\tt ratio\_ini} while the lower interpolation temperature is the one given in the data file {\tt inputFile}. Beyond these limits, all functions are assumed to be constant. Therefore, one should be careful, and choose an appropriate {\tt ratio\_ini}, and provide a lower temperature at which any entropy injection has stopped and the axion has reached its adiabatic evolution.
 
 
 Finally, the actual EOM is given an overloaded call operator
 %
 \begin{cpp}
 	template<class LD> 
 	void mimes::AxionMass<LD>::operator()(std::array<LD,2> &lhs, std::array<LD,2> &y, LD u)
 \end{cpp}
 %
 Here, the inputs are $u=\log a/\ai$, {\tt y[0]}$=\theta$, and {\tt y[1]}$=\zeta$; which are used to calculate the components of the EOM, with {\tt lhs[0]}$=\frac{d \theta}{d u}$ and {\tt lhs[1]}$=\frac{d \zeta}{d u}$.
 
 
 
 \subsection{{\tt Axion} class}
 %
 The \cppin{mimes::Axion<LD,Solver,Method>} class is the class that combines all the others, and actually solves the axion EOM~\ref{eq:eom_sys}. Its header file is {\tt \mimes/src/Axion/AxionSolve.hpp}, and its constructor is
 %
 \begin{cpp}
  	template<class LD, const int Solver, class Method>
 	mimes::Axion< LD, Solver, Method<LD> >(LD theta_i, LD fa, LD umax, LD TSTOP, 
 	LD ratio_ini, unsigned int N_convergence_max, LD convergence_lim, 
 	std::string inputFile, AxionMass<LD> *axionMass, LD initial_step_size=1e-2, 
 	LD minimum_step_size=1e-8, LD maximum_step_size=1e-2, LD absolute_tolerance=1e-8, 
 	LD relative_tolerance=1e-8, LD beta=0.9, LD fac_max=1.2, LD fac_min=0.8, 
 	unsigned int maximum_No_steps=10000000)
 \end{cpp}
 %
 The various arguments are discussed in section~\refs{sec:cpp_first_example,sec:run_time_input}; and outlined in table~\ref{tab:run_time-input}.
 %
 
 The member function responsible for solving the EOM is
 %
 \begin{cpp}
 	template<class LD, const int Solver, class Method>
 	void mimes::Axion< LD, Solver, Method<LD> >::solveAxion()
 \end{cpp}
 %
 Once this function finishes, the results are stored in several member variables.
 
 The quantities $a/\ai, \ T, \ \theta, \ \zeta, \rho_a$, at the integration  steps are stored in
 %
 \begin{cpp}
 	template<class LD, const int Solver, class Method> 
 	std::vector< std::vector<LD> > mimes::Axion< LD, Solver, Method<LD> >::points
 \end{cpp}
 %
 
 The quantities $a/\ai, \ T, \ \theta, \ \zeta, \rho_a, \ J$, at the peaks of the oscillation are stored in 
 %
 \begin{cpp}
 	template<class LD, const int Solver, class Method> 
 	std::vector< std::vector<LD> > mimes::Axion< LD, Solver, Method<LD> >::peaks
 \end{cpp}
 %
 Note that these points are computed using linear interpolation between two integration points with a change in teh sign of $\zeta$.
 
 
 The local integration errors for $\theta$ and $\zeta$ are stored in
 %
 \begin{cpp}
 	template<class LD, const int Solver, class Method> 
 	std::vector<LD> mimes::Axion< LD, Solver, Method<LD> >::dtheta
 	
 	template<class LD, const int Solver, class Method> 
 	std::vector<LD> mimes::Axion< LD, Solver, Method<LD> >::dzeta
 \end{cpp}
 %
 
 Moreover, the oscillation temperature, $\Tosc$, and the corresponding values of $a/\ai$ and $\theta$ are given in
 %
 \begin{cpp}
 	template<class LD, const int Solver, class Method>
 	LD mimes::Axion< LD, Solver, Method<LD> >::T_osc
 	
 	template<class LD, const int Solver, class Method>
 	LD mimes::Axion< LD, Solver, Method<LD> >::a_osc
 
 	template<class LD, const int Solver, class Method>
 	LD mimes::Axion< LD, Solver, Method<LD> >::theta_osc
 \end{cpp}
 %
 
 Also, the entropy injection between the last peak ($T=T_{\rm peak}$) and today ($T=T_0$), $\gamma$ (defined as in \eqs{eq:entropy_injection_gamma}), is given in 
 %
 \begin{cpp}
 	template<class LD, const int Solver, class Method>
 	LD mimes::Axion< LD, Solver, Method<LD> >::gamma
 \end{cpp}
 
 
 
 We can set another initial condition, $\thetai$, using 
 %
 \begin{cpp}
 	template<class LD, const int Solver, class Method>
 	void mimes::Axion< LD, Solver, Method<LD> >::setTheta_i(LD theta_i)
 \end{cpp}
 %
 We should note that running this function all variables are cleared. So we lose all information about the last time {\tt axionSolve()} ran. 
 
 In case the mass of the axion is changed, we also need to remake  the interpolation (\ie run \cppin{mimes::AxionEOM::makeInt()}). This is done using
 %
 \begin{cpp}
 	template<class LD, const int Solver, class Method>
 	void mimes::Axion< LD, Solver, Method<LD> >::restart()
 \end{cpp}
 %
 Again, this function clears all member variables. So it should be used with caution.
 
 
 Finally, there is static \cppin{mimes::Cosmo<LD>} member variable
 %
 \begin{cpp}
 	template<class LD, const int Solver, class Method>
 	static mimes::Cosmo<LD> mimes::Axion< LD, Solver, Method<LD> >::plasma
 \end{cpp}
 %
 This variable can be used without an instance of the \cppin{mimes::Axion<LD,Solver,Method>} class.
 
 \section{\PY modules}\label{app:modules}
 \setcounter{equation}{0}
-\DK{Describe the modules.}
+
+The various \PY modules, classes, and functions are designed to work exactly in the same way as the ones in \CPP. All the modules are located in \pyin{src/interfacePY}, so it is helpful to add {\pyin src} path to the system path at the top of every script calling \mimes. This is done by adding
+%
+\begin{py}
+	from sys import path as sysPath
+	sysPath.append('path_to_src')
+\end{py}
+%
+After this line, the others can be included.
 
 
 
 \section{Utilities}\label{app:util}
 \setcounter{equation}{0}
 \DK{Describe {\tt FormatFile.sh} and {\tt timeit.sh}.}
 
 \section{Quick guide to user input}\label{app:usr_input}
 \setcounter{equation}{0}
 In table~\ref{tab:input}, we provide a reference for all the user input, and compile-time options.
 %
 \begin{table}[h!]
 	\centering
 	\begin{tabular}{l l}
 		\hline\\[-0.4cm]
 		\multicolumn{2}{c}{\bf User run-time input}  \\
 		\hline\\[-0.4cm]
 
 		{\tt theta\_i} & initial angle.  \\
 		\hline\\[-0.4cm]
 
 		{\tt fa} & the PQ scale.\\
 		\hline\\[-0.4cm]
 
 		{\tt umax } & Once $u=\log a/a_i>${\tt umax}, the integration stops. Typical value: $\sim 500$.\\
 		\hline\\[-0.4cm]
 
 		{\tt TSTOP} & Once $T<${\tt TSTOP}, integration stops. Typical value: $10^{-4}~\GeV$.\\
 		\hline\\[-0.4cm]
 
  		{\tt ratio\_ini}& Integration starts at $u$ with $3H/\maT \approx${\tt ratio\_ini}. Typical value: $\sim 10^{3}$.\\
 		\hline\\[-0.4cm]
 
 		\multirow{1}{4cm}{{\tt N\_convergence\_max} {\tt convergence\_lim}} & \multirow{1}{12cm}{Integration stops when  the relative difference 
 		between two consecutive peaks  is less than {\tt convergence\_lim} for {\tt N\_convergence\_max} 
 		consecutive peaks. } \\ \\ \\ 
 		\hline\\[-0.4cm]
 
 		{\tt inputFile} & \multirow{1}{12cm}{Relative (or absolute) path to a file that describes the cosmology. The columns should be: $u$ $T ~[\GeV]$ $\log H$, with acceding $u$. Entropy injection should have stopped before the lowest temperature of given in {\tt inputFile}.} \\ \\  \\ \\
 		\hline\\[-0.4cm]
 
 		{\tt axionMass} & \multirow{1}{12cm}{ Instance of \cppin{mimes::AxionMass<LD>} class. In \CPP this instance is passed as a pointer to the constructor
 		of the \cppin{mimes::Axion<LD,Solver,Method>} class, while in \PY it is simply passed as a variable.}\\ \\  \\ \\
 		\hline\\[-0.4cm]
 
 		{\tt initial\_stepsize} &  Initial step-size of the solver. Default value: $10^{-2}$.\\ 
 		\hline\\[-0.4cm]
 
 		{\tt minimum\_stepsize} & Lower limit of the step-size. Default value:  $10^{-8}$.\\
 		\hline\\[-0.4cm]
 
 		{\tt maximum\_stepsize} & Upper limit of the step-size. Default value:  $10^{-2}$.\\
 		\hline\\[-0.4cm]
 
 		{\tt absolute\_tolerance} & \multirow{1}{12cm}{Absolute tolerance of the RK solver	(see also table~\ref{tab:RK_mimes_params}).  Default value:  $10^{-8}$.}\\\\
 		\hline\\[-0.4cm]
 
 		{\tt relative\_tolerance} & \multirow{1}{12cm}{Relative tolerance of the RK solver	(see also table~\ref{tab:RK_mimes_params}).  Default value:  $10^{-8}$.}\\\\
 		\hline\\[-0.4cm]
 		
 		{\tt beta} & \multirow{1}{12cm}{Aggressiveness of the adaptation strategy	(see also table~\ref{tab:RK_mimes_params}).  Default value:  $0.9$.}\\\\
 		\hline\\[-0.4cm]
 
 		{\tt fac\_max}, {\tt fac\_min} &\multirow{1}{12cm}{The step-size does not change more than {\tt fac\_max} and less than {\tt fac\_min} within a trial step (see also table~\ref{tab:RK_mimes_params}). Default values: $1.2$ and $0.8$, respectively.} \\ \\ \\ 
 		\hline\\[-0.4cm]
 		
 		{\tt maximum\_No\_steps} & \multirow{1}{12cm}{If integration needs more than {\tt maximum\_No\_steps} integration stops. Default value: $10^7$.}\\\\
 		\hline\\[-0.4cm]
 	\end{tabular}
 	\caption{Table of run-time user input.}
 	\label{tab:run_time-input}
 \end{table}
 		
 \begin{table}[h!]
 	\centering
 	\begin{tabular}{l l}
 		\multicolumn{2}{c}{\bf Required data files, with corresponding variables in {\tt \mimes/Paths.mk}}  \\
 		\hline\\[-0.4cm]
 	
 		{\tt cosmoDat}& \multirow{1}{12cm}{Relative path to data file with $T$ (in $\GeV$), $\heff$, $\geff$. If the path changes one must run
 		{\tt bash configure.sh} and {\tt make}.}\\\\		
 		\hline\\[-0.4cm]
 
 		{\tt axMDat}& \multirow{1}{12cm}{Relative path to data file with $T$ (in $\GeV$), $\chi$ (defined from \eqs{eq:axion_mass_def}). If the path changes one must run {\tt bash configure.sh} and {\tt make}. This variable can be omitted, since the user has to define an AxionMass instance.}\\\\\\\\		
 		\hline\\[-0.4cm]
 		
 		{\tt anFDat}& \multirow{1}{12cm}{Relative path to data file with $\thetamax$, $f(\thetamax)$. If the path changes one must run
 		{\tt bash configure.sh} and {\tt make}.}\\\\		
 		\hline\\[-0.4cm]
 
 
 
 	\end{tabular}
 	\caption{Paths to the required data files.}
 \label{tab:input}
 \end{table}
 
 
 \begin{table}[h!]
 	\centering
 	\begin{tabular}{l l}
 		\multicolumn{2}{c}{\bf User compile-time input}  \\
 		\hline\\[-0.4cm]
 
 		{\tt rootDir}& \multirow{1}{12cm}{The relative path of root directory of \mimes. Relevant only when compiling using {\tt make}. Available in all {\tt Definitions.mk}.}\\\\		
 		\hline\\[-0.4cm]
 		
 		{\tt LONG}& \multirow{1}{12cm}{{\tt long} for {\tt long double }or empty for {\tt double}. This should be a macro at the top of the {\tt .cpp} file. Available in all {\tt Definitions.mk}.}\\\\		
 		\hline\\[-0.4cm]
 
 		{\tt LONGpy}& \multirow{1}{12cm}{{\tt long} or empty. Same as {\tt LONG}, applies in the python modules. Available in {\tt \mimes/Definitions.mk}.}\\\\		
 		\hline\\[-0.4cm]
 
 		{\tt SOLVER}& \multirow{1}{12cm}{In order to use a Rosenbrock method {\tt SOLVER}=$1$. For explicit RK method, {\tt SOLVER}=$1$. 
 		This should be a macro defined before we include {\tt \mimes/src/Axion/AxionSolve.hpp}. Therefore it is preferable to 
 		define it with the compiler flag {\tt -DSOLVER=}$1$ or $2$. The corresponding variable in {\tt \mimes/Definitions.mk} applies to the python modules. The variable in {\tt \mimes/UserSpace/Cpp/Axion/Definitions.mk} applies to the example in the same directory.}\\\\\\\\\\\\\\		
 		\hline\\[-0.4cm]
 
 		{\tt METHOD}& \multirow{1}{12cm}{Depending of the solver, this macro should name one of its available methods. 
 		For {\tt SOLVER}=$1$, {\tt METHOD}=RODASPR2 (fourth order) or ROS34PW2 (third order). 	
 		For {\tt SOLVER}=$1$, {\tt METHOD}=DormandPrince (seventh order). This should be a macro defined before we include {\tt \mimes/src/Axion/AxionSolve.hpp}. Therefore it is preferable to 
 		define it with the compiler flag {\tt -DMETHOD=}RODASPR2, ROS34PW2, or DormandPrince.
 		The corresponding variable in {\tt \mimes/Definitions.mk} applies to the python modules. The variable in {\tt \mimes/UserSpace/Cpp/Axion/Definitions.mk} applies to the example in the same directory.}\\\\\\\\\\\\\\\\\\\\ 		
 		\hline\\[-0.4cm]
 		
 		\multicolumn{2}{c}{\bf Compiler options}  \\
 		\hline\\[-0.4cm]
 		
 		{\tt CC} &  \multirow{1}{12cm}{The preferred \CPP compiler ({\tt g++} by default). Corresponding variable in all {\tt Definitions.mk} files.} \\\\
 		\hline\\[-0.4cm]
 		
 		{\tt OPT} &  \multirow{1}{12cm}{Optimization level of the compiler. Available options {\tt OPT}={\tt O1}, {\tt O2}, {\tt O3} (be default). By Corresponding variable in all {\tt Definitions.mk} files.}   \\\\
 		\hline\\[-0.4cm]
 
 	\end{tabular}
 	\caption{User compile-time input. These are available in the various {\tt Definitions.mk} files, which are used when compiling using {\tt make}.}
 	\label{tab:compile_time-input}
 \end{table}
 
 
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \newpage
 \bibliography{refs}{}
 \bibliographystyle{JHEP}                        
 
 \end{document}
diff --git a/UserSpace/JupyterNotebooks/AnharmonicFactor.ipynb b/UserSpace/JupyterNotebooks/AnharmonicFactor.ipynb
index ceb2dfd..8293f86 100755
--- a/UserSpace/JupyterNotebooks/AnharmonicFactor.ipynb
+++ b/UserSpace/JupyterNotebooks/AnharmonicFactor.ipynb
@@ -1,1091 +1,1108 @@
 {
  "cells": [
   {
    "cell_type": "code",
    "execution_count": 1,
    "metadata": {},
    "outputs": [],
    "source": [
     "import numpy as np#you usually need numpy\n",
     "\n",
     "#---these are for plots---#\n",
     "import matplotlib\n",
     "matplotlib.use('nbAgg')\n",
     "import matplotlib.pyplot as plt\n",
     "\n",
     "plt.rcParams['font.size']=16\n",
     "plt.rcParams['font.family']='dejavu sans'\n",
     "\n",
     "plt.rcParams['mathtext.fontset']='stix'\n",
     "plt.rcParams['mathtext.rm']='custom'\n",
     "plt.rcParams['mathtext.it']='stix:italic'\n",
     "plt.rcParams['mathtext.bf']='stix:bold'\n",
     "#-------------------------#"
    ]
   },
   {
    "cell_type": "code",
    "execution_count": 2,
    "metadata": {},
    "outputs": [],
    "source": [
     "#load the module\n",
     "from sys import path as sysPath\n",
-    "from os import path as osPath\n",
-    "sysPath.append(osPath.join(osPath.dirname('./'), '../../src'))\n",
+    "sysPath.append('../../src')\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "#load the module\n",
+    "from sys import path as sysPath\n",
+    "sysPath.append('../../src')\n",
     "\n",
     "from interfacePy.AnharmonicFactor import anharmonicFactor #load the anharmonicFactor function form the AnharmonicFactor module\n",
     "from interfacePy.FT import FT #easy tick formatting\n",
     "\n"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 3,
+   "execution_count": 4,
    "metadata": {},
    "outputs": [
     {
      "data": {
       "application/javascript": [
        "/* Put everything inside the global mpl namespace */\n",
        "/* global mpl */\n",
        "window.mpl = {};\n",
        "\n",
        "mpl.get_websocket_type = function () {\n",
        "    if (typeof WebSocket !== 'undefined') {\n",
        "        return WebSocket;\n",
        "    } else if (typeof MozWebSocket !== 'undefined') {\n",
        "        return MozWebSocket;\n",
        "    } else {\n",
        "        alert(\n",
        "            'Your browser does not have WebSocket support. ' +\n",
        "                'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
        "                'Firefox 4 and 5 are also supported but you ' +\n",
        "                'have to enable WebSockets in about:config.'\n",
        "        );\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n",
        "    this.id = figure_id;\n",
        "\n",
        "    this.ws = websocket;\n",
        "\n",
        "    this.supports_binary = this.ws.binaryType !== undefined;\n",
        "\n",
        "    if (!this.supports_binary) {\n",
        "        var warnings = document.getElementById('mpl-warnings');\n",
        "        if (warnings) {\n",
        "            warnings.style.display = 'block';\n",
        "            warnings.textContent =\n",
        "                'This browser does not support binary websocket messages. ' +\n",
        "                'Performance may be slow.';\n",
        "        }\n",
        "    }\n",
        "\n",
        "    this.imageObj = new Image();\n",
        "\n",
        "    this.context = undefined;\n",
        "    this.message = undefined;\n",
        "    this.canvas = undefined;\n",
        "    this.rubberband_canvas = undefined;\n",
        "    this.rubberband_context = undefined;\n",
        "    this.format_dropdown = undefined;\n",
        "\n",
        "    this.image_mode = 'full';\n",
        "\n",
        "    this.root = document.createElement('div');\n",
        "    this.root.setAttribute('style', 'display: inline-block');\n",
        "    this._root_extra_style(this.root);\n",
        "\n",
        "    parent_element.appendChild(this.root);\n",
        "\n",
        "    this._init_header(this);\n",
        "    this._init_canvas(this);\n",
        "    this._init_toolbar(this);\n",
        "\n",
        "    var fig = this;\n",
        "\n",
        "    this.waiting = false;\n",
        "\n",
        "    this.ws.onopen = function () {\n",
        "        fig.send_message('supports_binary', { value: fig.supports_binary });\n",
        "        fig.send_message('send_image_mode', {});\n",
        "        if (fig.ratio !== 1) {\n",
        "            fig.send_message('set_dpi_ratio', { dpi_ratio: fig.ratio });\n",
        "        }\n",
        "        fig.send_message('refresh', {});\n",
        "    };\n",
        "\n",
        "    this.imageObj.onload = function () {\n",
        "        if (fig.image_mode === 'full') {\n",
        "            // Full images could contain transparency (where diff images\n",
        "            // almost always do), so we need to clear the canvas so that\n",
        "            // there is no ghosting.\n",
        "            fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
        "        }\n",
        "        fig.context.drawImage(fig.imageObj, 0, 0);\n",
        "    };\n",
        "\n",
        "    this.imageObj.onunload = function () {\n",
        "        fig.ws.close();\n",
        "    };\n",
        "\n",
        "    this.ws.onmessage = this._make_on_message_function(this);\n",
        "\n",
        "    this.ondownload = ondownload;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._init_header = function () {\n",
        "    var titlebar = document.createElement('div');\n",
        "    titlebar.classList =\n",
        "        'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n",
        "    var titletext = document.createElement('div');\n",
        "    titletext.classList = 'ui-dialog-title';\n",
        "    titletext.setAttribute(\n",
        "        'style',\n",
        "        'width: 100%; text-align: center; padding: 3px;'\n",
        "    );\n",
        "    titlebar.appendChild(titletext);\n",
        "    this.root.appendChild(titlebar);\n",
        "    this.header = titletext;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n",
        "\n",
        "mpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n",
        "\n",
        "mpl.figure.prototype._init_canvas = function () {\n",
        "    var fig = this;\n",
        "\n",
        "    var canvas_div = (this.canvas_div = document.createElement('div'));\n",
        "    canvas_div.setAttribute(\n",
        "        'style',\n",
        "        'border: 1px solid #ddd;' +\n",
        "            'box-sizing: content-box;' +\n",
        "            'clear: both;' +\n",
        "            'min-height: 1px;' +\n",
        "            'min-width: 1px;' +\n",
        "            'outline: 0;' +\n",
        "            'overflow: hidden;' +\n",
        "            'position: relative;' +\n",
        "            'resize: both;'\n",
        "    );\n",
        "\n",
        "    function on_keyboard_event_closure(name) {\n",
        "        return function (event) {\n",
        "            return fig.key_event(event, name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    canvas_div.addEventListener(\n",
        "        'keydown',\n",
        "        on_keyboard_event_closure('key_press')\n",
        "    );\n",
        "    canvas_div.addEventListener(\n",
        "        'keyup',\n",
        "        on_keyboard_event_closure('key_release')\n",
        "    );\n",
        "\n",
        "    this._canvas_extra_style(canvas_div);\n",
        "    this.root.appendChild(canvas_div);\n",
        "\n",
        "    var canvas = (this.canvas = document.createElement('canvas'));\n",
        "    canvas.classList.add('mpl-canvas');\n",
        "    canvas.setAttribute('style', 'box-sizing: content-box;');\n",
        "\n",
        "    this.context = canvas.getContext('2d');\n",
        "\n",
        "    var backingStore =\n",
        "        this.context.backingStorePixelRatio ||\n",
        "        this.context.webkitBackingStorePixelRatio ||\n",
        "        this.context.mozBackingStorePixelRatio ||\n",
        "        this.context.msBackingStorePixelRatio ||\n",
        "        this.context.oBackingStorePixelRatio ||\n",
        "        this.context.backingStorePixelRatio ||\n",
        "        1;\n",
        "\n",
        "    this.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
        "\n",
        "    var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n",
        "        'canvas'\n",
        "    ));\n",
        "    rubberband_canvas.setAttribute(\n",
        "        'style',\n",
        "        'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n",
        "    );\n",
        "\n",
        "    // Apply a ponyfill if ResizeObserver is not implemented by browser.\n",
        "    if (this.ResizeObserver === undefined) {\n",
        "        if (window.ResizeObserver !== undefined) {\n",
        "            this.ResizeObserver = window.ResizeObserver;\n",
        "        } else {\n",
        "            var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n",
        "            this.ResizeObserver = obs.ResizeObserver;\n",
        "        }\n",
        "    }\n",
        "\n",
        "    this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n",
        "        var nentries = entries.length;\n",
        "        for (var i = 0; i < nentries; i++) {\n",
        "            var entry = entries[i];\n",
        "            var width, height;\n",
        "            if (entry.contentBoxSize) {\n",
        "                if (entry.contentBoxSize instanceof Array) {\n",
        "                    // Chrome 84 implements new version of spec.\n",
        "                    width = entry.contentBoxSize[0].inlineSize;\n",
        "                    height = entry.contentBoxSize[0].blockSize;\n",
        "                } else {\n",
        "                    // Firefox implements old version of spec.\n",
        "                    width = entry.contentBoxSize.inlineSize;\n",
        "                    height = entry.contentBoxSize.blockSize;\n",
        "                }\n",
        "            } else {\n",
        "                // Chrome <84 implements even older version of spec.\n",
        "                width = entry.contentRect.width;\n",
        "                height = entry.contentRect.height;\n",
        "            }\n",
        "\n",
        "            // Keep the size of the canvas and rubber band canvas in sync with\n",
        "            // the canvas container.\n",
        "            if (entry.devicePixelContentBoxSize) {\n",
        "                // Chrome 84 implements new version of spec.\n",
        "                canvas.setAttribute(\n",
        "                    'width',\n",
        "                    entry.devicePixelContentBoxSize[0].inlineSize\n",
        "                );\n",
        "                canvas.setAttribute(\n",
        "                    'height',\n",
        "                    entry.devicePixelContentBoxSize[0].blockSize\n",
        "                );\n",
        "            } else {\n",
        "                canvas.setAttribute('width', width * fig.ratio);\n",
        "                canvas.setAttribute('height', height * fig.ratio);\n",
        "            }\n",
        "            canvas.setAttribute(\n",
        "                'style',\n",
        "                'width: ' + width + 'px; height: ' + height + 'px;'\n",
        "            );\n",
        "\n",
        "            rubberband_canvas.setAttribute('width', width);\n",
        "            rubberband_canvas.setAttribute('height', height);\n",
        "\n",
        "            // And update the size in Python. We ignore the initial 0/0 size\n",
        "            // that occurs as the element is placed into the DOM, which should\n",
        "            // otherwise not happen due to the minimum size styling.\n",
        "            if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n",
        "                fig.request_resize(width, height);\n",
        "            }\n",
        "        }\n",
        "    });\n",
        "    this.resizeObserverInstance.observe(canvas_div);\n",
        "\n",
        "    function on_mouse_event_closure(name) {\n",
        "        return function (event) {\n",
        "            return fig.mouse_event(event, name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mousedown',\n",
        "        on_mouse_event_closure('button_press')\n",
        "    );\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mouseup',\n",
        "        on_mouse_event_closure('button_release')\n",
        "    );\n",
        "    // Throttle sequential mouse events to 1 every 20ms.\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mousemove',\n",
        "        on_mouse_event_closure('motion_notify')\n",
        "    );\n",
        "\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mouseenter',\n",
        "        on_mouse_event_closure('figure_enter')\n",
        "    );\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mouseleave',\n",
        "        on_mouse_event_closure('figure_leave')\n",
        "    );\n",
        "\n",
        "    canvas_div.addEventListener('wheel', function (event) {\n",
        "        if (event.deltaY < 0) {\n",
        "            event.step = 1;\n",
        "        } else {\n",
        "            event.step = -1;\n",
        "        }\n",
        "        on_mouse_event_closure('scroll')(event);\n",
        "    });\n",
        "\n",
        "    canvas_div.appendChild(canvas);\n",
        "    canvas_div.appendChild(rubberband_canvas);\n",
        "\n",
        "    this.rubberband_context = rubberband_canvas.getContext('2d');\n",
        "    this.rubberband_context.strokeStyle = '#000000';\n",
        "\n",
        "    this._resize_canvas = function (width, height, forward) {\n",
        "        if (forward) {\n",
        "            canvas_div.style.width = width + 'px';\n",
        "            canvas_div.style.height = height + 'px';\n",
        "        }\n",
        "    };\n",
        "\n",
        "    // Disable right mouse context menu.\n",
        "    this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n",
        "        event.preventDefault();\n",
        "        return false;\n",
        "    });\n",
        "\n",
        "    function set_focus() {\n",
        "        canvas.focus();\n",
        "        canvas_div.focus();\n",
        "    }\n",
        "\n",
        "    window.setTimeout(set_focus, 100);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._init_toolbar = function () {\n",
        "    var fig = this;\n",
        "\n",
        "    var toolbar = document.createElement('div');\n",
        "    toolbar.classList = 'mpl-toolbar';\n",
        "    this.root.appendChild(toolbar);\n",
        "\n",
        "    function on_click_closure(name) {\n",
        "        return function (_event) {\n",
        "            return fig.toolbar_button_onclick(name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    function on_mouseover_closure(tooltip) {\n",
        "        return function (event) {\n",
        "            if (!event.currentTarget.disabled) {\n",
        "                return fig.toolbar_button_onmouseover(tooltip);\n",
        "            }\n",
        "        };\n",
        "    }\n",
        "\n",
        "    fig.buttons = {};\n",
        "    var buttonGroup = document.createElement('div');\n",
        "    buttonGroup.classList = 'mpl-button-group';\n",
        "    for (var toolbar_ind in mpl.toolbar_items) {\n",
        "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
        "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
        "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
        "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
        "\n",
        "        if (!name) {\n",
        "            /* Instead of a spacer, we start a new button group. */\n",
        "            if (buttonGroup.hasChildNodes()) {\n",
        "                toolbar.appendChild(buttonGroup);\n",
        "            }\n",
        "            buttonGroup = document.createElement('div');\n",
        "            buttonGroup.classList = 'mpl-button-group';\n",
        "            continue;\n",
        "        }\n",
        "\n",
        "        var button = (fig.buttons[name] = document.createElement('button'));\n",
        "        button.classList = 'mpl-widget';\n",
        "        button.setAttribute('role', 'button');\n",
        "        button.setAttribute('aria-disabled', 'false');\n",
        "        button.addEventListener('click', on_click_closure(method_name));\n",
        "        button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
        "\n",
        "        var icon_img = document.createElement('img');\n",
        "        icon_img.src = '_images/' + image + '.png';\n",
        "        icon_img.srcset = '_images/' + image + '_large.png 2x';\n",
        "        icon_img.alt = tooltip;\n",
        "        button.appendChild(icon_img);\n",
        "\n",
        "        buttonGroup.appendChild(button);\n",
        "    }\n",
        "\n",
        "    if (buttonGroup.hasChildNodes()) {\n",
        "        toolbar.appendChild(buttonGroup);\n",
        "    }\n",
        "\n",
        "    var fmt_picker = document.createElement('select');\n",
        "    fmt_picker.classList = 'mpl-widget';\n",
        "    toolbar.appendChild(fmt_picker);\n",
        "    this.format_dropdown = fmt_picker;\n",
        "\n",
        "    for (var ind in mpl.extensions) {\n",
        "        var fmt = mpl.extensions[ind];\n",
        "        var option = document.createElement('option');\n",
        "        option.selected = fmt === mpl.default_extension;\n",
        "        option.innerHTML = fmt;\n",
        "        fmt_picker.appendChild(option);\n",
        "    }\n",
        "\n",
        "    var status_bar = document.createElement('span');\n",
        "    status_bar.classList = 'mpl-message';\n",
        "    toolbar.appendChild(status_bar);\n",
        "    this.message = status_bar;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n",
        "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
        "    // which will in turn request a refresh of the image.\n",
        "    this.send_message('resize', { width: x_pixels, height: y_pixels });\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.send_message = function (type, properties) {\n",
        "    properties['type'] = type;\n",
        "    properties['figure_id'] = this.id;\n",
        "    this.ws.send(JSON.stringify(properties));\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.send_draw_message = function () {\n",
        "    if (!this.waiting) {\n",
        "        this.waiting = true;\n",
        "        this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
        "    var format_dropdown = fig.format_dropdown;\n",
        "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
        "    fig.ondownload(fig, format);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_resize = function (fig, msg) {\n",
        "    var size = msg['size'];\n",
        "    if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n",
        "        fig._resize_canvas(size[0], size[1], msg['forward']);\n",
        "        fig.send_message('refresh', {});\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_rubberband = function (fig, msg) {\n",
        "    var x0 = msg['x0'] / fig.ratio;\n",
        "    var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n",
        "    var x1 = msg['x1'] / fig.ratio;\n",
        "    var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n",
        "    x0 = Math.floor(x0) + 0.5;\n",
        "    y0 = Math.floor(y0) + 0.5;\n",
        "    x1 = Math.floor(x1) + 0.5;\n",
        "    y1 = Math.floor(y1) + 0.5;\n",
        "    var min_x = Math.min(x0, x1);\n",
        "    var min_y = Math.min(y0, y1);\n",
        "    var width = Math.abs(x1 - x0);\n",
        "    var height = Math.abs(y1 - y0);\n",
        "\n",
        "    fig.rubberband_context.clearRect(\n",
        "        0,\n",
        "        0,\n",
        "        fig.canvas.width / fig.ratio,\n",
        "        fig.canvas.height / fig.ratio\n",
        "    );\n",
        "\n",
        "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_figure_label = function (fig, msg) {\n",
        "    // Updates the figure title.\n",
        "    fig.header.textContent = msg['label'];\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_cursor = function (fig, msg) {\n",
        "    var cursor = msg['cursor'];\n",
        "    switch (cursor) {\n",
        "        case 0:\n",
        "            cursor = 'pointer';\n",
        "            break;\n",
        "        case 1:\n",
        "            cursor = 'default';\n",
        "            break;\n",
        "        case 2:\n",
        "            cursor = 'crosshair';\n",
        "            break;\n",
        "        case 3:\n",
        "            cursor = 'move';\n",
        "            break;\n",
        "    }\n",
        "    fig.rubberband_canvas.style.cursor = cursor;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_message = function (fig, msg) {\n",
        "    fig.message.textContent = msg['message'];\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_draw = function (fig, _msg) {\n",
        "    // Request the server to send over a new figure.\n",
        "    fig.send_draw_message();\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_image_mode = function (fig, msg) {\n",
        "    fig.image_mode = msg['mode'];\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n",
        "    for (var key in msg) {\n",
        "        if (!(key in fig.buttons)) {\n",
        "            continue;\n",
        "        }\n",
        "        fig.buttons[key].disabled = !msg[key];\n",
        "        fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n",
        "    if (msg['mode'] === 'PAN') {\n",
        "        fig.buttons['Pan'].classList.add('active');\n",
        "        fig.buttons['Zoom'].classList.remove('active');\n",
        "    } else if (msg['mode'] === 'ZOOM') {\n",
        "        fig.buttons['Pan'].classList.remove('active');\n",
        "        fig.buttons['Zoom'].classList.add('active');\n",
        "    } else {\n",
        "        fig.buttons['Pan'].classList.remove('active');\n",
        "        fig.buttons['Zoom'].classList.remove('active');\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.updated_canvas_event = function () {\n",
        "    // Called whenever the canvas gets updated.\n",
        "    this.send_message('ack', {});\n",
        "};\n",
        "\n",
        "// A function to construct a web socket function for onmessage handling.\n",
        "// Called in the figure constructor.\n",
        "mpl.figure.prototype._make_on_message_function = function (fig) {\n",
        "    return function socket_on_message(evt) {\n",
        "        if (evt.data instanceof Blob) {\n",
        "            /* FIXME: We get \"Resource interpreted as Image but\n",
        "             * transferred with MIME type text/plain:\" errors on\n",
        "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
        "             * to be part of the websocket stream */\n",
        "            evt.data.type = 'image/png';\n",
        "\n",
        "            /* Free the memory for the previous frames */\n",
        "            if (fig.imageObj.src) {\n",
        "                (window.URL || window.webkitURL).revokeObjectURL(\n",
        "                    fig.imageObj.src\n",
        "                );\n",
        "            }\n",
        "\n",
        "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
        "                evt.data\n",
        "            );\n",
        "            fig.updated_canvas_event();\n",
        "            fig.waiting = false;\n",
        "            return;\n",
        "        } else if (\n",
        "            typeof evt.data === 'string' &&\n",
        "            evt.data.slice(0, 21) === 'data:image/png;base64'\n",
        "        ) {\n",
        "            fig.imageObj.src = evt.data;\n",
        "            fig.updated_canvas_event();\n",
        "            fig.waiting = false;\n",
        "            return;\n",
        "        }\n",
        "\n",
        "        var msg = JSON.parse(evt.data);\n",
        "        var msg_type = msg['type'];\n",
        "\n",
        "        // Call the  \"handle_{type}\" callback, which takes\n",
        "        // the figure and JSON message as its only arguments.\n",
        "        try {\n",
        "            var callback = fig['handle_' + msg_type];\n",
        "        } catch (e) {\n",
        "            console.log(\n",
        "                \"No handler for the '\" + msg_type + \"' message type: \",\n",
        "                msg\n",
        "            );\n",
        "            return;\n",
        "        }\n",
        "\n",
        "        if (callback) {\n",
        "            try {\n",
        "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
        "                callback(fig, msg);\n",
        "            } catch (e) {\n",
        "                console.log(\n",
        "                    \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n",
        "                    e,\n",
        "                    e.stack,\n",
        "                    msg\n",
        "                );\n",
        "            }\n",
        "        }\n",
        "    };\n",
        "};\n",
        "\n",
        "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
        "mpl.findpos = function (e) {\n",
        "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
        "    var targ;\n",
        "    if (!e) {\n",
        "        e = window.event;\n",
        "    }\n",
        "    if (e.target) {\n",
        "        targ = e.target;\n",
        "    } else if (e.srcElement) {\n",
        "        targ = e.srcElement;\n",
        "    }\n",
        "    if (targ.nodeType === 3) {\n",
        "        // defeat Safari bug\n",
        "        targ = targ.parentNode;\n",
        "    }\n",
        "\n",
        "    // pageX,Y are the mouse positions relative to the document\n",
        "    var boundingRect = targ.getBoundingClientRect();\n",
        "    var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n",
        "    var y = e.pageY - (boundingRect.top + document.body.scrollTop);\n",
        "\n",
        "    return { x: x, y: y };\n",
        "};\n",
        "\n",
        "/*\n",
        " * return a copy of an object with only non-object keys\n",
        " * we need this to avoid circular references\n",
        " * http://stackoverflow.com/a/24161582/3208463\n",
        " */\n",
        "function simpleKeys(original) {\n",
        "    return Object.keys(original).reduce(function (obj, key) {\n",
        "        if (typeof original[key] !== 'object') {\n",
        "            obj[key] = original[key];\n",
        "        }\n",
        "        return obj;\n",
        "    }, {});\n",
        "}\n",
        "\n",
        "mpl.figure.prototype.mouse_event = function (event, name) {\n",
        "    var canvas_pos = mpl.findpos(event);\n",
        "\n",
        "    if (name === 'button_press') {\n",
        "        this.canvas.focus();\n",
        "        this.canvas_div.focus();\n",
        "    }\n",
        "\n",
        "    var x = canvas_pos.x * this.ratio;\n",
        "    var y = canvas_pos.y * this.ratio;\n",
        "\n",
        "    this.send_message(name, {\n",
        "        x: x,\n",
        "        y: y,\n",
        "        button: event.button,\n",
        "        step: event.step,\n",
        "        guiEvent: simpleKeys(event),\n",
        "    });\n",
        "\n",
        "    /* This prevents the web browser from automatically changing to\n",
        "     * the text insertion cursor when the button is pressed.  We want\n",
        "     * to control all of the cursor setting manually through the\n",
        "     * 'cursor' event from matplotlib */\n",
        "    event.preventDefault();\n",
        "    return false;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._key_event_extra = function (_event, _name) {\n",
        "    // Handle any extra behaviour associated with a key event\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.key_event = function (event, name) {\n",
        "    // Prevent repeat events\n",
        "    if (name === 'key_press') {\n",
        "        if (event.which === this._key) {\n",
        "            return;\n",
        "        } else {\n",
        "            this._key = event.which;\n",
        "        }\n",
        "    }\n",
        "    if (name === 'key_release') {\n",
        "        this._key = null;\n",
        "    }\n",
        "\n",
        "    var value = '';\n",
        "    if (event.ctrlKey && event.which !== 17) {\n",
        "        value += 'ctrl+';\n",
        "    }\n",
        "    if (event.altKey && event.which !== 18) {\n",
        "        value += 'alt+';\n",
        "    }\n",
        "    if (event.shiftKey && event.which !== 16) {\n",
        "        value += 'shift+';\n",
        "    }\n",
        "\n",
        "    value += 'k';\n",
        "    value += event.which.toString();\n",
        "\n",
        "    this._key_event_extra(event, name);\n",
        "\n",
        "    this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n",
        "    return false;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.toolbar_button_onclick = function (name) {\n",
        "    if (name === 'download') {\n",
        "        this.handle_save(this, null);\n",
        "    } else {\n",
        "        this.send_message('toolbar_button', { name: name });\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n",
        "    this.message.textContent = tooltip;\n",
        "};\n",
        "\n",
        "///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n",
        "// prettier-ignore\n",
        "var _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\n",
        "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
        "\n",
        "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
        "\n",
        "mpl.default_extension = \"png\";/* global mpl */\n",
        "\n",
        "var comm_websocket_adapter = function (comm) {\n",
        "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
        "    // object with the appropriate methods. Currently this is a non binary\n",
        "    // socket, so there is still some room for performance tuning.\n",
        "    var ws = {};\n",
        "\n",
        "    ws.close = function () {\n",
        "        comm.close();\n",
        "    };\n",
        "    ws.send = function (m) {\n",
        "        //console.log('sending', m);\n",
        "        comm.send(m);\n",
        "    };\n",
        "    // Register the callback with on_msg.\n",
        "    comm.on_msg(function (msg) {\n",
        "        //console.log('receiving', msg['content']['data'], msg);\n",
        "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
        "        ws.onmessage(msg['content']['data']);\n",
        "    });\n",
        "    return ws;\n",
        "};\n",
        "\n",
        "mpl.mpl_figure_comm = function (comm, msg) {\n",
        "    // This is the function which gets called when the mpl process\n",
        "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
        "\n",
        "    var id = msg.content.data.id;\n",
        "    // Get hold of the div created by the display call when the Comm\n",
        "    // socket was opened in Python.\n",
        "    var element = document.getElementById(id);\n",
        "    var ws_proxy = comm_websocket_adapter(comm);\n",
        "\n",
        "    function ondownload(figure, _format) {\n",
        "        window.open(figure.canvas.toDataURL());\n",
        "    }\n",
        "\n",
        "    var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n",
        "\n",
        "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
        "    // web socket which is closed, not our websocket->open comm proxy.\n",
        "    ws_proxy.onopen();\n",
        "\n",
        "    fig.parent_element = element;\n",
        "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
        "    if (!fig.cell_info) {\n",
        "        console.error('Failed to find cell for figure', id, fig);\n",
        "        return;\n",
        "    }\n",
        "    fig.cell_info[0].output_area.element.on(\n",
        "        'cleared',\n",
        "        { fig: fig },\n",
        "        fig._remove_fig_handler\n",
        "    );\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_close = function (fig, msg) {\n",
        "    var width = fig.canvas.width / fig.ratio;\n",
        "    fig.cell_info[0].output_area.element.off(\n",
        "        'cleared',\n",
        "        fig._remove_fig_handler\n",
        "    );\n",
        "    fig.resizeObserverInstance.unobserve(fig.canvas_div);\n",
        "\n",
        "    // Update the output cell to use the data from the current canvas.\n",
        "    fig.push_to_output();\n",
        "    var dataURL = fig.canvas.toDataURL();\n",
        "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
        "    // the notebook keyboard shortcuts fail.\n",
        "    IPython.keyboard_manager.enable();\n",
        "    fig.parent_element.innerHTML =\n",
        "        '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
        "    fig.close_ws(fig, msg);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.close_ws = function (fig, msg) {\n",
        "    fig.send_message('closing', msg);\n",
        "    // fig.ws.close()\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.push_to_output = function (_remove_interactive) {\n",
        "    // Turn the data on the canvas into data in the output cell.\n",
        "    var width = this.canvas.width / this.ratio;\n",
        "    var dataURL = this.canvas.toDataURL();\n",
        "    this.cell_info[1]['text/html'] =\n",
        "        '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.updated_canvas_event = function () {\n",
        "    // Tell IPython that the notebook contents must change.\n",
        "    IPython.notebook.set_dirty(true);\n",
        "    this.send_message('ack', {});\n",
        "    var fig = this;\n",
        "    // Wait a second, then push the new image to the DOM so\n",
        "    // that it is saved nicely (might be nice to debounce this).\n",
        "    setTimeout(function () {\n",
        "        fig.push_to_output();\n",
        "    }, 1000);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._init_toolbar = function () {\n",
        "    var fig = this;\n",
        "\n",
        "    var toolbar = document.createElement('div');\n",
        "    toolbar.classList = 'btn-toolbar';\n",
        "    this.root.appendChild(toolbar);\n",
        "\n",
        "    function on_click_closure(name) {\n",
        "        return function (_event) {\n",
        "            return fig.toolbar_button_onclick(name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    function on_mouseover_closure(tooltip) {\n",
        "        return function (event) {\n",
        "            if (!event.currentTarget.disabled) {\n",
        "                return fig.toolbar_button_onmouseover(tooltip);\n",
        "            }\n",
        "        };\n",
        "    }\n",
        "\n",
        "    fig.buttons = {};\n",
        "    var buttonGroup = document.createElement('div');\n",
        "    buttonGroup.classList = 'btn-group';\n",
        "    var button;\n",
        "    for (var toolbar_ind in mpl.toolbar_items) {\n",
        "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
        "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
        "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
        "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
        "\n",
        "        if (!name) {\n",
        "            /* Instead of a spacer, we start a new button group. */\n",
        "            if (buttonGroup.hasChildNodes()) {\n",
        "                toolbar.appendChild(buttonGroup);\n",
        "            }\n",
        "            buttonGroup = document.createElement('div');\n",
        "            buttonGroup.classList = 'btn-group';\n",
        "            continue;\n",
        "        }\n",
        "\n",
        "        button = fig.buttons[name] = document.createElement('button');\n",
        "        button.classList = 'btn btn-default';\n",
        "        button.href = '#';\n",
        "        button.title = name;\n",
        "        button.innerHTML = '<i class=\"fa ' + image + ' fa-lg\"></i>';\n",
        "        button.addEventListener('click', on_click_closure(method_name));\n",
        "        button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
        "        buttonGroup.appendChild(button);\n",
        "    }\n",
        "\n",
        "    if (buttonGroup.hasChildNodes()) {\n",
        "        toolbar.appendChild(buttonGroup);\n",
        "    }\n",
        "\n",
        "    // Add the status bar.\n",
        "    var status_bar = document.createElement('span');\n",
        "    status_bar.classList = 'mpl-message pull-right';\n",
        "    toolbar.appendChild(status_bar);\n",
        "    this.message = status_bar;\n",
        "\n",
        "    // Add the close button to the window.\n",
        "    var buttongrp = document.createElement('div');\n",
        "    buttongrp.classList = 'btn-group inline pull-right';\n",
        "    button = document.createElement('button');\n",
        "    button.classList = 'btn btn-mini btn-primary';\n",
        "    button.href = '#';\n",
        "    button.title = 'Stop Interaction';\n",
        "    button.innerHTML = '<i class=\"fa fa-power-off icon-remove icon-large\"></i>';\n",
        "    button.addEventListener('click', function (_evt) {\n",
        "        fig.handle_close(fig, {});\n",
        "    });\n",
        "    button.addEventListener(\n",
        "        'mouseover',\n",
        "        on_mouseover_closure('Stop Interaction')\n",
        "    );\n",
        "    buttongrp.appendChild(button);\n",
        "    var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n",
        "    titlebar.insertBefore(buttongrp, titlebar.firstChild);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._remove_fig_handler = function (event) {\n",
        "    var fig = event.data.fig;\n",
        "    if (event.target !== this) {\n",
        "        // Ignore bubbled events from children.\n",
        "        return;\n",
        "    }\n",
        "    fig.close_ws(fig, {});\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._root_extra_style = function (el) {\n",
        "    el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._canvas_extra_style = function (el) {\n",
        "    // this is important to make the div 'focusable\n",
        "    el.setAttribute('tabindex', 0);\n",
        "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
        "    // off when our div gets focus\n",
        "\n",
        "    // location in version 3\n",
        "    if (IPython.notebook.keyboard_manager) {\n",
        "        IPython.notebook.keyboard_manager.register_events(el);\n",
        "    } else {\n",
        "        // location in version 2\n",
        "        IPython.keyboard_manager.register_events(el);\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._key_event_extra = function (event, _name) {\n",
        "    var manager = IPython.notebook.keyboard_manager;\n",
        "    if (!manager) {\n",
        "        manager = IPython.keyboard_manager;\n",
        "    }\n",
        "\n",
        "    // Check for shift+enter\n",
        "    if (event.shiftKey && event.which === 13) {\n",
        "        this.canvas_div.blur();\n",
        "        // select the cell after this one\n",
        "        var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n",
        "        IPython.notebook.select(index + 1);\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
        "    fig.ondownload(fig, null);\n",
        "};\n",
        "\n",
        "mpl.find_output_cell = function (html_output) {\n",
        "    // Return the cell and output element which can be found *uniquely* in the notebook.\n",
        "    // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
        "    // IPython event is triggered only after the cells have been serialised, which for\n",
        "    // our purposes (turning an active figure into a static one), is too late.\n",
        "    var cells = IPython.notebook.get_cells();\n",
        "    var ncells = cells.length;\n",
        "    for (var i = 0; i < ncells; i++) {\n",
        "        var cell = cells[i];\n",
        "        if (cell.cell_type === 'code') {\n",
        "            for (var j = 0; j < cell.output_area.outputs.length; j++) {\n",
        "                var data = cell.output_area.outputs[j];\n",
        "                if (data.data) {\n",
        "                    // IPython >= 3 moved mimebundle to data attribute of output\n",
        "                    data = data.data;\n",
        "                }\n",
        "                if (data['text/html'] === html_output) {\n",
        "                    return [cell, data, j];\n",
        "                }\n",
        "            }\n",
        "        }\n",
        "    }\n",
        "};\n",
        "\n",
        "// Register the function which deals with the matplotlib target/channel.\n",
        "// The kernel may be null if the page has been refreshed.\n",
        "if (IPython.notebook.kernel !== null) {\n",
        "    IPython.notebook.kernel.comm_manager.register_target(\n",
        "        'matplotlib',\n",
        "        mpl.mpl_figure_comm\n",
        "    );\n",
        "}\n"
       ],
       "text/plain": [
        "<IPython.core.display.Javascript object>"
       ]
      },
      "metadata": {},
      "output_type": "display_data"
     },
     {
      "data": {
       "text/html": [
        "<img src=\"data:image/png;base64,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V+6G5TAkJERNmzbVlClTtG/fPj49BADgNpBFrUMhhCmWELgxl8ulffv2afr06Xr88cezvb1F5cqVNWzYMH3//fdcuRQAgBwii1qHQghTLCGQc9euXdO//vUvDR06VFWqVLlhOYyIiFD37t312Wef6dy5c3aPDQCA1yKLWodCCFMsIXD7Dhw4oKlTp+rhhx9WSEiIaTkMDg7WX//6V73zzjvau3cvXy0FAOA/kEWtQyGEKZYQuDsuXLighQsXqkePHipSpMgNPz2sVKmSRowYoZ9++klOp9PusQEAsBVZ1DoUQphiCYG7LzMzU+vXr9eIESN0//3337Ac3nPPPRo0aJC+++47paen2z02AACWI4tah0IIUywhkPsOHDigd999V82aNbvhV0sjIiLUq1cvLV++XMnJyXaPDACAJcii1qEQwhRLCFjr3Llzmjdvnjp06KD8+fOblsMCBQqoY8eO+uSTT3ThwgW7RwYAINeQRa1DIYQplhCwz9WrV7Vs2TL17NlT4eHhpuUwT548at68uT744AOdOnXK7pEBALiryKLWoRDCFEsIeIf09HT961//0sCBA1WyZMkbXrH00Ucf1axZs3TmzBm7RwYA4I6RRa1DIYQplhDwPg6HQxs3btSwYcNUoUIF03IYEhKiFi1aaM6cOdzrEADgs8ii1qEQwhRLCHg3l8ulHTt26JVXXlGlSpVu+LXSxx9/XB9//DHnHAIAfApZ1DoUQphiCQHf4XK5tH37dr388suqWLGiaTnMmzev2rRpo3nz5unixYt2jwwAQLbIotahEMIUSwj4JpfLpa1bt2rkyJEqV66caTnMly+fOnTooMWLF+vatWt2jwwAQBZkUetQCGGKJQR8n8vl0i+//KLhw4erbNmypuUwLCxMzzzzjFavXq3MzEy7RwYAQBJZ1EoUQphiCQH/4nQ69dNPP2no0KEqU6aMaTksVaqUXnzxRW3ZskUul8vukQEAAYwsah0KIUyxhID/cjgcWrdunZ577jlFRESYlsPKlStr7NixOnDggN3jAgACEFnUOhRCmGIJgcCQmpqq5cuXq3PnzsqXL59pOWzQoIGmT5+uP//80+5xAQABgixqHQohTLGEQOC5ePGiPvzwQz3yyCMKCgrKUgyDg4PVsmVLLViwgIvRAAByFVnUOhRCmGIJgcCWlJSkKVOmqE6dOqafGoaH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\" width=\"900\">"
       ],
       "text/plain": [
        "<IPython.core.display.HTML object>"
       ]
      },
      "metadata": {},
      "output_type": "display_data"
     }
    ],
    "source": [
     "# plot data alongsode the interpolation (if there are large differences there is something wrong)\n",
     "if True:\n",
     "    fig=plt.figure(figsize=(9,4))\n",
     "    fig.subplots_adjust(bottom=0.15, left=0.15, top = 0.95, right=0.9,wspace=0.0,hspace=0.0)\n",
     "    sub = fig.add_subplot(1,1,1)\n",
     "    \n",
     "    \n",
     "    Y=[]\n",
     "    T=np.linspace(0,np.pi,50)\n",
     "    for t in T:\n",
     "        Y.append(anharmonicFactor(t))\n",
     "    sub.plot(T,Y,linestyle='-',linewidth=2,alpha=1,c='xkcd:black')\n",
     "    \n",
     "    \n",
     "    sub.set_xlabel(r'$\\theta_{\\rm peak}$')\n",
     "    sub.xaxis.set_label_coords(0.5, -0.1) \n",
     "#     sub.set_ylabel(r'$ \\dfrac{2\\sqrt{2}}{\\pi \\ \\theta_{\\rm max}^2} \\ \\int_{-\\theta_{\\rm max}}^{\\theta_{\\rm max}} d\\theta \\ \\sqrt{ \\cos(\\theta) - \\cos(\\theta_{\\rm max}) }$')\n",
     "    sub.set_ylabel(r'$ f\\left( \\theta_{\\rm peak} \\right)$')\n",
     "    sub.yaxis.set_label_coords(-0.1,0.5) \n",
     "    #set major ticks\n",
     "    _M_xticks=[ 0,0.5,1,1.5,2,2.5,3]\n",
     "    _M_yticks=[ 0.5,0.6,0.7,0.8,0.9,1 ]\n",
     "\n",
     "    #set major ticks that will not have a label\n",
     "    _M_xticks_exception=[]\n",
     "    _M_yticks_exception=[]\n",
     "\n",
     "    _m_xticks=[np.pi]\n",
     "    _m_yticks=[]  \n",
     "    ft=FT(_M_xticks,_M_yticks,\n",
     "                 _M_xticks_exception,_M_yticks_exception,\n",
     "                 _m_xticks,_m_yticks,\n",
     "                 xmin=0,xmax=np.pi,ymin=0.5,ymax=1.005,xscale='linear',yscale='linear')\n",
     "\n",
     "    ft.format_ticks(plt,sub)    \n",
     "    \n",
     "    sub.text(np.pi*0.99,0.46,r'$\\pi$')\n",
     "\n",
     "    \n",
-    "    fig.savefig('anharmonic_factor.pdf',bbox_inches='tight')\n",
+    "#     fig.savefig('anharmonic_factor.pdf',bbox_inches='tight')\n",
     "    fig.show()"
    ]
   },
   {
    "cell_type": "code",
    "execution_count": null,
    "metadata": {},
    "outputs": [],
    "source": []
   }
  ],
  "metadata": {
   "kernelspec": {
    "display_name": "Python 3",
    "language": "python",
    "name": "python3"
   },
   "language_info": {
    "codemirror_mode": {
     "name": "ipython",
     "version": 3
    },
    "file_extension": ".py",
    "mimetype": "text/x-python",
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
    "version": "3.9.5"
   }
  },
  "nbformat": 4,
  "nbformat_minor": 4
 }
diff --git a/UserSpace/JupyterNotebooks/Axion.ipynb b/UserSpace/JupyterNotebooks/Axion.ipynb
index 48d6248..8e03150 100755
--- a/UserSpace/JupyterNotebooks/Axion.ipynb
+++ b/UserSpace/JupyterNotebooks/Axion.ipynb
@@ -1,5361 +1,5362 @@
 {
  "cells": [
   {
    "cell_type": "code",
    "execution_count": 1,
    "metadata": {},
    "outputs": [],
    "source": [
     "import numpy as np#you usually need numpy\n",
     "\n",
     "#---these are for plots---#\n",
     "import matplotlib\n",
     "matplotlib.use('nbAgg')\n",
     "import matplotlib.pyplot as plt\n",
     "\n",
     "plt.rcParams['font.size']=16\n",
     "plt.rcParams['font.family']='dejavu sans'\n",
     "\n",
     "plt.rcParams['mathtext.fontset']='stix'\n",
     "plt.rcParams['mathtext.rm']='custom'\n",
     "plt.rcParams['mathtext.it']='stix:italic'\n",
     "plt.rcParams['mathtext.bf']='stix:bold'\n",
     "#-------------------------#"
    ]
   },
   {
    "cell_type": "code",
    "execution_count": 2,
    "metadata": {},
    "outputs": [],
    "source": [
     "#load the module\n",
     "from sys import path as sysPath\n",
-    "from os import path as osPath\n",
-    "sysPath.append(osPath.join(osPath.dirname('./'), '../../src'))\n",
+    "sysPath.append('../../src')\n",
     "\n",
     "from interfacePy.Axion import Axion \n",
     "from interfacePy.AxionMass import AxionMass\n",
     "\n",
-    "from interfacePy.Cosmo import Hubble,rho_crit,h_hub\n",
+    "from interfacePy.Cosmo import Cosmo\n",
     "from interfacePy.FT import FT #easy tick formatting\n"
    ]
   },
   {
    "cell_type": "code",
    "execution_count": 3,
    "metadata": {},
    "outputs": [],
    "source": [
     "theta_i, fa=0.94435, 1e12\n",
     "# theta_i, fa=np.pi, 1e12\n",
     "# theta_i, fa=1e-3, 1e5\n",
     "\n",
     "umax=500\n",
     "TSTOP=1e-4\n",
     "ratio_ini=1e3\n",
     "\n",
     "N_convergence_max, convergence_lim=5, 1e-2 #this is fine, but you can experiment a bit. \n",
     "\n",
     "#radiation dominated example\n",
     "inputFile=\"../InputExamples/RDinput.dat\" \n",
     "\n",
     "# Matter domination example. \n",
     "# the NSC parameters (using the notation of 2012.07202) are:\n",
     "# T_end=1e-2 (GeV), c=3, T_ini=1e12 (GeV), and r=1e-1\n",
     "# inputFile=\"../InputExamples/MatterInput.dat\" \n",
     "\n",
     "\n",
     "# Kination domination example. \n",
     "# the NSC parameters (using the notation of 2012.07202) are:\n",
     "# T_end=0, c=6, T_ini=1e3 (GeV), and r=1e10\n",
     "# inputFile=\"../InputExamples/KinationInput.dat\" \n"
    ]
   },
   {
    "cell_type": "code",
    "execution_count": 4,
    "metadata": {},
    "outputs": [],
    "source": [
     "#you can define the axion mass using a data file\n",
     "axionMass = AxionMass(r'../../src/data/chi.dat',0,1e5)\n",
     "\n",
     "#you can define the axion mass via a function\n",
     "# def ma2(T,fa):\n",
     "#     TQCD=150*1e-3;\n",
     "#     ma20=3.1575e-05/fa/fa;\n",
     "#     if T<=TQCD:\n",
     "#         return ma20;\n",
     "#     return ma20*pow((TQCD/T),8.16)\n",
     "\n",
     "# axionMass = AxionMass(ma2)\n"
    ]
   },
   {
    "cell_type": "code",
    "execution_count": 5,
    "metadata": {},
    "outputs": [],
    "source": [
     "# options for the solver\n",
     "# These variables are optional. Yoou can use the Axion class without them.\n",
     "initial_step_size=1e-2; #initial step the solver takes. \n",
     "minimum_step_size=1e-8; #This limits the sepsize to an upper limit. \n",
     "maximum_step_size=1e-2; #This limits the sepsize to a lower limit.\n",
     "absolute_tolerance=1e-8; #absolute tolerance of the RK solver\n",
     "relative_tolerance=1e-8; #relative tolerance of the RK solver\n",
     "beta=0.9; #controls how agreesive the adaptation is. Generally, it should be around but less than 1.\n",
     "\n",
     "#The stepsize does not increase more than fac_max, and less than fac_min. \n",
     "#This ensures a better stability. Ideally, fac_max=inf and fac_min=0, but in reality one must \n",
     "#tweak them in order to avoid instabilities.\n",
     "fac_max=1.2; \n",
     "fac_min=0.8;\n",
     "maximum_No_steps=int(1e7); #maximum steps the solver can take Quits if this number is reached even if integration is not finished.\n",
     "\n",
     "\n",
     "# Axion instance\n",
     "ax=Axion(theta_i, fa, umax, TSTOP, ratio_ini, N_convergence_max, convergence_lim, inputFile,axionMass,\n",
     "        initial_step_size,minimum_step_size, maximum_step_size, absolute_tolerance, \n",
     "        relative_tolerance, beta, fac_max, fac_min, maximum_No_steps)\n"
    ]
   },
   {
    "cell_type": "code",
    "execution_count": 6,
    "metadata": {},
    "outputs": [],
    "source": [
     "# Axion instance\n",
     "# you can always run Axion with the default parameters for the solver\n",
     "# ax=Axion(theta_i, fa, umax, TSTOP, ratio_ini, N_convergence_max, convergence_lim, inputFile)"
    ]
   },
   {
    "cell_type": "code",
    "execution_count": 7,
    "metadata": {},
    "outputs": [
     {
      "data": {
       "text/plain": [
-       "0.019005775451660156"
+       "0.018198728561401367"
       ]
      },
      "execution_count": 7,
      "metadata": {},
      "output_type": "execute_result"
     }
    ],
    "source": [
     "# solve the EOM (this only gives you the relic, T_osc, theta_osc, and a_osc)\n",
     "ax.solveAxion()"
    ]
   },
   {
    "cell_type": "code",
    "execution_count": 8,
    "metadata": {},
    "outputs": [
     {
      "data": {
       "text/plain": [
-       "(0.11935020970232879, 0.9785452023797905, 0.8975109868818929)"
+       "(0.11934766380256942, 0.978544806529701, 0.8975020887699964)"
       ]
      },
      "execution_count": 8,
      "metadata": {},
      "output_type": "execute_result"
     }
    ],
    "source": [
     "ax.relic, ax.T_osc, ax.theta_osc"
    ]
   },
   {
    "cell_type": "code",
    "execution_count": 9,
    "metadata": {},
    "outputs": [],
    "source": [
     "ax.getPeaks()#this gives you the peaks of the oscillation\n",
     "ax.getPoints()#this gives you all the points of integration\n",
     "ax.getErrors()#this gives you local errors of integration"
    ]
   },
   {
    "cell_type": "code",
    "execution_count": 10,
    "metadata": {},
    "outputs": [
     {
      "data": {
       "application/javascript": [
        "/* Put everything inside the global mpl namespace */\n",
        "/* global mpl */\n",
        "window.mpl = {};\n",
        "\n",
        "mpl.get_websocket_type = function () {\n",
        "    if (typeof WebSocket !== 'undefined') {\n",
        "        return WebSocket;\n",
        "    } else if (typeof MozWebSocket !== 'undefined') {\n",
        "        return MozWebSocket;\n",
        "    } else {\n",
        "        alert(\n",
        "            'Your browser does not have WebSocket support. ' +\n",
        "                'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
        "                'Firefox 4 and 5 are also supported but you ' +\n",
        "                'have to enable WebSockets in about:config.'\n",
        "        );\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n",
        "    this.id = figure_id;\n",
        "\n",
        "    this.ws = websocket;\n",
        "\n",
        "    this.supports_binary = this.ws.binaryType !== undefined;\n",
        "\n",
        "    if (!this.supports_binary) {\n",
        "        var warnings = document.getElementById('mpl-warnings');\n",
        "        if (warnings) {\n",
        "            warnings.style.display = 'block';\n",
        "            warnings.textContent =\n",
        "                'This browser does not support binary websocket messages. ' +\n",
        "                'Performance may be slow.';\n",
        "        }\n",
        "    }\n",
        "\n",
        "    this.imageObj = new Image();\n",
        "\n",
        "    this.context = undefined;\n",
        "    this.message = undefined;\n",
        "    this.canvas = undefined;\n",
        "    this.rubberband_canvas = undefined;\n",
        "    this.rubberband_context = undefined;\n",
        "    this.format_dropdown = undefined;\n",
        "\n",
        "    this.image_mode = 'full';\n",
        "\n",
        "    this.root = document.createElement('div');\n",
        "    this.root.setAttribute('style', 'display: inline-block');\n",
        "    this._root_extra_style(this.root);\n",
        "\n",
        "    parent_element.appendChild(this.root);\n",
        "\n",
        "    this._init_header(this);\n",
        "    this._init_canvas(this);\n",
        "    this._init_toolbar(this);\n",
        "\n",
        "    var fig = this;\n",
        "\n",
        "    this.waiting = false;\n",
        "\n",
        "    this.ws.onopen = function () {\n",
        "        fig.send_message('supports_binary', { value: fig.supports_binary });\n",
        "        fig.send_message('send_image_mode', {});\n",
        "        if (fig.ratio !== 1) {\n",
        "            fig.send_message('set_dpi_ratio', { dpi_ratio: fig.ratio });\n",
        "        }\n",
        "        fig.send_message('refresh', {});\n",
        "    };\n",
        "\n",
        "    this.imageObj.onload = function () {\n",
        "        if (fig.image_mode === 'full') {\n",
        "            // Full images could contain transparency (where diff images\n",
        "            // almost always do), so we need to clear the canvas so that\n",
        "            // there is no ghosting.\n",
        "            fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
        "        }\n",
        "        fig.context.drawImage(fig.imageObj, 0, 0);\n",
        "    };\n",
        "\n",
        "    this.imageObj.onunload = function () {\n",
        "        fig.ws.close();\n",
        "    };\n",
        "\n",
        "    this.ws.onmessage = this._make_on_message_function(this);\n",
        "\n",
        "    this.ondownload = ondownload;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._init_header = function () {\n",
        "    var titlebar = document.createElement('div');\n",
        "    titlebar.classList =\n",
        "        'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n",
        "    var titletext = document.createElement('div');\n",
        "    titletext.classList = 'ui-dialog-title';\n",
        "    titletext.setAttribute(\n",
        "        'style',\n",
        "        'width: 100%; text-align: center; padding: 3px;'\n",
        "    );\n",
        "    titlebar.appendChild(titletext);\n",
        "    this.root.appendChild(titlebar);\n",
        "    this.header = titletext;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n",
        "\n",
        "mpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n",
        "\n",
        "mpl.figure.prototype._init_canvas = function () {\n",
        "    var fig = this;\n",
        "\n",
        "    var canvas_div = (this.canvas_div = document.createElement('div'));\n",
        "    canvas_div.setAttribute(\n",
        "        'style',\n",
        "        'border: 1px solid #ddd;' +\n",
        "            'box-sizing: content-box;' +\n",
        "            'clear: both;' +\n",
        "            'min-height: 1px;' +\n",
        "            'min-width: 1px;' +\n",
        "            'outline: 0;' +\n",
        "            'overflow: hidden;' +\n",
        "            'position: relative;' +\n",
        "            'resize: both;'\n",
        "    );\n",
        "\n",
        "    function on_keyboard_event_closure(name) {\n",
        "        return function (event) {\n",
        "            return fig.key_event(event, name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    canvas_div.addEventListener(\n",
        "        'keydown',\n",
        "        on_keyboard_event_closure('key_press')\n",
        "    );\n",
        "    canvas_div.addEventListener(\n",
        "        'keyup',\n",
        "        on_keyboard_event_closure('key_release')\n",
        "    );\n",
        "\n",
        "    this._canvas_extra_style(canvas_div);\n",
        "    this.root.appendChild(canvas_div);\n",
        "\n",
        "    var canvas = (this.canvas = document.createElement('canvas'));\n",
        "    canvas.classList.add('mpl-canvas');\n",
        "    canvas.setAttribute('style', 'box-sizing: content-box;');\n",
        "\n",
        "    this.context = canvas.getContext('2d');\n",
        "\n",
        "    var backingStore =\n",
        "        this.context.backingStorePixelRatio ||\n",
        "        this.context.webkitBackingStorePixelRatio ||\n",
        "        this.context.mozBackingStorePixelRatio ||\n",
        "        this.context.msBackingStorePixelRatio ||\n",
        "        this.context.oBackingStorePixelRatio ||\n",
        "        this.context.backingStorePixelRatio ||\n",
        "        1;\n",
        "\n",
        "    this.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
        "\n",
        "    var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n",
        "        'canvas'\n",
        "    ));\n",
        "    rubberband_canvas.setAttribute(\n",
        "        'style',\n",
        "        'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n",
        "    );\n",
        "\n",
        "    // Apply a ponyfill if ResizeObserver is not implemented by browser.\n",
        "    if (this.ResizeObserver === undefined) {\n",
        "        if (window.ResizeObserver !== undefined) {\n",
        "            this.ResizeObserver = window.ResizeObserver;\n",
        "        } else {\n",
        "            var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n",
        "            this.ResizeObserver = obs.ResizeObserver;\n",
        "        }\n",
        "    }\n",
        "\n",
        "    this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n",
        "        var nentries = entries.length;\n",
        "        for (var i = 0; i < nentries; i++) {\n",
        "            var entry = entries[i];\n",
        "            var width, height;\n",
        "            if (entry.contentBoxSize) {\n",
        "                if (entry.contentBoxSize instanceof Array) {\n",
        "                    // Chrome 84 implements new version of spec.\n",
        "                    width = entry.contentBoxSize[0].inlineSize;\n",
        "                    height = entry.contentBoxSize[0].blockSize;\n",
        "                } else {\n",
        "                    // Firefox implements old version of spec.\n",
        "                    width = entry.contentBoxSize.inlineSize;\n",
        "                    height = entry.contentBoxSize.blockSize;\n",
        "                }\n",
        "            } else {\n",
        "                // Chrome <84 implements even older version of spec.\n",
        "                width = entry.contentRect.width;\n",
        "                height = entry.contentRect.height;\n",
        "            }\n",
        "\n",
        "            // Keep the size of the canvas and rubber band canvas in sync with\n",
        "            // the canvas container.\n",
        "            if (entry.devicePixelContentBoxSize) {\n",
        "                // Chrome 84 implements new version of spec.\n",
        "                canvas.setAttribute(\n",
        "                    'width',\n",
        "                    entry.devicePixelContentBoxSize[0].inlineSize\n",
        "                );\n",
        "                canvas.setAttribute(\n",
        "                    'height',\n",
        "                    entry.devicePixelContentBoxSize[0].blockSize\n",
        "                );\n",
        "            } else {\n",
        "                canvas.setAttribute('width', width * fig.ratio);\n",
        "                canvas.setAttribute('height', height * fig.ratio);\n",
        "            }\n",
        "            canvas.setAttribute(\n",
        "                'style',\n",
        "                'width: ' + width + 'px; height: ' + height + 'px;'\n",
        "            );\n",
        "\n",
        "            rubberband_canvas.setAttribute('width', width);\n",
        "            rubberband_canvas.setAttribute('height', height);\n",
        "\n",
        "            // And update the size in Python. We ignore the initial 0/0 size\n",
        "            // that occurs as the element is placed into the DOM, which should\n",
        "            // otherwise not happen due to the minimum size styling.\n",
        "            if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n",
        "                fig.request_resize(width, height);\n",
        "            }\n",
        "        }\n",
        "    });\n",
        "    this.resizeObserverInstance.observe(canvas_div);\n",
        "\n",
        "    function on_mouse_event_closure(name) {\n",
        "        return function (event) {\n",
        "            return fig.mouse_event(event, name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mousedown',\n",
        "        on_mouse_event_closure('button_press')\n",
        "    );\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mouseup',\n",
        "        on_mouse_event_closure('button_release')\n",
        "    );\n",
        "    // Throttle sequential mouse events to 1 every 20ms.\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mousemove',\n",
        "        on_mouse_event_closure('motion_notify')\n",
        "    );\n",
        "\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mouseenter',\n",
        "        on_mouse_event_closure('figure_enter')\n",
        "    );\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mouseleave',\n",
        "        on_mouse_event_closure('figure_leave')\n",
        "    );\n",
        "\n",
        "    canvas_div.addEventListener('wheel', function (event) {\n",
        "        if (event.deltaY < 0) {\n",
        "            event.step = 1;\n",
        "        } else {\n",
        "            event.step = -1;\n",
        "        }\n",
        "        on_mouse_event_closure('scroll')(event);\n",
        "    });\n",
        "\n",
        "    canvas_div.appendChild(canvas);\n",
        "    canvas_div.appendChild(rubberband_canvas);\n",
        "\n",
        "    this.rubberband_context = rubberband_canvas.getContext('2d');\n",
        "    this.rubberband_context.strokeStyle = '#000000';\n",
        "\n",
        "    this._resize_canvas = function (width, height, forward) {\n",
        "        if (forward) {\n",
        "            canvas_div.style.width = width + 'px';\n",
        "            canvas_div.style.height = height + 'px';\n",
        "        }\n",
        "    };\n",
        "\n",
        "    // Disable right mouse context menu.\n",
        "    this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n",
        "        event.preventDefault();\n",
        "        return false;\n",
        "    });\n",
        "\n",
        "    function set_focus() {\n",
        "        canvas.focus();\n",
        "        canvas_div.focus();\n",
        "    }\n",
        "\n",
        "    window.setTimeout(set_focus, 100);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._init_toolbar = function () {\n",
        "    var fig = this;\n",
        "\n",
        "    var toolbar = document.createElement('div');\n",
        "    toolbar.classList = 'mpl-toolbar';\n",
        "    this.root.appendChild(toolbar);\n",
        "\n",
        "    function on_click_closure(name) {\n",
        "        return function (_event) {\n",
        "            return fig.toolbar_button_onclick(name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    function on_mouseover_closure(tooltip) {\n",
        "        return function (event) {\n",
        "            if (!event.currentTarget.disabled) {\n",
        "                return fig.toolbar_button_onmouseover(tooltip);\n",
        "            }\n",
        "        };\n",
        "    }\n",
        "\n",
        "    fig.buttons = {};\n",
        "    var buttonGroup = document.createElement('div');\n",
        "    buttonGroup.classList = 'mpl-button-group';\n",
        "    for (var toolbar_ind in mpl.toolbar_items) {\n",
        "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
        "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
        "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
        "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
        "\n",
        "        if (!name) {\n",
        "            /* Instead of a spacer, we start a new button group. */\n",
        "            if (buttonGroup.hasChildNodes()) {\n",
        "                toolbar.appendChild(buttonGroup);\n",
        "            }\n",
        "            buttonGroup = document.createElement('div');\n",
        "            buttonGroup.classList = 'mpl-button-group';\n",
        "            continue;\n",
        "        }\n",
        "\n",
        "        var button = (fig.buttons[name] = document.createElement('button'));\n",
        "        button.classList = 'mpl-widget';\n",
        "        button.setAttribute('role', 'button');\n",
        "        button.setAttribute('aria-disabled', 'false');\n",
        "        button.addEventListener('click', on_click_closure(method_name));\n",
        "        button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
        "\n",
        "        var icon_img = document.createElement('img');\n",
        "        icon_img.src = '_images/' + image + '.png';\n",
        "        icon_img.srcset = '_images/' + image + '_large.png 2x';\n",
        "        icon_img.alt = tooltip;\n",
        "        button.appendChild(icon_img);\n",
        "\n",
        "        buttonGroup.appendChild(button);\n",
        "    }\n",
        "\n",
        "    if (buttonGroup.hasChildNodes()) {\n",
        "        toolbar.appendChild(buttonGroup);\n",
        "    }\n",
        "\n",
        "    var fmt_picker = document.createElement('select');\n",
        "    fmt_picker.classList = 'mpl-widget';\n",
        "    toolbar.appendChild(fmt_picker);\n",
        "    this.format_dropdown = fmt_picker;\n",
        "\n",
        "    for (var ind in mpl.extensions) {\n",
        "        var fmt = mpl.extensions[ind];\n",
        "        var option = document.createElement('option');\n",
        "        option.selected = fmt === mpl.default_extension;\n",
        "        option.innerHTML = fmt;\n",
        "        fmt_picker.appendChild(option);\n",
        "    }\n",
        "\n",
        "    var status_bar = document.createElement('span');\n",
        "    status_bar.classList = 'mpl-message';\n",
        "    toolbar.appendChild(status_bar);\n",
        "    this.message = status_bar;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n",
        "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
        "    // which will in turn request a refresh of the image.\n",
        "    this.send_message('resize', { width: x_pixels, height: y_pixels });\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.send_message = function (type, properties) {\n",
        "    properties['type'] = type;\n",
        "    properties['figure_id'] = this.id;\n",
        "    this.ws.send(JSON.stringify(properties));\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.send_draw_message = function () {\n",
        "    if (!this.waiting) {\n",
        "        this.waiting = true;\n",
        "        this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
        "    var format_dropdown = fig.format_dropdown;\n",
        "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
        "    fig.ondownload(fig, format);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_resize = function (fig, msg) {\n",
        "    var size = msg['size'];\n",
        "    if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n",
        "        fig._resize_canvas(size[0], size[1], msg['forward']);\n",
        "        fig.send_message('refresh', {});\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_rubberband = function (fig, msg) {\n",
        "    var x0 = msg['x0'] / fig.ratio;\n",
        "    var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n",
        "    var x1 = msg['x1'] / fig.ratio;\n",
        "    var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n",
        "    x0 = Math.floor(x0) + 0.5;\n",
        "    y0 = Math.floor(y0) + 0.5;\n",
        "    x1 = Math.floor(x1) + 0.5;\n",
        "    y1 = Math.floor(y1) + 0.5;\n",
        "    var min_x = Math.min(x0, x1);\n",
        "    var min_y = Math.min(y0, y1);\n",
        "    var width = Math.abs(x1 - x0);\n",
        "    var height = Math.abs(y1 - y0);\n",
        "\n",
        "    fig.rubberband_context.clearRect(\n",
        "        0,\n",
        "        0,\n",
        "        fig.canvas.width / fig.ratio,\n",
        "        fig.canvas.height / fig.ratio\n",
        "    );\n",
        "\n",
        "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_figure_label = function (fig, msg) {\n",
        "    // Updates the figure title.\n",
        "    fig.header.textContent = msg['label'];\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_cursor = function (fig, msg) {\n",
        "    var cursor = msg['cursor'];\n",
        "    switch (cursor) {\n",
        "        case 0:\n",
        "            cursor = 'pointer';\n",
        "            break;\n",
        "        case 1:\n",
        "            cursor = 'default';\n",
        "            break;\n",
        "        case 2:\n",
        "            cursor = 'crosshair';\n",
        "            break;\n",
        "        case 3:\n",
        "            cursor = 'move';\n",
        "            break;\n",
        "    }\n",
        "    fig.rubberband_canvas.style.cursor = cursor;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_message = function (fig, msg) {\n",
        "    fig.message.textContent = msg['message'];\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_draw = function (fig, _msg) {\n",
        "    // Request the server to send over a new figure.\n",
        "    fig.send_draw_message();\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_image_mode = function (fig, msg) {\n",
        "    fig.image_mode = msg['mode'];\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n",
        "    for (var key in msg) {\n",
        "        if (!(key in fig.buttons)) {\n",
        "            continue;\n",
        "        }\n",
        "        fig.buttons[key].disabled = !msg[key];\n",
        "        fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n",
        "    if (msg['mode'] === 'PAN') {\n",
        "        fig.buttons['Pan'].classList.add('active');\n",
        "        fig.buttons['Zoom'].classList.remove('active');\n",
        "    } else if (msg['mode'] === 'ZOOM') {\n",
        "        fig.buttons['Pan'].classList.remove('active');\n",
        "        fig.buttons['Zoom'].classList.add('active');\n",
        "    } else {\n",
        "        fig.buttons['Pan'].classList.remove('active');\n",
        "        fig.buttons['Zoom'].classList.remove('active');\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.updated_canvas_event = function () {\n",
        "    // Called whenever the canvas gets updated.\n",
        "    this.send_message('ack', {});\n",
        "};\n",
        "\n",
        "// A function to construct a web socket function for onmessage handling.\n",
        "// Called in the figure constructor.\n",
        "mpl.figure.prototype._make_on_message_function = function (fig) {\n",
        "    return function socket_on_message(evt) {\n",
        "        if (evt.data instanceof Blob) {\n",
        "            /* FIXME: We get \"Resource interpreted as Image but\n",
        "             * transferred with MIME type text/plain:\" errors on\n",
        "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
        "             * to be part of the websocket stream */\n",
        "            evt.data.type = 'image/png';\n",
        "\n",
        "            /* Free the memory for the previous frames */\n",
        "            if (fig.imageObj.src) {\n",
        "                (window.URL || window.webkitURL).revokeObjectURL(\n",
        "                    fig.imageObj.src\n",
        "                );\n",
        "            }\n",
        "\n",
        "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
        "                evt.data\n",
        "            );\n",
        "            fig.updated_canvas_event();\n",
        "            fig.waiting = false;\n",
        "            return;\n",
        "        } else if (\n",
        "            typeof evt.data === 'string' &&\n",
        "            evt.data.slice(0, 21) === 'data:image/png;base64'\n",
        "        ) {\n",
        "            fig.imageObj.src = evt.data;\n",
        "            fig.updated_canvas_event();\n",
        "            fig.waiting = false;\n",
        "            return;\n",
        "        }\n",
        "\n",
        "        var msg = JSON.parse(evt.data);\n",
        "        var msg_type = msg['type'];\n",
        "\n",
        "        // Call the  \"handle_{type}\" callback, which takes\n",
        "        // the figure and JSON message as its only arguments.\n",
        "        try {\n",
        "            var callback = fig['handle_' + msg_type];\n",
        "        } catch (e) {\n",
        "            console.log(\n",
        "                \"No handler for the '\" + msg_type + \"' message type: \",\n",
        "                msg\n",
        "            );\n",
        "            return;\n",
        "        }\n",
        "\n",
        "        if (callback) {\n",
        "            try {\n",
        "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
        "                callback(fig, msg);\n",
        "            } catch (e) {\n",
        "                console.log(\n",
        "                    \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n",
        "                    e,\n",
        "                    e.stack,\n",
        "                    msg\n",
        "                );\n",
        "            }\n",
        "        }\n",
        "    };\n",
        "};\n",
        "\n",
        "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
        "mpl.findpos = function (e) {\n",
        "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
        "    var targ;\n",
        "    if (!e) {\n",
        "        e = window.event;\n",
        "    }\n",
        "    if (e.target) {\n",
        "        targ = e.target;\n",
        "    } else if (e.srcElement) {\n",
        "        targ = e.srcElement;\n",
        "    }\n",
        "    if (targ.nodeType === 3) {\n",
        "        // defeat Safari bug\n",
        "        targ = targ.parentNode;\n",
        "    }\n",
        "\n",
        "    // pageX,Y are the mouse positions relative to the document\n",
        "    var boundingRect = targ.getBoundingClientRect();\n",
        "    var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n",
        "    var y = e.pageY - (boundingRect.top + document.body.scrollTop);\n",
        "\n",
        "    return { x: x, y: y };\n",
        "};\n",
        "\n",
        "/*\n",
        " * return a copy of an object with only non-object keys\n",
        " * we need this to avoid circular references\n",
        " * http://stackoverflow.com/a/24161582/3208463\n",
        " */\n",
        "function simpleKeys(original) {\n",
        "    return Object.keys(original).reduce(function (obj, key) {\n",
        "        if (typeof original[key] !== 'object') {\n",
        "            obj[key] = original[key];\n",
        "        }\n",
        "        return obj;\n",
        "    }, {});\n",
        "}\n",
        "\n",
        "mpl.figure.prototype.mouse_event = function (event, name) {\n",
        "    var canvas_pos = mpl.findpos(event);\n",
        "\n",
        "    if (name === 'button_press') {\n",
        "        this.canvas.focus();\n",
        "        this.canvas_div.focus();\n",
        "    }\n",
        "\n",
        "    var x = canvas_pos.x * this.ratio;\n",
        "    var y = canvas_pos.y * this.ratio;\n",
        "\n",
        "    this.send_message(name, {\n",
        "        x: x,\n",
        "        y: y,\n",
        "        button: event.button,\n",
        "        step: event.step,\n",
        "        guiEvent: simpleKeys(event),\n",
        "    });\n",
        "\n",
        "    /* This prevents the web browser from automatically changing to\n",
        "     * the text insertion cursor when the button is pressed.  We want\n",
        "     * to control all of the cursor setting manually through the\n",
        "     * 'cursor' event from matplotlib */\n",
        "    event.preventDefault();\n",
        "    return false;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._key_event_extra = function (_event, _name) {\n",
        "    // Handle any extra behaviour associated with a key event\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.key_event = function (event, name) {\n",
        "    // Prevent repeat events\n",
        "    if (name === 'key_press') {\n",
        "        if (event.which === this._key) {\n",
        "            return;\n",
        "        } else {\n",
        "            this._key = event.which;\n",
        "        }\n",
        "    }\n",
        "    if (name === 'key_release') {\n",
        "        this._key = null;\n",
        "    }\n",
        "\n",
        "    var value = '';\n",
        "    if (event.ctrlKey && event.which !== 17) {\n",
        "        value += 'ctrl+';\n",
        "    }\n",
        "    if (event.altKey && event.which !== 18) {\n",
        "        value += 'alt+';\n",
        "    }\n",
        "    if (event.shiftKey && event.which !== 16) {\n",
        "        value += 'shift+';\n",
        "    }\n",
        "\n",
        "    value += 'k';\n",
        "    value += event.which.toString();\n",
        "\n",
        "    this._key_event_extra(event, name);\n",
        "\n",
        "    this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n",
        "    return false;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.toolbar_button_onclick = function (name) {\n",
        "    if (name === 'download') {\n",
        "        this.handle_save(this, null);\n",
        "    } else {\n",
        "        this.send_message('toolbar_button', { name: name });\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n",
        "    this.message.textContent = tooltip;\n",
        "};\n",
        "\n",
        "///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n",
        "// prettier-ignore\n",
        "var _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\n",
        "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
        "\n",
        "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
        "\n",
        "mpl.default_extension = \"png\";/* global mpl */\n",
        "\n",
        "var comm_websocket_adapter = function (comm) {\n",
        "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
        "    // object with the appropriate methods. Currently this is a non binary\n",
        "    // socket, so there is still some room for performance tuning.\n",
        "    var ws = {};\n",
        "\n",
        "    ws.close = function () {\n",
        "        comm.close();\n",
        "    };\n",
        "    ws.send = function (m) {\n",
        "        //console.log('sending', m);\n",
        "        comm.send(m);\n",
        "    };\n",
        "    // Register the callback with on_msg.\n",
        "    comm.on_msg(function (msg) {\n",
        "        //console.log('receiving', msg['content']['data'], msg);\n",
        "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
        "        ws.onmessage(msg['content']['data']);\n",
        "    });\n",
        "    return ws;\n",
        "};\n",
        "\n",
        "mpl.mpl_figure_comm = function (comm, msg) {\n",
        "    // This is the function which gets called when the mpl process\n",
        "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
        "\n",
        "    var id = msg.content.data.id;\n",
        "    // Get hold of the div created by the display call when the Comm\n",
        "    // socket was opened in Python.\n",
        "    var element = document.getElementById(id);\n",
        "    var ws_proxy = comm_websocket_adapter(comm);\n",
        "\n",
        "    function ondownload(figure, _format) {\n",
        "        window.open(figure.canvas.toDataURL());\n",
        "    }\n",
        "\n",
        "    var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n",
        "\n",
        "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
        "    // web socket which is closed, not our websocket->open comm proxy.\n",
        "    ws_proxy.onopen();\n",
        "\n",
        "    fig.parent_element = element;\n",
        "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
        "    if (!fig.cell_info) {\n",
        "        console.error('Failed to find cell for figure', id, fig);\n",
        "        return;\n",
        "    }\n",
        "    fig.cell_info[0].output_area.element.on(\n",
        "        'cleared',\n",
        "        { fig: fig },\n",
        "        fig._remove_fig_handler\n",
        "    );\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_close = function (fig, msg) {\n",
        "    var width = fig.canvas.width / fig.ratio;\n",
        "    fig.cell_info[0].output_area.element.off(\n",
        "        'cleared',\n",
        "        fig._remove_fig_handler\n",
        "    );\n",
        "    fig.resizeObserverInstance.unobserve(fig.canvas_div);\n",
        "\n",
        "    // Update the output cell to use the data from the current canvas.\n",
        "    fig.push_to_output();\n",
        "    var dataURL = fig.canvas.toDataURL();\n",
        "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
        "    // the notebook keyboard shortcuts fail.\n",
        "    IPython.keyboard_manager.enable();\n",
        "    fig.parent_element.innerHTML =\n",
        "        '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
        "    fig.close_ws(fig, msg);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.close_ws = function (fig, msg) {\n",
        "    fig.send_message('closing', msg);\n",
        "    // fig.ws.close()\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.push_to_output = function (_remove_interactive) {\n",
        "    // Turn the data on the canvas into data in the output cell.\n",
        "    var width = this.canvas.width / this.ratio;\n",
        "    var dataURL = this.canvas.toDataURL();\n",
        "    this.cell_info[1]['text/html'] =\n",
        "        '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.updated_canvas_event = function () {\n",
        "    // Tell IPython that the notebook contents must change.\n",
        "    IPython.notebook.set_dirty(true);\n",
        "    this.send_message('ack', {});\n",
        "    var fig = this;\n",
        "    // Wait a second, then push the new image to the DOM so\n",
        "    // that it is saved nicely (might be nice to debounce this).\n",
        "    setTimeout(function () {\n",
        "        fig.push_to_output();\n",
        "    }, 1000);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._init_toolbar = function () {\n",
        "    var fig = this;\n",
        "\n",
        "    var toolbar = document.createElement('div');\n",
        "    toolbar.classList = 'btn-toolbar';\n",
        "    this.root.appendChild(toolbar);\n",
        "\n",
        "    function on_click_closure(name) {\n",
        "        return function (_event) {\n",
        "            return fig.toolbar_button_onclick(name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    function on_mouseover_closure(tooltip) {\n",
        "        return function (event) {\n",
        "            if (!event.currentTarget.disabled) {\n",
        "                return fig.toolbar_button_onmouseover(tooltip);\n",
        "            }\n",
        "        };\n",
        "    }\n",
        "\n",
        "    fig.buttons = {};\n",
        "    var buttonGroup = document.createElement('div');\n",
        "    buttonGroup.classList = 'btn-group';\n",
        "    var button;\n",
        "    for (var toolbar_ind in mpl.toolbar_items) {\n",
        "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
        "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
        "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
        "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
        "\n",
        "        if (!name) {\n",
        "            /* Instead of a spacer, we start a new button group. */\n",
        "            if (buttonGroup.hasChildNodes()) {\n",
        "                toolbar.appendChild(buttonGroup);\n",
        "            }\n",
        "            buttonGroup = document.createElement('div');\n",
        "            buttonGroup.classList = 'btn-group';\n",
        "            continue;\n",
        "        }\n",
        "\n",
        "        button = fig.buttons[name] = document.createElement('button');\n",
        "        button.classList = 'btn btn-default';\n",
        "        button.href = '#';\n",
        "        button.title = name;\n",
        "        button.innerHTML = '<i class=\"fa ' + image + ' fa-lg\"></i>';\n",
        "        button.addEventListener('click', on_click_closure(method_name));\n",
        "        button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
        "        buttonGroup.appendChild(button);\n",
        "    }\n",
        "\n",
        "    if (buttonGroup.hasChildNodes()) {\n",
        "        toolbar.appendChild(buttonGroup);\n",
        "    }\n",
        "\n",
        "    // Add the status bar.\n",
        "    var status_bar = document.createElement('span');\n",
        "    status_bar.classList = 'mpl-message pull-right';\n",
        "    toolbar.appendChild(status_bar);\n",
        "    this.message = status_bar;\n",
        "\n",
        "    // Add the close button to the window.\n",
        "    var buttongrp = document.createElement('div');\n",
        "    buttongrp.classList = 'btn-group inline pull-right';\n",
        "    button = document.createElement('button');\n",
        "    button.classList = 'btn btn-mini btn-primary';\n",
        "    button.href = '#';\n",
        "    button.title = 'Stop Interaction';\n",
        "    button.innerHTML = '<i class=\"fa fa-power-off icon-remove icon-large\"></i>';\n",
        "    button.addEventListener('click', function (_evt) {\n",
        "        fig.handle_close(fig, {});\n",
        "    });\n",
        "    button.addEventListener(\n",
        "        'mouseover',\n",
        "        on_mouseover_closure('Stop Interaction')\n",
        "    );\n",
        "    buttongrp.appendChild(button);\n",
        "    var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n",
        "    titlebar.insertBefore(buttongrp, titlebar.firstChild);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._remove_fig_handler = function (event) {\n",
        "    var fig = event.data.fig;\n",
        "    if (event.target !== this) {\n",
        "        // Ignore bubbled events from children.\n",
        "        return;\n",
        "    }\n",
        "    fig.close_ws(fig, {});\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._root_extra_style = function (el) {\n",
        "    el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._canvas_extra_style = function (el) {\n",
        "    // this is important to make the div 'focusable\n",
        "    el.setAttribute('tabindex', 0);\n",
        "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
        "    // off when our div gets focus\n",
        "\n",
        "    // location in version 3\n",
        "    if (IPython.notebook.keyboard_manager) {\n",
        "        IPython.notebook.keyboard_manager.register_events(el);\n",
        "    } else {\n",
        "        // location in version 2\n",
        "        IPython.keyboard_manager.register_events(el);\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._key_event_extra = function (event, _name) {\n",
        "    var manager = IPython.notebook.keyboard_manager;\n",
        "    if (!manager) {\n",
        "        manager = IPython.keyboard_manager;\n",
        "    }\n",
        "\n",
        "    // Check for shift+enter\n",
        "    if (event.shiftKey && event.which === 13) {\n",
        "        this.canvas_div.blur();\n",
        "        // select the cell after this one\n",
        "        var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n",
        "        IPython.notebook.select(index + 1);\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
        "    fig.ondownload(fig, null);\n",
        "};\n",
        "\n",
        "mpl.find_output_cell = function (html_output) {\n",
        "    // Return the cell and output element which can be found *uniquely* in the notebook.\n",
        "    // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
        "    // IPython event is triggered only after the cells have been serialised, which for\n",
        "    // our purposes (turning an active figure into a static one), is too late.\n",
        "    var cells = IPython.notebook.get_cells();\n",
        "    var ncells = cells.length;\n",
        "    for (var i = 0; i < ncells; i++) {\n",
        "        var cell = cells[i];\n",
        "        if (cell.cell_type === 'code') {\n",
        "            for (var j = 0; j < cell.output_area.outputs.length; j++) {\n",
        "                var data = cell.output_area.outputs[j];\n",
        "                if (data.data) {\n",
        "                    // IPython >= 3 moved mimebundle to data attribute of output\n",
        "                    data = data.data;\n",
        "                }\n",
        "                if (data['text/html'] === html_output) {\n",
        "                    return [cell, data, j];\n",
        "                }\n",
        "            }\n",
        "        }\n",
        "    }\n",
        "};\n",
        "\n",
        "// Register the function which deals with the matplotlib target/channel.\n",
        "// The kernel may be null if the page has been refreshed.\n",
        "if (IPython.notebook.kernel !== null) {\n",
        "    IPython.notebook.kernel.comm_manager.register_target(\n",
        "        'matplotlib',\n",
        "        mpl.mpl_figure_comm\n",
        "    );\n",
        "}\n"
       ],
       "text/plain": [
        "<IPython.core.display.Javascript object>"
       ]
      },
      "metadata": {},
      "output_type": "display_data"
     },
     {
      "data": {
       "text/html": [
-       "<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4QAAAGQCAYAAAD2lq6fAAAgAElEQVR4nOzdeXhM1/8H8DMRe2wl1rZK6YJS1L6l9qWiVaIqllClJVVr0YrQVpGiRQlRSxWlllpavmonNFSJJYgSFbGGiGyT2d6/P/LLaaa5iUwi987yfj3PeR6599w7n5nJGeede+deASIiIiIiInJJQusCiIiIiIiISBsMhERERERERC6KgZCIiIiIiMhFMRASERERERG5KAZCIiIiIiIiF8VASERERERE5KIYCImIiIiIiFwUAyEREREREZGLYiAkIiIiIiJyUQyERERERERELoqBkIiIiIiIyEUxEBIREREREbkoBkIiIiIiIiIXxUDo5MxmM9atW4egoCCtSyEiIiIiIjvDQOikLBYL1q9fj1q1akEIgYEDB2pdEhERERER2RkGQid19uxZXL58GcuWLWMgJCIiIiIiRQyETm7//v0MhEREREREpIiB0MkxEBIRERERUVYYCJ1cTgOhXq9HfHy8bHFxcbhy5QoePnxotZyNjY2NjY2NjY0tv9vDhw8RHR0Ns9mszqTZhTEQOrmcBsKpU6dCCMHGxsbGxsbGxsZmNy06OlqdSbMLYyB0crk9Qnj9+nU5CLX+CxEbGxsbGxsbG5trtejoaAgh8PDhQ3UmzS6MgdDJ5fY7hPHx8RBCID4+Pn8KIyIiIiLKAuei6mEgdHIMhETOwWAwYMUPy7Hih+UwGAxal0NERJSvOBdVDwOhk2MgJHIOBoMB87/7FvO/+5aBkIiInB7nouphIHRyDIREzoGBkIiIXAnnouphIHRyDIREzoGBkIiIXAnnouphIHRy69atgxACvXv3tmk7DkIi+8JASEREroRzUfUwEDqpq1evYu7cuahatSqEEChSpAimTp2K3bt352h7DkIi+8JASEREroRzUfUwEJIiDkIi+8JASEREroRzUfUwEJIiDkIi+2IwGPDj2tX4ce1qBkIiInJ6nIuqh4GQFHEQEhE9GRaLBSaTCampqUhOTkZCQgLi4+Px4MED3Lt3D7dv30ZMTAyuX7+OqKgo/P3337h06RIiIiJw7tw5hIeH46+//sKJEyfwxx9/IDQ0FIcOHcL+/fuxZ88e/O9//8POnTuxY8cObN26FZs3b8bPP/+M9evX46effsK6deuwdu1arFmzBj/++CNWr16N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3BcGQiIisoaBkIiIvM7169dRpkwZiEiRYwWqsRYIdTodevfuDRFBeHg4rl27ZrGcewPh5cuXERAQAH9/f2zYsMFk2cOHDyM2NtZqvQy9iooIkpKSbNoXBkIiIrKGgZCIiLzOjBkzlG/SisNaIAQArVaLt99+G+XKlUPdunWxYMECk94/8/LysGTJEpQpUwbVq1fH0aNHlXmpqakQEZQpUwa9evXCmDFj0L9/f4SGhuLw4cNF1m306NHw8/PDsWPHbNoXBkIiIrKGgZCIiLzGzp078cILL6B8+fJK5y+vvPIKli1bZlc5RQVCgwsXLmDChAno3Lkz7r//foSFhaFZs2Zo0qQJYmNj8emnn+L69etm682dOxctW7ZEuXLlEBYWhkGDBuH06dM21e3PP/9Er169bN4XBkIiIrKGgZCIiOgetgbC0oCBkIiIrGEgJCIiugcDIRER+QoGQiIionuICJo2bQq9Xu/uqjhszZo1DIRERGQRAyEREdE9oqKiEBUVhcTERIwePRrz5s1zd5Xscvr0aYwePRrJycl4+umnERUVhS+++MLd1SIiIg/EQEhEREREROSjGAiJiIiIiIh8FAMhERERERGRj2IgJCIiIiIi8lEMhERERERERD6KgZCIiIiIiMhHMRASERERERH5qP8Hk/GP4gxOueUAAAAASUVORK5CYII=\" width=\"900\">"
+       "<img src=\"data:image/png;base64,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\" width=\"900\">"
       ],
       "text/plain": [
        "<IPython.core.display.HTML object>"
       ]
      },
      "metadata": {},
      "output_type": "display_data"
     }
    ],
    "source": [
     "if True:\n",
     "    fig=plt.figure(figsize=(9,4))\n",
     "    fig.subplots_adjust(bottom=0.15, left=0.15, top = 0.95, right=0.9,wspace=0.0,hspace=0.0)\n",
     "    sub = fig.add_subplot(1,1,1)\n",
     "    \n",
     "    #this plot shows the peaks of the oscillation\n",
     "    sub.plot(ax.T_peak,ax.theta_peak,linestyle=':',marker='+',color='xkcd:blue',linewidth=2)\n",
     "\n",
     "    #this plot shows all the points\n",
     "    sub.plot(ax.T,ax.theta,linestyle='-',linewidth=2,alpha=1,c='xkcd:black')\n",
     "\n",
     "    \n",
     "    \n",
     "    sub.set_xlabel(r'$T ~[{\\rm GeV}]$')\n",
     "    sub.xaxis.set_label_coords(0.5, -0.1) \n",
     "    sub.set_ylabel(r'$\\theta$')\n",
     "    sub.yaxis.set_label_coords(-0.1,0.5) \n",
     "\n",
     "    sub.axhline(ax.theta_osc,linestyle=':',color='xkcd:red',linewidth=1.5)\n",
     "    sub.axvline(ax.T_osc,linestyle='--',color='xkcd:gray',linewidth=1.5)\n",
     "    \n",
     "    \n",
     "    \n",
     "    #set major ticks\n",
     "    _M_xticks=[ round(0.45+i*0.15,4) for i in range(0,15) ]\n",
     "    _M_yticks=[ round(-0.4+i*0.1,3) for i in range(0,20,2)  ]\n",
     "\n",
     "    #set major ticks that will not have a label\n",
     "    _M_xticks_exception=[]\n",
     "    _M_yticks_exception=[]\n",
     "\n",
     "    _m_xticks=[]\n",
     "    _m_yticks=[]  \n",
     "    ft=FT(_M_xticks,_M_yticks,\n",
     "                 _M_xticks_exception,_M_yticks_exception,\n",
     "                 _m_xticks,_m_yticks,\n",
     "                 xmin=0.45,xmax=2,ymin=-0.4,ymax=1,xscale='linear',yscale='linear')\n",
     "\n",
     "    ft.format_ticks(plt,sub)    \n",
     "\n",
     "    \n",
     "    sub.text(x=0.92,y=0.1, s=r'$T_{\\rm osc}$',rotation=90)\n",
     "    sub.text(x=1.5,y=0.8, s=r'$\\theta_{\\rm osc}$')\n",
     "    \n",
     "    sub.text(x=0.5,y=0.2, s=r'$\\theta_{\\rm max}$',rotation=20)\n",
     "    \n",
     "    sub.text(x=1.6,y=-0.3,\n",
     "         s=r'$f_{a}=10^{12}~{\\rm GeV}$'+'\\n'+ r'$\\theta_i = 0.94435$')\n",
     "    \n",
     "#     fig.savefig('theta_evolution.pdf',bbox_inches='tight')\n",
     "\n",
     "    fig.show()"
    ]
   },
   {
    "cell_type": "code",
    "execution_count": 11,
    "metadata": {},
    "outputs": [
     {
      "data": {
       "application/javascript": [
        "/* Put everything inside the global mpl namespace */\n",
        "/* global mpl */\n",
        "window.mpl = {};\n",
        "\n",
        "mpl.get_websocket_type = function () {\n",
        "    if (typeof WebSocket !== 'undefined') {\n",
        "        return WebSocket;\n",
        "    } else if (typeof MozWebSocket !== 'undefined') {\n",
        "        return MozWebSocket;\n",
        "    } else {\n",
        "        alert(\n",
        "            'Your browser does not have WebSocket support. ' +\n",
        "                'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
        "                'Firefox 4 and 5 are also supported but you ' +\n",
        "                'have to enable WebSockets in about:config.'\n",
        "        );\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n",
        "    this.id = figure_id;\n",
        "\n",
        "    this.ws = websocket;\n",
        "\n",
        "    this.supports_binary = this.ws.binaryType !== undefined;\n",
        "\n",
        "    if (!this.supports_binary) {\n",
        "        var warnings = document.getElementById('mpl-warnings');\n",
        "        if (warnings) {\n",
        "            warnings.style.display = 'block';\n",
        "            warnings.textContent =\n",
        "                'This browser does not support binary websocket messages. ' +\n",
        "                'Performance may be slow.';\n",
        "        }\n",
        "    }\n",
        "\n",
        "    this.imageObj = new Image();\n",
        "\n",
        "    this.context = undefined;\n",
        "    this.message = undefined;\n",
        "    this.canvas = undefined;\n",
        "    this.rubberband_canvas = undefined;\n",
        "    this.rubberband_context = undefined;\n",
        "    this.format_dropdown = undefined;\n",
        "\n",
        "    this.image_mode = 'full';\n",
        "\n",
        "    this.root = document.createElement('div');\n",
        "    this.root.setAttribute('style', 'display: inline-block');\n",
        "    this._root_extra_style(this.root);\n",
        "\n",
        "    parent_element.appendChild(this.root);\n",
        "\n",
        "    this._init_header(this);\n",
        "    this._init_canvas(this);\n",
        "    this._init_toolbar(this);\n",
        "\n",
        "    var fig = this;\n",
        "\n",
        "    this.waiting = false;\n",
        "\n",
        "    this.ws.onopen = function () {\n",
        "        fig.send_message('supports_binary', { value: fig.supports_binary });\n",
        "        fig.send_message('send_image_mode', {});\n",
        "        if (fig.ratio !== 1) {\n",
        "            fig.send_message('set_dpi_ratio', { dpi_ratio: fig.ratio });\n",
        "        }\n",
        "        fig.send_message('refresh', {});\n",
        "    };\n",
        "\n",
        "    this.imageObj.onload = function () {\n",
        "        if (fig.image_mode === 'full') {\n",
        "            // Full images could contain transparency (where diff images\n",
        "            // almost always do), so we need to clear the canvas so that\n",
        "            // there is no ghosting.\n",
        "            fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
        "        }\n",
        "        fig.context.drawImage(fig.imageObj, 0, 0);\n",
        "    };\n",
        "\n",
        "    this.imageObj.onunload = function () {\n",
        "        fig.ws.close();\n",
        "    };\n",
        "\n",
        "    this.ws.onmessage = this._make_on_message_function(this);\n",
        "\n",
        "    this.ondownload = ondownload;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._init_header = function () {\n",
        "    var titlebar = document.createElement('div');\n",
        "    titlebar.classList =\n",
        "        'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n",
        "    var titletext = document.createElement('div');\n",
        "    titletext.classList = 'ui-dialog-title';\n",
        "    titletext.setAttribute(\n",
        "        'style',\n",
        "        'width: 100%; text-align: center; padding: 3px;'\n",
        "    );\n",
        "    titlebar.appendChild(titletext);\n",
        "    this.root.appendChild(titlebar);\n",
        "    this.header = titletext;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n",
        "\n",
        "mpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n",
        "\n",
        "mpl.figure.prototype._init_canvas = function () {\n",
        "    var fig = this;\n",
        "\n",
        "    var canvas_div = (this.canvas_div = document.createElement('div'));\n",
        "    canvas_div.setAttribute(\n",
        "        'style',\n",
        "        'border: 1px solid #ddd;' +\n",
        "            'box-sizing: content-box;' +\n",
        "            'clear: both;' +\n",
        "            'min-height: 1px;' +\n",
        "            'min-width: 1px;' +\n",
        "            'outline: 0;' +\n",
        "            'overflow: hidden;' +\n",
        "            'position: relative;' +\n",
        "            'resize: both;'\n",
        "    );\n",
        "\n",
        "    function on_keyboard_event_closure(name) {\n",
        "        return function (event) {\n",
        "            return fig.key_event(event, name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    canvas_div.addEventListener(\n",
        "        'keydown',\n",
        "        on_keyboard_event_closure('key_press')\n",
        "    );\n",
        "    canvas_div.addEventListener(\n",
        "        'keyup',\n",
        "        on_keyboard_event_closure('key_release')\n",
        "    );\n",
        "\n",
        "    this._canvas_extra_style(canvas_div);\n",
        "    this.root.appendChild(canvas_div);\n",
        "\n",
        "    var canvas = (this.canvas = document.createElement('canvas'));\n",
        "    canvas.classList.add('mpl-canvas');\n",
        "    canvas.setAttribute('style', 'box-sizing: content-box;');\n",
        "\n",
        "    this.context = canvas.getContext('2d');\n",
        "\n",
        "    var backingStore =\n",
        "        this.context.backingStorePixelRatio ||\n",
        "        this.context.webkitBackingStorePixelRatio ||\n",
        "        this.context.mozBackingStorePixelRatio ||\n",
        "        this.context.msBackingStorePixelRatio ||\n",
        "        this.context.oBackingStorePixelRatio ||\n",
        "        this.context.backingStorePixelRatio ||\n",
        "        1;\n",
        "\n",
        "    this.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
        "\n",
        "    var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n",
        "        'canvas'\n",
        "    ));\n",
        "    rubberband_canvas.setAttribute(\n",
        "        'style',\n",
        "        'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n",
        "    );\n",
        "\n",
        "    // Apply a ponyfill if ResizeObserver is not implemented by browser.\n",
        "    if (this.ResizeObserver === undefined) {\n",
        "        if (window.ResizeObserver !== undefined) {\n",
        "            this.ResizeObserver = window.ResizeObserver;\n",
        "        } else {\n",
        "            var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n",
        "            this.ResizeObserver = obs.ResizeObserver;\n",
        "        }\n",
        "    }\n",
        "\n",
        "    this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n",
        "        var nentries = entries.length;\n",
        "        for (var i = 0; i < nentries; i++) {\n",
        "            var entry = entries[i];\n",
        "            var width, height;\n",
        "            if (entry.contentBoxSize) {\n",
        "                if (entry.contentBoxSize instanceof Array) {\n",
        "                    // Chrome 84 implements new version of spec.\n",
        "                    width = entry.contentBoxSize[0].inlineSize;\n",
        "                    height = entry.contentBoxSize[0].blockSize;\n",
        "                } else {\n",
        "                    // Firefox implements old version of spec.\n",
        "                    width = entry.contentBoxSize.inlineSize;\n",
        "                    height = entry.contentBoxSize.blockSize;\n",
        "                }\n",
        "            } else {\n",
        "                // Chrome <84 implements even older version of spec.\n",
        "                width = entry.contentRect.width;\n",
        "                height = entry.contentRect.height;\n",
        "            }\n",
        "\n",
        "            // Keep the size of the canvas and rubber band canvas in sync with\n",
        "            // the canvas container.\n",
        "            if (entry.devicePixelContentBoxSize) {\n",
        "                // Chrome 84 implements new version of spec.\n",
        "                canvas.setAttribute(\n",
        "                    'width',\n",
        "                    entry.devicePixelContentBoxSize[0].inlineSize\n",
        "                );\n",
        "                canvas.setAttribute(\n",
        "                    'height',\n",
        "                    entry.devicePixelContentBoxSize[0].blockSize\n",
        "                );\n",
        "            } else {\n",
        "                canvas.setAttribute('width', width * fig.ratio);\n",
        "                canvas.setAttribute('height', height * fig.ratio);\n",
        "            }\n",
        "            canvas.setAttribute(\n",
        "                'style',\n",
        "                'width: ' + width + 'px; height: ' + height + 'px;'\n",
        "            );\n",
        "\n",
        "            rubberband_canvas.setAttribute('width', width);\n",
        "            rubberband_canvas.setAttribute('height', height);\n",
        "\n",
        "            // And update the size in Python. We ignore the initial 0/0 size\n",
        "            // that occurs as the element is placed into the DOM, which should\n",
        "            // otherwise not happen due to the minimum size styling.\n",
        "            if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n",
        "                fig.request_resize(width, height);\n",
        "            }\n",
        "        }\n",
        "    });\n",
        "    this.resizeObserverInstance.observe(canvas_div);\n",
        "\n",
        "    function on_mouse_event_closure(name) {\n",
        "        return function (event) {\n",
        "            return fig.mouse_event(event, name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mousedown',\n",
        "        on_mouse_event_closure('button_press')\n",
        "    );\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mouseup',\n",
        "        on_mouse_event_closure('button_release')\n",
        "    );\n",
        "    // Throttle sequential mouse events to 1 every 20ms.\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mousemove',\n",
        "        on_mouse_event_closure('motion_notify')\n",
        "    );\n",
        "\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mouseenter',\n",
        "        on_mouse_event_closure('figure_enter')\n",
        "    );\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mouseleave',\n",
        "        on_mouse_event_closure('figure_leave')\n",
        "    );\n",
        "\n",
        "    canvas_div.addEventListener('wheel', function (event) {\n",
        "        if (event.deltaY < 0) {\n",
        "            event.step = 1;\n",
        "        } else {\n",
        "            event.step = -1;\n",
        "        }\n",
        "        on_mouse_event_closure('scroll')(event);\n",
        "    });\n",
        "\n",
        "    canvas_div.appendChild(canvas);\n",
        "    canvas_div.appendChild(rubberband_canvas);\n",
        "\n",
        "    this.rubberband_context = rubberband_canvas.getContext('2d');\n",
        "    this.rubberband_context.strokeStyle = '#000000';\n",
        "\n",
        "    this._resize_canvas = function (width, height, forward) {\n",
        "        if (forward) {\n",
        "            canvas_div.style.width = width + 'px';\n",
        "            canvas_div.style.height = height + 'px';\n",
        "        }\n",
        "    };\n",
        "\n",
        "    // Disable right mouse context menu.\n",
        "    this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n",
        "        event.preventDefault();\n",
        "        return false;\n",
        "    });\n",
        "\n",
        "    function set_focus() {\n",
        "        canvas.focus();\n",
        "        canvas_div.focus();\n",
        "    }\n",
        "\n",
        "    window.setTimeout(set_focus, 100);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._init_toolbar = function () {\n",
        "    var fig = this;\n",
        "\n",
        "    var toolbar = document.createElement('div');\n",
        "    toolbar.classList = 'mpl-toolbar';\n",
        "    this.root.appendChild(toolbar);\n",
        "\n",
        "    function on_click_closure(name) {\n",
        "        return function (_event) {\n",
        "            return fig.toolbar_button_onclick(name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    function on_mouseover_closure(tooltip) {\n",
        "        return function (event) {\n",
        "            if (!event.currentTarget.disabled) {\n",
        "                return fig.toolbar_button_onmouseover(tooltip);\n",
        "            }\n",
        "        };\n",
        "    }\n",
        "\n",
        "    fig.buttons = {};\n",
        "    var buttonGroup = document.createElement('div');\n",
        "    buttonGroup.classList = 'mpl-button-group';\n",
        "    for (var toolbar_ind in mpl.toolbar_items) {\n",
        "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
        "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
        "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
        "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
        "\n",
        "        if (!name) {\n",
        "            /* Instead of a spacer, we start a new button group. */\n",
        "            if (buttonGroup.hasChildNodes()) {\n",
        "                toolbar.appendChild(buttonGroup);\n",
        "            }\n",
        "            buttonGroup = document.createElement('div');\n",
        "            buttonGroup.classList = 'mpl-button-group';\n",
        "            continue;\n",
        "        }\n",
        "\n",
        "        var button = (fig.buttons[name] = document.createElement('button'));\n",
        "        button.classList = 'mpl-widget';\n",
        "        button.setAttribute('role', 'button');\n",
        "        button.setAttribute('aria-disabled', 'false');\n",
        "        button.addEventListener('click', on_click_closure(method_name));\n",
        "        button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
        "\n",
        "        var icon_img = document.createElement('img');\n",
        "        icon_img.src = '_images/' + image + '.png';\n",
        "        icon_img.srcset = '_images/' + image + '_large.png 2x';\n",
        "        icon_img.alt = tooltip;\n",
        "        button.appendChild(icon_img);\n",
        "\n",
        "        buttonGroup.appendChild(button);\n",
        "    }\n",
        "\n",
        "    if (buttonGroup.hasChildNodes()) {\n",
        "        toolbar.appendChild(buttonGroup);\n",
        "    }\n",
        "\n",
        "    var fmt_picker = document.createElement('select');\n",
        "    fmt_picker.classList = 'mpl-widget';\n",
        "    toolbar.appendChild(fmt_picker);\n",
        "    this.format_dropdown = fmt_picker;\n",
        "\n",
        "    for (var ind in mpl.extensions) {\n",
        "        var fmt = mpl.extensions[ind];\n",
        "        var option = document.createElement('option');\n",
        "        option.selected = fmt === mpl.default_extension;\n",
        "        option.innerHTML = fmt;\n",
        "        fmt_picker.appendChild(option);\n",
        "    }\n",
        "\n",
        "    var status_bar = document.createElement('span');\n",
        "    status_bar.classList = 'mpl-message';\n",
        "    toolbar.appendChild(status_bar);\n",
        "    this.message = status_bar;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n",
        "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
        "    // which will in turn request a refresh of the image.\n",
        "    this.send_message('resize', { width: x_pixels, height: y_pixels });\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.send_message = function (type, properties) {\n",
        "    properties['type'] = type;\n",
        "    properties['figure_id'] = this.id;\n",
        "    this.ws.send(JSON.stringify(properties));\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.send_draw_message = function () {\n",
        "    if (!this.waiting) {\n",
        "        this.waiting = true;\n",
        "        this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
        "    var format_dropdown = fig.format_dropdown;\n",
        "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
        "    fig.ondownload(fig, format);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_resize = function (fig, msg) {\n",
        "    var size = msg['size'];\n",
        "    if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n",
        "        fig._resize_canvas(size[0], size[1], msg['forward']);\n",
        "        fig.send_message('refresh', {});\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_rubberband = function (fig, msg) {\n",
        "    var x0 = msg['x0'] / fig.ratio;\n",
        "    var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n",
        "    var x1 = msg['x1'] / fig.ratio;\n",
        "    var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n",
        "    x0 = Math.floor(x0) + 0.5;\n",
        "    y0 = Math.floor(y0) + 0.5;\n",
        "    x1 = Math.floor(x1) + 0.5;\n",
        "    y1 = Math.floor(y1) + 0.5;\n",
        "    var min_x = Math.min(x0, x1);\n",
        "    var min_y = Math.min(y0, y1);\n",
        "    var width = Math.abs(x1 - x0);\n",
        "    var height = Math.abs(y1 - y0);\n",
        "\n",
        "    fig.rubberband_context.clearRect(\n",
        "        0,\n",
        "        0,\n",
        "        fig.canvas.width / fig.ratio,\n",
        "        fig.canvas.height / fig.ratio\n",
        "    );\n",
        "\n",
        "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_figure_label = function (fig, msg) {\n",
        "    // Updates the figure title.\n",
        "    fig.header.textContent = msg['label'];\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_cursor = function (fig, msg) {\n",
        "    var cursor = msg['cursor'];\n",
        "    switch (cursor) {\n",
        "        case 0:\n",
        "            cursor = 'pointer';\n",
        "            break;\n",
        "        case 1:\n",
        "            cursor = 'default';\n",
        "            break;\n",
        "        case 2:\n",
        "            cursor = 'crosshair';\n",
        "            break;\n",
        "        case 3:\n",
        "            cursor = 'move';\n",
        "            break;\n",
        "    }\n",
        "    fig.rubberband_canvas.style.cursor = cursor;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_message = function (fig, msg) {\n",
        "    fig.message.textContent = msg['message'];\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_draw = function (fig, _msg) {\n",
        "    // Request the server to send over a new figure.\n",
        "    fig.send_draw_message();\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_image_mode = function (fig, msg) {\n",
        "    fig.image_mode = msg['mode'];\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n",
        "    for (var key in msg) {\n",
        "        if (!(key in fig.buttons)) {\n",
        "            continue;\n",
        "        }\n",
        "        fig.buttons[key].disabled = !msg[key];\n",
        "        fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n",
        "    if (msg['mode'] === 'PAN') {\n",
        "        fig.buttons['Pan'].classList.add('active');\n",
        "        fig.buttons['Zoom'].classList.remove('active');\n",
        "    } else if (msg['mode'] === 'ZOOM') {\n",
        "        fig.buttons['Pan'].classList.remove('active');\n",
        "        fig.buttons['Zoom'].classList.add('active');\n",
        "    } else {\n",
        "        fig.buttons['Pan'].classList.remove('active');\n",
        "        fig.buttons['Zoom'].classList.remove('active');\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.updated_canvas_event = function () {\n",
        "    // Called whenever the canvas gets updated.\n",
        "    this.send_message('ack', {});\n",
        "};\n",
        "\n",
        "// A function to construct a web socket function for onmessage handling.\n",
        "// Called in the figure constructor.\n",
        "mpl.figure.prototype._make_on_message_function = function (fig) {\n",
        "    return function socket_on_message(evt) {\n",
        "        if (evt.data instanceof Blob) {\n",
        "            /* FIXME: We get \"Resource interpreted as Image but\n",
        "             * transferred with MIME type text/plain:\" errors on\n",
        "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
        "             * to be part of the websocket stream */\n",
        "            evt.data.type = 'image/png';\n",
        "\n",
        "            /* Free the memory for the previous frames */\n",
        "            if (fig.imageObj.src) {\n",
        "                (window.URL || window.webkitURL).revokeObjectURL(\n",
        "                    fig.imageObj.src\n",
        "                );\n",
        "            }\n",
        "\n",
        "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
        "                evt.data\n",
        "            );\n",
        "            fig.updated_canvas_event();\n",
        "            fig.waiting = false;\n",
        "            return;\n",
        "        } else if (\n",
        "            typeof evt.data === 'string' &&\n",
        "            evt.data.slice(0, 21) === 'data:image/png;base64'\n",
        "        ) {\n",
        "            fig.imageObj.src = evt.data;\n",
        "            fig.updated_canvas_event();\n",
        "            fig.waiting = false;\n",
        "            return;\n",
        "        }\n",
        "\n",
        "        var msg = JSON.parse(evt.data);\n",
        "        var msg_type = msg['type'];\n",
        "\n",
        "        // Call the  \"handle_{type}\" callback, which takes\n",
        "        // the figure and JSON message as its only arguments.\n",
        "        try {\n",
        "            var callback = fig['handle_' + msg_type];\n",
        "        } catch (e) {\n",
        "            console.log(\n",
        "                \"No handler for the '\" + msg_type + \"' message type: \",\n",
        "                msg\n",
        "            );\n",
        "            return;\n",
        "        }\n",
        "\n",
        "        if (callback) {\n",
        "            try {\n",
        "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
        "                callback(fig, msg);\n",
        "            } catch (e) {\n",
        "                console.log(\n",
        "                    \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n",
        "                    e,\n",
        "                    e.stack,\n",
        "                    msg\n",
        "                );\n",
        "            }\n",
        "        }\n",
        "    };\n",
        "};\n",
        "\n",
        "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
        "mpl.findpos = function (e) {\n",
        "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
        "    var targ;\n",
        "    if (!e) {\n",
        "        e = window.event;\n",
        "    }\n",
        "    if (e.target) {\n",
        "        targ = e.target;\n",
        "    } else if (e.srcElement) {\n",
        "        targ = e.srcElement;\n",
        "    }\n",
        "    if (targ.nodeType === 3) {\n",
        "        // defeat Safari bug\n",
        "        targ = targ.parentNode;\n",
        "    }\n",
        "\n",
        "    // pageX,Y are the mouse positions relative to the document\n",
        "    var boundingRect = targ.getBoundingClientRect();\n",
        "    var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n",
        "    var y = e.pageY - (boundingRect.top + document.body.scrollTop);\n",
        "\n",
        "    return { x: x, y: y };\n",
        "};\n",
        "\n",
        "/*\n",
        " * return a copy of an object with only non-object keys\n",
        " * we need this to avoid circular references\n",
        " * http://stackoverflow.com/a/24161582/3208463\n",
        " */\n",
        "function simpleKeys(original) {\n",
        "    return Object.keys(original).reduce(function (obj, key) {\n",
        "        if (typeof original[key] !== 'object') {\n",
        "            obj[key] = original[key];\n",
        "        }\n",
        "        return obj;\n",
        "    }, {});\n",
        "}\n",
        "\n",
        "mpl.figure.prototype.mouse_event = function (event, name) {\n",
        "    var canvas_pos = mpl.findpos(event);\n",
        "\n",
        "    if (name === 'button_press') {\n",
        "        this.canvas.focus();\n",
        "        this.canvas_div.focus();\n",
        "    }\n",
        "\n",
        "    var x = canvas_pos.x * this.ratio;\n",
        "    var y = canvas_pos.y * this.ratio;\n",
        "\n",
        "    this.send_message(name, {\n",
        "        x: x,\n",
        "        y: y,\n",
        "        button: event.button,\n",
        "        step: event.step,\n",
        "        guiEvent: simpleKeys(event),\n",
        "    });\n",
        "\n",
        "    /* This prevents the web browser from automatically changing to\n",
        "     * the text insertion cursor when the button is pressed.  We want\n",
        "     * to control all of the cursor setting manually through the\n",
        "     * 'cursor' event from matplotlib */\n",
        "    event.preventDefault();\n",
        "    return false;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._key_event_extra = function (_event, _name) {\n",
        "    // Handle any extra behaviour associated with a key event\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.key_event = function (event, name) {\n",
        "    // Prevent repeat events\n",
        "    if (name === 'key_press') {\n",
        "        if (event.which === this._key) {\n",
        "            return;\n",
        "        } else {\n",
        "            this._key = event.which;\n",
        "        }\n",
        "    }\n",
        "    if (name === 'key_release') {\n",
        "        this._key = null;\n",
        "    }\n",
        "\n",
        "    var value = '';\n",
        "    if (event.ctrlKey && event.which !== 17) {\n",
        "        value += 'ctrl+';\n",
        "    }\n",
        "    if (event.altKey && event.which !== 18) {\n",
        "        value += 'alt+';\n",
        "    }\n",
        "    if (event.shiftKey && event.which !== 16) {\n",
        "        value += 'shift+';\n",
        "    }\n",
        "\n",
        "    value += 'k';\n",
        "    value += event.which.toString();\n",
        "\n",
        "    this._key_event_extra(event, name);\n",
        "\n",
        "    this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n",
        "    return false;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.toolbar_button_onclick = function (name) {\n",
        "    if (name === 'download') {\n",
        "        this.handle_save(this, null);\n",
        "    } else {\n",
        "        this.send_message('toolbar_button', { name: name });\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n",
        "    this.message.textContent = tooltip;\n",
        "};\n",
        "\n",
        "///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n",
        "// prettier-ignore\n",
        "var _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\n",
        "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
        "\n",
        "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
        "\n",
        "mpl.default_extension = \"png\";/* global mpl */\n",
        "\n",
        "var comm_websocket_adapter = function (comm) {\n",
        "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
        "    // object with the appropriate methods. Currently this is a non binary\n",
        "    // socket, so there is still some room for performance tuning.\n",
        "    var ws = {};\n",
        "\n",
        "    ws.close = function () {\n",
        "        comm.close();\n",
        "    };\n",
        "    ws.send = function (m) {\n",
        "        //console.log('sending', m);\n",
        "        comm.send(m);\n",
        "    };\n",
        "    // Register the callback with on_msg.\n",
        "    comm.on_msg(function (msg) {\n",
        "        //console.log('receiving', msg['content']['data'], msg);\n",
        "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
        "        ws.onmessage(msg['content']['data']);\n",
        "    });\n",
        "    return ws;\n",
        "};\n",
        "\n",
        "mpl.mpl_figure_comm = function (comm, msg) {\n",
        "    // This is the function which gets called when the mpl process\n",
        "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
        "\n",
        "    var id = msg.content.data.id;\n",
        "    // Get hold of the div created by the display call when the Comm\n",
        "    // socket was opened in Python.\n",
        "    var element = document.getElementById(id);\n",
        "    var ws_proxy = comm_websocket_adapter(comm);\n",
        "\n",
        "    function ondownload(figure, _format) {\n",
        "        window.open(figure.canvas.toDataURL());\n",
        "    }\n",
        "\n",
        "    var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n",
        "\n",
        "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
        "    // web socket which is closed, not our websocket->open comm proxy.\n",
        "    ws_proxy.onopen();\n",
        "\n",
        "    fig.parent_element = element;\n",
        "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
        "    if (!fig.cell_info) {\n",
        "        console.error('Failed to find cell for figure', id, fig);\n",
        "        return;\n",
        "    }\n",
        "    fig.cell_info[0].output_area.element.on(\n",
        "        'cleared',\n",
        "        { fig: fig },\n",
        "        fig._remove_fig_handler\n",
        "    );\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_close = function (fig, msg) {\n",
        "    var width = fig.canvas.width / fig.ratio;\n",
        "    fig.cell_info[0].output_area.element.off(\n",
        "        'cleared',\n",
        "        fig._remove_fig_handler\n",
        "    );\n",
        "    fig.resizeObserverInstance.unobserve(fig.canvas_div);\n",
        "\n",
        "    // Update the output cell to use the data from the current canvas.\n",
        "    fig.push_to_output();\n",
        "    var dataURL = fig.canvas.toDataURL();\n",
        "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
        "    // the notebook keyboard shortcuts fail.\n",
        "    IPython.keyboard_manager.enable();\n",
        "    fig.parent_element.innerHTML =\n",
        "        '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
        "    fig.close_ws(fig, msg);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.close_ws = function (fig, msg) {\n",
        "    fig.send_message('closing', msg);\n",
        "    // fig.ws.close()\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.push_to_output = function (_remove_interactive) {\n",
        "    // Turn the data on the canvas into data in the output cell.\n",
        "    var width = this.canvas.width / this.ratio;\n",
        "    var dataURL = this.canvas.toDataURL();\n",
        "    this.cell_info[1]['text/html'] =\n",
        "        '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.updated_canvas_event = function () {\n",
        "    // Tell IPython that the notebook contents must change.\n",
        "    IPython.notebook.set_dirty(true);\n",
        "    this.send_message('ack', {});\n",
        "    var fig = this;\n",
        "    // Wait a second, then push the new image to the DOM so\n",
        "    // that it is saved nicely (might be nice to debounce this).\n",
        "    setTimeout(function () {\n",
        "        fig.push_to_output();\n",
        "    }, 1000);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._init_toolbar = function () {\n",
        "    var fig = this;\n",
        "\n",
        "    var toolbar = document.createElement('div');\n",
        "    toolbar.classList = 'btn-toolbar';\n",
        "    this.root.appendChild(toolbar);\n",
        "\n",
        "    function on_click_closure(name) {\n",
        "        return function (_event) {\n",
        "            return fig.toolbar_button_onclick(name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    function on_mouseover_closure(tooltip) {\n",
        "        return function (event) {\n",
        "            if (!event.currentTarget.disabled) {\n",
        "                return fig.toolbar_button_onmouseover(tooltip);\n",
        "            }\n",
        "        };\n",
        "    }\n",
        "\n",
        "    fig.buttons = {};\n",
        "    var buttonGroup = document.createElement('div');\n",
        "    buttonGroup.classList = 'btn-group';\n",
        "    var button;\n",
        "    for (var toolbar_ind in mpl.toolbar_items) {\n",
        "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
        "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
        "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
        "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
        "\n",
        "        if (!name) {\n",
        "            /* Instead of a spacer, we start a new button group. */\n",
        "            if (buttonGroup.hasChildNodes()) {\n",
        "                toolbar.appendChild(buttonGroup);\n",
        "            }\n",
        "            buttonGroup = document.createElement('div');\n",
        "            buttonGroup.classList = 'btn-group';\n",
        "            continue;\n",
        "        }\n",
        "\n",
        "        button = fig.buttons[name] = document.createElement('button');\n",
        "        button.classList = 'btn btn-default';\n",
        "        button.href = '#';\n",
        "        button.title = name;\n",
        "        button.innerHTML = '<i class=\"fa ' + image + ' fa-lg\"></i>';\n",
        "        button.addEventListener('click', on_click_closure(method_name));\n",
        "        button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
        "        buttonGroup.appendChild(button);\n",
        "    }\n",
        "\n",
        "    if (buttonGroup.hasChildNodes()) {\n",
        "        toolbar.appendChild(buttonGroup);\n",
        "    }\n",
        "\n",
        "    // Add the status bar.\n",
        "    var status_bar = document.createElement('span');\n",
        "    status_bar.classList = 'mpl-message pull-right';\n",
        "    toolbar.appendChild(status_bar);\n",
        "    this.message = status_bar;\n",
        "\n",
        "    // Add the close button to the window.\n",
        "    var buttongrp = document.createElement('div');\n",
        "    buttongrp.classList = 'btn-group inline pull-right';\n",
        "    button = document.createElement('button');\n",
        "    button.classList = 'btn btn-mini btn-primary';\n",
        "    button.href = '#';\n",
        "    button.title = 'Stop Interaction';\n",
        "    button.innerHTML = '<i class=\"fa fa-power-off icon-remove icon-large\"></i>';\n",
        "    button.addEventListener('click', function (_evt) {\n",
        "        fig.handle_close(fig, {});\n",
        "    });\n",
        "    button.addEventListener(\n",
        "        'mouseover',\n",
        "        on_mouseover_closure('Stop Interaction')\n",
        "    );\n",
        "    buttongrp.appendChild(button);\n",
        "    var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n",
        "    titlebar.insertBefore(buttongrp, titlebar.firstChild);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._remove_fig_handler = function (event) {\n",
        "    var fig = event.data.fig;\n",
        "    if (event.target !== this) {\n",
        "        // Ignore bubbled events from children.\n",
        "        return;\n",
        "    }\n",
        "    fig.close_ws(fig, {});\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._root_extra_style = function (el) {\n",
        "    el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._canvas_extra_style = function (el) {\n",
        "    // this is important to make the div 'focusable\n",
        "    el.setAttribute('tabindex', 0);\n",
        "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
        "    // off when our div gets focus\n",
        "\n",
        "    // location in version 3\n",
        "    if (IPython.notebook.keyboard_manager) {\n",
        "        IPython.notebook.keyboard_manager.register_events(el);\n",
        "    } else {\n",
        "        // location in version 2\n",
        "        IPython.keyboard_manager.register_events(el);\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._key_event_extra = function (event, _name) {\n",
        "    var manager = IPython.notebook.keyboard_manager;\n",
        "    if (!manager) {\n",
        "        manager = IPython.keyboard_manager;\n",
        "    }\n",
        "\n",
        "    // Check for shift+enter\n",
        "    if (event.shiftKey && event.which === 13) {\n",
        "        this.canvas_div.blur();\n",
        "        // select the cell after this one\n",
        "        var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n",
        "        IPython.notebook.select(index + 1);\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
        "    fig.ondownload(fig, null);\n",
        "};\n",
        "\n",
        "mpl.find_output_cell = function (html_output) {\n",
        "    // Return the cell and output element which can be found *uniquely* in the notebook.\n",
        "    // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
        "    // IPython event is triggered only after the cells have been serialised, which for\n",
        "    // our purposes (turning an active figure into a static one), is too late.\n",
        "    var cells = IPython.notebook.get_cells();\n",
        "    var ncells = cells.length;\n",
        "    for (var i = 0; i < ncells; i++) {\n",
        "        var cell = cells[i];\n",
        "        if (cell.cell_type === 'code') {\n",
        "            for (var j = 0; j < cell.output_area.outputs.length; j++) {\n",
        "                var data = cell.output_area.outputs[j];\n",
        "                if (data.data) {\n",
        "                    // IPython >= 3 moved mimebundle to data attribute of output\n",
        "                    data = data.data;\n",
        "                }\n",
        "                if (data['text/html'] === html_output) {\n",
        "                    return [cell, data, j];\n",
        "                }\n",
        "            }\n",
        "        }\n",
        "    }\n",
        "};\n",
        "\n",
        "// Register the function which deals with the matplotlib target/channel.\n",
        "// The kernel may be null if the page has been refreshed.\n",
        "if (IPython.notebook.kernel !== null) {\n",
        "    IPython.notebook.kernel.comm_manager.register_target(\n",
        "        'matplotlib',\n",
        "        mpl.mpl_figure_comm\n",
        "    );\n",
        "}\n"
       ],
       "text/plain": [
        "<IPython.core.display.Javascript object>"
       ]
      },
      "metadata": {},
      "output_type": "display_data"
     },
     {
      "data": {
       "text/html": [
-       "<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4QAAAGQCAYAAAD2lq6fAAAgAElEQVR4nOzddXgUR+MH8EmCluAEaZBCi0Mp7tbgwR2KFChWtECBQgkpEjwpbsXdihZocIciRYoFCIXgUjx6ue/vD3437212k+xdkoXkvp/n2ee5m5nd2b2+0+b77u6MABERERERETkk8aFPgIiIiIiIiD4MBkIiIiIiIiIHxUBIRERERETkoBgIiYiIiIiIHBQDIRERERERkYNiICQiIiIiInJQDIREREREREQOioGQiIiIiIjIQTEQEhEREREROSgGQiIiIiIiIgfFQEhEREREROSgGAiJiIiIiIgcFAMhERERERGRg2IgJCIiIiIiclAMhERERERERA6KgZCIiIiIiMhBMRASERERERE5KAZCIiIiIiIiB8VASERERERE5KAYCImIiIiIiBwUAyEREREREZGDYiAkIiIiIiJyUAyEREREREREDoqBkIiIiIiIyEExEBIRERERETkoBkIiIiIiIiIHxUBIRERERETkoBgIiYiIiIiIHBQDIRERERERkYNiICQiIiIiInJQDIREREREREQOioGQiIiIiIjIQTEQEhEREREROSgGQiIiIiIiIgfFQJgIXL16FS1btkSmTJmQPHlyFChQABMnTkRERISqbVhYGKZMmYLWrVtjwIABqFOnDry9vREeHv4BzpyIiIiIiD5mDIQfuX///RcZM2ZE1apV0b59e5QtWxZCCAgh0KFDB0Xb8PBw1K5dG+XLl0doaCgA4N27dyhZsiTq168Pk8n0IS6BiIiIiIg+UgyEHzlPT09s375dUbZp0yY4OTlBCIELFy7Icm9vbwgh4O/vr2i/Y8cOCCHg5+dnyDkTEREREVHiwED4EXv06BEGDBigWdekSRMIIbBmzRoAQGhoKDJkyIA0adKo7gSGh4cjderUcHd3R2RkZIKfNxERERERJQ4MhB+x169f4+XLl5p1Q4cOhRAChw8fBgAcOXIEQgiUK1dOs33p0qUhhMCpU6c060NDQ/Hq1Su5vXjxArdu3cLLly8V5dy4cePGjRs3bty4JfT28uVLBAUF8WaGARgIE6lOnTohZ86ccmKZefPmQQiBZs2aabZv3LgxhBBYuHChZv3o0aPlu4ncuHHjxo0bN27cuH0MW1BQUIL9PU3vMRAmQuHh4ciaNSuWLVsm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y5Yt7d5ORkpOTkbJkiXlY6zR0dGubpJhv/zyi+xYyPquYGxsrKubZjoGQiIi8iQMhOZhICRdRk5Cpet/68f6lDtUVapUgRAChQoVwqZNm2T5hAkT5PL169dXPa755MkT+fNrr72m2d7t27dVHYpYsw5qb775pt370LdvX7nc6dOn06x/9uxZWb9Xr152byejDRo0SLZrxYoVrm6Ow2JiYjB48GDVXUE/Pz+XD+vhSgyERETkSRgIzcNASLqMnIRK76LKI5RCCLRt2xYAUL16dQghkD9/fqxfv16Wf/7553L5Ro0ayflxcXGyDdad01i7f/++5l1FxbVr11K9e2jLRx99JJf7448/0qz/+++/674P6WrW7erQoYOrm+OQiIgI+T6p9f/hv//+6+qmuVRSUhL27tuLvfv2IikpydXNISIiylAMhOZhICRdRk5CpSfRlBfywH89cebNmxdr166V5V988YVc/vXXX5fzHz9+jLt379p8HPPx48eyXBnvUPHnn3/Ksu7du9u9D+PHj5fL/fbbb2nWDw0NlfW//vpru7eT0RITE+WwG3nz5sXjx49d3SS7bN26VfWIaO7cuTF//ny36L2ViIiIzMNAaB4GQtJl5CS0HpBemTp27AgAePHFF+U7batXr5blU6dOlcs3b95czn/48CFu3bpls3MUW+8YnjhxQpYNGDDA7n2YPn26XC40NDTN+t98842sv3TpUru3Y4b+/fvLtv3000+ubo5NFosFkydPhpeXl2xzpUqVcObMGVc3jYiIiFyAgdA8DIQeIiEhwaH3r4ychMqg7tbTO++8AwDw9/eHEAI5cuTAihUrZPn06dPl8kFBQXL+vXv3VJ3GvP3225rtWfdCGhgYqCrbv3+/LBs6dKjd+/D999/L5ebPn59m/U8++UTW37p1q93bMcOePXtk25o1a+bq5qQqOjoa7dq1U31uWrdujQcPHri6aW7FYrHg4cOHePjwIe+YEhFRlsdAaB4Gwixo3bp1mmAmhGNj0hk5CStWrKjZpjIchDKkRLZs2bBs2TJZ/s0338jlW7duLeffvn0bERERmmCZktKBTa1atVTzrd+hGzVqlN37sGrVKrnctGnT0qxvfRfu5MmTdm/HDBaLRQ734eXlhcjISFc3SePSpUvy/VJlmjBhApKTk13dNLfDTmWIiMiTMBCah4EwCwoICECz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2bMnevfujW7duuHy5ctm7obdnPFZiI2NRcGCBVN9PyizfhbSw2Kx4NixYxgwYABq1aqFJUuWGHrn0Ezp/dK357OUGT8LRo9LREQESpQoYfN9608++cQVu2ST0f21WCzo0aMHChcujBw5ciAwMBB9+/bFzJkzNb9PMuPnADB+bDxtfxX2fB966rG5cuUK+vXrhyZNmqBv377o378/OnfujDNnzpi5GxkuM34XkhYDIRGRAT/99BOWLVuGiIgIVzeFiIjIJfhdmDUwEBIREREREXkoBkIiIiIiIiIPxUBIRERERETkoRgIiYiIiIiIPBQDIRERERERkYdiICQiIiIiIvJQDIREREREREQeioGQiIiIiIjIQzEQEhEREREReSgGQiIiIiIiIg/FQEhEREREROShGAiJiIiIiIg8FAMhERERERGRh2IgJCIiIiIi8lAMhERERERERB6KgZCIiIiIiMhDMRASEREREf1/+3UgAAAAACDI33qQyyKYEkIAAIApIQQAAJgSQgAAgCkhBAAAmBJCAACAKSEEAACYEkIAAIApIQQAAJgSQgAAgCkhBAAAmBJCAACAKSEEAACYEkIAAIApIQQAAJgK9sI8hDhWv3gAAAAASUVORK5CYII=\" width=\"900\">"
+       "<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4QAAAGQCAYAAAD2lq6fAAAgAElEQVR4nOzdd3gUReMH8EkiTUInFEMRlA4ivTfpBEKRLkU6KEUBASkh0msivffepAoYegcpUqQFDELoRXrq3X1/f/C7eW+zm2Tvkiwk9/08zz7P3c7szO7p+Ob77u6MABERERERETkl8b5PgIiIiIiIiN4PBkIiIiIiIiInxUBIRERERETkpBgIiYiIiIiInBQDIRERERERkZNiICQiIiIiInJSDIREREREREROioGQiIiIiIjISTEQEhEREREROSkGQiIiIiIiIifFQEhEREREROSkGAiJiIiIiIicFAMhERERERGRk2IgJCIiIiIiclIMhERERERERE6KgZCIiIiIiMhJMRASERERERE5KQZCIiIiIiIiJ8VASERERERE5KQYCImIiIiIiJwUAyEREREREZGTYiAkIiIiIiJyUgyEREREREREToqBkIiIiIiIyEkxEBIRERERETkpBkIiIiIiIiInxUBIRERERETkpBgIiYiIiIiInBQDIRERERERkZNiICQiIiIiInJSDIREREREREROioGQiIiIiIjISTEQEhEREREROSkGQiIiIiIiIifFQJgIXL16Fc2bN0fGjBmRLFky5M+fHxMmTEBkZKSqbnh4OCZPnoyWLVuiX79+qFOnDnx9fREREfEezpyIiIiIiD5kDIQfuH///RcZMmRAlSpV0LZtW5QpUwZCCAgh0K5dO0XdiIgI1K5dG+XKlUNYWBgA4O3btyhRogTq168Pk8n0Pi6BiIiIiIg+UAyEHzgvLy9s375dsW/Tpk1wcXGBEAIXLlyQ+319fSGEQEBAgKL+jh07IISAv7+/IedMRERERESJAwPhB+zhw4fo16+fZlnjxo0hhMCaNWsAAGFhYUifPj1Sp06tuhMYERGBVKlSwdPTE2azOcHPm4iIiIiIEgcGwg/Yq1ev8OLFC82yQYMGQQiBw4cPAwCOHDkCIQTKli2rWb9UqVIQQuDUqVOa5WFhYXj58qXcnj9/jn/++QcvXrxQ7OfGjRs3bty4cePGLaG3Fy9eIDg4mDczDMBAmEh16NABOXLkkBPLzJ07F0IING3aVLO+t7c3hBBYsGCBZvnIkSPlu4ncuHHjxo0bN27cuH0IW3BwcIL9PU3vMBAmQhEREciSJQuWLVsm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unVDjx490LlzZ1y6dMnM3bCbKz4LMTExyJs3b4rvB6XXz4IzLBYLjhw5gr59+6JatWpYtGiRoXcOzeTsl749n6X0+FkwelwiIyPh7+9v833rTz/91B27ZJPR/bVYLOjatSvy58+PLFmyIDg4GL169cL06dM1v0/S4+cAMH5svG1/FfZ8H3rrsbl8+TJ69+6Nhg0bolevXujTpw86dOiAU6dOmbkbaS49fheSFgMhEZEBP/30E5YsWYLIyEh3N4WIiMgt+F2YMTAQEhEREREReSkGQiIiIiIiIi/FQEhEREREROSlGAiJiIiIiIi8FAMhERERERGRl2IgJCIiIiIi8lIMhERERERERF6KgZCIiIiIiMhLMRASERERERF5KQZCIiIiIiIiL8VASERERERE5KUYCImIiIiIiLwUAyEREREREZGXYiAkIiIiIiLyUgyEREREREREXoqBkIiIiIiIyEsxEP5/+3UgAAAAACDI33qQyyIAAIApIQQAAJgSQgAAgCkhBAAAmBJCAACAKSEEAACYEkIAAIApIQQAAJgSQgAAgCkhBAAAmBJCAACAKSEEAACYEkIAAIApIQQAAJgSQgAAgKkAF4A8szcl8lgAAAAASUVORK5CYII=\" width=\"900\">"
       ],
       "text/plain": [
        "<IPython.core.display.HTML object>"
       ]
      },
      "metadata": {},
      "output_type": "display_data"
     }
    ],
    "source": [
     "if True:\n",
     "    fig=plt.figure(figsize=(9,4))\n",
     "    fig.subplots_adjust(bottom=0.15, left=0.15, top = 0.9, right=0.9,wspace=0.0,hspace=0.25)\n",
     "    sub = fig.add_subplot(1,1,1)\n",
     "    \n",
     "    sub.plot(ax.T,ax.zeta,linestyle='-',linewidth=2,alpha=1,c='xkcd:black')\n",
     "    sub.plot(ax.T_peak,ax.zeta_peak,linestyle=':',marker='+',color='xkcd:blue',linewidth=2)\n",
     "    \n",
     "    sub.axvline(ax.T_osc,linestyle='--',color='xkcd:gray',linewidth=1.5)\n",
     "\n",
     "    \n",
     "    #set major ticks\n",
     "    _M_xticks=[ round(0.45+i*0.15,4) for i in range(0,15) ]\n",
     "    _M_yticks=[ round(-20+i*5,3) for i in range(0,20,1)  ]\n",
     "\n",
     "    #set major ticks that will not have a label\n",
     "    _M_xticks_exception=[]\n",
     "    _M_yticks_exception=[]\n",
     "\n",
     "    _m_xticks=[]\n",
     "    _m_yticks=[]  \n",
     "    ft=FT(_M_xticks,_M_yticks,\n",
     "                 _M_xticks_exception,_M_yticks_exception,\n",
     "                 _m_xticks,_m_yticks,\n",
     "                 xmin=0.45,xmax=2,ymin=-20,ymax=20,xscale='linear',yscale='linear')\n",
     "\n",
     "    ft.format_ticks(plt,sub)    \n",
     "\n",
     "    \n",
     "    sub.text(x=0.92,y=10, s=r'$T_{\\rm osc}$',rotation=90)\n",
     "    \n",
     "    \n",
     "    sub.text(x=1.6,y=-15,\n",
     "         s=r'$f_{a}=10^{12}~{\\rm GeV}$'+'\\n'+ r'$\\theta_i = 0.94435$')\n",
     "\n",
     "    \n",
     "#     fig.savefig('zeta_evolution.pdf',bbox_inches='tight')\n",
     "\n",
     "    fig.show()"
    ]
   },
   {
    "cell_type": "code",
    "execution_count": 12,
    "metadata": {},
    "outputs": [
     {
      "name": "stderr",
      "output_type": "stream",
      "text": [
       "<ipython-input-12-b569a0ff9cd6>:7: RuntimeWarning: invalid value encountered in true_divide\n",
       "  sub.plot(ax.T,np.abs(ax.dzeta/ax.zeta),linestyle='-',linewidth=2,alpha=1,c='xkcd:red',label=r'$\\dfrac{\\delta \\zeta}{\\zeta}$')\n"
      ]
     },
     {
      "data": {
       "application/javascript": [
        "/* Put everything inside the global mpl namespace */\n",
        "/* global mpl */\n",
        "window.mpl = {};\n",
        "\n",
        "mpl.get_websocket_type = function () {\n",
        "    if (typeof WebSocket !== 'undefined') {\n",
        "        return WebSocket;\n",
        "    } else if (typeof MozWebSocket !== 'undefined') {\n",
        "        return MozWebSocket;\n",
        "    } else {\n",
        "        alert(\n",
        "            'Your browser does not have WebSocket support. ' +\n",
        "                'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
        "                'Firefox 4 and 5 are also supported but you ' +\n",
        "                'have to enable WebSockets in about:config.'\n",
        "        );\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n",
        "    this.id = figure_id;\n",
        "\n",
        "    this.ws = websocket;\n",
        "\n",
        "    this.supports_binary = this.ws.binaryType !== undefined;\n",
        "\n",
        "    if (!this.supports_binary) {\n",
        "        var warnings = document.getElementById('mpl-warnings');\n",
        "        if (warnings) {\n",
        "            warnings.style.display = 'block';\n",
        "            warnings.textContent =\n",
        "                'This browser does not support binary websocket messages. ' +\n",
        "                'Performance may be slow.';\n",
        "        }\n",
        "    }\n",
        "\n",
        "    this.imageObj = new Image();\n",
        "\n",
        "    this.context = undefined;\n",
        "    this.message = undefined;\n",
        "    this.canvas = undefined;\n",
        "    this.rubberband_canvas = undefined;\n",
        "    this.rubberband_context = undefined;\n",
        "    this.format_dropdown = undefined;\n",
        "\n",
        "    this.image_mode = 'full';\n",
        "\n",
        "    this.root = document.createElement('div');\n",
        "    this.root.setAttribute('style', 'display: inline-block');\n",
        "    this._root_extra_style(this.root);\n",
        "\n",
        "    parent_element.appendChild(this.root);\n",
        "\n",
        "    this._init_header(this);\n",
        "    this._init_canvas(this);\n",
        "    this._init_toolbar(this);\n",
        "\n",
        "    var fig = this;\n",
        "\n",
        "    this.waiting = false;\n",
        "\n",
        "    this.ws.onopen = function () {\n",
        "        fig.send_message('supports_binary', { value: fig.supports_binary });\n",
        "        fig.send_message('send_image_mode', {});\n",
        "        if (fig.ratio !== 1) {\n",
        "            fig.send_message('set_dpi_ratio', { dpi_ratio: fig.ratio });\n",
        "        }\n",
        "        fig.send_message('refresh', {});\n",
        "    };\n",
        "\n",
        "    this.imageObj.onload = function () {\n",
        "        if (fig.image_mode === 'full') {\n",
        "            // Full images could contain transparency (where diff images\n",
        "            // almost always do), so we need to clear the canvas so that\n",
        "            // there is no ghosting.\n",
        "            fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
        "        }\n",
        "        fig.context.drawImage(fig.imageObj, 0, 0);\n",
        "    };\n",
        "\n",
        "    this.imageObj.onunload = function () {\n",
        "        fig.ws.close();\n",
        "    };\n",
        "\n",
        "    this.ws.onmessage = this._make_on_message_function(this);\n",
        "\n",
        "    this.ondownload = ondownload;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._init_header = function () {\n",
        "    var titlebar = document.createElement('div');\n",
        "    titlebar.classList =\n",
        "        'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n",
        "    var titletext = document.createElement('div');\n",
        "    titletext.classList = 'ui-dialog-title';\n",
        "    titletext.setAttribute(\n",
        "        'style',\n",
        "        'width: 100%; text-align: center; padding: 3px;'\n",
        "    );\n",
        "    titlebar.appendChild(titletext);\n",
        "    this.root.appendChild(titlebar);\n",
        "    this.header = titletext;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n",
        "\n",
        "mpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n",
        "\n",
        "mpl.figure.prototype._init_canvas = function () {\n",
        "    var fig = this;\n",
        "\n",
        "    var canvas_div = (this.canvas_div = document.createElement('div'));\n",
        "    canvas_div.setAttribute(\n",
        "        'style',\n",
        "        'border: 1px solid #ddd;' +\n",
        "            'box-sizing: content-box;' +\n",
        "            'clear: both;' +\n",
        "            'min-height: 1px;' +\n",
        "            'min-width: 1px;' +\n",
        "            'outline: 0;' +\n",
        "            'overflow: hidden;' +\n",
        "            'position: relative;' +\n",
        "            'resize: both;'\n",
        "    );\n",
        "\n",
        "    function on_keyboard_event_closure(name) {\n",
        "        return function (event) {\n",
        "            return fig.key_event(event, name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    canvas_div.addEventListener(\n",
        "        'keydown',\n",
        "        on_keyboard_event_closure('key_press')\n",
        "    );\n",
        "    canvas_div.addEventListener(\n",
        "        'keyup',\n",
        "        on_keyboard_event_closure('key_release')\n",
        "    );\n",
        "\n",
        "    this._canvas_extra_style(canvas_div);\n",
        "    this.root.appendChild(canvas_div);\n",
        "\n",
        "    var canvas = (this.canvas = document.createElement('canvas'));\n",
        "    canvas.classList.add('mpl-canvas');\n",
        "    canvas.setAttribute('style', 'box-sizing: content-box;');\n",
        "\n",
        "    this.context = canvas.getContext('2d');\n",
        "\n",
        "    var backingStore =\n",
        "        this.context.backingStorePixelRatio ||\n",
        "        this.context.webkitBackingStorePixelRatio ||\n",
        "        this.context.mozBackingStorePixelRatio ||\n",
        "        this.context.msBackingStorePixelRatio ||\n",
        "        this.context.oBackingStorePixelRatio ||\n",
        "        this.context.backingStorePixelRatio ||\n",
        "        1;\n",
        "\n",
        "    this.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
        "\n",
        "    var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n",
        "        'canvas'\n",
        "    ));\n",
        "    rubberband_canvas.setAttribute(\n",
        "        'style',\n",
        "        'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n",
        "    );\n",
        "\n",
        "    // Apply a ponyfill if ResizeObserver is not implemented by browser.\n",
        "    if (this.ResizeObserver === undefined) {\n",
        "        if (window.ResizeObserver !== undefined) {\n",
        "            this.ResizeObserver = window.ResizeObserver;\n",
        "        } else {\n",
        "            var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n",
        "            this.ResizeObserver = obs.ResizeObserver;\n",
        "        }\n",
        "    }\n",
        "\n",
        "    this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n",
        "        var nentries = entries.length;\n",
        "        for (var i = 0; i < nentries; i++) {\n",
        "            var entry = entries[i];\n",
        "            var width, height;\n",
        "            if (entry.contentBoxSize) {\n",
        "                if (entry.contentBoxSize instanceof Array) {\n",
        "                    // Chrome 84 implements new version of spec.\n",
        "                    width = entry.contentBoxSize[0].inlineSize;\n",
        "                    height = entry.contentBoxSize[0].blockSize;\n",
        "                } else {\n",
        "                    // Firefox implements old version of spec.\n",
        "                    width = entry.contentBoxSize.inlineSize;\n",
        "                    height = entry.contentBoxSize.blockSize;\n",
        "                }\n",
        "            } else {\n",
        "                // Chrome <84 implements even older version of spec.\n",
        "                width = entry.contentRect.width;\n",
        "                height = entry.contentRect.height;\n",
        "            }\n",
        "\n",
        "            // Keep the size of the canvas and rubber band canvas in sync with\n",
        "            // the canvas container.\n",
        "            if (entry.devicePixelContentBoxSize) {\n",
        "                // Chrome 84 implements new version of spec.\n",
        "                canvas.setAttribute(\n",
        "                    'width',\n",
        "                    entry.devicePixelContentBoxSize[0].inlineSize\n",
        "                );\n",
        "                canvas.setAttribute(\n",
        "                    'height',\n",
        "                    entry.devicePixelContentBoxSize[0].blockSize\n",
        "                );\n",
        "            } else {\n",
        "                canvas.setAttribute('width', width * fig.ratio);\n",
        "                canvas.setAttribute('height', height * fig.ratio);\n",
        "            }\n",
        "            canvas.setAttribute(\n",
        "                'style',\n",
        "                'width: ' + width + 'px; height: ' + height + 'px;'\n",
        "            );\n",
        "\n",
        "            rubberband_canvas.setAttribute('width', width);\n",
        "            rubberband_canvas.setAttribute('height', height);\n",
        "\n",
        "            // And update the size in Python. We ignore the initial 0/0 size\n",
        "            // that occurs as the element is placed into the DOM, which should\n",
        "            // otherwise not happen due to the minimum size styling.\n",
        "            if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n",
        "                fig.request_resize(width, height);\n",
        "            }\n",
        "        }\n",
        "    });\n",
        "    this.resizeObserverInstance.observe(canvas_div);\n",
        "\n",
        "    function on_mouse_event_closure(name) {\n",
        "        return function (event) {\n",
        "            return fig.mouse_event(event, name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mousedown',\n",
        "        on_mouse_event_closure('button_press')\n",
        "    );\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mouseup',\n",
        "        on_mouse_event_closure('button_release')\n",
        "    );\n",
        "    // Throttle sequential mouse events to 1 every 20ms.\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mousemove',\n",
        "        on_mouse_event_closure('motion_notify')\n",
        "    );\n",
        "\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mouseenter',\n",
        "        on_mouse_event_closure('figure_enter')\n",
        "    );\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mouseleave',\n",
        "        on_mouse_event_closure('figure_leave')\n",
        "    );\n",
        "\n",
        "    canvas_div.addEventListener('wheel', function (event) {\n",
        "        if (event.deltaY < 0) {\n",
        "            event.step = 1;\n",
        "        } else {\n",
        "            event.step = -1;\n",
        "        }\n",
        "        on_mouse_event_closure('scroll')(event);\n",
        "    });\n",
        "\n",
        "    canvas_div.appendChild(canvas);\n",
        "    canvas_div.appendChild(rubberband_canvas);\n",
        "\n",
        "    this.rubberband_context = rubberband_canvas.getContext('2d');\n",
        "    this.rubberband_context.strokeStyle = '#000000';\n",
        "\n",
        "    this._resize_canvas = function (width, height, forward) {\n",
        "        if (forward) {\n",
        "            canvas_div.style.width = width + 'px';\n",
        "            canvas_div.style.height = height + 'px';\n",
        "        }\n",
        "    };\n",
        "\n",
        "    // Disable right mouse context menu.\n",
        "    this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n",
        "        event.preventDefault();\n",
        "        return false;\n",
        "    });\n",
        "\n",
        "    function set_focus() {\n",
        "        canvas.focus();\n",
        "        canvas_div.focus();\n",
        "    }\n",
        "\n",
        "    window.setTimeout(set_focus, 100);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._init_toolbar = function () {\n",
        "    var fig = this;\n",
        "\n",
        "    var toolbar = document.createElement('div');\n",
        "    toolbar.classList = 'mpl-toolbar';\n",
        "    this.root.appendChild(toolbar);\n",
        "\n",
        "    function on_click_closure(name) {\n",
        "        return function (_event) {\n",
        "            return fig.toolbar_button_onclick(name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    function on_mouseover_closure(tooltip) {\n",
        "        return function (event) {\n",
        "            if (!event.currentTarget.disabled) {\n",
        "                return fig.toolbar_button_onmouseover(tooltip);\n",
        "            }\n",
        "        };\n",
        "    }\n",
        "\n",
        "    fig.buttons = {};\n",
        "    var buttonGroup = document.createElement('div');\n",
        "    buttonGroup.classList = 'mpl-button-group';\n",
        "    for (var toolbar_ind in mpl.toolbar_items) {\n",
        "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
        "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
        "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
        "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
        "\n",
        "        if (!name) {\n",
        "            /* Instead of a spacer, we start a new button group. */\n",
        "            if (buttonGroup.hasChildNodes()) {\n",
        "                toolbar.appendChild(buttonGroup);\n",
        "            }\n",
        "            buttonGroup = document.createElement('div');\n",
        "            buttonGroup.classList = 'mpl-button-group';\n",
        "            continue;\n",
        "        }\n",
        "\n",
        "        var button = (fig.buttons[name] = document.createElement('button'));\n",
        "        button.classList = 'mpl-widget';\n",
        "        button.setAttribute('role', 'button');\n",
        "        button.setAttribute('aria-disabled', 'false');\n",
        "        button.addEventListener('click', on_click_closure(method_name));\n",
        "        button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
        "\n",
        "        var icon_img = document.createElement('img');\n",
        "        icon_img.src = '_images/' + image + '.png';\n",
        "        icon_img.srcset = '_images/' + image + '_large.png 2x';\n",
        "        icon_img.alt = tooltip;\n",
        "        button.appendChild(icon_img);\n",
        "\n",
        "        buttonGroup.appendChild(button);\n",
        "    }\n",
        "\n",
        "    if (buttonGroup.hasChildNodes()) {\n",
        "        toolbar.appendChild(buttonGroup);\n",
        "    }\n",
        "\n",
        "    var fmt_picker = document.createElement('select');\n",
        "    fmt_picker.classList = 'mpl-widget';\n",
        "    toolbar.appendChild(fmt_picker);\n",
        "    this.format_dropdown = fmt_picker;\n",
        "\n",
        "    for (var ind in mpl.extensions) {\n",
        "        var fmt = mpl.extensions[ind];\n",
        "        var option = document.createElement('option');\n",
        "        option.selected = fmt === mpl.default_extension;\n",
        "        option.innerHTML = fmt;\n",
        "        fmt_picker.appendChild(option);\n",
        "    }\n",
        "\n",
        "    var status_bar = document.createElement('span');\n",
        "    status_bar.classList = 'mpl-message';\n",
        "    toolbar.appendChild(status_bar);\n",
        "    this.message = status_bar;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n",
        "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
        "    // which will in turn request a refresh of the image.\n",
        "    this.send_message('resize', { width: x_pixels, height: y_pixels });\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.send_message = function (type, properties) {\n",
        "    properties['type'] = type;\n",
        "    properties['figure_id'] = this.id;\n",
        "    this.ws.send(JSON.stringify(properties));\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.send_draw_message = function () {\n",
        "    if (!this.waiting) {\n",
        "        this.waiting = true;\n",
        "        this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
        "    var format_dropdown = fig.format_dropdown;\n",
        "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
        "    fig.ondownload(fig, format);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_resize = function (fig, msg) {\n",
        "    var size = msg['size'];\n",
        "    if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n",
        "        fig._resize_canvas(size[0], size[1], msg['forward']);\n",
        "        fig.send_message('refresh', {});\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_rubberband = function (fig, msg) {\n",
        "    var x0 = msg['x0'] / fig.ratio;\n",
        "    var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n",
        "    var x1 = msg['x1'] / fig.ratio;\n",
        "    var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n",
        "    x0 = Math.floor(x0) + 0.5;\n",
        "    y0 = Math.floor(y0) + 0.5;\n",
        "    x1 = Math.floor(x1) + 0.5;\n",
        "    y1 = Math.floor(y1) + 0.5;\n",
        "    var min_x = Math.min(x0, x1);\n",
        "    var min_y = Math.min(y0, y1);\n",
        "    var width = Math.abs(x1 - x0);\n",
        "    var height = Math.abs(y1 - y0);\n",
        "\n",
        "    fig.rubberband_context.clearRect(\n",
        "        0,\n",
        "        0,\n",
        "        fig.canvas.width / fig.ratio,\n",
        "        fig.canvas.height / fig.ratio\n",
        "    );\n",
        "\n",
        "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_figure_label = function (fig, msg) {\n",
        "    // Updates the figure title.\n",
        "    fig.header.textContent = msg['label'];\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_cursor = function (fig, msg) {\n",
        "    var cursor = msg['cursor'];\n",
        "    switch (cursor) {\n",
        "        case 0:\n",
        "            cursor = 'pointer';\n",
        "            break;\n",
        "        case 1:\n",
        "            cursor = 'default';\n",
        "            break;\n",
        "        case 2:\n",
        "            cursor = 'crosshair';\n",
        "            break;\n",
        "        case 3:\n",
        "            cursor = 'move';\n",
        "            break;\n",
        "    }\n",
        "    fig.rubberband_canvas.style.cursor = cursor;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_message = function (fig, msg) {\n",
        "    fig.message.textContent = msg['message'];\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_draw = function (fig, _msg) {\n",
        "    // Request the server to send over a new figure.\n",
        "    fig.send_draw_message();\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_image_mode = function (fig, msg) {\n",
        "    fig.image_mode = msg['mode'];\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n",
        "    for (var key in msg) {\n",
        "        if (!(key in fig.buttons)) {\n",
        "            continue;\n",
        "        }\n",
        "        fig.buttons[key].disabled = !msg[key];\n",
        "        fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n",
        "    if (msg['mode'] === 'PAN') {\n",
        "        fig.buttons['Pan'].classList.add('active');\n",
        "        fig.buttons['Zoom'].classList.remove('active');\n",
        "    } else if (msg['mode'] === 'ZOOM') {\n",
        "        fig.buttons['Pan'].classList.remove('active');\n",
        "        fig.buttons['Zoom'].classList.add('active');\n",
        "    } else {\n",
        "        fig.buttons['Pan'].classList.remove('active');\n",
        "        fig.buttons['Zoom'].classList.remove('active');\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.updated_canvas_event = function () {\n",
        "    // Called whenever the canvas gets updated.\n",
        "    this.send_message('ack', {});\n",
        "};\n",
        "\n",
        "// A function to construct a web socket function for onmessage handling.\n",
        "// Called in the figure constructor.\n",
        "mpl.figure.prototype._make_on_message_function = function (fig) {\n",
        "    return function socket_on_message(evt) {\n",
        "        if (evt.data instanceof Blob) {\n",
        "            /* FIXME: We get \"Resource interpreted as Image but\n",
        "             * transferred with MIME type text/plain:\" errors on\n",
        "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
        "             * to be part of the websocket stream */\n",
        "            evt.data.type = 'image/png';\n",
        "\n",
        "            /* Free the memory for the previous frames */\n",
        "            if (fig.imageObj.src) {\n",
        "                (window.URL || window.webkitURL).revokeObjectURL(\n",
        "                    fig.imageObj.src\n",
        "                );\n",
        "            }\n",
        "\n",
        "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
        "                evt.data\n",
        "            );\n",
        "            fig.updated_canvas_event();\n",
        "            fig.waiting = false;\n",
        "            return;\n",
        "        } else if (\n",
        "            typeof evt.data === 'string' &&\n",
        "            evt.data.slice(0, 21) === 'data:image/png;base64'\n",
        "        ) {\n",
        "            fig.imageObj.src = evt.data;\n",
        "            fig.updated_canvas_event();\n",
        "            fig.waiting = false;\n",
        "            return;\n",
        "        }\n",
        "\n",
        "        var msg = JSON.parse(evt.data);\n",
        "        var msg_type = msg['type'];\n",
        "\n",
        "        // Call the  \"handle_{type}\" callback, which takes\n",
        "        // the figure and JSON message as its only arguments.\n",
        "        try {\n",
        "            var callback = fig['handle_' + msg_type];\n",
        "        } catch (e) {\n",
        "            console.log(\n",
        "                \"No handler for the '\" + msg_type + \"' message type: \",\n",
        "                msg\n",
        "            );\n",
        "            return;\n",
        "        }\n",
        "\n",
        "        if (callback) {\n",
        "            try {\n",
        "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
        "                callback(fig, msg);\n",
        "            } catch (e) {\n",
        "                console.log(\n",
        "                    \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n",
        "                    e,\n",
        "                    e.stack,\n",
        "                    msg\n",
        "                );\n",
        "            }\n",
        "        }\n",
        "    };\n",
        "};\n",
        "\n",
        "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
        "mpl.findpos = function (e) {\n",
        "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
        "    var targ;\n",
        "    if (!e) {\n",
        "        e = window.event;\n",
        "    }\n",
        "    if (e.target) {\n",
        "        targ = e.target;\n",
        "    } else if (e.srcElement) {\n",
        "        targ = e.srcElement;\n",
        "    }\n",
        "    if (targ.nodeType === 3) {\n",
        "        // defeat Safari bug\n",
        "        targ = targ.parentNode;\n",
        "    }\n",
        "\n",
        "    // pageX,Y are the mouse positions relative to the document\n",
        "    var boundingRect = targ.getBoundingClientRect();\n",
        "    var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n",
        "    var y = e.pageY - (boundingRect.top + document.body.scrollTop);\n",
        "\n",
        "    return { x: x, y: y };\n",
        "};\n",
        "\n",
        "/*\n",
        " * return a copy of an object with only non-object keys\n",
        " * we need this to avoid circular references\n",
        " * http://stackoverflow.com/a/24161582/3208463\n",
        " */\n",
        "function simpleKeys(original) {\n",
        "    return Object.keys(original).reduce(function (obj, key) {\n",
        "        if (typeof original[key] !== 'object') {\n",
        "            obj[key] = original[key];\n",
        "        }\n",
        "        return obj;\n",
        "    }, {});\n",
        "}\n",
        "\n",
        "mpl.figure.prototype.mouse_event = function (event, name) {\n",
        "    var canvas_pos = mpl.findpos(event);\n",
        "\n",
        "    if (name === 'button_press') {\n",
        "        this.canvas.focus();\n",
        "        this.canvas_div.focus();\n",
        "    }\n",
        "\n",
        "    var x = canvas_pos.x * this.ratio;\n",
        "    var y = canvas_pos.y * this.ratio;\n",
        "\n",
        "    this.send_message(name, {\n",
        "        x: x,\n",
        "        y: y,\n",
        "        button: event.button,\n",
        "        step: event.step,\n",
        "        guiEvent: simpleKeys(event),\n",
        "    });\n",
        "\n",
        "    /* This prevents the web browser from automatically changing to\n",
        "     * the text insertion cursor when the button is pressed.  We want\n",
        "     * to control all of the cursor setting manually through the\n",
        "     * 'cursor' event from matplotlib */\n",
        "    event.preventDefault();\n",
        "    return false;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._key_event_extra = function (_event, _name) {\n",
        "    // Handle any extra behaviour associated with a key event\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.key_event = function (event, name) {\n",
        "    // Prevent repeat events\n",
        "    if (name === 'key_press') {\n",
        "        if (event.which === this._key) {\n",
        "            return;\n",
        "        } else {\n",
        "            this._key = event.which;\n",
        "        }\n",
        "    }\n",
        "    if (name === 'key_release') {\n",
        "        this._key = null;\n",
        "    }\n",
        "\n",
        "    var value = '';\n",
        "    if (event.ctrlKey && event.which !== 17) {\n",
        "        value += 'ctrl+';\n",
        "    }\n",
        "    if (event.altKey && event.which !== 18) {\n",
        "        value += 'alt+';\n",
        "    }\n",
        "    if (event.shiftKey && event.which !== 16) {\n",
        "        value += 'shift+';\n",
        "    }\n",
        "\n",
        "    value += 'k';\n",
        "    value += event.which.toString();\n",
        "\n",
        "    this._key_event_extra(event, name);\n",
        "\n",
        "    this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n",
        "    return false;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.toolbar_button_onclick = function (name) {\n",
        "    if (name === 'download') {\n",
        "        this.handle_save(this, null);\n",
        "    } else {\n",
        "        this.send_message('toolbar_button', { name: name });\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n",
        "    this.message.textContent = tooltip;\n",
        "};\n",
        "\n",
        "///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n",
        "// prettier-ignore\n",
        "var _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\n",
        "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
        "\n",
        "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
        "\n",
        "mpl.default_extension = \"png\";/* global mpl */\n",
        "\n",
        "var comm_websocket_adapter = function (comm) {\n",
        "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
        "    // object with the appropriate methods. Currently this is a non binary\n",
        "    // socket, so there is still some room for performance tuning.\n",
        "    var ws = {};\n",
        "\n",
        "    ws.close = function () {\n",
        "        comm.close();\n",
        "    };\n",
        "    ws.send = function (m) {\n",
        "        //console.log('sending', m);\n",
        "        comm.send(m);\n",
        "    };\n",
        "    // Register the callback with on_msg.\n",
        "    comm.on_msg(function (msg) {\n",
        "        //console.log('receiving', msg['content']['data'], msg);\n",
        "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
        "        ws.onmessage(msg['content']['data']);\n",
        "    });\n",
        "    return ws;\n",
        "};\n",
        "\n",
        "mpl.mpl_figure_comm = function (comm, msg) {\n",
        "    // This is the function which gets called when the mpl process\n",
        "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
        "\n",
        "    var id = msg.content.data.id;\n",
        "    // Get hold of the div created by the display call when the Comm\n",
        "    // socket was opened in Python.\n",
        "    var element = document.getElementById(id);\n",
        "    var ws_proxy = comm_websocket_adapter(comm);\n",
        "\n",
        "    function ondownload(figure, _format) {\n",
        "        window.open(figure.canvas.toDataURL());\n",
        "    }\n",
        "\n",
        "    var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n",
        "\n",
        "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
        "    // web socket which is closed, not our websocket->open comm proxy.\n",
        "    ws_proxy.onopen();\n",
        "\n",
        "    fig.parent_element = element;\n",
        "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
        "    if (!fig.cell_info) {\n",
        "        console.error('Failed to find cell for figure', id, fig);\n",
        "        return;\n",
        "    }\n",
        "    fig.cell_info[0].output_area.element.on(\n",
        "        'cleared',\n",
        "        { fig: fig },\n",
        "        fig._remove_fig_handler\n",
        "    );\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_close = function (fig, msg) {\n",
        "    var width = fig.canvas.width / fig.ratio;\n",
        "    fig.cell_info[0].output_area.element.off(\n",
        "        'cleared',\n",
        "        fig._remove_fig_handler\n",
        "    );\n",
        "    fig.resizeObserverInstance.unobserve(fig.canvas_div);\n",
        "\n",
        "    // Update the output cell to use the data from the current canvas.\n",
        "    fig.push_to_output();\n",
        "    var dataURL = fig.canvas.toDataURL();\n",
        "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
        "    // the notebook keyboard shortcuts fail.\n",
        "    IPython.keyboard_manager.enable();\n",
        "    fig.parent_element.innerHTML =\n",
        "        '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
        "    fig.close_ws(fig, msg);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.close_ws = function (fig, msg) {\n",
        "    fig.send_message('closing', msg);\n",
        "    // fig.ws.close()\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.push_to_output = function (_remove_interactive) {\n",
        "    // Turn the data on the canvas into data in the output cell.\n",
        "    var width = this.canvas.width / this.ratio;\n",
        "    var dataURL = this.canvas.toDataURL();\n",
        "    this.cell_info[1]['text/html'] =\n",
        "        '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.updated_canvas_event = function () {\n",
        "    // Tell IPython that the notebook contents must change.\n",
        "    IPython.notebook.set_dirty(true);\n",
        "    this.send_message('ack', {});\n",
        "    var fig = this;\n",
        "    // Wait a second, then push the new image to the DOM so\n",
        "    // that it is saved nicely (might be nice to debounce this).\n",
        "    setTimeout(function () {\n",
        "        fig.push_to_output();\n",
        "    }, 1000);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._init_toolbar = function () {\n",
        "    var fig = this;\n",
        "\n",
        "    var toolbar = document.createElement('div');\n",
        "    toolbar.classList = 'btn-toolbar';\n",
        "    this.root.appendChild(toolbar);\n",
        "\n",
        "    function on_click_closure(name) {\n",
        "        return function (_event) {\n",
        "            return fig.toolbar_button_onclick(name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    function on_mouseover_closure(tooltip) {\n",
        "        return function (event) {\n",
        "            if (!event.currentTarget.disabled) {\n",
        "                return fig.toolbar_button_onmouseover(tooltip);\n",
        "            }\n",
        "        };\n",
        "    }\n",
        "\n",
        "    fig.buttons = {};\n",
        "    var buttonGroup = document.createElement('div');\n",
        "    buttonGroup.classList = 'btn-group';\n",
        "    var button;\n",
        "    for (var toolbar_ind in mpl.toolbar_items) {\n",
        "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
        "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
        "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
        "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
        "\n",
        "        if (!name) {\n",
        "            /* Instead of a spacer, we start a new button group. */\n",
        "            if (buttonGroup.hasChildNodes()) {\n",
        "                toolbar.appendChild(buttonGroup);\n",
        "            }\n",
        "            buttonGroup = document.createElement('div');\n",
        "            buttonGroup.classList = 'btn-group';\n",
        "            continue;\n",
        "        }\n",
        "\n",
        "        button = fig.buttons[name] = document.createElement('button');\n",
        "        button.classList = 'btn btn-default';\n",
        "        button.href = '#';\n",
        "        button.title = name;\n",
        "        button.innerHTML = '<i class=\"fa ' + image + ' fa-lg\"></i>';\n",
        "        button.addEventListener('click', on_click_closure(method_name));\n",
        "        button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
        "        buttonGroup.appendChild(button);\n",
        "    }\n",
        "\n",
        "    if (buttonGroup.hasChildNodes()) {\n",
        "        toolbar.appendChild(buttonGroup);\n",
        "    }\n",
        "\n",
        "    // Add the status bar.\n",
        "    var status_bar = document.createElement('span');\n",
        "    status_bar.classList = 'mpl-message pull-right';\n",
        "    toolbar.appendChild(status_bar);\n",
        "    this.message = status_bar;\n",
        "\n",
        "    // Add the close button to the window.\n",
        "    var buttongrp = document.createElement('div');\n",
        "    buttongrp.classList = 'btn-group inline pull-right';\n",
        "    button = document.createElement('button');\n",
        "    button.classList = 'btn btn-mini btn-primary';\n",
        "    button.href = '#';\n",
        "    button.title = 'Stop Interaction';\n",
        "    button.innerHTML = '<i class=\"fa fa-power-off icon-remove icon-large\"></i>';\n",
        "    button.addEventListener('click', function (_evt) {\n",
        "        fig.handle_close(fig, {});\n",
        "    });\n",
        "    button.addEventListener(\n",
        "        'mouseover',\n",
        "        on_mouseover_closure('Stop Interaction')\n",
        "    );\n",
        "    buttongrp.appendChild(button);\n",
        "    var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n",
        "    titlebar.insertBefore(buttongrp, titlebar.firstChild);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._remove_fig_handler = function (event) {\n",
        "    var fig = event.data.fig;\n",
        "    if (event.target !== this) {\n",
        "        // Ignore bubbled events from children.\n",
        "        return;\n",
        "    }\n",
        "    fig.close_ws(fig, {});\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._root_extra_style = function (el) {\n",
        "    el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._canvas_extra_style = function (el) {\n",
        "    // this is important to make the div 'focusable\n",
        "    el.setAttribute('tabindex', 0);\n",
        "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
        "    // off when our div gets focus\n",
        "\n",
        "    // location in version 3\n",
        "    if (IPython.notebook.keyboard_manager) {\n",
        "        IPython.notebook.keyboard_manager.register_events(el);\n",
        "    } else {\n",
        "        // location in version 2\n",
        "        IPython.keyboard_manager.register_events(el);\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._key_event_extra = function (event, _name) {\n",
        "    var manager = IPython.notebook.keyboard_manager;\n",
        "    if (!manager) {\n",
        "        manager = IPython.keyboard_manager;\n",
        "    }\n",
        "\n",
        "    // Check for shift+enter\n",
        "    if (event.shiftKey && event.which === 13) {\n",
        "        this.canvas_div.blur();\n",
        "        // select the cell after this one\n",
        "        var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n",
        "        IPython.notebook.select(index + 1);\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
        "    fig.ondownload(fig, null);\n",
        "};\n",
        "\n",
        "mpl.find_output_cell = function (html_output) {\n",
        "    // Return the cell and output element which can be found *uniquely* in the notebook.\n",
        "    // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
        "    // IPython event is triggered only after the cells have been serialised, which for\n",
        "    // our purposes (turning an active figure into a static one), is too late.\n",
        "    var cells = IPython.notebook.get_cells();\n",
        "    var ncells = cells.length;\n",
        "    for (var i = 0; i < ncells; i++) {\n",
        "        var cell = cells[i];\n",
        "        if (cell.cell_type === 'code') {\n",
        "            for (var j = 0; j < cell.output_area.outputs.length; j++) {\n",
        "                var data = cell.output_area.outputs[j];\n",
        "                if (data.data) {\n",
        "                    // IPython >= 3 moved mimebundle to data attribute of output\n",
        "                    data = data.data;\n",
        "                }\n",
        "                if (data['text/html'] === html_output) {\n",
        "                    return [cell, data, j];\n",
        "                }\n",
        "            }\n",
        "        }\n",
        "    }\n",
        "};\n",
        "\n",
        "// Register the function which deals with the matplotlib target/channel.\n",
        "// The kernel may be null if the page has been refreshed.\n",
        "if (IPython.notebook.kernel !== null) {\n",
        "    IPython.notebook.kernel.comm_manager.register_target(\n",
        "        'matplotlib',\n",
        "        mpl.mpl_figure_comm\n",
        "    );\n",
        "}\n"
       ],
       "text/plain": [
        "<IPython.core.display.Javascript object>"
       ]
      },
      "metadata": {},
      "output_type": "display_data"
     },
     {
      "data": {
       "text/html": [
-       "<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4QAAAGQCAYAAAD2lq6fAAAgAElEQVR4nOzde5xM9f8H8M/MYtd9S0JEviGRXNb9TlG+4ouSSESRr5JEboUNLVoWSRSlwncpiXLdr2uILfzk1ldiae39fpnZ2bmc1++PbceencvOzM6cmdl9PR+P83jYM+ecz3tm96zPa885n48AERERERERlUvC2wUQERERERGRdzAQEhERERERlVMMhEREREREROUUAyEREREREVE5xUBIRERERERUTjEQEhERERERlVMMhEREREREROUUAyEREREREVE5xUBIRERERERUTjEQEhERERERlVMMhEREREREROUUAyEREREREVE5xUBIRERERERUTjEQEhERERERlVMMhEREREREROUUAyEREREREVE5xUBIRERERERUTjEQEhERERERlVMMhEREREREROUUAyEREREREVE5xUBIRERERERUTjEQEhERERERlVMMhEREREREROUUAyEREREREVE5xUBIRERERERUTjEQEhERERERlVMMhEREREREROUUAyEREREREVE5xUBIRERERERUTjEQlgNff/01evfu7e0yiIiIiIjIxzAQlnHR0dFo06YNevXq5e1SiIiIiIjIxzAQlmFxcXFYtGgRFixYwEBIREREREQWGAg9zGQyITIyEuHh4Yq2q9PpMGPGDOj1egZCIiIiIiKyioHQQyRJwvbt29GiRQsIITB27Fib2+bn5yM8PBzPP/88pk6div79+yM0NBR6vd7l9ufOnYukpCQAYCAkIiIiIiKrGAg95NKlS7h+/To2btxoNxDq9Xr069cPnTp1gk6nAwBoNBq0bdsWAwYMgNFoNG9rMBjsLiaTCQDw8ccf4+zZs+b9GAiJiIiIiMgaBkIPO3r0qN1AGBoaCiEEoqKiZOv37NkDIQRWrlxpXieEsLuMGDECANCkSRMEBgaal4CAAKhUKgQGBuKbb77x2HslIiIiIiL/wkDoYfYCoU6nQ3BwMKpWrSq7EggUXDmsXLky6tevb77y5ypeISQiIiIiImsYCD3MXiA8ceIEhBDo2LGj1X1DQkIghEB0dHSpamAgJCIiIiIiaxgIPcxeIFy/fj2EEBg6dKjVfQcPHgwhBDZs2FCqGhwJhDqdDllZWeYlIyMDN27cQGZmpmw9Fy5cuHDhwoULFy6e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fz9Gjx6N+fPnIyMjAzdu3LB3NzTHuajtMBCSIh6ERI6FdxklInJ9paWlOHjwIJKTk/HCCy8gJCQEDRo0qFVIbNeuHUaNGoW33noL6enpTn/TNc5FbYeBkBTxICRyLAyERETuqaysDEeOHMGHH36Il156Cf369UOjRo1qFRLbtm2LP//5z5g3bx62b9/uVI8H41zUdhgISREPQiLHwkBIREQG5eXlyM7Oxr///W+88sorCA0NrfFaRMMSGBiI8PBwvPHGG/jss89w6dIle3dHEeeitsNASIp4EBI5FgZCIiIyp6KiAseOHcP69evx17/+FQMGDIC3t3etQmLLli3xxBNPYMaMGUhJScHhw4dRUlJi1/5wLmo7DISkiAchkWNhICQiIkvpdDqcOHECGzZswN/+9jc88sgjaNq0aa1CYv369dGtWzc8/fTTePvtt7F//37odDqbtZ1zUdthICRFPAiJHAsDIRERaUGn0+HUqVPYvHkzXn31VTz22GPw8/OrVUi8++67MXbsWKSkpFj9ekTORW2HgZAU8SAkcixlZWVY88FqrPlgNQMhERFpSq/X48KFC9ixYwcWLFiAmJgYdO/eHZ6enmYDYnBwMF577TXs2bNH80cicS5qOwyEpIgHIREREZF7Ky0tRXZ2NlavXo3IyEj4+PhUGw59fX0xatQorF27Frm5uap/NueitsNASIp4EBIRERFRZWVlZdi9ezdmz56NHj16mP30sFu3bpg+fTp27txZpxvUcC5qOwyEpIgHIRERERGZc/nyZaxbtw7R0dHw9/evNhw2btwYI0aMwNq1a3H58uVavTfnorbDQEiKeBASOZby8nJsS92KbalbNb9Og4iISK2Kigrs27cPc+bMQd++feHh4VFtQAwJCcGbb76JI0eOQK/XK74f56K2w0BIingQEjkW3mWUiIicyfXr17F582ZMnDgRLVq0qDYcBgUF4eWXX8bOnTtN/uDJuajtMBCSIh6ERI6FgZCIiJyVTqdDVlYW/vGPf6B79+7VhsOWLVti2rRp+P7773Hz5k3ORW2EgZAUMRASORYGQiIichXnzp3D8uXLMXTo0GofbdGxY0fORW2EgZAUMRASORYGQiIickX5+fnYsmULIiMj4eXlVSUYci5qfQyEpIiBkMixMBASEZGry8vLw5o1azBw4EAGQhtiICRFDIREjoWB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VlaGtm3bVrnWcd68eRCRau96unLlSogIfHx8jHdKBYCFCxciIiLCbF8YCImIyBwGQiIickkFBQXw8vKCiODYsWMW7VtdINy3b58xEKanp1e7/7lz55CcnGx8bWxsLH7++Wekp6dDRDBkyBCMHDnSuDz22GPo1KkTRowYofh+JSUlaNWqFUQEc+fOBQDodDq0a9cOX375pdm+MBASEZE5DIREROSSduzYARFBmzZtLN63ukCYm5trDHn/+te/anyfe+65ByKCjIwMAMDixYshIjh58qTFbTLse/fdd6OwsBBpaWno2rVrjfsxEBIRkTkMhERE5JJmzJhh/HTOUuZuKmN4NuC4ceNqfJ+goCCIiPGGMUlJSSb/tkRBQQGaN28OEcE777yDwYMH4/33369xPwZCIiIyh4GQiIhcUo8ePSAi2Lhxo8X7mguEK1asMN7189y5c2bf585AmJKSAhHBSy+9pPj6vXv3mv300HCTnObNm8PX1xe3b9+usS8MhEREZA4DIRERuZwbN26gXr16EJEanxWoxFwg1Ol0iIiIgIggODgY169fr/Z97gyEly9fhqenJ+666y5s377d5LVHjx7FsGHDzLbLcFdREcGUKVNq1RcGQiIiMoeBkIiIXM6yZcuMn6TVhblACAAVFRV47bXX4OXlhbZt2yI5Odnk7p/FxcVYv3496tWrB39/fxw/fty4bc6cORAR1KtXDyNHjsSsWbMQHR2NwMBAHD16tMa2zZw5Ex4eHjhx4kSt+sJASERE5jAQEhGRy/jmm2/w/PPPo0GDBsabv7z44ovYsGGDRe9TUyA0uHDhAubOnYuBAweiZcuWaNOmDTp37oyOHTti2LBhePfdd3Hjxo0FqC3dAAAA+UlEQVQq+61atQrdunWDl5cX2rRpg3HjxuHs2bO1atvVq1cxcuTIWveFgZCIiMxhICQiIrpDbQOhM2AgJCIicxgIiYiI7sBASERE7oKBkIiI6A4igk6dOkGv19u7KaqlpaUxEBIRUbUYCImIiO4QGhqK0NBQxMbGYubMmVi9erW9m2SRs2fPYubMmYiPj8ef/vQnhIaG4oMPPrB3s4iIyAExEBIREREREbkpBkIiIiIiIiI3xUBIRERERETkphgIiYiIiIiI3BQDIRERERERkZtiICQiIiIiInJTDIRERERERERuioGQiIiIiIjITTEQEhERERERuan/AygVBcxBRQIcAAAAAElFTkSuQmCC\" width=\"900\">"
+       "<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4QAAAGQCAYAAAD2lq6fAAAgAElEQVR4nOzdeXgT1f4G8JMULDv9gQgKgigKorKVHWTRC4gICrKIckFQEBBEL8jmlVZEBAsURAQVRTYLXhRkE3pRwApYBS4KiIiyWLrvS9I0y7y/P2qHTrM0SZNJ0ryf55nnoZOZOd+knXLezsw5AkRERERERBSUhK8LICIiIiIiIt9gICQiIiIiIgpSDIRERERERERBioGQiIiIiIgoSDEQEhERERERBSkGQiIiIiIioiDFQEhERERERBSkGAiJiIiIiIiCFAMhERERERFRkGIgJCIiIiIiClIMhEREREREREGKgZCIiIiIiChIMRASEREREREFKQZCIiIiIiKiIMVASEREREREFKQYCImIiIiIiIIUAyEREREREVGQYiAkIiIiIiIKUgyEREREREREQYqBkIiIiIiIKEgxEBIREREREQUpBkIiIiIiIqIgxUBIREREREQUpBgIiYiIiIiIghQDIRERERERUZBiICQiIiIiIgpSDIRERERERERBioGQiIiIiIgoSDEQEhERERERBSkGwiCwadMm9OnTx9dlEBERERGRn2EgrOTi4+PRrl079O7d29elEBERERGRn2EgrMQSExPx5ptvIiIigoGQiIiIiIisMBB6mcViQUxMDKKiolRt12AwYNasWTAajQyERERERERkEwOhl0iShO3bt6N169YQQmDcuHF2ty0qKkJUVBRGjhyJGTNmoH///oiMjITRaHS7/fnz5yM1NRUAGAiJiIiIiMgmBkIvOXv2LC5duoT169c7DIRGoxH9+vVDly5dYDAYAAA6nQ7t27fHwIEDYTab5W1NJpPDxWKxAADee+89nDx5Ut6PgZCIiIiIiGxhIPSyw4cPOwyEkZGREEIgNjZWsX7v3r0QQiA6OlpeJ4RwuIwaNQoA0KJFC4SGhspLSEgINBoNQkND8fnnn3vtvRIRERERUWBhIPQyR4HQYDAgLCwMNWvWVFwJBIqvHFavXh2NGzeWr/y5i1cIiYiIiIjIFgZCL3MUCOPi4iCEQOfOnW3uGx4eDiEE4uPjK1QDAyEREREREdnCQOhljgLhunXrIITA0KFDbe47ZMgQCCHw0UcfVagGZwKhwWBAbm6uvGRnZ+PPP/9ETk6OYj0XLly4cOHChQsXLt5ecnJy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\" width=\"900\">"
       ],
       "text/plain": [
        "<IPython.core.display.HTML object>"
       ]
      },
      "metadata": {},
      "output_type": "display_data"
     }
    ],
    "source": [
     "if True:\n",
     "    fig=plt.figure(figsize=(9,4))\n",
     "    fig.subplots_adjust(bottom=0.15, left=0.15, top = 0.9, right=0.9,wspace=0.0,hspace=0.25)\n",
     "    sub = fig.add_subplot(1,1,1)\n",
     "    \n",
     "    sub.plot(ax.T,np.abs(ax.dtheta/ax.theta),linestyle='-',linewidth=2,alpha=1,c='xkcd:black',label=r'$\\dfrac{\\delta \\theta}{\\theta}$')\n",
     "    sub.plot(ax.T,np.abs(ax.dzeta/ax.zeta),linestyle='-',linewidth=2,alpha=1,c='xkcd:red',label=r'$\\dfrac{\\delta \\zeta}{\\zeta}$')\n",
     "    \n",
     "    sub.set_yscale('log')\n",
     "    sub.set_xscale('linear')\n",
     "    \n",
     "    sub.set_xlabel(r'$T ~[{\\rm GeV}]$')\n",
     "    sub.xaxis.set_label_coords(0.5, -0.1) \n",
     "    sub.set_ylabel(r'local errors')\n",
     "    sub.yaxis.set_label_coords(-0.1,0.5) \n",
     "    \n",
     "    sub.legend(bbox_to_anchor=(0.98, 0.95),borderaxespad=0., \n",
     "           borderpad=0.05,ncol=1,loc='upper right',fontsize=14,framealpha=0)\n",
     "\n",
     "    \n",
     "    \n",
     "    \n",
     "    sub.axvline(ax.T_osc,linestyle='--',color='xkcd:gray',linewidth=1.5)\n",
     "    \n",
     "    \n",
     "    #set major ticks\n",
     "    _M_xticks=[ round(0.45+i*0.15,4) for i in range(0,15) ]\n",
     "    _M_yticks=[ 10.**i for i in range(-12,5,1)  ]\n",
     "\n",
     "    #set major ticks that will not have a label\n",
     "    _M_xticks_exception=[]\n",
     "    _M_yticks_exception=[]\n",
     "\n",
     "    _m_xticks=[]\n",
     "    _m_yticks=[]  \n",
     "    ft=FT(_M_xticks,_M_yticks,\n",
     "                 _M_xticks_exception,_M_yticks_exception,\n",
     "                 _m_xticks,_m_yticks,\n",
     "                 xmin=0.45,xmax=2,ymin=1e-11,ymax=1e-4,xscale='linear',yscale='log')\n",
     "\n",
     "    ft.format_ticks(plt,sub)    \n",
     "\n",
     "    \n",
     "    sub.text(x=0.92,y=1e-6, s=r'$T_{\\rm osc}$',rotation=90)\n",
     "    \n",
     "#     fig.savefig('local_errors.pdf',bbox_inches='tight')\n",
     "\n",
     "    \n",
     "    fig.show()\n"
    ]
   },
   {
    "cell_type": "code",
    "execution_count": 13,
    "metadata": {},
    "outputs": [
     {
      "data": {
       "application/javascript": [
        "/* Put everything inside the global mpl namespace */\n",
        "/* global mpl */\n",
        "window.mpl = {};\n",
        "\n",
        "mpl.get_websocket_type = function () {\n",
        "    if (typeof WebSocket !== 'undefined') {\n",
        "        return WebSocket;\n",
        "    } else if (typeof MozWebSocket !== 'undefined') {\n",
        "        return MozWebSocket;\n",
        "    } else {\n",
        "        alert(\n",
        "            'Your browser does not have WebSocket support. ' +\n",
        "                'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
        "                'Firefox 4 and 5 are also supported but you ' +\n",
        "                'have to enable WebSockets in about:config.'\n",
        "        );\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n",
        "    this.id = figure_id;\n",
        "\n",
        "    this.ws = websocket;\n",
        "\n",
        "    this.supports_binary = this.ws.binaryType !== undefined;\n",
        "\n",
        "    if (!this.supports_binary) {\n",
        "        var warnings = document.getElementById('mpl-warnings');\n",
        "        if (warnings) {\n",
        "            warnings.style.display = 'block';\n",
        "            warnings.textContent =\n",
        "                'This browser does not support binary websocket messages. ' +\n",
        "                'Performance may be slow.';\n",
        "        }\n",
        "    }\n",
        "\n",
        "    this.imageObj = new Image();\n",
        "\n",
        "    this.context = undefined;\n",
        "    this.message = undefined;\n",
        "    this.canvas = undefined;\n",
        "    this.rubberband_canvas = undefined;\n",
        "    this.rubberband_context = undefined;\n",
        "    this.format_dropdown = undefined;\n",
        "\n",
        "    this.image_mode = 'full';\n",
        "\n",
        "    this.root = document.createElement('div');\n",
        "    this.root.setAttribute('style', 'display: inline-block');\n",
        "    this._root_extra_style(this.root);\n",
        "\n",
        "    parent_element.appendChild(this.root);\n",
        "\n",
        "    this._init_header(this);\n",
        "    this._init_canvas(this);\n",
        "    this._init_toolbar(this);\n",
        "\n",
        "    var fig = this;\n",
        "\n",
        "    this.waiting = false;\n",
        "\n",
        "    this.ws.onopen = function () {\n",
        "        fig.send_message('supports_binary', { value: fig.supports_binary });\n",
        "        fig.send_message('send_image_mode', {});\n",
        "        if (fig.ratio !== 1) {\n",
        "            fig.send_message('set_dpi_ratio', { dpi_ratio: fig.ratio });\n",
        "        }\n",
        "        fig.send_message('refresh', {});\n",
        "    };\n",
        "\n",
        "    this.imageObj.onload = function () {\n",
        "        if (fig.image_mode === 'full') {\n",
        "            // Full images could contain transparency (where diff images\n",
        "            // almost always do), so we need to clear the canvas so that\n",
        "            // there is no ghosting.\n",
        "            fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
        "        }\n",
        "        fig.context.drawImage(fig.imageObj, 0, 0);\n",
        "    };\n",
        "\n",
        "    this.imageObj.onunload = function () {\n",
        "        fig.ws.close();\n",
        "    };\n",
        "\n",
        "    this.ws.onmessage = this._make_on_message_function(this);\n",
        "\n",
        "    this.ondownload = ondownload;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._init_header = function () {\n",
        "    var titlebar = document.createElement('div');\n",
        "    titlebar.classList =\n",
        "        'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n",
        "    var titletext = document.createElement('div');\n",
        "    titletext.classList = 'ui-dialog-title';\n",
        "    titletext.setAttribute(\n",
        "        'style',\n",
        "        'width: 100%; text-align: center; padding: 3px;'\n",
        "    );\n",
        "    titlebar.appendChild(titletext);\n",
        "    this.root.appendChild(titlebar);\n",
        "    this.header = titletext;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n",
        "\n",
        "mpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n",
        "\n",
        "mpl.figure.prototype._init_canvas = function () {\n",
        "    var fig = this;\n",
        "\n",
        "    var canvas_div = (this.canvas_div = document.createElement('div'));\n",
        "    canvas_div.setAttribute(\n",
        "        'style',\n",
        "        'border: 1px solid #ddd;' +\n",
        "            'box-sizing: content-box;' +\n",
        "            'clear: both;' +\n",
        "            'min-height: 1px;' +\n",
        "            'min-width: 1px;' +\n",
        "            'outline: 0;' +\n",
        "            'overflow: hidden;' +\n",
        "            'position: relative;' +\n",
        "            'resize: both;'\n",
        "    );\n",
        "\n",
        "    function on_keyboard_event_closure(name) {\n",
        "        return function (event) {\n",
        "            return fig.key_event(event, name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    canvas_div.addEventListener(\n",
        "        'keydown',\n",
        "        on_keyboard_event_closure('key_press')\n",
        "    );\n",
        "    canvas_div.addEventListener(\n",
        "        'keyup',\n",
        "        on_keyboard_event_closure('key_release')\n",
        "    );\n",
        "\n",
        "    this._canvas_extra_style(canvas_div);\n",
        "    this.root.appendChild(canvas_div);\n",
        "\n",
        "    var canvas = (this.canvas = document.createElement('canvas'));\n",
        "    canvas.classList.add('mpl-canvas');\n",
        "    canvas.setAttribute('style', 'box-sizing: content-box;');\n",
        "\n",
        "    this.context = canvas.getContext('2d');\n",
        "\n",
        "    var backingStore =\n",
        "        this.context.backingStorePixelRatio ||\n",
        "        this.context.webkitBackingStorePixelRatio ||\n",
        "        this.context.mozBackingStorePixelRatio ||\n",
        "        this.context.msBackingStorePixelRatio ||\n",
        "        this.context.oBackingStorePixelRatio ||\n",
        "        this.context.backingStorePixelRatio ||\n",
        "        1;\n",
        "\n",
        "    this.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
        "\n",
        "    var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n",
        "        'canvas'\n",
        "    ));\n",
        "    rubberband_canvas.setAttribute(\n",
        "        'style',\n",
        "        'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n",
        "    );\n",
        "\n",
        "    // Apply a ponyfill if ResizeObserver is not implemented by browser.\n",
        "    if (this.ResizeObserver === undefined) {\n",
        "        if (window.ResizeObserver !== undefined) {\n",
        "            this.ResizeObserver = window.ResizeObserver;\n",
        "        } else {\n",
        "            var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n",
        "            this.ResizeObserver = obs.ResizeObserver;\n",
        "        }\n",
        "    }\n",
        "\n",
        "    this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n",
        "        var nentries = entries.length;\n",
        "        for (var i = 0; i < nentries; i++) {\n",
        "            var entry = entries[i];\n",
        "            var width, height;\n",
        "            if (entry.contentBoxSize) {\n",
        "                if (entry.contentBoxSize instanceof Array) {\n",
        "                    // Chrome 84 implements new version of spec.\n",
        "                    width = entry.contentBoxSize[0].inlineSize;\n",
        "                    height = entry.contentBoxSize[0].blockSize;\n",
        "                } else {\n",
        "                    // Firefox implements old version of spec.\n",
        "                    width = entry.contentBoxSize.inlineSize;\n",
        "                    height = entry.contentBoxSize.blockSize;\n",
        "                }\n",
        "            } else {\n",
        "                // Chrome <84 implements even older version of spec.\n",
        "                width = entry.contentRect.width;\n",
        "                height = entry.contentRect.height;\n",
        "            }\n",
        "\n",
        "            // Keep the size of the canvas and rubber band canvas in sync with\n",
        "            // the canvas container.\n",
        "            if (entry.devicePixelContentBoxSize) {\n",
        "                // Chrome 84 implements new version of spec.\n",
        "                canvas.setAttribute(\n",
        "                    'width',\n",
        "                    entry.devicePixelContentBoxSize[0].inlineSize\n",
        "                );\n",
        "                canvas.setAttribute(\n",
        "                    'height',\n",
        "                    entry.devicePixelContentBoxSize[0].blockSize\n",
        "                );\n",
        "            } else {\n",
        "                canvas.setAttribute('width', width * fig.ratio);\n",
        "                canvas.setAttribute('height', height * fig.ratio);\n",
        "            }\n",
        "            canvas.setAttribute(\n",
        "                'style',\n",
        "                'width: ' + width + 'px; height: ' + height + 'px;'\n",
        "            );\n",
        "\n",
        "            rubberband_canvas.setAttribute('width', width);\n",
        "            rubberband_canvas.setAttribute('height', height);\n",
        "\n",
        "            // And update the size in Python. We ignore the initial 0/0 size\n",
        "            // that occurs as the element is placed into the DOM, which should\n",
        "            // otherwise not happen due to the minimum size styling.\n",
        "            if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n",
        "                fig.request_resize(width, height);\n",
        "            }\n",
        "        }\n",
        "    });\n",
        "    this.resizeObserverInstance.observe(canvas_div);\n",
        "\n",
        "    function on_mouse_event_closure(name) {\n",
        "        return function (event) {\n",
        "            return fig.mouse_event(event, name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mousedown',\n",
        "        on_mouse_event_closure('button_press')\n",
        "    );\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mouseup',\n",
        "        on_mouse_event_closure('button_release')\n",
        "    );\n",
        "    // Throttle sequential mouse events to 1 every 20ms.\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mousemove',\n",
        "        on_mouse_event_closure('motion_notify')\n",
        "    );\n",
        "\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mouseenter',\n",
        "        on_mouse_event_closure('figure_enter')\n",
        "    );\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mouseleave',\n",
        "        on_mouse_event_closure('figure_leave')\n",
        "    );\n",
        "\n",
        "    canvas_div.addEventListener('wheel', function (event) {\n",
        "        if (event.deltaY < 0) {\n",
        "            event.step = 1;\n",
        "        } else {\n",
        "            event.step = -1;\n",
        "        }\n",
        "        on_mouse_event_closure('scroll')(event);\n",
        "    });\n",
        "\n",
        "    canvas_div.appendChild(canvas);\n",
        "    canvas_div.appendChild(rubberband_canvas);\n",
        "\n",
        "    this.rubberband_context = rubberband_canvas.getContext('2d');\n",
        "    this.rubberband_context.strokeStyle = '#000000';\n",
        "\n",
        "    this._resize_canvas = function (width, height, forward) {\n",
        "        if (forward) {\n",
        "            canvas_div.style.width = width + 'px';\n",
        "            canvas_div.style.height = height + 'px';\n",
        "        }\n",
        "    };\n",
        "\n",
        "    // Disable right mouse context menu.\n",
        "    this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n",
        "        event.preventDefault();\n",
        "        return false;\n",
        "    });\n",
        "\n",
        "    function set_focus() {\n",
        "        canvas.focus();\n",
        "        canvas_div.focus();\n",
        "    }\n",
        "\n",
        "    window.setTimeout(set_focus, 100);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._init_toolbar = function () {\n",
        "    var fig = this;\n",
        "\n",
        "    var toolbar = document.createElement('div');\n",
        "    toolbar.classList = 'mpl-toolbar';\n",
        "    this.root.appendChild(toolbar);\n",
        "\n",
        "    function on_click_closure(name) {\n",
        "        return function (_event) {\n",
        "            return fig.toolbar_button_onclick(name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    function on_mouseover_closure(tooltip) {\n",
        "        return function (event) {\n",
        "            if (!event.currentTarget.disabled) {\n",
        "                return fig.toolbar_button_onmouseover(tooltip);\n",
        "            }\n",
        "        };\n",
        "    }\n",
        "\n",
        "    fig.buttons = {};\n",
        "    var buttonGroup = document.createElement('div');\n",
        "    buttonGroup.classList = 'mpl-button-group';\n",
        "    for (var toolbar_ind in mpl.toolbar_items) {\n",
        "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
        "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
        "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
        "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
        "\n",
        "        if (!name) {\n",
        "            /* Instead of a spacer, we start a new button group. */\n",
        "            if (buttonGroup.hasChildNodes()) {\n",
        "                toolbar.appendChild(buttonGroup);\n",
        "            }\n",
        "            buttonGroup = document.createElement('div');\n",
        "            buttonGroup.classList = 'mpl-button-group';\n",
        "            continue;\n",
        "        }\n",
        "\n",
        "        var button = (fig.buttons[name] = document.createElement('button'));\n",
        "        button.classList = 'mpl-widget';\n",
        "        button.setAttribute('role', 'button');\n",
        "        button.setAttribute('aria-disabled', 'false');\n",
        "        button.addEventListener('click', on_click_closure(method_name));\n",
        "        button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
        "\n",
        "        var icon_img = document.createElement('img');\n",
        "        icon_img.src = '_images/' + image + '.png';\n",
        "        icon_img.srcset = '_images/' + image + '_large.png 2x';\n",
        "        icon_img.alt = tooltip;\n",
        "        button.appendChild(icon_img);\n",
        "\n",
        "        buttonGroup.appendChild(button);\n",
        "    }\n",
        "\n",
        "    if (buttonGroup.hasChildNodes()) {\n",
        "        toolbar.appendChild(buttonGroup);\n",
        "    }\n",
        "\n",
        "    var fmt_picker = document.createElement('select');\n",
        "    fmt_picker.classList = 'mpl-widget';\n",
        "    toolbar.appendChild(fmt_picker);\n",
        "    this.format_dropdown = fmt_picker;\n",
        "\n",
        "    for (var ind in mpl.extensions) {\n",
        "        var fmt = mpl.extensions[ind];\n",
        "        var option = document.createElement('option');\n",
        "        option.selected = fmt === mpl.default_extension;\n",
        "        option.innerHTML = fmt;\n",
        "        fmt_picker.appendChild(option);\n",
        "    }\n",
        "\n",
        "    var status_bar = document.createElement('span');\n",
        "    status_bar.classList = 'mpl-message';\n",
        "    toolbar.appendChild(status_bar);\n",
        "    this.message = status_bar;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n",
        "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
        "    // which will in turn request a refresh of the image.\n",
        "    this.send_message('resize', { width: x_pixels, height: y_pixels });\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.send_message = function (type, properties) {\n",
        "    properties['type'] = type;\n",
        "    properties['figure_id'] = this.id;\n",
        "    this.ws.send(JSON.stringify(properties));\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.send_draw_message = function () {\n",
        "    if (!this.waiting) {\n",
        "        this.waiting = true;\n",
        "        this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
        "    var format_dropdown = fig.format_dropdown;\n",
        "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
        "    fig.ondownload(fig, format);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_resize = function (fig, msg) {\n",
        "    var size = msg['size'];\n",
        "    if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n",
        "        fig._resize_canvas(size[0], size[1], msg['forward']);\n",
        "        fig.send_message('refresh', {});\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_rubberband = function (fig, msg) {\n",
        "    var x0 = msg['x0'] / fig.ratio;\n",
        "    var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n",
        "    var x1 = msg['x1'] / fig.ratio;\n",
        "    var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n",
        "    x0 = Math.floor(x0) + 0.5;\n",
        "    y0 = Math.floor(y0) + 0.5;\n",
        "    x1 = Math.floor(x1) + 0.5;\n",
        "    y1 = Math.floor(y1) + 0.5;\n",
        "    var min_x = Math.min(x0, x1);\n",
        "    var min_y = Math.min(y0, y1);\n",
        "    var width = Math.abs(x1 - x0);\n",
        "    var height = Math.abs(y1 - y0);\n",
        "\n",
        "    fig.rubberband_context.clearRect(\n",
        "        0,\n",
        "        0,\n",
        "        fig.canvas.width / fig.ratio,\n",
        "        fig.canvas.height / fig.ratio\n",
        "    );\n",
        "\n",
        "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_figure_label = function (fig, msg) {\n",
        "    // Updates the figure title.\n",
        "    fig.header.textContent = msg['label'];\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_cursor = function (fig, msg) {\n",
        "    var cursor = msg['cursor'];\n",
        "    switch (cursor) {\n",
        "        case 0:\n",
        "            cursor = 'pointer';\n",
        "            break;\n",
        "        case 1:\n",
        "            cursor = 'default';\n",
        "            break;\n",
        "        case 2:\n",
        "            cursor = 'crosshair';\n",
        "            break;\n",
        "        case 3:\n",
        "            cursor = 'move';\n",
        "            break;\n",
        "    }\n",
        "    fig.rubberband_canvas.style.cursor = cursor;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_message = function (fig, msg) {\n",
        "    fig.message.textContent = msg['message'];\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_draw = function (fig, _msg) {\n",
        "    // Request the server to send over a new figure.\n",
        "    fig.send_draw_message();\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_image_mode = function (fig, msg) {\n",
        "    fig.image_mode = msg['mode'];\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n",
        "    for (var key in msg) {\n",
        "        if (!(key in fig.buttons)) {\n",
        "            continue;\n",
        "        }\n",
        "        fig.buttons[key].disabled = !msg[key];\n",
        "        fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n",
        "    if (msg['mode'] === 'PAN') {\n",
        "        fig.buttons['Pan'].classList.add('active');\n",
        "        fig.buttons['Zoom'].classList.remove('active');\n",
        "    } else if (msg['mode'] === 'ZOOM') {\n",
        "        fig.buttons['Pan'].classList.remove('active');\n",
        "        fig.buttons['Zoom'].classList.add('active');\n",
        "    } else {\n",
        "        fig.buttons['Pan'].classList.remove('active');\n",
        "        fig.buttons['Zoom'].classList.remove('active');\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.updated_canvas_event = function () {\n",
        "    // Called whenever the canvas gets updated.\n",
        "    this.send_message('ack', {});\n",
        "};\n",
        "\n",
        "// A function to construct a web socket function for onmessage handling.\n",
        "// Called in the figure constructor.\n",
        "mpl.figure.prototype._make_on_message_function = function (fig) {\n",
        "    return function socket_on_message(evt) {\n",
        "        if (evt.data instanceof Blob) {\n",
        "            /* FIXME: We get \"Resource interpreted as Image but\n",
        "             * transferred with MIME type text/plain:\" errors on\n",
        "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
        "             * to be part of the websocket stream */\n",
        "            evt.data.type = 'image/png';\n",
        "\n",
        "            /* Free the memory for the previous frames */\n",
        "            if (fig.imageObj.src) {\n",
        "                (window.URL || window.webkitURL).revokeObjectURL(\n",
        "                    fig.imageObj.src\n",
        "                );\n",
        "            }\n",
        "\n",
        "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
        "                evt.data\n",
        "            );\n",
        "            fig.updated_canvas_event();\n",
        "            fig.waiting = false;\n",
        "            return;\n",
        "        } else if (\n",
        "            typeof evt.data === 'string' &&\n",
        "            evt.data.slice(0, 21) === 'data:image/png;base64'\n",
        "        ) {\n",
        "            fig.imageObj.src = evt.data;\n",
        "            fig.updated_canvas_event();\n",
        "            fig.waiting = false;\n",
        "            return;\n",
        "        }\n",
        "\n",
        "        var msg = JSON.parse(evt.data);\n",
        "        var msg_type = msg['type'];\n",
        "\n",
        "        // Call the  \"handle_{type}\" callback, which takes\n",
        "        // the figure and JSON message as its only arguments.\n",
        "        try {\n",
        "            var callback = fig['handle_' + msg_type];\n",
        "        } catch (e) {\n",
        "            console.log(\n",
        "                \"No handler for the '\" + msg_type + \"' message type: \",\n",
        "                msg\n",
        "            );\n",
        "            return;\n",
        "        }\n",
        "\n",
        "        if (callback) {\n",
        "            try {\n",
        "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
        "                callback(fig, msg);\n",
        "            } catch (e) {\n",
        "                console.log(\n",
        "                    \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n",
        "                    e,\n",
        "                    e.stack,\n",
        "                    msg\n",
        "                );\n",
        "            }\n",
        "        }\n",
        "    };\n",
        "};\n",
        "\n",
        "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
        "mpl.findpos = function (e) {\n",
        "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
        "    var targ;\n",
        "    if (!e) {\n",
        "        e = window.event;\n",
        "    }\n",
        "    if (e.target) {\n",
        "        targ = e.target;\n",
        "    } else if (e.srcElement) {\n",
        "        targ = e.srcElement;\n",
        "    }\n",
        "    if (targ.nodeType === 3) {\n",
        "        // defeat Safari bug\n",
        "        targ = targ.parentNode;\n",
        "    }\n",
        "\n",
        "    // pageX,Y are the mouse positions relative to the document\n",
        "    var boundingRect = targ.getBoundingClientRect();\n",
        "    var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n",
        "    var y = e.pageY - (boundingRect.top + document.body.scrollTop);\n",
        "\n",
        "    return { x: x, y: y };\n",
        "};\n",
        "\n",
        "/*\n",
        " * return a copy of an object with only non-object keys\n",
        " * we need this to avoid circular references\n",
        " * http://stackoverflow.com/a/24161582/3208463\n",
        " */\n",
        "function simpleKeys(original) {\n",
        "    return Object.keys(original).reduce(function (obj, key) {\n",
        "        if (typeof original[key] !== 'object') {\n",
        "            obj[key] = original[key];\n",
        "        }\n",
        "        return obj;\n",
        "    }, {});\n",
        "}\n",
        "\n",
        "mpl.figure.prototype.mouse_event = function (event, name) {\n",
        "    var canvas_pos = mpl.findpos(event);\n",
        "\n",
        "    if (name === 'button_press') {\n",
        "        this.canvas.focus();\n",
        "        this.canvas_div.focus();\n",
        "    }\n",
        "\n",
        "    var x = canvas_pos.x * this.ratio;\n",
        "    var y = canvas_pos.y * this.ratio;\n",
        "\n",
        "    this.send_message(name, {\n",
        "        x: x,\n",
        "        y: y,\n",
        "        button: event.button,\n",
        "        step: event.step,\n",
        "        guiEvent: simpleKeys(event),\n",
        "    });\n",
        "\n",
        "    /* This prevents the web browser from automatically changing to\n",
        "     * the text insertion cursor when the button is pressed.  We want\n",
        "     * to control all of the cursor setting manually through the\n",
        "     * 'cursor' event from matplotlib */\n",
        "    event.preventDefault();\n",
        "    return false;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._key_event_extra = function (_event, _name) {\n",
        "    // Handle any extra behaviour associated with a key event\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.key_event = function (event, name) {\n",
        "    // Prevent repeat events\n",
        "    if (name === 'key_press') {\n",
        "        if (event.which === this._key) {\n",
        "            return;\n",
        "        } else {\n",
        "            this._key = event.which;\n",
        "        }\n",
        "    }\n",
        "    if (name === 'key_release') {\n",
        "        this._key = null;\n",
        "    }\n",
        "\n",
        "    var value = '';\n",
        "    if (event.ctrlKey && event.which !== 17) {\n",
        "        value += 'ctrl+';\n",
        "    }\n",
        "    if (event.altKey && event.which !== 18) {\n",
        "        value += 'alt+';\n",
        "    }\n",
        "    if (event.shiftKey && event.which !== 16) {\n",
        "        value += 'shift+';\n",
        "    }\n",
        "\n",
        "    value += 'k';\n",
        "    value += event.which.toString();\n",
        "\n",
        "    this._key_event_extra(event, name);\n",
        "\n",
        "    this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n",
        "    return false;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.toolbar_button_onclick = function (name) {\n",
        "    if (name === 'download') {\n",
        "        this.handle_save(this, null);\n",
        "    } else {\n",
        "        this.send_message('toolbar_button', { name: name });\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n",
        "    this.message.textContent = tooltip;\n",
        "};\n",
        "\n",
        "///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n",
        "// prettier-ignore\n",
        "var _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\n",
        "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
        "\n",
        "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
        "\n",
        "mpl.default_extension = \"png\";/* global mpl */\n",
        "\n",
        "var comm_websocket_adapter = function (comm) {\n",
        "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
        "    // object with the appropriate methods. Currently this is a non binary\n",
        "    // socket, so there is still some room for performance tuning.\n",
        "    var ws = {};\n",
        "\n",
        "    ws.close = function () {\n",
        "        comm.close();\n",
        "    };\n",
        "    ws.send = function (m) {\n",
        "        //console.log('sending', m);\n",
        "        comm.send(m);\n",
        "    };\n",
        "    // Register the callback with on_msg.\n",
        "    comm.on_msg(function (msg) {\n",
        "        //console.log('receiving', msg['content']['data'], msg);\n",
        "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
        "        ws.onmessage(msg['content']['data']);\n",
        "    });\n",
        "    return ws;\n",
        "};\n",
        "\n",
        "mpl.mpl_figure_comm = function (comm, msg) {\n",
        "    // This is the function which gets called when the mpl process\n",
        "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
        "\n",
        "    var id = msg.content.data.id;\n",
        "    // Get hold of the div created by the display call when the Comm\n",
        "    // socket was opened in Python.\n",
        "    var element = document.getElementById(id);\n",
        "    var ws_proxy = comm_websocket_adapter(comm);\n",
        "\n",
        "    function ondownload(figure, _format) {\n",
        "        window.open(figure.canvas.toDataURL());\n",
        "    }\n",
        "\n",
        "    var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n",
        "\n",
        "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
        "    // web socket which is closed, not our websocket->open comm proxy.\n",
        "    ws_proxy.onopen();\n",
        "\n",
        "    fig.parent_element = element;\n",
        "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
        "    if (!fig.cell_info) {\n",
        "        console.error('Failed to find cell for figure', id, fig);\n",
        "        return;\n",
        "    }\n",
        "    fig.cell_info[0].output_area.element.on(\n",
        "        'cleared',\n",
        "        { fig: fig },\n",
        "        fig._remove_fig_handler\n",
        "    );\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_close = function (fig, msg) {\n",
        "    var width = fig.canvas.width / fig.ratio;\n",
        "    fig.cell_info[0].output_area.element.off(\n",
        "        'cleared',\n",
        "        fig._remove_fig_handler\n",
        "    );\n",
        "    fig.resizeObserverInstance.unobserve(fig.canvas_div);\n",
        "\n",
        "    // Update the output cell to use the data from the current canvas.\n",
        "    fig.push_to_output();\n",
        "    var dataURL = fig.canvas.toDataURL();\n",
        "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
        "    // the notebook keyboard shortcuts fail.\n",
        "    IPython.keyboard_manager.enable();\n",
        "    fig.parent_element.innerHTML =\n",
        "        '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
        "    fig.close_ws(fig, msg);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.close_ws = function (fig, msg) {\n",
        "    fig.send_message('closing', msg);\n",
        "    // fig.ws.close()\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.push_to_output = function (_remove_interactive) {\n",
        "    // Turn the data on the canvas into data in the output cell.\n",
        "    var width = this.canvas.width / this.ratio;\n",
        "    var dataURL = this.canvas.toDataURL();\n",
        "    this.cell_info[1]['text/html'] =\n",
        "        '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.updated_canvas_event = function () {\n",
        "    // Tell IPython that the notebook contents must change.\n",
        "    IPython.notebook.set_dirty(true);\n",
        "    this.send_message('ack', {});\n",
        "    var fig = this;\n",
        "    // Wait a second, then push the new image to the DOM so\n",
        "    // that it is saved nicely (might be nice to debounce this).\n",
        "    setTimeout(function () {\n",
        "        fig.push_to_output();\n",
        "    }, 1000);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._init_toolbar = function () {\n",
        "    var fig = this;\n",
        "\n",
        "    var toolbar = document.createElement('div');\n",
        "    toolbar.classList = 'btn-toolbar';\n",
        "    this.root.appendChild(toolbar);\n",
        "\n",
        "    function on_click_closure(name) {\n",
        "        return function (_event) {\n",
        "            return fig.toolbar_button_onclick(name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    function on_mouseover_closure(tooltip) {\n",
        "        return function (event) {\n",
        "            if (!event.currentTarget.disabled) {\n",
        "                return fig.toolbar_button_onmouseover(tooltip);\n",
        "            }\n",
        "        };\n",
        "    }\n",
        "\n",
        "    fig.buttons = {};\n",
        "    var buttonGroup = document.createElement('div');\n",
        "    buttonGroup.classList = 'btn-group';\n",
        "    var button;\n",
        "    for (var toolbar_ind in mpl.toolbar_items) {\n",
        "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
        "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
        "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
        "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
        "\n",
        "        if (!name) {\n",
        "            /* Instead of a spacer, we start a new button group. */\n",
        "            if (buttonGroup.hasChildNodes()) {\n",
        "                toolbar.appendChild(buttonGroup);\n",
        "            }\n",
        "            buttonGroup = document.createElement('div');\n",
        "            buttonGroup.classList = 'btn-group';\n",
        "            continue;\n",
        "        }\n",
        "\n",
        "        button = fig.buttons[name] = document.createElement('button');\n",
        "        button.classList = 'btn btn-default';\n",
        "        button.href = '#';\n",
        "        button.title = name;\n",
        "        button.innerHTML = '<i class=\"fa ' + image + ' fa-lg\"></i>';\n",
        "        button.addEventListener('click', on_click_closure(method_name));\n",
        "        button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
        "        buttonGroup.appendChild(button);\n",
        "    }\n",
        "\n",
        "    if (buttonGroup.hasChildNodes()) {\n",
        "        toolbar.appendChild(buttonGroup);\n",
        "    }\n",
        "\n",
        "    // Add the status bar.\n",
        "    var status_bar = document.createElement('span');\n",
        "    status_bar.classList = 'mpl-message pull-right';\n",
        "    toolbar.appendChild(status_bar);\n",
        "    this.message = status_bar;\n",
        "\n",
        "    // Add the close button to the window.\n",
        "    var buttongrp = document.createElement('div');\n",
        "    buttongrp.classList = 'btn-group inline pull-right';\n",
        "    button = document.createElement('button');\n",
        "    button.classList = 'btn btn-mini btn-primary';\n",
        "    button.href = '#';\n",
        "    button.title = 'Stop Interaction';\n",
        "    button.innerHTML = '<i class=\"fa fa-power-off icon-remove icon-large\"></i>';\n",
        "    button.addEventListener('click', function (_evt) {\n",
        "        fig.handle_close(fig, {});\n",
        "    });\n",
        "    button.addEventListener(\n",
        "        'mouseover',\n",
        "        on_mouseover_closure('Stop Interaction')\n",
        "    );\n",
        "    buttongrp.appendChild(button);\n",
        "    var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n",
        "    titlebar.insertBefore(buttongrp, titlebar.firstChild);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._remove_fig_handler = function (event) {\n",
        "    var fig = event.data.fig;\n",
        "    if (event.target !== this) {\n",
        "        // Ignore bubbled events from children.\n",
        "        return;\n",
        "    }\n",
        "    fig.close_ws(fig, {});\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._root_extra_style = function (el) {\n",
        "    el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._canvas_extra_style = function (el) {\n",
        "    // this is important to make the div 'focusable\n",
        "    el.setAttribute('tabindex', 0);\n",
        "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
        "    // off when our div gets focus\n",
        "\n",
        "    // location in version 3\n",
        "    if (IPython.notebook.keyboard_manager) {\n",
        "        IPython.notebook.keyboard_manager.register_events(el);\n",
        "    } else {\n",
        "        // location in version 2\n",
        "        IPython.keyboard_manager.register_events(el);\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._key_event_extra = function (event, _name) {\n",
        "    var manager = IPython.notebook.keyboard_manager;\n",
        "    if (!manager) {\n",
        "        manager = IPython.keyboard_manager;\n",
        "    }\n",
        "\n",
        "    // Check for shift+enter\n",
        "    if (event.shiftKey && event.which === 13) {\n",
        "        this.canvas_div.blur();\n",
        "        // select the cell after this one\n",
        "        var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n",
        "        IPython.notebook.select(index + 1);\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
        "    fig.ondownload(fig, null);\n",
        "};\n",
        "\n",
        "mpl.find_output_cell = function (html_output) {\n",
        "    // Return the cell and output element which can be found *uniquely* in the notebook.\n",
        "    // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
        "    // IPython event is triggered only after the cells have been serialised, which for\n",
        "    // our purposes (turning an active figure into a static one), is too late.\n",
        "    var cells = IPython.notebook.get_cells();\n",
        "    var ncells = cells.length;\n",
        "    for (var i = 0; i < ncells; i++) {\n",
        "        var cell = cells[i];\n",
        "        if (cell.cell_type === 'code') {\n",
        "            for (var j = 0; j < cell.output_area.outputs.length; j++) {\n",
        "                var data = cell.output_area.outputs[j];\n",
        "                if (data.data) {\n",
        "                    // IPython >= 3 moved mimebundle to data attribute of output\n",
        "                    data = data.data;\n",
        "                }\n",
        "                if (data['text/html'] === html_output) {\n",
        "                    return [cell, data, j];\n",
        "                }\n",
        "            }\n",
        "        }\n",
        "    }\n",
        "};\n",
        "\n",
        "// Register the function which deals with the matplotlib target/channel.\n",
        "// The kernel may be null if the page has been refreshed.\n",
        "if (IPython.notebook.kernel !== null) {\n",
        "    IPython.notebook.kernel.comm_manager.register_target(\n",
        "        'matplotlib',\n",
        "        mpl.mpl_figure_comm\n",
        "    );\n",
        "}\n"
       ],
       "text/plain": [
        "<IPython.core.display.Javascript object>"
       ]
      },
      "metadata": {},
      "output_type": "display_data"
     },
     {
      "data": {
       "text/html": [
-       "<img src=\"data:image/png;base64,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tWzZUqFQSGPGjFHPnj3L3p/w9ttvT/ZRI5SUlGjlypXq1q2bjDEaN25chdctKCjQnDlzNHLkSE2ePFkDBgxQdna2CgsLK/ycH374QW3btq32t58RhP4eEqtnz55x/z15URkAQJAQhM7xTRBK0uLFi9W6deuyN3g+emlpaVq0aFGyj1jOli1btH37di1dujRqEBYWFqp///7q06eP8vPzJf34BWLPnj01aNAgFRcX235edna2Vq9eXe1zEYT+HhKrW7ducX8CIwgBAEFCEDrHV0Eo/RhO69ev18KFC3XnnXdq/vz5eumll8oiyq3Wrl0bNQizs7NljFFOTk7E5c8995yMMZo3b165z3n22We1bNmyGp2HIPT3kFiWZal27drq27evfv/73+v111+v8D/aVBVBCAAIEoLQOb4LQq+KFoT5+flq2rSpGjRoUO6LysLCQqWmpqpt27YKh8Nll+fk5JR7ZdHq/NwRQejvIbGO/u6EUCikUCikxo0b69JLL9WCBQv0ySef2H5etFcDJggBAEFCEDrHF0F4wQUXaPLkyVW67m9+8xtdeOGFCT5R9UULwtdff13GGGVmZtp+bq9evWSM0aZNmyT9+CI7d9xxh7Zu3aqtW7fqo48+0v3336933nmnyuchCP09JNbpp5+uDz74QPfcc4+GDBmiRo0alQvEDh06aMKECXriiSf03XffSZJuvPHGCn9PghAAECQEoXN8EYSWZemcc86p0nXPP/982/cnTLZoQbh48WIZYzR8+HDbzx06dKiMMVqyZIlefvll1a1bV8aYiPXq1Svqn5+fn6+DBw+Wbe/evQShj4fEOumkkyJ+XVxcrA0bNmjmzJk699xzVbdu3XKBWPoqyBUhCAEAQUIQOidwQXjWWWcpJSUlwSeqvmhBOGvWLBljKnz/xFGjRskYo7vuuqvGf/6MGTPKRSRB6N8hserXr6+SkpIKP37kyBGtWbNGt9xyizIyMlSrVq2yOIz2OQQhACAoCELnBCoIc3Nz1aJFC7Vu3dqBU1VPtCCcO3du1CAcPXq0jDGaNWtWjf98/oUwWENiWZal5557rsrX379/v+bNm6fU1NQKr1NUVKTN72/W5vc388b1AADfIwid48kgXL16tbKysspmWZZat24dcdmxu/LKK9W5c2eFQiGNHDky2TehnGhBuGLFChljNGLECNvPHTFi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91jTp09Xjx49ogahV/5yx+O+2bZtm4477jh17txZ3333XaKPHJNYb2/Xrl3Vr18/ZWVlacKECRFr1qyZrrvuunKf45XHQnZ2towx5d6K5bnnnpMxRvPmzYv6+UOHDlXz5s3L3YeTJk1SrVq1tHnz5rifOVaxPOnX5LHklcdCLPfL559/rmbNmumcc87RVVddpd69e5d9kTt69OjEHToGsdzer776St27d9fUqVP1+OOP6+6771bbtm1ljNETTzxh+zleeRxIsd03pYJ0e6v7fBiU+2bPnj1KS0vTAw88UHZZOBzWmDFj1LlzZx05ciQBJ47d2rVrq31bq/tc+OKLL+rSSy+Nx3ERRwShD8X6he7RNmzYoKysLM2YMaPCIPTSX+5Y75uCgoKy/1r4+uuvJ/KocRHL7X3ppZf0hz/8wfZj3333nWrXrq1XX3014nKvPBby8/PVtGlTNWjQoNyTWGFhoVJTU9W2bVuFw2Hbz//yyy9lWZbOPffcch9bs2aNq2NAqtmTfnUfS155LBytJvfLkCFD9M9//jPisqeeekqWZckYow8++CDOp4yfmtzeKVOm6JNPPom47K233pIxRiNGjCh3fS8+DqSa3TdSsG5vdZ8Pg3Tf3H777TLG6Icffoi4/J133pExRk8//XScTxkf1b2tNXkuPPvss5WVlaWcnJxy9w+ShyD0mVi/0D3aoUOHdMEFF+jgwYNRg9Arf7njcd8sWrRIxhidf/75iT5uzGK9vXv37lVJSYntxxYsWKDjjz++3Od65bHw+uuvyxijzMxM24/36tVLxhht2rTJ9uPPPvusjDG68sory31s9+7dMsYoLS0trmeOp+o+6dfkseSVx8LRqnu/fPPNN5o8ebLtx4YNGyZjjFasWBHHE8ZXTb7Q/c9//lPusiNHjsgYo4kTJ5b7mBcfB1LNgzBIt7e6z4dBum9uvPFGGWO0cePGiMv//e9/yxijNWvWxPmU8VHd21rd58JXX3014luF69Spo8svv5zXYHABgtBnYv1C92hZWVl67bXXJKnCIPTSX+543DcZGRkyxmjSpEkaPXq02rVrp9TUVPXq1ct1r6gWz8fCsfr27atf//rXEZd56bGwePFiGWM0fPhw248PHTpUxhgtWbLE9uOPPvqojDG65JJLyn0sLy+v7D74/vvv43rueKnuk351H0teeiwcrbr3y6FDh3TgwAHbj02dOlXGmLL/DXWjmkbPsdasWaOWLVuW+/+vVx8HUs3um6Dd3uo8Hwbtvnn66adljFH37t317bffll0+fvx4nXbaaSooKEjASWNX3dta3efCL774Qi+88IIWLVqkkSNHqm7dujLGqHHjxvr3v/8dz5uCaiIIfSbWL3RLrVy5UrfddlvZrysKQi/95Y71vtm/f3/Zt4Fddtll2rZtm/Lz8/Xaa6/pxBNPlDEm4oeqky1ej4Vj7dixQ8YYvfnmmxGXe+mxMGvWrKjf1jlq1CgZY3TXXXfZfvzll1+WMUadOnWy/Xjpk+CXX34ZtzPHU3Wf9Kv7WPLSY+Fo8QokSRo7dqzatWvn2heWkeJze99++2117dpVH374YbmPefVxINXsvgnS7a3u82GQ7ptS11xzjYwxatOmjZYvX66srCyNHz9e+/fvT8xB46C6tzXW58Ivv/yy7Lsp2rRpo7y8vJoeHTEiCH0m1i90pR+/VfDCCy+MeOXAaN8yejQ3/+WO9b754IMPZIxR06ZNlZubG/Gx999/X8YYNWvWrNzHkiUejwU7M2fOVHp6eqXXc/NjYe7cuVHvm9GjR8sYo1mzZtl+/MiRI2rSpImMMVq3bl3Ex/bv31/2JOim23y06j7px/pYcvNj4WjxCsLCwkK1bNnSla+ceLRYbu+6des0bNgwhUIhGWPUpEkTrV69OurneOVxIMXnseDn2xvr86Gf75tSJSUlmj59elk4n3766a5/VfLq3tZ4PBeGw2FdeumlMsboySefjOX4iAFB6DOxfqEbDoc1ePBgffzxxxGXVzUIS38PN/7ljvW+Kf22uT59+th+vPSH66vzXo2JFOvtrcjJJ5+sadOmVem6bn0srFixQsbYvwiGJI0YMaLSfz0t/fmZLl266IMPPlA4HNaWLVs0cuRIGWN0/PHHJ+r4Mavuk348HktufSwcLV5BOG/ePI0aNSo+h0qgWG5vOBzWoUOH9O9//1sTJkyQMUaNGjWq9F/FvfA4kOL3WPDr7Y3H86Ff75tSeXl5uv766zV27Fh17txZxhg1bNhQ//jHPxJz0DiI5WdJY3kufPvtt2WM0d133x3D6RELgtBnYv1C9+6779bvf/97ff311xGbMmWKjDF66qmn9PXXX1f6A+Fu/Msd633z4YcfRn0CLP38xx57LG5njkU8oudYpa+Q9t5771X5c9z4WNi0aZOMMTrzzDNtP176vpuV/Xzl448/royMDDVq1Ejp6em65pprtGDBAhljNHbs2EQcPS6q+6Qfr8eSGx8LR4tHBLz33nsaOnSoa39G6Gjx/BbZ0hfRqMq/irr9cSDF977x4+2N1/OhH+8bSfrhhx/Ut29fXXPNNZJ+jMObbrpJxhjVrl27Rj+774SaPu5jfS4s/XnDBQsW1PDkiBVB6DOxfqF73nnnlf0Tf7TNmDEj6jnc+Jc71vsmPz9fKSkpFX675FVXXSVjjGv+61+8oudoN910k04++eRqncONj4Xi4mKlpaWpcePG5V5Jtbi4WA0bNlRaWlqVXo33WKX/xdst/1Jsp7pP+vF6LLnxsXC0WCPg008/1ahRo1zzbeOViWf0lD5G/vSnP1V6Xbc/DqT43jd+vL3xej70430j/fijFcYYffrppxGXl759T0X/cS3Z4vm4r85z4fbt22WM0VtvvRXzn4uaIQh9JtYvdDdt2qQXX3yx3K6++moZYzR79my9+OKL2r59e9RzuPEvdzwiYMCAAbIsS//73//Kfeziiy+WMabS+8Yp8Y6ecDis448/vtL/GHAsNz4WJGn69Okyxmj9+vURl+fk5MgYo+nTp5ddVlxcrCeffLLck/ux1q1bJ8uyNGTIkIScOV6q+6Qfr8eSWx8LpWL5YujTTz/VuHHjPBODUny/+Nu8eXOV/4OY2x8HUnzvG7/e3ng8H/r1vhk0aJDtz87l5+erXr16OuWUU+J8yvio7LbG+lyYl5dn+3ZWN998syfezsvPCEIfSsQXuhX9DKHX/nLHet+Uvgn3okWLIj6/sLBQzZs319lnn53YG1BN8XwsvPTSSzLGaOvWrbYf99pjITc3VxkZGerXr1/Zt/fl5eWpd+/eysjIiPjC/sEHH5QxRm3btq3w99uzZ4/at2+vU045xdWvIifV7Em/Oo8lrz0WStX0i6FPPvlEY8eOtY3BDRs2VPpiK8kSry/+JGn27Nk64YQTIr5V1quPA6lm903Qbm91ng+Ddt9kZWXJGGP7vp1NmjRR//79E3XcmJT+eMAVV1xh+/FYngt37dqllJQUtWrVSn/5y1/K/gPismXLlJmZqa+//jq+NwbVQhD6ULy/0JXsg9CLf7njcd+MGTNGrVq10meffVZ22aJFi9S8efNyL8aTbPF8LIwfP16nn3667ce8+FiQpMOHD+vWW2/VkCFDNGnSJA0aNEhTp07V4cOHI673xhtvqFmzZho5cqTt77N582Z17NhRF198sb777jsnjh6TmjzpV/Wx5NXHglSz+2Xr1q06/vjjNXToUP385z+P2ODBg5Wenh7xis1uUt3be+jQIbVp00aZmZl69dVXy663Zs0ade3aNeKLXy8/DqTq3zdBu72lqvJ8GMT75uOPP1aTJk00dOhQ5efnl13++OOPq06dOq57f9Jdu3Zp7ty5Sk9PlzFG9erV04wZM5STkxNxvVieCwsKCnT99derdevWSklJ0RlnNVY5egAAB5pJREFUnKFx48bpkUce8cTPXPsdQehT8fpCt5RdEHr1L3es9004HNY999yjPn36aNy4ccrKytLo0aO1c+dOJ29GlcXjsZCXl6fGjRtX+PNBXn0sxKKkpETvvvuurrvuOvXs2VPLli2r0c8cOinWJ/2qPJa8+Fio6f2ya9cutWrVKurPW//ud79Lxk2Kqqa3t6SkRGPHjlXTpk1Vu3ZtZWZmasKECbr33nvL/e+JFx8HUs3vm6Dd3lJVeT4M6n3z2Wef6dprr9VFF12kCRMmaOLEiRo1apS2bNni5M1IOC8+F6I8ghAAauDRRx/VY489pl27diX7KAAAJAXPhf5AEAIAAABAQBGEAAAAABBQBCEAAAAABBRBCADwlQ4dOpS9CMSJJ56o7t27l73IyymnnKIePXqoWbNmMsbouOOOs305fAAAgoIgBAD4xqeffqpmzZrpmWeeUXFxsSTp/ffflzFGoVCo7H2xCgoKNHr0aI0YMcL29ym9/vjx4zVlyhQ98MADttfbuXOnpk2bpjPOOEOtWrVS27Zt1ahRo4hXGq3sbX3srF69Wn369Cn7Pdq0aaNZs2bpiy++iLhecXGx/vznP6tbt24yxqhfv3567bXXtGPHDk2ZMkU33XSTunTpImOMZsyYUe1zAAD8jyAEAPjGAw88oKeeeirisnvuuUfGGGVmZkZc/vLLL2vhwoW2v48xRmeeeWaFf05JSYnuuOMO1a5dW6eeeqqefvpp5eXllX3s7bffVv/+/WWMUbNmzWp0W3Jzc3XiiSfKGFPpm3fPnDlTJ598csR7npUqfQNxghAAYIcgBAD4xurVq8tdNnjwYNv3BNy8ebM+/fRT29/HGKPzzjuvwj/nl7/8ZVmo5ebm2l6npKREQ4cOVb169ap+A46xatUqGWNkWZa2b99e4fXOOussPfLII7YfW7t2LUEIAKgQQQgA8K2ioiI1bNhQxhitX7++yp8XLQiffvppGWNUv359ffPNN1F/n3379qlJkyY1/jnFkpISde3aVcYY/eIXv7C9zgcffKC0tDTbfx2UCEIAQHQEIQDAt9544w0ZY9SwYUMVFhZW+fOiBWFmZqaMMRo3blyVfq/ly5eX+7PfeecdjRw5Uuecc45atWqls88+W2vXrrX9/EceeUTGGNWtW1dfffVVuY9fe+21uu222yr88wlCAEA0BCEAwLfuuOMOGWM0ZMiQan1eRUH43//+V5ZlyRijpUuX1uhMr7zyinr37q1vv/1W0o//iti5c2elpKTozTffLHf9oqIiderUScYY3XLLLREf279/vxo1aqQ9e/ZU+OcRhACAaAhCAIBvnXPOOTLGaP78+dX6vIqC8N133y175c/nn3++ws/fuHGj1q5dG7G3335bhYWFat++fbmfdfzDH/4gY0yFr3q6aNEiGWPUqFGjsldKlaS7775bw4cPj3pbCEIAQDQEIQDAlw4fPqw6derIGKOPP/64Wp9bURC+9dZbZUG4Zs2aCj//888/19KlS8uum5WVpc8++0xr1qyRMUb9+/fXsGHDynbhhRfq5JNP1qWXXmr7++Xn5+v444+XMUYzZ86UJIXDYXXs2FGvvPJK1NtCEAIAoiEIAQC+9OKLL8oYo3bt2lX7cysKwj179pRF3t/+9rdKf5+WLVvKGKOcnBxJ0p///GcZY7Rt27Zqn6n0c1u0aKEjR45o9erV6tatW6WfRxACAKIhCAEAvnTzzTeX/etcdUV7UZnS9wYcM2ZMpb9Penq6jDFlLxgza9asiF9Xx+HDh9W8eXMZY3Tvvffqoosu0v3331/p5xGEAIBoCEIAgC/17NlTxhg9/vjj1f7caEH4wAMPlL3q5+effx719zk2CJctWyZjjH71q1/ZXn/jxo1R//Ww9EVymjdvriZNmuiHH36o9LYQhACAaAhCAIDv7Nu3T6FQSMaYSt8r0E60IAyHwxo+fLiMMcrIyND//ve/Cn+fY4Pw66+/VkpKimrVqqUXXngh4rofffSRBg8eHPVcpa8qaozRpEmTqnRbCEIAQDQEIQDAd+bNm1f2L2k1ES0IJam4uFi333676tSpo/bt22vp0qURr/6Zl5en5cuXKxQK6bjjjtPWrVvLPpadnS1jjEKhkIYNG6Zbb71Vo0aNUtu2bfXRRx9VerZp06bJsix98sknVbotBCEAIBqCEADgG2+88Yauu+461a1bt+zFX375y1/qscceq9bvU1kQlvriiy80c+ZMnXvuuWrdurXatWunU045RV26dNHgwYN13333ad++feU+b/HixTr11FNVp04dtWvXTmPGjNHOnTurdLZvv/1Ww4YNq/JtIQgBANEQhAAAHKOqQegFBCEAIBqCEACAYxCEAICgIAgBADiGMUYnn3yySkpKkn2UmK1evZogBABUiCAEAOAYZ599ts4++2xlZWVp2rRpevDBB5N9pGrZuXOnpk2bpqlTp+qnP/2pzj77bD300EPJPhYAwIUIQgAAAAAIKIIQAAAAAAKKIAQAAACAgCIIAQAAACCgCEIAAAAACCiCEAAAAAACiiAEAAAAgIAiCAEAAAAgoAhC/L/24IAAAAAAQMj/1w0JAADAVGJXNtbCh9WSAAAAAElFTkSuQmCC\" width=\"900\">"
+       "<img src=\"data:image/png;base64,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zOC8tLQ0PfLIIyouLtaKFStUq1Yt9ejRQ9OmTXP7aAAAuIZB6BxfDMJj34S+qoVCIbfvhqcwCIMZnHf33XdL+vHbRps1a6YZM2ZI+vFb4QEACCoGoXN8MQg///zzmIT/H4MwmMF5y5YtkyRNmDBB7dq1U25uriTp/vvvj7heQUGBnvn703rm70+roKDA8XMCAOAkBqFzfDEIEXsMwmAG5915550666yz1KBBA2VnZ6uwsFCrV69Wy5YtI67Hi8oAAIKEQegcBiFsMQiDGdzx4Ycf6rvvvpMkff3111q/fr3Wr18fcR0GIQAgSBiEzvHVICwoKNDjjz+uiRMnavDgwbrkkksiPv7mm2/qn//8p4qKilw6YfxgEAYzuGfLli169tln9Z///Mf24wxCAECQMAid45tBuGnTJrVv316hUKjcF4qZNm2aQqGQ1q5d69Ip4weDMJjBefv27dP5558f8b9bQ4cO1aFDhyKuxyAEAAQJg9A5vhiEO3fuVOPGjWVZlq666iqtWLFCZ511VplBuHXrVlmWpYkTJ7p00vjBIAxmcF56errGjBmjd955RwcPHtS3336rv/71r5o8eXLE9RiEAIAgYRA6xxeDMD09XZZlafbs2aWX9evXz/atJJo1a6YePXo4eby4xCAMZnDer371K9vL77333oj/ZhACAIKEQegcXwzCtm3bqkmTJiouLi69rLxB2KtXLzVv3tzJ48UlBmEwg/OWLl1qe/ltt90W8d8MQgBAkDAIneOLQZiYmKhevXpFXFbeIExLS1PdunWdOporPvzwQ1188cVq0KCBUlJSdN9991X612AQBjM4b8qUKfrggw9K/zsnJ0eTJk3SqFGjIq539OhRffzxR/r444909OhRp48JAICjGITO8cUgbNmypVq1ahVxWbRvGU1JSXHoZM77/vvvdeWVV2rjxo169913lZ6eLmOMMjMzK/XrMAiDGWKjefPmuuqqq/TQQw9px44dUa+7d+9ede7cWY0bN1ZiYqJCoZC6deumb775xqHTAgDgPQxC5/hiEF5xxRUKhUJ6/fXXSy+zG4TPPfecLMvS6NGjnT6iY5544gl99dVXpf8dDofVrl073XDDDZX6dRiEwQyxYVmWxo4dq9dee03vv//+Ca+fm5urVatWae7cuVqzZg3/AggACDwGoXN8MQjXrl0ry7J06qmnln7r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gwcPtn1PwHfffVeffvqp7a9jjNGFF15Y7u/zy1/+snSo5ebm2l6nuLhYQ4cOVd26dSt+B46zevVqGWNkWZZycnLKvd65556rxx57zPZj69atYxACAMrFIAQA+NbRo0fVoEEDGWOUnZ1d4dtFG4TPPfecjDGqV6+evvnmm6i/zr59+9S4ceMq/5xicXGxunTpImOMfvGLX9he54MPPlBycrLtvw5KDEIAQHQMQgCAb73xxhsyxqhBgwYqLCys8O2iDcK0tDQZYzRu3LgK/VorV64s83u//fbbGjlypM4//3y1bNlS5513ntatW2d7+8cee0zGGCUmJuqrr74q8/EbbrhBd9xxR7m/P4MQABANgxAA4Ft33XWXjDEaMmRIpW5X3iD873//K8uyZIzRsmXLqnSm1157Tb1799a3334r6cd/RezUqZMSEhL05ptvlrn+0aNH1bFjRxljdPvtt0d8bP/+/WrYsKH27NlT7u/HIAQARMMgBAD41vnnny9jjBYsWFCp25U3CN95553SV/588cUXy739pk2btG7duoi2bNmiwsJCtWvXrszPOv7xj3+UMabcVz1dvHixjDFq2LBh6SulStK9996r4cOHR70vDEIAQDQMQgCALx0+fFh16tSRMUYff/xxpW5b3iB86623Sgfh2rVry739559/rmXLlpVeNz09XZ999pnWrl0rY4z69++vYcOGlXbJJZfo9NNP1xVXXGH76+Xn5+vkk0+WMUazZs2SJIXDYXXo0EGvvfZa1PvCIAQARMMgBAD40ssvvyxjjNq2bVvp25Y3CPfs2VM68v72t7+d8Ndp0aKFjDHKysqSJP3lL3+RMUbbt2+v9JlKbtu8eXMdOXJEa9asUdeuXU94OwYhACAaBiEAwJduu+220n+dq6xoLypT8t6AY8aMOeGvk5KSImNM6QvGzJ49O+K/K+Pw4cNq1qyZjDG6//77demll+rBBx884e0YhACAaBiEAABf6tmzp4wxevLJJyt922iD8KGHHip91c/PP/886q9z/CBcsWKFjDH61a9+ZXv9TZs2Rf3Xw5IXyWnWrJkaN26sH3744YT3hUEIAIiGQQgA8J19+/YpFArJGHPC9wq0E20QhsNhDR8+XMYYpaam6n//+1+5v87xg/Drr79WQkKCatWqpZdeeiniuh999JEGDx4c9VwlrypqjNGkSZMqdF8YhACAaBiEAADfmT9/fum/pFVFtEEoSUVFRbrzzjtVp04dtWvXTsuWLYt49c+8vDytXLlSoVBIJ510krZt21b6sYyMDBljFAqFNGzYME2fPl2jRo1SmzZt9NFHH53wbNOmTZNlWfrkk08qdF8YhACAaBiEAADfeOONN3TjjTcqMTGx9MVffvnLX+qJJ56o1K9zokFY4osvvtCsWbN0wQUXqFWrVmrbtq3OOOMMde7cWYMHD9YDDzygffv2lbndkiVLdOaZZ6pOnTpq27atxowZo507d1bobN9++62GDRtW4fvCIAQARMMgBADgOBUdhPGAQQgAiIZBCADAcRiEAICgYBACAHAcY4xOP/10FRcXu32UaluzZg2DEABQLgYhAADHOe+883TeeecpPT1d06ZN08MPP+z2kSpl586dmjZtmqZOnaqf/vSnOu+88/Too4+6fSwAgAcxCAEAAAAgoBiEAAAAABBQDEIAAAAACCgGIQAAAAAEFIMQAAAAAAKKQQgAAAAAAcUgBAAAAICAYhACAAAAQEAxCAEAAAAgoP4fcAkjzJkK+2AAAAAASUVORK5CYII=\" width=\"900\">"
       ],
       "text/plain": [
        "<IPython.core.display.HTML object>"
       ]
      },
      "metadata": {},
      "output_type": "display_data"
     }
    ],
    "source": [
     "if True:\n",
     "    fig=plt.figure(figsize=(9,4))\n",
     "    fig.subplots_adjust(bottom=0.15, left=0.15, top = 0.9, right=0.9,wspace=0.0,hspace=0.25)\n",
     "    sub = fig.add_subplot(1,1,1)\n",
     "\n",
     "    sub.hist(ax.T,bins=30,color='xkcd:blue')\n",
     "    \n",
     "    sub.set_yscale('log')\n",
     "    sub.set_xscale('linear')\n",
     "    \n",
     "    sub.set_xlabel(r'$T ~[{\\rm GeV}]$')\n",
     "    sub.xaxis.set_label_coords(0.5, -0.1) \n",
     "    sub.set_ylabel(r'Number of steps')\n",
     "    sub.yaxis.set_label_coords(-0.1,0.5) \n",
     "    \n",
     "\n",
     "    sub.axvline(ax.T_osc,linestyle='--',color='xkcd:gray',linewidth=1.5)\n",
     "    \n",
     "\n",
     "    sub.axvline(ax.T_osc,linestyle='--',color='xkcd:gray',linewidth=1.5)\n",
     "    \n",
     "    \n",
     "    #set major ticks\n",
     "    _M_xticks=[ round(0.45+i*0.15,4) for i in range(0,15) ]\n",
     "    _M_yticks=[ 10.**i for i in range(-12,5,1)  ]\n",
     "\n",
     "    #set major ticks that will not have a label\n",
     "    _M_xticks_exception=[]\n",
     "    _M_yticks_exception=[]\n",
     "\n",
     "    _m_xticks=[]\n",
     "    _m_yticks=[]  \n",
     "    ft=FT(_M_xticks,_M_yticks,\n",
     "                 _M_xticks_exception,_M_yticks_exception,\n",
     "                 _m_xticks,_m_yticks,\n",
     "                 xmin=0.45,xmax=2,ymin=1e0,ymax=1e3,xscale='linear',yscale='log')\n",
     "\n",
     "    ft.format_ticks(plt,sub)    \n",
     "\n",
     "    \n",
     "    sub.text(x=0.92,y=1e2, s=r'$T_{\\rm osc}$',rotation=90)\n",
     "\n",
     "#     fig.savefig('histogram.pdf',bbox_inches='tight')\n",
     "\n",
     "    fig.show()\n"
    ]
   },
   {
    "cell_type": "code",
    "execution_count": 14,
    "metadata": {},
+   "outputs": [],
+   "source": [
+    "cosmo=Cosmo()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 15,
+   "metadata": {},
    "outputs": [
     {
      "data": {
       "application/javascript": [
        "/* Put everything inside the global mpl namespace */\n",
        "/* global mpl */\n",
        "window.mpl = {};\n",
        "\n",
        "mpl.get_websocket_type = function () {\n",
        "    if (typeof WebSocket !== 'undefined') {\n",
        "        return WebSocket;\n",
        "    } else if (typeof MozWebSocket !== 'undefined') {\n",
        "        return MozWebSocket;\n",
        "    } else {\n",
        "        alert(\n",
        "            'Your browser does not have WebSocket support. ' +\n",
        "                'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
        "                'Firefox 4 and 5 are also supported but you ' +\n",
        "                'have to enable WebSockets in about:config.'\n",
        "        );\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n",
        "    this.id = figure_id;\n",
        "\n",
        "    this.ws = websocket;\n",
        "\n",
        "    this.supports_binary = this.ws.binaryType !== undefined;\n",
        "\n",
        "    if (!this.supports_binary) {\n",
        "        var warnings = document.getElementById('mpl-warnings');\n",
        "        if (warnings) {\n",
        "            warnings.style.display = 'block';\n",
        "            warnings.textContent =\n",
        "                'This browser does not support binary websocket messages. ' +\n",
        "                'Performance may be slow.';\n",
        "        }\n",
        "    }\n",
        "\n",
        "    this.imageObj = new Image();\n",
        "\n",
        "    this.context = undefined;\n",
        "    this.message = undefined;\n",
        "    this.canvas = undefined;\n",
        "    this.rubberband_canvas = undefined;\n",
        "    this.rubberband_context = undefined;\n",
        "    this.format_dropdown = undefined;\n",
        "\n",
        "    this.image_mode = 'full';\n",
        "\n",
        "    this.root = document.createElement('div');\n",
        "    this.root.setAttribute('style', 'display: inline-block');\n",
        "    this._root_extra_style(this.root);\n",
        "\n",
        "    parent_element.appendChild(this.root);\n",
        "\n",
        "    this._init_header(this);\n",
        "    this._init_canvas(this);\n",
        "    this._init_toolbar(this);\n",
        "\n",
        "    var fig = this;\n",
        "\n",
        "    this.waiting = false;\n",
        "\n",
        "    this.ws.onopen = function () {\n",
        "        fig.send_message('supports_binary', { value: fig.supports_binary });\n",
        "        fig.send_message('send_image_mode', {});\n",
        "        if (fig.ratio !== 1) {\n",
        "            fig.send_message('set_dpi_ratio', { dpi_ratio: fig.ratio });\n",
        "        }\n",
        "        fig.send_message('refresh', {});\n",
        "    };\n",
        "\n",
        "    this.imageObj.onload = function () {\n",
        "        if (fig.image_mode === 'full') {\n",
        "            // Full images could contain transparency (where diff images\n",
        "            // almost always do), so we need to clear the canvas so that\n",
        "            // there is no ghosting.\n",
        "            fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
        "        }\n",
        "        fig.context.drawImage(fig.imageObj, 0, 0);\n",
        "    };\n",
        "\n",
        "    this.imageObj.onunload = function () {\n",
        "        fig.ws.close();\n",
        "    };\n",
        "\n",
        "    this.ws.onmessage = this._make_on_message_function(this);\n",
        "\n",
        "    this.ondownload = ondownload;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._init_header = function () {\n",
        "    var titlebar = document.createElement('div');\n",
        "    titlebar.classList =\n",
        "        'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n",
        "    var titletext = document.createElement('div');\n",
        "    titletext.classList = 'ui-dialog-title';\n",
        "    titletext.setAttribute(\n",
        "        'style',\n",
        "        'width: 100%; text-align: center; padding: 3px;'\n",
        "    );\n",
        "    titlebar.appendChild(titletext);\n",
        "    this.root.appendChild(titlebar);\n",
        "    this.header = titletext;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n",
        "\n",
        "mpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n",
        "\n",
        "mpl.figure.prototype._init_canvas = function () {\n",
        "    var fig = this;\n",
        "\n",
        "    var canvas_div = (this.canvas_div = document.createElement('div'));\n",
        "    canvas_div.setAttribute(\n",
        "        'style',\n",
        "        'border: 1px solid #ddd;' +\n",
        "            'box-sizing: content-box;' +\n",
        "            'clear: both;' +\n",
        "            'min-height: 1px;' +\n",
        "            'min-width: 1px;' +\n",
        "            'outline: 0;' +\n",
        "            'overflow: hidden;' +\n",
        "            'position: relative;' +\n",
        "            'resize: both;'\n",
        "    );\n",
        "\n",
        "    function on_keyboard_event_closure(name) {\n",
        "        return function (event) {\n",
        "            return fig.key_event(event, name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    canvas_div.addEventListener(\n",
        "        'keydown',\n",
        "        on_keyboard_event_closure('key_press')\n",
        "    );\n",
        "    canvas_div.addEventListener(\n",
        "        'keyup',\n",
        "        on_keyboard_event_closure('key_release')\n",
        "    );\n",
        "\n",
        "    this._canvas_extra_style(canvas_div);\n",
        "    this.root.appendChild(canvas_div);\n",
        "\n",
        "    var canvas = (this.canvas = document.createElement('canvas'));\n",
        "    canvas.classList.add('mpl-canvas');\n",
        "    canvas.setAttribute('style', 'box-sizing: content-box;');\n",
        "\n",
        "    this.context = canvas.getContext('2d');\n",
        "\n",
        "    var backingStore =\n",
        "        this.context.backingStorePixelRatio ||\n",
        "        this.context.webkitBackingStorePixelRatio ||\n",
        "        this.context.mozBackingStorePixelRatio ||\n",
        "        this.context.msBackingStorePixelRatio ||\n",
        "        this.context.oBackingStorePixelRatio ||\n",
        "        this.context.backingStorePixelRatio ||\n",
        "        1;\n",
        "\n",
        "    this.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
        "\n",
        "    var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n",
        "        'canvas'\n",
        "    ));\n",
        "    rubberband_canvas.setAttribute(\n",
        "        'style',\n",
        "        'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n",
        "    );\n",
        "\n",
        "    // Apply a ponyfill if ResizeObserver is not implemented by browser.\n",
        "    if (this.ResizeObserver === undefined) {\n",
        "        if (window.ResizeObserver !== undefined) {\n",
        "            this.ResizeObserver = window.ResizeObserver;\n",
        "        } else {\n",
        "            var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n",
        "            this.ResizeObserver = obs.ResizeObserver;\n",
        "        }\n",
        "    }\n",
        "\n",
        "    this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n",
        "        var nentries = entries.length;\n",
        "        for (var i = 0; i < nentries; i++) {\n",
        "            var entry = entries[i];\n",
        "            var width, height;\n",
        "            if (entry.contentBoxSize) {\n",
        "                if (entry.contentBoxSize instanceof Array) {\n",
        "                    // Chrome 84 implements new version of spec.\n",
        "                    width = entry.contentBoxSize[0].inlineSize;\n",
        "                    height = entry.contentBoxSize[0].blockSize;\n",
        "                } else {\n",
        "                    // Firefox implements old version of spec.\n",
        "                    width = entry.contentBoxSize.inlineSize;\n",
        "                    height = entry.contentBoxSize.blockSize;\n",
        "                }\n",
        "            } else {\n",
        "                // Chrome <84 implements even older version of spec.\n",
        "                width = entry.contentRect.width;\n",
        "                height = entry.contentRect.height;\n",
        "            }\n",
        "\n",
        "            // Keep the size of the canvas and rubber band canvas in sync with\n",
        "            // the canvas container.\n",
        "            if (entry.devicePixelContentBoxSize) {\n",
        "                // Chrome 84 implements new version of spec.\n",
        "                canvas.setAttribute(\n",
        "                    'width',\n",
        "                    entry.devicePixelContentBoxSize[0].inlineSize\n",
        "                );\n",
        "                canvas.setAttribute(\n",
        "                    'height',\n",
        "                    entry.devicePixelContentBoxSize[0].blockSize\n",
        "                );\n",
        "            } else {\n",
        "                canvas.setAttribute('width', width * fig.ratio);\n",
        "                canvas.setAttribute('height', height * fig.ratio);\n",
        "            }\n",
        "            canvas.setAttribute(\n",
        "                'style',\n",
        "                'width: ' + width + 'px; height: ' + height + 'px;'\n",
        "            );\n",
        "\n",
        "            rubberband_canvas.setAttribute('width', width);\n",
        "            rubberband_canvas.setAttribute('height', height);\n",
        "\n",
        "            // And update the size in Python. We ignore the initial 0/0 size\n",
        "            // that occurs as the element is placed into the DOM, which should\n",
        "            // otherwise not happen due to the minimum size styling.\n",
        "            if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n",
        "                fig.request_resize(width, height);\n",
        "            }\n",
        "        }\n",
        "    });\n",
        "    this.resizeObserverInstance.observe(canvas_div);\n",
        "\n",
        "    function on_mouse_event_closure(name) {\n",
        "        return function (event) {\n",
        "            return fig.mouse_event(event, name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mousedown',\n",
        "        on_mouse_event_closure('button_press')\n",
        "    );\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mouseup',\n",
        "        on_mouse_event_closure('button_release')\n",
        "    );\n",
        "    // Throttle sequential mouse events to 1 every 20ms.\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mousemove',\n",
        "        on_mouse_event_closure('motion_notify')\n",
        "    );\n",
        "\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mouseenter',\n",
        "        on_mouse_event_closure('figure_enter')\n",
        "    );\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mouseleave',\n",
        "        on_mouse_event_closure('figure_leave')\n",
        "    );\n",
        "\n",
        "    canvas_div.addEventListener('wheel', function (event) {\n",
        "        if (event.deltaY < 0) {\n",
        "            event.step = 1;\n",
        "        } else {\n",
        "            event.step = -1;\n",
        "        }\n",
        "        on_mouse_event_closure('scroll')(event);\n",
        "    });\n",
        "\n",
        "    canvas_div.appendChild(canvas);\n",
        "    canvas_div.appendChild(rubberband_canvas);\n",
        "\n",
        "    this.rubberband_context = rubberband_canvas.getContext('2d');\n",
        "    this.rubberband_context.strokeStyle = '#000000';\n",
        "\n",
        "    this._resize_canvas = function (width, height, forward) {\n",
        "        if (forward) {\n",
        "            canvas_div.style.width = width + 'px';\n",
        "            canvas_div.style.height = height + 'px';\n",
        "        }\n",
        "    };\n",
        "\n",
        "    // Disable right mouse context menu.\n",
        "    this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n",
        "        event.preventDefault();\n",
        "        return false;\n",
        "    });\n",
        "\n",
        "    function set_focus() {\n",
        "        canvas.focus();\n",
        "        canvas_div.focus();\n",
        "    }\n",
        "\n",
        "    window.setTimeout(set_focus, 100);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._init_toolbar = function () {\n",
        "    var fig = this;\n",
        "\n",
        "    var toolbar = document.createElement('div');\n",
        "    toolbar.classList = 'mpl-toolbar';\n",
        "    this.root.appendChild(toolbar);\n",
        "\n",
        "    function on_click_closure(name) {\n",
        "        return function (_event) {\n",
        "            return fig.toolbar_button_onclick(name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    function on_mouseover_closure(tooltip) {\n",
        "        return function (event) {\n",
        "            if (!event.currentTarget.disabled) {\n",
        "                return fig.toolbar_button_onmouseover(tooltip);\n",
        "            }\n",
        "        };\n",
        "    }\n",
        "\n",
        "    fig.buttons = {};\n",
        "    var buttonGroup = document.createElement('div');\n",
        "    buttonGroup.classList = 'mpl-button-group';\n",
        "    for (var toolbar_ind in mpl.toolbar_items) {\n",
        "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
        "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
        "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
        "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
        "\n",
        "        if (!name) {\n",
        "            /* Instead of a spacer, we start a new button group. */\n",
        "            if (buttonGroup.hasChildNodes()) {\n",
        "                toolbar.appendChild(buttonGroup);\n",
        "            }\n",
        "            buttonGroup = document.createElement('div');\n",
        "            buttonGroup.classList = 'mpl-button-group';\n",
        "            continue;\n",
        "        }\n",
        "\n",
        "        var button = (fig.buttons[name] = document.createElement('button'));\n",
        "        button.classList = 'mpl-widget';\n",
        "        button.setAttribute('role', 'button');\n",
        "        button.setAttribute('aria-disabled', 'false');\n",
        "        button.addEventListener('click', on_click_closure(method_name));\n",
        "        button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
        "\n",
        "        var icon_img = document.createElement('img');\n",
        "        icon_img.src = '_images/' + image + '.png';\n",
        "        icon_img.srcset = '_images/' + image + '_large.png 2x';\n",
        "        icon_img.alt = tooltip;\n",
        "        button.appendChild(icon_img);\n",
        "\n",
        "        buttonGroup.appendChild(button);\n",
        "    }\n",
        "\n",
        "    if (buttonGroup.hasChildNodes()) {\n",
        "        toolbar.appendChild(buttonGroup);\n",
        "    }\n",
        "\n",
        "    var fmt_picker = document.createElement('select');\n",
        "    fmt_picker.classList = 'mpl-widget';\n",
        "    toolbar.appendChild(fmt_picker);\n",
        "    this.format_dropdown = fmt_picker;\n",
        "\n",
        "    for (var ind in mpl.extensions) {\n",
        "        var fmt = mpl.extensions[ind];\n",
        "        var option = document.createElement('option');\n",
        "        option.selected = fmt === mpl.default_extension;\n",
        "        option.innerHTML = fmt;\n",
        "        fmt_picker.appendChild(option);\n",
        "    }\n",
        "\n",
        "    var status_bar = document.createElement('span');\n",
        "    status_bar.classList = 'mpl-message';\n",
        "    toolbar.appendChild(status_bar);\n",
        "    this.message = status_bar;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n",
        "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
        "    // which will in turn request a refresh of the image.\n",
        "    this.send_message('resize', { width: x_pixels, height: y_pixels });\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.send_message = function (type, properties) {\n",
        "    properties['type'] = type;\n",
        "    properties['figure_id'] = this.id;\n",
        "    this.ws.send(JSON.stringify(properties));\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.send_draw_message = function () {\n",
        "    if (!this.waiting) {\n",
        "        this.waiting = true;\n",
        "        this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
        "    var format_dropdown = fig.format_dropdown;\n",
        "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
        "    fig.ondownload(fig, format);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_resize = function (fig, msg) {\n",
        "    var size = msg['size'];\n",
        "    if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n",
        "        fig._resize_canvas(size[0], size[1], msg['forward']);\n",
        "        fig.send_message('refresh', {});\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_rubberband = function (fig, msg) {\n",
        "    var x0 = msg['x0'] / fig.ratio;\n",
        "    var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n",
        "    var x1 = msg['x1'] / fig.ratio;\n",
        "    var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n",
        "    x0 = Math.floor(x0) + 0.5;\n",
        "    y0 = Math.floor(y0) + 0.5;\n",
        "    x1 = Math.floor(x1) + 0.5;\n",
        "    y1 = Math.floor(y1) + 0.5;\n",
        "    var min_x = Math.min(x0, x1);\n",
        "    var min_y = Math.min(y0, y1);\n",
        "    var width = Math.abs(x1 - x0);\n",
        "    var height = Math.abs(y1 - y0);\n",
        "\n",
        "    fig.rubberband_context.clearRect(\n",
        "        0,\n",
        "        0,\n",
        "        fig.canvas.width / fig.ratio,\n",
        "        fig.canvas.height / fig.ratio\n",
        "    );\n",
        "\n",
        "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_figure_label = function (fig, msg) {\n",
        "    // Updates the figure title.\n",
        "    fig.header.textContent = msg['label'];\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_cursor = function (fig, msg) {\n",
        "    var cursor = msg['cursor'];\n",
        "    switch (cursor) {\n",
        "        case 0:\n",
        "            cursor = 'pointer';\n",
        "            break;\n",
        "        case 1:\n",
        "            cursor = 'default';\n",
        "            break;\n",
        "        case 2:\n",
        "            cursor = 'crosshair';\n",
        "            break;\n",
        "        case 3:\n",
        "            cursor = 'move';\n",
        "            break;\n",
        "    }\n",
        "    fig.rubberband_canvas.style.cursor = cursor;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_message = function (fig, msg) {\n",
        "    fig.message.textContent = msg['message'];\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_draw = function (fig, _msg) {\n",
        "    // Request the server to send over a new figure.\n",
        "    fig.send_draw_message();\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_image_mode = function (fig, msg) {\n",
        "    fig.image_mode = msg['mode'];\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n",
        "    for (var key in msg) {\n",
        "        if (!(key in fig.buttons)) {\n",
        "            continue;\n",
        "        }\n",
        "        fig.buttons[key].disabled = !msg[key];\n",
        "        fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n",
        "    if (msg['mode'] === 'PAN') {\n",
        "        fig.buttons['Pan'].classList.add('active');\n",
        "        fig.buttons['Zoom'].classList.remove('active');\n",
        "    } else if (msg['mode'] === 'ZOOM') {\n",
        "        fig.buttons['Pan'].classList.remove('active');\n",
        "        fig.buttons['Zoom'].classList.add('active');\n",
        "    } else {\n",
        "        fig.buttons['Pan'].classList.remove('active');\n",
        "        fig.buttons['Zoom'].classList.remove('active');\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.updated_canvas_event = function () {\n",
        "    // Called whenever the canvas gets updated.\n",
        "    this.send_message('ack', {});\n",
        "};\n",
        "\n",
        "// A function to construct a web socket function for onmessage handling.\n",
        "// Called in the figure constructor.\n",
        "mpl.figure.prototype._make_on_message_function = function (fig) {\n",
        "    return function socket_on_message(evt) {\n",
        "        if (evt.data instanceof Blob) {\n",
        "            /* FIXME: We get \"Resource interpreted as Image but\n",
        "             * transferred with MIME type text/plain:\" errors on\n",
        "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
        "             * to be part of the websocket stream */\n",
        "            evt.data.type = 'image/png';\n",
        "\n",
        "            /* Free the memory for the previous frames */\n",
        "            if (fig.imageObj.src) {\n",
        "                (window.URL || window.webkitURL).revokeObjectURL(\n",
        "                    fig.imageObj.src\n",
        "                );\n",
        "            }\n",
        "\n",
        "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
        "                evt.data\n",
        "            );\n",
        "            fig.updated_canvas_event();\n",
        "            fig.waiting = false;\n",
        "            return;\n",
        "        } else if (\n",
        "            typeof evt.data === 'string' &&\n",
        "            evt.data.slice(0, 21) === 'data:image/png;base64'\n",
        "        ) {\n",
        "            fig.imageObj.src = evt.data;\n",
        "            fig.updated_canvas_event();\n",
        "            fig.waiting = false;\n",
        "            return;\n",
        "        }\n",
        "\n",
        "        var msg = JSON.parse(evt.data);\n",
        "        var msg_type = msg['type'];\n",
        "\n",
        "        // Call the  \"handle_{type}\" callback, which takes\n",
        "        // the figure and JSON message as its only arguments.\n",
        "        try {\n",
        "            var callback = fig['handle_' + msg_type];\n",
        "        } catch (e) {\n",
        "            console.log(\n",
        "                \"No handler for the '\" + msg_type + \"' message type: \",\n",
        "                msg\n",
        "            );\n",
        "            return;\n",
        "        }\n",
        "\n",
        "        if (callback) {\n",
        "            try {\n",
        "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
        "                callback(fig, msg);\n",
        "            } catch (e) {\n",
        "                console.log(\n",
        "                    \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n",
        "                    e,\n",
        "                    e.stack,\n",
        "                    msg\n",
        "                );\n",
        "            }\n",
        "        }\n",
        "    };\n",
        "};\n",
        "\n",
        "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
        "mpl.findpos = function (e) {\n",
        "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
        "    var targ;\n",
        "    if (!e) {\n",
        "        e = window.event;\n",
        "    }\n",
        "    if (e.target) {\n",
        "        targ = e.target;\n",
        "    } else if (e.srcElement) {\n",
        "        targ = e.srcElement;\n",
        "    }\n",
        "    if (targ.nodeType === 3) {\n",
        "        // defeat Safari bug\n",
        "        targ = targ.parentNode;\n",
        "    }\n",
        "\n",
        "    // pageX,Y are the mouse positions relative to the document\n",
        "    var boundingRect = targ.getBoundingClientRect();\n",
        "    var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n",
        "    var y = e.pageY - (boundingRect.top + document.body.scrollTop);\n",
        "\n",
        "    return { x: x, y: y };\n",
        "};\n",
        "\n",
        "/*\n",
        " * return a copy of an object with only non-object keys\n",
        " * we need this to avoid circular references\n",
        " * http://stackoverflow.com/a/24161582/3208463\n",
        " */\n",
        "function simpleKeys(original) {\n",
        "    return Object.keys(original).reduce(function (obj, key) {\n",
        "        if (typeof original[key] !== 'object') {\n",
        "            obj[key] = original[key];\n",
        "        }\n",
        "        return obj;\n",
        "    }, {});\n",
        "}\n",
        "\n",
        "mpl.figure.prototype.mouse_event = function (event, name) {\n",
        "    var canvas_pos = mpl.findpos(event);\n",
        "\n",
        "    if (name === 'button_press') {\n",
        "        this.canvas.focus();\n",
        "        this.canvas_div.focus();\n",
        "    }\n",
        "\n",
        "    var x = canvas_pos.x * this.ratio;\n",
        "    var y = canvas_pos.y * this.ratio;\n",
        "\n",
        "    this.send_message(name, {\n",
        "        x: x,\n",
        "        y: y,\n",
        "        button: event.button,\n",
        "        step: event.step,\n",
        "        guiEvent: simpleKeys(event),\n",
        "    });\n",
        "\n",
        "    /* This prevents the web browser from automatically changing to\n",
        "     * the text insertion cursor when the button is pressed.  We want\n",
        "     * to control all of the cursor setting manually through the\n",
        "     * 'cursor' event from matplotlib */\n",
        "    event.preventDefault();\n",
        "    return false;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._key_event_extra = function (_event, _name) {\n",
        "    // Handle any extra behaviour associated with a key event\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.key_event = function (event, name) {\n",
        "    // Prevent repeat events\n",
        "    if (name === 'key_press') {\n",
        "        if (event.which === this._key) {\n",
        "            return;\n",
        "        } else {\n",
        "            this._key = event.which;\n",
        "        }\n",
        "    }\n",
        "    if (name === 'key_release') {\n",
        "        this._key = null;\n",
        "    }\n",
        "\n",
        "    var value = '';\n",
        "    if (event.ctrlKey && event.which !== 17) {\n",
        "        value += 'ctrl+';\n",
        "    }\n",
        "    if (event.altKey && event.which !== 18) {\n",
        "        value += 'alt+';\n",
        "    }\n",
        "    if (event.shiftKey && event.which !== 16) {\n",
        "        value += 'shift+';\n",
        "    }\n",
        "\n",
        "    value += 'k';\n",
        "    value += event.which.toString();\n",
        "\n",
        "    this._key_event_extra(event, name);\n",
        "\n",
        "    this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n",
        "    return false;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.toolbar_button_onclick = function (name) {\n",
        "    if (name === 'download') {\n",
        "        this.handle_save(this, null);\n",
        "    } else {\n",
        "        this.send_message('toolbar_button', { name: name });\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n",
        "    this.message.textContent = tooltip;\n",
        "};\n",
        "\n",
        "///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n",
        "// prettier-ignore\n",
        "var _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\n",
        "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
        "\n",
        "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
        "\n",
        "mpl.default_extension = \"png\";/* global mpl */\n",
        "\n",
        "var comm_websocket_adapter = function (comm) {\n",
        "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
        "    // object with the appropriate methods. Currently this is a non binary\n",
        "    // socket, so there is still some room for performance tuning.\n",
        "    var ws = {};\n",
        "\n",
        "    ws.close = function () {\n",
        "        comm.close();\n",
        "    };\n",
        "    ws.send = function (m) {\n",
        "        //console.log('sending', m);\n",
        "        comm.send(m);\n",
        "    };\n",
        "    // Register the callback with on_msg.\n",
        "    comm.on_msg(function (msg) {\n",
        "        //console.log('receiving', msg['content']['data'], msg);\n",
        "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
        "        ws.onmessage(msg['content']['data']);\n",
        "    });\n",
        "    return ws;\n",
        "};\n",
        "\n",
        "mpl.mpl_figure_comm = function (comm, msg) {\n",
        "    // This is the function which gets called when the mpl process\n",
        "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
        "\n",
        "    var id = msg.content.data.id;\n",
        "    // Get hold of the div created by the display call when the Comm\n",
        "    // socket was opened in Python.\n",
        "    var element = document.getElementById(id);\n",
        "    var ws_proxy = comm_websocket_adapter(comm);\n",
        "\n",
        "    function ondownload(figure, _format) {\n",
        "        window.open(figure.canvas.toDataURL());\n",
        "    }\n",
        "\n",
        "    var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n",
        "\n",
        "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
        "    // web socket which is closed, not our websocket->open comm proxy.\n",
        "    ws_proxy.onopen();\n",
        "\n",
        "    fig.parent_element = element;\n",
        "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
        "    if (!fig.cell_info) {\n",
        "        console.error('Failed to find cell for figure', id, fig);\n",
        "        return;\n",
        "    }\n",
        "    fig.cell_info[0].output_area.element.on(\n",
        "        'cleared',\n",
        "        { fig: fig },\n",
        "        fig._remove_fig_handler\n",
        "    );\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_close = function (fig, msg) {\n",
        "    var width = fig.canvas.width / fig.ratio;\n",
        "    fig.cell_info[0].output_area.element.off(\n",
        "        'cleared',\n",
        "        fig._remove_fig_handler\n",
        "    );\n",
        "    fig.resizeObserverInstance.unobserve(fig.canvas_div);\n",
        "\n",
        "    // Update the output cell to use the data from the current canvas.\n",
        "    fig.push_to_output();\n",
        "    var dataURL = fig.canvas.toDataURL();\n",
        "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
        "    // the notebook keyboard shortcuts fail.\n",
        "    IPython.keyboard_manager.enable();\n",
        "    fig.parent_element.innerHTML =\n",
        "        '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
        "    fig.close_ws(fig, msg);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.close_ws = function (fig, msg) {\n",
        "    fig.send_message('closing', msg);\n",
        "    // fig.ws.close()\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.push_to_output = function (_remove_interactive) {\n",
        "    // Turn the data on the canvas into data in the output cell.\n",
        "    var width = this.canvas.width / this.ratio;\n",
        "    var dataURL = this.canvas.toDataURL();\n",
        "    this.cell_info[1]['text/html'] =\n",
        "        '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.updated_canvas_event = function () {\n",
        "    // Tell IPython that the notebook contents must change.\n",
        "    IPython.notebook.set_dirty(true);\n",
        "    this.send_message('ack', {});\n",
        "    var fig = this;\n",
        "    // Wait a second, then push the new image to the DOM so\n",
        "    // that it is saved nicely (might be nice to debounce this).\n",
        "    setTimeout(function () {\n",
        "        fig.push_to_output();\n",
        "    }, 1000);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._init_toolbar = function () {\n",
        "    var fig = this;\n",
        "\n",
        "    var toolbar = document.createElement('div');\n",
        "    toolbar.classList = 'btn-toolbar';\n",
        "    this.root.appendChild(toolbar);\n",
        "\n",
        "    function on_click_closure(name) {\n",
        "        return function (_event) {\n",
        "            return fig.toolbar_button_onclick(name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    function on_mouseover_closure(tooltip) {\n",
        "        return function (event) {\n",
        "            if (!event.currentTarget.disabled) {\n",
        "                return fig.toolbar_button_onmouseover(tooltip);\n",
        "            }\n",
        "        };\n",
        "    }\n",
        "\n",
        "    fig.buttons = {};\n",
        "    var buttonGroup = document.createElement('div');\n",
        "    buttonGroup.classList = 'btn-group';\n",
        "    var button;\n",
        "    for (var toolbar_ind in mpl.toolbar_items) {\n",
        "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
        "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
        "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
        "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
        "\n",
        "        if (!name) {\n",
        "            /* Instead of a spacer, we start a new button group. */\n",
        "            if (buttonGroup.hasChildNodes()) {\n",
        "                toolbar.appendChild(buttonGroup);\n",
        "            }\n",
        "            buttonGroup = document.createElement('div');\n",
        "            buttonGroup.classList = 'btn-group';\n",
        "            continue;\n",
        "        }\n",
        "\n",
        "        button = fig.buttons[name] = document.createElement('button');\n",
        "        button.classList = 'btn btn-default';\n",
        "        button.href = '#';\n",
        "        button.title = name;\n",
        "        button.innerHTML = '<i class=\"fa ' + image + ' fa-lg\"></i>';\n",
        "        button.addEventListener('click', on_click_closure(method_name));\n",
        "        button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
        "        buttonGroup.appendChild(button);\n",
        "    }\n",
        "\n",
        "    if (buttonGroup.hasChildNodes()) {\n",
        "        toolbar.appendChild(buttonGroup);\n",
        "    }\n",
        "\n",
        "    // Add the status bar.\n",
        "    var status_bar = document.createElement('span');\n",
        "    status_bar.classList = 'mpl-message pull-right';\n",
        "    toolbar.appendChild(status_bar);\n",
        "    this.message = status_bar;\n",
        "\n",
        "    // Add the close button to the window.\n",
        "    var buttongrp = document.createElement('div');\n",
        "    buttongrp.classList = 'btn-group inline pull-right';\n",
        "    button = document.createElement('button');\n",
        "    button.classList = 'btn btn-mini btn-primary';\n",
        "    button.href = '#';\n",
        "    button.title = 'Stop Interaction';\n",
        "    button.innerHTML = '<i class=\"fa fa-power-off icon-remove icon-large\"></i>';\n",
        "    button.addEventListener('click', function (_evt) {\n",
        "        fig.handle_close(fig, {});\n",
        "    });\n",
        "    button.addEventListener(\n",
        "        'mouseover',\n",
        "        on_mouseover_closure('Stop Interaction')\n",
        "    );\n",
        "    buttongrp.appendChild(button);\n",
        "    var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n",
        "    titlebar.insertBefore(buttongrp, titlebar.firstChild);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._remove_fig_handler = function (event) {\n",
        "    var fig = event.data.fig;\n",
        "    if (event.target !== this) {\n",
        "        // Ignore bubbled events from children.\n",
        "        return;\n",
        "    }\n",
        "    fig.close_ws(fig, {});\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._root_extra_style = function (el) {\n",
        "    el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._canvas_extra_style = function (el) {\n",
        "    // this is important to make the div 'focusable\n",
        "    el.setAttribute('tabindex', 0);\n",
        "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
        "    // off when our div gets focus\n",
        "\n",
        "    // location in version 3\n",
        "    if (IPython.notebook.keyboard_manager) {\n",
        "        IPython.notebook.keyboard_manager.register_events(el);\n",
        "    } else {\n",
        "        // location in version 2\n",
        "        IPython.keyboard_manager.register_events(el);\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._key_event_extra = function (event, _name) {\n",
        "    var manager = IPython.notebook.keyboard_manager;\n",
        "    if (!manager) {\n",
        "        manager = IPython.keyboard_manager;\n",
        "    }\n",
        "\n",
        "    // Check for shift+enter\n",
        "    if (event.shiftKey && event.which === 13) {\n",
        "        this.canvas_div.blur();\n",
        "        // select the cell after this one\n",
        "        var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n",
        "        IPython.notebook.select(index + 1);\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
        "    fig.ondownload(fig, null);\n",
        "};\n",
        "\n",
        "mpl.find_output_cell = function (html_output) {\n",
        "    // Return the cell and output element which can be found *uniquely* in the notebook.\n",
        "    // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
        "    // IPython event is triggered only after the cells have been serialised, which for\n",
        "    // our purposes (turning an active figure into a static one), is too late.\n",
        "    var cells = IPython.notebook.get_cells();\n",
        "    var ncells = cells.length;\n",
        "    for (var i = 0; i < ncells; i++) {\n",
        "        var cell = cells[i];\n",
        "        if (cell.cell_type === 'code') {\n",
        "            for (var j = 0; j < cell.output_area.outputs.length; j++) {\n",
        "                var data = cell.output_area.outputs[j];\n",
        "                if (data.data) {\n",
        "                    // IPython >= 3 moved mimebundle to data attribute of output\n",
        "                    data = data.data;\n",
        "                }\n",
        "                if (data['text/html'] === html_output) {\n",
        "                    return [cell, data, j];\n",
        "                }\n",
        "            }\n",
        "        }\n",
        "    }\n",
        "};\n",
        "\n",
        "// Register the function which deals with the matplotlib target/channel.\n",
        "// The kernel may be null if the page has been refreshed.\n",
        "if (IPython.notebook.kernel !== null) {\n",
        "    IPython.notebook.kernel.comm_manager.register_target(\n",
        "        'matplotlib',\n",
        "        mpl.mpl_figure_comm\n",
        "    );\n",
        "}\n"
       ],
       "text/plain": [
        "<IPython.core.display.Javascript object>"
       ]
      },
      "metadata": {},
      "output_type": "display_data"
     },
     {
      "data": {
       "text/html": [
-       "<img src=\"data:image/png;base64,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pSIjI5WZmWlZrTQhYC9ut1sbNq7Xho3r5Xa7A10OgtiOHTvUv39/lS9f3u+sYfv27fXNN9+wAA2AC8Ysah3bBMK3335b8+bN07Bhw9SwYUOVLVtWzZo102WXXZbnMX8NhDt37tSUKVM0depUrVixwlb/M0pKSlJsbKzq1q0rwzBUoUIFDR8+3DTspqena8iQIYqKitITTzyhjh076oUXXlB6erqlNdOEAID8HD58WEOHDtVFF13kFwybN2+u999/n7PZAAqNWdQ6tgmE77//fu5/e71evfvuuxoxYoQ+++yzPI85Gwhnz57tt3pp3bp1tXDhwmKvu7SiCQEABZGenq633npL9erV8wuGderU0ZtvvskCNADOG7OodWwTCIcMGaI///zT57Xly5fnuwDM2UDYqFEjtW7dWs8++6wef/xxtWvXTqGhoXI6nXryySeLte7SiiYE7MXj8ejw4cM6fPiwZYtLAefD5XJp0aJFuu666/yCYVhYmJ5++mklJSUFukwAJQSzqHVsEwj37dunyMhIzZ492+dyz6ioqDyPORsIzR7mnpGRoQkTJigiIkIvvvhi0RdcytGEgL2wqAxKCq/Xq+XLl+uee+7xC4ZOp1Ndu3bVmjVrAl0mAJtjFrWObQKhJG3btk1NmzZVnTp11KtXL3Xr1k0RERF57n82EMbExOS5z/79+9WiRQutXr26yOstzWhCwF4IhCiJduzYoQEDBqhChQp+4bBNmzb64IMP5HK5Al0mABtiFrWOrQKhdOaSk/fee099+vRRly5d9PXXX+e579lAOHjwYH3//fd57nf06FH179+/yGstzWhCwF4IhCjJ/vzzT40aNUo1a9b0C4b16tXTxIkTlZaWFugyAdgIs6h1bBcIz8fZQHjy5Ek1a9ZMr776ap43rr/22mtWllbi0YSAvRAIURpkZWXp3XffVZMmTfyCYeXKlTV48GD9/vvvgS4TgA0wi1onIIGwqB4R8dfHThw9ejR3MZn7779fs2fP9nmw/bhx4y647mBCEwL2QiBEaeL1evX111+rQ4cOfsEwJCRE3bt31+rVq231CCkA1mIWtY7lgbAoHxFh9mD6xYsXq0WLFnI4HHI6nbriiisUHR2t22+/nX91PA80IWAvBEKUVr/88ov69etn+qD7yMhIvfvuuzp9+nSgywRgMWZR61geCIvyERFmgfCs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L1++7PB5ng+Ea9euhYjgT3/6k+Lj9+/f7/DdQ/NNcmrUqIGqVaviyZMnRV4LAyERETnCQEhERF7n3r178Pf3h4gU+VuBShwFQqPRiD59+kBEEBERgbt379p9nucD4c2bNxEQEIAyZcrgu+++s3rs6dOn0bNnT4ftMt9VVEQwevToYl0LAyERETnCQEhERF5nwYIFlnfSSsJRIASAwsJCTJ48GeXKlUPdunWxevVqq7t/5ubmYt26dfD390f16tWRnp5uOZaQkAARgb+/P3r37o2JEydiwIABCA0NxenTp4ts24QJE+Dn54ezZ88W61oYCImIyBEGQiIi8hp79+7FyJEjUb58ecvNXz788ENs2LDBqecpKhCaXbt2DdOnT8ebb76Jl156CXXq1EF4eDgaNmyInj174l//+hfu3btnc96KFSvQtGlTlCtXDnXq1EFsbCwuXrxYrLbdvn0bvXv3Lva1MBASEZEjDIRERETPKW4g9AQMhERE5AgDIRER0XMYCImIyFcwEBIRET1HRNCoUSOYTCZXN0W15ORkBkIiIrKLgZCIiOg57du3R/v27REXF4cJEyZg5cqVrm6SUy5evIgJEyZg/Pjx+O1vf4v27dvj008/dXWziIjIDTEQEhERERER+SgGQiIiIiIiIh/FQEhEREREROSjGAiJiIiIiIh8FAMhERERERGRj2IgJCIiIiIi8lEMhERERERERD6KgZCIiIiIiMhHMRASERERERH5qP8DycMbvdm0wzUAAAAASUVORK5CYII=\" width=\"900\">"
+       "<img src=\"data:image/png;base64,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KtRQvXr1tHbtWr+6PR6Pxo4dq6pVq+Z/z6pVq+q11147a8hYvXq1unXrprCwMBmGodq1a+vBBx/Uzp07z+vPe926dbr//vsVGRnp92dRp04d9e7dW99++62jAlBeXp7ef/99tWrVqsAA17BhQ/Xo0UOjR4/We++9p++++04bNmzQrl27tGfPHu3YsUNbt25VcnKylixZomnTpmnkyJHq0aOHrr76aoWGhhYaEC+77DI98sgj+vbbb4Pi7CGBEAAQTAiE1iEQwlRRm9Dn8+nrr7/W4sWL9eeff2rEiBF6+umnlZKSojZdx6ralUPUaeBMvfXWW/kD/jXXXKMm0TPkumGVXDdvllH1crVr10716tU7PezXbJsfCGu0fMXkzOP3AWce77vvPtWqVUshlz72n6BZ+1YZhqGwsDB9+OGHOnDUraYP7FHtW79QSIPBgSGjxnW66x9xWr89KyB8ZWdna/jw4YVe4vjee++d85/znj171K1btyKdIbvhhhsCwq3V3G63pk+frgYNGgTUV6VKFf3973/XrFmztH///vP+Xjk5Ofr555+VmJioXr16/ef/HyZbZGSkHn744XIdDgmEAIBgQiC0DoEQpkqjCffv368ffvghf2D/7LPPNHToUM2aNUter1d79uxRhw4dZFS6UI1ueFbP/mu7vko+rttuu81v+K9+2w+KuGu36ty13uTM44v5gbBZh4F+793YZbDfmUeXy6WHH35YgwadPrvpav2ZQm/brQq37fS7hHTz5s26pNVQuaIWyNV0qozqLfQ///M/6tixoyIiImSEVJBRq52M8L9pyGMvFCmQeL1eJSYm+p2lNAxD4eHh6tSpkwYMGKA777xTNWvW9P/5QkL0wgsvyOPxlNjfS1H4fD599NFHuvLKKwP+zFu2bKmZM2fqxIkTpV7Dpk2bNGHCBN16662qWLGiaTj8n//5Hz3zzDPasmVLqdZjNQIhACCYEAitQyCEKTub8NSpU35fu91uTZs2TQ899JBmzJiRH4by3D4lJCSoUqVK+WHgpnueUdysg3pm2jHtPpClAQMG+J0BdN2yTaG37VZE87Favnx5/vdYtGiRQm/44f+fefxZjRo10jvvvKOxY8cqLCxMIZf958zjoOfm5Q/k6enp6vvgiPz3XE2nqFOnTkpLSyvw59uxY4duvPHGgBAzdepUZWdn++2bm5ur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ffdd3XjjjaZnDevWratnnnlGW7dutbtUIACzqHUIhDBFEwLWSElJ0dVXX61u3bqpe/fuuvDCC1WpUiV98cUXdpcGoBzZvn27nn/+edWrV880HLZv314zZszgv/twDGZR6xAIYYomBKyTlpam+Ph4DRkyRHFxcdq+fXvAPj6fT3l5ecrLy2NxCADF5na79cUXX6hHjx6qWLFiQDCsWrWqBg4cqBUrVvBvDWzFLGodAiFM0YSAPVavXq2kpKSA11lUBkBJ+/PPP5WQkKCmTZuanjW84oor9Morryg1NdXuUhGEmEWtQyCEKZoQsEabNm309ttvy+fzac6cOQoNDVWLFi303HPP+e1HIARQWnw+n9auXatHHnlENWrUCAiGLpdLXbp00YcffqicnBy7y0WQYBa1DoEQpmhCwBqvvPKKpNOXjdauXVujRo2SJL311lt++xEIAVghOztb77//vm6//XbTs4a1a9fW8OHDtXHjRrtLRTnHLGodAiFM0YSANWbOnClJeuihh3TJJZcoOztbkpSQkOC3H4EQgNV2796tuLg4NWzY0DQctmrVSpMmTVJaWprdpaIcYha1DoEQpmhCwBr//Oc/de211yo8PFwrVqxQXl6ePvjgA9WtW9dvPwIhALt4vV598803+sc//qHKlSsHBMPKlSurd+/eSkpKktfrtbtclBPMotYhEMIUTQhY59dff9WRI0ckSQcPHtTy5cu1fPlyv30IhACcIC0tTVOmTFHr1q1Nzxo2aNBAo0aNUkpKit2looxjFrUOgRCmaELAWj///LM+/vhjbd682fR9AiEAp/n111/15JNPqk6dOqbh8NZbb9W8efPyL4UHzgWzqHUIhDBFEwLWOHbsmG688UaFhIQoJCRELpdL99xzjzIyMvz2c7vd+uLLz/XFl5/L7XbbVC0ABMrNzdXHH3+s6OhouVyugGBYo0YNDRkyRGvWrOHZhigyZlHrEAhhiiYErPHAAw+of//+WrdundLT03X48GHNmjVLw4cPt7s0ADhn+/fv16uvvqrGjRubnjW89tprFR8fn3+ZPFAQZlHrEAhhiiYErPHoo4+avv76669bXAkAlByfz6eVK1fqgQceULVq1QKCYYUKFRQTE6OlS5dy1QNMMYtah0AIUzQhYI0ZM2aYvj5ixAiLKwGA0pGRkaF33nlHN9xwg+lZw4suukixsbHavn273aXCQZhFrUMgLKP27dun7t27q27duqpXr54SExPP6f2zoQkBazz99NP65Zdf8r/esWOHHnvsMfXp08dvPxaVAVAebNu2Tc8995wuuugi03DYoUMHzZo1SydPnrS7VNiMWdQ6BMIyyOfz6cknn1Rqaqokac6cOTIMQzt27CjS+0VBEwLFV6dOHfXo0UNTpkzRzp07C903NTVVjRs3Vo0aNVS5cmW5XC41a9ZMhw4d8tuPQAigPHG73Vq6dKliYmJUoUKFgGBYrVo1PfDAA/r+++9ZiCZIMYtah0BYBqWlpSktLS3/66ysLIWEhGjXrl1Fer8oaEKg+EJCQjRgwAB9++232rhx41n3z87O1qJFizRhwgR98sknpvfTEAgBlFeHDx9WfHy8rrnmGtOzho0aNdLYsWP1xx9/2F0qLMQsah0CoYW8Xq8WLFigCRMmlOjnzpo1SwkJCcV+3wxNCBTfBRdcUOKLJBAIAZR3Pp9Pa9as0ZAhQ1S9evWAYBgSEqLbb79d8+fPV1ZWlt3lopQxi1qHQGgBn8+nRYsWqUmTJjIMQwMHDixw39zcXE2YMEE9e/bU8OHD1alTJ8XFxZkOgJs2bVL//v0VGhqqvn37Bjz49WzvF4YmBIqvZcuWJf6ZBEIAwSQrK0vz58/X7bffrpCQkIBwWL16dQ0ePFg//vgjl5SWU8yi1iEQWmDTpk3asWOHZs6cWWggzMvL0x133KG2bdsqJydH0ul/EFu2bKkuXbrI4/EEHJOenq558+YpIiJCY8aMOef3C0ITAsXXpEmTEu8dAiGAYPXHH39o7NixatSokeklpVdddZVeffVV7du3z+5SUYKYRa1DILTQsmXLCg2EcXFxMgxDSUlJfq8vXbpUhmFo4sSJBX72yJEjFR0dXez3/xtNCBRfSEiIKlSooHbt2unFF1/UypUrTX+hcy4IhACCnc/n0/fff68HH3xQ4eHhAcHQ5XLpzjvv1KJFi3Tq1Cm7y8V5Yha1DoHQQoUFwpycHNWsWVPVqlULGBzz8vIUFham+vXry+v1mn52YmKihg4dWuD3Ptv7/40mBIovJCQkf3O5XHK5XKpevbruvvtu/etf/9K2bdtMj1uwYEGBn+l2u7XksyVa8tkSHuIMIOidPHlS7733njp27Gh61rBWrVp65JFHtGbNGi4pLaOYRa1DILRQYYFw5cqVMgxDbdq0MT22VatWMgxDycnJysjI0MKFC/MvK3W73YqOjs5f3v5s7xcFTQgUX/PmzfXLL7/ozTffVHR0tCIiIgICYoMGDfTQQw9p4cKFOnLkiCRp2LBhNlcOAGXPrl27NHr0aDVs2NA0HF5zzTWaMGGCDh48aHepOAfMotYhEFqosEA4bdo0GYahe++91/TYe+65R4ZhaMaMGdq2bZsaNGigRo0aacyYMYqPj9dvv/2Wv+/Z3jeTk5Oj9PT0/C01NZUmBIrpyiuv9Pva4/Fo1apVGjNmjG666SZVrlw5ICBGRkbK5XLZVDEAbH20iQAAIABJREFUlH1er1ffffed+vfvr7CwsIBgGBoaqq5du+qjjz7K/6U5nItAaB0CoYUKC4Tjxo2TYRjq16+f6bF9+vSRYRgaP358qdQ2evRo09+q0YTAuatatWqhlyhlZWXpyy+/1DPPPKOoqCiFhobmh0MAwPlLT0/XzJkz1aFDB9P5pmbNmho8eLBWrlxZ4O04sBeB0DoEQgsVFgjj4+MLDYT9+vWTYRgaN25cqdTGGUKg5ISEhGjp0qVF3j8tLU0TJ05UWFhYgfvk5eVpyvTJmjJ9MovKAMA5+P333/XCCy/o4osvNg2Hl156qUaOHFng/d2wB4HQOgRCCxUWCBcsWCDDMBQTE2N6bExMTP4lo1agCYHia9CggWrXrq3Fixef03EPP/xwge+xyigAnB+Px6OvvvpK/fv3V7Vq1UzDYevWrZWYmKjDhw/bXW7QYxa1DoHQQoUFwuTkZBmGofbt25se265du/xFZaxAEwLnZ8eOHZo6dao+/fTTIh+zatWqAt8jEAJAyTl58qTmzp2rzp07y+Vymd5vGB0drQULFigrK8vucoMSs6h1CIQWKiwQejweRUZGqnr16gH3Hnk8HoWHhysyMtKy69xpQsBZCIQAUDoOHDig+Ph4tWzZ0vSsYUREhO6//359++235/1MWRQds6h1CIQWOtuD6UeNGiXDMLRixQq/15OSkmQYhkaNGmVBlafRhICzEAgBoPRt3rxZsbGxuuSSS0zDYb169fTEE0/op59+4vmGpYxZ1DoEQguduU/wvvvuM30/OztbUVFR6tChg3JzcyVJp06dUuvWrRUVFaXs7GzLaqUJAWchEAKAdc48wuLBBx9U9erVC1yMJjY2Vhs2bCAclgJmUesQCC2QkpKi+Pj4/AemVqlSRaNHj1ZSUlLAvpmZmYqNjVV0dLQee+wxdenSRc8++6wyMzMtrZkmBJyFQAgA9sjOztaiRYt09913q2LFiqbh8KqrrtLo0aO1detWu8stN5hFrUMghCmaEHAWt9utjxd/pI8XfyS32213OQAQlNLS0vTOO++oU6dOCg0NNQ2HzZo107hx47Rr1y67yy3TmEWtQyCEKZoQAACgYIcPH9aUKVN00003KSQkxDQctmnTRm+++aZSU1PtLrfMYRa1DoEQpmhCAACAotm3b58mTpyotm3bmgZDwzB04403atKkSTp06JDd5ZYJzKLWIRDCFE0IAABw7lJSUjR+/Hi1aNHCNBi6XC7dfvvtmjlzpo4dO2Z3uY7FLGodAiFM0YSAs+Tl5entd6br7Xems6gMAJQR27Zt00svvaS//e1vpuGwYsWKio6O1ty5c5m5/guzqHUIhDBFEwLOwiqjAFB2+Xw+/fLLL3r++ed1+eWXm4bDKlWqKCYmRh988IGysrLsLtl2zKLWIRDCFE0IOAuBEADKB5/PpzVr1uipp57SxRdfbBoOq1Wrpn/84x9asmSJcnJy7C7ZFsyi1iEQwhRNCDgLgRAAyh+v16uVK1fq0Ucf1YUXXmgaDmvUqKEHHnhAX375ZVD9+88sah0CIUzRhICzEAgBoHxzu9365ptvNGjQINWqVcs0HNapU0dDhgzR8uXL5fF47C65VDGLWodACFM0IeAsBEIACB65ubn6/PPP1b9/f0VERJiGw4suukjDhw/X6tWr5fP57C65xDGLWodACFM0IeAsBEIACE7Z2dn6+OOP1bNnT4WFhZmGw4YNG+rZZ5/V+vXry004ZBa1DoEQpmhCwFncbrcWfrBACz9YILfbbXc5AAAbnDx5Uu+//766deumSpUqmYbDK6+8UqNGjdKWLVvsLve8MItah0AIUzQhAACAcx0/flzvvvuuOnfurNDQUNNw2LRpU7388svasWOH3eWeM2ZR6xAIYYomBAAAKBuOHDmiadOmqWPHjgoJCTENh61atdJrr72mlJQUu8stEmZR6xAIYYomBAAAKHv279+vxMREtW/f3jQYGoah1q1ba8KECdqzZ4/d5RaIWdQ6BEKYogkBZ8nLy9O7c2bp3TmzWFQGAFAke/bs0WuvvaZWrVoVGA7btm2rN998U3v37rW7XD/MotYhEMIUTQg4C6uMAgDOx86dO/Xqq6+qZcuWBYbD9u3ba+LEiUpNTbW7XGZRCxEIYYomBJyFQAgAKCm///67XnnlFTVv3rzAcHjDDTcoMTFR+/fvt6VGZlHrEAhh6v+1d+fRUZX3G8C/CbuEJWCIECBaQAJYhAABZBMUFFJCQYwNhCUEKbWllINlayEsNWWRTXZFPawRKyVaKjkR2ZFVViFA2CTshciWbZKZ5/cHZ+bHMHcmmdw7d7bnc879g3vnzrz36/v6vk9m5g4HIZFnYSAkIiJXOHPmDGbMmIFf//rXisEwICAAnTp1wqJFi3D9+nXd2sW1qH4YCEkRByGRZ2EgJCIiVzt9+jSmTZuGZs2a2Q2HXbp0wZIlS3Dz5k2XtoVrUf0wEJIiDkIiz8JASEREevrpp5+QlJSEiIgIxXAYGBiIbt26Yfny5bh9+7bmr8+1qH4YCEkRByGRZ2EgJCIidzCZTDh58iQmT56MF1980W447Nq1KxYvXqzZdw65FtUPAyEp4iAk8iwGgwFr16/B2vVrGAiJiMgtTCYTjh07hkmTJqFhw4Z2P1b6yiuvYO7cuap+55BrUf0wEJIiDkIiIiIissdkMuHIkSOYOHEiGjRoYPdupa1atUJycjLOnj3r1PNzLaofBkJSxEFIRERERCVhfudw8uTJaNq0qd1w+NJLLyEpKQknTpyAyWRy+Jxci+qHgZAUcRASERERUWlkZGTgH//4B1q2bGk3HDZq1AgTJkzAwYMHFcMh16L6YSAkRRyERJ6F3yEkIiJvdOHCBcyZMwft2rWzGw7r16+Pv/zlL9i5cyeKiooAcC2qJwZCUsRBSORZeJdRIiLydllZWfjoo4/w6quvIjAwUDEcPvvss0hISEBKSgrXojphICRFDIREnoWBkIiIfMmtW7fw8ccf44033kDZsmXtvnvItajrMRCSIgZCIs/CQEhERL4qOzsba9euRf/+/VG5cmUGQp0xEJIiBkIiz8JASERE/iAvLw+bN2/GoEGDuBbVCQMhKWIgJPIsDIRERORPuBbVDwMhKeIgJPIsDIRERORPuBbVDwMhKeIgJPIsBoMBn6/+DJ+v/oyBkIiIfB7XovphICRFHIRERERE5C5ci+qHgZAUcRASERERkbtwLaofBkJSxEFIRERERO7Ctah+GAhJEQchkWcpLCzEF1+m4IsvU1BYWOju5hAREbkU16L6YSAkRRyERJ6FdxklIiJ/wrWofhgISREHIZFnYSAkIiJ/wrWofhgISREHIZFnYSAkIiJ/wrWofhgISREHIZFnYSAkIiJ/wrWofhgISREHIZFnYSAkIiJ/wrWofhgISREHIZFnYSAkIiJ/wrWofhgISREHIZFnMRgM+PjTFfj40xUMhERE5PO4FtUPAyEp4iAkIiIiInfhWlQ/DISkiIOQiIiIiNyFa1H9MBCSIg5CIiIiInIXrkX1w0BIijgIiTxLYWEhNm76Chs3fYXCwkJ3N4eIiMiluBbVDwMhKeIgJPIsvMsoERH5E65F9cNASIo4CIk8CwMhERH5E65F9cNASIo4CIk8CwMhERH5E65F9cNASIo4CIk8CwMhERH5E65F9cNASIo4CIk8CwMhERH5E65F9cNASIo4CIk8CwMhERH5E65F9cNASIo4CIk8i8FgwNIVS7B0xRIGQiIi8nlci+qHgZAUcRASERERkbtwLaofBkIvdPXqVfz2t79FaGgo6tSpg4ULF1odP3HiBLp27YqgoCCEh4dj7ty5Tr8GByERERERuQvXovphIPQyJpMJY8aMQVZWFgBg9erVEBFkZmYCAH755Re89dZb2Lt3L44cOYKEhASICFJSUpx6HQ5CIiIiInIXrkX1w0DoZbKzs5GdnW35d05ODgICAnDhwgUAwLp163D9+nXLcaPRiHr16mH48OFOvQ4HIZFnKSwsxNf/+Rpf/+drFBYWurs5RERELsW1qH4YCHViNBqRkpKCOXPmaPq8n332GRYsWODwMa1bt8YHH3zg1PNyEBJ5Ft5llIiI/AnXovphIHQxk8mEDRs2oGnTphARDBkyxO5jCwoKMGfOHMTGxmL06NHo0aMHpk6dqrj4O3nyJAYNGoQyZcpg4MCByM3NVXzOhw8fIiwsDDdv3nSq3RyERJ6FgZCIiPwJ16L6YSB0sZMnTyIzMxMrV650GAgNBgO6d++Otm3bIj8/H8Djj4O2bNkSPXv2RFFRkc059+/fx9q1a1GlShVMnz5d8XmnTp2K1NRUp9vNQUjkWRgIiYjIn3Atqh8GQp1s377dYSCcOnUqRATp6elW+zdv3gwRwfz58+0+99///ndER0fb7P/mm2+wevXqUrWXg5DIszAQEhGRP+FaVD8MhDpxFAjz8/NRvXp1VK5c2eadQIPBgEqVKiEsLAxGo1HxuRcuXIg//OEPVvvS09Nt7ixaUFBQ4vZyEBJ5FgZCIiLyJ1yL6oeBUCeOAuHu3bshIoiKilI8t1WrVhARHDhwAA8ePMAXX3xh+VhpYWEhoqOjcf78ecvj09LSMG3aNGRkZCAjIwOnTp3CkiVLcPjw4RK3l4OQyLMwEBIRkT/hWlQ/DIQ6cRQIly9fDhFB3759Fc+NiYmBiOCTTz7BmTNnUL9+fTRo0ADTp0/HvHnzkJGRYXns1q1bUaFCBYiI1daqVSuH7cvPz8f9+/ct25UrVyAiyMrKstrPjRs392x37tzBrA9nYdaHs3Dnzh23t4cbN27cuHFz5ZaVlQURwb1791Stwal4DIQ6cRQIk5OTISKIj49XPDcuLg4igpkzZ7qsfUlJSTYhkhs3bty4cePGjRs3d25ZWVkuW//SYwyEOnEUCOfNmwcR+4EwPj4eIoLk5GSXte/pdwh//vlniAiuXLni9r8QufsvU/7+LinrwBqwBqwDa8AasA6sgd41uHfvHrKysuzeQ4O0w0CoE0eBMCUlBSKCfv36KZ7br18/iDz+yKhe7t/n57ZZg8dYB9YAYA3MWAfWAGANzFgH1gBgDXwBA6FOHAXCAwcOQETQvn17xXPbtWsHkcc3ldELBzdrYMY6sAYAa2DGOrAGAGtgxjqwBgBr4AsYCHXiKBAWFRUhJCQEVatWhclksjkWFBSEkJAQXd8y5+BmDcxYB9YAYA3MWAfWAGANzFgH1gBgDXwBA6FOivth+ilTpkBEsHPnTqv96enpEBFMmTJFh1b+v/z8fCQlJVl+3sIfsQaPsQ6sAcAamLEOrAHAGpixDqwBwBr4AgZCnZi/J/j2228rHs/NzUVkZCQ6duxo+QH5vLw8tGnTBpGRkcjNzdWzuURERERE5AcYCF3s4sWLmDdvHsLDwyEiqFixIpKSkpCenm7z2EePHmHChAmIjo7GqFGj0LNnT4wbNw6PHj1yQ8uJiIiIiMjXMRASERERERH5KQZCIiIiIiIiP8VASERERERE5KcYCImIiIiIiPwUAyGRBk6dOoX169fjyy+/dHdTiIiI3IbzofcyGo1ISUnBnDlzdH9tg8GAvXv36v669BgDIZXI+fPnERQUhO3bt5f4HF8f3Dk5Ofjggw8QERGBCRMm4OLFi+5uksfy1L5QUFCAOXPmIDY2FqNHj0aPHj0wdepUGAyGEp1//fp1JCYmYuDAgRgwYAA6d+6Mf/3rXy5utXqc9JW5sy7uwH5gn9a18fXrVTMf+nptvIHJZMKGDRvQtGlTh7+ZbY+zc2FqaipExGZbtWqVyiuh0mIg9FFqF7pPKiwsRLt27SAidgOhNw1uLWpz9uxZNGzYEM2aNcP58+dd2Fr11Fzv4sWLFf+7mrcaNWrYnOMtfcFgMKB79+5o27at5cd0c3Jy0LJlS/Ts2RNFRUUOz7969Srq16+P5cuXW/YdPXoUlSpVwqxZs1za9tJSO+k725e8pS+orUtGRgb69++PGjVqoFy5cnjxxRcxc+ZMFBYWuqbBKqm93mvXrmH48OGoX78+nnnmGbRo0QJr1qyx+3hv6QeA+toA/ne9zsyH/lSba9euYfTo0Rg6dCgSExPx5ptvYuTIkbh586ZrGqzCyZMnkZmZiZUrVzp9raWZC9u0aYPu3bvjjTfesGzvvPMOf9jejRgIfZDahe7TpkyZghYtWjgMhN4yuLWozdmzZ1GjRg00aNAAt2/fdnWTVVF7vU2aNEHHjh2RkJCAxMREqy04OBgjRoywOcdb+sLUqVMhIja/Cbp582aICObPn+/w/JiYGNSsWdOmhqNGjUKZMmVw5MgRzduslppJvzR9yVv6gpq6XL58GcHBwejUqRMGDBiANm3aWBa58fHxrmu0Cmqu9/r162jevDnGjRuH9evXY/bs2QgLC4OI4IsvvlA8x1v6AaCuNmb+dL3Ozof+UpsrV64gJCQES5cutewzGo0YNGgQGjRogJycHBe0WL3t27c7fa3OzoVbtmxB7969tWguaYiB0AepXeg+ae/evUhISEBSUpLdQOhNg1ttbQoKCix/Ldy9e7crm6oJNdf73XffYcaMGYrHbt++jbJly2Lbtm1W+72lL+Tn56N69eqoXLmyzSRmMBhQqVIlhIWFwWg0Kp5/7do1BAQEoHPnzjbH0tLSPDoMAKWb9J3tS97SF55UmrpER0fjP//5j9W+jRs3IiAgACKC48ePa9xK7ZTmeseOHYszZ85Y7du/fz9EBP369bN5vDf2A6B0tQH863qdnQ/9qTaTJk2CiODhw4dW+w8fPgwRwaZNmzRupTacvdbSzIUdOnRAQkIC0tPTbepD7sNA6GPULnSf9ODBA3Tt2hX37993GAi9ZXBrUZtly5ZBRPDqq6+6urmqqb3erKwsmEwmxWOLFi1C7dq1bc71lr6we/duiAiioqIUj7dq1QoiggMHDige/+abbyAi+N3vfmdz7Oeff4aIICQkRNM2a8nZSb80fclb+sKTnK3LzZs3MXr0aMVjffr0gYggJSVFwxZqqzQL3Z9++slmX05ODkQE7777rs0xb+wHQOkDoT9dr7PzoT/V5k9/+hNEBPv27bPaf/DgQYgI0tLSNG6lNpy9Vmfnwm3btll9VLh8+fLo378/78HgARgIfYzahe6TEhISsGvXLgCwGwi9aXBrUZvIyEiICEaNGoX4+HjUrVsXlSpVQqtWrTzujmpa9oWntWvXDn/+85+t9nlTX1i+fDlEBH379lU8HhMTAxHBJ598onh87dq1EBG8+eabNsfy8vIsNfjll180bbdWnJ30ne1L3tQXnuRsXR48eIB79+4pHhs3bhxExPL/UE9U2tDztLS0NNSqVcvmv6+39gOgdLXxt+t1Zj70t9ps2rQJIoLmzZvj1q1blv1Dhw7FSy+9hIKCAhe0VD1nr9XZufDq1av49ttvsWzZMsTGxqJChQoQEVStWhUHDx7U8lLISQyEPkbtQtdsw4YNmDhxouXf9gKhNw1utbXJzs62fAzsrbfewtmzZ5Gfn49du3ahYcOGEBGrL1W7m1Z94Wnnz5+HiOCHH36w2u9NfSE5Odnhxzrj4uIgIpg5c6bi8a1bt0JE8MILLygeN0+C165d06zNWnJ20ne2L3lTX3iSVgEJAAYPHoy6det67I1lAG2u99ChQ2jSpAlOnDhhc8xb+wFQutr40/U6Ox/6U23Mhg0bBhFBnTp1sGbNGiQkJGDo0KHIzs52TUM14Oy1qp0Lr127Zvk0RZ06dZCXl1fappNKDIQ+Ru1CF3j8UcFu3bpZ3TnQ0UdGn+TJg1ttbY4fPw4RQfXq1ZGbm2t17NixYxARBAcH2xxzFy36gpLp06cjPDy82Md5cl+YN2+ew9rEx8dDRJCcnKx4PCcnB9WqVYOIYMeOHVbHsrOzLZOgJ13zk5yd9NX2JU/uC0/SKhAaDAbUqlXLI++c+CQ117tjxw706dMHgYGBEBFUq1YNqampDs/xln4AaNMXfPl61c6HvlwbM5PJhClTpliC88svv+zxdyV39lq1mAuNRiN69+4NEcFXX32lpvmkAgOhj1G70DUajejVqxdOnz5ttb+kgdD8HJ44uNXWxvyxubZt2yoeN3+53pnfanQltddrT+PGjTF+/PgSPdZT+0JKSgpElG+CAQD9+vUr9t1T8/dnGjVqhOPHj8NoNOLkyZOIjY2FiKB27dquar5qzk76WvQlT+0LT9IqEM6fPx9xcXHaNMqF1Fyv0WjEgwcPcPDgQSQmJkJEUKVKlWLfFfeGfgBo1xd89Xq1mA99tTZmeXl5GDlyJAYPHowGDRpARBAUFIR///vfrmmoBtR8l1TNXHjo0CGICGbPnq2i9aQGA6GPUbvQnT17NiZPnowbN25YbWPHjoWIYOPGjbhx40axXwj3xMGttjYnTpxwOAGaz1+3bp1mbVZDi9DzNPMd0o4ePVriczyxLxw4cAAigvbt2yseN//uZnHfr1y/fj0iIyNRpUoVhIeHY9iwYVi0aBFEBIMHD3ZF0zXh7KSvVV/yxL7wJC1CwNGjRxETE+Ox3xF6kpYfkTXfRKMk74p6ej8AtK2NL16vVvOhL9YGAB4+fIh27dph2LBhAB6HwzFjxkBEULZs2VJ9d18Ppe33audC8/cNFy1aVMqWk1oMhD5G7UK3S5culrf4HW1JSUkO2+GJg1ttbfLz81GuXDm7H5ccMGAARMRj/vqnVeh50pgxY9C4cWOn2uGJfaGoqAghISGoWrWqzZ1Ui4qKEBQUhJCQkBLdjfdp5r94e8o7xUqcnfS16kue2BeepDYEnDt3DnFxcR7zsfHiaBl6zH3kn//8Z7GP9fR+AGhbG1+8Xq3mQ1+sDfD4qxUignPnzlntN/98j70/rrmblv3embkwMzMTIoL9+/erfl0qHQZCH6N2oXvgwAFs2bLFZhs4cCBEBLNmzcKWLVuQmZnpsB2eOLi1CAE9evRAQEAA7ty5Y3Ps9ddfh4gUWxu9aB16jEYjateuXewfA57miX0BAKZMmQIRwc6dO632p6enQ0QwZcoUy76ioiJ89dVXNpP703bs2IGAgABER0e7pM1acXbS16oveWpfMFOzGDp37hyGDBniNWEQ0Hbxd+TIkRL/QczT+wGgbW189Xq1mA99tTY9e/ZU/O5cfn4+KlasiIiICI1bqY3irlXtXJiXl6f4c1bvv/++V/ycly9jIPRBrljo2vsOobcNbrW1Mf8I97Jly6zONxgMqFmzJjp06ODaC3CSln3hu+++g4ggIyND8bi39YXc3FxERkaiY8eOlo/35eXloU2bNoiMjLRa2K9YsQIigrCwMLvPd+XKFdSrVw8REREefRc5oHSTvjN9ydv6gllpF0NnzpzB4MGDFcPg3r17i73ZirtotfgDgFmzZuFXv/qV1UdlvbUfAKWrjb9drzPzob/VJiEhASKi+Lud1apVQ/fu3V3VXFXMXw94++23FY+rmQsvXryIcuXKITQ0FB9//LHlD4irV69GVFQUbty4oe3FkFMYCH2Q1gtdQDkQeuPg1qI2gwYNQmhoKC5dumTZt2zZMtSsWdPmZjzupmVfGDp0KF5++WXFY97YFwDg0aNHmDBhAqKjozFq1Cj07NkT48aNw6NHj6wet2fPHgQHByM2NlbxeY4cOYLnn38er7/+Om7fvq1H01UpzaRf0r7krX0BKF1dMjIyULt2bcTExOCdd96x2nr16oXw8HCrOzZ7Emev98GDB6hTpw6ioqKwbds2y+PS0tLQpEkTq8WvN/cDwPna+Nv1mpVkPvTH2pw+fRrVqlVDTEwM8vPzLfvXr1+P8uXLe9zvk168eBHz5s1DeHg4RAQVK1ZEUlIS0tPTrR6nZi4sKCjAyJEj8dxzz6FcuXJo3bo1hgwZglWrVnnFd659HQOhj9JqoWumFAi9dXCrrY3RaMTcuXPRtm1bDBkyBAkJCYiPj8eFCxf0vIwS06Iv5OXloWrVqna/H+StfUENk8mEH3/8ESNGjEDLli2xevXqUn3nUE9qJ/2S9CVv7AulrcvFixcRGhrq8PvWf/vb39xxSQ6V9npNJhMGDx6M6tWro2zZsoiKikJiYiIWLFhg8/8Tb+wHQOlr42/Xa1aS+dBfa3Pp0iUMHz4cr732GhITE/Huu+8iLi4OJ0+e1PMyXM4b50KyxUBIRFQKa9euxbp163Dx4kV3N4WIiMgtOBf6BgZCIiIiIiIiP8VASERERERE5KcYCImIiIiIiPwUAyEREfmU+vXrW24C0bBhQzRv3txyk5eIiAi0aNECwcHBEBHUqFFD8Xb4RERE/oKBkIiIfMa5c+cQHByMr7/+GkVFRQCAY8eOQUQQGBho+V2sgoICxMfHo1+/forPY3780KFDMXbsWCxdulTxcRcuXMD48ePRunVrhIaGIiwsDFWqVLG602hxP+ujJDU1FW3btrU8R506dZCcnIyrV69aPa6oqAgffvghmjZtChFBx44dsWvXLpw/fx5jx47FmDFj0KhRI4gIkpKSnG4HERH5PgZCIiLyGUuXLsXGjRut9s2dOxcigqioKKv9W7duxeLFixWfR0TQvn17u69jMpkwbdo0lC1bFs2aNcOmTZuQl5dnOXbo0CF0794dIoLg4OBSXUtubi4aNmwIESn2x7unT5+Oxo0bW/3mmZn5B8QZCImISAkDIRER+YzU1FSbfb169VL8TcAjR47g3Llzis8jIujSpYvd13nvvfcsQS03N1fxMSaTCTExMahYsWLJL+ApX375JUQEAQEByMzMtPu4V155BatWrVI8tn37dgZCIiKyi4GQiIh8VmFhIYKCgiAi2LlzZ4nPcxQIN23aBBHBM888g5s3bzp8nrt376JatWql/p6iyWRCkyZNICL4/e9/r/iY48ePIyQkRPHdQYCBkIiIHGMgJCIin7Vnzx6ICIKCgmAwGEpu+1i5AAAEaElEQVR8nqNAGBUVBRHBkCFDSvRca9assXntw4cPIzY2Fp06dUJoaCg6dOiA7du3K56/atUqiAgqVKiA69ev2xwfPnw4Jk6caPf1GQiJiMgRBkIiIvJZ06ZNg4ggOjraqfPsBcL//e9/CAgIgIhg5cqVpWrT999/jzZt2uDWrVsAHr+L2KBBA5QrVw4//PCDzeMLCwvxwgsvQETw17/+1epYdnY2qlSpgitXrth9PQZCIiJyhIGQiIh8VqdOnSAiWLhwoVPn2QuEP/74o+XOn//973/tnr9v3z5s377dajt06BAMBgPq1atn813HGTNmQETs3vV02bJlEBFUqVLFcqdUAJg9ezb69u3r8FoYCImIyBEGQiIi8kmPHj1C+fLlISI4ffq0U+faC4T79++3BMK0tDS751++fBkrV660PDYhIQGXLl1CWloaRATdu3dHnz59LFu3bt3QuHFj9O7dW/H58vPzUbt2bYgIpk+fDgAwGo14/vnn8f333zu8FgZCIiJyhIGQiIh80pYtWyAiqFu3rtPn2guEV65csYS8zz//vNjnqVWrFkQE6enpAIAPP/wQIoKzZ8863Sbzuc8++yxycnKQmpqKpk2bFnseAyERETnCQEhERD7p/ffft7w75yxHN5Ux/zbgoEGDin2e8PBwiIjlhjHJyclW/3bGo0ePULNmTYgIFixYgNdeew1Lliwp9jwGQiIicoSBkIiIfFLLli0hIli/fr3T5zoKhEuXLrXc9fPy5csOn+fpQLh69WqICP74xz8qPn7fvn0O3z003ySnZs2aqFatGh4+fFjstTAQEhGRIwyERETkc+7evYvAwECISLG/FajEUSA0Go3o27cvRASRkZG4c+eO3ed5OhDeuHED5cqVQ5kyZfDtt99aPfbUqVPo1auXw3aZ7yoqIhg1alSJroWBkIiIHGEgJCIinzN//nzLO2ml4SgQAkBRUREmTZqE8uXLo169eli5cqXV3T/z8vKwZs0aBAYGokaNGsjIyLAcmzp1KkQEgYGB6NOnDyZMmIC4uDiEhYXh1KlTxbZt/PjxCAgIwJkzZ0p0LQyERETkCAMhERH5jD179mDEiBGoUKGC5eYv7733HtatW+fU8xQXCM2uXr2K6dOno3PnznjuuedQt25dREREoFGjRujVqxc++ugj3L171+a85cuXo1mzZihfvjzq1q2LQYMG4cKFCyVq261bt9CnT58SXwsDIREROcJASERE9JSSBkJvwEBIRESOMBASERE9hYGQiIj8BQMhERHRU0QEjRs3hslkcndTVEtNTWUgJCIiuxgIiYiIntKhQwd06NABCQkJGD9+PFasWOHuJjnlwoULGD9+PMaNG4ff/OY36NChAz799FN3N4uIiDwQAyEREREREZGfYiAkIiIiIiLyUwyEREREREREfoqBkIiIiIiIyE8xEBIREREREfkpBkIiIiIiIiI/xUBIRERERETkpxgIiYiIiIiI/BQDIRERERERkZ/6P+7FG+A8Dk6DAAAAAElFTkSuQmCC\" width=\"900\">"
       ],
       "text/plain": [
        "<IPython.core.display.HTML object>"
       ]
      },
      "metadata": {},
      "output_type": "display_data"
     }
    ],
    "source": [
     "if True:\n",
     "    fig=plt.figure(figsize=(9,4))\n",
     "    fig.subplots_adjust(bottom=0.15, left=0.15, top = 0.9, right=0.9,wspace=0.0,hspace=0.25)\n",
     "    sub = fig.add_subplot(1,1,1)\n",
     "    \n",
-    "    sub.plot(ax.T,ax.rho_axion/rho_crit,linestyle='-',linewidth=2,alpha=1,c='xkcd:black')\n",
-    "    sub.plot(ax.T_peak,ax.rho_axion_peak/rho_crit,linestyle=':',linewidth=2,alpha=1,c='xkcd:blue')\n",
+    "    sub.plot(ax.T,ax.rho_axion/cosmo.rho_crit,linestyle='-',linewidth=2,alpha=1,c='xkcd:black')\n",
+    "    sub.plot(ax.T_peak,ax.rho_axion_peak/cosmo.rho_crit,linestyle=':',linewidth=2,alpha=1,c='xkcd:blue')\n",
     "\n",
     "    \n",
     "    sub.set_xlabel(r'$T ~[{\\rm GeV}]$')\n",
     "    sub.xaxis.set_label_coords(0.5, -0.1) \n",
     "    sub.set_ylabel(r'$\\dfrac{\\rho_{a}(T)}{\\rho_{\\rm crit}}$')\n",
     "    sub.yaxis.set_label_coords(-0.1,0.5) \n",
     "    \n",
     "    \n",
     "    sub.axvline(ax.T_osc,linestyle='--',color='xkcd:gray',linewidth=1.5)\n",
     "    #set major ticks\n",
     "    _M_xticks=[ round(0.45+i*0.15,4) for i in range(0,15) ]\n",
     "    _M_yticks=[ 10.**i for i in range(32,42,1)  ]\n",
     "\n",
     "    #set major ticks that will not have a label\n",
     "    _M_xticks_exception=[]\n",
     "    _M_yticks_exception=[]\n",
     "\n",
     "    _m_xticks=[]\n",
     "    _m_yticks=[]  \n",
     "    ft=FT(_M_xticks,_M_yticks,\n",
     "                 _M_xticks_exception,_M_yticks_exception,\n",
     "                 _m_xticks,_m_yticks,\n",
     "                 xmin=0.45,xmax=2,ymin=1e32,ymax=1e36,xscale='linear',yscale='log')\n",
     "\n",
     "    ft.format_ticks(plt,sub)    \n",
     "\n",
     "    \n",
     "    sub.text(x=0.92,y=1e33, s=r'$T_{\\rm osc}$',rotation=90)\n",
     "\n",
     "#     fig.savefig('axion_energy_density.pdf',bbox_inches='tight')\n",
     "\n",
     "\n",
     "    fig.show()"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 15,
+   "execution_count": 16,
    "metadata": {},
    "outputs": [],
    "source": [
     "#run the destructor\n",
     "del ax"
    ]
   },
   {
    "cell_type": "code",
    "execution_count": null,
    "metadata": {},
    "outputs": [],
    "source": []
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
   }
  ],
  "metadata": {
   "kernelspec": {
-   "display_name": "Python 3 (ipykernel)",
+   "display_name": "Python 3",
    "language": "python",
    "name": "python3"
   },
   "language_info": {
    "codemirror_mode": {
     "name": "ipython",
     "version": 3
    },
    "file_extension": ".py",
    "mimetype": "text/x-python",
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.8.8"
+   "version": "3.9.5"
   }
  },
  "nbformat": 4,
  "nbformat_minor": 2
 }
diff --git a/UserSpace/JupyterNotebooks/AxionMass.ipynb b/UserSpace/JupyterNotebooks/AxionMass.ipynb
index 52f7605..cfae66c 100755
--- a/UserSpace/JupyterNotebooks/AxionMass.ipynb
+++ b/UserSpace/JupyterNotebooks/AxionMass.ipynb
@@ -1,1113 +1,1125 @@
 {
  "cells": [
   {
    "cell_type": "code",
    "execution_count": 1,
    "metadata": {},
    "outputs": [],
    "source": [
     "import numpy as np#you usually need numpy\n",
     "\n",
     "#---these are for plots---#\n",
     "import matplotlib\n",
     "matplotlib.use('nbAgg')\n",
     "import matplotlib.pyplot as plt\n",
     "\n",
     "plt.rcParams['font.size']=16\n",
     "plt.rcParams['font.family']='dejavu sans'\n",
     "\n",
     "plt.rcParams['mathtext.fontset']='stix'\n",
     "plt.rcParams['mathtext.rm']='custom'\n",
     "plt.rcParams['mathtext.it']='stix:italic'\n",
     "plt.rcParams['mathtext.bf']='stix:bold'\n",
     "#-------------------------#"
    ]
   },
   {
    "cell_type": "code",
    "execution_count": 2,
    "metadata": {},
    "outputs": [],
    "source": [
     "#load the module\n",
     "from sys import path as sysPath\n",
-    "from os import path as osPath\n",
-    "sysPath.append(osPath.join(osPath.dirname('./'), '../../src'))\n",
+    "sysPath.append('../../src')\n",
     "\n",
     "from interfacePy.AxionMass import AxionMass\n",
     "from interfacePy.FT import FT #easy tick formatting"
    ]
   },
   {
    "cell_type": "code",
    "execution_count": 3,
    "metadata": {},
    "outputs": [],
    "source": [
     "#you can define the axion mass using a data file\n",
-    "axionMassInterpolation = AxionMass(r'../../src/data/chi.dat',0,1e5)\n",
+    "axionMassInterpolation = AxionMass(r'../../src/data/chi.dat',0,10)\n",
+    "\n",
+    "def ma2_MAX(T,fa):\n",
+    "    TMAX=axionMassInterpolation.getTMax()\n",
+    "    chiMAX=axionMassInterpolation.getChiMax()\n",
+    "    return chiMAX/fa/fa/pow(T/TMAX,8.16)\n",
+    "#set this in order to get the correct scaling (for the dataset we use here)\n",
+    "axionMassInterpolation.set_ma2_MAX( ma2_MAX )\n",
+    "\n",
+    "\n",
     "\n",
     "#you can define the axion mass via a function\n",
     "def ma2(T,fa):\n",
     "    TQCD=150*1e-3;\n",
     "    ma20=3.1575e-05/fa/fa;\n",
     "    if T<=TQCD:\n",
     "        return ma20;\n",
     "    return ma20*pow((TQCD/T),8.16)\n",
     "\n",
-    "axionMassFunction = AxionMass(ma2)\n"
+    "axionMassFunction = AxionMass(ma2)\n",
+    "\n",
+    "\n",
+    "\n",
+    "\n"
    ]
   },
   {
    "cell_type": "code",
    "execution_count": 4,
    "metadata": {},
    "outputs": [
     {
      "data": {
       "application/javascript": [
        "/* Put everything inside the global mpl namespace */\n",
        "/* global mpl */\n",
        "window.mpl = {};\n",
        "\n",
        "mpl.get_websocket_type = function () {\n",
        "    if (typeof WebSocket !== 'undefined') {\n",
        "        return WebSocket;\n",
        "    } else if (typeof MozWebSocket !== 'undefined') {\n",
        "        return MozWebSocket;\n",
        "    } else {\n",
        "        alert(\n",
        "            'Your browser does not have WebSocket support. ' +\n",
        "                'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
        "                'Firefox 4 and 5 are also supported but you ' +\n",
        "                'have to enable WebSockets in about:config.'\n",
        "        );\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n",
        "    this.id = figure_id;\n",
        "\n",
        "    this.ws = websocket;\n",
        "\n",
        "    this.supports_binary = this.ws.binaryType !== undefined;\n",
        "\n",
        "    if (!this.supports_binary) {\n",
        "        var warnings = document.getElementById('mpl-warnings');\n",
        "        if (warnings) {\n",
        "            warnings.style.display = 'block';\n",
        "            warnings.textContent =\n",
        "                'This browser does not support binary websocket messages. ' +\n",
        "                'Performance may be slow.';\n",
        "        }\n",
        "    }\n",
        "\n",
        "    this.imageObj = new Image();\n",
        "\n",
        "    this.context = undefined;\n",
        "    this.message = undefined;\n",
        "    this.canvas = undefined;\n",
        "    this.rubberband_canvas = undefined;\n",
        "    this.rubberband_context = undefined;\n",
        "    this.format_dropdown = undefined;\n",
        "\n",
        "    this.image_mode = 'full';\n",
        "\n",
        "    this.root = document.createElement('div');\n",
        "    this.root.setAttribute('style', 'display: inline-block');\n",
        "    this._root_extra_style(this.root);\n",
        "\n",
        "    parent_element.appendChild(this.root);\n",
        "\n",
        "    this._init_header(this);\n",
        "    this._init_canvas(this);\n",
        "    this._init_toolbar(this);\n",
        "\n",
        "    var fig = this;\n",
        "\n",
        "    this.waiting = false;\n",
        "\n",
        "    this.ws.onopen = function () {\n",
        "        fig.send_message('supports_binary', { value: fig.supports_binary });\n",
        "        fig.send_message('send_image_mode', {});\n",
        "        if (fig.ratio !== 1) {\n",
        "            fig.send_message('set_dpi_ratio', { dpi_ratio: fig.ratio });\n",
        "        }\n",
        "        fig.send_message('refresh', {});\n",
        "    };\n",
        "\n",
        "    this.imageObj.onload = function () {\n",
        "        if (fig.image_mode === 'full') {\n",
        "            // Full images could contain transparency (where diff images\n",
        "            // almost always do), so we need to clear the canvas so that\n",
        "            // there is no ghosting.\n",
        "            fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
        "        }\n",
        "        fig.context.drawImage(fig.imageObj, 0, 0);\n",
        "    };\n",
        "\n",
        "    this.imageObj.onunload = function () {\n",
        "        fig.ws.close();\n",
        "    };\n",
        "\n",
        "    this.ws.onmessage = this._make_on_message_function(this);\n",
        "\n",
        "    this.ondownload = ondownload;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._init_header = function () {\n",
        "    var titlebar = document.createElement('div');\n",
        "    titlebar.classList =\n",
        "        'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n",
        "    var titletext = document.createElement('div');\n",
        "    titletext.classList = 'ui-dialog-title';\n",
        "    titletext.setAttribute(\n",
        "        'style',\n",
        "        'width: 100%; text-align: center; padding: 3px;'\n",
        "    );\n",
        "    titlebar.appendChild(titletext);\n",
        "    this.root.appendChild(titlebar);\n",
        "    this.header = titletext;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n",
        "\n",
        "mpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n",
        "\n",
        "mpl.figure.prototype._init_canvas = function () {\n",
        "    var fig = this;\n",
        "\n",
        "    var canvas_div = (this.canvas_div = document.createElement('div'));\n",
        "    canvas_div.setAttribute(\n",
        "        'style',\n",
        "        'border: 1px solid #ddd;' +\n",
        "            'box-sizing: content-box;' +\n",
        "            'clear: both;' +\n",
        "            'min-height: 1px;' +\n",
        "            'min-width: 1px;' +\n",
        "            'outline: 0;' +\n",
        "            'overflow: hidden;' +\n",
        "            'position: relative;' +\n",
        "            'resize: both;'\n",
        "    );\n",
        "\n",
        "    function on_keyboard_event_closure(name) {\n",
        "        return function (event) {\n",
        "            return fig.key_event(event, name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    canvas_div.addEventListener(\n",
        "        'keydown',\n",
        "        on_keyboard_event_closure('key_press')\n",
        "    );\n",
        "    canvas_div.addEventListener(\n",
        "        'keyup',\n",
        "        on_keyboard_event_closure('key_release')\n",
        "    );\n",
        "\n",
        "    this._canvas_extra_style(canvas_div);\n",
        "    this.root.appendChild(canvas_div);\n",
        "\n",
        "    var canvas = (this.canvas = document.createElement('canvas'));\n",
        "    canvas.classList.add('mpl-canvas');\n",
        "    canvas.setAttribute('style', 'box-sizing: content-box;');\n",
        "\n",
        "    this.context = canvas.getContext('2d');\n",
        "\n",
        "    var backingStore =\n",
        "        this.context.backingStorePixelRatio ||\n",
        "        this.context.webkitBackingStorePixelRatio ||\n",
        "        this.context.mozBackingStorePixelRatio ||\n",
        "        this.context.msBackingStorePixelRatio ||\n",
        "        this.context.oBackingStorePixelRatio ||\n",
        "        this.context.backingStorePixelRatio ||\n",
        "        1;\n",
        "\n",
        "    this.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
        "\n",
        "    var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n",
        "        'canvas'\n",
        "    ));\n",
        "    rubberband_canvas.setAttribute(\n",
        "        'style',\n",
        "        'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n",
        "    );\n",
        "\n",
        "    // Apply a ponyfill if ResizeObserver is not implemented by browser.\n",
        "    if (this.ResizeObserver === undefined) {\n",
        "        if (window.ResizeObserver !== undefined) {\n",
        "            this.ResizeObserver = window.ResizeObserver;\n",
        "        } else {\n",
        "            var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n",
        "            this.ResizeObserver = obs.ResizeObserver;\n",
        "        }\n",
        "    }\n",
        "\n",
        "    this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n",
        "        var nentries = entries.length;\n",
        "        for (var i = 0; i < nentries; i++) {\n",
        "            var entry = entries[i];\n",
        "            var width, height;\n",
        "            if (entry.contentBoxSize) {\n",
        "                if (entry.contentBoxSize instanceof Array) {\n",
        "                    // Chrome 84 implements new version of spec.\n",
        "                    width = entry.contentBoxSize[0].inlineSize;\n",
        "                    height = entry.contentBoxSize[0].blockSize;\n",
        "                } else {\n",
        "                    // Firefox implements old version of spec.\n",
        "                    width = entry.contentBoxSize.inlineSize;\n",
        "                    height = entry.contentBoxSize.blockSize;\n",
        "                }\n",
        "            } else {\n",
        "                // Chrome <84 implements even older version of spec.\n",
        "                width = entry.contentRect.width;\n",
        "                height = entry.contentRect.height;\n",
        "            }\n",
        "\n",
        "            // Keep the size of the canvas and rubber band canvas in sync with\n",
        "            // the canvas container.\n",
        "            if (entry.devicePixelContentBoxSize) {\n",
        "                // Chrome 84 implements new version of spec.\n",
        "                canvas.setAttribute(\n",
        "                    'width',\n",
        "                    entry.devicePixelContentBoxSize[0].inlineSize\n",
        "                );\n",
        "                canvas.setAttribute(\n",
        "                    'height',\n",
        "                    entry.devicePixelContentBoxSize[0].blockSize\n",
        "                );\n",
        "            } else {\n",
        "                canvas.setAttribute('width', width * fig.ratio);\n",
        "                canvas.setAttribute('height', height * fig.ratio);\n",
        "            }\n",
        "            canvas.setAttribute(\n",
        "                'style',\n",
        "                'width: ' + width + 'px; height: ' + height + 'px;'\n",
        "            );\n",
        "\n",
        "            rubberband_canvas.setAttribute('width', width);\n",
        "            rubberband_canvas.setAttribute('height', height);\n",
        "\n",
        "            // And update the size in Python. We ignore the initial 0/0 size\n",
        "            // that occurs as the element is placed into the DOM, which should\n",
        "            // otherwise not happen due to the minimum size styling.\n",
        "            if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n",
        "                fig.request_resize(width, height);\n",
        "            }\n",
        "        }\n",
        "    });\n",
        "    this.resizeObserverInstance.observe(canvas_div);\n",
        "\n",
        "    function on_mouse_event_closure(name) {\n",
        "        return function (event) {\n",
        "            return fig.mouse_event(event, name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mousedown',\n",
        "        on_mouse_event_closure('button_press')\n",
        "    );\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mouseup',\n",
        "        on_mouse_event_closure('button_release')\n",
        "    );\n",
        "    // Throttle sequential mouse events to 1 every 20ms.\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mousemove',\n",
        "        on_mouse_event_closure('motion_notify')\n",
        "    );\n",
        "\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mouseenter',\n",
        "        on_mouse_event_closure('figure_enter')\n",
        "    );\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mouseleave',\n",
        "        on_mouse_event_closure('figure_leave')\n",
        "    );\n",
        "\n",
        "    canvas_div.addEventListener('wheel', function (event) {\n",
        "        if (event.deltaY < 0) {\n",
        "            event.step = 1;\n",
        "        } else {\n",
        "            event.step = -1;\n",
        "        }\n",
        "        on_mouse_event_closure('scroll')(event);\n",
        "    });\n",
        "\n",
        "    canvas_div.appendChild(canvas);\n",
        "    canvas_div.appendChild(rubberband_canvas);\n",
        "\n",
        "    this.rubberband_context = rubberband_canvas.getContext('2d');\n",
        "    this.rubberband_context.strokeStyle = '#000000';\n",
        "\n",
        "    this._resize_canvas = function (width, height, forward) {\n",
        "        if (forward) {\n",
        "            canvas_div.style.width = width + 'px';\n",
        "            canvas_div.style.height = height + 'px';\n",
        "        }\n",
        "    };\n",
        "\n",
        "    // Disable right mouse context menu.\n",
        "    this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n",
        "        event.preventDefault();\n",
        "        return false;\n",
        "    });\n",
        "\n",
        "    function set_focus() {\n",
        "        canvas.focus();\n",
        "        canvas_div.focus();\n",
        "    }\n",
        "\n",
        "    window.setTimeout(set_focus, 100);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._init_toolbar = function () {\n",
        "    var fig = this;\n",
        "\n",
        "    var toolbar = document.createElement('div');\n",
        "    toolbar.classList = 'mpl-toolbar';\n",
        "    this.root.appendChild(toolbar);\n",
        "\n",
        "    function on_click_closure(name) {\n",
        "        return function (_event) {\n",
        "            return fig.toolbar_button_onclick(name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    function on_mouseover_closure(tooltip) {\n",
        "        return function (event) {\n",
        "            if (!event.currentTarget.disabled) {\n",
        "                return fig.toolbar_button_onmouseover(tooltip);\n",
        "            }\n",
        "        };\n",
        "    }\n",
        "\n",
        "    fig.buttons = {};\n",
        "    var buttonGroup = document.createElement('div');\n",
        "    buttonGroup.classList = 'mpl-button-group';\n",
        "    for (var toolbar_ind in mpl.toolbar_items) {\n",
        "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
        "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
        "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
        "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
        "\n",
        "        if (!name) {\n",
        "            /* Instead of a spacer, we start a new button group. */\n",
        "            if (buttonGroup.hasChildNodes()) {\n",
        "                toolbar.appendChild(buttonGroup);\n",
        "            }\n",
        "            buttonGroup = document.createElement('div');\n",
        "            buttonGroup.classList = 'mpl-button-group';\n",
        "            continue;\n",
        "        }\n",
        "\n",
        "        var button = (fig.buttons[name] = document.createElement('button'));\n",
        "        button.classList = 'mpl-widget';\n",
        "        button.setAttribute('role', 'button');\n",
        "        button.setAttribute('aria-disabled', 'false');\n",
        "        button.addEventListener('click', on_click_closure(method_name));\n",
        "        button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
        "\n",
        "        var icon_img = document.createElement('img');\n",
        "        icon_img.src = '_images/' + image + '.png';\n",
        "        icon_img.srcset = '_images/' + image + '_large.png 2x';\n",
        "        icon_img.alt = tooltip;\n",
        "        button.appendChild(icon_img);\n",
        "\n",
        "        buttonGroup.appendChild(button);\n",
        "    }\n",
        "\n",
        "    if (buttonGroup.hasChildNodes()) {\n",
        "        toolbar.appendChild(buttonGroup);\n",
        "    }\n",
        "\n",
        "    var fmt_picker = document.createElement('select');\n",
        "    fmt_picker.classList = 'mpl-widget';\n",
        "    toolbar.appendChild(fmt_picker);\n",
        "    this.format_dropdown = fmt_picker;\n",
        "\n",
        "    for (var ind in mpl.extensions) {\n",
        "        var fmt = mpl.extensions[ind];\n",
        "        var option = document.createElement('option');\n",
        "        option.selected = fmt === mpl.default_extension;\n",
        "        option.innerHTML = fmt;\n",
        "        fmt_picker.appendChild(option);\n",
        "    }\n",
        "\n",
        "    var status_bar = document.createElement('span');\n",
        "    status_bar.classList = 'mpl-message';\n",
        "    toolbar.appendChild(status_bar);\n",
        "    this.message = status_bar;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n",
        "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
        "    // which will in turn request a refresh of the image.\n",
        "    this.send_message('resize', { width: x_pixels, height: y_pixels });\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.send_message = function (type, properties) {\n",
        "    properties['type'] = type;\n",
        "    properties['figure_id'] = this.id;\n",
        "    this.ws.send(JSON.stringify(properties));\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.send_draw_message = function () {\n",
        "    if (!this.waiting) {\n",
        "        this.waiting = true;\n",
        "        this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
        "    var format_dropdown = fig.format_dropdown;\n",
        "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
        "    fig.ondownload(fig, format);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_resize = function (fig, msg) {\n",
        "    var size = msg['size'];\n",
        "    if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n",
        "        fig._resize_canvas(size[0], size[1], msg['forward']);\n",
        "        fig.send_message('refresh', {});\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_rubberband = function (fig, msg) {\n",
        "    var x0 = msg['x0'] / fig.ratio;\n",
        "    var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n",
        "    var x1 = msg['x1'] / fig.ratio;\n",
        "    var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n",
        "    x0 = Math.floor(x0) + 0.5;\n",
        "    y0 = Math.floor(y0) + 0.5;\n",
        "    x1 = Math.floor(x1) + 0.5;\n",
        "    y1 = Math.floor(y1) + 0.5;\n",
        "    var min_x = Math.min(x0, x1);\n",
        "    var min_y = Math.min(y0, y1);\n",
        "    var width = Math.abs(x1 - x0);\n",
        "    var height = Math.abs(y1 - y0);\n",
        "\n",
        "    fig.rubberband_context.clearRect(\n",
        "        0,\n",
        "        0,\n",
        "        fig.canvas.width / fig.ratio,\n",
        "        fig.canvas.height / fig.ratio\n",
        "    );\n",
        "\n",
        "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_figure_label = function (fig, msg) {\n",
        "    // Updates the figure title.\n",
        "    fig.header.textContent = msg['label'];\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_cursor = function (fig, msg) {\n",
        "    var cursor = msg['cursor'];\n",
        "    switch (cursor) {\n",
        "        case 0:\n",
        "            cursor = 'pointer';\n",
        "            break;\n",
        "        case 1:\n",
        "            cursor = 'default';\n",
        "            break;\n",
        "        case 2:\n",
        "            cursor = 'crosshair';\n",
        "            break;\n",
        "        case 3:\n",
        "            cursor = 'move';\n",
        "            break;\n",
        "    }\n",
        "    fig.rubberband_canvas.style.cursor = cursor;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_message = function (fig, msg) {\n",
        "    fig.message.textContent = msg['message'];\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_draw = function (fig, _msg) {\n",
        "    // Request the server to send over a new figure.\n",
        "    fig.send_draw_message();\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_image_mode = function (fig, msg) {\n",
        "    fig.image_mode = msg['mode'];\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n",
        "    for (var key in msg) {\n",
        "        if (!(key in fig.buttons)) {\n",
        "            continue;\n",
        "        }\n",
        "        fig.buttons[key].disabled = !msg[key];\n",
        "        fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n",
        "    if (msg['mode'] === 'PAN') {\n",
        "        fig.buttons['Pan'].classList.add('active');\n",
        "        fig.buttons['Zoom'].classList.remove('active');\n",
        "    } else if (msg['mode'] === 'ZOOM') {\n",
        "        fig.buttons['Pan'].classList.remove('active');\n",
        "        fig.buttons['Zoom'].classList.add('active');\n",
        "    } else {\n",
        "        fig.buttons['Pan'].classList.remove('active');\n",
        "        fig.buttons['Zoom'].classList.remove('active');\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.updated_canvas_event = function () {\n",
        "    // Called whenever the canvas gets updated.\n",
        "    this.send_message('ack', {});\n",
        "};\n",
        "\n",
        "// A function to construct a web socket function for onmessage handling.\n",
        "// Called in the figure constructor.\n",
        "mpl.figure.prototype._make_on_message_function = function (fig) {\n",
        "    return function socket_on_message(evt) {\n",
        "        if (evt.data instanceof Blob) {\n",
        "            /* FIXME: We get \"Resource interpreted as Image but\n",
        "             * transferred with MIME type text/plain:\" errors on\n",
        "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
        "             * to be part of the websocket stream */\n",
        "            evt.data.type = 'image/png';\n",
        "\n",
        "            /* Free the memory for the previous frames */\n",
        "            if (fig.imageObj.src) {\n",
        "                (window.URL || window.webkitURL).revokeObjectURL(\n",
        "                    fig.imageObj.src\n",
        "                );\n",
        "            }\n",
        "\n",
        "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
        "                evt.data\n",
        "            );\n",
        "            fig.updated_canvas_event();\n",
        "            fig.waiting = false;\n",
        "            return;\n",
        "        } else if (\n",
        "            typeof evt.data === 'string' &&\n",
        "            evt.data.slice(0, 21) === 'data:image/png;base64'\n",
        "        ) {\n",
        "            fig.imageObj.src = evt.data;\n",
        "            fig.updated_canvas_event();\n",
        "            fig.waiting = false;\n",
        "            return;\n",
        "        }\n",
        "\n",
        "        var msg = JSON.parse(evt.data);\n",
        "        var msg_type = msg['type'];\n",
        "\n",
        "        // Call the  \"handle_{type}\" callback, which takes\n",
        "        // the figure and JSON message as its only arguments.\n",
        "        try {\n",
        "            var callback = fig['handle_' + msg_type];\n",
        "        } catch (e) {\n",
        "            console.log(\n",
        "                \"No handler for the '\" + msg_type + \"' message type: \",\n",
        "                msg\n",
        "            );\n",
        "            return;\n",
        "        }\n",
        "\n",
        "        if (callback) {\n",
        "            try {\n",
        "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
        "                callback(fig, msg);\n",
        "            } catch (e) {\n",
        "                console.log(\n",
        "                    \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n",
        "                    e,\n",
        "                    e.stack,\n",
        "                    msg\n",
        "                );\n",
        "            }\n",
        "        }\n",
        "    };\n",
        "};\n",
        "\n",
        "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
        "mpl.findpos = function (e) {\n",
        "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
        "    var targ;\n",
        "    if (!e) {\n",
        "        e = window.event;\n",
        "    }\n",
        "    if (e.target) {\n",
        "        targ = e.target;\n",
        "    } else if (e.srcElement) {\n",
        "        targ = e.srcElement;\n",
        "    }\n",
        "    if (targ.nodeType === 3) {\n",
        "        // defeat Safari bug\n",
        "        targ = targ.parentNode;\n",
        "    }\n",
        "\n",
        "    // pageX,Y are the mouse positions relative to the document\n",
        "    var boundingRect = targ.getBoundingClientRect();\n",
        "    var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n",
        "    var y = e.pageY - (boundingRect.top + document.body.scrollTop);\n",
        "\n",
        "    return { x: x, y: y };\n",
        "};\n",
        "\n",
        "/*\n",
        " * return a copy of an object with only non-object keys\n",
        " * we need this to avoid circular references\n",
        " * http://stackoverflow.com/a/24161582/3208463\n",
        " */\n",
        "function simpleKeys(original) {\n",
        "    return Object.keys(original).reduce(function (obj, key) {\n",
        "        if (typeof original[key] !== 'object') {\n",
        "            obj[key] = original[key];\n",
        "        }\n",
        "        return obj;\n",
        "    }, {});\n",
        "}\n",
        "\n",
        "mpl.figure.prototype.mouse_event = function (event, name) {\n",
        "    var canvas_pos = mpl.findpos(event);\n",
        "\n",
        "    if (name === 'button_press') {\n",
        "        this.canvas.focus();\n",
        "        this.canvas_div.focus();\n",
        "    }\n",
        "\n",
        "    var x = canvas_pos.x * this.ratio;\n",
        "    var y = canvas_pos.y * this.ratio;\n",
        "\n",
        "    this.send_message(name, {\n",
        "        x: x,\n",
        "        y: y,\n",
        "        button: event.button,\n",
        "        step: event.step,\n",
        "        guiEvent: simpleKeys(event),\n",
        "    });\n",
        "\n",
        "    /* This prevents the web browser from automatically changing to\n",
        "     * the text insertion cursor when the button is pressed.  We want\n",
        "     * to control all of the cursor setting manually through the\n",
        "     * 'cursor' event from matplotlib */\n",
        "    event.preventDefault();\n",
        "    return false;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._key_event_extra = function (_event, _name) {\n",
        "    // Handle any extra behaviour associated with a key event\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.key_event = function (event, name) {\n",
        "    // Prevent repeat events\n",
        "    if (name === 'key_press') {\n",
        "        if (event.which === this._key) {\n",
        "            return;\n",
        "        } else {\n",
        "            this._key = event.which;\n",
        "        }\n",
        "    }\n",
        "    if (name === 'key_release') {\n",
        "        this._key = null;\n",
        "    }\n",
        "\n",
        "    var value = '';\n",
        "    if (event.ctrlKey && event.which !== 17) {\n",
        "        value += 'ctrl+';\n",
        "    }\n",
        "    if (event.altKey && event.which !== 18) {\n",
        "        value += 'alt+';\n",
        "    }\n",
        "    if (event.shiftKey && event.which !== 16) {\n",
        "        value += 'shift+';\n",
        "    }\n",
        "\n",
        "    value += 'k';\n",
        "    value += event.which.toString();\n",
        "\n",
        "    this._key_event_extra(event, name);\n",
        "\n",
        "    this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n",
        "    return false;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.toolbar_button_onclick = function (name) {\n",
        "    if (name === 'download') {\n",
        "        this.handle_save(this, null);\n",
        "    } else {\n",
        "        this.send_message('toolbar_button', { name: name });\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n",
        "    this.message.textContent = tooltip;\n",
        "};\n",
        "\n",
        "///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n",
        "// prettier-ignore\n",
        "var _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\n",
        "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
        "\n",
        "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
        "\n",
        "mpl.default_extension = \"png\";/* global mpl */\n",
        "\n",
        "var comm_websocket_adapter = function (comm) {\n",
        "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
        "    // object with the appropriate methods. Currently this is a non binary\n",
        "    // socket, so there is still some room for performance tuning.\n",
        "    var ws = {};\n",
        "\n",
        "    ws.close = function () {\n",
        "        comm.close();\n",
        "    };\n",
        "    ws.send = function (m) {\n",
        "        //console.log('sending', m);\n",
        "        comm.send(m);\n",
        "    };\n",
        "    // Register the callback with on_msg.\n",
        "    comm.on_msg(function (msg) {\n",
        "        //console.log('receiving', msg['content']['data'], msg);\n",
        "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
        "        ws.onmessage(msg['content']['data']);\n",
        "    });\n",
        "    return ws;\n",
        "};\n",
        "\n",
        "mpl.mpl_figure_comm = function (comm, msg) {\n",
        "    // This is the function which gets called when the mpl process\n",
        "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
        "\n",
        "    var id = msg.content.data.id;\n",
        "    // Get hold of the div created by the display call when the Comm\n",
        "    // socket was opened in Python.\n",
        "    var element = document.getElementById(id);\n",
        "    var ws_proxy = comm_websocket_adapter(comm);\n",
        "\n",
        "    function ondownload(figure, _format) {\n",
        "        window.open(figure.canvas.toDataURL());\n",
        "    }\n",
        "\n",
        "    var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n",
        "\n",
        "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
        "    // web socket which is closed, not our websocket->open comm proxy.\n",
        "    ws_proxy.onopen();\n",
        "\n",
        "    fig.parent_element = element;\n",
        "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
        "    if (!fig.cell_info) {\n",
        "        console.error('Failed to find cell for figure', id, fig);\n",
        "        return;\n",
        "    }\n",
        "    fig.cell_info[0].output_area.element.on(\n",
        "        'cleared',\n",
        "        { fig: fig },\n",
        "        fig._remove_fig_handler\n",
        "    );\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_close = function (fig, msg) {\n",
        "    var width = fig.canvas.width / fig.ratio;\n",
        "    fig.cell_info[0].output_area.element.off(\n",
        "        'cleared',\n",
        "        fig._remove_fig_handler\n",
        "    );\n",
        "    fig.resizeObserverInstance.unobserve(fig.canvas_div);\n",
        "\n",
        "    // Update the output cell to use the data from the current canvas.\n",
        "    fig.push_to_output();\n",
        "    var dataURL = fig.canvas.toDataURL();\n",
        "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
        "    // the notebook keyboard shortcuts fail.\n",
        "    IPython.keyboard_manager.enable();\n",
        "    fig.parent_element.innerHTML =\n",
        "        '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
        "    fig.close_ws(fig, msg);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.close_ws = function (fig, msg) {\n",
        "    fig.send_message('closing', msg);\n",
        "    // fig.ws.close()\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.push_to_output = function (_remove_interactive) {\n",
        "    // Turn the data on the canvas into data in the output cell.\n",
        "    var width = this.canvas.width / this.ratio;\n",
        "    var dataURL = this.canvas.toDataURL();\n",
        "    this.cell_info[1]['text/html'] =\n",
        "        '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.updated_canvas_event = function () {\n",
        "    // Tell IPython that the notebook contents must change.\n",
        "    IPython.notebook.set_dirty(true);\n",
        "    this.send_message('ack', {});\n",
        "    var fig = this;\n",
        "    // Wait a second, then push the new image to the DOM so\n",
        "    // that it is saved nicely (might be nice to debounce this).\n",
        "    setTimeout(function () {\n",
        "        fig.push_to_output();\n",
        "    }, 1000);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._init_toolbar = function () {\n",
        "    var fig = this;\n",
        "\n",
        "    var toolbar = document.createElement('div');\n",
        "    toolbar.classList = 'btn-toolbar';\n",
        "    this.root.appendChild(toolbar);\n",
        "\n",
        "    function on_click_closure(name) {\n",
        "        return function (_event) {\n",
        "            return fig.toolbar_button_onclick(name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    function on_mouseover_closure(tooltip) {\n",
        "        return function (event) {\n",
        "            if (!event.currentTarget.disabled) {\n",
        "                return fig.toolbar_button_onmouseover(tooltip);\n",
        "            }\n",
        "        };\n",
        "    }\n",
        "\n",
        "    fig.buttons = {};\n",
        "    var buttonGroup = document.createElement('div');\n",
        "    buttonGroup.classList = 'btn-group';\n",
        "    var button;\n",
        "    for (var toolbar_ind in mpl.toolbar_items) {\n",
        "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
        "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
        "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
        "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
        "\n",
        "        if (!name) {\n",
        "            /* Instead of a spacer, we start a new button group. */\n",
        "            if (buttonGroup.hasChildNodes()) {\n",
        "                toolbar.appendChild(buttonGroup);\n",
        "            }\n",
        "            buttonGroup = document.createElement('div');\n",
        "            buttonGroup.classList = 'btn-group';\n",
        "            continue;\n",
        "        }\n",
        "\n",
        "        button = fig.buttons[name] = document.createElement('button');\n",
        "        button.classList = 'btn btn-default';\n",
        "        button.href = '#';\n",
        "        button.title = name;\n",
        "        button.innerHTML = '<i class=\"fa ' + image + ' fa-lg\"></i>';\n",
        "        button.addEventListener('click', on_click_closure(method_name));\n",
        "        button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
        "        buttonGroup.appendChild(button);\n",
        "    }\n",
        "\n",
        "    if (buttonGroup.hasChildNodes()) {\n",
        "        toolbar.appendChild(buttonGroup);\n",
        "    }\n",
        "\n",
        "    // Add the status bar.\n",
        "    var status_bar = document.createElement('span');\n",
        "    status_bar.classList = 'mpl-message pull-right';\n",
        "    toolbar.appendChild(status_bar);\n",
        "    this.message = status_bar;\n",
        "\n",
        "    // Add the close button to the window.\n",
        "    var buttongrp = document.createElement('div');\n",
        "    buttongrp.classList = 'btn-group inline pull-right';\n",
        "    button = document.createElement('button');\n",
        "    button.classList = 'btn btn-mini btn-primary';\n",
        "    button.href = '#';\n",
        "    button.title = 'Stop Interaction';\n",
        "    button.innerHTML = '<i class=\"fa fa-power-off icon-remove icon-large\"></i>';\n",
        "    button.addEventListener('click', function (_evt) {\n",
        "        fig.handle_close(fig, {});\n",
        "    });\n",
        "    button.addEventListener(\n",
        "        'mouseover',\n",
        "        on_mouseover_closure('Stop Interaction')\n",
        "    );\n",
        "    buttongrp.appendChild(button);\n",
        "    var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n",
        "    titlebar.insertBefore(buttongrp, titlebar.firstChild);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._remove_fig_handler = function (event) {\n",
        "    var fig = event.data.fig;\n",
        "    if (event.target !== this) {\n",
        "        // Ignore bubbled events from children.\n",
        "        return;\n",
        "    }\n",
        "    fig.close_ws(fig, {});\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._root_extra_style = function (el) {\n",
        "    el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._canvas_extra_style = function (el) {\n",
        "    // this is important to make the div 'focusable\n",
        "    el.setAttribute('tabindex', 0);\n",
        "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
        "    // off when our div gets focus\n",
        "\n",
        "    // location in version 3\n",
        "    if (IPython.notebook.keyboard_manager) {\n",
        "        IPython.notebook.keyboard_manager.register_events(el);\n",
        "    } else {\n",
        "        // location in version 2\n",
        "        IPython.keyboard_manager.register_events(el);\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._key_event_extra = function (event, _name) {\n",
        "    var manager = IPython.notebook.keyboard_manager;\n",
        "    if (!manager) {\n",
        "        manager = IPython.keyboard_manager;\n",
        "    }\n",
        "\n",
        "    // Check for shift+enter\n",
        "    if (event.shiftKey && event.which === 13) {\n",
        "        this.canvas_div.blur();\n",
        "        // select the cell after this one\n",
        "        var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n",
        "        IPython.notebook.select(index + 1);\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
        "    fig.ondownload(fig, null);\n",
        "};\n",
        "\n",
        "mpl.find_output_cell = function (html_output) {\n",
        "    // Return the cell and output element which can be found *uniquely* in the notebook.\n",
        "    // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
        "    // IPython event is triggered only after the cells have been serialised, which for\n",
        "    // our purposes (turning an active figure into a static one), is too late.\n",
        "    var cells = IPython.notebook.get_cells();\n",
        "    var ncells = cells.length;\n",
        "    for (var i = 0; i < ncells; i++) {\n",
        "        var cell = cells[i];\n",
        "        if (cell.cell_type === 'code') {\n",
        "            for (var j = 0; j < cell.output_area.outputs.length; j++) {\n",
        "                var data = cell.output_area.outputs[j];\n",
        "                if (data.data) {\n",
        "                    // IPython >= 3 moved mimebundle to data attribute of output\n",
        "                    data = data.data;\n",
        "                }\n",
        "                if (data['text/html'] === html_output) {\n",
        "                    return [cell, data, j];\n",
        "                }\n",
        "            }\n",
        "        }\n",
        "    }\n",
        "};\n",
        "\n",
        "// Register the function which deals with the matplotlib target/channel.\n",
        "// The kernel may be null if the page has been refreshed.\n",
        "if (IPython.notebook.kernel !== null) {\n",
        "    IPython.notebook.kernel.comm_manager.register_target(\n",
        "        'matplotlib',\n",
        "        mpl.mpl_figure_comm\n",
        "    );\n",
        "}\n"
       ],
       "text/plain": [
        "<IPython.core.display.Javascript object>"
       ]
      },
      "metadata": {},
      "output_type": "display_data"
     },
     {
      "data": {
       "text/html": [
        "<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4QAAAGQCAYAAAD2lq6fAAAgAElEQVR4nOzdeVxUddsG8N/MsIoLCriAgqZo4Rao4EKCG4ooCu6mWbZabmWZpQnuFYmaLZa+6WMmas+jaZZFFppp2pO5oFmZWuIggsoi6yznev9Q5nGaAUHhHGa4vp/P7/M+zTln5sa3m+7LOYsAERERERER1UpC6QKIiIiIiIhIGQyEREREREREtRQDIRERERERUS3FQEhERERERFRLMRASERERERHVUgyEREREREREtRQDIRERERERUS3FQEhERERERFRLMRASERERERHVUgyEREREREREtRQDIRERERERUS3FQEhERERERFRLMRASERERERHVUgyENsRoNCIpKQkJCQlKl0JERERERHaAgdAGSJKErVu3IiAgAEIITJo0qcx9S0pKkJCQgNGjR2PGjBmIiIhAfHw8dDqdfAUTEREREZFNYCC0AampqTh79izWrVtXbiDU6XQYMGAAQkJCUFxcDAAoKChAYGAgIiMjYTAYZKyaiIiIiIhqOgZCG5KSklJuIIyPj4cQAsnJyWav7969G0IIrFixQoYqiYiIiIjIVjAQ2pDyAmFxcTHc3d3h5uZm8U2gTqeDq6srfHx8YDQaZaqWiIiIiIhqOgZCG1JeIDxw4ACEEAgODrZ6bJcuXSCEwJEjR6xuLy4uRm5urmllZ2fj3LlzyMnJMXudi4uLi4uLi4uLq7pXTk4O0tLS+GWGDBgIbUh5gXDNmjUQQiAmJsbqsdHR0RBCYO3atVa3x8XFQQjBxcXFxcXFxcXFVWNWWlpaVY7TZAUDoQ0pLxAuXboUQghMmDDB6rHjxo2DEAKvv/661e3//Ibw4sWLpiZU+m+IuLi4uLi4uLi4atdKS0uDEAI5OTlVOU6TFQyENqS8QJiYmFhuIJwwYQKEEFi6dGmFPis3NxdCCOTm5t5LyURERERElcZZVD4MhDakvECYlJQEIQRiY2OtHhsbGwshyj5l9J/YhERERESkFM6i8mEgtCHlBcIjR45ACIEePXpYPbZ79+4QouybyvwTm5CIiIiIlMJZVD4MhDakvEBoMBjg5eWF+vXrQ5Iki21169aFl5dXhe/UxCYkIiIiIqVwFpUPA6ENudOD6efPnw8hBPbv32/2enJyMoQQmD9/foU/i01IRERERErhLCof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2D5+/PgyH/1AltiERERki4y5ubj+8MPQCoHrkyYh5fPP0aJFC9SrVw/r16+3eO4vEdVMnEXlYzeBsGnTpsjOzgYAxMTEWGx/5ZVX4OvrK3dZNotNSEREtqxg40aku7kho00bXD9+HI888giEEBg+fDiuXLmidHlEdAecReVjN4Gwd+/epv9tLRAOHz4cLi4ucpZk09iERERk6/R//IHrEydCKioCAPznP/+Bp6cnvLy88NlnnylcHRGVh7OofOwmEI4ZMwZXr14FALObygDAnj17oNFo0LFjRyVKs0lsQiIisie6U6dwbdgwXD55EtHR0RBC4NFHH+V/54hqKM6i8rGbQHj06FGEhIRg165dGDhwIP7880/s378f06ZNg6OjI9RqNT788EOly7QZbEIiIrInxfv343KTJrjcuDEKv/wSH330EerWrYtWrVrhhx9+ULo8IvoHzqLysZtACADffvstfH19oVKpoFaroVaroVKp4OTkhAULFihdnk1hExIRkb0xZGTg6qBB0AqBnBdewLlff0XPnj2hVqsxb9486HQ6pUskols4i8rHrgIhAOj1enz99ddYvnw5li1bho8//hgZGRlKl2Vz2IRERGSPJKMRNxITcblJExjS0qDX67Fo0SJoNBp069YNv//+u9IlEhE4i8rJ7gKhNZmZmTh16pTSZdgUNiEREdkzY37+zf97/ToKPvkERw4fhr+/P+rUqYMPPviAj6cgUhhnUfnUikAIAJs3b8bnn3+udBk2g01IRES1Qf6aNTefWThuHG5otXjqqacghMDQoUP5eIoaqqSkBHPnzsV9990HR0dHCCGQkpKidFkVtn79egghsH79eqVLqdE4i8rHbgLhY489VuZ69NFH0b17d/j4+Chdps1gExIRUW1RsHkz0uvXR0arVig5fBg7d+6Ep6cnGjdujC+++ELp8ugflixZAiEEwsPDMXfuXMTFxeHChQtKl2Vy4cIFCCEwadIkq9sZCCuGs6h87CYQqlSqO6727dsrXabNYBMSEVFtoj93DpkhIdA6O8Nw6RIuX76MwYMHQwiBZ599FgUFBUqXSLf06tULdevWrbE3AbpTIMzJycGZM2eQk5Mjb2E2hrOofOwmEO7bt6/MlZycjOeeew7Xr19XukybwSYkIqLaRtLpUJScfPN/GwzQX76Md999Fy4uLrj//vtx9OhR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FixYoOHDh6tnz55KTExUx44dqwKomSkxMbHef8fGjRs1atSoqmNcccUVys7O1rFjx6rt5/V6tWzZMg0ZMkRmprFjx+oPf/iD/va3v2nevHn64Q9/qOTkZJmZMjMz610HACD8EQgBAGHjueee06uvvlrttV/84hcyM40cObLa6++8845WrFgR8DhmptGjR9d6Hr/fr0WLFqlNmza69tpr9dprr6msrKzqvZ07d2rcuHEyM3Xp0qVBf0tpaamSkpJkZrrtttuC7vvEE09o0KBB8ng8Nd7bvHkzgRAAUCsCIQAgbGzcuLHGaxMnTpSZ6bHHHqv2+p49e7R///6AxzEz3XrrrbWe5+GHH64KaqWlpQH38fv9mjJliqKjo+v+B3zFK6+8IjNTRESEDhw4UOt+//Iv/6IXX3wx4Ht5eXkEQgBArQiEAICwVVlZqbi4OJmZtm3bVud1wQLha6+9JjNThw4ddPLkyaDHKSoqUufOnRv8O0W/369rrrlGZqYHHngg4D5//vOflZCQEPDTQYlACAAIjkAIAAhbO3bskJkpLi5OFRUVdV4XLBCOHDlSZqZZs2bV6VgvvfRSjXPv2rVL06dP180336yePXtqzJgxysvLC7j+xRdflJmpffv2On78eI33Z8+erZ/85Ce1np9ACAAIhkAIAAhbixYtkplp0qRJ9VpXWyA8ffq0IiIiZGZas2ZNg2p69913NWLECJ06dUrS3z9FHDhwoNq2bas//vGPNfavrKzUgAEDZGb693//92rvnT17Vh07dtTRo0drPR+BEAAQDIEQABC2br75ZpmZnnnmmXqtqy0Q7t69u+rOn2+++Wat699//33l5eVV23bu3KmKigr17du3xm8d/+M//kNmVutdT//zP/9TZqaOHTtW3SlVkp566ilNnTo16N9CIAQABEMgBACEpeLiYrVr105mpo8//rhea2sLhB988EFVINy6dWut648cOaI1a9ZU7Xvffffp8OHD2rp1q8xM48aN01133VW13X777Ro0aJAmT54c8Hgej0e9e/eWmemJJ56QJPl8Pl155ZV69913g/4tBEIAQDAEQgBAWNqyZYvMTH369Kn32toC4dGjR6tC3vPPP3/Z4/To0UNmptzcXEnSsmXLZGb67LPP6l3TpbXdu3dXSUmJNm7cqCFDhlx2HYEQABAMgRAAEJZ+/OMfV306V1/Bbipz6dmA99xzz2WP079/f5lZ1Q1jsrOzq/27PoqLi9WtWzeZmZ5++mndcccdWrly5WXXEQgBAMEQCAEAYWno0KEyM/3617+u99pggfC5556ruuvnkSNHgh7nq4Fw3bp1MjN9//vfD7j/+++/H/TTw0s3yenWrZs6d+6sixcvXvZvIRACAIIhEAIAwk5RUZEiIyNlZpd9VmAgwQKhz+fT1KlTZWZKSUnRmTNnaj3OVwPhiRMn1LZtW0VFRel3v/tdtX337duniRMnBq3r0l1FzUxz5syp099CIAQABEMgBACEneXLl1d9ktYQwQKhJHm9Xv30pz9Vu3bt1LdvX61Zs6ba3T/Lysr00ksvKTIyUl27dtUnn3xS9V5WVpbMTJGRkbrrrru0cOFCzZw5U4mJidq3b99la1uwYIEiIiL06aef1ulvIRACAIIhEAIAwsaOHTv0ve99T+3bt6+6+cvDDz+s9evX1+s4lwuElxw7dkxPPPGEbrnlFvXq1Ut9+vTR4MGDlZycrIkTJ+rZZ59VUVFRjXWrVq3Stddeq3bt2qlPnz665557dPDgwTrVdurUKd111111/lsIhACAYAiEAAB8RV0DYUtAIAQABEMgBADgKwiEAIDWgkAIAMBXmJkGDRokv9/vdimNtnHjRgIhAKBWBEIAAL5izJgxGjNmjO677z4tWLBAv/zlL90uqV4OHjyoBQsWaP78+frmN7+pMWPGaO3atW6XBQBohgiEAAAAANBKEQgBAAAAoJUiEAIAAABAK0UgBAAAAIBWikAIAAAAAK0UgRAAAAAAWikCIQAAAAC0Uv8Hvv/qgijVnYgAAAAASUVORK5CYII=\" width=\"900\">"
       ],
       "text/plain": [
        "<IPython.core.display.HTML object>"
       ]
      },
      "metadata": {},
      "output_type": "display_data"
     }
    ],
    "source": [
     "if True:\n",
     "    fig=plt.figure(figsize=(9,4))\n",
     "    fig.subplots_adjust(bottom=0.15, left=0.15, top = 0.95, right=0.9,wspace=0.0,hspace=0.0)\n",
     "    sub = fig.add_subplot(1,1,1)\n",
     "    \n",
     "    X=np.logspace(-2,1,500)\n",
     "    Y=[]\n",
     "    for t in X:\n",
     "        Y.append(axionMassInterpolation.ma2(t,1e12)**0.5*1e15)\n",
     "    sub.plot(X,Y,linestyle='-',linewidth=1,alpha=1,c='xkcd:black',label='interpolation')\n",
     "    \n",
     "    Y=[]\n",
     "    for t in X:\n",
     "        Y.append(axionMassFunction.ma2(t,1e12)**0.5*1e15)\n",
     "    sub.plot(X,Y,linestyle='--',linewidth=1,alpha=1,c='xkcd:red',label='function')\n",
     "    \n",
     "    sub.set_xlabel(r'$T ~[{\\rm GeV}]$')\n",
     "    sub.xaxis.set_label_coords(0.5, -0.1) \n",
     "    sub.set_ylabel(r'$ m_a(T) ~[{\\rm \\mu eV}]$')\n",
     "    sub.yaxis.set_label_coords(-0.1,0.5) \n",
     "   \n",
     "    sub.legend(bbox_to_anchor=(1, 0.5),borderaxespad=0., \n",
     "               borderpad=0.05,ncol=1,loc='lower right',fontsize=14,framealpha=0)\n",
     "\n",
     "    #set major ticks\n",
     "    _M_xticks=[ 10.**i for i in range(-2,2) ]\n",
     "    _M_yticks=[ 10.**i for i in range(-7,2) ]\n",
     "\n",
     "    #set major ticks that will not have a label\n",
     "    _M_xticks_exception=[]\n",
     "    _M_yticks_exception=[]\n",
     "\n",
     "    _m_xticks=[j*10.**i for i in range(-2,2) for j in range(1,10)]\n",
     "    _m_yticks=[]  \n",
     "    ft=FT(_M_xticks,_M_yticks,\n",
     "                 _M_xticks_exception,_M_yticks_exception,\n",
     "                 _m_xticks,_m_yticks,\n",
     "                 xmin=1e-2,xmax=1e1,ymin=1e-7,ymax=1e1,xscale='log',yscale='log')\n",
     "\n",
     "    ft.format_ticks(plt,sub)    \n",
     "\n",
     "#     fig.savefig('axion_mass.pdf',bbox_inches='tight')\n",
     "\n",
     "    fig.show()"
    ]
   },
   {
    "cell_type": "code",
    "execution_count": null,
    "metadata": {},
    "outputs": [],
    "source": []
   }
  ],
  "metadata": {
   "kernelspec": {
    "display_name": "Python 3",
    "language": "python",
    "name": "python3"
   },
   "language_info": {
    "codemirror_mode": {
     "name": "ipython",
     "version": 3
    },
    "file_extension": ".py",
    "mimetype": "text/x-python",
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
    "version": "3.9.5"
   }
  },
  "nbformat": 4,
  "nbformat_minor": 2
 }
diff --git a/UserSpace/JupyterNotebooks/Cosmo.ipynb b/UserSpace/JupyterNotebooks/Cosmo.ipynb
index 86d46cf..dd166c6 100755
--- a/UserSpace/JupyterNotebooks/Cosmo.ipynb
+++ b/UserSpace/JupyterNotebooks/Cosmo.ipynb
@@ -1,5058 +1,5066 @@
 {
  "cells": [
   {
    "cell_type": "code",
    "execution_count": 1,
    "metadata": {},
    "outputs": [],
    "source": [
     "import numpy as np#you usually need numpy\n",
     "\n",
     "#---these are for plots---#\n",
     "import matplotlib\n",
     "matplotlib.use('nbAgg')\n",
     "import matplotlib.pyplot as plt\n",
     "\n",
     "plt.rcParams['font.size']=16\n",
     "plt.rcParams['font.family']='dejavu sans'\n",
     "\n",
     "plt.rcParams['mathtext.fontset']='stix'\n",
     "plt.rcParams['mathtext.rm']='custom'\n",
     "plt.rcParams['mathtext.it']='stix:italic'\n",
     "plt.rcParams['mathtext.bf']='stix:bold'\n",
     "#-------------------------#"
    ]
   },
   {
    "cell_type": "code",
    "execution_count": 2,
    "metadata": {},
    "outputs": [],
    "source": [
     "#load the module\n",
     "from sys import path as sysPath\n",
-    "from os import path as osPath\n",
-    "sysPath.append(osPath.join(osPath.dirname('./'), '../../src'))\n",
+    "sysPath.append('../../src')\n",
     "\n",
     "import interfacePy.Cosmo as Cosmo\n",
     "from interfacePy.FT import FT #easy tick formatting"
    ]
   },
   {
    "cell_type": "code",
    "execution_count": 3,
    "metadata": {},
+   "outputs": [],
+   "source": [
+    "cosmo=Cosmo()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "metadata": {},
    "outputs": [
     {
      "data": {
       "application/javascript": [
        "/* Put everything inside the global mpl namespace */\n",
        "/* global mpl */\n",
        "window.mpl = {};\n",
        "\n",
        "mpl.get_websocket_type = function () {\n",
        "    if (typeof WebSocket !== 'undefined') {\n",
        "        return WebSocket;\n",
        "    } else if (typeof MozWebSocket !== 'undefined') {\n",
        "        return MozWebSocket;\n",
        "    } else {\n",
        "        alert(\n",
        "            'Your browser does not have WebSocket support. ' +\n",
        "                'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
        "                'Firefox 4 and 5 are also supported but you ' +\n",
        "                'have to enable WebSockets in about:config.'\n",
        "        );\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n",
        "    this.id = figure_id;\n",
        "\n",
        "    this.ws = websocket;\n",
        "\n",
        "    this.supports_binary = this.ws.binaryType !== undefined;\n",
        "\n",
        "    if (!this.supports_binary) {\n",
        "        var warnings = document.getElementById('mpl-warnings');\n",
        "        if (warnings) {\n",
        "            warnings.style.display = 'block';\n",
        "            warnings.textContent =\n",
        "                'This browser does not support binary websocket messages. ' +\n",
        "                'Performance may be slow.';\n",
        "        }\n",
        "    }\n",
        "\n",
        "    this.imageObj = new Image();\n",
        "\n",
        "    this.context = undefined;\n",
        "    this.message = undefined;\n",
        "    this.canvas = undefined;\n",
        "    this.rubberband_canvas = undefined;\n",
        "    this.rubberband_context = undefined;\n",
        "    this.format_dropdown = undefined;\n",
        "\n",
        "    this.image_mode = 'full';\n",
        "\n",
        "    this.root = document.createElement('div');\n",
        "    this.root.setAttribute('style', 'display: inline-block');\n",
        "    this._root_extra_style(this.root);\n",
        "\n",
        "    parent_element.appendChild(this.root);\n",
        "\n",
        "    this._init_header(this);\n",
        "    this._init_canvas(this);\n",
        "    this._init_toolbar(this);\n",
        "\n",
        "    var fig = this;\n",
        "\n",
        "    this.waiting = false;\n",
        "\n",
        "    this.ws.onopen = function () {\n",
        "        fig.send_message('supports_binary', { value: fig.supports_binary });\n",
        "        fig.send_message('send_image_mode', {});\n",
        "        if (fig.ratio !== 1) {\n",
        "            fig.send_message('set_dpi_ratio', { dpi_ratio: fig.ratio });\n",
        "        }\n",
        "        fig.send_message('refresh', {});\n",
        "    };\n",
        "\n",
        "    this.imageObj.onload = function () {\n",
        "        if (fig.image_mode === 'full') {\n",
        "            // Full images could contain transparency (where diff images\n",
        "            // almost always do), so we need to clear the canvas so that\n",
        "            // there is no ghosting.\n",
        "            fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
        "        }\n",
        "        fig.context.drawImage(fig.imageObj, 0, 0);\n",
        "    };\n",
        "\n",
        "    this.imageObj.onunload = function () {\n",
        "        fig.ws.close();\n",
        "    };\n",
        "\n",
        "    this.ws.onmessage = this._make_on_message_function(this);\n",
        "\n",
        "    this.ondownload = ondownload;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._init_header = function () {\n",
        "    var titlebar = document.createElement('div');\n",
        "    titlebar.classList =\n",
        "        'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n",
        "    var titletext = document.createElement('div');\n",
        "    titletext.classList = 'ui-dialog-title';\n",
        "    titletext.setAttribute(\n",
        "        'style',\n",
        "        'width: 100%; text-align: center; padding: 3px;'\n",
        "    );\n",
        "    titlebar.appendChild(titletext);\n",
        "    this.root.appendChild(titlebar);\n",
        "    this.header = titletext;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n",
        "\n",
        "mpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n",
        "\n",
        "mpl.figure.prototype._init_canvas = function () {\n",
        "    var fig = this;\n",
        "\n",
        "    var canvas_div = (this.canvas_div = document.createElement('div'));\n",
        "    canvas_div.setAttribute(\n",
        "        'style',\n",
        "        'border: 1px solid #ddd;' +\n",
        "            'box-sizing: content-box;' +\n",
        "            'clear: both;' +\n",
        "            'min-height: 1px;' +\n",
        "            'min-width: 1px;' +\n",
        "            'outline: 0;' +\n",
        "            'overflow: hidden;' +\n",
        "            'position: relative;' +\n",
        "            'resize: both;'\n",
        "    );\n",
        "\n",
        "    function on_keyboard_event_closure(name) {\n",
        "        return function (event) {\n",
        "            return fig.key_event(event, name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    canvas_div.addEventListener(\n",
        "        'keydown',\n",
        "        on_keyboard_event_closure('key_press')\n",
        "    );\n",
        "    canvas_div.addEventListener(\n",
        "        'keyup',\n",
        "        on_keyboard_event_closure('key_release')\n",
        "    );\n",
        "\n",
        "    this._canvas_extra_style(canvas_div);\n",
        "    this.root.appendChild(canvas_div);\n",
        "\n",
        "    var canvas = (this.canvas = document.createElement('canvas'));\n",
        "    canvas.classList.add('mpl-canvas');\n",
        "    canvas.setAttribute('style', 'box-sizing: content-box;');\n",
        "\n",
        "    this.context = canvas.getContext('2d');\n",
        "\n",
        "    var backingStore =\n",
        "        this.context.backingStorePixelRatio ||\n",
        "        this.context.webkitBackingStorePixelRatio ||\n",
        "        this.context.mozBackingStorePixelRatio ||\n",
        "        this.context.msBackingStorePixelRatio ||\n",
        "        this.context.oBackingStorePixelRatio ||\n",
        "        this.context.backingStorePixelRatio ||\n",
        "        1;\n",
        "\n",
        "    this.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
        "\n",
        "    var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n",
        "        'canvas'\n",
        "    ));\n",
        "    rubberband_canvas.setAttribute(\n",
        "        'style',\n",
        "        'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n",
        "    );\n",
        "\n",
        "    // Apply a ponyfill if ResizeObserver is not implemented by browser.\n",
        "    if (this.ResizeObserver === undefined) {\n",
        "        if (window.ResizeObserver !== undefined) {\n",
        "            this.ResizeObserver = window.ResizeObserver;\n",
        "        } else {\n",
        "            var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n",
        "            this.ResizeObserver = obs.ResizeObserver;\n",
        "        }\n",
        "    }\n",
        "\n",
        "    this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n",
        "        var nentries = entries.length;\n",
        "        for (var i = 0; i < nentries; i++) {\n",
        "            var entry = entries[i];\n",
        "            var width, height;\n",
        "            if (entry.contentBoxSize) {\n",
        "                if (entry.contentBoxSize instanceof Array) {\n",
        "                    // Chrome 84 implements new version of spec.\n",
        "                    width = entry.contentBoxSize[0].inlineSize;\n",
        "                    height = entry.contentBoxSize[0].blockSize;\n",
        "                } else {\n",
        "                    // Firefox implements old version of spec.\n",
        "                    width = entry.contentBoxSize.inlineSize;\n",
        "                    height = entry.contentBoxSize.blockSize;\n",
        "                }\n",
        "            } else {\n",
        "                // Chrome <84 implements even older version of spec.\n",
        "                width = entry.contentRect.width;\n",
        "                height = entry.contentRect.height;\n",
        "            }\n",
        "\n",
        "            // Keep the size of the canvas and rubber band canvas in sync with\n",
        "            // the canvas container.\n",
        "            if (entry.devicePixelContentBoxSize) {\n",
        "                // Chrome 84 implements new version of spec.\n",
        "                canvas.setAttribute(\n",
        "                    'width',\n",
        "                    entry.devicePixelContentBoxSize[0].inlineSize\n",
        "                );\n",
        "                canvas.setAttribute(\n",
        "                    'height',\n",
        "                    entry.devicePixelContentBoxSize[0].blockSize\n",
        "                );\n",
        "            } else {\n",
        "                canvas.setAttribute('width', width * fig.ratio);\n",
        "                canvas.setAttribute('height', height * fig.ratio);\n",
        "            }\n",
        "            canvas.setAttribute(\n",
        "                'style',\n",
        "                'width: ' + width + 'px; height: ' + height + 'px;'\n",
        "            );\n",
        "\n",
        "            rubberband_canvas.setAttribute('width', width);\n",
        "            rubberband_canvas.setAttribute('height', height);\n",
        "\n",
        "            // And update the size in Python. We ignore the initial 0/0 size\n",
        "            // that occurs as the element is placed into the DOM, which should\n",
        "            // otherwise not happen due to the minimum size styling.\n",
        "            if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n",
        "                fig.request_resize(width, height);\n",
        "            }\n",
        "        }\n",
        "    });\n",
        "    this.resizeObserverInstance.observe(canvas_div);\n",
        "\n",
        "    function on_mouse_event_closure(name) {\n",
        "        return function (event) {\n",
        "            return fig.mouse_event(event, name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mousedown',\n",
        "        on_mouse_event_closure('button_press')\n",
        "    );\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mouseup',\n",
        "        on_mouse_event_closure('button_release')\n",
        "    );\n",
        "    // Throttle sequential mouse events to 1 every 20ms.\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mousemove',\n",
        "        on_mouse_event_closure('motion_notify')\n",
        "    );\n",
        "\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mouseenter',\n",
        "        on_mouse_event_closure('figure_enter')\n",
        "    );\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mouseleave',\n",
        "        on_mouse_event_closure('figure_leave')\n",
        "    );\n",
        "\n",
        "    canvas_div.addEventListener('wheel', function (event) {\n",
        "        if (event.deltaY < 0) {\n",
        "            event.step = 1;\n",
        "        } else {\n",
        "            event.step = -1;\n",
        "        }\n",
        "        on_mouse_event_closure('scroll')(event);\n",
        "    });\n",
        "\n",
        "    canvas_div.appendChild(canvas);\n",
        "    canvas_div.appendChild(rubberband_canvas);\n",
        "\n",
        "    this.rubberband_context = rubberband_canvas.getContext('2d');\n",
        "    this.rubberband_context.strokeStyle = '#000000';\n",
        "\n",
        "    this._resize_canvas = function (width, height, forward) {\n",
        "        if (forward) {\n",
        "            canvas_div.style.width = width + 'px';\n",
        "            canvas_div.style.height = height + 'px';\n",
        "        }\n",
        "    };\n",
        "\n",
        "    // Disable right mouse context menu.\n",
        "    this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n",
        "        event.preventDefault();\n",
        "        return false;\n",
        "    });\n",
        "\n",
        "    function set_focus() {\n",
        "        canvas.focus();\n",
        "        canvas_div.focus();\n",
        "    }\n",
        "\n",
        "    window.setTimeout(set_focus, 100);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._init_toolbar = function () {\n",
        "    var fig = this;\n",
        "\n",
        "    var toolbar = document.createElement('div');\n",
        "    toolbar.classList = 'mpl-toolbar';\n",
        "    this.root.appendChild(toolbar);\n",
        "\n",
        "    function on_click_closure(name) {\n",
        "        return function (_event) {\n",
        "            return fig.toolbar_button_onclick(name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    function on_mouseover_closure(tooltip) {\n",
        "        return function (event) {\n",
        "            if (!event.currentTarget.disabled) {\n",
        "                return fig.toolbar_button_onmouseover(tooltip);\n",
        "            }\n",
        "        };\n",
        "    }\n",
        "\n",
        "    fig.buttons = {};\n",
        "    var buttonGroup = document.createElement('div');\n",
        "    buttonGroup.classList = 'mpl-button-group';\n",
        "    for (var toolbar_ind in mpl.toolbar_items) {\n",
        "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
        "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
        "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
        "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
        "\n",
        "        if (!name) {\n",
        "            /* Instead of a spacer, we start a new button group. */\n",
        "            if (buttonGroup.hasChildNodes()) {\n",
        "                toolbar.appendChild(buttonGroup);\n",
        "            }\n",
        "            buttonGroup = document.createElement('div');\n",
        "            buttonGroup.classList = 'mpl-button-group';\n",
        "            continue;\n",
        "        }\n",
        "\n",
        "        var button = (fig.buttons[name] = document.createElement('button'));\n",
        "        button.classList = 'mpl-widget';\n",
        "        button.setAttribute('role', 'button');\n",
        "        button.setAttribute('aria-disabled', 'false');\n",
        "        button.addEventListener('click', on_click_closure(method_name));\n",
        "        button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
        "\n",
        "        var icon_img = document.createElement('img');\n",
        "        icon_img.src = '_images/' + image + '.png';\n",
        "        icon_img.srcset = '_images/' + image + '_large.png 2x';\n",
        "        icon_img.alt = tooltip;\n",
        "        button.appendChild(icon_img);\n",
        "\n",
        "        buttonGroup.appendChild(button);\n",
        "    }\n",
        "\n",
        "    if (buttonGroup.hasChildNodes()) {\n",
        "        toolbar.appendChild(buttonGroup);\n",
        "    }\n",
        "\n",
        "    var fmt_picker = document.createElement('select');\n",
        "    fmt_picker.classList = 'mpl-widget';\n",
        "    toolbar.appendChild(fmt_picker);\n",
        "    this.format_dropdown = fmt_picker;\n",
        "\n",
        "    for (var ind in mpl.extensions) {\n",
        "        var fmt = mpl.extensions[ind];\n",
        "        var option = document.createElement('option');\n",
        "        option.selected = fmt === mpl.default_extension;\n",
        "        option.innerHTML = fmt;\n",
        "        fmt_picker.appendChild(option);\n",
        "    }\n",
        "\n",
        "    var status_bar = document.createElement('span');\n",
        "    status_bar.classList = 'mpl-message';\n",
        "    toolbar.appendChild(status_bar);\n",
        "    this.message = status_bar;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n",
        "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
        "    // which will in turn request a refresh of the image.\n",
        "    this.send_message('resize', { width: x_pixels, height: y_pixels });\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.send_message = function (type, properties) {\n",
        "    properties['type'] = type;\n",
        "    properties['figure_id'] = this.id;\n",
        "    this.ws.send(JSON.stringify(properties));\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.send_draw_message = function () {\n",
        "    if (!this.waiting) {\n",
        "        this.waiting = true;\n",
        "        this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
        "    var format_dropdown = fig.format_dropdown;\n",
        "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
        "    fig.ondownload(fig, format);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_resize = function (fig, msg) {\n",
        "    var size = msg['size'];\n",
        "    if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n",
        "        fig._resize_canvas(size[0], size[1], msg['forward']);\n",
        "        fig.send_message('refresh', {});\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_rubberband = function (fig, msg) {\n",
        "    var x0 = msg['x0'] / fig.ratio;\n",
        "    var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n",
        "    var x1 = msg['x1'] / fig.ratio;\n",
        "    var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n",
        "    x0 = Math.floor(x0) + 0.5;\n",
        "    y0 = Math.floor(y0) + 0.5;\n",
        "    x1 = Math.floor(x1) + 0.5;\n",
        "    y1 = Math.floor(y1) + 0.5;\n",
        "    var min_x = Math.min(x0, x1);\n",
        "    var min_y = Math.min(y0, y1);\n",
        "    var width = Math.abs(x1 - x0);\n",
        "    var height = Math.abs(y1 - y0);\n",
        "\n",
        "    fig.rubberband_context.clearRect(\n",
        "        0,\n",
        "        0,\n",
        "        fig.canvas.width / fig.ratio,\n",
        "        fig.canvas.height / fig.ratio\n",
        "    );\n",
        "\n",
        "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_figure_label = function (fig, msg) {\n",
        "    // Updates the figure title.\n",
        "    fig.header.textContent = msg['label'];\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_cursor = function (fig, msg) {\n",
        "    var cursor = msg['cursor'];\n",
        "    switch (cursor) {\n",
        "        case 0:\n",
        "            cursor = 'pointer';\n",
        "            break;\n",
        "        case 1:\n",
        "            cursor = 'default';\n",
        "            break;\n",
        "        case 2:\n",
        "            cursor = 'crosshair';\n",
        "            break;\n",
        "        case 3:\n",
        "            cursor = 'move';\n",
        "            break;\n",
        "    }\n",
        "    fig.rubberband_canvas.style.cursor = cursor;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_message = function (fig, msg) {\n",
        "    fig.message.textContent = msg['message'];\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_draw = function (fig, _msg) {\n",
        "    // Request the server to send over a new figure.\n",
        "    fig.send_draw_message();\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_image_mode = function (fig, msg) {\n",
        "    fig.image_mode = msg['mode'];\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n",
        "    for (var key in msg) {\n",
        "        if (!(key in fig.buttons)) {\n",
        "            continue;\n",
        "        }\n",
        "        fig.buttons[key].disabled = !msg[key];\n",
        "        fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n",
        "    if (msg['mode'] === 'PAN') {\n",
        "        fig.buttons['Pan'].classList.add('active');\n",
        "        fig.buttons['Zoom'].classList.remove('active');\n",
        "    } else if (msg['mode'] === 'ZOOM') {\n",
        "        fig.buttons['Pan'].classList.remove('active');\n",
        "        fig.buttons['Zoom'].classList.add('active');\n",
        "    } else {\n",
        "        fig.buttons['Pan'].classList.remove('active');\n",
        "        fig.buttons['Zoom'].classList.remove('active');\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.updated_canvas_event = function () {\n",
        "    // Called whenever the canvas gets updated.\n",
        "    this.send_message('ack', {});\n",
        "};\n",
        "\n",
        "// A function to construct a web socket function for onmessage handling.\n",
        "// Called in the figure constructor.\n",
        "mpl.figure.prototype._make_on_message_function = function (fig) {\n",
        "    return function socket_on_message(evt) {\n",
        "        if (evt.data instanceof Blob) {\n",
        "            /* FIXME: We get \"Resource interpreted as Image but\n",
        "             * transferred with MIME type text/plain:\" errors on\n",
        "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
        "             * to be part of the websocket stream */\n",
        "            evt.data.type = 'image/png';\n",
        "\n",
        "            /* Free the memory for the previous frames */\n",
        "            if (fig.imageObj.src) {\n",
        "                (window.URL || window.webkitURL).revokeObjectURL(\n",
        "                    fig.imageObj.src\n",
        "                );\n",
        "            }\n",
        "\n",
        "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
        "                evt.data\n",
        "            );\n",
        "            fig.updated_canvas_event();\n",
        "            fig.waiting = false;\n",
        "            return;\n",
        "        } else if (\n",
        "            typeof evt.data === 'string' &&\n",
        "            evt.data.slice(0, 21) === 'data:image/png;base64'\n",
        "        ) {\n",
        "            fig.imageObj.src = evt.data;\n",
        "            fig.updated_canvas_event();\n",
        "            fig.waiting = false;\n",
        "            return;\n",
        "        }\n",
        "\n",
        "        var msg = JSON.parse(evt.data);\n",
        "        var msg_type = msg['type'];\n",
        "\n",
        "        // Call the  \"handle_{type}\" callback, which takes\n",
        "        // the figure and JSON message as its only arguments.\n",
        "        try {\n",
        "            var callback = fig['handle_' + msg_type];\n",
        "        } catch (e) {\n",
        "            console.log(\n",
        "                \"No handler for the '\" + msg_type + \"' message type: \",\n",
        "                msg\n",
        "            );\n",
        "            return;\n",
        "        }\n",
        "\n",
        "        if (callback) {\n",
        "            try {\n",
        "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
        "                callback(fig, msg);\n",
        "            } catch (e) {\n",
        "                console.log(\n",
        "                    \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n",
        "                    e,\n",
        "                    e.stack,\n",
        "                    msg\n",
        "                );\n",
        "            }\n",
        "        }\n",
        "    };\n",
        "};\n",
        "\n",
        "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
        "mpl.findpos = function (e) {\n",
        "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
        "    var targ;\n",
        "    if (!e) {\n",
        "        e = window.event;\n",
        "    }\n",
        "    if (e.target) {\n",
        "        targ = e.target;\n",
        "    } else if (e.srcElement) {\n",
        "        targ = e.srcElement;\n",
        "    }\n",
        "    if (targ.nodeType === 3) {\n",
        "        // defeat Safari bug\n",
        "        targ = targ.parentNode;\n",
        "    }\n",
        "\n",
        "    // pageX,Y are the mouse positions relative to the document\n",
        "    var boundingRect = targ.getBoundingClientRect();\n",
        "    var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n",
        "    var y = e.pageY - (boundingRect.top + document.body.scrollTop);\n",
        "\n",
        "    return { x: x, y: y };\n",
        "};\n",
        "\n",
        "/*\n",
        " * return a copy of an object with only non-object keys\n",
        " * we need this to avoid circular references\n",
        " * http://stackoverflow.com/a/24161582/3208463\n",
        " */\n",
        "function simpleKeys(original) {\n",
        "    return Object.keys(original).reduce(function (obj, key) {\n",
        "        if (typeof original[key] !== 'object') {\n",
        "            obj[key] = original[key];\n",
        "        }\n",
        "        return obj;\n",
        "    }, {});\n",
        "}\n",
        "\n",
        "mpl.figure.prototype.mouse_event = function (event, name) {\n",
        "    var canvas_pos = mpl.findpos(event);\n",
        "\n",
        "    if (name === 'button_press') {\n",
        "        this.canvas.focus();\n",
        "        this.canvas_div.focus();\n",
        "    }\n",
        "\n",
        "    var x = canvas_pos.x * this.ratio;\n",
        "    var y = canvas_pos.y * this.ratio;\n",
        "\n",
        "    this.send_message(name, {\n",
        "        x: x,\n",
        "        y: y,\n",
        "        button: event.button,\n",
        "        step: event.step,\n",
        "        guiEvent: simpleKeys(event),\n",
        "    });\n",
        "\n",
        "    /* This prevents the web browser from automatically changing to\n",
        "     * the text insertion cursor when the button is pressed.  We want\n",
        "     * to control all of the cursor setting manually through the\n",
        "     * 'cursor' event from matplotlib */\n",
        "    event.preventDefault();\n",
        "    return false;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._key_event_extra = function (_event, _name) {\n",
        "    // Handle any extra behaviour associated with a key event\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.key_event = function (event, name) {\n",
        "    // Prevent repeat events\n",
        "    if (name === 'key_press') {\n",
        "        if (event.which === this._key) {\n",
        "            return;\n",
        "        } else {\n",
        "            this._key = event.which;\n",
        "        }\n",
        "    }\n",
        "    if (name === 'key_release') {\n",
        "        this._key = null;\n",
        "    }\n",
        "\n",
        "    var value = '';\n",
        "    if (event.ctrlKey && event.which !== 17) {\n",
        "        value += 'ctrl+';\n",
        "    }\n",
        "    if (event.altKey && event.which !== 18) {\n",
        "        value += 'alt+';\n",
        "    }\n",
        "    if (event.shiftKey && event.which !== 16) {\n",
        "        value += 'shift+';\n",
        "    }\n",
        "\n",
        "    value += 'k';\n",
        "    value += event.which.toString();\n",
        "\n",
        "    this._key_event_extra(event, name);\n",
        "\n",
        "    this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n",
        "    return false;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.toolbar_button_onclick = function (name) {\n",
        "    if (name === 'download') {\n",
        "        this.handle_save(this, null);\n",
        "    } else {\n",
        "        this.send_message('toolbar_button', { name: name });\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n",
        "    this.message.textContent = tooltip;\n",
        "};\n",
        "\n",
        "///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n",
        "// prettier-ignore\n",
        "var _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\n",
        "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
        "\n",
        "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
        "\n",
        "mpl.default_extension = \"png\";/* global mpl */\n",
        "\n",
        "var comm_websocket_adapter = function (comm) {\n",
        "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
        "    // object with the appropriate methods. Currently this is a non binary\n",
        "    // socket, so there is still some room for performance tuning.\n",
        "    var ws = {};\n",
        "\n",
        "    ws.close = function () {\n",
        "        comm.close();\n",
        "    };\n",
        "    ws.send = function (m) {\n",
        "        //console.log('sending', m);\n",
        "        comm.send(m);\n",
        "    };\n",
        "    // Register the callback with on_msg.\n",
        "    comm.on_msg(function (msg) {\n",
        "        //console.log('receiving', msg['content']['data'], msg);\n",
        "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
        "        ws.onmessage(msg['content']['data']);\n",
        "    });\n",
        "    return ws;\n",
        "};\n",
        "\n",
        "mpl.mpl_figure_comm = function (comm, msg) {\n",
        "    // This is the function which gets called when the mpl process\n",
        "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
        "\n",
        "    var id = msg.content.data.id;\n",
        "    // Get hold of the div created by the display call when the Comm\n",
        "    // socket was opened in Python.\n",
        "    var element = document.getElementById(id);\n",
        "    var ws_proxy = comm_websocket_adapter(comm);\n",
        "\n",
        "    function ondownload(figure, _format) {\n",
        "        window.open(figure.canvas.toDataURL());\n",
        "    }\n",
        "\n",
        "    var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n",
        "\n",
        "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
        "    // web socket which is closed, not our websocket->open comm proxy.\n",
        "    ws_proxy.onopen();\n",
        "\n",
        "    fig.parent_element = element;\n",
        "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
        "    if (!fig.cell_info) {\n",
        "        console.error('Failed to find cell for figure', id, fig);\n",
        "        return;\n",
        "    }\n",
        "    fig.cell_info[0].output_area.element.on(\n",
        "        'cleared',\n",
        "        { fig: fig },\n",
        "        fig._remove_fig_handler\n",
        "    );\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_close = function (fig, msg) {\n",
        "    var width = fig.canvas.width / fig.ratio;\n",
        "    fig.cell_info[0].output_area.element.off(\n",
        "        'cleared',\n",
        "        fig._remove_fig_handler\n",
        "    );\n",
        "    fig.resizeObserverInstance.unobserve(fig.canvas_div);\n",
        "\n",
        "    // Update the output cell to use the data from the current canvas.\n",
        "    fig.push_to_output();\n",
        "    var dataURL = fig.canvas.toDataURL();\n",
        "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
        "    // the notebook keyboard shortcuts fail.\n",
        "    IPython.keyboard_manager.enable();\n",
        "    fig.parent_element.innerHTML =\n",
        "        '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
        "    fig.close_ws(fig, msg);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.close_ws = function (fig, msg) {\n",
        "    fig.send_message('closing', msg);\n",
        "    // fig.ws.close()\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.push_to_output = function (_remove_interactive) {\n",
        "    // Turn the data on the canvas into data in the output cell.\n",
        "    var width = this.canvas.width / this.ratio;\n",
        "    var dataURL = this.canvas.toDataURL();\n",
        "    this.cell_info[1]['text/html'] =\n",
        "        '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.updated_canvas_event = function () {\n",
        "    // Tell IPython that the notebook contents must change.\n",
        "    IPython.notebook.set_dirty(true);\n",
        "    this.send_message('ack', {});\n",
        "    var fig = this;\n",
        "    // Wait a second, then push the new image to the DOM so\n",
        "    // that it is saved nicely (might be nice to debounce this).\n",
        "    setTimeout(function () {\n",
        "        fig.push_to_output();\n",
        "    }, 1000);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._init_toolbar = function () {\n",
        "    var fig = this;\n",
        "\n",
        "    var toolbar = document.createElement('div');\n",
        "    toolbar.classList = 'btn-toolbar';\n",
        "    this.root.appendChild(toolbar);\n",
        "\n",
        "    function on_click_closure(name) {\n",
        "        return function (_event) {\n",
        "            return fig.toolbar_button_onclick(name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    function on_mouseover_closure(tooltip) {\n",
        "        return function (event) {\n",
        "            if (!event.currentTarget.disabled) {\n",
        "                return fig.toolbar_button_onmouseover(tooltip);\n",
        "            }\n",
        "        };\n",
        "    }\n",
        "\n",
        "    fig.buttons = {};\n",
        "    var buttonGroup = document.createElement('div');\n",
        "    buttonGroup.classList = 'btn-group';\n",
        "    var button;\n",
        "    for (var toolbar_ind in mpl.toolbar_items) {\n",
        "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
        "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
        "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
        "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
        "\n",
        "        if (!name) {\n",
        "            /* Instead of a spacer, we start a new button group. */\n",
        "            if (buttonGroup.hasChildNodes()) {\n",
        "                toolbar.appendChild(buttonGroup);\n",
        "            }\n",
        "            buttonGroup = document.createElement('div');\n",
        "            buttonGroup.classList = 'btn-group';\n",
        "            continue;\n",
        "        }\n",
        "\n",
        "        button = fig.buttons[name] = document.createElement('button');\n",
        "        button.classList = 'btn btn-default';\n",
        "        button.href = '#';\n",
        "        button.title = name;\n",
        "        button.innerHTML = '<i class=\"fa ' + image + ' fa-lg\"></i>';\n",
        "        button.addEventListener('click', on_click_closure(method_name));\n",
        "        button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
        "        buttonGroup.appendChild(button);\n",
        "    }\n",
        "\n",
        "    if (buttonGroup.hasChildNodes()) {\n",
        "        toolbar.appendChild(buttonGroup);\n",
        "    }\n",
        "\n",
        "    // Add the status bar.\n",
        "    var status_bar = document.createElement('span');\n",
        "    status_bar.classList = 'mpl-message pull-right';\n",
        "    toolbar.appendChild(status_bar);\n",
        "    this.message = status_bar;\n",
        "\n",
        "    // Add the close button to the window.\n",
        "    var buttongrp = document.createElement('div');\n",
        "    buttongrp.classList = 'btn-group inline pull-right';\n",
        "    button = document.createElement('button');\n",
        "    button.classList = 'btn btn-mini btn-primary';\n",
        "    button.href = '#';\n",
        "    button.title = 'Stop Interaction';\n",
        "    button.innerHTML = '<i class=\"fa fa-power-off icon-remove icon-large\"></i>';\n",
        "    button.addEventListener('click', function (_evt) {\n",
        "        fig.handle_close(fig, {});\n",
        "    });\n",
        "    button.addEventListener(\n",
        "        'mouseover',\n",
        "        on_mouseover_closure('Stop Interaction')\n",
        "    );\n",
        "    buttongrp.appendChild(button);\n",
        "    var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n",
        "    titlebar.insertBefore(buttongrp, titlebar.firstChild);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._remove_fig_handler = function (event) {\n",
        "    var fig = event.data.fig;\n",
        "    if (event.target !== this) {\n",
        "        // Ignore bubbled events from children.\n",
        "        return;\n",
        "    }\n",
        "    fig.close_ws(fig, {});\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._root_extra_style = function (el) {\n",
        "    el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._canvas_extra_style = function (el) {\n",
        "    // this is important to make the div 'focusable\n",
        "    el.setAttribute('tabindex', 0);\n",
        "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
        "    // off when our div gets focus\n",
        "\n",
        "    // location in version 3\n",
        "    if (IPython.notebook.keyboard_manager) {\n",
        "        IPython.notebook.keyboard_manager.register_events(el);\n",
        "    } else {\n",
        "        // location in version 2\n",
        "        IPython.keyboard_manager.register_events(el);\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._key_event_extra = function (event, _name) {\n",
        "    var manager = IPython.notebook.keyboard_manager;\n",
        "    if (!manager) {\n",
        "        manager = IPython.keyboard_manager;\n",
        "    }\n",
        "\n",
        "    // Check for shift+enter\n",
        "    if (event.shiftKey && event.which === 13) {\n",
        "        this.canvas_div.blur();\n",
        "        // select the cell after this one\n",
        "        var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n",
        "        IPython.notebook.select(index + 1);\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
        "    fig.ondownload(fig, null);\n",
        "};\n",
        "\n",
        "mpl.find_output_cell = function (html_output) {\n",
        "    // Return the cell and output element which can be found *uniquely* in the notebook.\n",
        "    // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
        "    // IPython event is triggered only after the cells have been serialised, which for\n",
        "    // our purposes (turning an active figure into a static one), is too late.\n",
        "    var cells = IPython.notebook.get_cells();\n",
        "    var ncells = cells.length;\n",
        "    for (var i = 0; i < ncells; i++) {\n",
        "        var cell = cells[i];\n",
        "        if (cell.cell_type === 'code') {\n",
        "            for (var j = 0; j < cell.output_area.outputs.length; j++) {\n",
        "                var data = cell.output_area.outputs[j];\n",
        "                if (data.data) {\n",
        "                    // IPython >= 3 moved mimebundle to data attribute of output\n",
        "                    data = data.data;\n",
        "                }\n",
        "                if (data['text/html'] === html_output) {\n",
        "                    return [cell, data, j];\n",
        "                }\n",
        "            }\n",
        "        }\n",
        "    }\n",
        "};\n",
        "\n",
        "// Register the function which deals with the matplotlib target/channel.\n",
        "// The kernel may be null if the page has been refreshed.\n",
        "if (IPython.notebook.kernel !== null) {\n",
        "    IPython.notebook.kernel.comm_manager.register_target(\n",
        "        'matplotlib',\n",
        "        mpl.mpl_figure_comm\n",
        "    );\n",
        "}\n"
       ],
       "text/plain": [
        "<IPython.core.display.Javascript object>"
       ]
      },
      "metadata": {},
      "output_type": "display_data"
     },
     {
      "data": {
       "text/html": [
-       "<img src=\"data:image/png;base64,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uPjii2VmGn799QqZadsJJxAKAQBAlccs6h0CIVzRhNGhqKhI06dP15pLL1XITOmDBvldEgAAQIVjFvUOgRCuaMLoEd65U6GaNRUyU8GXX/pdDgAAQIVjFvUOgRCuaEJ/ZWdny3EcSVLW00/veblo+/aRPQAAgKqMWdQ7BEK4ogn91b9/f5144on67LPPtO2EExQyU3Zyst9lAQAAeIJZ1DsEQriiCf2TmZmpevXqycy05LXXFDJTKD5e4V27/C4NAABgv/7I3JiVlbXfr8Us6g0CIVzRhP7asWOHXn75ZWUOG6aQmXb17+93SQAAAPs1YcIETZs2LfLx999/LzNT3bp11bFjR/Xs2VM1atSQmalnz57q1q2b6tatKzPTJZdcsk8wZBb1DoEQrmjC6OA4jgoWL1bh99/7XQoAAICre++9VxMnTiy199RTT+n2229XQUGBJCk1NVVmpmbNmkXObNmyRc2bN1dqaqouuugi5eTkRB5jFvUOgRCuaEJ/7N692+8SAAAAyuy5555Tv3799tm///77VVRUFPl4ypQpMjPddNNNpc6NGjVKkjR37lzdeOONkX1mUe8QCOGKJvReRkaGGjVqpKuvvloZGRly8vP9LgkAAGC/tm/frjp16mjVqlX7PPbrH3Jff/31MjPNmDGj1P62bdsivz7llFM0e/ZsScyiXiIQopTk5GQlJSUpMTGRJvTY66+/LjNTUlKS8n/4QSn16yv9ttu41QQAAPjD3n33XfXt21ePPPKIevTooYSEBHXo0EEbNmw46K89cuRItWrVqkxnmzZtqri4OO06wEXyRo4cqTPOOEMSgdBLBEK4ogn98dVXX2n+/PnKvP9+hcyUdv75fpcEAECVE87O3u9y8vLKfjY394+fzclxPVeexo4dq5o1a+rHH3+UtGfOMDO9+eab5fL1O3To4Ppy0V/76aefZGbq1KnTAc+98847MjNt2rSJWdRDBEK4ogn94xQVaevhhytkptyZM/0uBwCAKidktt/16x/GptSuvd+zO846q9TZrY0a7ffs9pNPLnU2tVkz13PlJT8/X4cccogGDBgQ2Zs/f77MTG+99dZvfu7YsWM1ZswYnXjiiUpPT99nb/v27apWrZruvvvu36xlwoQJMjMNHz78gOeWLVsmM9P06dOZRT1EIIQrmtA76enpSk9Pj3yc9847Cplpa+PGckquzAUAAMpPLATCX67q+eSTT0b2HnjgAdWvX7/U3OFm4sSJGjp0qCRp8eLFchxnn72UlBSZWWTvQPr27Ssz08KFCw947pdnEseMGcMs6iECIVzRhN658847lZCQoOnTp0uS0i68UCEzZdx3n8+VAQBQNcXCS0Ydx9Epp5yi+++/X5K0Zs0aNW7cWP/3f//3m5970003acSIEQfcK2sgDIfDatiwoerVq1fqqqNu1q5dKzPTY489xizqIQIhXNGE3igsLFS7du1kZvroo49UnJKiUFycQmYqLHm9PwAAwB+xfv16tW/fXk888YSGDBmi5cuXl3r8tdde07hx43TppZdqyJAhkvZchKZTp0664IIL9Oyzzyo9Pd11r6CgQHFxcb/5ktGlS5fKzHTxxRf/Zr2/3Mz+ueeeYxb1EIEQrmhC7xQVFem///2vJGn3Y4/teVnJ6af7XBUAAKjMwuGw2rVrpzFjxrg+vnjxYt18882SpKysLNWoUUMffPCBJOm6667b5xlCt7127drpiiuuOGAdjz32mMxMEyZM+M2aP/7448hLS5lFvUMghCua0B9FGzcq88EHuZgMAAA4KPn5+Tr88MNVrVo19enTR1OnTi31ks37779fV199tZ599lk9++yzuvzyyzVt2jRJZQ+Ew4YNU+vWrQ9YR8eOHWVm+vLLL3+z5gkTJighIUFFRUXMoh4iEMIVTVixdu/erVdffZV7DAIAgArxn//8RxMmTNC4ceMib085+eSTlZOTI2nPNQzGjh1b6nN+mUvKGgi3bNmimjVrauPGjfv8/h988IH+8pe/yMxkZhowYEDkFVH707dv38h7EplFvUMghCuasGLddtttMjPdeOONfpcCAACqmIkTJ+qhhx4qtff666+revXqmjRpkiRp5syZ+tOf/qQffvhBkrRq1Sq9+OKLkqRrr712n1tEuO1J0pgxYzR48OCDrnnNmjU69thjlZWVJYlZ1EsEQriiCSvWuHHjVKtWLc2bN0+SVLRqldLOP195c+b4XBkAAKjsTjnllMiMsbfu3bvrueeei3z8wAMP6LDDDtNxxx2nu+66S4WFhfr222/Vpk0bde3aVStWrJAk171fOI6j3r1769NPP/3D9RYUFKhXr16lLnrDLOodAiFc0YQVb/v27ZFfZ9x55557H114oY8VAQCAqqBfv356+OGHS+2F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\" width=\"900\">"
+       "<img src=\"data:image/png;base64,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eodACFc0YXS45JJLZGZ68IYbFDLT7pNPJhQCAIA6j1nUOwRCuKIJo0NZWZmmT5+ujZdfrpCZsm++2e+SAAAAahyzqHcIhHBFE0aPcHa2QgkJCpmp9LPP/C4HAACgxjGLeodACFc0ob+KiorkOI4kqSAl5du3i55ySmQPAACgLmMW9Q6BEK5oQn9df/316t27txYvXqzMXr0UMlP+3/7md1kAAACeYBb1DoEQrmhC/+Tn56tp06YyMy2eNk0hM4Xq11d4716/SwMAADionzI35ufnH/R7MYt6g0AIVzShv3bv3q0pU6Yod9QohcyUdeWVfpcEAABwUM8++6zefPPNyNdr1qyRmalJkybq06ePzjvvPNWvX19mpvPOO0/nnHOOmjRpIjPTkCFDDgiGzKLeIRDCFU0YHRzHUenixSr7+mu/SwEAAHB1zz33aPLkyVX2Jk2apOHDh6u0tFSSlJGRITNThw4dImd27dqljh07KiMjQ//3f/+nwsLCyGPMot4hEMIVTeiPgoICv0sAAACothdeeEFDhw49YP/+++9XeXl55Ovp06fLzHTrrbdWOTd69GhJ0ty5c3XzfrfXYhb1DoEQrmhC7+Xl5alNmza64YYblJOTI6fyJ2oAAADRKDMzU40bN9aGDRsOeCwvL6/K1zfeeKPMTDNnzqyyv3v37sive/furX//+9+SmEW9RCBEFSkpKUpOTlZSUhJN6LE33nhDZqakpCSVbNyotObNlT18uJxw2O/SAABALTV79mxdeumlGjNmjM4991wlJiaqV69e2r59+2F/70cffVRdu3at1tn27dsrLi5O+/btO+T369evnyQCoZcIhHBFE/pj2bJl+uSTT5T74IMKmWnvoEF+lwQAQJ0TLig46HKKi6t/tqjop58tLHQ9dySNHz9eDRo00Pr16yVJX3zxhcxM77zzzhH5/r169XJ9u+j3bdy4UWamM84445DnZs2aJTPTzp07mUU9RCCEK5rQP055udLbtVPITEXfe1sFAAA4fCGzg669559f5Wxao0YHPbvn7LOrnE1v2fKgZzN//vMqZzM6dHA9d6SUlJToqKOO0g033BDZmz9/vsxM77777g8+d/z48Ro3bpxOPfVUZWdnH7CXmZmpevXqacSIET9Yy7PPPisz0yOPPHLIcytWrJCZ6a233mIW9RCBEK5oQu/k5uYqJycn8nXx7NkKmSm9ZUs+RwgAQA2IhUD43VU9J06cGNl74IEH1KxZM2VnZx/yuZMnT9ZDDz0kSVq6dKkcxzlgLy0tTWYW2TuUSy+9VGamRYsWHfLcd68kjhs3jlnUQwRCuKIJvXP33XerVatWkQ9ZZ11yiUJmyqnGT9wAAMCPFwtvGXUcR71799b9998vSdqyZYtat26t99577wefe+utt2rUqFGH3KtuIAyHw2rRooWaNm1a5aqjbrZu3Soz0+OPP84s6iECIVzRhN4oKytT9+7dZWb66KOPVJGerlC9egqZqWzNGr/LAwAAtdg333yjnj176qmnntJ9992nVatWVXl82rRpmjBhgi677DLdd999kr69CM0ZZ5yhCy64QM8//7yys7Nd90pLSxUXF/eDbxldtmyZzEyXXHLJD9b73c3sX3jhBWZRDxEI4Yom9E5ZWZn++c9/SpLynnzy27eV/MCHrgEAAA4lHA6rR48eGjdunOvjS5cu1W233SZJys/PV/369TVnzhxJ0vXXX3/AK4Ruez169NCVV155yDoef/xxmZmeffbZH6x53rx5kbeWMot6h0AIVzShP8p37FDuAw+o6O23/S4FAADUYiUlJWrbtq3q1auniy++WDNmzKjyls37779f1157rZ5//nk9//zzuuKKK/Tmm29Kqn4gfPjhh9WtW7dD1tGnTx+ZmT7//PMfrPnZZ59VYmKiysvLmUU9RCCEK5qwZhUUFGj69OlyHMfvUgAAQB30+uuv69lnn9WECRPUo0cPmZl+/vOfq7CwUJL0hz/8QePHj6/ynO/mkuoGwl27dqlBgwbasWPHAf/8OXPm6Oqrr5aZycx0ww036F//+tcha7700ksjn0lkFvUOgRCuaMKa9fvf/15mpltuucXvUgAAQB0zefJkjRw5ssreG2+8ofj4eP3973+XJP3jH//QMccco3Xr1kmSNmzYoBdffFGSdN111x1wiwi3PUkaN26c7rzzzsOuecuWLerSpYvy8/MlMYt6iUAIVzRhzRo/frwSEhL0n//8R5JUvnGj9l5wgYo/+sjnygAAQG3Xu3dvffLJJwfsDxw4UC+88ELk6wceeECtWrXSCSecoLvuuktlZWX66quvdPLJJ2vAgAH6+uuvJcl17zuO4+jCCy/UwoULf3K9paWlGjx4cJWL3jCLeodACFc0Yc3LyMiI/Drn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\" width=\"900\">"
       ],
       "text/plain": [
        "<IPython.core.display.HTML object>"
       ]
      },
      "metadata": {},
      "output_type": "display_data"
     }
    ],
    "source": [
     "if True:\n",
     "    fig=plt.figure(figsize=(9,4))\n",
     "    fig.subplots_adjust(bottom=0.15, left=0.15, top = 0.95, right=0.9,wspace=0.0,hspace=0.0)\n",
     "    sub = fig.add_subplot(1,1,1)\n",
     "\n",
     "    T=np.logspace(-5,5,500)\n",
-    "    gt=[Cosmo.geff(i) for i in T]\n",
-    "    ht=[Cosmo.heff(i) for i in T]\n",
+    "    gt=[cosmo.geff(i) for i in T]\n",
+    "    ht=[cosmo.heff(i) for i in T]\n",
     "\n",
     "    sub.plot(T,gt,linestyle='--',c='xkcd:red',label=r\"$g_{\\rm eff} (T)$\")\n",
     "    sub.plot(T,ht,linestyle=':',c='xkcd:black',label=r\"$h_{\\rm eff} (T)$\")\n",
     "\n",
     "    sub.set_xlabel(r'$T ~ [{\\rm GeV}]$')\n",
     "    sub.set_ylabel(r'rel. dof')\n",
     "\n",
     "    sub.legend(bbox_to_anchor=(1, 0.0),borderaxespad=0., \n",
     "               borderpad=0.05,ncol=1,loc='lower right',fontsize=14,framealpha=0)\n",
     "    sub.set_yscale('log')\n",
     "    sub.set_xscale('log')\n",
     "\n",
     "\n",
     "\n",
     "\n",
     "    fig.show()"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 4,
+   "execution_count": 5,
    "metadata": {},
    "outputs": [
     {
      "data": {
       "application/javascript": [
        "/* Put everything inside the global mpl namespace */\n",
        "/* global mpl */\n",
        "window.mpl = {};\n",
        "\n",
        "mpl.get_websocket_type = function () {\n",
        "    if (typeof WebSocket !== 'undefined') {\n",
        "        return WebSocket;\n",
        "    } else if (typeof MozWebSocket !== 'undefined') {\n",
        "        return MozWebSocket;\n",
        "    } else {\n",
        "        alert(\n",
        "            'Your browser does not have WebSocket support. ' +\n",
        "                'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
        "                'Firefox 4 and 5 are also supported but you ' +\n",
        "                'have to enable WebSockets in about:config.'\n",
        "        );\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n",
        "    this.id = figure_id;\n",
        "\n",
        "    this.ws = websocket;\n",
        "\n",
        "    this.supports_binary = this.ws.binaryType !== undefined;\n",
        "\n",
        "    if (!this.supports_binary) {\n",
        "        var warnings = document.getElementById('mpl-warnings');\n",
        "        if (warnings) {\n",
        "            warnings.style.display = 'block';\n",
        "            warnings.textContent =\n",
        "                'This browser does not support binary websocket messages. ' +\n",
        "                'Performance may be slow.';\n",
        "        }\n",
        "    }\n",
        "\n",
        "    this.imageObj = new Image();\n",
        "\n",
        "    this.context = undefined;\n",
        "    this.message = undefined;\n",
        "    this.canvas = undefined;\n",
        "    this.rubberband_canvas = undefined;\n",
        "    this.rubberband_context = undefined;\n",
        "    this.format_dropdown = undefined;\n",
        "\n",
        "    this.image_mode = 'full';\n",
        "\n",
        "    this.root = document.createElement('div');\n",
        "    this.root.setAttribute('style', 'display: inline-block');\n",
        "    this._root_extra_style(this.root);\n",
        "\n",
        "    parent_element.appendChild(this.root);\n",
        "\n",
        "    this._init_header(this);\n",
        "    this._init_canvas(this);\n",
        "    this._init_toolbar(this);\n",
        "\n",
        "    var fig = this;\n",
        "\n",
        "    this.waiting = false;\n",
        "\n",
        "    this.ws.onopen = function () {\n",
        "        fig.send_message('supports_binary', { value: fig.supports_binary });\n",
        "        fig.send_message('send_image_mode', {});\n",
        "        if (fig.ratio !== 1) {\n",
        "            fig.send_message('set_dpi_ratio', { dpi_ratio: fig.ratio });\n",
        "        }\n",
        "        fig.send_message('refresh', {});\n",
        "    };\n",
        "\n",
        "    this.imageObj.onload = function () {\n",
        "        if (fig.image_mode === 'full') {\n",
        "            // Full images could contain transparency (where diff images\n",
        "            // almost always do), so we need to clear the canvas so that\n",
        "            // there is no ghosting.\n",
        "            fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
        "        }\n",
        "        fig.context.drawImage(fig.imageObj, 0, 0);\n",
        "    };\n",
        "\n",
        "    this.imageObj.onunload = function () {\n",
        "        fig.ws.close();\n",
        "    };\n",
        "\n",
        "    this.ws.onmessage = this._make_on_message_function(this);\n",
        "\n",
        "    this.ondownload = ondownload;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._init_header = function () {\n",
        "    var titlebar = document.createElement('div');\n",
        "    titlebar.classList =\n",
        "        'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n",
        "    var titletext = document.createElement('div');\n",
        "    titletext.classList = 'ui-dialog-title';\n",
        "    titletext.setAttribute(\n",
        "        'style',\n",
        "        'width: 100%; text-align: center; padding: 3px;'\n",
        "    );\n",
        "    titlebar.appendChild(titletext);\n",
        "    this.root.appendChild(titlebar);\n",
        "    this.header = titletext;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n",
        "\n",
        "mpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n",
        "\n",
        "mpl.figure.prototype._init_canvas = function () {\n",
        "    var fig = this;\n",
        "\n",
        "    var canvas_div = (this.canvas_div = document.createElement('div'));\n",
        "    canvas_div.setAttribute(\n",
        "        'style',\n",
        "        'border: 1px solid #ddd;' +\n",
        "            'box-sizing: content-box;' +\n",
        "            'clear: both;' +\n",
        "            'min-height: 1px;' +\n",
        "            'min-width: 1px;' +\n",
        "            'outline: 0;' +\n",
        "            'overflow: hidden;' +\n",
        "            'position: relative;' +\n",
        "            'resize: both;'\n",
        "    );\n",
        "\n",
        "    function on_keyboard_event_closure(name) {\n",
        "        return function (event) {\n",
        "            return fig.key_event(event, name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    canvas_div.addEventListener(\n",
        "        'keydown',\n",
        "        on_keyboard_event_closure('key_press')\n",
        "    );\n",
        "    canvas_div.addEventListener(\n",
        "        'keyup',\n",
        "        on_keyboard_event_closure('key_release')\n",
        "    );\n",
        "\n",
        "    this._canvas_extra_style(canvas_div);\n",
        "    this.root.appendChild(canvas_div);\n",
        "\n",
        "    var canvas = (this.canvas = document.createElement('canvas'));\n",
        "    canvas.classList.add('mpl-canvas');\n",
        "    canvas.setAttribute('style', 'box-sizing: content-box;');\n",
        "\n",
        "    this.context = canvas.getContext('2d');\n",
        "\n",
        "    var backingStore =\n",
        "        this.context.backingStorePixelRatio ||\n",
        "        this.context.webkitBackingStorePixelRatio ||\n",
        "        this.context.mozBackingStorePixelRatio ||\n",
        "        this.context.msBackingStorePixelRatio ||\n",
        "        this.context.oBackingStorePixelRatio ||\n",
        "        this.context.backingStorePixelRatio ||\n",
        "        1;\n",
        "\n",
        "    this.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
        "\n",
        "    var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n",
        "        'canvas'\n",
        "    ));\n",
        "    rubberband_canvas.setAttribute(\n",
        "        'style',\n",
        "        'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n",
        "    );\n",
        "\n",
        "    // Apply a ponyfill if ResizeObserver is not implemented by browser.\n",
        "    if (this.ResizeObserver === undefined) {\n",
        "        if (window.ResizeObserver !== undefined) {\n",
        "            this.ResizeObserver = window.ResizeObserver;\n",
        "        } else {\n",
        "            var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n",
        "            this.ResizeObserver = obs.ResizeObserver;\n",
        "        }\n",
        "    }\n",
        "\n",
        "    this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n",
        "        var nentries = entries.length;\n",
        "        for (var i = 0; i < nentries; i++) {\n",
        "            var entry = entries[i];\n",
        "            var width, height;\n",
        "            if (entry.contentBoxSize) {\n",
        "                if (entry.contentBoxSize instanceof Array) {\n",
        "                    // Chrome 84 implements new version of spec.\n",
        "                    width = entry.contentBoxSize[0].inlineSize;\n",
        "                    height = entry.contentBoxSize[0].blockSize;\n",
        "                } else {\n",
        "                    // Firefox implements old version of spec.\n",
        "                    width = entry.contentBoxSize.inlineSize;\n",
        "                    height = entry.contentBoxSize.blockSize;\n",
        "                }\n",
        "            } else {\n",
        "                // Chrome <84 implements even older version of spec.\n",
        "                width = entry.contentRect.width;\n",
        "                height = entry.contentRect.height;\n",
        "            }\n",
        "\n",
        "            // Keep the size of the canvas and rubber band canvas in sync with\n",
        "            // the canvas container.\n",
        "            if (entry.devicePixelContentBoxSize) {\n",
        "                // Chrome 84 implements new version of spec.\n",
        "                canvas.setAttribute(\n",
        "                    'width',\n",
        "                    entry.devicePixelContentBoxSize[0].inlineSize\n",
        "                );\n",
        "                canvas.setAttribute(\n",
        "                    'height',\n",
        "                    entry.devicePixelContentBoxSize[0].blockSize\n",
        "                );\n",
        "            } else {\n",
        "                canvas.setAttribute('width', width * fig.ratio);\n",
        "                canvas.setAttribute('height', height * fig.ratio);\n",
        "            }\n",
        "            canvas.setAttribute(\n",
        "                'style',\n",
        "                'width: ' + width + 'px; height: ' + height + 'px;'\n",
        "            );\n",
        "\n",
        "            rubberband_canvas.setAttribute('width', width);\n",
        "            rubberband_canvas.setAttribute('height', height);\n",
        "\n",
        "            // And update the size in Python. We ignore the initial 0/0 size\n",
        "            // that occurs as the element is placed into the DOM, which should\n",
        "            // otherwise not happen due to the minimum size styling.\n",
        "            if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n",
        "                fig.request_resize(width, height);\n",
        "            }\n",
        "        }\n",
        "    });\n",
        "    this.resizeObserverInstance.observe(canvas_div);\n",
        "\n",
        "    function on_mouse_event_closure(name) {\n",
        "        return function (event) {\n",
        "            return fig.mouse_event(event, name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mousedown',\n",
        "        on_mouse_event_closure('button_press')\n",
        "    );\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mouseup',\n",
        "        on_mouse_event_closure('button_release')\n",
        "    );\n",
        "    // Throttle sequential mouse events to 1 every 20ms.\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mousemove',\n",
        "        on_mouse_event_closure('motion_notify')\n",
        "    );\n",
        "\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mouseenter',\n",
        "        on_mouse_event_closure('figure_enter')\n",
        "    );\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mouseleave',\n",
        "        on_mouse_event_closure('figure_leave')\n",
        "    );\n",
        "\n",
        "    canvas_div.addEventListener('wheel', function (event) {\n",
        "        if (event.deltaY < 0) {\n",
        "            event.step = 1;\n",
        "        } else {\n",
        "            event.step = -1;\n",
        "        }\n",
        "        on_mouse_event_closure('scroll')(event);\n",
        "    });\n",
        "\n",
        "    canvas_div.appendChild(canvas);\n",
        "    canvas_div.appendChild(rubberband_canvas);\n",
        "\n",
        "    this.rubberband_context = rubberband_canvas.getContext('2d');\n",
        "    this.rubberband_context.strokeStyle = '#000000';\n",
        "\n",
        "    this._resize_canvas = function (width, height, forward) {\n",
        "        if (forward) {\n",
        "            canvas_div.style.width = width + 'px';\n",
        "            canvas_div.style.height = height + 'px';\n",
        "        }\n",
        "    };\n",
        "\n",
        "    // Disable right mouse context menu.\n",
        "    this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n",
        "        event.preventDefault();\n",
        "        return false;\n",
        "    });\n",
        "\n",
        "    function set_focus() {\n",
        "        canvas.focus();\n",
        "        canvas_div.focus();\n",
        "    }\n",
        "\n",
        "    window.setTimeout(set_focus, 100);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._init_toolbar = function () {\n",
        "    var fig = this;\n",
        "\n",
        "    var toolbar = document.createElement('div');\n",
        "    toolbar.classList = 'mpl-toolbar';\n",
        "    this.root.appendChild(toolbar);\n",
        "\n",
        "    function on_click_closure(name) {\n",
        "        return function (_event) {\n",
        "            return fig.toolbar_button_onclick(name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    function on_mouseover_closure(tooltip) {\n",
        "        return function (event) {\n",
        "            if (!event.currentTarget.disabled) {\n",
        "                return fig.toolbar_button_onmouseover(tooltip);\n",
        "            }\n",
        "        };\n",
        "    }\n",
        "\n",
        "    fig.buttons = {};\n",
        "    var buttonGroup = document.createElement('div');\n",
        "    buttonGroup.classList = 'mpl-button-group';\n",
        "    for (var toolbar_ind in mpl.toolbar_items) {\n",
        "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
        "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
        "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
        "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
        "\n",
        "        if (!name) {\n",
        "            /* Instead of a spacer, we start a new button group. */\n",
        "            if (buttonGroup.hasChildNodes()) {\n",
        "                toolbar.appendChild(buttonGroup);\n",
        "            }\n",
        "            buttonGroup = document.createElement('div');\n",
        "            buttonGroup.classList = 'mpl-button-group';\n",
        "            continue;\n",
        "        }\n",
        "\n",
        "        var button = (fig.buttons[name] = document.createElement('button'));\n",
        "        button.classList = 'mpl-widget';\n",
        "        button.setAttribute('role', 'button');\n",
        "        button.setAttribute('aria-disabled', 'false');\n",
        "        button.addEventListener('click', on_click_closure(method_name));\n",
        "        button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
        "\n",
        "        var icon_img = document.createElement('img');\n",
        "        icon_img.src = '_images/' + image + '.png';\n",
        "        icon_img.srcset = '_images/' + image + '_large.png 2x';\n",
        "        icon_img.alt = tooltip;\n",
        "        button.appendChild(icon_img);\n",
        "\n",
        "        buttonGroup.appendChild(button);\n",
        "    }\n",
        "\n",
        "    if (buttonGroup.hasChildNodes()) {\n",
        "        toolbar.appendChild(buttonGroup);\n",
        "    }\n",
        "\n",
        "    var fmt_picker = document.createElement('select');\n",
        "    fmt_picker.classList = 'mpl-widget';\n",
        "    toolbar.appendChild(fmt_picker);\n",
        "    this.format_dropdown = fmt_picker;\n",
        "\n",
        "    for (var ind in mpl.extensions) {\n",
        "        var fmt = mpl.extensions[ind];\n",
        "        var option = document.createElement('option');\n",
        "        option.selected = fmt === mpl.default_extension;\n",
        "        option.innerHTML = fmt;\n",
        "        fmt_picker.appendChild(option);\n",
        "    }\n",
        "\n",
        "    var status_bar = document.createElement('span');\n",
        "    status_bar.classList = 'mpl-message';\n",
        "    toolbar.appendChild(status_bar);\n",
        "    this.message = status_bar;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n",
        "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
        "    // which will in turn request a refresh of the image.\n",
        "    this.send_message('resize', { width: x_pixels, height: y_pixels });\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.send_message = function (type, properties) {\n",
        "    properties['type'] = type;\n",
        "    properties['figure_id'] = this.id;\n",
        "    this.ws.send(JSON.stringify(properties));\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.send_draw_message = function () {\n",
        "    if (!this.waiting) {\n",
        "        this.waiting = true;\n",
        "        this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
        "    var format_dropdown = fig.format_dropdown;\n",
        "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
        "    fig.ondownload(fig, format);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_resize = function (fig, msg) {\n",
        "    var size = msg['size'];\n",
        "    if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n",
        "        fig._resize_canvas(size[0], size[1], msg['forward']);\n",
        "        fig.send_message('refresh', {});\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_rubberband = function (fig, msg) {\n",
        "    var x0 = msg['x0'] / fig.ratio;\n",
        "    var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n",
        "    var x1 = msg['x1'] / fig.ratio;\n",
        "    var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n",
        "    x0 = Math.floor(x0) + 0.5;\n",
        "    y0 = Math.floor(y0) + 0.5;\n",
        "    x1 = Math.floor(x1) + 0.5;\n",
        "    y1 = Math.floor(y1) + 0.5;\n",
        "    var min_x = Math.min(x0, x1);\n",
        "    var min_y = Math.min(y0, y1);\n",
        "    var width = Math.abs(x1 - x0);\n",
        "    var height = Math.abs(y1 - y0);\n",
        "\n",
        "    fig.rubberband_context.clearRect(\n",
        "        0,\n",
        "        0,\n",
        "        fig.canvas.width / fig.ratio,\n",
        "        fig.canvas.height / fig.ratio\n",
        "    );\n",
        "\n",
        "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_figure_label = function (fig, msg) {\n",
        "    // Updates the figure title.\n",
        "    fig.header.textContent = msg['label'];\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_cursor = function (fig, msg) {\n",
        "    var cursor = msg['cursor'];\n",
        "    switch (cursor) {\n",
        "        case 0:\n",
        "            cursor = 'pointer';\n",
        "            break;\n",
        "        case 1:\n",
        "            cursor = 'default';\n",
        "            break;\n",
        "        case 2:\n",
        "            cursor = 'crosshair';\n",
        "            break;\n",
        "        case 3:\n",
        "            cursor = 'move';\n",
        "            break;\n",
        "    }\n",
        "    fig.rubberband_canvas.style.cursor = cursor;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_message = function (fig, msg) {\n",
        "    fig.message.textContent = msg['message'];\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_draw = function (fig, _msg) {\n",
        "    // Request the server to send over a new figure.\n",
        "    fig.send_draw_message();\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_image_mode = function (fig, msg) {\n",
        "    fig.image_mode = msg['mode'];\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n",
        "    for (var key in msg) {\n",
        "        if (!(key in fig.buttons)) {\n",
        "            continue;\n",
        "        }\n",
        "        fig.buttons[key].disabled = !msg[key];\n",
        "        fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n",
        "    if (msg['mode'] === 'PAN') {\n",
        "        fig.buttons['Pan'].classList.add('active');\n",
        "        fig.buttons['Zoom'].classList.remove('active');\n",
        "    } else if (msg['mode'] === 'ZOOM') {\n",
        "        fig.buttons['Pan'].classList.remove('active');\n",
        "        fig.buttons['Zoom'].classList.add('active');\n",
        "    } else {\n",
        "        fig.buttons['Pan'].classList.remove('active');\n",
        "        fig.buttons['Zoom'].classList.remove('active');\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.updated_canvas_event = function () {\n",
        "    // Called whenever the canvas gets updated.\n",
        "    this.send_message('ack', {});\n",
        "};\n",
        "\n",
        "// A function to construct a web socket function for onmessage handling.\n",
        "// Called in the figure constructor.\n",
        "mpl.figure.prototype._make_on_message_function = function (fig) {\n",
        "    return function socket_on_message(evt) {\n",
        "        if (evt.data instanceof Blob) {\n",
        "            /* FIXME: We get \"Resource interpreted as Image but\n",
        "             * transferred with MIME type text/plain:\" errors on\n",
        "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
        "             * to be part of the websocket stream */\n",
        "            evt.data.type = 'image/png';\n",
        "\n",
        "            /* Free the memory for the previous frames */\n",
        "            if (fig.imageObj.src) {\n",
        "                (window.URL || window.webkitURL).revokeObjectURL(\n",
        "                    fig.imageObj.src\n",
        "                );\n",
        "            }\n",
        "\n",
        "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
        "                evt.data\n",
        "            );\n",
        "            fig.updated_canvas_event();\n",
        "            fig.waiting = false;\n",
        "            return;\n",
        "        } else if (\n",
        "            typeof evt.data === 'string' &&\n",
        "            evt.data.slice(0, 21) === 'data:image/png;base64'\n",
        "        ) {\n",
        "            fig.imageObj.src = evt.data;\n",
        "            fig.updated_canvas_event();\n",
        "            fig.waiting = false;\n",
        "            return;\n",
        "        }\n",
        "\n",
        "        var msg = JSON.parse(evt.data);\n",
        "        var msg_type = msg['type'];\n",
        "\n",
        "        // Call the  \"handle_{type}\" callback, which takes\n",
        "        // the figure and JSON message as its only arguments.\n",
        "        try {\n",
        "            var callback = fig['handle_' + msg_type];\n",
        "        } catch (e) {\n",
        "            console.log(\n",
        "                \"No handler for the '\" + msg_type + \"' message type: \",\n",
        "                msg\n",
        "            );\n",
        "            return;\n",
        "        }\n",
        "\n",
        "        if (callback) {\n",
        "            try {\n",
        "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
        "                callback(fig, msg);\n",
        "            } catch (e) {\n",
        "                console.log(\n",
        "                    \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n",
        "                    e,\n",
        "                    e.stack,\n",
        "                    msg\n",
        "                );\n",
        "            }\n",
        "        }\n",
        "    };\n",
        "};\n",
        "\n",
        "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
        "mpl.findpos = function (e) {\n",
        "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
        "    var targ;\n",
        "    if (!e) {\n",
        "        e = window.event;\n",
        "    }\n",
        "    if (e.target) {\n",
        "        targ = e.target;\n",
        "    } else if (e.srcElement) {\n",
        "        targ = e.srcElement;\n",
        "    }\n",
        "    if (targ.nodeType === 3) {\n",
        "        // defeat Safari bug\n",
        "        targ = targ.parentNode;\n",
        "    }\n",
        "\n",
        "    // pageX,Y are the mouse positions relative to the document\n",
        "    var boundingRect = targ.getBoundingClientRect();\n",
        "    var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n",
        "    var y = e.pageY - (boundingRect.top + document.body.scrollTop);\n",
        "\n",
        "    return { x: x, y: y };\n",
        "};\n",
        "\n",
        "/*\n",
        " * return a copy of an object with only non-object keys\n",
        " * we need this to avoid circular references\n",
        " * http://stackoverflow.com/a/24161582/3208463\n",
        " */\n",
        "function simpleKeys(original) {\n",
        "    return Object.keys(original).reduce(function (obj, key) {\n",
        "        if (typeof original[key] !== 'object') {\n",
        "            obj[key] = original[key];\n",
        "        }\n",
        "        return obj;\n",
        "    }, {});\n",
        "}\n",
        "\n",
        "mpl.figure.prototype.mouse_event = function (event, name) {\n",
        "    var canvas_pos = mpl.findpos(event);\n",
        "\n",
        "    if (name === 'button_press') {\n",
        "        this.canvas.focus();\n",
        "        this.canvas_div.focus();\n",
        "    }\n",
        "\n",
        "    var x = canvas_pos.x * this.ratio;\n",
        "    var y = canvas_pos.y * this.ratio;\n",
        "\n",
        "    this.send_message(name, {\n",
        "        x: x,\n",
        "        y: y,\n",
        "        button: event.button,\n",
        "        step: event.step,\n",
        "        guiEvent: simpleKeys(event),\n",
        "    });\n",
        "\n",
        "    /* This prevents the web browser from automatically changing to\n",
        "     * the text insertion cursor when the button is pressed.  We want\n",
        "     * to control all of the cursor setting manually through the\n",
        "     * 'cursor' event from matplotlib */\n",
        "    event.preventDefault();\n",
        "    return false;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._key_event_extra = function (_event, _name) {\n",
        "    // Handle any extra behaviour associated with a key event\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.key_event = function (event, name) {\n",
        "    // Prevent repeat events\n",
        "    if (name === 'key_press') {\n",
        "        if (event.which === this._key) {\n",
        "            return;\n",
        "        } else {\n",
        "            this._key = event.which;\n",
        "        }\n",
        "    }\n",
        "    if (name === 'key_release') {\n",
        "        this._key = null;\n",
        "    }\n",
        "\n",
        "    var value = '';\n",
        "    if (event.ctrlKey && event.which !== 17) {\n",
        "        value += 'ctrl+';\n",
        "    }\n",
        "    if (event.altKey && event.which !== 18) {\n",
        "        value += 'alt+';\n",
        "    }\n",
        "    if (event.shiftKey && event.which !== 16) {\n",
        "        value += 'shift+';\n",
        "    }\n",
        "\n",
        "    value += 'k';\n",
        "    value += event.which.toString();\n",
        "\n",
        "    this._key_event_extra(event, name);\n",
        "\n",
        "    this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n",
        "    return false;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.toolbar_button_onclick = function (name) {\n",
        "    if (name === 'download') {\n",
        "        this.handle_save(this, null);\n",
        "    } else {\n",
        "        this.send_message('toolbar_button', { name: name });\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n",
        "    this.message.textContent = tooltip;\n",
        "};\n",
        "\n",
        "///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n",
        "// prettier-ignore\n",
        "var _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\n",
        "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
        "\n",
        "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
        "\n",
        "mpl.default_extension = \"png\";/* global mpl */\n",
        "\n",
        "var comm_websocket_adapter = function (comm) {\n",
        "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
        "    // object with the appropriate methods. Currently this is a non binary\n",
        "    // socket, so there is still some room for performance tuning.\n",
        "    var ws = {};\n",
        "\n",
        "    ws.close = function () {\n",
        "        comm.close();\n",
        "    };\n",
        "    ws.send = function (m) {\n",
        "        //console.log('sending', m);\n",
        "        comm.send(m);\n",
        "    };\n",
        "    // Register the callback with on_msg.\n",
        "    comm.on_msg(function (msg) {\n",
        "        //console.log('receiving', msg['content']['data'], msg);\n",
        "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
        "        ws.onmessage(msg['content']['data']);\n",
        "    });\n",
        "    return ws;\n",
        "};\n",
        "\n",
        "mpl.mpl_figure_comm = function (comm, msg) {\n",
        "    // This is the function which gets called when the mpl process\n",
        "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
        "\n",
        "    var id = msg.content.data.id;\n",
        "    // Get hold of the div created by the display call when the Comm\n",
        "    // socket was opened in Python.\n",
        "    var element = document.getElementById(id);\n",
        "    var ws_proxy = comm_websocket_adapter(comm);\n",
        "\n",
        "    function ondownload(figure, _format) {\n",
        "        window.open(figure.canvas.toDataURL());\n",
        "    }\n",
        "\n",
        "    var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n",
        "\n",
        "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
        "    // web socket which is closed, not our websocket->open comm proxy.\n",
        "    ws_proxy.onopen();\n",
        "\n",
        "    fig.parent_element = element;\n",
        "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
        "    if (!fig.cell_info) {\n",
        "        console.error('Failed to find cell for figure', id, fig);\n",
        "        return;\n",
        "    }\n",
        "    fig.cell_info[0].output_area.element.on(\n",
        "        'cleared',\n",
        "        { fig: fig },\n",
        "        fig._remove_fig_handler\n",
        "    );\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_close = function (fig, msg) {\n",
        "    var width = fig.canvas.width / fig.ratio;\n",
        "    fig.cell_info[0].output_area.element.off(\n",
        "        'cleared',\n",
        "        fig._remove_fig_handler\n",
        "    );\n",
        "    fig.resizeObserverInstance.unobserve(fig.canvas_div);\n",
        "\n",
        "    // Update the output cell to use the data from the current canvas.\n",
        "    fig.push_to_output();\n",
        "    var dataURL = fig.canvas.toDataURL();\n",
        "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
        "    // the notebook keyboard shortcuts fail.\n",
        "    IPython.keyboard_manager.enable();\n",
        "    fig.parent_element.innerHTML =\n",
        "        '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
        "    fig.close_ws(fig, msg);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.close_ws = function (fig, msg) {\n",
        "    fig.send_message('closing', msg);\n",
        "    // fig.ws.close()\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.push_to_output = function (_remove_interactive) {\n",
        "    // Turn the data on the canvas into data in the output cell.\n",
        "    var width = this.canvas.width / this.ratio;\n",
        "    var dataURL = this.canvas.toDataURL();\n",
        "    this.cell_info[1]['text/html'] =\n",
        "        '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.updated_canvas_event = function () {\n",
        "    // Tell IPython that the notebook contents must change.\n",
        "    IPython.notebook.set_dirty(true);\n",
        "    this.send_message('ack', {});\n",
        "    var fig = this;\n",
        "    // Wait a second, then push the new image to the DOM so\n",
        "    // that it is saved nicely (might be nice to debounce this).\n",
        "    setTimeout(function () {\n",
        "        fig.push_to_output();\n",
        "    }, 1000);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._init_toolbar = function () {\n",
        "    var fig = this;\n",
        "\n",
        "    var toolbar = document.createElement('div');\n",
        "    toolbar.classList = 'btn-toolbar';\n",
        "    this.root.appendChild(toolbar);\n",
        "\n",
        "    function on_click_closure(name) {\n",
        "        return function (_event) {\n",
        "            return fig.toolbar_button_onclick(name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    function on_mouseover_closure(tooltip) {\n",
        "        return function (event) {\n",
        "            if (!event.currentTarget.disabled) {\n",
        "                return fig.toolbar_button_onmouseover(tooltip);\n",
        "            }\n",
        "        };\n",
        "    }\n",
        "\n",
        "    fig.buttons = {};\n",
        "    var buttonGroup = document.createElement('div');\n",
        "    buttonGroup.classList = 'btn-group';\n",
        "    var button;\n",
        "    for (var toolbar_ind in mpl.toolbar_items) {\n",
        "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
        "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
        "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
        "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
        "\n",
        "        if (!name) {\n",
        "            /* Instead of a spacer, we start a new button group. */\n",
        "            if (buttonGroup.hasChildNodes()) {\n",
        "                toolbar.appendChild(buttonGroup);\n",
        "            }\n",
        "            buttonGroup = document.createElement('div');\n",
        "            buttonGroup.classList = 'btn-group';\n",
        "            continue;\n",
        "        }\n",
        "\n",
        "        button = fig.buttons[name] = document.createElement('button');\n",
        "        button.classList = 'btn btn-default';\n",
        "        button.href = '#';\n",
        "        button.title = name;\n",
        "        button.innerHTML = '<i class=\"fa ' + image + ' fa-lg\"></i>';\n",
        "        button.addEventListener('click', on_click_closure(method_name));\n",
        "        button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
        "        buttonGroup.appendChild(button);\n",
        "    }\n",
        "\n",
        "    if (buttonGroup.hasChildNodes()) {\n",
        "        toolbar.appendChild(buttonGroup);\n",
        "    }\n",
        "\n",
        "    // Add the status bar.\n",
        "    var status_bar = document.createElement('span');\n",
        "    status_bar.classList = 'mpl-message pull-right';\n",
        "    toolbar.appendChild(status_bar);\n",
        "    this.message = status_bar;\n",
        "\n",
        "    // Add the close button to the window.\n",
        "    var buttongrp = document.createElement('div');\n",
        "    buttongrp.classList = 'btn-group inline pull-right';\n",
        "    button = document.createElement('button');\n",
        "    button.classList = 'btn btn-mini btn-primary';\n",
        "    button.href = '#';\n",
        "    button.title = 'Stop Interaction';\n",
        "    button.innerHTML = '<i class=\"fa fa-power-off icon-remove icon-large\"></i>';\n",
        "    button.addEventListener('click', function (_evt) {\n",
        "        fig.handle_close(fig, {});\n",
        "    });\n",
        "    button.addEventListener(\n",
        "        'mouseover',\n",
        "        on_mouseover_closure('Stop Interaction')\n",
        "    );\n",
        "    buttongrp.appendChild(button);\n",
        "    var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n",
        "    titlebar.insertBefore(buttongrp, titlebar.firstChild);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._remove_fig_handler = function (event) {\n",
        "    var fig = event.data.fig;\n",
        "    if (event.target !== this) {\n",
        "        // Ignore bubbled events from children.\n",
        "        return;\n",
        "    }\n",
        "    fig.close_ws(fig, {});\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._root_extra_style = function (el) {\n",
        "    el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._canvas_extra_style = function (el) {\n",
        "    // this is important to make the div 'focusable\n",
        "    el.setAttribute('tabindex', 0);\n",
        "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
        "    // off when our div gets focus\n",
        "\n",
        "    // location in version 3\n",
        "    if (IPython.notebook.keyboard_manager) {\n",
        "        IPython.notebook.keyboard_manager.register_events(el);\n",
        "    } else {\n",
        "        // location in version 2\n",
        "        IPython.keyboard_manager.register_events(el);\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._key_event_extra = function (event, _name) {\n",
        "    var manager = IPython.notebook.keyboard_manager;\n",
        "    if (!manager) {\n",
        "        manager = IPython.keyboard_manager;\n",
        "    }\n",
        "\n",
        "    // Check for shift+enter\n",
        "    if (event.shiftKey && event.which === 13) {\n",
        "        this.canvas_div.blur();\n",
        "        // select the cell after this one\n",
        "        var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n",
        "        IPython.notebook.select(index + 1);\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
        "    fig.ondownload(fig, null);\n",
        "};\n",
        "\n",
        "mpl.find_output_cell = function (html_output) {\n",
        "    // Return the cell and output element which can be found *uniquely* in the notebook.\n",
        "    // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
        "    // IPython event is triggered only after the cells have been serialised, which for\n",
        "    // our purposes (turning an active figure into a static one), is too late.\n",
        "    var cells = IPython.notebook.get_cells();\n",
        "    var ncells = cells.length;\n",
        "    for (var i = 0; i < ncells; i++) {\n",
        "        var cell = cells[i];\n",
        "        if (cell.cell_type === 'code') {\n",
        "            for (var j = 0; j < cell.output_area.outputs.length; j++) {\n",
        "                var data = cell.output_area.outputs[j];\n",
        "                if (data.data) {\n",
        "                    // IPython >= 3 moved mimebundle to data attribute of output\n",
        "                    data = data.data;\n",
        "                }\n",
        "                if (data['text/html'] === html_output) {\n",
        "                    return [cell, data, j];\n",
        "                }\n",
        "            }\n",
        "        }\n",
        "    }\n",
        "};\n",
        "\n",
        "// Register the function which deals with the matplotlib target/channel.\n",
        "// The kernel may be null if the page has been refreshed.\n",
        "if (IPython.notebook.kernel !== null) {\n",
        "    IPython.notebook.kernel.comm_manager.register_target(\n",
        "        'matplotlib',\n",
        "        mpl.mpl_figure_comm\n",
        "    );\n",
        "}\n"
       ],
       "text/plain": [
        "<IPython.core.display.Javascript object>"
       ]
      },
      "metadata": {},
      "output_type": "display_data"
     },
     {
      "data": {
       "text/html": [
-       "<img src=\"data:image/png;base64,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\" width=\"900\">"
+       "<img src=\"data:image/png;base64,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\" width=\"900\">"
       ],
       "text/plain": [
        "<IPython.core.display.HTML object>"
       ]
      },
      "metadata": {},
      "output_type": "display_data"
     }
    ],
    "source": [
     "if True:\n",
     "    fig=plt.figure(figsize=(9,4))\n",
     "    fig.subplots_adjust(bottom=0.15, left=0.15, top = 0.95, right=0.9,wspace=0.0,hspace=0.0)\n",
     "    sub = fig.add_subplot(1,1,1)\n",
     "\n",
     "    T=np.logspace(-5,5,500)\n",
-    "    dg=[Cosmo.dgeffdT (i) for i in T]\n",
-    "    dh=[Cosmo.dheffdT(i) for i in T]\n",
+    "    dg=[cosmo.dgeffdT (i) for i in T]\n",
+    "    dh=[cosmo.dheffdT(i) for i in T]\n",
     "\n",
     "    sub.plot(T,dg,linestyle='--',c='xkcd:red',label=r\"$\\dfrac{d g_{\\rm eff}}{dT} (T)$\")\n",
     "    sub.plot(T,dh,linestyle=':',c='xkcd:black',label=r\"$\\dfrac{d h_{\\rm eff}}{dT} (T)$\")\n",
     "\n",
     "    sub.set_xlabel(r'$T ~ [{\\rm GeV}]$')\n",
     "\n",
     "    sub.legend(bbox_to_anchor=(1, 0.5),borderaxespad=0., \n",
     "               borderpad=0.05,ncol=1,loc='lower right',fontsize=14,framealpha=0)\n",
     "    sub.set_yscale('symlog')\n",
     "    sub.set_xscale('log')\n",
     "\n",
     "\n",
     "\n",
     "\n",
     "    fig.show()"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 5,
+   "execution_count": 6,
    "metadata": {},
    "outputs": [
     {
      "data": {
       "application/javascript": [
        "/* Put everything inside the global mpl namespace */\n",
        "/* global mpl */\n",
        "window.mpl = {};\n",
        "\n",
        "mpl.get_websocket_type = function () {\n",
        "    if (typeof WebSocket !== 'undefined') {\n",
        "        return WebSocket;\n",
        "    } else if (typeof MozWebSocket !== 'undefined') {\n",
        "        return MozWebSocket;\n",
        "    } else {\n",
        "        alert(\n",
        "            'Your browser does not have WebSocket support. ' +\n",
        "                'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
        "                'Firefox 4 and 5 are also supported but you ' +\n",
        "                'have to enable WebSockets in about:config.'\n",
        "        );\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n",
        "    this.id = figure_id;\n",
        "\n",
        "    this.ws = websocket;\n",
        "\n",
        "    this.supports_binary = this.ws.binaryType !== undefined;\n",
        "\n",
        "    if (!this.supports_binary) {\n",
        "        var warnings = document.getElementById('mpl-warnings');\n",
        "        if (warnings) {\n",
        "            warnings.style.display = 'block';\n",
        "            warnings.textContent =\n",
        "                'This browser does not support binary websocket messages. ' +\n",
        "                'Performance may be slow.';\n",
        "        }\n",
        "    }\n",
        "\n",
        "    this.imageObj = new Image();\n",
        "\n",
        "    this.context = undefined;\n",
        "    this.message = undefined;\n",
        "    this.canvas = undefined;\n",
        "    this.rubberband_canvas = undefined;\n",
        "    this.rubberband_context = undefined;\n",
        "    this.format_dropdown = undefined;\n",
        "\n",
        "    this.image_mode = 'full';\n",
        "\n",
        "    this.root = document.createElement('div');\n",
        "    this.root.setAttribute('style', 'display: inline-block');\n",
        "    this._root_extra_style(this.root);\n",
        "\n",
        "    parent_element.appendChild(this.root);\n",
        "\n",
        "    this._init_header(this);\n",
        "    this._init_canvas(this);\n",
        "    this._init_toolbar(this);\n",
        "\n",
        "    var fig = this;\n",
        "\n",
        "    this.waiting = false;\n",
        "\n",
        "    this.ws.onopen = function () {\n",
        "        fig.send_message('supports_binary', { value: fig.supports_binary });\n",
        "        fig.send_message('send_image_mode', {});\n",
        "        if (fig.ratio !== 1) {\n",
        "            fig.send_message('set_dpi_ratio', { dpi_ratio: fig.ratio });\n",
        "        }\n",
        "        fig.send_message('refresh', {});\n",
        "    };\n",
        "\n",
        "    this.imageObj.onload = function () {\n",
        "        if (fig.image_mode === 'full') {\n",
        "            // Full images could contain transparency (where diff images\n",
        "            // almost always do), so we need to clear the canvas so that\n",
        "            // there is no ghosting.\n",
        "            fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
        "        }\n",
        "        fig.context.drawImage(fig.imageObj, 0, 0);\n",
        "    };\n",
        "\n",
        "    this.imageObj.onunload = function () {\n",
        "        fig.ws.close();\n",
        "    };\n",
        "\n",
        "    this.ws.onmessage = this._make_on_message_function(this);\n",
        "\n",
        "    this.ondownload = ondownload;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._init_header = function () {\n",
        "    var titlebar = document.createElement('div');\n",
        "    titlebar.classList =\n",
        "        'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n",
        "    var titletext = document.createElement('div');\n",
        "    titletext.classList = 'ui-dialog-title';\n",
        "    titletext.setAttribute(\n",
        "        'style',\n",
        "        'width: 100%; text-align: center; padding: 3px;'\n",
        "    );\n",
        "    titlebar.appendChild(titletext);\n",
        "    this.root.appendChild(titlebar);\n",
        "    this.header = titletext;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n",
        "\n",
        "mpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n",
        "\n",
        "mpl.figure.prototype._init_canvas = function () {\n",
        "    var fig = this;\n",
        "\n",
        "    var canvas_div = (this.canvas_div = document.createElement('div'));\n",
        "    canvas_div.setAttribute(\n",
        "        'style',\n",
        "        'border: 1px solid #ddd;' +\n",
        "            'box-sizing: content-box;' +\n",
        "            'clear: both;' +\n",
        "            'min-height: 1px;' +\n",
        "            'min-width: 1px;' +\n",
        "            'outline: 0;' +\n",
        "            'overflow: hidden;' +\n",
        "            'position: relative;' +\n",
        "            'resize: both;'\n",
        "    );\n",
        "\n",
        "    function on_keyboard_event_closure(name) {\n",
        "        return function (event) {\n",
        "            return fig.key_event(event, name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    canvas_div.addEventListener(\n",
        "        'keydown',\n",
        "        on_keyboard_event_closure('key_press')\n",
        "    );\n",
        "    canvas_div.addEventListener(\n",
        "        'keyup',\n",
        "        on_keyboard_event_closure('key_release')\n",
        "    );\n",
        "\n",
        "    this._canvas_extra_style(canvas_div);\n",
        "    this.root.appendChild(canvas_div);\n",
        "\n",
        "    var canvas = (this.canvas = document.createElement('canvas'));\n",
        "    canvas.classList.add('mpl-canvas');\n",
        "    canvas.setAttribute('style', 'box-sizing: content-box;');\n",
        "\n",
        "    this.context = canvas.getContext('2d');\n",
        "\n",
        "    var backingStore =\n",
        "        this.context.backingStorePixelRatio ||\n",
        "        this.context.webkitBackingStorePixelRatio ||\n",
        "        this.context.mozBackingStorePixelRatio ||\n",
        "        this.context.msBackingStorePixelRatio ||\n",
        "        this.context.oBackingStorePixelRatio ||\n",
        "        this.context.backingStorePixelRatio ||\n",
        "        1;\n",
        "\n",
        "    this.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
        "\n",
        "    var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n",
        "        'canvas'\n",
        "    ));\n",
        "    rubberband_canvas.setAttribute(\n",
        "        'style',\n",
        "        'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n",
        "    );\n",
        "\n",
        "    // Apply a ponyfill if ResizeObserver is not implemented by browser.\n",
        "    if (this.ResizeObserver === undefined) {\n",
        "        if (window.ResizeObserver !== undefined) {\n",
        "            this.ResizeObserver = window.ResizeObserver;\n",
        "        } else {\n",
        "            var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n",
        "            this.ResizeObserver = obs.ResizeObserver;\n",
        "        }\n",
        "    }\n",
        "\n",
        "    this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n",
        "        var nentries = entries.length;\n",
        "        for (var i = 0; i < nentries; i++) {\n",
        "            var entry = entries[i];\n",
        "            var width, height;\n",
        "            if (entry.contentBoxSize) {\n",
        "                if (entry.contentBoxSize instanceof Array) {\n",
        "                    // Chrome 84 implements new version of spec.\n",
        "                    width = entry.contentBoxSize[0].inlineSize;\n",
        "                    height = entry.contentBoxSize[0].blockSize;\n",
        "                } else {\n",
        "                    // Firefox implements old version of spec.\n",
        "                    width = entry.contentBoxSize.inlineSize;\n",
        "                    height = entry.contentBoxSize.blockSize;\n",
        "                }\n",
        "            } else {\n",
        "                // Chrome <84 implements even older version of spec.\n",
        "                width = entry.contentRect.width;\n",
        "                height = entry.contentRect.height;\n",
        "            }\n",
        "\n",
        "            // Keep the size of the canvas and rubber band canvas in sync with\n",
        "            // the canvas container.\n",
        "            if (entry.devicePixelContentBoxSize) {\n",
        "                // Chrome 84 implements new version of spec.\n",
        "                canvas.setAttribute(\n",
        "                    'width',\n",
        "                    entry.devicePixelContentBoxSize[0].inlineSize\n",
        "                );\n",
        "                canvas.setAttribute(\n",
        "                    'height',\n",
        "                    entry.devicePixelContentBoxSize[0].blockSize\n",
        "                );\n",
        "            } else {\n",
        "                canvas.setAttribute('width', width * fig.ratio);\n",
        "                canvas.setAttribute('height', height * fig.ratio);\n",
        "            }\n",
        "            canvas.setAttribute(\n",
        "                'style',\n",
        "                'width: ' + width + 'px; height: ' + height + 'px;'\n",
        "            );\n",
        "\n",
        "            rubberband_canvas.setAttribute('width', width);\n",
        "            rubberband_canvas.setAttribute('height', height);\n",
        "\n",
        "            // And update the size in Python. We ignore the initial 0/0 size\n",
        "            // that occurs as the element is placed into the DOM, which should\n",
        "            // otherwise not happen due to the minimum size styling.\n",
        "            if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n",
        "                fig.request_resize(width, height);\n",
        "            }\n",
        "        }\n",
        "    });\n",
        "    this.resizeObserverInstance.observe(canvas_div);\n",
        "\n",
        "    function on_mouse_event_closure(name) {\n",
        "        return function (event) {\n",
        "            return fig.mouse_event(event, name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mousedown',\n",
        "        on_mouse_event_closure('button_press')\n",
        "    );\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mouseup',\n",
        "        on_mouse_event_closure('button_release')\n",
        "    );\n",
        "    // Throttle sequential mouse events to 1 every 20ms.\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mousemove',\n",
        "        on_mouse_event_closure('motion_notify')\n",
        "    );\n",
        "\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mouseenter',\n",
        "        on_mouse_event_closure('figure_enter')\n",
        "    );\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mouseleave',\n",
        "        on_mouse_event_closure('figure_leave')\n",
        "    );\n",
        "\n",
        "    canvas_div.addEventListener('wheel', function (event) {\n",
        "        if (event.deltaY < 0) {\n",
        "            event.step = 1;\n",
        "        } else {\n",
        "            event.step = -1;\n",
        "        }\n",
        "        on_mouse_event_closure('scroll')(event);\n",
        "    });\n",
        "\n",
        "    canvas_div.appendChild(canvas);\n",
        "    canvas_div.appendChild(rubberband_canvas);\n",
        "\n",
        "    this.rubberband_context = rubberband_canvas.getContext('2d');\n",
        "    this.rubberband_context.strokeStyle = '#000000';\n",
        "\n",
        "    this._resize_canvas = function (width, height, forward) {\n",
        "        if (forward) {\n",
        "            canvas_div.style.width = width + 'px';\n",
        "            canvas_div.style.height = height + 'px';\n",
        "        }\n",
        "    };\n",
        "\n",
        "    // Disable right mouse context menu.\n",
        "    this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n",
        "        event.preventDefault();\n",
        "        return false;\n",
        "    });\n",
        "\n",
        "    function set_focus() {\n",
        "        canvas.focus();\n",
        "        canvas_div.focus();\n",
        "    }\n",
        "\n",
        "    window.setTimeout(set_focus, 100);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._init_toolbar = function () {\n",
        "    var fig = this;\n",
        "\n",
        "    var toolbar = document.createElement('div');\n",
        "    toolbar.classList = 'mpl-toolbar';\n",
        "    this.root.appendChild(toolbar);\n",
        "\n",
        "    function on_click_closure(name) {\n",
        "        return function (_event) {\n",
        "            return fig.toolbar_button_onclick(name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    function on_mouseover_closure(tooltip) {\n",
        "        return function (event) {\n",
        "            if (!event.currentTarget.disabled) {\n",
        "                return fig.toolbar_button_onmouseover(tooltip);\n",
        "            }\n",
        "        };\n",
        "    }\n",
        "\n",
        "    fig.buttons = {};\n",
        "    var buttonGroup = document.createElement('div');\n",
        "    buttonGroup.classList = 'mpl-button-group';\n",
        "    for (var toolbar_ind in mpl.toolbar_items) {\n",
        "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
        "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
        "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
        "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
        "\n",
        "        if (!name) {\n",
        "            /* Instead of a spacer, we start a new button group. */\n",
        "            if (buttonGroup.hasChildNodes()) {\n",
        "                toolbar.appendChild(buttonGroup);\n",
        "            }\n",
        "            buttonGroup = document.createElement('div');\n",
        "            buttonGroup.classList = 'mpl-button-group';\n",
        "            continue;\n",
        "        }\n",
        "\n",
        "        var button = (fig.buttons[name] = document.createElement('button'));\n",
        "        button.classList = 'mpl-widget';\n",
        "        button.setAttribute('role', 'button');\n",
        "        button.setAttribute('aria-disabled', 'false');\n",
        "        button.addEventListener('click', on_click_closure(method_name));\n",
        "        button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
        "\n",
        "        var icon_img = document.createElement('img');\n",
        "        icon_img.src = '_images/' + image + '.png';\n",
        "        icon_img.srcset = '_images/' + image + '_large.png 2x';\n",
        "        icon_img.alt = tooltip;\n",
        "        button.appendChild(icon_img);\n",
        "\n",
        "        buttonGroup.appendChild(button);\n",
        "    }\n",
        "\n",
        "    if (buttonGroup.hasChildNodes()) {\n",
        "        toolbar.appendChild(buttonGroup);\n",
        "    }\n",
        "\n",
        "    var fmt_picker = document.createElement('select');\n",
        "    fmt_picker.classList = 'mpl-widget';\n",
        "    toolbar.appendChild(fmt_picker);\n",
        "    this.format_dropdown = fmt_picker;\n",
        "\n",
        "    for (var ind in mpl.extensions) {\n",
        "        var fmt = mpl.extensions[ind];\n",
        "        var option = document.createElement('option');\n",
        "        option.selected = fmt === mpl.default_extension;\n",
        "        option.innerHTML = fmt;\n",
        "        fmt_picker.appendChild(option);\n",
        "    }\n",
        "\n",
        "    var status_bar = document.createElement('span');\n",
        "    status_bar.classList = 'mpl-message';\n",
        "    toolbar.appendChild(status_bar);\n",
        "    this.message = status_bar;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n",
        "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
        "    // which will in turn request a refresh of the image.\n",
        "    this.send_message('resize', { width: x_pixels, height: y_pixels });\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.send_message = function (type, properties) {\n",
        "    properties['type'] = type;\n",
        "    properties['figure_id'] = this.id;\n",
        "    this.ws.send(JSON.stringify(properties));\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.send_draw_message = function () {\n",
        "    if (!this.waiting) {\n",
        "        this.waiting = true;\n",
        "        this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
        "    var format_dropdown = fig.format_dropdown;\n",
        "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
        "    fig.ondownload(fig, format);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_resize = function (fig, msg) {\n",
        "    var size = msg['size'];\n",
        "    if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n",
        "        fig._resize_canvas(size[0], size[1], msg['forward']);\n",
        "        fig.send_message('refresh', {});\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_rubberband = function (fig, msg) {\n",
        "    var x0 = msg['x0'] / fig.ratio;\n",
        "    var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n",
        "    var x1 = msg['x1'] / fig.ratio;\n",
        "    var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n",
        "    x0 = Math.floor(x0) + 0.5;\n",
        "    y0 = Math.floor(y0) + 0.5;\n",
        "    x1 = Math.floor(x1) + 0.5;\n",
        "    y1 = Math.floor(y1) + 0.5;\n",
        "    var min_x = Math.min(x0, x1);\n",
        "    var min_y = Math.min(y0, y1);\n",
        "    var width = Math.abs(x1 - x0);\n",
        "    var height = Math.abs(y1 - y0);\n",
        "\n",
        "    fig.rubberband_context.clearRect(\n",
        "        0,\n",
        "        0,\n",
        "        fig.canvas.width / fig.ratio,\n",
        "        fig.canvas.height / fig.ratio\n",
        "    );\n",
        "\n",
        "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_figure_label = function (fig, msg) {\n",
        "    // Updates the figure title.\n",
        "    fig.header.textContent = msg['label'];\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_cursor = function (fig, msg) {\n",
        "    var cursor = msg['cursor'];\n",
        "    switch (cursor) {\n",
        "        case 0:\n",
        "            cursor = 'pointer';\n",
        "            break;\n",
        "        case 1:\n",
        "            cursor = 'default';\n",
        "            break;\n",
        "        case 2:\n",
        "            cursor = 'crosshair';\n",
        "            break;\n",
        "        case 3:\n",
        "            cursor = 'move';\n",
        "            break;\n",
        "    }\n",
        "    fig.rubberband_canvas.style.cursor = cursor;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_message = function (fig, msg) {\n",
        "    fig.message.textContent = msg['message'];\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_draw = function (fig, _msg) {\n",
        "    // Request the server to send over a new figure.\n",
        "    fig.send_draw_message();\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_image_mode = function (fig, msg) {\n",
        "    fig.image_mode = msg['mode'];\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n",
        "    for (var key in msg) {\n",
        "        if (!(key in fig.buttons)) {\n",
        "            continue;\n",
        "        }\n",
        "        fig.buttons[key].disabled = !msg[key];\n",
        "        fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n",
        "    if (msg['mode'] === 'PAN') {\n",
        "        fig.buttons['Pan'].classList.add('active');\n",
        "        fig.buttons['Zoom'].classList.remove('active');\n",
        "    } else if (msg['mode'] === 'ZOOM') {\n",
        "        fig.buttons['Pan'].classList.remove('active');\n",
        "        fig.buttons['Zoom'].classList.add('active');\n",
        "    } else {\n",
        "        fig.buttons['Pan'].classList.remove('active');\n",
        "        fig.buttons['Zoom'].classList.remove('active');\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.updated_canvas_event = function () {\n",
        "    // Called whenever the canvas gets updated.\n",
        "    this.send_message('ack', {});\n",
        "};\n",
        "\n",
        "// A function to construct a web socket function for onmessage handling.\n",
        "// Called in the figure constructor.\n",
        "mpl.figure.prototype._make_on_message_function = function (fig) {\n",
        "    return function socket_on_message(evt) {\n",
        "        if (evt.data instanceof Blob) {\n",
        "            /* FIXME: We get \"Resource interpreted as Image but\n",
        "             * transferred with MIME type text/plain:\" errors on\n",
        "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
        "             * to be part of the websocket stream */\n",
        "            evt.data.type = 'image/png';\n",
        "\n",
        "            /* Free the memory for the previous frames */\n",
        "            if (fig.imageObj.src) {\n",
        "                (window.URL || window.webkitURL).revokeObjectURL(\n",
        "                    fig.imageObj.src\n",
        "                );\n",
        "            }\n",
        "\n",
        "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
        "                evt.data\n",
        "            );\n",
        "            fig.updated_canvas_event();\n",
        "            fig.waiting = false;\n",
        "            return;\n",
        "        } else if (\n",
        "            typeof evt.data === 'string' &&\n",
        "            evt.data.slice(0, 21) === 'data:image/png;base64'\n",
        "        ) {\n",
        "            fig.imageObj.src = evt.data;\n",
        "            fig.updated_canvas_event();\n",
        "            fig.waiting = false;\n",
        "            return;\n",
        "        }\n",
        "\n",
        "        var msg = JSON.parse(evt.data);\n",
        "        var msg_type = msg['type'];\n",
        "\n",
        "        // Call the  \"handle_{type}\" callback, which takes\n",
        "        // the figure and JSON message as its only arguments.\n",
        "        try {\n",
        "            var callback = fig['handle_' + msg_type];\n",
        "        } catch (e) {\n",
        "            console.log(\n",
        "                \"No handler for the '\" + msg_type + \"' message type: \",\n",
        "                msg\n",
        "            );\n",
        "            return;\n",
        "        }\n",
        "\n",
        "        if (callback) {\n",
        "            try {\n",
        "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
        "                callback(fig, msg);\n",
        "            } catch (e) {\n",
        "                console.log(\n",
        "                    \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n",
        "                    e,\n",
        "                    e.stack,\n",
        "                    msg\n",
        "                );\n",
        "            }\n",
        "        }\n",
        "    };\n",
        "};\n",
        "\n",
        "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
        "mpl.findpos = function (e) {\n",
        "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
        "    var targ;\n",
        "    if (!e) {\n",
        "        e = window.event;\n",
        "    }\n",
        "    if (e.target) {\n",
        "        targ = e.target;\n",
        "    } else if (e.srcElement) {\n",
        "        targ = e.srcElement;\n",
        "    }\n",
        "    if (targ.nodeType === 3) {\n",
        "        // defeat Safari bug\n",
        "        targ = targ.parentNode;\n",
        "    }\n",
        "\n",
        "    // pageX,Y are the mouse positions relative to the document\n",
        "    var boundingRect = targ.getBoundingClientRect();\n",
        "    var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n",
        "    var y = e.pageY - (boundingRect.top + document.body.scrollTop);\n",
        "\n",
        "    return { x: x, y: y };\n",
        "};\n",
        "\n",
        "/*\n",
        " * return a copy of an object with only non-object keys\n",
        " * we need this to avoid circular references\n",
        " * http://stackoverflow.com/a/24161582/3208463\n",
        " */\n",
        "function simpleKeys(original) {\n",
        "    return Object.keys(original).reduce(function (obj, key) {\n",
        "        if (typeof original[key] !== 'object') {\n",
        "            obj[key] = original[key];\n",
        "        }\n",
        "        return obj;\n",
        "    }, {});\n",
        "}\n",
        "\n",
        "mpl.figure.prototype.mouse_event = function (event, name) {\n",
        "    var canvas_pos = mpl.findpos(event);\n",
        "\n",
        "    if (name === 'button_press') {\n",
        "        this.canvas.focus();\n",
        "        this.canvas_div.focus();\n",
        "    }\n",
        "\n",
        "    var x = canvas_pos.x * this.ratio;\n",
        "    var y = canvas_pos.y * this.ratio;\n",
        "\n",
        "    this.send_message(name, {\n",
        "        x: x,\n",
        "        y: y,\n",
        "        button: event.button,\n",
        "        step: event.step,\n",
        "        guiEvent: simpleKeys(event),\n",
        "    });\n",
        "\n",
        "    /* This prevents the web browser from automatically changing to\n",
        "     * the text insertion cursor when the button is pressed.  We want\n",
        "     * to control all of the cursor setting manually through the\n",
        "     * 'cursor' event from matplotlib */\n",
        "    event.preventDefault();\n",
        "    return false;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._key_event_extra = function (_event, _name) {\n",
        "    // Handle any extra behaviour associated with a key event\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.key_event = function (event, name) {\n",
        "    // Prevent repeat events\n",
        "    if (name === 'key_press') {\n",
        "        if (event.which === this._key) {\n",
        "            return;\n",
        "        } else {\n",
        "            this._key = event.which;\n",
        "        }\n",
        "    }\n",
        "    if (name === 'key_release') {\n",
        "        this._key = null;\n",
        "    }\n",
        "\n",
        "    var value = '';\n",
        "    if (event.ctrlKey && event.which !== 17) {\n",
        "        value += 'ctrl+';\n",
        "    }\n",
        "    if (event.altKey && event.which !== 18) {\n",
        "        value += 'alt+';\n",
        "    }\n",
        "    if (event.shiftKey && event.which !== 16) {\n",
        "        value += 'shift+';\n",
        "    }\n",
        "\n",
        "    value += 'k';\n",
        "    value += event.which.toString();\n",
        "\n",
        "    this._key_event_extra(event, name);\n",
        "\n",
        "    this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n",
        "    return false;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.toolbar_button_onclick = function (name) {\n",
        "    if (name === 'download') {\n",
        "        this.handle_save(this, null);\n",
        "    } else {\n",
        "        this.send_message('toolbar_button', { name: name });\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n",
        "    this.message.textContent = tooltip;\n",
        "};\n",
        "\n",
        "///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n",
        "// prettier-ignore\n",
        "var _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\n",
        "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
        "\n",
        "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
        "\n",
        "mpl.default_extension = \"png\";/* global mpl */\n",
        "\n",
        "var comm_websocket_adapter = function (comm) {\n",
        "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
        "    // object with the appropriate methods. Currently this is a non binary\n",
        "    // socket, so there is still some room for performance tuning.\n",
        "    var ws = {};\n",
        "\n",
        "    ws.close = function () {\n",
        "        comm.close();\n",
        "    };\n",
        "    ws.send = function (m) {\n",
        "        //console.log('sending', m);\n",
        "        comm.send(m);\n",
        "    };\n",
        "    // Register the callback with on_msg.\n",
        "    comm.on_msg(function (msg) {\n",
        "        //console.log('receiving', msg['content']['data'], msg);\n",
        "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
        "        ws.onmessage(msg['content']['data']);\n",
        "    });\n",
        "    return ws;\n",
        "};\n",
        "\n",
        "mpl.mpl_figure_comm = function (comm, msg) {\n",
        "    // This is the function which gets called when the mpl process\n",
        "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
        "\n",
        "    var id = msg.content.data.id;\n",
        "    // Get hold of the div created by the display call when the Comm\n",
        "    // socket was opened in Python.\n",
        "    var element = document.getElementById(id);\n",
        "    var ws_proxy = comm_websocket_adapter(comm);\n",
        "\n",
        "    function ondownload(figure, _format) {\n",
        "        window.open(figure.canvas.toDataURL());\n",
        "    }\n",
        "\n",
        "    var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n",
        "\n",
        "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
        "    // web socket which is closed, not our websocket->open comm proxy.\n",
        "    ws_proxy.onopen();\n",
        "\n",
        "    fig.parent_element = element;\n",
        "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
        "    if (!fig.cell_info) {\n",
        "        console.error('Failed to find cell for figure', id, fig);\n",
        "        return;\n",
        "    }\n",
        "    fig.cell_info[0].output_area.element.on(\n",
        "        'cleared',\n",
        "        { fig: fig },\n",
        "        fig._remove_fig_handler\n",
        "    );\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_close = function (fig, msg) {\n",
        "    var width = fig.canvas.width / fig.ratio;\n",
        "    fig.cell_info[0].output_area.element.off(\n",
        "        'cleared',\n",
        "        fig._remove_fig_handler\n",
        "    );\n",
        "    fig.resizeObserverInstance.unobserve(fig.canvas_div);\n",
        "\n",
        "    // Update the output cell to use the data from the current canvas.\n",
        "    fig.push_to_output();\n",
        "    var dataURL = fig.canvas.toDataURL();\n",
        "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
        "    // the notebook keyboard shortcuts fail.\n",
        "    IPython.keyboard_manager.enable();\n",
        "    fig.parent_element.innerHTML =\n",
        "        '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
        "    fig.close_ws(fig, msg);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.close_ws = function (fig, msg) {\n",
        "    fig.send_message('closing', msg);\n",
        "    // fig.ws.close()\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.push_to_output = function (_remove_interactive) {\n",
        "    // Turn the data on the canvas into data in the output cell.\n",
        "    var width = this.canvas.width / this.ratio;\n",
        "    var dataURL = this.canvas.toDataURL();\n",
        "    this.cell_info[1]['text/html'] =\n",
        "        '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.updated_canvas_event = function () {\n",
        "    // Tell IPython that the notebook contents must change.\n",
        "    IPython.notebook.set_dirty(true);\n",
        "    this.send_message('ack', {});\n",
        "    var fig = this;\n",
        "    // Wait a second, then push the new image to the DOM so\n",
        "    // that it is saved nicely (might be nice to debounce this).\n",
        "    setTimeout(function () {\n",
        "        fig.push_to_output();\n",
        "    }, 1000);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._init_toolbar = function () {\n",
        "    var fig = this;\n",
        "\n",
        "    var toolbar = document.createElement('div');\n",
        "    toolbar.classList = 'btn-toolbar';\n",
        "    this.root.appendChild(toolbar);\n",
        "\n",
        "    function on_click_closure(name) {\n",
        "        return function (_event) {\n",
        "            return fig.toolbar_button_onclick(name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    function on_mouseover_closure(tooltip) {\n",
        "        return function (event) {\n",
        "            if (!event.currentTarget.disabled) {\n",
        "                return fig.toolbar_button_onmouseover(tooltip);\n",
        "            }\n",
        "        };\n",
        "    }\n",
        "\n",
        "    fig.buttons = {};\n",
        "    var buttonGroup = document.createElement('div');\n",
        "    buttonGroup.classList = 'btn-group';\n",
        "    var button;\n",
        "    for (var toolbar_ind in mpl.toolbar_items) {\n",
        "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
        "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
        "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
        "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
        "\n",
        "        if (!name) {\n",
        "            /* Instead of a spacer, we start a new button group. */\n",
        "            if (buttonGroup.hasChildNodes()) {\n",
        "                toolbar.appendChild(buttonGroup);\n",
        "            }\n",
        "            buttonGroup = document.createElement('div');\n",
        "            buttonGroup.classList = 'btn-group';\n",
        "            continue;\n",
        "        }\n",
        "\n",
        "        button = fig.buttons[name] = document.createElement('button');\n",
        "        button.classList = 'btn btn-default';\n",
        "        button.href = '#';\n",
        "        button.title = name;\n",
        "        button.innerHTML = '<i class=\"fa ' + image + ' fa-lg\"></i>';\n",
        "        button.addEventListener('click', on_click_closure(method_name));\n",
        "        button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
        "        buttonGroup.appendChild(button);\n",
        "    }\n",
        "\n",
        "    if (buttonGroup.hasChildNodes()) {\n",
        "        toolbar.appendChild(buttonGroup);\n",
        "    }\n",
        "\n",
        "    // Add the status bar.\n",
        "    var status_bar = document.createElement('span');\n",
        "    status_bar.classList = 'mpl-message pull-right';\n",
        "    toolbar.appendChild(status_bar);\n",
        "    this.message = status_bar;\n",
        "\n",
        "    // Add the close button to the window.\n",
        "    var buttongrp = document.createElement('div');\n",
        "    buttongrp.classList = 'btn-group inline pull-right';\n",
        "    button = document.createElement('button');\n",
        "    button.classList = 'btn btn-mini btn-primary';\n",
        "    button.href = '#';\n",
        "    button.title = 'Stop Interaction';\n",
        "    button.innerHTML = '<i class=\"fa fa-power-off icon-remove icon-large\"></i>';\n",
        "    button.addEventListener('click', function (_evt) {\n",
        "        fig.handle_close(fig, {});\n",
        "    });\n",
        "    button.addEventListener(\n",
        "        'mouseover',\n",
        "        on_mouseover_closure('Stop Interaction')\n",
        "    );\n",
        "    buttongrp.appendChild(button);\n",
        "    var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n",
        "    titlebar.insertBefore(buttongrp, titlebar.firstChild);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._remove_fig_handler = function (event) {\n",
        "    var fig = event.data.fig;\n",
        "    if (event.target !== this) {\n",
        "        // Ignore bubbled events from children.\n",
        "        return;\n",
        "    }\n",
        "    fig.close_ws(fig, {});\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._root_extra_style = function (el) {\n",
        "    el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._canvas_extra_style = function (el) {\n",
        "    // this is important to make the div 'focusable\n",
        "    el.setAttribute('tabindex', 0);\n",
        "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
        "    // off when our div gets focus\n",
        "\n",
        "    // location in version 3\n",
        "    if (IPython.notebook.keyboard_manager) {\n",
        "        IPython.notebook.keyboard_manager.register_events(el);\n",
        "    } else {\n",
        "        // location in version 2\n",
        "        IPython.keyboard_manager.register_events(el);\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._key_event_extra = function (event, _name) {\n",
        "    var manager = IPython.notebook.keyboard_manager;\n",
        "    if (!manager) {\n",
        "        manager = IPython.keyboard_manager;\n",
        "    }\n",
        "\n",
        "    // Check for shift+enter\n",
        "    if (event.shiftKey && event.which === 13) {\n",
        "        this.canvas_div.blur();\n",
        "        // select the cell after this one\n",
        "        var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n",
        "        IPython.notebook.select(index + 1);\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
        "    fig.ondownload(fig, null);\n",
        "};\n",
        "\n",
        "mpl.find_output_cell = function (html_output) {\n",
        "    // Return the cell and output element which can be found *uniquely* in the notebook.\n",
        "    // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
        "    // IPython event is triggered only after the cells have been serialised, which for\n",
        "    // our purposes (turning an active figure into a static one), is too late.\n",
        "    var cells = IPython.notebook.get_cells();\n",
        "    var ncells = cells.length;\n",
        "    for (var i = 0; i < ncells; i++) {\n",
        "        var cell = cells[i];\n",
        "        if (cell.cell_type === 'code') {\n",
        "            for (var j = 0; j < cell.output_area.outputs.length; j++) {\n",
        "                var data = cell.output_area.outputs[j];\n",
        "                if (data.data) {\n",
        "                    // IPython >= 3 moved mimebundle to data attribute of output\n",
        "                    data = data.data;\n",
        "                }\n",
        "                if (data['text/html'] === html_output) {\n",
        "                    return [cell, data, j];\n",
        "                }\n",
        "            }\n",
        "        }\n",
        "    }\n",
        "};\n",
        "\n",
        "// Register the function which deals with the matplotlib target/channel.\n",
        "// The kernel may be null if the page has been refreshed.\n",
        "if (IPython.notebook.kernel !== null) {\n",
        "    IPython.notebook.kernel.comm_manager.register_target(\n",
        "        'matplotlib',\n",
        "        mpl.mpl_figure_comm\n",
        "    );\n",
        "}\n"
       ],
       "text/plain": [
        "<IPython.core.display.Javascript object>"
       ]
      },
      "metadata": {},
      "output_type": "display_data"
     },
     {
      "data": {
       "text/html": [
-       "<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4QAAAGQCAYAAAD2lq6fAAAgAElEQVR4nOzde5xN9f4/8NeecR23mFwixv0nilyKUm6lUpRbKCGXJJcmCpUcx1BRpENRU5JuLonICaFJyImDyJ3GNcol12ZGzH79/jjf2Q/T7DGzZ9b6fPaeeT0fj/V4fK291me955u3837N3nstUERERERERHIl2C5ARERERERE7FAgFBERERERyaUUCEVERERERHIpBUIREREREZFcSoFQREREREQkl1IgFBERERERyaUUCEVERERERHIpBUIREREREZFcSoFQREREREQkl1IgFBERERERyaUUCEVERERERHIpBUIREREREZFcSoFQREREREQkl1IgFBERERERyaUUCEVERERERHIpBUIREREREZFcSoFQREREREQkl1IgNCw+Pp6xsbHs06cPa9euzfDwcALgmDFjsr32nDlzeO+997JUqVLMly8fy5Yty3vvvZfTp093oHIREREREclpFAgNi46OJoA0W3YCYVJSEh988EHfWpUrV+Ytt9zC8uXLMywsjPXr1w94zeTkZB4+fJhnzpzh2bNntWnTpk2bNm3atGkztp05c4aHDx9mcnJylmdkyRwFQsPGjBnD1q1bMyYmhkuWLGGHDh2yHQgfeeQRAmCTJk24a9euVK8dP36cy5YtC3jNw4cP+w2u2rRp06ZNmzZt2rSZ2g4fPpzlGVkyR4HQsh49ehDIeiBcsmQJAbBGjRpMSEhwrK4zZ874mtD2b4i0adOmTZs2bdq05a4t5c2JM2fOODbfin8KhJZlNxDee++9BMBPPvnE0brOnj1LADx79qyj64qIiIiIZESzqDkKhJZlJxAmJCQwT5489Hg8PH36NOPi4tirVy+2aNGC7du356RJk3ju3Lks1aUmFBERERFbNIuao0BoWXYC4bp16wiA5cqV4/PPP+/3c9dly5bl5s2bA15bTSgiIiIitmgWNUeB0LLsBML58+cTAPPmzUsAbNOmDXft2sWLFy9y/fr1rFevHgGwQoUKPH/+/FXXSkpK8vu5bTWhiIiIiJimQGiOAqFl2QmEH3/8se+dwMqVK/Ovv/5K9fqxY8cYERFBAJw8efJV1xo1apTfdxjVhCIiIiJimgKhOQqElmUnEH7++ee+4DZhwgS/x/Tq1YsAeP/99191Lb1DKCIi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VHQNIxsbG4ioszYd1Qz2NfEzYDnY15aB/Ux0FwMhkREqsjMBgIEDB0JEMHXq1FI/i4yMhIjA3d0d+fn5NVUqGYl9TfwMWA72tWVgPxPdxUBIZISK7kzi4+NhZWUFa2tr7N69W3n85MmT8PDwgIjg3XffrelyyQjsa+JnwHKwry0D+5noLgZCokqIj4+Hu7u70uzs7CAicHR0LPF4ampqqdcuX75cWWuqVatW8PPzg7W1NUQEzz33HIqKijR4R1QW9jXxM2A52NeWgf1MZBgDIVElxMXFlVpI2FBLTk42+PqvvvoKffv2hYuLCxwdHfHYY49h3bp13JGYIPY18TNgOdjXloH9TGQYAyEREREREZGFYiAkIiIiIiKyUAyEREREREREFoqBkIiIiIiIyEIxEBIREREREVkoBkIiIiIiIiILxUBIRERERERkoRgIiYiIiIiILBQDIRERERERkYViICQiIiIiIrJQDIREREREREQWioGQiIiIiIjIQjEQEhERERERWSgGQiIiMistWrSAiMDe3h6tW7eGn58fRAQigrZt2+Lxxx+Hm5sbRAQNGjSATqfTumQiIiLNMBASEZHZ+PPPP+Hm5oYvv/wSRUVFAICTJ09CRGBtbY2MjAwAQH5+Pl566SW88MILBrejf/6ECRMwb948REREGHzehQsX8NZbb6FLly7w8PCAp6cnnJ2dlQAqIvD09Kz0+4iOjkb37t2VbTz00EMIDQ3F5cuXSzyvqKgI4eHhaN++PUQETz75JH788Uf873//w7x58zB37ly0adMGIoIlS5ZUug4iIjJ/DIRERGQ2IiIiEBUVVeKxNWvWQETQrVu3Eo9/99132LBhg8HtiAieeOKJMn+PTqfDsmXLULduXfj6+uKLL75Abm6u8rNjx46hX79+EBG4ublV6b3cuXMHrVu3hojgqaeeKve5wcHB8PHxQV5eXqmfff311wyERERUJgZCIiIyG9HR0aUeGzRoEEQEixYtKvH48ePH8eeffxrcjoigT58+Zf6eV199VQlqd+7cMfgcnU6HoUOHwt7evuJv4D579+6FiMDKygp//fVXmc/r2bMntm/fbvBncXFxDIRERFQmBkIiIjJbhYWFcHJygojg8OHDFX5deYHwiy++gIjA0dER165dK3c76enpcHFxqfJ1ijqdDu3atYOIYNq0aQafc+rUKTRq1Mjg0UGAgZCIiMrHQEhERGYrPj4eIgInJycUFBRU+HXlBcJu3bpBRBAYGFihbe3cubPU705MTMTo0aPRu3dveHh4oFevXoiLizP4+u3bt0NEYGdnh7///rvUz6dMmYK33367zN/PQEhEROVhICQiIrO1bNkyiAiee+65Sr2urEB4/fp1WFlZQUSwdevWKtV06NAhdO3aFf/88w+Au0cRvb29YWNjg59//rnU8wsLC/Hwww9DRDB//vwSP8vIyICzszNSU1PL/H0MhEREVB4GQiIiMlu9e/eGiOD999+v1OvKCoS//fabcufPmJiYMl+fkJCAuLi4Eu3YsWMoKChA8+bNS13rGBISAhEp866nH374IUQEzs7Oyp1SASAsLAzDhw8v970wEBIRUXkYCImIyCzdunULtra2EBGcPXu2Uq8tKxD+8ssvSiA8cOBAma9PSUnB1q1bledOnDgRycnJOHDgAEQE/fr1w7Bhw5TWt29f+Pj4YMiQIQa3l5eXh6ZNm0JEEBwcDAAoLi5Gy5YtcejQoXLfCwMhERGVh4GQiIjMUmxsLEQEzZo1q/RrywqEqampSsjbtm3bA7fTuHFjiAgOHjwIAAgPD4eI4Pz585WuSf/ahg0b4vbt24iOjkb79u0f+DoGQiIiKg8DIRERmaX/+7//U47OVVZ5N5XRrw0YEBDwwO14eXlBRJQbxoSGhpb4d2XcunUL7u7uEBGsW7cO/v7+2Lhx4wNfx0BIRETlYSAkIiKz1LFjR4gIdu/eXenXlhcIIyIilLt+pqSklLud+wPhjh07ICKYOXOmwecnJCSUe/RQf5Mcd3d3uLi44ObNmw98LwyERERUHgZCIiIyO+np6bC2toaIPHCtQEPKC4TFxcUYPnw4RASdOnXCjRs3ytzO/YHw6tWrsLGxQZ06dfDNN9+UeO7vv/+OQYMGlVuX/q6iIoLZs2dX6L0wEBIRUXkYCImIyOysXbtWOZJWFeUFQgAoKirCwoULYWtri+bNm2Pr1q0l7v6Zm5uLnTt3wtraGg0aNMAff/yh/Gzp0qUQEVhbW2PYsGFYsGABxo4dC09PT/z+++8PrO2tt96ClZUVzp07V6H3wkBIRETlYSAkIiKzER8fj6lTp8LOzk65+curr76KyMjISm3nQYFQ7/LlywgODsa//vUvNGnSBM2aNUPbtm3Rpk0bDBo0COvXr0d6enqp123atAm+vr6wtbVFs2bNEBAQgAsXLlSotn/++QfDhg2r8HthICQiovIwEBIREd2nooGwNmAgJCKi8jAQEhER3YeBkIiILAUDIRER0X1EBD4+PtDpdFqXYrTo6GgGQiIiKtP/AwAaYHYQiqQnAAAAAElFTkSuQmCC\" width=\"900\">"
+       "<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4QAAAGQCAYAAAD2lq6fAAAgAElEQVR4nOzde5xN9f4/8NeecR23mFwixv0nilyKUm6lUpRbKCGXJJcmCpUcx1BRpENRU5JuLonICaFJyImDyJ3GNcol12ZGzH79/jjf2Q/T7DGzZ9b6fPaeeT0fj/V4fK291me955u3837N3nstUERERERERHIl2C5ARERERERE7FAgFBERERERyaUUCEVERERERHIpBUIREREREZFcSoFQREREREQkl1IgFBERERERyaUUCEVERERERHIpBUIREREREZFcSoFQREREREQkl1IgFBERERERyaUUCEVERERERHIpBUIREREREZFcSoFQREREREQkl1IgFBERERERyaUUCEVERERERHIpBUIREREREZFcSoFQREREREQkl1IgNCw+Pp6xsbHs06cPa9euzfDwcALgmDFjsr32nDlzeO+997JUqVLMly8fy5Yty3vvvZfTp093oHIREREREclpFAgNi46OJoA0W3YCYVJSEh988EHfWpUrV+Ytt9zC8uXLMywsjPXr1w94zeTkZB4+fJhnzpzh2bNntWnTpk2bNm3atGkztp05c4aHDx9mcnJylmdkyRwFQsPGjBnD1q1bMyYmhkuWLGGHDh2yHQgfeeQRAmCTJk24a9euVK8dP36cy5YtC3jNw4cP+w2u2rRp06ZNmzZt2rSZ2g4fPpzlGVkyR4HQsh49ehDIeiBcsmQJAbBGjRpMSEhwrK4zZ874mtD2b4i0adOmTZs2bdq05a4t5c2JM2fOODbfin8KhJZlNxDee++9BMBPPvnE0brOnj1LADx79qyj64qIiIiIZESzqDkKhJZlJxAmJCQwT5489Hg8PH36NOPi4tirVy+2aNGC7du356RJk3ju3Lks1aUmFBERERFbNIuao0BoWXYC4bp16wiA5cqV4/PPP+/3c9dly5bl5s2bA15bTSgiIiIitmgWNUeB0LLsBML58+cTAPPmzUsAbNOmDXft2sWLFy9y/fr1rFevHgGwQoUKPH/+/FXXSkpK8vu5bTWhiIiIiJimQGiOAqFl2QmEH3/8se+dwMqVK/Ovv/5K9fqxY8cYERFBAJw8efJV1xo1apTfdxjVhCIiIiJimgKhOQqElmUnEH7++ee+4DZhwgS/x/Tq1YsAeP/99191Lb1DKCIi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DsTFxaFv374oU6YMXFxcMGLECCYIGinOumbbNR9q/l3n9ZjMGRNCIhPk52ISEBAAEUGHDh1yfY+/vz9EBF26dCmOMKkIsK6J3wHrwbq2DqxnoqeYEBKZwNxGjaj4sK6J3wHrwbq2DqxnoqeYEBKZwNyeK6Piw7omfgesB+vaOrCeiZ5iQkhkAnNbeZKKD+ua+B2wHqxr68B6JnqKCSGRCfK7h5GdnR1E1NmbjooH65r4HbAerGvrwHomeooJIZEJ8nMxAYCePXtCRDB+/PgcPwsLC4OIwM3NDU+ePCmuUMlErGvid8B6sK6tA+uZ6CkmhEQmyO/FJCYmBjY2NrC1tcXu3buV18+ePQt3d3eICD755JPiDpdMwLomfgesB+vaOrCeiZ5iQkhUADExMXBzc1OKg4MDRATOzs4Gr1+9ejXHsYsXL1b2mqpXrx68vb1ha2sLEUHv3r2RmZmpwSei3LCuid8B68G6tg6sZyLjmBASFUB0dHSOjYSNlfj4eKPHf/311+jcuTNcXFzg7OyMl156CatWreKFxAyxronfAevBurYOrGci45gQEhERERERWSkmhERERERERFaKCSEREREREZGVYkJIRERERERkpZgQEhERERERWSkmhERERERERFaKCSEREREREZGVYkJIRERERERkpZgQEhERERERWSkmhERERERERFaKCSEREREREZGVYkJIRERERERkpZgQEhERERERWSkmhEREZFFq1aoFEYGjoyPq168Pb29viAhEBI0aNUKzZs3g6uoKEUHFihWh0+m0DpmIiEgzTAiJiMhi/Pnnn3B1dcVXX32FzMxMAMDZs2chIrC1tUViYiIA4MmTJ3jnnXfw1ltvGT2P/v2jRo3CzJkzERoaavR9V65cwccff4xWrVrB3d0d1atXR7ly5ZQEVERQvXr1An+OiIgIvPzyy8o5XnjhBQQFBeH69esG78vMzERISAiaNGkCEcGrr76Kn376Cf/3f/+HmTNnYvr06WjQoAFEBAsWLChwHEREZPmYEBIRkcUIDQ1FeHi4wWsrVqyAiKBNmzYGr3///fdYt26d0fOICF555ZVcf49Op8OiRYtQunRpeHl54csvv0RqaqrysxMnTqBbt24QEbi6uhbqszx+/Bj169eHiKBTp055vjcgIACenp5IS0vL8bNvvvmGCSEREeWKCSEREVmMiIiIHK/16tULIgI/Pz+D10+fPo0///zT6HlEBB07dsz197z//vtKovb48WOj79HpdOjXrx8cHR3z/wGy2bdvH0QENjY2+Ouvv3J9X7t27bB9+3ajP4uOjmZCSEREuWJCSEREFisjIwNly5aFiODo0aP5Pi6vhPDLL7+EiMDZ2Rk3b97M8zz37t2Di4tLoZ9T1Ol0aNy4MUQEEyZMMPqec+fOoXLlykZHBwEmhERElDcmhEREZLFiYmIgIihbtizS09PzfVxeCWGbNm0gIvDx8cnXuXbu3Jnjd588eRJDhgxBhw4d4O7ujvbt2yM6Otro8du3b4eIwMHBAf/++2+On48bNw5z5szJ9fczISQiorwwISQiIou1aNEiiAh69+5doONySwjv3LkDGxsbiAi2bNlSqJiOHDmC1q1b49atWwCejiJ6eHjAzs4Ov/zyS473Z2RkoG7duhARzJ492+BniYmJKFeuHK5evZrr72NCSEREeWFCSEREFqtDhw4QEaxevbpAx+WWEJ46dUpZ+TMyMjLX42NjYxEdHW1QTpw4gfT0dNSsWTPHs46BgYEQkVxXPd2wYQNEBOXKlVNWSgWA4OBgDBgwIM/PwoSQiIjywoSQiIgs0sOHD2Fvbw8RwcWLFwt0bG4J4a+//qokhIcOHcr1+ISEBGzZskV57+jRoxEfH49Dhw5BRNCtWzf0799fKZ07d4anpyf69u1r9HxpaWmoVq0aRAQBAQEAgKysLNSpUwdHjhzJ87MwISQiorwwISQiIosUFRUFEUGNGjUKfGxuCeHVq1eVJG/btm3PPU+VKlUgIjh8+DAAICQkBCKCy5cvFzgm/bGVKlXCo0ePEBERgSZNmjz3OCaERESUFyaERERkkWbNmqWMzhVUXovK6PcGHDly5HPPU7t2bYiIsmBMUFCQwb8L4uHDh3Bzc4OIYNWqVejSpQvWr1//3OOYEBIRUV6YEBIRkUVq3rw5RAS7d+8u8LF5JYShoaHKqp8JCQl5nid7Qrhjxw6ICCZPnmz0/bGxsXmOHuoXyXFzc4OLiwsePHjw3M/ChJCIiPLChJCIiCzOvXv3YGtrCxF57l6BxuSVEGZlZWHAgAEQEbRo0QJ3797N9TzZE8IbN27Azs4OpUqVwrfffmvw3gsXLqBXr155xqVfVVREMHXq1Hx9FiaERESUFyaERERkcVauXKmMpBVGXgkhAGRmZmLu3Lmwt7dHzZo1sWXLFoPVP1NTU7Fz507Y2tqiYsWK+OOPP5SfLVy4ECICW1tb9O/fH76+vhg2bBiqV6+OCxcuPDe2jz/+GDY2Nrh06VK+PgsTQiIiygsTQiIishgxMTEYP348HBwclMVf3n//fYSFhRXoPM9LCPWuX7+OgIAAvPbaa6hatSpq1KiBRo0aoUGDBujVqxfWrFmDe/fu5Thu48aN8PLygr29PWrUqIGRI0fiypUr+Yrt1q1b6N+/f74/CxNCIiLKCxNCIiKibPKbEJYETAiJiCgvTAiJiIiyYUJIRETWggkhERFRNiICT09P6HQ6rUMxWUREBBNCIiLK1f8DkN9fvDpR7G0AAAAASUVORK5CYII=\" width=\"900\">"
       ],
       "text/plain": [
        "<IPython.core.display.HTML object>"
       ]
      },
      "metadata": {},
      "output_type": "display_data"
     }
    ],
    "source": [
     "if True:\n",
     "    fig=plt.figure(figsize=(9,4))\n",
     "    fig.subplots_adjust(bottom=0.15, left=0.15, top = 0.95, right=0.9,wspace=0.0,hspace=0.0)\n",
     "    sub = fig.add_subplot(1,1,1)\n",
     "\n",
     "    T=np.logspace(-5,5,500)\n",
-    "    dht=[Cosmo.dh(i) for i in T]\n",
+    "    dht=[cosmo.dh(i) for i in T]\n",
     "    sub.plot(T,dht,linestyle='-',c='xkcd:black') \n",
     "    sub.set_xlabel(r'$T ~ [{\\rm GeV}]$')\n",
     "    sub.set_ylabel(r'$\\delta_h = 1 + \\dfrac{1}{3} \\dfrac{d \\log h_{\\rm eff} }{d \\log T}$')\n",
     "    sub.set_yscale('linear')\n",
     "    sub.set_xscale('log')\n",
     "\n",
     "\n",
     "    fig.show()"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 6,
+   "execution_count": 7,
    "metadata": {},
    "outputs": [
     {
      "data": {
       "application/javascript": [
        "/* Put everything inside the global mpl namespace */\n",
        "/* global mpl */\n",
        "window.mpl = {};\n",
        "\n",
        "mpl.get_websocket_type = function () {\n",
        "    if (typeof WebSocket !== 'undefined') {\n",
        "        return WebSocket;\n",
        "    } else if (typeof MozWebSocket !== 'undefined') {\n",
        "        return MozWebSocket;\n",
        "    } else {\n",
        "        alert(\n",
        "            'Your browser does not have WebSocket support. ' +\n",
        "                'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
        "                'Firefox 4 and 5 are also supported but you ' +\n",
        "                'have to enable WebSockets in about:config.'\n",
        "        );\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n",
        "    this.id = figure_id;\n",
        "\n",
        "    this.ws = websocket;\n",
        "\n",
        "    this.supports_binary = this.ws.binaryType !== undefined;\n",
        "\n",
        "    if (!this.supports_binary) {\n",
        "        var warnings = document.getElementById('mpl-warnings');\n",
        "        if (warnings) {\n",
        "            warnings.style.display = 'block';\n",
        "            warnings.textContent =\n",
        "                'This browser does not support binary websocket messages. ' +\n",
        "                'Performance may be slow.';\n",
        "        }\n",
        "    }\n",
        "\n",
        "    this.imageObj = new Image();\n",
        "\n",
        "    this.context = undefined;\n",
        "    this.message = undefined;\n",
        "    this.canvas = undefined;\n",
        "    this.rubberband_canvas = undefined;\n",
        "    this.rubberband_context = undefined;\n",
        "    this.format_dropdown = undefined;\n",
        "\n",
        "    this.image_mode = 'full';\n",
        "\n",
        "    this.root = document.createElement('div');\n",
        "    this.root.setAttribute('style', 'display: inline-block');\n",
        "    this._root_extra_style(this.root);\n",
        "\n",
        "    parent_element.appendChild(this.root);\n",
        "\n",
        "    this._init_header(this);\n",
        "    this._init_canvas(this);\n",
        "    this._init_toolbar(this);\n",
        "\n",
        "    var fig = this;\n",
        "\n",
        "    this.waiting = false;\n",
        "\n",
        "    this.ws.onopen = function () {\n",
        "        fig.send_message('supports_binary', { value: fig.supports_binary });\n",
        "        fig.send_message('send_image_mode', {});\n",
        "        if (fig.ratio !== 1) {\n",
        "            fig.send_message('set_dpi_ratio', { dpi_ratio: fig.ratio });\n",
        "        }\n",
        "        fig.send_message('refresh', {});\n",
        "    };\n",
        "\n",
        "    this.imageObj.onload = function () {\n",
        "        if (fig.image_mode === 'full') {\n",
        "            // Full images could contain transparency (where diff images\n",
        "            // almost always do), so we need to clear the canvas so that\n",
        "            // there is no ghosting.\n",
        "            fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
        "        }\n",
        "        fig.context.drawImage(fig.imageObj, 0, 0);\n",
        "    };\n",
        "\n",
        "    this.imageObj.onunload = function () {\n",
        "        fig.ws.close();\n",
        "    };\n",
        "\n",
        "    this.ws.onmessage = this._make_on_message_function(this);\n",
        "\n",
        "    this.ondownload = ondownload;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._init_header = function () {\n",
        "    var titlebar = document.createElement('div');\n",
        "    titlebar.classList =\n",
        "        'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n",
        "    var titletext = document.createElement('div');\n",
        "    titletext.classList = 'ui-dialog-title';\n",
        "    titletext.setAttribute(\n",
        "        'style',\n",
        "        'width: 100%; text-align: center; padding: 3px;'\n",
        "    );\n",
        "    titlebar.appendChild(titletext);\n",
        "    this.root.appendChild(titlebar);\n",
        "    this.header = titletext;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n",
        "\n",
        "mpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n",
        "\n",
        "mpl.figure.prototype._init_canvas = function () {\n",
        "    var fig = this;\n",
        "\n",
        "    var canvas_div = (this.canvas_div = document.createElement('div'));\n",
        "    canvas_div.setAttribute(\n",
        "        'style',\n",
        "        'border: 1px solid #ddd;' +\n",
        "            'box-sizing: content-box;' +\n",
        "            'clear: both;' +\n",
        "            'min-height: 1px;' +\n",
        "            'min-width: 1px;' +\n",
        "            'outline: 0;' +\n",
        "            'overflow: hidden;' +\n",
        "            'position: relative;' +\n",
        "            'resize: both;'\n",
        "    );\n",
        "\n",
        "    function on_keyboard_event_closure(name) {\n",
        "        return function (event) {\n",
        "            return fig.key_event(event, name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    canvas_div.addEventListener(\n",
        "        'keydown',\n",
        "        on_keyboard_event_closure('key_press')\n",
        "    );\n",
        "    canvas_div.addEventListener(\n",
        "        'keyup',\n",
        "        on_keyboard_event_closure('key_release')\n",
        "    );\n",
        "\n",
        "    this._canvas_extra_style(canvas_div);\n",
        "    this.root.appendChild(canvas_div);\n",
        "\n",
        "    var canvas = (this.canvas = document.createElement('canvas'));\n",
        "    canvas.classList.add('mpl-canvas');\n",
        "    canvas.setAttribute('style', 'box-sizing: content-box;');\n",
        "\n",
        "    this.context = canvas.getContext('2d');\n",
        "\n",
        "    var backingStore =\n",
        "        this.context.backingStorePixelRatio ||\n",
        "        this.context.webkitBackingStorePixelRatio ||\n",
        "        this.context.mozBackingStorePixelRatio ||\n",
        "        this.context.msBackingStorePixelRatio ||\n",
        "        this.context.oBackingStorePixelRatio ||\n",
        "        this.context.backingStorePixelRatio ||\n",
        "        1;\n",
        "\n",
        "    this.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
        "\n",
        "    var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n",
        "        'canvas'\n",
        "    ));\n",
        "    rubberband_canvas.setAttribute(\n",
        "        'style',\n",
        "        'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n",
        "    );\n",
        "\n",
        "    // Apply a ponyfill if ResizeObserver is not implemented by browser.\n",
        "    if (this.ResizeObserver === undefined) {\n",
        "        if (window.ResizeObserver !== undefined) {\n",
        "            this.ResizeObserver = window.ResizeObserver;\n",
        "        } else {\n",
        "            var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n",
        "            this.ResizeObserver = obs.ResizeObserver;\n",
        "        }\n",
        "    }\n",
        "\n",
        "    this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n",
        "        var nentries = entries.length;\n",
        "        for (var i = 0; i < nentries; i++) {\n",
        "            var entry = entries[i];\n",
        "            var width, height;\n",
        "            if (entry.contentBoxSize) {\n",
        "                if (entry.contentBoxSize instanceof Array) {\n",
        "                    // Chrome 84 implements new version of spec.\n",
        "                    width = entry.contentBoxSize[0].inlineSize;\n",
        "                    height = entry.contentBoxSize[0].blockSize;\n",
        "                } else {\n",
        "                    // Firefox implements old version of spec.\n",
        "                    width = entry.contentBoxSize.inlineSize;\n",
        "                    height = entry.contentBoxSize.blockSize;\n",
        "                }\n",
        "            } else {\n",
        "                // Chrome <84 implements even older version of spec.\n",
        "                width = entry.contentRect.width;\n",
        "                height = entry.contentRect.height;\n",
        "            }\n",
        "\n",
        "            // Keep the size of the canvas and rubber band canvas in sync with\n",
        "            // the canvas container.\n",
        "            if (entry.devicePixelContentBoxSize) {\n",
        "                // Chrome 84 implements new version of spec.\n",
        "                canvas.setAttribute(\n",
        "                    'width',\n",
        "                    entry.devicePixelContentBoxSize[0].inlineSize\n",
        "                );\n",
        "                canvas.setAttribute(\n",
        "                    'height',\n",
        "                    entry.devicePixelContentBoxSize[0].blockSize\n",
        "                );\n",
        "            } else {\n",
        "                canvas.setAttribute('width', width * fig.ratio);\n",
        "                canvas.setAttribute('height', height * fig.ratio);\n",
        "            }\n",
        "            canvas.setAttribute(\n",
        "                'style',\n",
        "                'width: ' + width + 'px; height: ' + height + 'px;'\n",
        "            );\n",
        "\n",
        "            rubberband_canvas.setAttribute('width', width);\n",
        "            rubberband_canvas.setAttribute('height', height);\n",
        "\n",
        "            // And update the size in Python. We ignore the initial 0/0 size\n",
        "            // that occurs as the element is placed into the DOM, which should\n",
        "            // otherwise not happen due to the minimum size styling.\n",
        "            if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n",
        "                fig.request_resize(width, height);\n",
        "            }\n",
        "        }\n",
        "    });\n",
        "    this.resizeObserverInstance.observe(canvas_div);\n",
        "\n",
        "    function on_mouse_event_closure(name) {\n",
        "        return function (event) {\n",
        "            return fig.mouse_event(event, name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mousedown',\n",
        "        on_mouse_event_closure('button_press')\n",
        "    );\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mouseup',\n",
        "        on_mouse_event_closure('button_release')\n",
        "    );\n",
        "    // Throttle sequential mouse events to 1 every 20ms.\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mousemove',\n",
        "        on_mouse_event_closure('motion_notify')\n",
        "    );\n",
        "\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mouseenter',\n",
        "        on_mouse_event_closure('figure_enter')\n",
        "    );\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mouseleave',\n",
        "        on_mouse_event_closure('figure_leave')\n",
        "    );\n",
        "\n",
        "    canvas_div.addEventListener('wheel', function (event) {\n",
        "        if (event.deltaY < 0) {\n",
        "            event.step = 1;\n",
        "        } else {\n",
        "            event.step = -1;\n",
        "        }\n",
        "        on_mouse_event_closure('scroll')(event);\n",
        "    });\n",
        "\n",
        "    canvas_div.appendChild(canvas);\n",
        "    canvas_div.appendChild(rubberband_canvas);\n",
        "\n",
        "    this.rubberband_context = rubberband_canvas.getContext('2d');\n",
        "    this.rubberband_context.strokeStyle = '#000000';\n",
        "\n",
        "    this._resize_canvas = function (width, height, forward) {\n",
        "        if (forward) {\n",
        "            canvas_div.style.width = width + 'px';\n",
        "            canvas_div.style.height = height + 'px';\n",
        "        }\n",
        "    };\n",
        "\n",
        "    // Disable right mouse context menu.\n",
        "    this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n",
        "        event.preventDefault();\n",
        "        return false;\n",
        "    });\n",
        "\n",
        "    function set_focus() {\n",
        "        canvas.focus();\n",
        "        canvas_div.focus();\n",
        "    }\n",
        "\n",
        "    window.setTimeout(set_focus, 100);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._init_toolbar = function () {\n",
        "    var fig = this;\n",
        "\n",
        "    var toolbar = document.createElement('div');\n",
        "    toolbar.classList = 'mpl-toolbar';\n",
        "    this.root.appendChild(toolbar);\n",
        "\n",
        "    function on_click_closure(name) {\n",
        "        return function (_event) {\n",
        "            return fig.toolbar_button_onclick(name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    function on_mouseover_closure(tooltip) {\n",
        "        return function (event) {\n",
        "            if (!event.currentTarget.disabled) {\n",
        "                return fig.toolbar_button_onmouseover(tooltip);\n",
        "            }\n",
        "        };\n",
        "    }\n",
        "\n",
        "    fig.buttons = {};\n",
        "    var buttonGroup = document.createElement('div');\n",
        "    buttonGroup.classList = 'mpl-button-group';\n",
        "    for (var toolbar_ind in mpl.toolbar_items) {\n",
        "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
        "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
        "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
        "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
        "\n",
        "        if (!name) {\n",
        "            /* Instead of a spacer, we start a new button group. */\n",
        "            if (buttonGroup.hasChildNodes()) {\n",
        "                toolbar.appendChild(buttonGroup);\n",
        "            }\n",
        "            buttonGroup = document.createElement('div');\n",
        "            buttonGroup.classList = 'mpl-button-group';\n",
        "            continue;\n",
        "        }\n",
        "\n",
        "        var button = (fig.buttons[name] = document.createElement('button'));\n",
        "        button.classList = 'mpl-widget';\n",
        "        button.setAttribute('role', 'button');\n",
        "        button.setAttribute('aria-disabled', 'false');\n",
        "        button.addEventListener('click', on_click_closure(method_name));\n",
        "        button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
        "\n",
        "        var icon_img = document.createElement('img');\n",
        "        icon_img.src = '_images/' + image + '.png';\n",
        "        icon_img.srcset = '_images/' + image + '_large.png 2x';\n",
        "        icon_img.alt = tooltip;\n",
        "        button.appendChild(icon_img);\n",
        "\n",
        "        buttonGroup.appendChild(button);\n",
        "    }\n",
        "\n",
        "    if (buttonGroup.hasChildNodes()) {\n",
        "        toolbar.appendChild(buttonGroup);\n",
        "    }\n",
        "\n",
        "    var fmt_picker = document.createElement('select');\n",
        "    fmt_picker.classList = 'mpl-widget';\n",
        "    toolbar.appendChild(fmt_picker);\n",
        "    this.format_dropdown = fmt_picker;\n",
        "\n",
        "    for (var ind in mpl.extensions) {\n",
        "        var fmt = mpl.extensions[ind];\n",
        "        var option = document.createElement('option');\n",
        "        option.selected = fmt === mpl.default_extension;\n",
        "        option.innerHTML = fmt;\n",
        "        fmt_picker.appendChild(option);\n",
        "    }\n",
        "\n",
        "    var status_bar = document.createElement('span');\n",
        "    status_bar.classList = 'mpl-message';\n",
        "    toolbar.appendChild(status_bar);\n",
        "    this.message = status_bar;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n",
        "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
        "    // which will in turn request a refresh of the image.\n",
        "    this.send_message('resize', { width: x_pixels, height: y_pixels });\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.send_message = function (type, properties) {\n",
        "    properties['type'] = type;\n",
        "    properties['figure_id'] = this.id;\n",
        "    this.ws.send(JSON.stringify(properties));\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.send_draw_message = function () {\n",
        "    if (!this.waiting) {\n",
        "        this.waiting = true;\n",
        "        this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
        "    var format_dropdown = fig.format_dropdown;\n",
        "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
        "    fig.ondownload(fig, format);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_resize = function (fig, msg) {\n",
        "    var size = msg['size'];\n",
        "    if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n",
        "        fig._resize_canvas(size[0], size[1], msg['forward']);\n",
        "        fig.send_message('refresh', {});\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_rubberband = function (fig, msg) {\n",
        "    var x0 = msg['x0'] / fig.ratio;\n",
        "    var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n",
        "    var x1 = msg['x1'] / fig.ratio;\n",
        "    var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n",
        "    x0 = Math.floor(x0) + 0.5;\n",
        "    y0 = Math.floor(y0) + 0.5;\n",
        "    x1 = Math.floor(x1) + 0.5;\n",
        "    y1 = Math.floor(y1) + 0.5;\n",
        "    var min_x = Math.min(x0, x1);\n",
        "    var min_y = Math.min(y0, y1);\n",
        "    var width = Math.abs(x1 - x0);\n",
        "    var height = Math.abs(y1 - y0);\n",
        "\n",
        "    fig.rubberband_context.clearRect(\n",
        "        0,\n",
        "        0,\n",
        "        fig.canvas.width / fig.ratio,\n",
        "        fig.canvas.height / fig.ratio\n",
        "    );\n",
        "\n",
        "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_figure_label = function (fig, msg) {\n",
        "    // Updates the figure title.\n",
        "    fig.header.textContent = msg['label'];\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_cursor = function (fig, msg) {\n",
        "    var cursor = msg['cursor'];\n",
        "    switch (cursor) {\n",
        "        case 0:\n",
        "            cursor = 'pointer';\n",
        "            break;\n",
        "        case 1:\n",
        "            cursor = 'default';\n",
        "            break;\n",
        "        case 2:\n",
        "            cursor = 'crosshair';\n",
        "            break;\n",
        "        case 3:\n",
        "            cursor = 'move';\n",
        "            break;\n",
        "    }\n",
        "    fig.rubberband_canvas.style.cursor = cursor;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_message = function (fig, msg) {\n",
        "    fig.message.textContent = msg['message'];\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_draw = function (fig, _msg) {\n",
        "    // Request the server to send over a new figure.\n",
        "    fig.send_draw_message();\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_image_mode = function (fig, msg) {\n",
        "    fig.image_mode = msg['mode'];\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n",
        "    for (var key in msg) {\n",
        "        if (!(key in fig.buttons)) {\n",
        "            continue;\n",
        "        }\n",
        "        fig.buttons[key].disabled = !msg[key];\n",
        "        fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n",
        "    if (msg['mode'] === 'PAN') {\n",
        "        fig.buttons['Pan'].classList.add('active');\n",
        "        fig.buttons['Zoom'].classList.remove('active');\n",
        "    } else if (msg['mode'] === 'ZOOM') {\n",
        "        fig.buttons['Pan'].classList.remove('active');\n",
        "        fig.buttons['Zoom'].classList.add('active');\n",
        "    } else {\n",
        "        fig.buttons['Pan'].classList.remove('active');\n",
        "        fig.buttons['Zoom'].classList.remove('active');\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.updated_canvas_event = function () {\n",
        "    // Called whenever the canvas gets updated.\n",
        "    this.send_message('ack', {});\n",
        "};\n",
        "\n",
        "// A function to construct a web socket function for onmessage handling.\n",
        "// Called in the figure constructor.\n",
        "mpl.figure.prototype._make_on_message_function = function (fig) {\n",
        "    return function socket_on_message(evt) {\n",
        "        if (evt.data instanceof Blob) {\n",
        "            /* FIXME: We get \"Resource interpreted as Image but\n",
        "             * transferred with MIME type text/plain:\" errors on\n",
        "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
        "             * to be part of the websocket stream */\n",
        "            evt.data.type = 'image/png';\n",
        "\n",
        "            /* Free the memory for the previous frames */\n",
        "            if (fig.imageObj.src) {\n",
        "                (window.URL || window.webkitURL).revokeObjectURL(\n",
        "                    fig.imageObj.src\n",
        "                );\n",
        "            }\n",
        "\n",
        "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
        "                evt.data\n",
        "            );\n",
        "            fig.updated_canvas_event();\n",
        "            fig.waiting = false;\n",
        "            return;\n",
        "        } else if (\n",
        "            typeof evt.data === 'string' &&\n",
        "            evt.data.slice(0, 21) === 'data:image/png;base64'\n",
        "        ) {\n",
        "            fig.imageObj.src = evt.data;\n",
        "            fig.updated_canvas_event();\n",
        "            fig.waiting = false;\n",
        "            return;\n",
        "        }\n",
        "\n",
        "        var msg = JSON.parse(evt.data);\n",
        "        var msg_type = msg['type'];\n",
        "\n",
        "        // Call the  \"handle_{type}\" callback, which takes\n",
        "        // the figure and JSON message as its only arguments.\n",
        "        try {\n",
        "            var callback = fig['handle_' + msg_type];\n",
        "        } catch (e) {\n",
        "            console.log(\n",
        "                \"No handler for the '\" + msg_type + \"' message type: \",\n",
        "                msg\n",
        "            );\n",
        "            return;\n",
        "        }\n",
        "\n",
        "        if (callback) {\n",
        "            try {\n",
        "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
        "                callback(fig, msg);\n",
        "            } catch (e) {\n",
        "                console.log(\n",
        "                    \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n",
        "                    e,\n",
        "                    e.stack,\n",
        "                    msg\n",
        "                );\n",
        "            }\n",
        "        }\n",
        "    };\n",
        "};\n",
        "\n",
        "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
        "mpl.findpos = function (e) {\n",
        "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
        "    var targ;\n",
        "    if (!e) {\n",
        "        e = window.event;\n",
        "    }\n",
        "    if (e.target) {\n",
        "        targ = e.target;\n",
        "    } else if (e.srcElement) {\n",
        "        targ = e.srcElement;\n",
        "    }\n",
        "    if (targ.nodeType === 3) {\n",
        "        // defeat Safari bug\n",
        "        targ = targ.parentNode;\n",
        "    }\n",
        "\n",
        "    // pageX,Y are the mouse positions relative to the document\n",
        "    var boundingRect = targ.getBoundingClientRect();\n",
        "    var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n",
        "    var y = e.pageY - (boundingRect.top + document.body.scrollTop);\n",
        "\n",
        "    return { x: x, y: y };\n",
        "};\n",
        "\n",
        "/*\n",
        " * return a copy of an object with only non-object keys\n",
        " * we need this to avoid circular references\n",
        " * http://stackoverflow.com/a/24161582/3208463\n",
        " */\n",
        "function simpleKeys(original) {\n",
        "    return Object.keys(original).reduce(function (obj, key) {\n",
        "        if (typeof original[key] !== 'object') {\n",
        "            obj[key] = original[key];\n",
        "        }\n",
        "        return obj;\n",
        "    }, {});\n",
        "}\n",
        "\n",
        "mpl.figure.prototype.mouse_event = function (event, name) {\n",
        "    var canvas_pos = mpl.findpos(event);\n",
        "\n",
        "    if (name === 'button_press') {\n",
        "        this.canvas.focus();\n",
        "        this.canvas_div.focus();\n",
        "    }\n",
        "\n",
        "    var x = canvas_pos.x * this.ratio;\n",
        "    var y = canvas_pos.y * this.ratio;\n",
        "\n",
        "    this.send_message(name, {\n",
        "        x: x,\n",
        "        y: y,\n",
        "        button: event.button,\n",
        "        step: event.step,\n",
        "        guiEvent: simpleKeys(event),\n",
        "    });\n",
        "\n",
        "    /* This prevents the web browser from automatically changing to\n",
        "     * the text insertion cursor when the button is pressed.  We want\n",
        "     * to control all of the cursor setting manually through the\n",
        "     * 'cursor' event from matplotlib */\n",
        "    event.preventDefault();\n",
        "    return false;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._key_event_extra = function (_event, _name) {\n",
        "    // Handle any extra behaviour associated with a key event\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.key_event = function (event, name) {\n",
        "    // Prevent repeat events\n",
        "    if (name === 'key_press') {\n",
        "        if (event.which === this._key) {\n",
        "            return;\n",
        "        } else {\n",
        "            this._key = event.which;\n",
        "        }\n",
        "    }\n",
        "    if (name === 'key_release') {\n",
        "        this._key = null;\n",
        "    }\n",
        "\n",
        "    var value = '';\n",
        "    if (event.ctrlKey && event.which !== 17) {\n",
        "        value += 'ctrl+';\n",
        "    }\n",
        "    if (event.altKey && event.which !== 18) {\n",
        "        value += 'alt+';\n",
        "    }\n",
        "    if (event.shiftKey && event.which !== 16) {\n",
        "        value += 'shift+';\n",
        "    }\n",
        "\n",
        "    value += 'k';\n",
        "    value += event.which.toString();\n",
        "\n",
        "    this._key_event_extra(event, name);\n",
        "\n",
        "    this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n",
        "    return false;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.toolbar_button_onclick = function (name) {\n",
        "    if (name === 'download') {\n",
        "        this.handle_save(this, null);\n",
        "    } else {\n",
        "        this.send_message('toolbar_button', { name: name });\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n",
        "    this.message.textContent = tooltip;\n",
        "};\n",
        "\n",
        "///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n",
        "// prettier-ignore\n",
        "var _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\n",
        "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
        "\n",
        "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
        "\n",
        "mpl.default_extension = \"png\";/* global mpl */\n",
        "\n",
        "var comm_websocket_adapter = function (comm) {\n",
        "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
        "    // object with the appropriate methods. Currently this is a non binary\n",
        "    // socket, so there is still some room for performance tuning.\n",
        "    var ws = {};\n",
        "\n",
        "    ws.close = function () {\n",
        "        comm.close();\n",
        "    };\n",
        "    ws.send = function (m) {\n",
        "        //console.log('sending', m);\n",
        "        comm.send(m);\n",
        "    };\n",
        "    // Register the callback with on_msg.\n",
        "    comm.on_msg(function (msg) {\n",
        "        //console.log('receiving', msg['content']['data'], msg);\n",
        "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
        "        ws.onmessage(msg['content']['data']);\n",
        "    });\n",
        "    return ws;\n",
        "};\n",
        "\n",
        "mpl.mpl_figure_comm = function (comm, msg) {\n",
        "    // This is the function which gets called when the mpl process\n",
        "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
        "\n",
        "    var id = msg.content.data.id;\n",
        "    // Get hold of the div created by the display call when the Comm\n",
        "    // socket was opened in Python.\n",
        "    var element = document.getElementById(id);\n",
        "    var ws_proxy = comm_websocket_adapter(comm);\n",
        "\n",
        "    function ondownload(figure, _format) {\n",
        "        window.open(figure.canvas.toDataURL());\n",
        "    }\n",
        "\n",
        "    var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n",
        "\n",
        "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
        "    // web socket which is closed, not our websocket->open comm proxy.\n",
        "    ws_proxy.onopen();\n",
        "\n",
        "    fig.parent_element = element;\n",
        "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
        "    if (!fig.cell_info) {\n",
        "        console.error('Failed to find cell for figure', id, fig);\n",
        "        return;\n",
        "    }\n",
        "    fig.cell_info[0].output_area.element.on(\n",
        "        'cleared',\n",
        "        { fig: fig },\n",
        "        fig._remove_fig_handler\n",
        "    );\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_close = function (fig, msg) {\n",
        "    var width = fig.canvas.width / fig.ratio;\n",
        "    fig.cell_info[0].output_area.element.off(\n",
        "        'cleared',\n",
        "        fig._remove_fig_handler\n",
        "    );\n",
        "    fig.resizeObserverInstance.unobserve(fig.canvas_div);\n",
        "\n",
        "    // Update the output cell to use the data from the current canvas.\n",
        "    fig.push_to_output();\n",
        "    var dataURL = fig.canvas.toDataURL();\n",
        "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
        "    // the notebook keyboard shortcuts fail.\n",
        "    IPython.keyboard_manager.enable();\n",
        "    fig.parent_element.innerHTML =\n",
        "        '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
        "    fig.close_ws(fig, msg);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.close_ws = function (fig, msg) {\n",
        "    fig.send_message('closing', msg);\n",
        "    // fig.ws.close()\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.push_to_output = function (_remove_interactive) {\n",
        "    // Turn the data on the canvas into data in the output cell.\n",
        "    var width = this.canvas.width / this.ratio;\n",
        "    var dataURL = this.canvas.toDataURL();\n",
        "    this.cell_info[1]['text/html'] =\n",
        "        '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.updated_canvas_event = function () {\n",
        "    // Tell IPython that the notebook contents must change.\n",
        "    IPython.notebook.set_dirty(true);\n",
        "    this.send_message('ack', {});\n",
        "    var fig = this;\n",
        "    // Wait a second, then push the new image to the DOM so\n",
        "    // that it is saved nicely (might be nice to debounce this).\n",
        "    setTimeout(function () {\n",
        "        fig.push_to_output();\n",
        "    }, 1000);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._init_toolbar = function () {\n",
        "    var fig = this;\n",
        "\n",
        "    var toolbar = document.createElement('div');\n",
        "    toolbar.classList = 'btn-toolbar';\n",
        "    this.root.appendChild(toolbar);\n",
        "\n",
        "    function on_click_closure(name) {\n",
        "        return function (_event) {\n",
        "            return fig.toolbar_button_onclick(name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    function on_mouseover_closure(tooltip) {\n",
        "        return function (event) {\n",
        "            if (!event.currentTarget.disabled) {\n",
        "                return fig.toolbar_button_onmouseover(tooltip);\n",
        "            }\n",
        "        };\n",
        "    }\n",
        "\n",
        "    fig.buttons = {};\n",
        "    var buttonGroup = document.createElement('div');\n",
        "    buttonGroup.classList = 'btn-group';\n",
        "    var button;\n",
        "    for (var toolbar_ind in mpl.toolbar_items) {\n",
        "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
        "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
        "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
        "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
        "\n",
        "        if (!name) {\n",
        "            /* Instead of a spacer, we start a new button group. */\n",
        "            if (buttonGroup.hasChildNodes()) {\n",
        "                toolbar.appendChild(buttonGroup);\n",
        "            }\n",
        "            buttonGroup = document.createElement('div');\n",
        "            buttonGroup.classList = 'btn-group';\n",
        "            continue;\n",
        "        }\n",
        "\n",
        "        button = fig.buttons[name] = document.createElement('button');\n",
        "        button.classList = 'btn btn-default';\n",
        "        button.href = '#';\n",
        "        button.title = name;\n",
        "        button.innerHTML = '<i class=\"fa ' + image + ' fa-lg\"></i>';\n",
        "        button.addEventListener('click', on_click_closure(method_name));\n",
        "        button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
        "        buttonGroup.appendChild(button);\n",
        "    }\n",
        "\n",
        "    if (buttonGroup.hasChildNodes()) {\n",
        "        toolbar.appendChild(buttonGroup);\n",
        "    }\n",
        "\n",
        "    // Add the status bar.\n",
        "    var status_bar = document.createElement('span');\n",
        "    status_bar.classList = 'mpl-message pull-right';\n",
        "    toolbar.appendChild(status_bar);\n",
        "    this.message = status_bar;\n",
        "\n",
        "    // Add the close button to the window.\n",
        "    var buttongrp = document.createElement('div');\n",
        "    buttongrp.classList = 'btn-group inline pull-right';\n",
        "    button = document.createElement('button');\n",
        "    button.classList = 'btn btn-mini btn-primary';\n",
        "    button.href = '#';\n",
        "    button.title = 'Stop Interaction';\n",
        "    button.innerHTML = '<i class=\"fa fa-power-off icon-remove icon-large\"></i>';\n",
        "    button.addEventListener('click', function (_evt) {\n",
        "        fig.handle_close(fig, {});\n",
        "    });\n",
        "    button.addEventListener(\n",
        "        'mouseover',\n",
        "        on_mouseover_closure('Stop Interaction')\n",
        "    );\n",
        "    buttongrp.appendChild(button);\n",
        "    var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n",
        "    titlebar.insertBefore(buttongrp, titlebar.firstChild);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._remove_fig_handler = function (event) {\n",
        "    var fig = event.data.fig;\n",
        "    if (event.target !== this) {\n",
        "        // Ignore bubbled events from children.\n",
        "        return;\n",
        "    }\n",
        "    fig.close_ws(fig, {});\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._root_extra_style = function (el) {\n",
        "    el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._canvas_extra_style = function (el) {\n",
        "    // this is important to make the div 'focusable\n",
        "    el.setAttribute('tabindex', 0);\n",
        "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
        "    // off when our div gets focus\n",
        "\n",
        "    // location in version 3\n",
        "    if (IPython.notebook.keyboard_manager) {\n",
        "        IPython.notebook.keyboard_manager.register_events(el);\n",
        "    } else {\n",
        "        // location in version 2\n",
        "        IPython.keyboard_manager.register_events(el);\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._key_event_extra = function (event, _name) {\n",
        "    var manager = IPython.notebook.keyboard_manager;\n",
        "    if (!manager) {\n",
        "        manager = IPython.keyboard_manager;\n",
        "    }\n",
        "\n",
        "    // Check for shift+enter\n",
        "    if (event.shiftKey && event.which === 13) {\n",
        "        this.canvas_div.blur();\n",
        "        // select the cell after this one\n",
        "        var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n",
        "        IPython.notebook.select(index + 1);\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
        "    fig.ondownload(fig, null);\n",
        "};\n",
        "\n",
        "mpl.find_output_cell = function (html_output) {\n",
        "    // Return the cell and output element which can be found *uniquely* in the notebook.\n",
        "    // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
        "    // IPython event is triggered only after the cells have been serialised, which for\n",
        "    // our purposes (turning an active figure into a static one), is too late.\n",
        "    var cells = IPython.notebook.get_cells();\n",
        "    var ncells = cells.length;\n",
        "    for (var i = 0; i < ncells; i++) {\n",
        "        var cell = cells[i];\n",
        "        if (cell.cell_type === 'code') {\n",
        "            for (var j = 0; j < cell.output_area.outputs.length; j++) {\n",
        "                var data = cell.output_area.outputs[j];\n",
        "                if (data.data) {\n",
        "                    // IPython >= 3 moved mimebundle to data attribute of output\n",
        "                    data = data.data;\n",
        "                }\n",
        "                if (data['text/html'] === html_output) {\n",
        "                    return [cell, data, j];\n",
        "                }\n",
        "            }\n",
        "        }\n",
        "    }\n",
        "};\n",
        "\n",
        "// Register the function which deals with the matplotlib target/channel.\n",
        "// The kernel may be null if the page has been refreshed.\n",
        "if (IPython.notebook.kernel !== null) {\n",
        "    IPython.notebook.kernel.comm_manager.register_target(\n",
        "        'matplotlib',\n",
        "        mpl.mpl_figure_comm\n",
        "    );\n",
        "}\n"
       ],
       "text/plain": [
        "<IPython.core.display.Javascript object>"
       ]
      },
      "metadata": {},
      "output_type": "display_data"
     },
     {
      "data": {
       "text/html": [
-       "<img src=\"data:image/png;base64,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AD/ALGofAiEs0YSoayUlJXrmmWfUsmVLMwjGxcVp3LhxKioqcro8AADgR5hF7UMghCWaEHXlyJEjmjx5si666CIzCCYmJupPf/qTjh075nR5AADADzGL2odACEs0IS7U/v37NXbsWMXExJhB8PLLL9fChQt1+vRpp8sDAAB+jFnUPgRCWKIJcb527typ4cOHKywszAyC11xzjZYvX66qqiqnywMAAAGAWdQ+BEJYoglxLjwejz744AP179+/xo6hffv21bp169gxFAAAnBNmUfsQCGGJJoQvqqur9dZbb6lbt25mCHS73Ro6dKj++c9/Ol0eAAAIUMyi9iEQwhJNiLMpLy/XkiVLdMUVV5hBMCoqSvfff7/27t3rdHkAACDAMYvah0AISzQhrJw8eVLz5s3TJZdcYgbB+Ph4TZgwQQcPHnS6PAAAECSYRe1DIIQlmhA/dezYMU2fPl0JCQlmELz44os1e/Zs/owAAIA6xyxqHwIhLNGEkKTDhw9r4sSJatSoUY2jIxYtWqSysjKnywMAAEGKWdQ+BEJYoglD24EDB/S73/1OsbGxZhDs2LGjcnJyVFlZ6XR5AAAgyDGL2odAGCBWrFih2267TS1btlRMTIw6duyouXPnqqKiwvL+nJwcde7cWdHR0brooovUt29fHTlyxOfXowlD0759+3T//fcrMjLSDIKdO3fWypUrVV1d7XR5AAAgRDCL2odAGCC6du2qIUOGKCcnRxs2bND06dMVHR2tESNG1Lp35syZioyM1JNPPqkNGzZo9erVGjdunL755hufX48mDC27d+/WiBEjahwm3717d7333nucIQgAAGzHLGofAmGAOHz4cK1r06ZNk2EYOnTokHnt3//+t8LDw/XSSy9d0OvRhKHhX//6l4YNGyaXy2UGwZtvvlkffPCB06UBAIAQxixqHwJhAHv33XdlGIY++eQT89of/vAHNWzYUOXl5Rf0tWnC4PbFF1/ojjvuqBEEb731Vm3dutXp0gAAAJhFbUQgPGPfvn1atGiRRo0apdTUVPNH56ZNm+bT8/Py8pSenq4mTZooNjZWaWlpeu655+r1c1cTJkxQZGRkjUbp1auXOnfurEWLFqlVq1YKCwvTL37xC7333nvn9LVpwuC0Z88e3XXXXTWC4JAhQ7Rr1y6nSwMAADAxi9qHQHjGI488Yg7IP12+BMIZ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\" width=\"900\">"
+       "<img src=\"data:image/png;base64,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\" width=\"900\">"
       ],
       "text/plain": [
        "<IPython.core.display.HTML object>"
       ]
      },
      "metadata": {},
      "output_type": "display_data"
     }
    ],
    "source": [
     "fig=plt.figure(figsize=(9,4))\n",
     "fig.subplots_adjust(bottom=0.15, left=0.15, top = 0.95, right=0.9,wspace=0.0,hspace=0.0)\n",
     "fig.suptitle('')\n",
     "\n",
     "sub = fig.add_subplot(1,1,1)\n",
     "\n",
     "T=np.logspace(-5,5,500)\n",
-    "H=[Cosmo.Hubble(i) for i in T]\n",
+    "H=[cosmo.Hubble(i) for i in T]\n",
     "sub.plot(T,H,linestyle='-',c='xkcd:black')\n",
     "sub.set_ylabel(r'$H ~ [{\\rm GeV}]$')\n",
     "sub.set_yscale('log')\n",
     "sub.set_xscale('log')\n",
     "\n",
     "sub.set_xlabel(r'$T \\; [{\\rm GeV}]$')\n",
     "\n",
     "fig.show()"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 7,
+   "execution_count": 8,
    "metadata": {},
    "outputs": [
     {
      "data": {
       "application/javascript": [
        "/* Put everything inside the global mpl namespace */\n",
        "/* global mpl */\n",
        "window.mpl = {};\n",
        "\n",
        "mpl.get_websocket_type = function () {\n",
        "    if (typeof WebSocket !== 'undefined') {\n",
        "        return WebSocket;\n",
        "    } else if (typeof MozWebSocket !== 'undefined') {\n",
        "        return MozWebSocket;\n",
        "    } else {\n",
        "        alert(\n",
        "            'Your browser does not have WebSocket support. ' +\n",
        "                'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
        "                'Firefox 4 and 5 are also supported but you ' +\n",
        "                'have to enable WebSockets in about:config.'\n",
        "        );\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n",
        "    this.id = figure_id;\n",
        "\n",
        "    this.ws = websocket;\n",
        "\n",
        "    this.supports_binary = this.ws.binaryType !== undefined;\n",
        "\n",
        "    if (!this.supports_binary) {\n",
        "        var warnings = document.getElementById('mpl-warnings');\n",
        "        if (warnings) {\n",
        "            warnings.style.display = 'block';\n",
        "            warnings.textContent =\n",
        "                'This browser does not support binary websocket messages. ' +\n",
        "                'Performance may be slow.';\n",
        "        }\n",
        "    }\n",
        "\n",
        "    this.imageObj = new Image();\n",
        "\n",
        "    this.context = undefined;\n",
        "    this.message = undefined;\n",
        "    this.canvas = undefined;\n",
        "    this.rubberband_canvas = undefined;\n",
        "    this.rubberband_context = undefined;\n",
        "    this.format_dropdown = undefined;\n",
        "\n",
        "    this.image_mode = 'full';\n",
        "\n",
        "    this.root = document.createElement('div');\n",
        "    this.root.setAttribute('style', 'display: inline-block');\n",
        "    this._root_extra_style(this.root);\n",
        "\n",
        "    parent_element.appendChild(this.root);\n",
        "\n",
        "    this._init_header(this);\n",
        "    this._init_canvas(this);\n",
        "    this._init_toolbar(this);\n",
        "\n",
        "    var fig = this;\n",
        "\n",
        "    this.waiting = false;\n",
        "\n",
        "    this.ws.onopen = function () {\n",
        "        fig.send_message('supports_binary', { value: fig.supports_binary });\n",
        "        fig.send_message('send_image_mode', {});\n",
        "        if (fig.ratio !== 1) {\n",
        "            fig.send_message('set_dpi_ratio', { dpi_ratio: fig.ratio });\n",
        "        }\n",
        "        fig.send_message('refresh', {});\n",
        "    };\n",
        "\n",
        "    this.imageObj.onload = function () {\n",
        "        if (fig.image_mode === 'full') {\n",
        "            // Full images could contain transparency (where diff images\n",
        "            // almost always do), so we need to clear the canvas so that\n",
        "            // there is no ghosting.\n",
        "            fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
        "        }\n",
        "        fig.context.drawImage(fig.imageObj, 0, 0);\n",
        "    };\n",
        "\n",
        "    this.imageObj.onunload = function () {\n",
        "        fig.ws.close();\n",
        "    };\n",
        "\n",
        "    this.ws.onmessage = this._make_on_message_function(this);\n",
        "\n",
        "    this.ondownload = ondownload;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._init_header = function () {\n",
        "    var titlebar = document.createElement('div');\n",
        "    titlebar.classList =\n",
        "        'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n",
        "    var titletext = document.createElement('div');\n",
        "    titletext.classList = 'ui-dialog-title';\n",
        "    titletext.setAttribute(\n",
        "        'style',\n",
        "        'width: 100%; text-align: center; padding: 3px;'\n",
        "    );\n",
        "    titlebar.appendChild(titletext);\n",
        "    this.root.appendChild(titlebar);\n",
        "    this.header = titletext;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n",
        "\n",
        "mpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n",
        "\n",
        "mpl.figure.prototype._init_canvas = function () {\n",
        "    var fig = this;\n",
        "\n",
        "    var canvas_div = (this.canvas_div = document.createElement('div'));\n",
        "    canvas_div.setAttribute(\n",
        "        'style',\n",
        "        'border: 1px solid #ddd;' +\n",
        "            'box-sizing: content-box;' +\n",
        "            'clear: both;' +\n",
        "            'min-height: 1px;' +\n",
        "            'min-width: 1px;' +\n",
        "            'outline: 0;' +\n",
        "            'overflow: hidden;' +\n",
        "            'position: relative;' +\n",
        "            'resize: both;'\n",
        "    );\n",
        "\n",
        "    function on_keyboard_event_closure(name) {\n",
        "        return function (event) {\n",
        "            return fig.key_event(event, name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    canvas_div.addEventListener(\n",
        "        'keydown',\n",
        "        on_keyboard_event_closure('key_press')\n",
        "    );\n",
        "    canvas_div.addEventListener(\n",
        "        'keyup',\n",
        "        on_keyboard_event_closure('key_release')\n",
        "    );\n",
        "\n",
        "    this._canvas_extra_style(canvas_div);\n",
        "    this.root.appendChild(canvas_div);\n",
        "\n",
        "    var canvas = (this.canvas = document.createElement('canvas'));\n",
        "    canvas.classList.add('mpl-canvas');\n",
        "    canvas.setAttribute('style', 'box-sizing: content-box;');\n",
        "\n",
        "    this.context = canvas.getContext('2d');\n",
        "\n",
        "    var backingStore =\n",
        "        this.context.backingStorePixelRatio ||\n",
        "        this.context.webkitBackingStorePixelRatio ||\n",
        "        this.context.mozBackingStorePixelRatio ||\n",
        "        this.context.msBackingStorePixelRatio ||\n",
        "        this.context.oBackingStorePixelRatio ||\n",
        "        this.context.backingStorePixelRatio ||\n",
        "        1;\n",
        "\n",
        "    this.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
        "\n",
        "    var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n",
        "        'canvas'\n",
        "    ));\n",
        "    rubberband_canvas.setAttribute(\n",
        "        'style',\n",
        "        'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n",
        "    );\n",
        "\n",
        "    // Apply a ponyfill if ResizeObserver is not implemented by browser.\n",
        "    if (this.ResizeObserver === undefined) {\n",
        "        if (window.ResizeObserver !== undefined) {\n",
        "            this.ResizeObserver = window.ResizeObserver;\n",
        "        } else {\n",
        "            var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n",
        "            this.ResizeObserver = obs.ResizeObserver;\n",
        "        }\n",
        "    }\n",
        "\n",
        "    this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n",
        "        var nentries = entries.length;\n",
        "        for (var i = 0; i < nentries; i++) {\n",
        "            var entry = entries[i];\n",
        "            var width, height;\n",
        "            if (entry.contentBoxSize) {\n",
        "                if (entry.contentBoxSize instanceof Array) {\n",
        "                    // Chrome 84 implements new version of spec.\n",
        "                    width = entry.contentBoxSize[0].inlineSize;\n",
        "                    height = entry.contentBoxSize[0].blockSize;\n",
        "                } else {\n",
        "                    // Firefox implements old version of spec.\n",
        "                    width = entry.contentBoxSize.inlineSize;\n",
        "                    height = entry.contentBoxSize.blockSize;\n",
        "                }\n",
        "            } else {\n",
        "                // Chrome <84 implements even older version of spec.\n",
        "                width = entry.contentRect.width;\n",
        "                height = entry.contentRect.height;\n",
        "            }\n",
        "\n",
        "            // Keep the size of the canvas and rubber band canvas in sync with\n",
        "            // the canvas container.\n",
        "            if (entry.devicePixelContentBoxSize) {\n",
        "                // Chrome 84 implements new version of spec.\n",
        "                canvas.setAttribute(\n",
        "                    'width',\n",
        "                    entry.devicePixelContentBoxSize[0].inlineSize\n",
        "                );\n",
        "                canvas.setAttribute(\n",
        "                    'height',\n",
        "                    entry.devicePixelContentBoxSize[0].blockSize\n",
        "                );\n",
        "            } else {\n",
        "                canvas.setAttribute('width', width * fig.ratio);\n",
        "                canvas.setAttribute('height', height * fig.ratio);\n",
        "            }\n",
        "            canvas.setAttribute(\n",
        "                'style',\n",
        "                'width: ' + width + 'px; height: ' + height + 'px;'\n",
        "            );\n",
        "\n",
        "            rubberband_canvas.setAttribute('width', width);\n",
        "            rubberband_canvas.setAttribute('height', height);\n",
        "\n",
        "            // And update the size in Python. We ignore the initial 0/0 size\n",
        "            // that occurs as the element is placed into the DOM, which should\n",
        "            // otherwise not happen due to the minimum size styling.\n",
        "            if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n",
        "                fig.request_resize(width, height);\n",
        "            }\n",
        "        }\n",
        "    });\n",
        "    this.resizeObserverInstance.observe(canvas_div);\n",
        "\n",
        "    function on_mouse_event_closure(name) {\n",
        "        return function (event) {\n",
        "            return fig.mouse_event(event, name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mousedown',\n",
        "        on_mouse_event_closure('button_press')\n",
        "    );\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mouseup',\n",
        "        on_mouse_event_closure('button_release')\n",
        "    );\n",
        "    // Throttle sequential mouse events to 1 every 20ms.\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mousemove',\n",
        "        on_mouse_event_closure('motion_notify')\n",
        "    );\n",
        "\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mouseenter',\n",
        "        on_mouse_event_closure('figure_enter')\n",
        "    );\n",
        "    rubberband_canvas.addEventListener(\n",
        "        'mouseleave',\n",
        "        on_mouse_event_closure('figure_leave')\n",
        "    );\n",
        "\n",
        "    canvas_div.addEventListener('wheel', function (event) {\n",
        "        if (event.deltaY < 0) {\n",
        "            event.step = 1;\n",
        "        } else {\n",
        "            event.step = -1;\n",
        "        }\n",
        "        on_mouse_event_closure('scroll')(event);\n",
        "    });\n",
        "\n",
        "    canvas_div.appendChild(canvas);\n",
        "    canvas_div.appendChild(rubberband_canvas);\n",
        "\n",
        "    this.rubberband_context = rubberband_canvas.getContext('2d');\n",
        "    this.rubberband_context.strokeStyle = '#000000';\n",
        "\n",
        "    this._resize_canvas = function (width, height, forward) {\n",
        "        if (forward) {\n",
        "            canvas_div.style.width = width + 'px';\n",
        "            canvas_div.style.height = height + 'px';\n",
        "        }\n",
        "    };\n",
        "\n",
        "    // Disable right mouse context menu.\n",
        "    this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n",
        "        event.preventDefault();\n",
        "        return false;\n",
        "    });\n",
        "\n",
        "    function set_focus() {\n",
        "        canvas.focus();\n",
        "        canvas_div.focus();\n",
        "    }\n",
        "\n",
        "    window.setTimeout(set_focus, 100);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._init_toolbar = function () {\n",
        "    var fig = this;\n",
        "\n",
        "    var toolbar = document.createElement('div');\n",
        "    toolbar.classList = 'mpl-toolbar';\n",
        "    this.root.appendChild(toolbar);\n",
        "\n",
        "    function on_click_closure(name) {\n",
        "        return function (_event) {\n",
        "            return fig.toolbar_button_onclick(name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    function on_mouseover_closure(tooltip) {\n",
        "        return function (event) {\n",
        "            if (!event.currentTarget.disabled) {\n",
        "                return fig.toolbar_button_onmouseover(tooltip);\n",
        "            }\n",
        "        };\n",
        "    }\n",
        "\n",
        "    fig.buttons = {};\n",
        "    var buttonGroup = document.createElement('div');\n",
        "    buttonGroup.classList = 'mpl-button-group';\n",
        "    for (var toolbar_ind in mpl.toolbar_items) {\n",
        "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
        "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
        "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
        "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
        "\n",
        "        if (!name) {\n",
        "            /* Instead of a spacer, we start a new button group. */\n",
        "            if (buttonGroup.hasChildNodes()) {\n",
        "                toolbar.appendChild(buttonGroup);\n",
        "            }\n",
        "            buttonGroup = document.createElement('div');\n",
        "            buttonGroup.classList = 'mpl-button-group';\n",
        "            continue;\n",
        "        }\n",
        "\n",
        "        var button = (fig.buttons[name] = document.createElement('button'));\n",
        "        button.classList = 'mpl-widget';\n",
        "        button.setAttribute('role', 'button');\n",
        "        button.setAttribute('aria-disabled', 'false');\n",
        "        button.addEventListener('click', on_click_closure(method_name));\n",
        "        button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
        "\n",
        "        var icon_img = document.createElement('img');\n",
        "        icon_img.src = '_images/' + image + '.png';\n",
        "        icon_img.srcset = '_images/' + image + '_large.png 2x';\n",
        "        icon_img.alt = tooltip;\n",
        "        button.appendChild(icon_img);\n",
        "\n",
        "        buttonGroup.appendChild(button);\n",
        "    }\n",
        "\n",
        "    if (buttonGroup.hasChildNodes()) {\n",
        "        toolbar.appendChild(buttonGroup);\n",
        "    }\n",
        "\n",
        "    var fmt_picker = document.createElement('select');\n",
        "    fmt_picker.classList = 'mpl-widget';\n",
        "    toolbar.appendChild(fmt_picker);\n",
        "    this.format_dropdown = fmt_picker;\n",
        "\n",
        "    for (var ind in mpl.extensions) {\n",
        "        var fmt = mpl.extensions[ind];\n",
        "        var option = document.createElement('option');\n",
        "        option.selected = fmt === mpl.default_extension;\n",
        "        option.innerHTML = fmt;\n",
        "        fmt_picker.appendChild(option);\n",
        "    }\n",
        "\n",
        "    var status_bar = document.createElement('span');\n",
        "    status_bar.classList = 'mpl-message';\n",
        "    toolbar.appendChild(status_bar);\n",
        "    this.message = status_bar;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n",
        "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
        "    // which will in turn request a refresh of the image.\n",
        "    this.send_message('resize', { width: x_pixels, height: y_pixels });\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.send_message = function (type, properties) {\n",
        "    properties['type'] = type;\n",
        "    properties['figure_id'] = this.id;\n",
        "    this.ws.send(JSON.stringify(properties));\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.send_draw_message = function () {\n",
        "    if (!this.waiting) {\n",
        "        this.waiting = true;\n",
        "        this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
        "    var format_dropdown = fig.format_dropdown;\n",
        "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
        "    fig.ondownload(fig, format);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_resize = function (fig, msg) {\n",
        "    var size = msg['size'];\n",
        "    if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n",
        "        fig._resize_canvas(size[0], size[1], msg['forward']);\n",
        "        fig.send_message('refresh', {});\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_rubberband = function (fig, msg) {\n",
        "    var x0 = msg['x0'] / fig.ratio;\n",
        "    var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n",
        "    var x1 = msg['x1'] / fig.ratio;\n",
        "    var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n",
        "    x0 = Math.floor(x0) + 0.5;\n",
        "    y0 = Math.floor(y0) + 0.5;\n",
        "    x1 = Math.floor(x1) + 0.5;\n",
        "    y1 = Math.floor(y1) + 0.5;\n",
        "    var min_x = Math.min(x0, x1);\n",
        "    var min_y = Math.min(y0, y1);\n",
        "    var width = Math.abs(x1 - x0);\n",
        "    var height = Math.abs(y1 - y0);\n",
        "\n",
        "    fig.rubberband_context.clearRect(\n",
        "        0,\n",
        "        0,\n",
        "        fig.canvas.width / fig.ratio,\n",
        "        fig.canvas.height / fig.ratio\n",
        "    );\n",
        "\n",
        "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_figure_label = function (fig, msg) {\n",
        "    // Updates the figure title.\n",
        "    fig.header.textContent = msg['label'];\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_cursor = function (fig, msg) {\n",
        "    var cursor = msg['cursor'];\n",
        "    switch (cursor) {\n",
        "        case 0:\n",
        "            cursor = 'pointer';\n",
        "            break;\n",
        "        case 1:\n",
        "            cursor = 'default';\n",
        "            break;\n",
        "        case 2:\n",
        "            cursor = 'crosshair';\n",
        "            break;\n",
        "        case 3:\n",
        "            cursor = 'move';\n",
        "            break;\n",
        "    }\n",
        "    fig.rubberband_canvas.style.cursor = cursor;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_message = function (fig, msg) {\n",
        "    fig.message.textContent = msg['message'];\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_draw = function (fig, _msg) {\n",
        "    // Request the server to send over a new figure.\n",
        "    fig.send_draw_message();\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_image_mode = function (fig, msg) {\n",
        "    fig.image_mode = msg['mode'];\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n",
        "    for (var key in msg) {\n",
        "        if (!(key in fig.buttons)) {\n",
        "            continue;\n",
        "        }\n",
        "        fig.buttons[key].disabled = !msg[key];\n",
        "        fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n",
        "    if (msg['mode'] === 'PAN') {\n",
        "        fig.buttons['Pan'].classList.add('active');\n",
        "        fig.buttons['Zoom'].classList.remove('active');\n",
        "    } else if (msg['mode'] === 'ZOOM') {\n",
        "        fig.buttons['Pan'].classList.remove('active');\n",
        "        fig.buttons['Zoom'].classList.add('active');\n",
        "    } else {\n",
        "        fig.buttons['Pan'].classList.remove('active');\n",
        "        fig.buttons['Zoom'].classList.remove('active');\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.updated_canvas_event = function () {\n",
        "    // Called whenever the canvas gets updated.\n",
        "    this.send_message('ack', {});\n",
        "};\n",
        "\n",
        "// A function to construct a web socket function for onmessage handling.\n",
        "// Called in the figure constructor.\n",
        "mpl.figure.prototype._make_on_message_function = function (fig) {\n",
        "    return function socket_on_message(evt) {\n",
        "        if (evt.data instanceof Blob) {\n",
        "            /* FIXME: We get \"Resource interpreted as Image but\n",
        "             * transferred with MIME type text/plain:\" errors on\n",
        "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
        "             * to be part of the websocket stream */\n",
        "            evt.data.type = 'image/png';\n",
        "\n",
        "            /* Free the memory for the previous frames */\n",
        "            if (fig.imageObj.src) {\n",
        "                (window.URL || window.webkitURL).revokeObjectURL(\n",
        "                    fig.imageObj.src\n",
        "                );\n",
        "            }\n",
        "\n",
        "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
        "                evt.data\n",
        "            );\n",
        "            fig.updated_canvas_event();\n",
        "            fig.waiting = false;\n",
        "            return;\n",
        "        } else if (\n",
        "            typeof evt.data === 'string' &&\n",
        "            evt.data.slice(0, 21) === 'data:image/png;base64'\n",
        "        ) {\n",
        "            fig.imageObj.src = evt.data;\n",
        "            fig.updated_canvas_event();\n",
        "            fig.waiting = false;\n",
        "            return;\n",
        "        }\n",
        "\n",
        "        var msg = JSON.parse(evt.data);\n",
        "        var msg_type = msg['type'];\n",
        "\n",
        "        // Call the  \"handle_{type}\" callback, which takes\n",
        "        // the figure and JSON message as its only arguments.\n",
        "        try {\n",
        "            var callback = fig['handle_' + msg_type];\n",
        "        } catch (e) {\n",
        "            console.log(\n",
        "                \"No handler for the '\" + msg_type + \"' message type: \",\n",
        "                msg\n",
        "            );\n",
        "            return;\n",
        "        }\n",
        "\n",
        "        if (callback) {\n",
        "            try {\n",
        "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
        "                callback(fig, msg);\n",
        "            } catch (e) {\n",
        "                console.log(\n",
        "                    \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n",
        "                    e,\n",
        "                    e.stack,\n",
        "                    msg\n",
        "                );\n",
        "            }\n",
        "        }\n",
        "    };\n",
        "};\n",
        "\n",
        "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
        "mpl.findpos = function (e) {\n",
        "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
        "    var targ;\n",
        "    if (!e) {\n",
        "        e = window.event;\n",
        "    }\n",
        "    if (e.target) {\n",
        "        targ = e.target;\n",
        "    } else if (e.srcElement) {\n",
        "        targ = e.srcElement;\n",
        "    }\n",
        "    if (targ.nodeType === 3) {\n",
        "        // defeat Safari bug\n",
        "        targ = targ.parentNode;\n",
        "    }\n",
        "\n",
        "    // pageX,Y are the mouse positions relative to the document\n",
        "    var boundingRect = targ.getBoundingClientRect();\n",
        "    var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n",
        "    var y = e.pageY - (boundingRect.top + document.body.scrollTop);\n",
        "\n",
        "    return { x: x, y: y };\n",
        "};\n",
        "\n",
        "/*\n",
        " * return a copy of an object with only non-object keys\n",
        " * we need this to avoid circular references\n",
        " * http://stackoverflow.com/a/24161582/3208463\n",
        " */\n",
        "function simpleKeys(original) {\n",
        "    return Object.keys(original).reduce(function (obj, key) {\n",
        "        if (typeof original[key] !== 'object') {\n",
        "            obj[key] = original[key];\n",
        "        }\n",
        "        return obj;\n",
        "    }, {});\n",
        "}\n",
        "\n",
        "mpl.figure.prototype.mouse_event = function (event, name) {\n",
        "    var canvas_pos = mpl.findpos(event);\n",
        "\n",
        "    if (name === 'button_press') {\n",
        "        this.canvas.focus();\n",
        "        this.canvas_div.focus();\n",
        "    }\n",
        "\n",
        "    var x = canvas_pos.x * this.ratio;\n",
        "    var y = canvas_pos.y * this.ratio;\n",
        "\n",
        "    this.send_message(name, {\n",
        "        x: x,\n",
        "        y: y,\n",
        "        button: event.button,\n",
        "        step: event.step,\n",
        "        guiEvent: simpleKeys(event),\n",
        "    });\n",
        "\n",
        "    /* This prevents the web browser from automatically changing to\n",
        "     * the text insertion cursor when the button is pressed.  We want\n",
        "     * to control all of the cursor setting manually through the\n",
        "     * 'cursor' event from matplotlib */\n",
        "    event.preventDefault();\n",
        "    return false;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._key_event_extra = function (_event, _name) {\n",
        "    // Handle any extra behaviour associated with a key event\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.key_event = function (event, name) {\n",
        "    // Prevent repeat events\n",
        "    if (name === 'key_press') {\n",
        "        if (event.which === this._key) {\n",
        "            return;\n",
        "        } else {\n",
        "            this._key = event.which;\n",
        "        }\n",
        "    }\n",
        "    if (name === 'key_release') {\n",
        "        this._key = null;\n",
        "    }\n",
        "\n",
        "    var value = '';\n",
        "    if (event.ctrlKey && event.which !== 17) {\n",
        "        value += 'ctrl+';\n",
        "    }\n",
        "    if (event.altKey && event.which !== 18) {\n",
        "        value += 'alt+';\n",
        "    }\n",
        "    if (event.shiftKey && event.which !== 16) {\n",
        "        value += 'shift+';\n",
        "    }\n",
        "\n",
        "    value += 'k';\n",
        "    value += event.which.toString();\n",
        "\n",
        "    this._key_event_extra(event, name);\n",
        "\n",
        "    this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n",
        "    return false;\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.toolbar_button_onclick = function (name) {\n",
        "    if (name === 'download') {\n",
        "        this.handle_save(this, null);\n",
        "    } else {\n",
        "        this.send_message('toolbar_button', { name: name });\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n",
        "    this.message.textContent = tooltip;\n",
        "};\n",
        "\n",
        "///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n",
        "// prettier-ignore\n",
        "var _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\n",
        "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
        "\n",
        "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
        "\n",
        "mpl.default_extension = \"png\";/* global mpl */\n",
        "\n",
        "var comm_websocket_adapter = function (comm) {\n",
        "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
        "    // object with the appropriate methods. Currently this is a non binary\n",
        "    // socket, so there is still some room for performance tuning.\n",
        "    var ws = {};\n",
        "\n",
        "    ws.close = function () {\n",
        "        comm.close();\n",
        "    };\n",
        "    ws.send = function (m) {\n",
        "        //console.log('sending', m);\n",
        "        comm.send(m);\n",
        "    };\n",
        "    // Register the callback with on_msg.\n",
        "    comm.on_msg(function (msg) {\n",
        "        //console.log('receiving', msg['content']['data'], msg);\n",
        "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
        "        ws.onmessage(msg['content']['data']);\n",
        "    });\n",
        "    return ws;\n",
        "};\n",
        "\n",
        "mpl.mpl_figure_comm = function (comm, msg) {\n",
        "    // This is the function which gets called when the mpl process\n",
        "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
        "\n",
        "    var id = msg.content.data.id;\n",
        "    // Get hold of the div created by the display call when the Comm\n",
        "    // socket was opened in Python.\n",
        "    var element = document.getElementById(id);\n",
        "    var ws_proxy = comm_websocket_adapter(comm);\n",
        "\n",
        "    function ondownload(figure, _format) {\n",
        "        window.open(figure.canvas.toDataURL());\n",
        "    }\n",
        "\n",
        "    var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n",
        "\n",
        "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
        "    // web socket which is closed, not our websocket->open comm proxy.\n",
        "    ws_proxy.onopen();\n",
        "\n",
        "    fig.parent_element = element;\n",
        "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
        "    if (!fig.cell_info) {\n",
        "        console.error('Failed to find cell for figure', id, fig);\n",
        "        return;\n",
        "    }\n",
        "    fig.cell_info[0].output_area.element.on(\n",
        "        'cleared',\n",
        "        { fig: fig },\n",
        "        fig._remove_fig_handler\n",
        "    );\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_close = function (fig, msg) {\n",
        "    var width = fig.canvas.width / fig.ratio;\n",
        "    fig.cell_info[0].output_area.element.off(\n",
        "        'cleared',\n",
        "        fig._remove_fig_handler\n",
        "    );\n",
        "    fig.resizeObserverInstance.unobserve(fig.canvas_div);\n",
        "\n",
        "    // Update the output cell to use the data from the current canvas.\n",
        "    fig.push_to_output();\n",
        "    var dataURL = fig.canvas.toDataURL();\n",
        "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
        "    // the notebook keyboard shortcuts fail.\n",
        "    IPython.keyboard_manager.enable();\n",
        "    fig.parent_element.innerHTML =\n",
        "        '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
        "    fig.close_ws(fig, msg);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.close_ws = function (fig, msg) {\n",
        "    fig.send_message('closing', msg);\n",
        "    // fig.ws.close()\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.push_to_output = function (_remove_interactive) {\n",
        "    // Turn the data on the canvas into data in the output cell.\n",
        "    var width = this.canvas.width / this.ratio;\n",
        "    var dataURL = this.canvas.toDataURL();\n",
        "    this.cell_info[1]['text/html'] =\n",
        "        '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.updated_canvas_event = function () {\n",
        "    // Tell IPython that the notebook contents must change.\n",
        "    IPython.notebook.set_dirty(true);\n",
        "    this.send_message('ack', {});\n",
        "    var fig = this;\n",
        "    // Wait a second, then push the new image to the DOM so\n",
        "    // that it is saved nicely (might be nice to debounce this).\n",
        "    setTimeout(function () {\n",
        "        fig.push_to_output();\n",
        "    }, 1000);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._init_toolbar = function () {\n",
        "    var fig = this;\n",
        "\n",
        "    var toolbar = document.createElement('div');\n",
        "    toolbar.classList = 'btn-toolbar';\n",
        "    this.root.appendChild(toolbar);\n",
        "\n",
        "    function on_click_closure(name) {\n",
        "        return function (_event) {\n",
        "            return fig.toolbar_button_onclick(name);\n",
        "        };\n",
        "    }\n",
        "\n",
        "    function on_mouseover_closure(tooltip) {\n",
        "        return function (event) {\n",
        "            if (!event.currentTarget.disabled) {\n",
        "                return fig.toolbar_button_onmouseover(tooltip);\n",
        "            }\n",
        "        };\n",
        "    }\n",
        "\n",
        "    fig.buttons = {};\n",
        "    var buttonGroup = document.createElement('div');\n",
        "    buttonGroup.classList = 'btn-group';\n",
        "    var button;\n",
        "    for (var toolbar_ind in mpl.toolbar_items) {\n",
        "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
        "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
        "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
        "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
        "\n",
        "        if (!name) {\n",
        "            /* Instead of a spacer, we start a new button group. */\n",
        "            if (buttonGroup.hasChildNodes()) {\n",
        "                toolbar.appendChild(buttonGroup);\n",
        "            }\n",
        "            buttonGroup = document.createElement('div');\n",
        "            buttonGroup.classList = 'btn-group';\n",
        "            continue;\n",
        "        }\n",
        "\n",
        "        button = fig.buttons[name] = document.createElement('button');\n",
        "        button.classList = 'btn btn-default';\n",
        "        button.href = '#';\n",
        "        button.title = name;\n",
        "        button.innerHTML = '<i class=\"fa ' + image + ' fa-lg\"></i>';\n",
        "        button.addEventListener('click', on_click_closure(method_name));\n",
        "        button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
        "        buttonGroup.appendChild(button);\n",
        "    }\n",
        "\n",
        "    if (buttonGroup.hasChildNodes()) {\n",
        "        toolbar.appendChild(buttonGroup);\n",
        "    }\n",
        "\n",
        "    // Add the status bar.\n",
        "    var status_bar = document.createElement('span');\n",
        "    status_bar.classList = 'mpl-message pull-right';\n",
        "    toolbar.appendChild(status_bar);\n",
        "    this.message = status_bar;\n",
        "\n",
        "    // Add the close button to the window.\n",
        "    var buttongrp = document.createElement('div');\n",
        "    buttongrp.classList = 'btn-group inline pull-right';\n",
        "    button = document.createElement('button');\n",
        "    button.classList = 'btn btn-mini btn-primary';\n",
        "    button.href = '#';\n",
        "    button.title = 'Stop Interaction';\n",
        "    button.innerHTML = '<i class=\"fa fa-power-off icon-remove icon-large\"></i>';\n",
        "    button.addEventListener('click', function (_evt) {\n",
        "        fig.handle_close(fig, {});\n",
        "    });\n",
        "    button.addEventListener(\n",
        "        'mouseover',\n",
        "        on_mouseover_closure('Stop Interaction')\n",
        "    );\n",
        "    buttongrp.appendChild(button);\n",
        "    var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n",
        "    titlebar.insertBefore(buttongrp, titlebar.firstChild);\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._remove_fig_handler = function (event) {\n",
        "    var fig = event.data.fig;\n",
        "    if (event.target !== this) {\n",
        "        // Ignore bubbled events from children.\n",
        "        return;\n",
        "    }\n",
        "    fig.close_ws(fig, {});\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._root_extra_style = function (el) {\n",
        "    el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._canvas_extra_style = function (el) {\n",
        "    // this is important to make the div 'focusable\n",
        "    el.setAttribute('tabindex', 0);\n",
        "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
        "    // off when our div gets focus\n",
        "\n",
        "    // location in version 3\n",
        "    if (IPython.notebook.keyboard_manager) {\n",
        "        IPython.notebook.keyboard_manager.register_events(el);\n",
        "    } else {\n",
        "        // location in version 2\n",
        "        IPython.keyboard_manager.register_events(el);\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype._key_event_extra = function (event, _name) {\n",
        "    var manager = IPython.notebook.keyboard_manager;\n",
        "    if (!manager) {\n",
        "        manager = IPython.keyboard_manager;\n",
        "    }\n",
        "\n",
        "    // Check for shift+enter\n",
        "    if (event.shiftKey && event.which === 13) {\n",
        "        this.canvas_div.blur();\n",
        "        // select the cell after this one\n",
        "        var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n",
        "        IPython.notebook.select(index + 1);\n",
        "    }\n",
        "};\n",
        "\n",
        "mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
        "    fig.ondownload(fig, null);\n",
        "};\n",
        "\n",
        "mpl.find_output_cell = function (html_output) {\n",
        "    // Return the cell and output element which can be found *uniquely* in the notebook.\n",
        "    // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
        "    // IPython event is triggered only after the cells have been serialised, which for\n",
        "    // our purposes (turning an active figure into a static one), is too late.\n",
        "    var cells = IPython.notebook.get_cells();\n",
        "    var ncells = cells.length;\n",
        "    for (var i = 0; i < ncells; i++) {\n",
        "        var cell = cells[i];\n",
        "        if (cell.cell_type === 'code') {\n",
        "            for (var j = 0; j < cell.output_area.outputs.length; j++) {\n",
        "                var data = cell.output_area.outputs[j];\n",
        "                if (data.data) {\n",
        "                    // IPython >= 3 moved mimebundle to data attribute of output\n",
        "                    data = data.data;\n",
        "                }\n",
        "                if (data['text/html'] === html_output) {\n",
        "                    return [cell, data, j];\n",
        "                }\n",
        "            }\n",
        "        }\n",
        "    }\n",
        "};\n",
        "\n",
        "// Register the function which deals with the matplotlib target/channel.\n",
        "// The kernel may be null if the page has been refreshed.\n",
        "if (IPython.notebook.kernel !== null) {\n",
        "    IPython.notebook.kernel.comm_manager.register_target(\n",
        "        'matplotlib',\n",
        "        mpl.mpl_figure_comm\n",
        "    );\n",
        "}\n"
       ],
       "text/plain": [
        "<IPython.core.display.Javascript object>"
       ]
      },
      "metadata": {},
      "output_type": "display_data"
     },
     {
      "data": {
       "text/html": [
-       "<img src=\"data:image/png;base64,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sFALFizQtddea4ZAl8ulu+66S2vXrnW6PABwBLOoffwyELpcLjMIXnbZZXrrrbd4i4yPMjIyFB8fr+TkZLVr145ACAB+Ki8vT2+99ZYuv/xyMwhGRESoX79+7J4NIOQxi9rHbwNhgwYNNHfuXKdLCTh/vIbjuHHjCIQA4GdOnz6tl19+WW63yYUAACAASURBVPXq1TODYKVKlTR8+PCzPkMPAKGKWdQ+fhkIr776anZPKwUEQgDwH8eOHdPEiRNVs2ZNMwhWr15df//739kgDQD+B7OoffwyEH7yySdOl1Cqtm3bphkzZqhv375KTEw0d41LS0vz6f6LFi1SUlKSYmNjFR0drebNm2v69OlerwZaIRACgPMOHz6sZ5991usagnXq1NH06dPZIA0AisAsah+/DIS++v33350uwSeDBw/22jHuzPIlEJ4JdYZhKCEhQYmJiXK73TIMQ127dv3TUEggBADn7N27V8OGDVPFihW9riE4a9YsNkgDgHNgFrVPwATCb7/9Vnfeeaduv/12r2PJycn69ddfHazs3NLS0pScnKzU1FQtXrxY3bt39ykQrlq1ytxgJz093Ty+fv16xcfHyzAMTZw4scj7EwgBwH7bt2/XgAEDzJ2eDcNQs2bN9P7777NBGgD4iFnUPgERCJctW6bIyEi5XC41btzY67aNGzeqTp062r59uzPFnYfevXv7FAg7d+4swzCUkpJy1m1z5syRYRiKi4tTXl6e5f0JhABgn02bNql3794qV66cGQSvueYaffrpp1xDEACKiVnUPgERCK+77jrVr19fY8eO1Y033njW7ffdd5969+5tf2HnyZdAmJ2drYiICBmGoTVr1px1e15enipXrizDMLRkyRLLr0EgBICyt27dOt15551yuVxmELzpppuUkZFBEASA88Qsap+ACIQ1a9Y0d2Dr1q3bWbc/9dRTqlu3rt1lnTdfAuGyZctkGIaioqKUn59veU5SUpIMw1Bqaqrl7QRCACg7y5cvV6dOnbw+G3777bdb/hIPAFA8zKL2CYhA2K5dO/PPVoHw9ttvV1RUlJ0llYgvgXDmzJkyDEMNGzYs8px+/frJMAz16tXL6/jcuXM1d+5c9ezZU4ZhmH/fuHGjzzXShABwNo/Ho88//1zt2rUzQ6Db7VbPnj31888/O10eAAQNZlH7BEQg7NGjhw4dOiRJ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\" width=\"900\">"
+       "<div id='95d66bfb-a49f-488f-9966-6c19cdd13b4a'></div>"
       ],
       "text/plain": [
        "<IPython.core.display.HTML object>"
       ]
      },
      "metadata": {},
      "output_type": "display_data"
     }
    ],
    "source": [
     "if True:\n",
     "    fig=plt.figure(figsize=(9,4))\n",
     "    fig.subplots_adjust(bottom=0.15, left=0.15, top = 0.95, right=0.9,wspace=0.0,hspace=0.0)\n",
     "    sub = fig.add_subplot(1,1,1)\n",
     "\n",
     "    T=np.logspace(-5,5,500)\n",
-    "    s=[Cosmo.s(i) for i in T]\n",
+    "    s=[cosmo.s(i) for i in T]\n",
     "    sub.plot(T,s,linestyle='-',c='xkcd:black')#,label=r\"$g_{\\rm eff} (T)$\")\n",
     "    sub.set_ylabel(r'$s ~ [{\\rm GeV}^3]$')\n",
     "    sub.set_yscale('log')\n",
     "    sub.set_xscale('log')\n",
     "\n",
     "    sub.set_xlabel(r'$T \\; [{\\rm GeV}]$')\n",
     "\n",
     "    fig.show()"
    ]
   },
   {
    "cell_type": "code",
    "execution_count": null,
    "metadata": {},
    "outputs": [],
    "source": []
   }
  ],
  "metadata": {
   "kernelspec": {
    "display_name": "Python 3",
    "language": "python",
    "name": "python3"
   },
   "language_info": {
    "codemirror_mode": {
     "name": "ipython",
     "version": 3
    },
    "file_extension": ".py",
    "mimetype": "text/x-python",
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
    "version": "3.9.5"
   }
  },
  "nbformat": 4,
  "nbformat_minor": 2
 }
diff --git a/UserSpace/JupyterNotebooks/WKB.ipynb b/UserSpace/JupyterNotebooks/WKB.ipynb
index 41c1729..d2274c3 100755
--- a/UserSpace/JupyterNotebooks/WKB.ipynb
+++ b/UserSpace/JupyterNotebooks/WKB.ipynb
@@ -1,204 +1,133 @@
 {
  "cells": [
   {
    "cell_type": "code",
    "execution_count": 1,
    "metadata": {},
    "outputs": [],
    "source": [
     "import numpy as np#you usually need numpy\n",
     "\n",
     "#---these are for plots---#\n",
     "import matplotlib\n",
     "matplotlib.use('nbAgg')\n",
     "import matplotlib.pyplot as plt\n",
     "\n",
     "plt.rcParams['font.size']=16\n",
     "plt.rcParams['font.family']='dejavu sans'\n",
     "\n",
     "plt.rcParams['mathtext.fontset']='stix'\n",
     "plt.rcParams['mathtext.rm']='custom'\n",
     "plt.rcParams['mathtext.it']='stix:italic'\n",
     "plt.rcParams['mathtext.bf']='stix:bold'\n",
     "#-------------------------#"
    ]
   },
   {
    "cell_type": "code",
    "execution_count": 2,
    "metadata": {
     "scrolled": true
    },
    "outputs": [],
    "source": [
     "#load the module\n",
     "from sys import path as sysPath\n",
-    "from os import path as osPath\n",
-    "sysPath.append(osPath.join(osPath.dirname('./'), '../../src'))\n",
+    "sysPath.append('../../src')\n",
     "\n",
     "from interfacePy.WKB import WKB\n",
     "from interfacePy.Axion import Axion \n",
     "from interfacePy.AxionMass import AxionMass \n",
-    "from interfacePy.Cosmo import s \n",
+    "from interfacePy.Cosmo import Cosmo\n",
     "\n",
     "from interfacePy.FT import FT #easy tick formatting\n"
    ]
   },
   {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "One can use the WKB approximation, in order to estimate the relic abundance using ```WKB.relic```, which takes as\n",
-    "$T_{\\rm osc}$, $\\theta_{\\rm osc}$, and $\\gamma$ (the entropy injection from $T_{\\rm osc}$ until today).\n",
-    "\n",
-    "For $\\theta_{\\rm osc}$ one usually uses $\\theta_{\\rm ini}$, or can use ```WKB.theta_osc``` for a firs order approximation. This function takes \n",
-    "\n",
-    "$T_{\\rm ini}$, $3H/m_a$ at $T=T_{\\rm ini}$, $T_{\\rm osc}$, $\\theta_{\\rm ini}$, $\\gamma_{\\rm osc}$ (the entropy injection between $T_{\\rm ini}$ and $T_{\\rm osc}$).\n"
-   ]
-  },
-  {
    "cell_type": "code",
    "execution_count": 3,
    "metadata": {},
    "outputs": [],
    "source": [
     "theta_ini, fa=0.94435, 1e12\n",
     "\n",
     "CosmoFile='../InputExamples/RDinput.dat'\n",
     "# CosmoFile='../InputExamples/MatterInput.dat'\n",
     "# CosmoFile='../InputExamples/KinationInput.dat'\n",
     "\n",
     "\n",
     "axionMass = AxionMass(r'../../src/data/chi.dat',0,1e5)\n",
     "#------------------------------------------------------------------------------#\n",
     "# this is the axion mass squared beyond the interpolation limits for the current data \n",
     "# if yo don't specify it, the axion mass is taken to be constant beyond these limits\n",
     "TMax=axionMass.getTMax() \n",
     "chiMax=axionMass.getChiMax()\n",
     "TMin=axionMass.getTMin() \n",
     "chiMin=axionMass.getChiMin()\n",
     "\n",
     "axionMass.set_ma2_MAX( lambda T,fa: chiMax/fa/fa*pow(T/TMax,-8.16) )\n",
     "axionMass.set_ma2_MIN( lambda T,fa: chiMin/fa/fa )\n",
     "#------------------------------------------------------------------------------#\n",
-    "\n",
-    "\n",
-    "gamma_osc, gamma, Tosc, Tini,ratio_ini=WKB.getPoints(5,1.5,fa,axionMass.ma2,CosmoFile)"
+    "\n"
    ]
   },
   {
    "cell_type": "code",
    "execution_count": 4,
    "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "0.11935022004089332\n"
-     ]
-    }
-   ],
+   "outputs": [],
    "source": [
-    "#numerical result\n",
-    "ax =Axion(theta_ini,fa,500,1e-4,1e3,5,1e-2,CosmoFile,axionMass)\n",
-    "ax.solveAxion()\n",
-    "print(ax.relic)\n",
-    "MiMeS_theta_osc=ax.theta_osc\n",
-    "del ax"
+    "gamma_osc, gamma, Tosc, Tini, ratio_ini = WKB.getPoints(10,5,fa,axionMass.ma2,CosmoFile)"
    ]
   },
   {
    "cell_type": "code",
    "execution_count": 5,
    "metadata": {},
    "outputs": [
     {
      "data": {
       "text/plain": [
        "0.07152932609370595"
       ]
      },
      "execution_count": 5,
      "metadata": {},
      "output_type": "execute_result"
     }
    ],
    "source": [
-    "#just WKB\n",
+    "#WKB\n",
     "WKB.relic(Tosc,theta_ini,axionMass.ma2,gamma)"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 6,
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "0.06841468669903171"
-      ]
-     },
-     "execution_count": 6,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "#WKB with approximate theta_osc\n",
-    "theta_osc=WKB.theta_osc(Tini, ratio_ini, Tosc, theta_ini, gamma_osc)\n",
-    "WKB.relic(Tosc,theta_osc,axionMass.ma2,gamma)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 7,
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "0.0646097119884361"
-      ]
-     },
-     "execution_count": 7,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "#WKB with numerical result for theta_osc\n",
-    "WKB.relic(Tosc,MiMeS_theta_osc,axionMass.ma2,gamma)"
-   ]
-  },
-  {
-   "cell_type": "code",
    "execution_count": null,
    "metadata": {},
    "outputs": [],
    "source": []
   }
  ],
  "metadata": {
   "kernelspec": {
-   "display_name": "Python 3 (ipykernel)",
+   "display_name": "Python 3",
    "language": "python",
    "name": "python3"
   },
   "language_info": {
    "codemirror_mode": {
     "name": "ipython",
     "version": 3
    },
    "file_extension": ".py",
    "mimetype": "text/x-python",
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.8.8"
+   "version": "3.9.5"
   }
  },
  "nbformat": 4,
  "nbformat_minor": 2
 }
diff --git a/UserSpace/Python/Axion.py b/UserSpace/Python/Axion.py
index 66a0143..11ad702 100755
--- a/UserSpace/Python/Axion.py
+++ b/UserSpace/Python/Axion.py
@@ -1,193 +1,197 @@
 from time import time
 from sys import stderr
 
 from sys import path as sysPath
 from os import path as osPath
 sysPath.append(osPath.join(osPath.dirname(__file__), '../../src'))
 
 #load the module
 from interfacePy.Axion import Axion 
 from interfacePy.AxionMass import AxionMass 
-from interfacePy.Cosmo import Hubble,mP
+from interfacePy.Cosmo import Cosmo
+
+
+Hubble=Cosmo().Hubble
+mP=Cosmo().mP
 
 theta_i, fa=0.94435, 1e12
 
 umax=500
 TSTOP=1e-4
 ratio_ini=1e3
 
 N_convergence_max, convergence_lim=5, 1e-2 #this is fine, but you can experiment a bit. 
 
 #radiation dominated example
 inputFile="../InputExamples/RDinput.dat" 
 
 # Matter Domination example. 
 # the NSC parameters (using the notation of 2012.07202) are:
 # T_end=1e-2 (GeV), c=3, T_ini=1e12 (GeV), and r=1e-1
 # inputFile="../InputExamples/MatterInput.dat" 
 
 # Kination Domination example. 
 # the NSC parameters (using the notation of 2012.07202) are:
 # T_end=0, c=6, T_ini=1e3 (GeV), and r=1e10
 # inputFile="../InputExamples/KinationInput.dat" 
 
 
 
 # options for the solver
 # These variables are optional. Yoou can use the Axion class without them.
 initial_step_size=1e-2; #initial step the solver takes. 
 minimum_step_size=1e-8; #This limits the sepsize to an upper limit. 
 maximum_step_size=1e-2; #This limits the sepsize to a lower limit.
 absolute_tolerance=1e-8; #absolute tolerance of the RK solver
 relative_tolerance=1e-8; #relative tolerance of the RK solver
 beta=0.9; #controls how agreesive the adaptation is. Generally, it should be around but less than 1.
 
 #The stepsize does not increase more than fac_max, and less than fac_min. 
 #This ensures a better stability. Ideally, fac_max=inf and fac_min=0, but in reality one must 
 #tweak them in order to avoid instabilities.
 fac_max=1.2; 
 fac_min=0.8;
 maximum_No_steps=int(1e7); #maximum steps the solver can take Quits if this number is reached even if integration is not finished.
 
 _=time()
 # AxionMass instance
 axionMass = AxionMass(r'../../src/data/chi.dat',0,mP)
 #------------------------------------------------------------------------------#
 # this is the axion mass squared beyond the interpolation limits for the current data 
 # if yo don't specify it, the axion mass is taken to be constant beyond these limits
 TMax=axionMass.getTMax() 
 chiMax=axionMass.getChiMax()
 TMin=axionMass.getTMin() 
 chiMin=axionMass.getChiMin()
 
 axionMass.set_ma2_MAX( lambda T,fa: chiMax/fa/fa*pow(T/TMax,-8.16) )
 axionMass.set_ma2_MIN( lambda T,fa: chiMin/fa/fa )
 #------------------------------------------------------------------------------#
 # def ma2(T,fa):
 #     TQCD=150*1e-3
 #     ma20=3.1575e-05/fa/fa
 #     if T<=TQCD:
 #         return ma20
 #     return ma20*pow((TQCD/T),8.16)
 # axionMass = AxionMass(ma2)
 
 # Axion instance
 ax=Axion(theta_i, fa, umax, TSTOP, ratio_ini, N_convergence_max, convergence_lim, inputFile, axionMass,
         initial_step_size,minimum_step_size, maximum_step_size, absolute_tolerance, 
         relative_tolerance, beta, fac_max, fac_min, maximum_No_steps)
 
 
 # solve the EOM (this only gives you the relic, T_osc, theta_osc, and a_osc)
 ax.solveAxion()
 
 print(ax.theta_i, ax.fa, ax.theta_osc, ax.T_osc ,ax.relic)
 print(round(time()-_,3),file=stderr)
 
 
 
 # change to True in order to mkae the plots
 if False:
     import matplotlib.pyplot as plt
     from numpy import array as np_array
     from numpy import abs as np_abs
 
     ax.getPeaks()#this gives you the peaks of the oscillation
     ax.getPoints()#this gives you all the points of integration
     ax.getErrors()#this gives you local errors of integration
 
 
     #########-----\theta-----#########
     fig=plt.figure(figsize=(9,4))
     fig.subplots_adjust(bottom=0.15, left=0.15, top = 0.9, right=0.9,wspace=0.0,hspace=0.25)
     sub = fig.add_subplot(1,1,1)
     
     #this plot shows the peaks of the oscillation
     sub.plot(ax.T_peak,ax.theta_peak,linestyle=':',marker='+',color='xkcd:blue',linewidth=2)
 
     #this plot shows all the points
     sub.plot(ax.T,ax.theta,linestyle='-',linewidth=2,alpha=1,c='xkcd:black')
 
     
     sub.set_yscale('linear')
     sub.set_xscale('linear')
     
     sub.set_xlabel(r'$T ~[{\rm GeV}]$')
     sub.xaxis.set_label_coords(0.5, -0.1) 
     sub.set_ylabel(r'$\theta$')
     sub.yaxis.set_label_coords(-0.1,0.5) 
 
     sub.axhline(ax.theta_osc,linestyle=':',color='xkcd:red',linewidth=1.5)
     sub.axvline(ax.T_osc,linestyle='--',color='xkcd:gray',linewidth=1.5)
    
     fig.savefig('theta-T_examplePlot.pdf',bbox_inches='tight')
 
 
 
     #########-----\zeta-----#########
     fig=plt.figure(figsize=(9,4))
     fig.subplots_adjust(bottom=0.15, left=0.15, top = 0.9, right=0.9,wspace=0.0,hspace=0.25)
     sub = fig.add_subplot(1,1,1)
     
     sub.plot(ax.T,ax.zeta,linestyle='-',linewidth=2,alpha=1,c='xkcd:black')
     sub.plot(ax.T_peak,ax.zeta_peak,linestyle=':',marker='+',color='xkcd:blue',linewidth=2)
     
     sub.set_yscale('linear')
     sub.set_xscale('linear')
     
     sub.set_xlabel(r'$T ~[{\rm GeV}]$')
     sub.xaxis.set_label_coords(0.5, -0.1) 
     sub.set_ylabel(r'$\zeta $')
     sub.yaxis.set_label_coords(-0.1,0.5) 
 
     sub.axvline(ax.T_osc,linestyle='--',color='xkcd:gray',linewidth=1.5)
     fig.savefig('zeta-T_examplePlot.pdf',bbox_inches='tight')
 
 
     #########-----errors-----#########
     fig=plt.figure(figsize=(9,4))
     fig.subplots_adjust(bottom=0.15, left=0.15, top = 0.9, right=0.9,wspace=0.0,hspace=0.25)
     sub = fig.add_subplot(1,1,1)
     
     sub.plot(ax.T,np_abs(ax.dtheta/ax.theta),linestyle='-',linewidth=2,alpha=1,c='xkcd:black',label=r'$\dfrac{\delta \theta}{\theta}$')
     sub.plot(ax.T,np_abs(ax.dzeta/ax.zeta),linestyle='-',linewidth=2,alpha=1,c='xkcd:red',label=r'$\dfrac{\delta \zeta}{\zeta}$')
     
     sub.set_yscale('log')
     sub.set_xscale('linear')
     
     sub.set_xlabel(r'$T ~[{\rm GeV}]$')
     sub.xaxis.set_label_coords(0.5, -0.1) 
     sub.set_ylabel(r'local errors')
     sub.yaxis.set_label_coords(-0.1,0.5) 
     sub.legend(bbox_to_anchor=(1, 0.0),borderaxespad=0., 
            borderpad=0.05,ncol=1,loc='lower right',fontsize=14,framealpha=0)
 
     sub.axvline(ax.T_osc,linestyle='--',color='xkcd:gray',linewidth=1.5)
     fig.savefig('errors_examplePlot.pdf',bbox_inches='tight')
 
 
 
     #########-----rho_a-----#########    
     fig=plt.figure(figsize=(9,4))
     fig.subplots_adjust(bottom=0.15, left=0.15, top = 0.9, right=0.9,wspace=0.0,hspace=0.25)
     sub = fig.add_subplot(1,1,1)
     
     sub.plot(ax.T,ax.rho_axion,linestyle='-',linewidth=2,alpha=1,c='xkcd:black')
     sub.plot(ax.T_peak,ax.rho_axion_peak,linestyle=':',linewidth=2,alpha=1,c='xkcd:blue')
 
     sub.set_yscale('log')
     sub.set_xscale('linear')
     
     sub.set_xlabel(r'$T ~[{\rm GeV}]$')
     sub.xaxis.set_label_coords(0.5, -0.1) 
     sub.set_ylabel(r'$\rho_{a}(T) ~[{\rm GeV}^{4}]$')
     sub.yaxis.set_label_coords(-0.1,0.5) 
     
     
     sub.axvline(ax.T_osc,linestyle='--',color='xkcd:gray',linewidth=1.5)
     fig.savefig('rho_a-T_examplePlot.pdf',bbox_inches='tight')
 
 
 
 
 #don't forget the destructor
 del ax
\ No newline at end of file
diff --git a/UserSpace/Python/Cosmo.py b/UserSpace/Python/Cosmo.py
index 9c550de..5cb19c8 100755
--- a/UserSpace/Python/Cosmo.py
+++ b/UserSpace/Python/Cosmo.py
@@ -1,94 +1,95 @@
 from numpy import logspace
 
 
 from sys import path as sysPath
 from os import path as osPath
 sysPath.append(osPath.join(osPath.dirname(__file__), '../../src'))
 
 #load the module
-import interfacePy.Cosmo as Cosmo
+from interfacePy import Cosmo 
 
+cosmo=Cosmo()
 
 
 for T in logspace(-5,5,50):
     print(
         'T=',T,'GeV\t',
-        'H=',Cosmo.Hubble(T),'GeV\t',
-        'h_eff=',Cosmo.heff(T),'\t',
-        'g_eff=',Cosmo.geff(T),'\t',
-        's=',Cosmo.s(T),'GeV^3\t',
+        'H=',cosmo.Hubble(T),'GeV\t',
+        'h_eff=',cosmo.heff(T),'\t',
+        'g_eff=',cosmo.geff(T),'\t',
+        's=',cosmo.s(T),'GeV^3\t',
     )
 
 
 
 if False:
     import matplotlib.pyplot as plt
 
     #########-----g_eff and h_eff-----#########
     fig=plt.figure(figsize=(9,4))
     fig.subplots_adjust(bottom=0.15, left=0.15, top = 0.95, right=0.9,wspace=0.0,hspace=0.0)
     fig.suptitle('')
 
     sub = fig.add_subplot(1,1,1)
 
     T=logspace(-5,5,500)
-    gt=[Cosmo.geff(i) for i in T]
-    ht=[Cosmo.heff(i) for i in T]
+    gt=[cosmo.geff(i) for i in T]
+    ht=[cosmo.heff(i) for i in T]
 
     sub.plot(T,gt,linestyle='--',c='xkcd:red',label=r"$g_{\rm eff} (T)$")
     sub.plot(T,ht,linestyle=':',c='xkcd:black',label=r"$h_{\rm eff} (T)$")
 
     sub.set_xlabel(r'$T ~ [{\rm GeV}]$')
     sub.set_ylabel(r'rel. dof')
 
     sub.legend(bbox_to_anchor=(1, 0.0),borderaxespad=0., 
             borderpad=0.05,ncol=1,loc='lower right',fontsize=14,framealpha=0)
     sub.set_yscale('log')
     sub.set_xscale('log')
 
     fig.savefig('rdofs-T_examplePlot.pdf',bbox_inches='tight')
 
 
 
     #########-----dg_effdT and dh_effdT-----#########
 
     fig=plt.figure(figsize=(9,4))
     fig.subplots_adjust(bottom=0.15, left=0.15, top = 0.95, right=0.9,wspace=0.0,hspace=0.0)
     fig.suptitle('')
 
     sub = fig.add_subplot(1,1,1)
 
     T=logspace(-5,5,500)
-    dg=[Cosmo.dgeffdT (i) for i in T]
-    dh=[Cosmo.dheffdT(i) for i in T]
+    dg=[cosmo.dgeffdT (i) for i in T]
+    dh=[cosmo.dheffdT(i) for i in T]
 
     sub.plot(T,dg,linestyle='--',c='xkcd:red',label=r"$\dfrac{d g_{\rm eff}}{dT} (T)$")
     sub.plot(T,dh,linestyle=':',c='xkcd:black',label=r"$\dfrac{d h_{\rm eff}}{dT} (T)$")
 
     sub.set_xlabel(r'$T ~ [{\rm GeV}]$')
 
     sub.legend(bbox_to_anchor=(1, 0.5),borderaxespad=0., 
             borderpad=0.05,ncol=1,loc='lower right',fontsize=14,framealpha=0)
     sub.set_yscale('symlog')
     sub.set_xscale('log')
 
     fig.savefig('drdofsdT-T_examplePlot.pdf',bbox_inches='tight')
 
 
     #########-----dh-----#########
 
     fig=plt.figure(figsize=(9,4))
     fig.subplots_adjust(bottom=0.15, left=0.15, top = 0.95, right=0.9,wspace=0.0,hspace=0.0)
     fig.suptitle('')
 
     sub = fig.add_subplot(1,1,1)
 
     T=logspace(-5,5,500)
-    dht=[Cosmo.dh(i) for i in T]
+    dht=[cosmo.dh(i) for i in T]
     sub.plot(T,dht,linestyle='-',c='xkcd:black') 
     sub.set_xlabel(r'$T ~ [{\rm GeV}]$')
     sub.set_ylabel(r'$\delta_h = 1 + \dfrac{1}{3} \dfrac{d \log h_{\rm eff} }{d \log T}$')
     sub.set_yscale('linear')
     sub.set_xscale('log')
 
     fig.savefig('dh-T_examplePlot.pdf',bbox_inches='tight')
diff --git a/UserSpace/scan/AxionScan/AxionScan.py b/UserSpace/scan/AxionScan/AxionScan.py
index 7175a6e..7ce23f1 100755
--- a/UserSpace/scan/AxionScan/AxionScan.py
+++ b/UserSpace/scan/AxionScan/AxionScan.py
@@ -1,47 +1,47 @@
 ###-----------------------------------------------------------------------------###
 ###-------------------Example of  interfacePy.ScanScript.Scan-------------------###
 ###-----------------------------------------------------------------------------###
 
 #------------------------------------Note:------------------------------------#
 ###########-Scan: scans for the entire theta_i and f_a one provides-###########
 #-----------------------------------------------------------------------------#
 
 from sys import path as sysPath
 from os import path as osPath
 
 sysPath.append(osPath.join(osPath.dirname(__file__), '../../../src'))
 
 from interfacePy.ScanScript import Scan 
 
 
 from numpy import logspace,linspace,log10,pi
 
 scan=Scan(
     cpus=8,
-    table_fa= logspace(10,19,50),
-    table_theta_i=linspace(0.1,2,50),
+    table_fa= logspace(10,19,150),
+    table_theta_i=linspace(0.1,2,150),
     umax=500,
     TSTOP=1e-4,
     ratio_ini=1e3,
     N_convergence_max=5,
     convergence_lim=1e-2,
     inputFile="../../InputExamples/RDinput.dat", 
     # inputFile="../../InputExamples/MatterInput.dat", 
     # inputFile="../../InputExamples/KinationInput.dat",
     PathToCppExecutable=r"../../Cpp/Axion/Axion.run",
     break_after=60*60*3,
     break_time=60,
     break_command='',
     initial_step_size=1e-2, 
     minimum_step_size=1e-8,
     maximum_step_size=1e-2,
     absolute_tolerance=1e-8,
     relative_tolerance=1e-8,
     beta=0.9,
     fac_max=1.2, 
     fac_min=0.8,
     maximum_No_steps=int(1e7)
 )
 
 
 scan.run()
\ No newline at end of file
diff --git a/UserSpace/scan/AxionScanObs/AxionScanObs.py b/UserSpace/scan/AxionScanObs/AxionScanObs.py
index e9f980d..e4a5a1c 100755
--- a/UserSpace/scan/AxionScanObs/AxionScanObs.py
+++ b/UserSpace/scan/AxionScanObs/AxionScanObs.py
@@ -1,77 +1,80 @@
 ###-----------------------------------------------------------------------------###
 ###-------------------Example of interfacePy.ScanScript.ScanObs-----------------###
 ###-----------------------------------------------------------------------------###
 
 #--------------------------------Note:--------------------------------#
 ###################-The scan proceeds as follows:-#####################
 #-For each value of $f_a$, we find $\theta_i^{approx}$ such that------#
 #-$Omega h^2 = 0.12$, assuming that $\theta_i^{approx} \ll 1$.--------#
 #-Then, it scans values of $\theta_i$ close to $\theta_i^{approx}$.---# 
 #-This results in a range of values of $\theta_i$ for each $f_a$, with# 
 #-$\Omega h^2$ close to the observed value.---------------------------#
 #---------------------------------------------------------------------#
 
 
 
 from sys import path as sysPath
 from os import path as osPath
 
 sysPath.append(osPath.join(osPath.dirname(__file__), '../../../src'))
 
 from interfacePy.ScanScript import ScanObs 
-from interfacePy.Cosmo import relicDM_obs,mP 
+from interfacePy.Cosmo import Cosmo 
 from interfacePy.AxionMass import AxionMass 
 
 
 
 from numpy import logspace
 
+cosmo=Cosmo()
+mP=cosmo.mP
+relicDM_obs=cosmo.relicDM_obs
 
 # AxionMass instance
 axionMass = AxionMass(r'../../../src/data/chi.dat',0,mP)
 #------------------------------------------------------------------------------#
 # this is the axion mass squared beyond the interpolation limits for the current data 
 # if yo don't specify it, the axion mass is taken to be constant beyond these limits
 TMax=axionMass.getTMax() 
 chiMax=axionMass.getChiMax()
 TMin=axionMass.getTMin() 
 chiMin=axionMass.getChiMin()
 
 axionMass.set_ma2_MAX( lambda T,fa: chiMax/fa/fa*pow(T/TMax,-8.16) )
 axionMass.set_ma2_MIN( lambda T,fa: chiMin/fa/fa )
 
 
 
 scan=ScanObs(
     cpus=8,
     table_fa= logspace(10,20,150),
-    len_theta=350,
+    len_theta=150,
     umax=500,
     TSTOP=1e-4,
     ratio_ini=1e3,
     N_convergence_max=10,
     convergence_lim=1e-1,
     inputFile="../../InputExamples/RDinput.dat", 
     # inputFile="../../InputExamples/MatterInput.dat", 
     # inputFile="../../InputExamples/KinationInput.dat",
     axionMass=axionMass,
     PathToCppExecutable=r"../../Cpp/Axion/Axion.run",
     relic_obs=relicDM_obs,
     relic_err_up=0.01,
     relic_err_low=0.01,
     break_after=60*60*3,
     break_time=60,
     break_command='',
     initial_step_size=1e-2, 
     minimum_step_size=1e-8,
     maximum_step_size=1e-2,
     absolute_tolerance=1e-8,
     relative_tolerance=1e-8,
     beta=0.9,
     fac_max=1.2, 
     fac_min=0.8,
     maximum_No_steps=int(1e7)
 )
 
 
 scan.run()
\ No newline at end of file
diff --git a/src/interfacePy/Cosmo/Cosmo.py b/src/interfacePy/Cosmo/Cosmo.py
index a93ef7f..3adb3d1 100644
--- a/src/interfacePy/Cosmo/Cosmo.py
+++ b/src/interfacePy/Cosmo/Cosmo.py
@@ -1,79 +1,95 @@
 from  ctypes import CDLL, c_longdouble, c_double
 
 from sys import path as sysPath
 from os import path as osPath
 
 sysPath.append(osPath.join(osPath.dirname(__file__), '../../'))
 
 from misc_dir.path import _PATH_
 from misc_dir.type import cdouble
 
 #load the library
 func = CDLL(_PATH_+'/lib/libCosmo.so')
 
 CppFunc=func.heff,func.geff,func.dgeffdT,func.dheffdT,func.dh,func.rhoR,func.Hubble,func.s  
 
 #specify the argument types
 for i,f in enumerate (CppFunc): 
     f.argtypes = cdouble,
     #specify the return type
     f.restype = cdouble
 ###############################################
 
-def heff(T):
-    '''h_eff at temperature T [GeV]'''
-    return func.heff(T)
-
-def geff(T):
-    '''g_eff at temperature T [GeV] '''
-    return func.geff(T)
-
-def dgeffdT(T):
-    '''\\dfrac{dg_eff}{dT} at temperature T [GeV]'''
-    return func.dgeffdT(T)
-
-def dheffdT(T):
-    '''\\dfrac{dh_eff}{dT} at temperature T [GeV]'''
-    return func.dheffdT(T)
-
-def dh(T):
-    '''\\delta_h(T)=1+1/3 \frac{d log h_eff}{d log T} at temperature T [GeV]'''
-    return func.dh(T)
-
-def rhoR(T):
-    '''energy density of the plasma at temperature T [GeV]'''
-    return func.rhoR(T)
-
-def Hubble(T): 
-    '''H at temperature T [GeV]'''
-    return func.Hubble(T)
-
-def s(T): 
-    '''s (entropy density of the plasma) at temperature T [GeV]'''
-    return func.s(T)
 
 func.getT0.argtypes =None
 func.getT0.restype =cdouble
 func.geth_hub.argtypes =None
 func.geth_hub.restype =cdouble
 func.getrho_crit.argtypes =None
 func.getrho_crit.restype =cdouble
 func.getrelicDM.argtypes =None
 func.getrelicDM.restype =cdouble
 func.getMP.argtypes =None
 func.getMP.restype =cdouble
 
-# CMB temperature today in GeV
-T0=func.getT0()
-# critical density today in GeV^4
-rho_crit=func.getrho_crit()
-# dimensionless hubble parameter
-h_hub=func.geth_hub()
-# central value of Omega h^2 according to Planck 
-relicDM_obs=func.getrelicDM()
-# Planck mass
-mP=func.getMP()
+
+
+class Cosmo:
+    '''Class that contains various cosmological parameters and functions.
+    The available functions are:
+    heff, geff, dgeffdT, dheffdT, dh, rhoR, Hubble, s. 
+    All are functions of the temperature (in GeV), and correspond to the standard comsological scenario.
+    The available variables are:
+    T0: CMB temperature today in GeV
+    rho_crit: critical density today in GeV^4
+    h_hub: dimensionless hubble parameter
+    relicDM_obs: central value of Omega h^2 according to Planck
+    mP: Planck mass in GeV
+    '''
+    def __init__(self):
+        # CMB temperature today in GeV
+        self.T0=func.getT0()
+        # critical density today in GeV^4
+        self.rho_crit=func.getrho_crit()
+        # dimensionless hubble parameter
+        self.h_hub=func.geth_hub()
+        # central value of Omega h^2 according to Planck 
+        self.relicDM_obs=func.getrelicDM()
+        # Planck mass in GeV
+        self.mP=func.getMP()
+
+    def heff(self,T):
+        '''h_eff at temperature T [GeV]'''
+        return func.heff(T)
+
+    def geff(self,T):
+        '''g_eff at temperature T [GeV] '''
+        return func.geff(T)
+
+    def dgeffdT(self,T):
+        '''\\dfrac{dg_eff}{dT} at temperature T [GeV]'''
+        return func.dgeffdT(T)
+
+    def dheffdT(self,T):
+        '''\\dfrac{dh_eff}{dT} at temperature T [GeV]'''
+        return func.dheffdT(T)
+
+    def dh(self,T):
+        '''\\delta_h(T)=1+1/3 \frac{d log h_eff}{d log T} at temperature T [GeV]'''
+        return func.dh(T)
+
+    def rhoR(self,T):
+        '''energy density of the plasma at temperature T [GeV]'''
+        return func.rhoR(T)
+
+    def Hubble(self,T): 
+        '''H at temperature T [GeV]'''
+        return func.Hubble(T)
+
+    def s(self,T): 
+        '''s (entropy density of the plasma) at temperature T [GeV]'''
+        return func.s(T)
 
 
 if __name__=="__main__":
     pass
\ No newline at end of file
diff --git a/src/interfacePy/Cosmo/__init__.py b/src/interfacePy/Cosmo/__init__.py
index 206c9ac..790951b 100644
--- a/src/interfacePy/Cosmo/__init__.py
+++ b/src/interfacePy/Cosmo/__init__.py
@@ -1,3 +1,3 @@
-from .Cosmo import heff, geff, dgeffdT, dheffdT, dh, rhoR, Hubble, s, T0, rho_crit, h_hub, relicDM_obs, mP
+from .Cosmo import Cosmo
 
 
diff --git a/src/interfacePy/ScanScript/ScanObs.py b/src/interfacePy/ScanScript/ScanObs.py
index 4989310..2b4bd15 100644
--- a/src/interfacePy/ScanScript/ScanObs.py
+++ b/src/interfacePy/ScanScript/ScanObs.py
@@ -1,267 +1,273 @@
 # Scan for axion in radiation dominated Uinverse.
 # 
 #------------------Note:------------------#
 # The scan proceeds as follows:
 #  The for each value of $f_a$, we find $\theta_i^{\rm approx}$ such that 
 # $\Omega h^2 = 0.12$, assuming that $sin(\theta_i^{\rm approx}) \approx \theta_i^{\rm approx}$. 
 # Then, we scan values of $\theta_i$ close to $\theta_i^{\rm approx}$. 
 # This results in a range of values of $\theta_i$ for each $f_a$, 
 # with $\Omega h^2$ close to the observed value.
 #-----------------------------------------#
 
 
 from sys import path as sysPath
 from os import path as osPath
 sysPath.append(osPath.join(osPath.dirname(__file__), '../'))
 sysPath.append(osPath.join(osPath.dirname(__file__), '../../src'))
 from misc_dir.path import _PATH_
 
 from interfacePy.Axion import Axion 
-from interfacePy.Cosmo import h_hub,T0,rho_crit,s 
+from interfacePy.Cosmo import Cosmo
+
+cosmo=Cosmo()
+h_hub=cosmo.h_hub
+T0=cosmo.T0
+rho_crit=cosmo.rho_crit
+s=cosmo.s
 
 
 
 from numpy import pi, sqrt, abs, array, float64, argmin, savetxt, linspace 
 
 
 from subprocess import check_output as subprocess_check_output
 from sys import stdout as sys_stdout
 from time import time
 from datetime import datetime
 from datetime import timedelta
 
 from os import remove as os_remove
 from os import system as os_system
 from pathlib import Path
 
 
 
 parallelScan=_PATH_+r"/src/util/parallel_scan.sh"
 
 
 class ScanObs:
     def __init__(self,cpus,table_fa,len_theta,umax,TSTOP,ratio_ini,N_convergence_max,convergence_lim,inputFile,axionMass,
                 PathToCppExecutable, relic_obs,relic_err_up,relic_err_low,break_after,break_time,break_command='',
                 initial_step_size=1e-2, minimum_step_size=1e-8, maximum_step_size=1e-2, 
                 absolute_tolerance=1e-8, relative_tolerance=1e-8,
                 beta=0.9, fac_max=1.2, fac_min=0.8, maximum_No_steps=int(1e7)):
         '''
         scan for different values of fa (in table_fa) and find the theta_i closer to relic_obs.
         The result file is timecoded (so it would be difficult to write over it), and the columns correspond to
         theta_i fa [GeV] theta_osc T_osc [GeV] relic (Omega h^2) 
         
         Comment 1: The way it works is the following:
         1) we solve for theta_i=1e-5.
         2) based on this, rescale it in order to find an appropriate theta_i such that Omegah^2 = relic_obs
         3) use this rescaled theta_i as initial point, and scan for len_theta between 
             np.linspace(min([theta_i*0.85,1]),min([theta_i*1.2,pi]),len_theta)
         4) finally, the point with Omegah^2 closer to relic_obs is stored.
         
         Comment 2: If the scan exits before it finishes, it will continue from the point it stopped.
         In order to start from the beginning, delete the file "count.dat".
         
         
         cpus: number of points to run simultaneously (No of cpus available). 
         table_fa: table of fa to scan
         len_theta: number of points to search for theta closest to relic_obs. This search happens in 
         np.linspace(min([theta_i*0.85,1]),min([theta_i*1.2,pi]),self.len_theta), with theta_i is the angle
         that results in Omega h^2=relic_obs assuming theta_i<<1.
 
         umax: if u>umax the integration stops (rempember that u=log(a/a_i))
         TSTOP: if the temperature drops below this, integration stops
         ratio_ini: integration starts when 3H/m_a<~ratio_ini (this is passed to AxionEOM, 
         in order to make the interpolations start at this point)
 
         N_convergence_max and convergence_lim: integration stops when the relative difference 
         between two consecutive peaks is less than convergence_lim for N_convergence_max 
         consecutive peaks
         
         inputFile: file that describes the cosmology. the columns should be: u T[GeV] logH     
         
         axionMass: instance of AxionMass
 
         PathToCppExecutable: path to an executable that takes "theta_i  fa  umax  TSTOP  ratio_ini  N_convergence_max convergence_lim inputFile"
         and prints "theta_i fa theta_osc T_osc relic"
 
         relic_obs: central value of the relic (example, relic_obs=0.12)
         relic_err_up: upper error bar around relic_obs (example, relic_err_up=0.001)
         relic_err_low: lower error bar around relic_obs (example, relic_err_low=0.001)
 
         break_after,break_time: take a break after break_after seconds for break_time seconds
         (optional) break_command: before it takes a break, run this system command (this may be a script to send the results
         to an e-mail, or back them up)
 
         -----------Optional arguments------------------------
         initial_stepsize: initial step the solver takes. 
 
         maximum_stepsize: This limits the sepsize to an upper limit. 
         minimum_stepsize: This limits the sepsize to a lower limit. 
         
         absolute_tolerance: absolute tolerance of the RK solver
 
         relative_tolerance: relative tolerance of the RK solver
         Note:
         Generally, both absolute and relative tolerances should be 1e-8. 
         In some cases, however, one may need more accurate result (eg if f_a is extremely high, 
         the oscillations happen violently, and the ODE destabilizes). Whatever the case, if the  
         tolerances are below 1e-8, long doubles *must* be used.
 
         beta: controls how agreesive the adaptation is. Generally, it should be around but less than 1.
         
         fac_max,  fac_min: the stepsize does not increase more than fac_max, and less than fac_min. 
         This ensures a better stability. Ideally, fac_max=inf and fac_min=0, but in reality one must 
         tweak them in order to avoid instabilities.
 
         maximum_No_steps: maximum steps the solver can take Quits if this number is reached even if integration
         is not finished. 
         '''
         
         self.cpus=cpus
         self.Table_fa=table_fa
         self.len_theta=len_theta
         
         self.umax=umax
         self.TSTOP=TSTOP
         self.ratio_ini=ratio_ini
         self.Npeaks=N_convergence_max
         self.conv=convergence_lim
         self.inputFile=inputFile
         self.axionMass=axionMass
         
         self.PathToCppExecutable=PathToCppExecutable
 
         self.relic_obs=relic_obs
         self.relic_err_up,self.relic_err_low = relic_err_up,relic_err_low
         
         self.break_after=break_after        
         self.break_time=break_time
         self.break_command=break_command
         
         self.initial_step_size=initial_step_size
         self.minimum_step_size=minimum_step_size
         self.maximum_step_size= maximum_step_size
         self.absolute_tolerance=absolute_tolerance
         self.relative_tolerance=relative_tolerance
         self.beta=beta
         self.fac_max=fac_max
         self.fac_min=fac_min
         self.maximum_No_steps=maximum_No_steps
 
 
         self.FileDate=datetime.now()
         self.FileName = "{}".format(self.FileDate.strftime('%d-%m-%Y_%H-%M-%S')) 
         self._p = Path(self.FileName+'.dat')
         
         
         self.in_file="in._mimes_"
         self.count_file="count._mimes_"
     def run_batch(self):
         '''
         run a batch.
         '''
         # get the result     
         points=subprocess_check_output( [parallelScan,  self.PathToCppExecutable, str(self.cpus),self.in_file]).decode(sys_stdout.encoding)
         points=points.split('\n')
         
 
         points=array([array(i.split(),float64)  for i in points[:-1] ])
         points=array(sorted(points, key=lambda arr: arr[0]))
         absDiff=argmin(abs(points[:,4]-self.relic_obs))
         
         _=points[absDiff]
         if _[4]<=self.relic_obs+self.relic_err_up and _[4]>=self.relic_obs-self.relic_err_low:  
             File= self._p.open('ab')            
             savetxt(File,array([_]))
             File.close()
 
     def run(self):
 
         try:
             with open(self.count_file,'r') as _:
                 last_batch=int(_.read())
         except:
             last_batch=0
             
         Total_batches=len(self.Table_fa)-last_batch
             
         totalT=0
         meanT=0
         ETA=0
         batch=0
         
         sleepTimer=0
         for fa in self.Table_fa[last_batch:]:
             time0=time()
 
             ########################---find theta_i (assuming theta_i<<1) such that Omega h^=0.12---########################
 
             theta_small=1e-3
             ax=Axion(theta_small,fa,self.umax,self.TSTOP,
             self.ratio_ini,self.Npeaks,self.conv,self.inputFile, self.axionMass, 
             self.initial_step_size, self.minimum_step_size, self.maximum_step_size, 
             self.absolute_tolerance, self.relative_tolerance, self.beta,
             self.fac_max, self.fac_min, self.maximum_No_steps)
 
             ax.solveAxion()
             ax.getPeaks()
             
             T=ax.T_peak[-1]
             theta=ax.theta_peak[-1]
 
             relic=ax.relic
             theta_obs=sqrt(theta**2/relic*self.relic_obs)
 
             relic=s(T0)/s(T)*0.5*sqrt(self.axionMass.ma2(0,1)*self.axionMass.ma2(T,1))*theta_obs**2*h_hub**2/rho_crit
 
             theta_small_i=theta_small*theta_obs/theta
             
             if theta_small_i < theta_small:
                 Table_theta_i = array([theta_small_i])
             else:
                 if theta_small_i>pi:
                     theta_small_i=pi
                 Table_theta_i=linspace(min([theta_small_i*0.85,1]),min([theta_small_i*1.2,pi]),self.len_theta)
                             
             del ax
             ########################---END---########################
             file=open(self.in_file , 'w')
             for theta_i in Table_theta_i :
                 file.write( '{0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11} {12} {13} {14} {15} {16} \n'.
                 format(theta_i, fa, self.umax, self.TSTOP, self.ratio_ini, self.Npeaks, self.conv, self.inputFile,
                 self.initial_step_size, self.minimum_step_size, self.maximum_step_size, self.absolute_tolerance, self.relative_tolerance, self.beta,
                 self.fac_max, self.fac_min, self.maximum_No_steps) )
             file.close()
             
             self.run_batch()
 
             
             batch+=1
             totalT+=time()-time0
             meanT=totalT/batch
 
             if self.break_after>0:
                 sleepTimer+=time()-time0
                 if sleepTimer>self.break_after:
                     os_system(self.break_command)
                     print("taking a break")
                     time.sleep(self.break_time)
                     
                     sleepTimer=0
                 
             ETA=meanT*(Total_batches-batch)
 
             print('======================================== \n',
             'Completed batches:  ',batch,' out of ', Total_batches ,'\n',
             'Running for:     {0:.50s}'.format( str(timedelta(seconds=totalT))  ), '\n', 
             'ETA:             {0:.50s}'.format(str(timedelta(seconds=ETA) )  ),'\n', 
             'Time per batch:  {0:.3f} sec'.format(meanT),
             '\n========================================' )
             
             
             with open(self.count_file,'w') as _:
                 _.write(str(batch+last_batch))
 
         os_remove(self.in_file)
         os_remove(self.count_file)
         print('Done!')
     
\ No newline at end of file
diff --git a/src/interfacePy/WKB/WKB.py b/src/interfacePy/WKB/WKB.py
index 313a088..6d0a6da 100644
--- a/src/interfacePy/WKB/WKB.py
+++ b/src/interfacePy/WKB/WKB.py
@@ -1,66 +1,53 @@
-from ..Cosmo import Hubble,s,T0, rho_crit, h_hub,heff,geff
+from ..Cosmo import Cosmo
 from ..AxionMass import AxionMass
 from numpy import sqrt,loadtxt,vectorize,array,exp
 
 
 
+cosmo=Cosmo()
+
 def relic(Tosc,theta_osc,ma2,gamma=1.):
     '''
     The axion relic abundance using the WKB approximation.
     Tosc: the oscillation temperature
     theta_osc:the  angle at T_osc (usually one uses theta_osc = theta_ini)
     gamma: entropy ratio betweem Tosc and today (gamma = S(T0)/S(Tosc)) 
     '''
 
     correction=(3/4)**(0.5)#this factor gives more acurate form of WKB result
-    return   s(T0)/s(Tosc)/gamma*0.5*sqrt(ma2(0,1)*ma2(Tosc,1))*theta_osc**2*h_hub**2/rho_crit *correction
-
-
-
-def theta_osc(Tini,ratio_ini,Tosc,theta_ini,gamma_osc=1):
-    '''
-    The first approximation for theta_osc.
-    Tini=initial temperature . In this approximation it has to be as close to T_osc as possible, 
-          while dtheta/dt ~= 0.
-    ratio_ini: 3H/ma at T=Tini.
-    Tosc: the oscillation temperature
-    theta_ini:the angle at Tini
-    gamma_osc: entropy ratio betweem Tini and Tosc (gamma_osc = S(Tosc)/S(Tini)) 
-    '''
-    return theta_ini*(1- (ratio_ini/3.)**(-2.)*( 1-Tini/Tosc*( heff(Tini)/heff(Tosc)*gamma_osc )**(1/3.) )**2)#work in progress
-
+    return   cosmo.s(cosmo.T0)/cosmo.s(Tosc)/gamma*0.5*sqrt(ma2(0,1)*ma2(Tosc,1))*theta_osc**2*cosmo.h_hub**2/cosmo.rho_crit *correction
 
 
 
 
 def getPoints(T_start,ratio_ini,fa,ma2,inputFile):
     '''find the points you need for Tosc, gamma, and gamma osc 
     T_start: some initial temperature (this just help to start searching for an appropriate Tini)
     ratio_ini: 3H/ma at Tini (it has to be close to 1 for the theta_osc approximation to work). This is used to find Tini
     fa: PQ scale
     inputFile: a file that contains u,T,logH forthe cosmology of interest
     
     this function returns gamma_osc, gamma, Tosc, Tini, and ratio_ini (this is close to the inut's value, but corresponts to the closest point in inputFile)
     '''
     _=loadtxt(inputFile)
     cosmology=_[_[:,1]<T_start]
     u=cosmology[:,0]
     T=cosmology[:,1]
     logH=cosmology[:,2]
     ma=vectorize(lambda T:ma2(T,fa)**0.5)
     ratio=3*exp(logH)/ma(T)
 
     ch=ratio<=ratio_ini
     tmp=cosmology[ch][0]
     Tini=tmp[1]
     uini=tmp[0]
     logHini=tmp[2]
     ratio_ini=3*exp(logHini)/ma(Tini)
     
     ch=ratio<=1
     tmp=cosmology[ch][0]
     Tosc=tmp[1]
     uosc=tmp[0]
     
     
-    return s(Tosc)/s(Tini)*exp(3*(uosc-uini)),s(cosmology[-1][1])/s(Tosc)*exp(3*(cosmology[-1][0]-uosc)),Tosc,Tini,ratio_ini         
+    return cosmo.s(Tosc)/cosmo.s(Tini)*exp(3*(uosc-uini)),cosmo.s(cosmology[-1][1])/cosmo.s(Tosc)*exp(3*(cosmology[-1][0]-uosc)),Tosc,Tini,ratio_ini         
diff --git a/src/interfacePy/WKB/__init__.py b/src/interfacePy/WKB/__init__.py
index dd9a788..f82160a 100644
--- a/src/interfacePy/WKB/__init__.py
+++ b/src/interfacePy/WKB/__init__.py
@@ -1,2 +1,2 @@
-from .WKB import relic, theta_osc, getPoints
+from .WKB import relic, getPoints
 
diff --git a/src/interfacePy/__init__.py b/src/interfacePy/__init__.py
index e69de29..227e109 100644
--- a/src/interfacePy/__init__.py
+++ b/src/interfacePy/__init__.py
@@ -0,0 +1,10 @@
+from .Axion import Axion 
+from .AxionMass import AxionMass 
+from .AnharmonicFactor import anharmonicFactor
+from .Cosmo import Cosmo
+from .WKB import relic, getPoints
+
+from .ScanScript.ScanObs import ScanObs
+from .ScanScript.Scan import Scan
+
+from FT import FT
\ No newline at end of file