# $QR$ Factorization

## Reduced $QR$ Factorization

Consider a _flag_ of subspaces generated by linearly independent vectors:

$$\langle \mathbf{a}_1\rangle \subset \langle \mathbf{a}_1,\mathbf{a}_2\rangle \subset \cdots$$

The idea of a $QR$-factorization is the construction of a sequence of _orthonormal_ vectors $\mathbf{q}_1$, $\mathbf{q}_2$, $\mathbf{q}_3$,... that span the above successive subspaces.

That is, for each integer $j$, we have:

$$
\langle \mathbf{a}_1,\dots,\mathbf{a}_j\rangle = \langle\mathbf{q}_1,\dots, \mathbf{q}_j\rangle.
$$

In other words:

$$
A= \left[\mathbf{a}_1 \mid \cdots \mid \mathbf{a}_n\right] = \left[\mathbf{q}_1\mid \cdots \mid \mathbf{q}_n\right]\cdot \begin{bmatrix}r_{11} & r_{12} & \cdots & r_{1n}\\ & r_{22} &  & \vdots \\ & & \ddots & \vdots \\ & & & r_{nm}\end{bmatrix} = Q\cdot R
$$

Writing this out as a system of linear equations:
\begin{align}\mathbf{a}_1 &= r_{11} \mathbf{q}_1,\\ \mathbf{a}_2 &= r_{12}\mathbf{q}_1 + r_{22} \mathbf{q}_2,\\ \mathbf{a}_3 &= r_{13} \mathbf{q}_1 + r_{23} \mathbf{q}_2 + r_{33}\mathbf{q}_3,\\ & \vdots \\ \mathbf{a}_n &= r_{1n}\mathbf{q}_1 + \cdots + r_{nn} \mathbf{q}_n.\end{align}

In matrix form:

$$ A = \hat{Q}\cdot \hat{R}$$

where $\hat{Q}$ is an $m\times n$ matrix with orthonormal columns, and $\hat{R}$ is an $n\times n$ upper-triangular matrix.  This is the so-called _reduced $QR$-factorization_.

```julia
A = [1 2 3; 4 5 6]
Q,R = qr(A)
qrfact(A), Q, R
```

    (Base.LinAlg.QRCompactWY{Float64,Array{Float64,2}}([-4.12311 -5.33578 -6.54846; 0.780776 -0.727607 -1.45521],[1.24254 0.0; 6.92462e-310 0.0]),
    [-0.242536 -0.970143; -0.970143 0.242536],

    [-4.12311 -5.33578 -6.54846; 0.0 -0.727607 -1.45521])

## Full $QR$ Factorization

A _full $QR$ factorization_ of $A\in\mathbb{C}^{m\times n}$ ($m\geq n$) appends the $m-n$ orthonormal colums to $\hat{Q}$ making it $m\times m$.

Notice, in the full $QR$ factorization, the columns $\mathbf{q}_j$ for $j>n$, are orthogonal to $C(A)$.  Assuming $A$ is of full rank $n$, they form a basis for $N(A^*)$.

** Nota Bene: ** The $QR$ factorization is to matrices what polar coordinates is to vectors:

$$Q\cdot R = \text{[orthogonal matrix]}\cdot \text{[positive definite matrix]}$$

## Gram-Schmidt Orthonormalization

Given $\mathbf{a}_1,\mathbf{a}_2,\mathbf{a}_3,\dots$, we can construct $\mathbf{q}_1,\mathbf{q}_2,\mathbf{q}_3,\dots$ via a process of successive orthogonalization.

To compute the $j$-th orthogonal vector we compute:

$$\mathbf{v}_j = \mathbf{a}_j - (\mathbf{q}_1^*\mathbf{a}_j)\mathbf{q}_1 -(\mathbf{q}_2^*\mathbf{a}_j)\mathbf{q}_2 - \cdots - (\mathbf{q}_{j-1}^*\mathbf{a}_j) \mathbf{q}_{j-1}.$$

Then set: $$\mathbf{q}_j := \frac{\mathbf{v}_j}{\|\mathbf{v}_j\|}.$$

```julia
m = 5;
n = 3;
A = rand(m,n);
Q = zeros(m,n);  R = zeros(n,n);
R[1,1] = norm(A[:,1]);
Q[:,1] = A[:,1]/R[1,1];
@time for j = 2:n
    R[1:j-1,j] = Q[:,1:j-1]'*A[:,j];
    v = A[:,j] - Q[:,1:j-1]*R[1:j-1,j];
    R[j,j] = norm(v);
    Q[:,j] = v/R[j,j];
end
A, Q, R, Q*R
```

      0.000042 seconds (49 allocations: 2.906 KB)

    (
    [0.796102 0.135397 0.0502899; 0.666858 0.143114 0.721173; … ; 0.350599 0.75058 0.841905; 0.052776 0.644623 0.256538],

    [0.722889 -0.20077 -0.625705; 0.605531 -0.143994 0.558806; … ; 0.318357 0.474183 0.44998; 0.0479225 0.50426 -0.192359],

    [1.10128 0.528395 0.784844; 0.0 1.22814 0.667665; 0.0 0.0 0.612137],

    [0.796102 0.135397 0.0502899; 0.666858 0.143114 0.721173; … ; 0.350599 0.75058 0.841905; 0.052776 0.644623 0.256538])

## Existence and uniqueness

> ** THEOREM. [Existence] ** Every $A\in \mathbb{C}^{m\times n}$, $m\geq n$, has a full $QR$ factorization.

** Proof. ** If $A$ has full rank, then the Gram-Schmidt process produces a reduced $QR$ factorization — since the only way the Gram-Schmidt fails is if $\mathbf{v}_j=\mathbf{0}$, however this implies $$\mathbf{a}_j \in \langle \mathbf{q}_1,\dots, \mathbf{q}_{j-1}\rangle=\langle \mathbf{a}_1,\dots, \mathbf{a}_{j-1}\rangle.$$

If $A$ is _not_ of full rank, then $\mathbf{v}_j=0$ for some $j$, simply pick any unit $\mathbf{q}_j$ in the orthogonal complement of $\langle \mathbf{q}_1,\dots, \mathbf{q}_{j-1}\rangle$.

For the full $QR$ factorization simply add arbitrary orthonormal vectors in the orthogonal complement.

> ** THEOREM. [Uniqueness] ** Each $A\in\mathbb{C}^{m\times n}$, $m\geq n$, of full rank has a unique reduced $QR$ factorization $A = \hat{Q} \hat{R}$ with $r_{jj}>0$.

** Proof. ** From the equations defining the Gram-Schmidt and the assumption of full rank (i.e. $\mathbf{v}_j\ne 0$), we see that the only ambiguity is the sign of $r_{jj}$.

## Continuous functions as vectors

Suppose $\mathbf{a}_j(x) \in L^2[-1,1]$ are now continuous (square-integrable) functions:
$$
A = \left[ 1 \mid x \mid x^2 \mid \cdots \mid x^{n-1}\right].
$$

$$
A = QR =\left[ \mathbf{q}_0(x) \mid \mathbf{q}_1(x) \mid \cdots \mid \mathbf{q}_{n-1}(x)\right] \begin{bmatrix} r_{11} & r_{12} & \cdots & r_{1n}\\ & r_{22} & & \vdots \\ & & \ddots & \vdots\\ & & & r_{nn}\end{bmatrix}
$$

Where the columns $\mathbf{q}_j(x)$ are orthonormal with respect to the inner product:

$$
\int_{-1}^1 \overline{\mathbf{q}_i(x)}\mathbf{q}_j(x) dx = \delta_{ij} = \begin{cases} 1 & \text{if } i=j,\\ 0 & \text{if } i\ne j.\end{cases}
$$

From the Gram-Schmidt process, we know that $\mathbf{q}_j$ is a polynomial of degree $j$.

The will be scalar multiples of the _Legendre polynomials_ $P_j$:
\begin{align}
P_0(x) &= 1\\
P_1(x) &= x\\
P_2(x) &= \frac{3}{2}x^2-\frac{1}{2}\\
P_3(x) &= \frac{5}{2}x^3-\frac{3}{2}x.
\end{align}

These polynomials are orthonormal, and normalized so that $P_j(1)=1$.

```julia
using Gadfly

f_0(x) = 1;
f_1(x) = x;
f_2(x) = (3/2)x^2-(1/2);
f_3(x) = (5/2)x^3-(3/2)x;

plot([f_0, f_1, f_2, f_3],-1,1)
```

<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg"
     xmlns:xlink="http://www.w3.org/1999/xlink"
     xmlns:gadfly="http://www.gadflyjl.org/ns"
     version="1.2"
     width="141.42mm" height="100mm" viewBox="0 0 141.42 100"
     stroke="none"
     fill="#000000"
     stroke-width="0.3"
     font-size="3.88"

     id="img-0e35cce1">
<g class="plotroot xscalable yscalable" id="img-0e35cce1-1">
  <g font-size="3.88" font-family="'PT Sans','Helvetica Neue','Helvetica',sans-serif" fill="#564A55" stroke="#000000" stroke-opacity="0.000" id="img-0e35cce1-2">
    <text x="73.66" y="88.39" text-anchor="middle" dy="0.6em">x</text>
  </g>
  <g class="guide xlabels" font-size="2.82" font-family="'PT Sans Caption','Helvetica Neue','Helvetica',sans-serif" fill="#6C606B" id="img-0e35cce1-3">
    <text x="-108.05" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="1.0">-3.5</text>
    <text x="-82.09" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="1.0">-3.0</text>
    <text x="-56.13" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="1.0">-2.5</text>
    <text x="-30.17" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="1.0">-2.0</text>
    <text x="-4.21" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="1.0">-1.5</text>
    <text x="21.74" y="84.39" text-anchor="middle" visibility="visible" gadfly:scale="1.0">-1.0</text>
    <text x="47.7" y="84.39" text-anchor="middle" visibility="visible" gadfly:scale="1.0">-0.5</text>
    <text x="73.66" y="84.39" text-anchor="middle" visibility="visible" gadfly:scale="1.0">0.0</text>
    <text x="99.62" y="84.39" text-anchor="middle" visibility="visible" gadfly:scale="1.0">0.5</text>
    <text x="125.58" y="84.39" text-anchor="middle" visibility="visible" gadfly:scale="1.0">1.0</text>
    <text x="151.54" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="1.0">1.5</text>
    <text x="177.5" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="1.0">2.0</text>
    <text x="203.46" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="1.0">2.5</text>
    <text x="229.42" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="1.0">3.0</text>
    <text x="255.38" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="1.0">3.5</text>
    <text x="-82.09" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">-3.0</text>
    <text x="-76.9" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">-2.9</text>
    <text x="-71.71" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">-2.8</text>
    <text x="-66.52" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">-2.7</text>
    <text x="-61.33" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">-2.6</text>
    <text x="-56.13" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">-2.5</text>
    <text x="-50.94" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">-2.4</text>
    <text x="-45.75" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">-2.3</text>
    <text x="-40.56" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">-2.2</text>
    <text x="-35.37" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">-2.1</text>
    <text x="-30.17" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">-2.0</text>
    <text x="-24.98" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">-1.9</text>
    <text x="-19.79" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">-1.8</text>
    <text x="-14.6" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">-1.7</text>
    <text x="-9.41" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">-1.6</text>
    <text x="-4.21" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">-1.5</text>
    <text x="0.98" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">-1.4</text>
    <text x="6.17" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">-1.3</text>
    <text x="11.36" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">-1.2</text>
    <text x="16.55" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">-1.1</text>
    <text x="21.74" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">-1.0</text>
    <text x="26.94" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">-0.9</text>
    <text x="32.13" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">-0.8</text>
    <text x="37.32" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">-0.7</text>
    <text x="42.51" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">-0.6</text>
    <text x="47.7" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">-0.5</text>
    <text x="52.9" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">-0.4</text>
    <text x="58.09" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">-0.3</text>
    <text x="63.28" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">-0.2</text>
    <text x="68.47" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">-0.1</text>
    <text x="73.66" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">0.0</text>
    <text x="78.86" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">0.1</text>
    <text x="84.05" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">0.2</text>
    <text x="89.24" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">0.3</text>
    <text x="94.43" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">0.4</text>
    <text x="99.62" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">0.5</text>
    <text x="104.82" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">0.6</text>
    <text x="110.01" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">0.7</text>
    <text x="115.2" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">0.8</text>
    <text x="120.39" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">0.9</text>
    <text x="125.58" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">1.0</text>
    <text x="130.78" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">1.1</text>
    <text x="135.97" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">1.2</text>
    <text x="141.16" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">1.3</text>
    <text x="146.35" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">1.4</text>
    <text x="151.54" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">1.5</text>
    <text x="156.74" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">1.6</text>
    <text x="161.93" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">1.7</text>
    <text x="167.12" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">1.8</text>
    <text x="172.31" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">1.9</text>
    <text x="177.5" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">2.0</text>
    <text x="182.7" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">2.1</text>
    <text x="187.89" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">2.2</text>
    <text x="193.08" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">2.3</text>
    <text x="198.27" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">2.4</text>
    <text x="203.46" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">2.5</text>
    <text x="208.66" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">2.6</text>
    <text x="213.85" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">2.7</text>
    <text x="219.04" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">2.8</text>
    <text x="224.23" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">2.9</text>
    <text x="229.42" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="10.0">3.0</text>
    <text x="-134.01" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="0.5">-4</text>
    <text x="-30.17" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="0.5">-2</text>
    <text x="73.66" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="0.5">0</text>
    <text x="177.5" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="0.5">2</text>
    <text x="281.34" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="0.5">4</text>
    <text x="-82.09" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="5.0">-3.0</text>
    <text x="-71.71" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="5.0">-2.8</text>
    <text x="-61.33" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="5.0">-2.6</text>
    <text x="-50.94" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="5.0">-2.4</text>
    <text x="-40.56" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="5.0">-2.2</text>
    <text x="-30.17" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="5.0">-2.0</text>
    <text x="-19.79" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="5.0">-1.8</text>
    <text x="-9.41" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="5.0">-1.6</text>
    <text x="0.98" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="5.0">-1.4</text>
    <text x="11.36" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="5.0">-1.2</text>
    <text x="21.74" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="5.0">-1.0</text>
    <text x="32.13" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="5.0">-0.8</text>
    <text x="42.51" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="5.0">-0.6</text>
    <text x="52.9" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="5.0">-0.4</text>
    <text x="63.28" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="5.0">-0.2</text>
    <text x="73.66" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="5.0">0.0</text>
    <text x="84.05" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="5.0">0.2</text>
    <text x="94.43" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="5.0">0.4</text>
    <text x="104.82" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="5.0">0.6</text>
    <text x="115.2" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="5.0">0.8</text>
    <text x="125.58" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="5.0">1.0</text>
    <text x="135.97" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="5.0">1.2</text>
    <text x="146.35" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="5.0">1.4</text>
    <text x="156.74" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="5.0">1.6</text>
    <text x="167.12" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="5.0">1.8</text>
    <text x="177.5" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="5.0">2.0</text>
    <text x="187.89" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="5.0">2.2</text>
    <text x="198.27" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="5.0">2.4</text>
    <text x="208.66" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="5.0">2.6</text>
    <text x="219.04" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="5.0">2.8</text>
    <text x="229.42" y="84.39" text-anchor="middle" visibility="hidden" gadfly:scale="5.0">3.0</text>
  </g>
  <g class="guide colorkey" id="img-0e35cce1-4">
    <g fill="#4C404B" font-size="2.82" font-family="'PT Sans','Helvetica Neue','Helvetica',sans-serif" id="img-0e35cce1-5">
      <text x="132.05" y="37.92" dy="0.35em" id="img-0e35cce1-6" class="color_f1">f<tspan style="dominant-baseline:inherit" dy="0.6em" font-size="83%">1</tspan><tspan dy="-0.498000em"></tspan></text>
      <text x="132.05" y="42.86" dy="0.35em" id="img-0e35cce1-7" class="color_f2">f<tspan style="dominant-baseline:inherit" dy="0.6em" font-size="83%">2</tspan><tspan dy="-0.498000em"></tspan></text>
      <text x="132.05" y="47.8" dy="0.35em" id="img-0e35cce1-8" class="color_f3">f<tspan style="dominant-baseline:inherit" dy="0.6em" font-size="83%">3</tspan><tspan dy="-0.498000em"></tspan></text>
      <text x="132.05" y="52.74" dy="0.35em" id="img-0e35cce1-9" class="color_f4">f<tspan style="dominant-baseline:inherit" dy="0.6em" font-size="83%">4</tspan><tspan dy="-0.498000em"></tspan></text>
    </g>
    <g stroke="#000000" stroke-opacity="0.000" id="img-0e35cce1-10">
      <rect x="128.58" y="36.68" width="2.47" height="2.47" id="img-0e35cce1-11" fill="#00BFFF" class="color_f1"/>
      <rect x="128.58" y="41.62" width="2.47" height="2.47" id="img-0e35cce1-12" fill="#D4CA3A" class="color_f2"/>
      <rect x="128.58" y="46.56" width="2.47" height="2.47" id="img-0e35cce1-13" fill="#FF6DAE" class="color_f3"/>
      <rect x="128.58" y="51.5" width="2.47" height="2.47" id="img-0e35cce1-14" fill="#00B78D" class="color_f4"/>
    </g>
    <g fill="#362A35" font-size="3.88" font-family="'PT Sans','Helvetica Neue','Helvetica',sans-serif" stroke="#000000" stroke-opacity="0.000" id="img-0e35cce1-15">
      <text x="128.58" y="32.78" id="img-0e35cce1-16">Color</text>
    </g>
  </g>
<g clip-path="url(#img-0e35cce1-17)">
  <g id="img-0e35cce1-18">
    <g pointer-events="visible" opacity="1" fill="#000000" fill-opacity="0.000" stroke="#000000" stroke-opacity="0.000" class="guide background" id="img-0e35cce1-19">
      <rect x="19.75" y="5" width="107.84" height="75.72" id="img-0e35cce1-20"/>
    </g>
    <g class="guide ygridlines xfixed" stroke-dasharray="0.5,0.5" stroke-width="0.2" stroke="#D0D0E0" id="img-0e35cce1-21">
      <path fill="none" d="M19.75,168.36 L 127.58 168.36" id="img-0e35cce1-22" visibility="hidden" gadfly:scale="1.0"/>
      <path fill="none" d="M19.75,150.43 L 127.58 150.43" id="img-0e35cce1-23" visibility="hidden" gadfly:scale="1.0"/>
      <path fill="none" d="M19.75,132.5 L 127.58 132.5" id="img-0e35cce1-24" visibility="hidden" gadfly:scale="1.0"/>
      <path fill="none" d="M19.75,114.57 L 127.58 114.57" id="img-0e35cce1-25" visibility="hidden" gadfly:scale="1.0"/>
      <path fill="none" d="M19.75,96.64 L 127.58 96.64" id="img-0e35cce1-26" visibility="hidden" gadfly:scale="1.0"/>
      <path fill="none" d="M19.75,78.71 L 127.58 78.71" id="img-0e35cce1-27" visibility="visible" gadfly:scale="1.0"/>
      <path fill="none" d="M19.75,60.79 L 127.58 60.79" id="img-0e35cce1-28" visibility="visible" gadfly:scale="1.0"/>
      <path fill="none" d="M19.75,42.86 L 127.58 42.86" id="img-0e35cce1-29" visibility="visible" gadfly:scale="1.0"/>
      <path fill="none" d="M19.75,24.93 L 127.58 24.93" id="img-0e35cce1-30" visibility="visible" gadfly:scale="1.0"/>
      <path fill="none" d="M19.75,7 L 127.58 7" id="img-0e35cce1-31" visibility="visible" gadfly:scale="1.0"/>
      <path fill="none" d="M19.75,-10.93 L 127.58 -10.93" id="img-0e35cce1-32" visibility="hidden" gadfly:scale="1.0"/>
      <path fill="none" d="M19.75,-28.86 L 127.58 -28.86" id="img-0e35cce1-33" visibility="hidden" gadfly:scale="1.0"/>
      <path fill="none" d="M19.75,-46.79 L 127.58 -46.79" id="img-0e35cce1-34" visibility="hidden" gadfly:scale="1.0"/>
      <path fill="none" d="M19.75,-64.71 L 127.58 -64.71" id="img-0e35cce1-35" visibility="hidden" gadfly:scale="1.0"/>
      <path fill="none" d="M19.75,-82.64 L 127.58 -82.64" id="img-0e35cce1-36" visibility="hidden" gadfly:scale="1.0"/>
      <path fill="none" d="M19.75,150.43 L 127.58 150.43" id="img-0e35cce1-37" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,146.84 L 127.58 146.84" id="img-0e35cce1-38" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,143.26 L 127.58 143.26" id="img-0e35cce1-39" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,139.67 L 127.58 139.67" id="img-0e35cce1-40" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,136.09 L 127.58 136.09" id="img-0e35cce1-41" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,132.5 L 127.58 132.5" id="img-0e35cce1-42" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,128.92 L 127.58 128.92" id="img-0e35cce1-43" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,125.33 L 127.58 125.33" id="img-0e35cce1-44" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,121.74 L 127.58 121.74" id="img-0e35cce1-45" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,118.16 L 127.58 118.16" id="img-0e35cce1-46" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,114.57 L 127.58 114.57" id="img-0e35cce1-47" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,110.99 L 127.58 110.99" id="img-0e35cce1-48" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,107.4 L 127.58 107.4" id="img-0e35cce1-49" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,103.82 L 127.58 103.82" id="img-0e35cce1-50" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,100.23 L 127.58 100.23" id="img-0e35cce1-51" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,96.64 L 127.58 96.64" id="img-0e35cce1-52" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,93.06 L 127.58 93.06" id="img-0e35cce1-53" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,89.47 L 127.58 89.47" id="img-0e35cce1-54" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,85.89 L 127.58 85.89" id="img-0e35cce1-55" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,82.3 L 127.58 82.3" id="img-0e35cce1-56" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,78.71 L 127.58 78.71" id="img-0e35cce1-57" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,75.13 L 127.58 75.13" id="img-0e35cce1-58" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,71.54 L 127.58 71.54" id="img-0e35cce1-59" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,67.96 L 127.58 67.96" id="img-0e35cce1-60" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,64.37 L 127.58 64.37" id="img-0e35cce1-61" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,60.79 L 127.58 60.79" id="img-0e35cce1-62" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,57.2 L 127.58 57.2" id="img-0e35cce1-63" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,53.61 L 127.58 53.61" id="img-0e35cce1-64" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,50.03 L 127.58 50.03" id="img-0e35cce1-65" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,46.44 L 127.58 46.44" id="img-0e35cce1-66" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,42.86 L 127.58 42.86" id="img-0e35cce1-67" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,39.27 L 127.58 39.27" id="img-0e35cce1-68" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,35.69 L 127.58 35.69" id="img-0e35cce1-69" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,32.1 L 127.58 32.1" id="img-0e35cce1-70" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,28.51 L 127.58 28.51" id="img-0e35cce1-71" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,24.93 L 127.58 24.93" id="img-0e35cce1-72" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,21.34 L 127.58 21.34" id="img-0e35cce1-73" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,17.76 L 127.58 17.76" id="img-0e35cce1-74" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,14.17 L 127.58 14.17" id="img-0e35cce1-75" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,10.59 L 127.58 10.59" id="img-0e35cce1-76" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,7 L 127.58 7" id="img-0e35cce1-77" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,3.41 L 127.58 3.41" id="img-0e35cce1-78" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,-0.17 L 127.58 -0.17" id="img-0e35cce1-79" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,-3.76 L 127.58 -3.76" id="img-0e35cce1-80" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,-7.34 L 127.58 -7.34" id="img-0e35cce1-81" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,-10.93 L 127.58 -10.93" id="img-0e35cce1-82" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,-14.51 L 127.58 -14.51" id="img-0e35cce1-83" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,-18.1 L 127.58 -18.1" id="img-0e35cce1-84" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,-21.69 L 127.58 -21.69" id="img-0e35cce1-85" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,-25.27 L 127.58 -25.27" id="img-0e35cce1-86" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,-28.86 L 127.58 -28.86" id="img-0e35cce1-87" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,-32.44 L 127.58 -32.44" id="img-0e35cce1-88" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,-36.03 L 127.58 -36.03" id="img-0e35cce1-89" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,-39.61 L 127.58 -39.61" id="img-0e35cce1-90" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,-43.2 L 127.58 -43.2" id="img-0e35cce1-91" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,-46.79 L 127.58 -46.79" id="img-0e35cce1-92" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,-50.37 L 127.58 -50.37" id="img-0e35cce1-93" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,-53.96 L 127.58 -53.96" id="img-0e35cce1-94" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,-57.54 L 127.58 -57.54" id="img-0e35cce1-95" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,-61.13 L 127.58 -61.13" id="img-0e35cce1-96" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,-64.71 L 127.58 -64.71" id="img-0e35cce1-97" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M19.75,186.29 L 127.58 186.29" id="img-0e35cce1-98" visibility="hidden" gadfly:scale="0.5"/>
      <path fill="none" d="M19.75,114.57 L 127.58 114.57" id="img-0e35cce1-99" visibility="hidden" gadfly:scale="0.5"/>
      <path fill="none" d="M19.75,42.86 L 127.58 42.86" id="img-0e35cce1-100" visibility="hidden" gadfly:scale="0.5"/>
      <path fill="none" d="M19.75,-28.86 L 127.58 -28.86" id="img-0e35cce1-101" visibility="hidden" gadfly:scale="0.5"/>
      <path fill="none" d="M19.75,-100.57 L 127.58 -100.57" id="img-0e35cce1-102" visibility="hidden" gadfly:scale="0.5"/>
      <path fill="none" d="M19.75,150.43 L 127.58 150.43" id="img-0e35cce1-103" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M19.75,143.26 L 127.58 143.26" id="img-0e35cce1-104" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M19.75,136.09 L 127.58 136.09" id="img-0e35cce1-105" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M19.75,128.92 L 127.58 128.92" id="img-0e35cce1-106" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M19.75,121.74 L 127.58 121.74" id="img-0e35cce1-107" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M19.75,114.57 L 127.58 114.57" id="img-0e35cce1-108" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M19.75,107.4 L 127.58 107.4" id="img-0e35cce1-109" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M19.75,100.23 L 127.58 100.23" id="img-0e35cce1-110" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M19.75,93.06 L 127.58 93.06" id="img-0e35cce1-111" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M19.75,85.89 L 127.58 85.89" id="img-0e35cce1-112" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M19.75,78.71 L 127.58 78.71" id="img-0e35cce1-113" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M19.75,71.54 L 127.58 71.54" id="img-0e35cce1-114" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M19.75,64.37 L 127.58 64.37" id="img-0e35cce1-115" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M19.75,57.2 L 127.58 57.2" id="img-0e35cce1-116" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M19.75,50.03 L 127.58 50.03" id="img-0e35cce1-117" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M19.75,42.86 L 127.58 42.86" id="img-0e35cce1-118" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M19.75,35.69 L 127.58 35.69" id="img-0e35cce1-119" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M19.75,28.51 L 127.58 28.51" id="img-0e35cce1-120" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M19.75,21.34 L 127.58 21.34" id="img-0e35cce1-121" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M19.75,14.17 L 127.58 14.17" id="img-0e35cce1-122" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M19.75,7 L 127.58 7" id="img-0e35cce1-123" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M19.75,-0.17 L 127.58 -0.17" id="img-0e35cce1-124" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M19.75,-7.34 L 127.58 -7.34" id="img-0e35cce1-125" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M19.75,-14.51 L 127.58 -14.51" id="img-0e35cce1-126" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M19.75,-21.69 L 127.58 -21.69" id="img-0e35cce1-127" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M19.75,-28.86 L 127.58 -28.86" id="img-0e35cce1-128" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M19.75,-36.03 L 127.58 -36.03" id="img-0e35cce1-129" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M19.75,-43.2 L 127.58 -43.2" id="img-0e35cce1-130" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M19.75,-50.37 L 127.58 -50.37" id="img-0e35cce1-131" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M19.75,-57.54 L 127.58 -57.54" id="img-0e35cce1-132" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M19.75,-64.71 L 127.58 -64.71" id="img-0e35cce1-133" visibility="hidden" gadfly:scale="5.0"/>
    </g>
    <g class="guide xgridlines yfixed" stroke-dasharray="0.5,0.5" stroke-width="0.2" stroke="#D0D0E0" id="img-0e35cce1-134">
      <path fill="none" d="M-108.05,5 L -108.05 80.72" id="img-0e35cce1-135" visibility="hidden" gadfly:scale="1.0"/>
      <path fill="none" d="M-82.09,5 L -82.09 80.72" id="img-0e35cce1-136" visibility="hidden" gadfly:scale="1.0"/>
      <path fill="none" d="M-56.13,5 L -56.13 80.72" id="img-0e35cce1-137" visibility="hidden" gadfly:scale="1.0"/>
      <path fill="none" d="M-30.17,5 L -30.17 80.72" id="img-0e35cce1-138" visibility="hidden" gadfly:scale="1.0"/>
      <path fill="none" d="M-4.21,5 L -4.21 80.72" id="img-0e35cce1-139" visibility="hidden" gadfly:scale="1.0"/>
      <path fill="none" d="M21.74,5 L 21.74 80.72" id="img-0e35cce1-140" visibility="visible" gadfly:scale="1.0"/>
      <path fill="none" d="M47.7,5 L 47.7 80.72" id="img-0e35cce1-141" visibility="visible" gadfly:scale="1.0"/>
      <path fill="none" d="M73.66,5 L 73.66 80.72" id="img-0e35cce1-142" visibility="visible" gadfly:scale="1.0"/>
      <path fill="none" d="M99.62,5 L 99.62 80.72" id="img-0e35cce1-143" visibility="visible" gadfly:scale="1.0"/>
      <path fill="none" d="M125.58,5 L 125.58 80.72" id="img-0e35cce1-144" visibility="visible" gadfly:scale="1.0"/>
      <path fill="none" d="M151.54,5 L 151.54 80.72" id="img-0e35cce1-145" visibility="hidden" gadfly:scale="1.0"/>
      <path fill="none" d="M177.5,5 L 177.5 80.72" id="img-0e35cce1-146" visibility="hidden" gadfly:scale="1.0"/>
      <path fill="none" d="M203.46,5 L 203.46 80.72" id="img-0e35cce1-147" visibility="hidden" gadfly:scale="1.0"/>
      <path fill="none" d="M229.42,5 L 229.42 80.72" id="img-0e35cce1-148" visibility="hidden" gadfly:scale="1.0"/>
      <path fill="none" d="M255.38,5 L 255.38 80.72" id="img-0e35cce1-149" visibility="hidden" gadfly:scale="1.0"/>
      <path fill="none" d="M-82.09,5 L -82.09 80.72" id="img-0e35cce1-150" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M-76.9,5 L -76.9 80.72" id="img-0e35cce1-151" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M-71.71,5 L -71.71 80.72" id="img-0e35cce1-152" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M-66.52,5 L -66.52 80.72" id="img-0e35cce1-153" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M-61.33,5 L -61.33 80.72" id="img-0e35cce1-154" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M-56.13,5 L -56.13 80.72" id="img-0e35cce1-155" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M-50.94,5 L -50.94 80.72" id="img-0e35cce1-156" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M-45.75,5 L -45.75 80.72" id="img-0e35cce1-157" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M-40.56,5 L -40.56 80.72" id="img-0e35cce1-158" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M-35.37,5 L -35.37 80.72" id="img-0e35cce1-159" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M-30.17,5 L -30.17 80.72" id="img-0e35cce1-160" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M-24.98,5 L -24.98 80.72" id="img-0e35cce1-161" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M-19.79,5 L -19.79 80.72" id="img-0e35cce1-162" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M-14.6,5 L -14.6 80.72" id="img-0e35cce1-163" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M-9.41,5 L -9.41 80.72" id="img-0e35cce1-164" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M-4.21,5 L -4.21 80.72" id="img-0e35cce1-165" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M0.98,5 L 0.98 80.72" id="img-0e35cce1-166" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M6.17,5 L 6.17 80.72" id="img-0e35cce1-167" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M11.36,5 L 11.36 80.72" id="img-0e35cce1-168" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M16.55,5 L 16.55 80.72" id="img-0e35cce1-169" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M21.74,5 L 21.74 80.72" id="img-0e35cce1-170" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M26.94,5 L 26.94 80.72" id="img-0e35cce1-171" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M32.13,5 L 32.13 80.72" id="img-0e35cce1-172" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M37.32,5 L 37.32 80.72" id="img-0e35cce1-173" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M42.51,5 L 42.51 80.72" id="img-0e35cce1-174" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M47.7,5 L 47.7 80.72" id="img-0e35cce1-175" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M52.9,5 L 52.9 80.72" id="img-0e35cce1-176" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M58.09,5 L 58.09 80.72" id="img-0e35cce1-177" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M63.28,5 L 63.28 80.72" id="img-0e35cce1-178" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M68.47,5 L 68.47 80.72" id="img-0e35cce1-179" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M73.66,5 L 73.66 80.72" id="img-0e35cce1-180" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M78.86,5 L 78.86 80.72" id="img-0e35cce1-181" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M84.05,5 L 84.05 80.72" id="img-0e35cce1-182" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M89.24,5 L 89.24 80.72" id="img-0e35cce1-183" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M94.43,5 L 94.43 80.72" id="img-0e35cce1-184" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M99.62,5 L 99.62 80.72" id="img-0e35cce1-185" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M104.82,5 L 104.82 80.72" id="img-0e35cce1-186" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M110.01,5 L 110.01 80.72" id="img-0e35cce1-187" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M115.2,5 L 115.2 80.72" id="img-0e35cce1-188" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M120.39,5 L 120.39 80.72" id="img-0e35cce1-189" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M125.58,5 L 125.58 80.72" id="img-0e35cce1-190" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M130.78,5 L 130.78 80.72" id="img-0e35cce1-191" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M135.97,5 L 135.97 80.72" id="img-0e35cce1-192" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M141.16,5 L 141.16 80.72" id="img-0e35cce1-193" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M146.35,5 L 146.35 80.72" id="img-0e35cce1-194" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M151.54,5 L 151.54 80.72" id="img-0e35cce1-195" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M156.74,5 L 156.74 80.72" id="img-0e35cce1-196" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M161.93,5 L 161.93 80.72" id="img-0e35cce1-197" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M167.12,5 L 167.12 80.72" id="img-0e35cce1-198" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M172.31,5 L 172.31 80.72" id="img-0e35cce1-199" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M177.5,5 L 177.5 80.72" id="img-0e35cce1-200" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M182.7,5 L 182.7 80.72" id="img-0e35cce1-201" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M187.89,5 L 187.89 80.72" id="img-0e35cce1-202" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M193.08,5 L 193.08 80.72" id="img-0e35cce1-203" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M198.27,5 L 198.27 80.72" id="img-0e35cce1-204" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M203.46,5 L 203.46 80.72" id="img-0e35cce1-205" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M208.66,5 L 208.66 80.72" id="img-0e35cce1-206" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M213.85,5 L 213.85 80.72" id="img-0e35cce1-207" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M219.04,5 L 219.04 80.72" id="img-0e35cce1-208" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M224.23,5 L 224.23 80.72" id="img-0e35cce1-209" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M229.42,5 L 229.42 80.72" id="img-0e35cce1-210" visibility="hidden" gadfly:scale="10.0"/>
      <path fill="none" d="M-134.01,5 L -134.01 80.72" id="img-0e35cce1-211" visibility="hidden" gadfly:scale="0.5"/>
      <path fill="none" d="M-30.17,5 L -30.17 80.72" id="img-0e35cce1-212" visibility="hidden" gadfly:scale="0.5"/>
      <path fill="none" d="M73.66,5 L 73.66 80.72" id="img-0e35cce1-213" visibility="hidden" gadfly:scale="0.5"/>
      <path fill="none" d="M177.5,5 L 177.5 80.72" id="img-0e35cce1-214" visibility="hidden" gadfly:scale="0.5"/>
      <path fill="none" d="M281.34,5 L 281.34 80.72" id="img-0e35cce1-215" visibility="hidden" gadfly:scale="0.5"/>
      <path fill="none" d="M-82.09,5 L -82.09 80.72" id="img-0e35cce1-216" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M-71.71,5 L -71.71 80.72" id="img-0e35cce1-217" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M-61.33,5 L -61.33 80.72" id="img-0e35cce1-218" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M-50.94,5 L -50.94 80.72" id="img-0e35cce1-219" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M-40.56,5 L -40.56 80.72" id="img-0e35cce1-220" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M-30.17,5 L -30.17 80.72" id="img-0e35cce1-221" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M-19.79,5 L -19.79 80.72" id="img-0e35cce1-222" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M-9.41,5 L -9.41 80.72" id="img-0e35cce1-223" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M0.98,5 L 0.98 80.72" id="img-0e35cce1-224" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M11.36,5 L 11.36 80.72" id="img-0e35cce1-225" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M21.74,5 L 21.74 80.72" id="img-0e35cce1-226" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M32.13,5 L 32.13 80.72" id="img-0e35cce1-227" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M42.51,5 L 42.51 80.72" id="img-0e35cce1-228" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M52.9,5 L 52.9 80.72" id="img-0e35cce1-229" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M63.28,5 L 63.28 80.72" id="img-0e35cce1-230" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M73.66,5 L 73.66 80.72" id="img-0e35cce1-231" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M84.05,5 L 84.05 80.72" id="img-0e35cce1-232" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M94.43,5 L 94.43 80.72" id="img-0e35cce1-233" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M104.82,5 L 104.82 80.72" id="img-0e35cce1-234" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M115.2,5 L 115.2 80.72" id="img-0e35cce1-235" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M125.58,5 L 125.58 80.72" id="img-0e35cce1-236" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M135.97,5 L 135.97 80.72" id="img-0e35cce1-237" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M146.35,5 L 146.35 80.72" id="img-0e35cce1-238" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M156.74,5 L 156.74 80.72" id="img-0e35cce1-239" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M167.12,5 L 167.12 80.72" id="img-0e35cce1-240" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M177.5,5 L 177.5 80.72" id="img-0e35cce1-241" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M187.89,5 L 187.89 80.72" id="img-0e35cce1-242" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M198.27,5 L 198.27 80.72" id="img-0e35cce1-243" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M208.66,5 L 208.66 80.72" id="img-0e35cce1-244" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M219.04,5 L 219.04 80.72" id="img-0e35cce1-245" visibility="hidden" gadfly:scale="5.0"/>
      <path fill="none" d="M229.42,5 L 229.42 80.72" id="img-0e35cce1-246" visibility="hidden" gadfly:scale="5.0"/>
    </g>
    <g class="plotpanel" id="img-0e35cce1-247">
      <g stroke-width="0.3" fill="#000000" fill-opacity="0.000" stroke-dasharray="none" id="img-0e35cce1-248">
        <path fill="none" d="M21.74,7 L 22.16 7 22.58 7 23 7 23.41 7 23.83 7 24.25 7 24.66 7 25.08 7 25.5 7 25.92 7 26.33 7 26.75 7 27.17 7 27.58 7 28 7 28.42 7 28.83 7 29.25 7 29.67 7 30.09 7 30.5 7 30.92 7 31.34 7 31.75 7 32.17 7 32.59 7 33 7 33.42 7 33.84 7 34.26 7 34.67 7 35.09 7 35.51 7 35.92 7 36.34 7 36.76 7 37.17 7 37.59 7 38.01 7 38.43 7 38.84 7 39.26 7 39.68 7 40.09 7 40.51 7 40.93 7 41.35 7 41.76 7 42.18 7 42.6 7 43.01 7 43.43 7 43.85 7 44.26 7 44.68 7 45.1 7 45.52 7 45.93 7 46.35 7 46.77 7 47.18 7 47.6 7 48.02 7 48.43 7 48.85 7 49.27 7 49.69 7 50.1 7 50.52 7 50.94 7 51.35 7 51.77 7 52.19 7 52.6 7 53.02 7 53.44 7 53.86 7 54.27 7 54.69 7 55.11 7 55.52 7 55.94 7 56.36 7 56.78 7 57.19 7 57.61 7 58.03 7 58.44 7 58.86 7 59.28 7 59.69 7 60.11 7 60.53 7 60.95 7 61.36 7 61.78 7 62.2 7 62.61 7 63.03 7 63.45 7 63.86 7 64.28 7 64.7 7 65.12 7 65.53 7 65.95 7 66.37 7 66.78 7 67.2 7 67.62 7 68.03 7 68.45 7 68.87 7 69.29 7 69.7 7 70.12 7 70.54 7 70.95 7 71.37 7 71.79 7 72.21 7 72.62 7 73.04 7 73.46 7 73.87 7 74.29 7 74.71 7 75.12 7 75.54 7 75.96 7 76.38 7 76.79 7 77.21 7 77.63 7 78.04 7 78.46 7 78.88 7 79.29 7 79.71 7 80.13 7 80.55 7 80.96 7 81.38 7 81.8 7 82.21 7 82.63 7 83.05 7 83.46 7 83.88 7 84.3 7 84.72 7 85.13 7 85.55 7 85.97 7 86.38 7 86.8 7 87.22 7 87.64 7 88.05 7 88.47 7 88.89 7 89.3 7 89.72 7 90.14 7 90.55 7 90.97 7 91.39 7 91.81 7 92.22 7 92.64 7 93.06 7 93.47 7 93.89 7 94.31 7 94.72 7 95.14 7 95.56 7 95.98 7 96.39 7 96.81 7 97.23 7 97.64 7 98.06 7 98.48 7 98.89 7 99.31 7 99.73 7 100.15 7 100.56 7 100.98 7 101.4 7 101.81 7 102.23 7 102.65 7 103.07 7 103.48 7 103.9 7 104.32 7 104.73 7 105.15 7 105.57 7 105.98 7 106.4 7 106.82 7 107.24 7 107.65 7 108.07 7 108.49 7 108.9 7 109.32 7 109.74 7 110.15 7 110.57 7 110.99 7 111.41 7 111.82 7 112.24 7 112.66 7 113.07 7 113.49 7 113.91 7 114.32 7 114.74 7 115.16 7 115.58 7 115.99 7 116.41 7 116.83 7 117.24 7 117.66 7 118.08 7 118.5 7 118.91 7 119.33 7 119.75 7 120.16 7 120.58 7 121 7 121.41 7 121.83 7 122.25 7 122.67 7 123.08 7 123.5 7 123.92 7 124.33 7 124.75 7 125.17 7 125.58 7" id="img-0e35cce1-249" class="geometry color_f1" stroke="#00BFFF"/>
        <path fill="none" d="M21.74,78.71 L 22.16 78.43 22.58 78.14 23 77.85 23.41 77.56 23.83 77.27 24.25 76.99 24.66 76.7 25.08 76.41 25.5 76.12 25.92 75.83 26.33 75.55 26.75 75.26 27.17 74.97 27.58 74.68 28 74.39 28.42 74.11 28.83 73.82 29.25 73.53 29.67 73.24 30.09 72.95 30.5 72.67 30.92 72.38 31.34 72.09 31.75 71.8 32.17 71.51 32.59 71.23 33 70.94 33.42 70.65 33.84 70.36 34.26 70.07 34.67 69.79 35.09 69.5 35.51 69.21 35.92 68.92 36.34 68.63 36.76 68.35 37.17 68.06 37.59 67.77 38.01 67.48 38.43 67.19 38.84 66.91 39.26 66.62 39.68 66.33 40.09 66.04 40.51 65.75 40.93 65.47 41.35 65.18 41.76 64.89 42.18 64.6 42.6 64.31 43.01 64.03 43.43 63.74 43.85 63.45 44.26 63.16 44.68 62.87 45.1 62.59 45.52 62.3 45.93 62.01 46.35 61.72 46.77 61.43 47.18 61.15 47.6 60.86 48.02 60.57 48.43 60.28 48.85 59.99 49.27 59.71 49.69 59.42 50.1 59.13 50.52 58.84 50.94 58.55 51.35 58.27 51.77 57.98 52.19 57.69 52.6 57.4 53.02 57.11 53.44 56.83 53.86 56.54 54.27 56.25 54.69 55.96 55.11 55.67 55.52 55.39 55.94 55.1 56.36 54.81 56.78 54.52 57.19 54.23 57.61 53.95 58.03 53.66 58.44 53.37 58.86 53.08 59.28 52.79 59.69 52.51 60.11 52.22 60.53 51.93 60.95 51.64 61.36 51.35 61.78 51.07 62.2 50.78 62.61 50.49 63.03 50.2 63.45 49.91 63.86 49.63 64.28 49.34 64.7 49.05 65.12 48.76 65.53 48.47 65.95 48.19 66.37 47.9 66.78 47.61 67.2 47.32 67.62 47.03 68.03 46.75 68.45 46.46 68.87 46.17 69.29 45.88 69.7 45.59 70.12 45.31 70.54 45.02 70.95 44.73 71.37 44.44 71.79 44.15 72.21 43.87 72.62 43.58 73.04 43.29 73.46 43 73.87 42.71 74.29 42.43 74.71 42.14 75.12 41.85 75.54 41.56 75.96 41.27 76.38 40.99 76.79 40.7 77.21 40.41 77.63 40.12 78.04 39.83 78.46 39.55 78.88 39.26 79.29 38.97 79.71 38.68 80.13 38.39 80.55 38.11 80.96 37.82 81.38 37.53 81.8 37.24 82.21 36.95 82.63 36.67 83.05 36.38 83.46 36.09 83.88 35.8 84.3 35.51 84.72 35.23 85.13 34.94 85.55 34.65 85.97 34.36 86.38 34.07 86.8 33.79 87.22 33.5 87.64 33.21 88.05 32.92 88.47 32.63 88.89 32.35 89.3 32.06 89.72 31.77 90.14 31.48 90.55 31.19 90.97 30.91 91.39 30.62 91.81 30.33 92.22 30.04 92.64 29.75 93.06 29.46 93.47 29.18 93.89 28.89 94.31 28.6 94.72 28.31 95.14 28.02 95.56 27.74 95.98 27.45 96.39 27.16 96.81 26.87 97.23 26.58 97.64 26.3 98.06 26.01 98.48 25.72 98.89 25.43 99.31 25.14 99.73 24.86 100.15 24.57 100.56 24.28 100.98 23.99 101.4 23.7 101.81 23.42 102.23 23.13 102.65 22.84 103.07 22.55 103.48 22.26 103.9 21.98 104.32 21.69 104.73 21.4 105.15 21.11 105.57 20.82 105.98 20.54 106.4 20.25 106.82 19.96 107.24 19.67 107.65 19.38 108.07 19.1 108.49 18.81 108.9 18.52 109.32 18.23 109.74 17.94 110.15 17.66 110.57 17.37 110.99 17.08 111.41 16.79 111.82 16.5 112.24 16.22 112.66 15.93 113.07 15.64 113.49 15.35 113.91 15.06 114.32 14.78 114.74 14.49 115.16 14.2 115.58 13.91 115.99 13.62 116.41 13.34 116.83 13.05 117.24 12.76 117.66 12.47 118.08 12.18 118.5 11.9 118.91 11.61 119.33 11.32 119.75 11.03 120.16 10.74 120.58 10.46 121 10.17 121.41 9.88 121.83 9.59 122.25 9.3 122.67 9.02 123.08 8.73 123.5 8.44 123.92 8.15 124.33 7.86 124.75 7.58 125.17 7.29 125.58 7" id="img-0e35cce1-250" class="geometry color_f2" stroke="#D4CA3A"/>
        <path fill="none" d="M21.74,7 L 22.16 7.86 22.58 8.71 23 9.56 23.41 10.4 23.83 11.23 24.25 12.06 24.66 12.88 25.08 13.69 25.5 14.5 25.92 15.29 26.33 16.08 26.75 16.87 27.17 17.65 27.58 18.42 28 19.18 28.42 19.94 28.83 20.69 29.25 21.43 29.67 22.16 30.09 22.89 30.5 23.61 30.92 24.33 31.34 25.04 31.75 25.74 32.17 26.43 32.59 27.12 33 27.8 33.42 28.47 33.84 29.14 34.26 29.8 34.67 30.45 35.09 31.1 35.51 31.73 35.92 32.37 36.34 32.99 36.76 33.61 37.17 34.22 37.59 34.82 38.01 35.42 38.43 36.01 38.84 36.59 39.26 37.17 39.68 37.74 40.09 38.3 40.51 38.85 40.93 39.4 41.35 39.94 41.76 40.48 42.18 41.01 42.6 41.53 43.01 42.04 43.43 42.55 43.85 43.05 44.26 43.54 44.68 44.03 45.1 44.5 45.52 44.98 45.93 45.44 46.35 45.9 46.77 46.35 47.18 46.79 47.6 47.23 48.02 47.66 48.43 48.09 48.85 48.5 49.27 48.91 49.69 49.31 50.1 49.71 50.52 50.1 50.94 50.48 51.35 50.85 51.77 51.22 52.19 51.58 52.6 51.94 53.02 52.28 53.44 52.62 53.86 52.96 54.27 53.28 54.69 53.6 55.11 53.91 55.52 54.22 55.94 54.52 56.36 54.81 56.78 55.09 57.19 55.37 57.61 55.64 58.03 55.91 58.44 56.16 58.86 56.41 59.28 56.66 59.69 56.89 60.11 57.12 60.53 57.34 60.95 57.56 61.36 57.77 61.78 57.97 62.2 58.16 62.61 58.35 63.03 58.53 63.45 58.7 63.86 58.87 64.28 59.03 64.7 59.18 65.12 59.33 65.53 59.47 65.95 59.6 66.37 59.72 66.78 59.84 67.2 59.95 67.62 60.06 68.03 60.15 68.45 60.24 68.87 60.33 69.29 60.4 69.7 60.47 70.12 60.54 70.54 60.59 70.95 60.64 71.37 60.68 71.79 60.72 72.21 60.74 72.62 60.76 73.04 60.78 73.46 60.79 73.87 60.79 74.29 60.78 74.71 60.76 75.12 60.74 75.54 60.72 75.96 60.68 76.38 60.64 76.79 60.59 77.21 60.54 77.63 60.47 78.04 60.4 78.46 60.33 78.88 60.24 79.29 60.15 79.71 60.06 80.13 59.95 80.55 59.84 80.96 59.72 81.38 59.6 81.8 59.47 82.21 59.33 82.63 59.18 83.05 59.03 83.46 58.87 83.88 58.7 84.3 58.53 84.72 58.35 85.13 58.16 85.55 57.97 85.97 57.77 86.38 57.56 86.8 57.34 87.22 57.12 87.64 56.89 88.05 56.66 88.47 56.41 88.89 56.16 89.3 55.91 89.72 55.64 90.14 55.37 90.55 55.09 90.97 54.81 91.39 54.52 91.81 54.22 92.22 53.91 92.64 53.6 93.06 53.28 93.47 52.96 93.89 52.62 94.31 52.28 94.72 51.94 95.14 51.58 95.56 51.22 95.98 50.85 96.39 50.48 96.81 50.1 97.23 49.71 97.64 49.31 98.06 48.91 98.48 48.5 98.89 48.09 99.31 47.66 99.73 47.23 100.15 46.79 100.56 46.35 100.98 45.9 101.4 45.44 101.81 44.98 102.23 44.5 102.65 44.03 103.07 43.54 103.48 43.05 103.9 42.55 104.32 42.04 104.73 41.53 105.15 41.01 105.57 40.48 105.98 39.94 106.4 39.4 106.82 38.85 107.24 38.3 107.65 37.74 108.07 37.17 108.49 36.59 108.9 36.01 109.32 35.42 109.74 34.82 110.15 34.22 110.57 33.61 110.99 32.99 111.41 32.37 111.82 31.73 112.24 31.1 112.66 30.45 113.07 29.8 113.49 29.14 113.91 28.47 114.32 27.8 114.74 27.12 115.16 26.43 115.58 25.74 115.99 25.04 116.41 24.33 116.83 23.61 117.24 22.89 117.66 22.16 118.08 21.43 118.5 20.69 118.91 19.94 119.33 19.18 119.75 18.42 120.16 17.65 120.58 16.87 121 16.08 121.41 15.29 121.83 14.5 122.25 13.69 122.67 12.88 123.08 12.06 123.5 11.23 123.92 10.4 124.33 9.56 124.75 8.71 125.17 7.86 125.58 7" id="img-0e35cce1-251" class="geometry color_f3" stroke="#FF6DAE"/>
        <path fill="none" d="M21.74,78.71 L 22.16 77 22.58 75.33 23 73.69 23.41 72.08 23.83 70.5 24.25 68.96 24.66 67.45 25.08 65.98 25.5 64.53 25.92 63.12 26.33 61.74 26.75 60.4 27.17 59.08 27.58 57.8 28 56.54 28.42 55.32 28.83 54.12 29.25 52.96 29.67 51.83 30.09 50.72 30.5 49.65 30.92 48.6 31.34 47.58 31.75 46.59 32.17 45.63 32.59 44.7 33 43.79 33.42 42.91 33.84 42.06 34.26 41.23 34.67 40.43 35.09 39.66 35.51 38.91 35.92 38.19 36.34 37.49 36.76 36.82 37.17 36.18 37.59 35.55 38.01 34.95 38.43 34.38 38.84 33.83 39.26 33.3 39.68 32.79 40.09 32.31 40.51 31.85 40.93 31.42 41.35 31 41.76 30.6 42.18 30.23 42.6 29.88 43.01 29.55 43.43 29.24 43.85 28.95 44.26 28.68 44.68 28.43 45.1 28.2 45.52 27.98 45.93 27.79 46.35 27.61 46.77 27.46 47.18 27.32 47.6 27.2 48.02 27.09 48.43 27.01 48.85 26.94 49.27 26.88 49.69 26.85 50.1 26.83 50.52 26.82 50.94 26.83 51.35 26.86 51.77 26.9 52.19 26.95 52.6 27.02 53.02 27.11 53.44 27.2 53.86 27.32 54.27 27.44 54.69 27.58 55.11 27.73 55.52 27.89 55.94 28.06 56.36 28.25 56.78 28.45 57.19 28.66 57.61 28.88 58.03 29.11 58.44 29.35 58.86 29.6 59.28 29.86 59.69 30.13 60.11 30.41 60.53 30.7 60.95 31 61.36 31.31 61.78 31.62 62.2 31.94 62.61 32.27 63.03 32.61 63.45 32.96 63.86 33.31 64.28 33.67 64.7 34.03 65.12 34.4 65.53 34.78 65.95 35.16 66.37 35.55 66.78 35.94 67.2 36.33 67.62 36.73 68.03 37.14 68.45 37.55 68.87 37.96 69.29 38.38 69.7 38.79 70.12 39.21 70.54 39.64 70.95 40.06 71.37 40.49 71.79 40.92 72.21 41.35 72.62 41.78 73.04 42.21 73.46 42.64 73.87 43.07 74.29 43.51 74.71 43.94 75.12 44.37 75.54 44.8 75.96 45.23 76.38 45.65 76.79 46.08 77.21 46.5 77.63 46.92 78.04 47.34 78.46 47.76 78.88 48.17 79.29 48.58 79.71 48.98 80.13 49.38 80.55 49.78 80.96 50.17 81.38 50.56 81.8 50.94 82.21 51.31 82.63 51.68 83.05 52.05 83.46 52.41 83.88 52.76 84.3 53.1 84.72 53.44 85.13 53.77 85.55 54.09 85.97 54.41 86.38 54.72 86.8 55.01 87.22 55.3 87.64 55.58 88.05 55.85 88.47 56.12 88.89 56.37 89.3 56.61 89.72 56.84 90.14 57.06 90.55 57.27 90.97 57.47 91.39 57.65 91.81 57.83 92.22 57.99 92.64 58.14 93.06 58.28 93.47 58.4 93.89 58.51 94.31 58.61 94.72 58.69 95.14 58.76 95.56 58.82 95.98 58.86 96.39 58.88 96.81 58.89 97.23 58.89 97.64 58.87 98.06 58.83 98.48 58.78 98.89 58.71 99.31 58.62 99.73 58.52 100.15 58.4 100.56 58.26 100.98 58.1 101.4 57.93 101.81 57.73 102.23 57.52 102.65 57.29 103.07 57.04 103.48 56.77 103.9 56.48 104.32 56.17 104.73 55.83 105.15 55.48 105.57 55.11 105.98 54.72 106.4 54.3 106.82 53.86 107.24 53.4 107.65 52.92 108.07 52.42 108.49 51.89 108.9 51.34 109.32 50.76 109.74 50.16 110.15 49.54 110.57 48.89 110.99 48.22 111.41 47.52 111.82 46.8 112.24 46.05 112.66 45.28 113.07 44.48 113.49 43.66 113.91 42.8 114.32 41.92 114.74 41.02 115.16 40.08 115.58 39.12 115.99 38.13 116.41 37.11 116.83 36.07 117.24 34.99 117.66 33.89 118.08 32.75 118.5 31.59 118.91 30.4 119.33 29.17 119.75 27.92 120.16 26.63 120.58 25.32 121 23.97 121.41 22.59 121.83 21.18 122.25 19.74 122.67 18.26 123.08 16.75 123.5 15.21 123.92 13.64 124.33 12.03 124.75 10.39 125.17 8.71 125.58 7" id="img-0e35cce1-252" class="geometry color_f4" stroke="#00B78D"/>
      </g>
    </g>
    <g opacity="0" class="guide zoomslider" stroke="#000000" stroke-opacity="0.000" id="img-0e35cce1-253">
      <g fill="#EAEAEA" stroke-width="0.3" stroke-opacity="0" stroke="#6A6A6A" id="img-0e35cce1-254">
        <rect x="120.58" y="8" width="4" height="4" id="img-0e35cce1-255"/>
        <g class="button_logo" fill="#6A6A6A" id="img-0e35cce1-256">
          <path d="M121.38,9.6 L 122.18 9.6 122.18 8.8 122.98 8.8 122.98 9.6 123.78 9.6 123.78 10.4 122.98 10.4 122.98 11.2 122.18 11.2 122.18 10.4 121.38 10.4 z" id="img-0e35cce1-257"/>
        </g>
      </g>
      <g fill="#EAEAEA" id="img-0e35cce1-258">
        <rect x="101.08" y="8" width="19" height="4" id="img-0e35cce1-259"/>
      </g>
      <g class="zoomslider_thumb" fill="#6A6A6A" id="img-0e35cce1-260">
        <rect x="109.58" y="8" width="2" height="4" id="img-0e35cce1-261"/>
      </g>
      <g fill="#EAEAEA" stroke-width="0.3" stroke-opacity="0" stroke="#6A6A6A" id="img-0e35cce1-262">
        <rect x="96.58" y="8" width="4" height="4" id="img-0e35cce1-263"/>
        <g class="button_logo" fill="#6A6A6A" id="img-0e35cce1-264">
          <path d="M97.38,9.6 L 99.78 9.6 99.78 10.4 97.38 10.4 z" id="img-0e35cce1-265"/>
        </g>
      </g>
    </g>
  </g>
</g>
  <g class="guide ylabels" font-size="2.82" font-family="'PT Sans Caption','Helvetica Neue','Helvetica',sans-serif" fill="#6C606B" id="img-0e35cce1-266">
    <text x="18.74" y="168.36" text-anchor="end" dy="0.35em" id="img-0e35cce1-267" visibility="hidden" gadfly:scale="1.0">-3.5</text>
    <text x="18.74" y="150.43" text-anchor="end" dy="0.35em" id="img-0e35cce1-268" visibility="hidden" gadfly:scale="1.0">-3.0</text>
    <text x="18.74" y="132.5" text-anchor="end" dy="0.35em" id="img-0e35cce1-269" visibility="hidden" gadfly:scale="1.0">-2.5</text>
    <text x="18.74" y="114.57" text-anchor="end" dy="0.35em" id="img-0e35cce1-270" visibility="hidden" gadfly:scale="1.0">-2.0</text>
    <text x="18.74" y="96.64" text-anchor="end" dy="0.35em" id="img-0e35cce1-271" visibility="hidden" gadfly:scale="1.0">-1.5</text>
    <text x="18.74" y="78.71" text-anchor="end" dy="0.35em" id="img-0e35cce1-272" visibility="visible" gadfly:scale="1.0">-1.0</text>
    <text x="18.74" y="60.79" text-anchor="end" dy="0.35em" id="img-0e35cce1-273" visibility="visible" gadfly:scale="1.0">-0.5</text>
    <text x="18.74" y="42.86" text-anchor="end" dy="0.35em" id="img-0e35cce1-274" visibility="visible" gadfly:scale="1.0">0.0</text>
    <text x="18.74" y="24.93" text-anchor="end" dy="0.35em" id="img-0e35cce1-275" visibility="visible" gadfly:scale="1.0">0.5</text>
    <text x="18.74" y="7" text-anchor="end" dy="0.35em" id="img-0e35cce1-276" visibility="visible" gadfly:scale="1.0">1.0</text>
    <text x="18.74" y="-10.93" text-anchor="end" dy="0.35em" id="img-0e35cce1-277" visibility="hidden" gadfly:scale="1.0">1.5</text>
    <text x="18.74" y="-28.86" text-anchor="end" dy="0.35em" id="img-0e35cce1-278" visibility="hidden" gadfly:scale="1.0">2.0</text>
    <text x="18.74" y="-46.79" text-anchor="end" dy="0.35em" id="img-0e35cce1-279" visibility="hidden" gadfly:scale="1.0">2.5</text>
    <text x="18.74" y="-64.71" text-anchor="end" dy="0.35em" id="img-0e35cce1-280" visibility="hidden" gadfly:scale="1.0">3.0</text>
    <text x="18.74" y="-82.64" text-anchor="end" dy="0.35em" id="img-0e35cce1-281" visibility="hidden" gadfly:scale="1.0">3.5</text>
    <text x="18.74" y="150.43" text-anchor="end" dy="0.35em" id="img-0e35cce1-282" visibility="hidden" gadfly:scale="10.0">-3.0</text>
    <text x="18.74" y="146.84" text-anchor="end" dy="0.35em" id="img-0e35cce1-283" visibility="hidden" gadfly:scale="10.0">-2.9</text>
    <text x="18.74" y="143.26" text-anchor="end" dy="0.35em" id="img-0e35cce1-284" visibility="hidden" gadfly:scale="10.0">-2.8</text>
    <text x="18.74" y="139.67" text-anchor="end" dy="0.35em" id="img-0e35cce1-285" visibility="hidden" gadfly:scale="10.0">-2.7</text>
    <text x="18.74" y="136.09" text-anchor="end" dy="0.35em" id="img-0e35cce1-286" visibility="hidden" gadfly:scale="10.0">-2.6</text>
    <text x="18.74" y="132.5" text-anchor="end" dy="0.35em" id="img-0e35cce1-287" visibility="hidden" gadfly:scale="10.0">-2.5</text>
    <text x="18.74" y="128.92" text-anchor="end" dy="0.35em" id="img-0e35cce1-288" visibility="hidden" gadfly:scale="10.0">-2.4</text>
    <text x="18.74" y="125.33" text-anchor="end" dy="0.35em" id="img-0e35cce1-289" visibility="hidden" gadfly:scale="10.0">-2.3</text>
    <text x="18.74" y="121.74" text-anchor="end" dy="0.35em" id="img-0e35cce1-290" visibility="hidden" gadfly:scale="10.0">-2.2</text>
    <text x="18.74" y="118.16" text-anchor="end" dy="0.35em" id="img-0e35cce1-291" visibility="hidden" gadfly:scale="10.0">-2.1</text>
    <text x="18.74" y="114.57" text-anchor="end" dy="0.35em" id="img-0e35cce1-292" visibility="hidden" gadfly:scale="10.0">-2.0</text>
    <text x="18.74" y="110.99" text-anchor="end" dy="0.35em" id="img-0e35cce1-293" visibility="hidden" gadfly:scale="10.0">-1.9</text>
    <text x="18.74" y="107.4" text-anchor="end" dy="0.35em" id="img-0e35cce1-294" visibility="hidden" gadfly:scale="10.0">-1.8</text>
    <text x="18.74" y="103.82" text-anchor="end" dy="0.35em" id="img-0e35cce1-295" visibility="hidden" gadfly:scale="10.0">-1.7</text>
    <text x="18.74" y="100.23" text-anchor="end" dy="0.35em" id="img-0e35cce1-296" visibility="hidden" gadfly:scale="10.0">-1.6</text>
    <text x="18.74" y="96.64" text-anchor="end" dy="0.35em" id="img-0e35cce1-297" visibility="hidden" gadfly:scale="10.0">-1.5</text>
    <text x="18.74" y="93.06" text-anchor="end" dy="0.35em" id="img-0e35cce1-298" visibility="hidden" gadfly:scale="10.0">-1.4</text>
    <text x="18.74" y="89.47" text-anchor="end" dy="0.35em" id="img-0e35cce1-299" visibility="hidden" gadfly:scale="10.0">-1.3</text>
    <text x="18.74" y="85.89" text-anchor="end" dy="0.35em" id="img-0e35cce1-300" visibility="hidden" gadfly:scale="10.0">-1.2</text>
    <text x="18.74" y="82.3" text-anchor="end" dy="0.35em" id="img-0e35cce1-301" visibility="hidden" gadfly:scale="10.0">-1.1</text>
    <text x="18.74" y="78.71" text-anchor="end" dy="0.35em" id="img-0e35cce1-302" visibility="hidden" gadfly:scale="10.0">-1.0</text>
    <text x="18.74" y="75.13" text-anchor="end" dy="0.35em" id="img-0e35cce1-303" visibility="hidden" gadfly:scale="10.0">-0.9</text>
    <text x="18.74" y="71.54" text-anchor="end" dy="0.35em" id="img-0e35cce1-304" visibility="hidden" gadfly:scale="10.0">-0.8</text>
    <text x="18.74" y="67.96" text-anchor="end" dy="0.35em" id="img-0e35cce1-305" visibility="hidden" gadfly:scale="10.0">-0.7</text>
    <text x="18.74" y="64.37" text-anchor="end" dy="0.35em" id="img-0e35cce1-306" visibility="hidden" gadfly:scale="10.0">-0.6</text>
    <text x="18.74" y="60.79" text-anchor="end" dy="0.35em" id="img-0e35cce1-307" visibility="hidden" gadfly:scale="10.0">-0.5</text>
    <text x="18.74" y="57.2" text-anchor="end" dy="0.35em" id="img-0e35cce1-308" visibility="hidden" gadfly:scale="10.0">-0.4</text>
    <text x="18.74" y="53.61" text-anchor="end" dy="0.35em" id="img-0e35cce1-309" visibility="hidden" gadfly:scale="10.0">-0.3</text>
    <text x="18.74" y="50.03" text-anchor="end" dy="0.35em" id="img-0e35cce1-310" visibility="hidden" gadfly:scale="10.0">-0.2</text>
    <text x="18.74" y="46.44" text-anchor="end" dy="0.35em" id="img-0e35cce1-311" visibility="hidden" gadfly:scale="10.0">-0.1</text>
    <text x="18.74" y="42.86" text-anchor="end" dy="0.35em" id="img-0e35cce1-312" visibility="hidden" gadfly:scale="10.0">0.0</text>
    <text x="18.74" y="39.27" text-anchor="end" dy="0.35em" id="img-0e35cce1-313" visibility="hidden" gadfly:scale="10.0">0.1</text>
    <text x="18.74" y="35.69" text-anchor="end" dy="0.35em" id="img-0e35cce1-314" visibility="hidden" gadfly:scale="10.0">0.2</text>
    <text x="18.74" y="32.1" text-anchor="end" dy="0.35em" id="img-0e35cce1-315" visibility="hidden" gadfly:scale="10.0">0.3</text>
    <text x="18.74" y="28.51" text-anchor="end" dy="0.35em" id="img-0e35cce1-316" visibility="hidden" gadfly:scale="10.0">0.4</text>
    <text x="18.74" y="24.93" text-anchor="end" dy="0.35em" id="img-0e35cce1-317" visibility="hidden" gadfly:scale="10.0">0.5</text>
    <text x="18.74" y="21.34" text-anchor="end" dy="0.35em" id="img-0e35cce1-318" visibility="hidden" gadfly:scale="10.0">0.6</text>
    <text x="18.74" y="17.76" text-anchor="end" dy="0.35em" id="img-0e35cce1-319" visibility="hidden" gadfly:scale="10.0">0.7</text>
    <text x="18.74" y="14.17" text-anchor="end" dy="0.35em" id="img-0e35cce1-320" visibility="hidden" gadfly:scale="10.0">0.8</text>
    <text x="18.74" y="10.59" text-anchor="end" dy="0.35em" id="img-0e35cce1-321" visibility="hidden" gadfly:scale="10.0">0.9</text>
    <text x="18.74" y="7" text-anchor="end" dy="0.35em" id="img-0e35cce1-322" visibility="hidden" gadfly:scale="10.0">1.0</text>
    <text x="18.74" y="3.41" text-anchor="end" dy="0.35em" id="img-0e35cce1-323" visibility="hidden" gadfly:scale="10.0">1.1</text>
    <text x="18.74" y="-0.17" text-anchor="end" dy="0.35em" id="img-0e35cce1-324" visibility="hidden" gadfly:scale="10.0">1.2</text>
    <text x="18.74" y="-3.76" text-anchor="end" dy="0.35em" id="img-0e35cce1-325" visibility="hidden" gadfly:scale="10.0">1.3</text>
    <text x="18.74" y="-7.34" text-anchor="end" dy="0.35em" id="img-0e35cce1-326" visibility="hidden" gadfly:scale="10.0">1.4</text>
    <text x="18.74" y="-10.93" text-anchor="end" dy="0.35em" id="img-0e35cce1-327" visibility="hidden" gadfly:scale="10.0">1.5</text>
    <text x="18.74" y="-14.51" text-anchor="end" dy="0.35em" id="img-0e35cce1-328" visibility="hidden" gadfly:scale="10.0">1.6</text>
    <text x="18.74" y="-18.1" text-anchor="end" dy="0.35em" id="img-0e35cce1-329" visibility="hidden" gadfly:scale="10.0">1.7</text>
    <text x="18.74" y="-21.69" text-anchor="end" dy="0.35em" id="img-0e35cce1-330" visibility="hidden" gadfly:scale="10.0">1.8</text>
    <text x="18.74" y="-25.27" text-anchor="end" dy="0.35em" id="img-0e35cce1-331" visibility="hidden" gadfly:scale="10.0">1.9</text>
    <text x="18.74" y="-28.86" text-anchor="end" dy="0.35em" id="img-0e35cce1-332" visibility="hidden" gadfly:scale="10.0">2.0</text>
    <text x="18.74" y="-32.44" text-anchor="end" dy="0.35em" id="img-0e35cce1-333" visibility="hidden" gadfly:scale="10.0">2.1</text>
    <text x="18.74" y="-36.03" text-anchor="end" dy="0.35em" id="img-0e35cce1-334" visibility="hidden" gadfly:scale="10.0">2.2</text>
    <text x="18.74" y="-39.61" text-anchor="end" dy="0.35em" id="img-0e35cce1-335" visibility="hidden" gadfly:scale="10.0">2.3</text>
    <text x="18.74" y="-43.2" text-anchor="end" dy="0.35em" id="img-0e35cce1-336" visibility="hidden" gadfly:scale="10.0">2.4</text>
    <text x="18.74" y="-46.79" text-anchor="end" dy="0.35em" id="img-0e35cce1-337" visibility="hidden" gadfly:scale="10.0">2.5</text>
    <text x="18.74" y="-50.37" text-anchor="end" dy="0.35em" id="img-0e35cce1-338" visibility="hidden" gadfly:scale="10.0">2.6</text>
    <text x="18.74" y="-53.96" text-anchor="end" dy="0.35em" id="img-0e35cce1-339" visibility="hidden" gadfly:scale="10.0">2.7</text>
    <text x="18.74" y="-57.54" text-anchor="end" dy="0.35em" id="img-0e35cce1-340" visibility="hidden" gadfly:scale="10.0">2.8</text>
    <text x="18.74" y="-61.13" text-anchor="end" dy="0.35em" id="img-0e35cce1-341" visibility="hidden" gadfly:scale="10.0">2.9</text>
    <text x="18.74" y="-64.71" text-anchor="end" dy="0.35em" id="img-0e35cce1-342" visibility="hidden" gadfly:scale="10.0">3.0</text>
    <text x="18.74" y="186.29" text-anchor="end" dy="0.35em" id="img-0e35cce1-343" visibility="hidden" gadfly:scale="0.5">-4</text>
    <text x="18.74" y="114.57" text-anchor="end" dy="0.35em" id="img-0e35cce1-344" visibility="hidden" gadfly:scale="0.5">-2</text>
    <text x="18.74" y="42.86" text-anchor="end" dy="0.35em" id="img-0e35cce1-345" visibility="hidden" gadfly:scale="0.5">0</text>
    <text x="18.74" y="-28.86" text-anchor="end" dy="0.35em" id="img-0e35cce1-346" visibility="hidden" gadfly:scale="0.5">2</text>
    <text x="18.74" y="-100.57" text-anchor="end" dy="0.35em" id="img-0e35cce1-347" visibility="hidden" gadfly:scale="0.5">4</text>
    <text x="18.74" y="150.43" text-anchor="end" dy="0.35em" id="img-0e35cce1-348" visibility="hidden" gadfly:scale="5.0">-3.0</text>
    <text x="18.74" y="143.26" text-anchor="end" dy="0.35em" id="img-0e35cce1-349" visibility="hidden" gadfly:scale="5.0">-2.8</text>
    <text x="18.74" y="136.09" text-anchor="end" dy="0.35em" id="img-0e35cce1-350" visibility="hidden" gadfly:scale="5.0">-2.6</text>
    <text x="18.74" y="128.92" text-anchor="end" dy="0.35em" id="img-0e35cce1-351" visibility="hidden" gadfly:scale="5.0">-2.4</text>
    <text x="18.74" y="121.74" text-anchor="end" dy="0.35em" id="img-0e35cce1-352" visibility="hidden" gadfly:scale="5.0">-2.2</text>
    <text x="18.74" y="114.57" text-anchor="end" dy="0.35em" id="img-0e35cce1-353" visibility="hidden" gadfly:scale="5.0">-2.0</text>
    <text x="18.74" y="107.4" text-anchor="end" dy="0.35em" id="img-0e35cce1-354" visibility="hidden" gadfly:scale="5.0">-1.8</text>
    <text x="18.74" y="100.23" text-anchor="end" dy="0.35em" id="img-0e35cce1-355" visibility="hidden" gadfly:scale="5.0">-1.6</text>
    <text x="18.74" y="93.06" text-anchor="end" dy="0.35em" id="img-0e35cce1-356" visibility="hidden" gadfly:scale="5.0">-1.4</text>
    <text x="18.74" y="85.89" text-anchor="end" dy="0.35em" id="img-0e35cce1-357" visibility="hidden" gadfly:scale="5.0">-1.2</text>
    <text x="18.74" y="78.71" text-anchor="end" dy="0.35em" id="img-0e35cce1-358" visibility="hidden" gadfly:scale="5.0">-1.0</text>
    <text x="18.74" y="71.54" text-anchor="end" dy="0.35em" id="img-0e35cce1-359" visibility="hidden" gadfly:scale="5.0">-0.8</text>
    <text x="18.74" y="64.37" text-anchor="end" dy="0.35em" id="img-0e35cce1-360" visibility="hidden" gadfly:scale="5.0">-0.6</text>
    <text x="18.74" y="57.2" text-anchor="end" dy="0.35em" id="img-0e35cce1-361" visibility="hidden" gadfly:scale="5.0">-0.4</text>
    <text x="18.74" y="50.03" text-anchor="end" dy="0.35em" id="img-0e35cce1-362" visibility="hidden" gadfly:scale="5.0">-0.2</text>
    <text x="18.74" y="42.86" text-anchor="end" dy="0.35em" id="img-0e35cce1-363" visibility="hidden" gadfly:scale="5.0">0.0</text>
    <text x="18.74" y="35.69" text-anchor="end" dy="0.35em" id="img-0e35cce1-364" visibility="hidden" gadfly:scale="5.0">0.2</text>
    <text x="18.74" y="28.51" text-anchor="end" dy="0.35em" id="img-0e35cce1-365" visibility="hidden" gadfly:scale="5.0">0.4</text>
    <text x="18.74" y="21.34" text-anchor="end" dy="0.35em" id="img-0e35cce1-366" visibility="hidden" gadfly:scale="5.0">0.6</text>
    <text x="18.74" y="14.17" text-anchor="end" dy="0.35em" id="img-0e35cce1-367" visibility="hidden" gadfly:scale="5.0">0.8</text>
    <text x="18.74" y="7" text-anchor="end" dy="0.35em" id="img-0e35cce1-368" visibility="hidden" gadfly:scale="5.0">1.0</text>
    <text x="18.74" y="-0.17" text-anchor="end" dy="0.35em" id="img-0e35cce1-369" visibility="hidden" gadfly:scale="5.0">1.2</text>
    <text x="18.74" y="-7.34" text-anchor="end" dy="0.35em" id="img-0e35cce1-370" visibility="hidden" gadfly:scale="5.0">1.4</text>
    <text x="18.74" y="-14.51" text-anchor="end" dy="0.35em" id="img-0e35cce1-371" visibility="hidden" gadfly:scale="5.0">1.6</text>
    <text x="18.74" y="-21.69" text-anchor="end" dy="0.35em" id="img-0e35cce1-372" visibility="hidden" gadfly:scale="5.0">1.8</text>
    <text x="18.74" y="-28.86" text-anchor="end" dy="0.35em" id="img-0e35cce1-373" visibility="hidden" gadfly:scale="5.0">2.0</text>
    <text x="18.74" y="-36.03" text-anchor="end" dy="0.35em" id="img-0e35cce1-374" visibility="hidden" gadfly:scale="5.0">2.2</text>
    <text x="18.74" y="-43.2" text-anchor="end" dy="0.35em" id="img-0e35cce1-375" visibility="hidden" gadfly:scale="5.0">2.4</text>
    <text x="18.74" y="-50.37" text-anchor="end" dy="0.35em" id="img-0e35cce1-376" visibility="hidden" gadfly:scale="5.0">2.6</text>
    <text x="18.74" y="-57.54" text-anchor="end" dy="0.35em" id="img-0e35cce1-377" visibility="hidden" gadfly:scale="5.0">2.8</text>
    <text x="18.74" y="-64.71" text-anchor="end" dy="0.35em" id="img-0e35cce1-378" visibility="hidden" gadfly:scale="5.0">3.0</text>
  </g>
  <g font-size="3.88" font-family="'PT Sans','Helvetica Neue','Helvetica',sans-serif" fill="#564A55" stroke="#000000" stroke-opacity="0.000" id="img-0e35cce1-379">
    <text x="8.81" y="40.86" text-anchor="middle" dy="0.35em" transform="rotate(-90, 8.81, 42.86)" id="img-0e35cce1-380">f(x)</text>
  </g>
</g>
<defs>
  <clipPath id="img-0e35cce1-17">
  <path d="M19.75,5 L 127.58 5 127.58 80.72 19.75 80.72" />
</clipPath>
</defs>

</svg>

> _**Question.**  What is the "projection matrix" $\hat{Q}\hat{Q}^*$ associated with $\hat{Q}$?_

$$
L^2[-1,1] \to L^2[-1,1]: f(\cdot) \mapsto \sum_{j=0}^{n-1} q_j(\cdot) \int_{-1}^1 \overline{q_j(x)} f(x) dx.
$$

The collection $\{P_j(x)\}$ provides a _spectral_ basis for the space of polynomials.

It turns out that the space $L_{\text{periodic}}^2[-\pi,\pi]$ has an orthonormal basis consisting of $\{e^{2\pi i n x}\}$.

This fact is the basis of _Fourier Theory_.   In particular, it says that if $f(x)=f(x+2\pi)$ is in $L^2[-\pi,\pi]$, then:

$$f(x) = \sum_{n=0} c_n e^{2\pi in z}.$$

Where the Fourier coefficients can be computed as:
$$
c_n = \int_{-\pi}^\pi f(x) e^{-2\pi n ix} dx.
$$

## Solving $A\mathbf{x} = \mathbf{b}$ via QR factorization

Given a nonsingular $A\in \mathbb{C}^{m\times m}$, with $QR$ factorization $A=QR$.  We propose the following algorithm for solving:

$$A \mathbf{x} = \mathbf{b}.$$

1. Compute the QR factorization $A=QR$.
- Compute $\mathbf{y}=Q^* \mathbf{b}$.
- Solve $R\mathbf{x} = \mathbf{y}$ for $\mathbf{x}$.


# Somas e Recorrências

A soma

$$S_n = \sum_{k=0}^n a_k$$

é equivalente à recorrência

\begin{align}
S_0 &= a_0;\\
S_n &= S_{n-1} + a_n, \qquad \text{para}\ n>0.
\end{align}

## Manipulação de somas

$$\sum_{k\in K}c\ a_k = c \sum_{k\in K}a_k \qquad \text{(lei distributiva)}$$
$$\sum_{k\in K}(a_k + b_k) =  \sum_{k\in K}a_k + \sum_{k\in K}b_k \qquad \text{(lei associativa)}$$
$$\sum_{k\in K}a_k =  \sum_{p(k)\in K}a_{p(k)} \qquad \text{(lei comutativa)}$$

# Funções de Inteiros

## Piso e teto

**Piso** (*floor*): $\lfloor x\rfloor$ = o maior inteiro menor ou igual a $x$. Exemplos:

$\lfloor 2,3\rfloor = 2$, $\qquad\lfloor 2,7\rfloor = 2$, $\qquad\lfloor -2,7\rfloor = -3$.

**Teto** (*ceil*): $\lceil x\rceil$ = o menor inteiro maior ou igual a $x$.

$\lceil 2,3\rceil = 3$, $\qquad\lceil 2,7\rceil = 3$, $\qquad\lceil -2,7\rceil = -2$.

```python
import math
nums = [2.3, 2.7, -2.7]
print("Números:", nums)
pisos = [math.floor(nums[0]), math.floor(nums[1]), math.floor(nums[2])]
print("Pisos:", pisos)
tetos = [math.ceil(nums[0]), math.ceil(nums[1]), math.ceil(nums[2])]
print("Tetos:", tetos)
```

    Números: [2.3, 2.7, -2.7]
    Pisos: [2, 2, -3]
    Tetos: [3, 3, -2]

# Operação Módulo

A partir da fórmula básica

$$x = y\lfloor x/y\rfloor + x\ \text{mod}\ y $$

onde

$\lfloor x/y\rfloor$ é o quociente da divisão;

$x\ \text{mod}\ y$ é o resto da divisão.

Obtemos

$$x\ \text{mod}\ y = x - y\lfloor x/y \rfloor$$

**Exemplos**

\begin{align}
5\ \text{mod}\ 3 & = \ 5 - 3\lfloor 5/3 \rfloor &=&\quad 5 - (3 \times 1) & = &\quad 2\\
5\ \text{mod}\ -3 & = \ 5 - (-3)\lfloor 5/(-3) \rfloor & = &\quad 5 - (-3 \times -2)  & = & -1\\
-5\ \text{mod}\ 3 & = \ -5 - 3\lfloor -5/3 \rfloor & = &\quad -5 - (3\times -2) & = & \quad 1\\
-5\ \text{mod}\ -3 & = \ -5 - (-3)\lfloor -5/(-3) \rfloor & = &\quad -5 - (-3 \times 1) & = & -2\\
\end{align}

```python
# Em Python e C, o operador módulo (mod) é `%`
x=5; y=3
print(' {} mod  {} =  {}'.format(x, y, x % y))
print(' {} mod {} = {}'.format(x, -y, x % -y))
print('{} mod  {} =  {}'.format(-x, y, -x % y))
print('{} mod {} = {}'.format(-x, -y, -x % -y))
```

     5 mod  3 =  2
     5 mod -3 = -1
    -5 mod  3 =  1
    -5 mod -3 = -2

**Aplicações**

# *Bibliografia*

- Judy Graham, Donald Knuth, Oren Patashnik.
"[Matemática Concreta: Fundamentos Para a Ciência da Computação](https://www.amazon.com.br/Matem%C3%A1tica-Concreta-Fundamentos-Ci%C3%AAncia-Computa%C3%A7%C3%A3o/dp/8521610408)".
LTC Editora; 2ª edição, 1995.


# Naive Bayes

We have vectorised our lyrics corpus using Bag of Words. How can we run predictions on that?
- Using Naive Bayes!

Naive Bayes are their own family of Machine Learning modelling - Bayes means it belongs to a group that gives you probability scores!

They are very useful and have lots of functions: we can introduce thresholds to say only show us results only where you are really sure!

- Based on Bayes' Theorem - it **describes the probability of an event, based on prior knowledge of conditions that might be related to the event.** For example, if cancer is related to age, then, using Bayes' theorem, a person's age can be used to more accurately assess the probability that they have cancer, compared to the assessment of the probability of cancer made without knowledge of the person's age.

### What is a prior?
- A prior is the assumed probability of an event before taking any data into account.

For instance, if we look at the word “yeah” in documents, we would expect it to occur with the average frequency over all documents, before looking at an individual document. The probability associated with the average frequency is the prior of “yeah”.

Naive Bayes - what we want to calculate:

                            p(doc|A) x p(A) <---- Prior - this is the probability
       ->    p (A|doc) = _____________________
       |                         p(B) <---- Marginal probability - has a nice property:
       |                                    We can ignore it! We're not interested in
       |                                    absolute probability, we just want to know            Posterior Probability                    probability of Eminem v Madonna

\begin{align}
P(doc|A) = P({W_1}|A) . P({W_2}|A) ...
\end{align}

### Naive Bayes Probabilistic Model

In plain English, using Bayesian probability terminology, the above equation can be written as

\begin{align}
Posterior = \frac{prior * likelihood}{evidence}
\end{align}

**The posterior probability is the probability after looking at the data.**

#### Bayes' theorem is stated mathematically as the following equation:

\begin{align}
\displaystyle P(A\mid B)={\frac {P(B\mid A)\,P(A)}{P(B)}}
\end{align}

where A and B are events and P(B) not equal to 0

- P(A|B) is a conditional probability: the likelihood of event A occurring given that B is true.

- P(B|A) is also a conditional probability: the likelihood of event B occurring given that A is true.

- P(A) and P(B) are the probabilities of observing A and B independently of each other; this is known as the marginal probability.

This might be too abstract, so let us replace some of the variables to make it more concrete. In a bayes classifier, we are interested in finding out the class (e.g. male or female, spam or ham) of an observation given the data:

\begin{align}
P(class|data) = \frac {P(data|class)∗P(class)}{P(data)}
\end{align}

Here, **P(class) is the prior**. **P(data) is called the marginal probability**. In a classifier, we **can usually ignore the latter**, because we **only need to know the ratio between the classes.**

- class is a particular class (e.g. male)
- data is an observation’s data
- p(class | data) is called the posterior
- p(data | class) is called the likelihood
- p(class) is called the prior
- p(data) is called the marginal probability

### The Bayes Error
If we knew the underlying distribution of the data, we could build a perfect Bayesian model. Even then, there would be a residual error due to noise in the data. We call this the **Bayes Error**.

#### Advantages:

- fast

- accurate

- probability scores given

- works well even under small data

- often very intuitive

#### Disadvantages:

- Overfitting - you'll often have to optimise the hyperparameter alpha and this can be quite difficult
    - Can try and optimise that using GridSearch or TPOT(mentioned there's an issue here for Naive Bayes)

- Computationally costly in large data

- A prior must be chosen

## Naive Bayes Classifier From Scratch
- Copyright © Chris Albon, 2020

#### Create Data

Our dataset is contains data on eight individuals. We will use the dataset to construct a classifier that takes in the height, weight, and foot size of an individual and outputs a prediction for their gender.

```python
import pandas as pd
import numpy as np
```

```python
# Create an empty dataframe
data = pd.DataFrame()

# Create our target variable
data['Gender'] = ['male','male','male','male','female','female','female','female']

# Create our feature variables
data['Height'] = [6,5.92,5.58,5.92,5,5.5,5.42,5.75]
data['Weight'] = [180,190,170,165,100,150,130,150]
data['Foot_Size'] = [12,11,12,10,6,8,7,9]

# View the data
data

```

      Gender
      Height
      Weight
      Foot_Size

      0
      male
      6.00
      180
      12

      1
      male
      5.92
      190
      11

      2
      male
      5.58
      170
      12

      3
      male
      5.92
      165
      10

      4
      female
      5.00
      100
      6

      5
      female
      5.50
      150
      8

      6
      female
      5.42
      130
      7

      7
      female
      5.75
      150
      9

The dataset above is used to construct our classifier. Below we will create a new person for whom we know their feature values but not their gender. Our goal is to predict their gender.

```python
# Create an empty dataframe
person = pd.DataFrame()

# Create some feature values for this single row
person['Height'] = [6]
person['Weight'] = [130]
person['Foot_Size'] = [8]

# View the data
person
```

      Height
      Weight
      Foot_Size

      0
      6
      130
      8

In a bayes classifier, we calculate the posterior (technically we only calculate the numerator of the posterior, but ignore that for now) for every class for each observation. Then, classify the observation based on the class with the largest posterior value. In our example, we have one observation to predict and two possible classes (e.g. male and female), therefore we will calculate two posteriors: one for male and one for female.

\begin{align}
p(\text{person is male} \mid \mathbf {\text{person’s data}} )={\frac {p(\mathbf {\text{person’s data}} \mid \text{person is male}) * p(\text{person is male})}{p(\mathbf {\text{person’s data}} )}}
\end{align}

\begin{align}
p(\text{person is female} \mid \mathbf {\text{person’s data}} )={\frac {p(\mathbf {\text{person’s data}} \mid \text{person is female}) * p(\text{person is female})}{p(\mathbf {\text{person’s data}} )}}
\end{align}

### Gaussian Naive Bayes Classifier
A gaussian naive bayes is probably the most popular type of bayes classifier. To explain what the name means, let us look at what the bayes equations looks like when we apply our two classes (male and female) and three feature variables (height, weight, and footsize):

\begin{align}
{\displaystyle {\text{posterior (male)}}={\frac {P({\text{male}})\,p({\text{height}}\mid{\text{male}})\,p({\text{weight}}\mid{\text{male}})\,p({\text{foot size}}\mid{\text{male}})}{\text{marginal probability}}}}
\end{align}

\begin{align}
{\displaystyle {\text{posterior (female)}}={\frac {P({\text{female}})\,p({\text{height}}\mid{\text{female}})\,p({\text{weight}}\mid{\text{female}})\,p({\text{foot size}}\mid{\text{female}})}{\text{marginal probability}}}}
\end{align}

Now let us unpack the top equation a bit:

- P(male) is the prior probabilities. It is, as you can see, simply the probability an observation is male. This is just the number of males in the dataset divided by the total number of people in the dataset.
- p(height∣female)p(weight∣female)p(foot size∣female) is the likelihood. Notice that we have unpacked `person’s data` so it is now every feature in the dataset. The “gaussian” and “naive” come from two assumptions present in this likelihood:
    1. If you look each term in the likelihood you will notice that we assume each feature is uncorrelated from each other. That is, foot size is independent of weight or height etc.. This is obviously not true, and is a “naive” assumption - hence the name “naive bayes.”
    2. Second, we assume have that the value of the features (e.g. the height of women, the weight of women) are normally (gaussian) distributed. This means that p(height∣female) is calculated by inputing the required parameters into the probability density function of the normal distribution:

\begin{align}
p(\text{height}\mid\text{female})=\frac{1}{\sqrt{2\pi\text{variance of female height in the data}}}\,e^{ -\frac{(\text{observation’s height}-\text{average height of females in the data})^2}{2\text{variance of female height in the data}} }
\end{align}

- **marginal probability** - is probably one of the most confusing parts of bayesian approaches. In toy examples (including ours) it is completely possible to calculate the marginal probability. However, in many real-world cases, it is either extremely difficult or impossible to find the value of the marginal probability (explaining why is beyond the scope of this tutorial). This is not as much of a problem for our classifier as you might think. Why? Because we don’t care what the true posterior value is, we only care which class has a the highest posterior value. And because the marginal probability is the same for all classes 1) we can ignore the denominator, 2) calculate only the posterior’s numerator for each class, and 3) pick the largest numerator. That is, we can ignore the posterior’s denominator and make a prediction solely on the relative values of the posterior’s numerator.

### Calculate Priors
Priors can be either constants or probability distributions. In our example, this is simply the probability of being a gender. Calculating this is simple:

```python
# Number of males
n_male = data['Gender'][data['Gender'] == 'male'].count()

# Number of males
n_female = data['Gender'][data['Gender'] == 'female'].count()

# Total rows
total_ppl = data['Gender'].count()
```

```python
n_female
```

    4

```python
total_ppl
```

    8

```python
# Number of males divided by the total rows
P_male = n_male/total_ppl

# Number of females divided by the total rows
P_female = n_female/total_ppl
```

```python
P_male
```

    0.5

### Calculate Likelihood
Remember that each term (e.g. p(height∣female)) in our likelihood is assumed to be a normal pdf. For example:

\begin{align}
p(\text{height}\mid\text{female})=\frac{1}{\sqrt{2\pi\text{variance of female height in the data}}}\,e^{ -\frac{(\text{observation’s height}-\text{average height of females in the data})^2}{2\text{variance of female height in the data}} }
\end{align}

This means that for each class (e.g. female) and feature (e.g. height) combination we need to calculate the variance and mean value from the data. Pandas makes this easy:

```python
# Group the data by gender and calculate the means of each feature
data_means = data.groupby('Gender').mean()

# View the values
data_means

```

      Height
      Weight
      Foot_Size

      Gender

      female
      5.4175
      132.50
      7.50

      male
      5.8550
      176.25
      11.25

```python
# Group the data by gender and calculate the variance of each feature
data_variance = data.groupby('Gender').var()

# View the values
data_variance
```

      Height
      Weight
      Foot_Size

      Gender

      female
      0.097225
      558.333333
      1.666667

      male
      0.035033
      122.916667
      0.916667

Now we can create all the variables we need. The code below might look complex but all we are doing is creating a variable out of each cell in both of the tables above.

```python
# Means for male
male_height_mean = data_means['Height'][data_variance.index == 'male'].values[0]
male_weight_mean = data_means['Weight'][data_variance.index == 'male'].values[0]
male_footsize_mean = data_means['Foot_Size'][data_variance.index == 'male'].values[0]

# Variance for male
male_height_variance = data_variance['Height'][data_variance.index == 'male'].values[0]
male_weight_variance = data_variance['Weight'][data_variance.index == 'male'].values[0]
male_footsize_variance = data_variance['Foot_Size'][data_variance.index == 'male'].values[0]

# Means for female
female_height_mean = data_means['Height'][data_variance.index == 'female'].values[0]
female_weight_mean = data_means['Weight'][data_variance.index == 'female'].values[0]
female_footsize_mean = data_means['Foot_Size'][data_variance.index == 'female'].values[0]

# Variance for female
female_height_variance = data_variance['Height'][data_variance.index == 'female'].values[0]
female_weight_variance = data_variance['Weight'][data_variance.index == 'female'].values[0]
female_footsize_variance = data_variance['Foot_Size'][data_variance.index == 'female'].values[0]
```

#### Finally, we need to create a function to calculate the probability density of each of the terms of the likelihood (e.g. p(height|female)).

```python
# Create a function that calculates p(x | y):
def p_x_given_y(x, mean_y, variance_y):

    # Input the arguments into a probability density function
    p = 1/(np.sqrt(2*np.pi*variance_y)) * np.exp((-(x-mean_y)**2)/(2*variance_y))

    # return p
    return p
```

### Apply Bayes Classifier To New Data Point
Alright, our bayes classifier is ready. Remember that since we can ignore the marginal probability (the demoninator), what we are actually calculating is this:

\begin{align}
{\displaystyle {\text{numerator of the posterior}}={P({\text{female}})\,p({\text{height}}\mid{\text{female}})\,p({\text{weight}}\mid{\text{female}})\,p({\text{foot size}}\mid{\text{female}})}{}}
\end{align}

To do this, we just need to plug in the values of the unclassified person (height = 6), the variables of the dataset (e.g. mean of female height), and the function (p_x_given_y) we made above:

```python
# Numerator of the posterior if the unclassified observation is a male
P_male * \
p_x_given_y(person['Height'][0], male_height_mean, male_height_variance) * \
p_x_given_y(person['Weight'][0], male_weight_mean, male_weight_variance) * \
p_x_given_y(person['Foot_Size'][0], male_footsize_mean, male_footsize_variance)
```

    6.197071843878078e-09

```python
# Numerator of the posterior if the unclassified observation is a female
P_female * \
p_x_given_y(person['Height'][0], female_height_mean, female_height_variance) * \
p_x_given_y(person['Weight'][0], female_weight_mean, female_weight_variance) * \
p_x_given_y(person['Foot_Size'][0], female_footsize_mean, female_footsize_variance)
```

    0.0005377909183630018

#### Because the numerator of the posterior for female is greater than male, then we predict that the person is female.