{ "cells": [ { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Lecture 3: Linear Algebra II\n", "\n", "Topics:\n", "\n", "* Least Square\n", "* Eigenvalue Decomposition \n", "* QR Decomposition\n", "* Principal Component Analysis\n", "* Singular Value Decomposition\n", "\n", "$\\renewcommand{bt}[1]{\\bs{\\tilde #1}} $ " ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "source": [ "# initialize the environment\n", "%pylab inline\n", "import sympy as sp\n", "import fmt\n", "import pandas as pd\n", "\n", "sp.init_printing(use_latex = True)\n", "from IPython.display import display\n", "lecture = 3" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Least Square\n", "\n", "Robert Wilson: Consciousness itself is an infinite regress." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Least square problem\n", "\n", "Given an unknown scalar function $\\renewcommand{bs}{\\boldsymbol} y = y(\\boldsymbol x)$, where the argument $\\bs x$ is a $n$ dimensional vector.\n", "\n", "* We have $m > n$ observations: $X$ represents inputs and $\\bs y$ represents outputs:\n", "\n", " $$\\small X = \\pmatrix{\\bs x_1^T \\\\ \\bs x_2^T \\\\ \\vdots \\\\ \\bs x_m^T}, \\;\\; \\bs y = \\pmatrix{y_1 \\\\ y_2 \\\\ \\vdots \\\\ y_m}$$\n", " \n", "* We want to find a factor loading vector $\\bs \\beta$ so that the linear function $\\hat y = \\bs x^T \\bs \\beta$ best approximate the observed inputs/outputs.\n", "* $X \\bs \\beta = \\bs y$ is over-determined, no vector $\\bs \\beta$ solves it exactly\n", "* Instead, we find the $\\bs \\beta^* $ that minimizes $\\Vert X \\bs{\\beta - y}\\Vert_2$." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Pseudo inverse:\n", "\n", "$$ \\bs \\beta^* = \\text{argmin}_{\\bs {\\beta}} \\Vert X \\bs{\\beta - y} \\Vert_2$$\n", "Which can be easily solved using Matrix calculus:\n", "\n", "$$\\begin{eqnarray}\n", "\\Vert X \\bs{\\beta - y} \\Vert_2^2 &=& (X \\bs{\\beta - y})^T (X \\bs{\\beta - y}) \\\\\n", "&=& \\bs{\\beta}^T X^T X \\bs{\\beta} - 2 \\bs{\\beta}^TX^T\\bs y + \\bs y^T\\bs y\\\\\n", "\\frac{\\partial}{\\partial \\bs \\beta^T} \\Vert X \\bs{\\beta - y} \\Vert_2^2 &=& 2 X^TX \\bs \\beta - 2X^T \\bs y = \\bs 0 \\\\\n", "\\bs \\beta^* &=& (X^TX)^{-1}X^T\\bs y\n", "\\end{eqnarray}$$\n", "\n", "* The solution is equivalent to linear regression, but the later requires stronger assumptions for forecasting.\n", "* $X^+ = (X^TX)^{-1}X^T$ is also known as the (left) psuedo inverse of $X$ because $X^+X = I$ " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Condition number of non-square matrix\n", "\n", "We already proved that an invertible matrix $A$'s condition number is \n", "\n", "$$k(A) = \\Vert A \\Vert \\Vert A^{-1} \\Vert$$\n", "\n", "We can extend this to non-square matrix using pseudo-inverse, following the same proof.\n", "\n", "$$k(A) = \\Vert A \\Vert \\Vert A^{+} \\Vert$$\n" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Ridge regression\n", "\n", "The $\\bs \\beta$ that solves the least square problem may have large magnitude:\n", "* often cause problems in practice\n", "\n", "Ridge regression adds a magnitude penalty to the objective function of least square: \n", "\n", "$$\\begin{eqnarray} l(\\bs \\beta) &=& \\Vert X \\bs{\\beta - y} \\Vert_2^2 + \\lambda \\Vert W \\bs \\beta \\Vert_2^2 \\\\ &=& \\bs{\\beta}^T X^T X \\bs{\\beta} - 2 \\bs{\\beta}^TX^T\\bs y + \\bs y^T \\bs y + \\lambda \\bs \\beta^T W^TW \\bs \\beta \\\\\n", "\\frac{\\partial l}{\\partial \\bs \\beta^T} &=& 2X^TX \\bs \\beta - 2X^T \\bs y + 2 \\lambda W^T W \\bs \\beta = \\bs 0 \\\\\n", "\\bs \\beta &=& (X^TX + \\lambda W^TW)^{-1}X^T\\bs y\n", "\\end{eqnarray}$$\n", "\n", "* $W$ is a diagonal weighting matrix for the elements in $\\bs \\beta$, e.g. $W = I$ is often a good start\n", "* $\\lambda$ is a scalar penalty rate\n", "* Also referred to as Tikhonov regularization." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Ridge regression example\n", "\n", "We draw many pairs of $x, y, z$ from the following linear model: \n", "\n", "$$ y = 2x + 0.0001z + 5 + \\epsilon $$\n", "\n", "* $x, z$ are standard normal, $z$ represents an insignificant feature (or accidental correlation)\n", "* $\\epsilon$ is a standard normal noise\n", "\n", "We regress the vector $\\bs y$ against $X = [\\bs x, \\bs x + .0001 \\bs z, \\bs 1]$:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
$\\bs x$$\\bs x+.0001\\bs z$$\\bs 1$$\\Vert X\\bs \\beta - \\bs y \\Vert_2$
Least square-236.4238.45.00170.33
Ridge regression $\\lambda=0.1$0.94151.0625.00170.35
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import pandas as pd\n", "\n", "n = 5000\n", "x = np.random.normal(size=n)\n", "z = np.random.normal(size=n)\n", "y = 2*x + 5 + 0.0001*z + np.random.normal(size=n)\n", "\n", "xs = np.array([x, x + 0.0001*z, np.ones(len(x))]).T\n", "\n", "q = np.eye(len(xs.T))\n", "lbd = .1\n", "b_ols = np.linalg.inv(xs.T.dot(xs)).dot(xs.T).dot(y)\n", "e_ols = np.linalg.norm(y - xs.dot(b_ols), 2)\n", "\n", "b_rr = np.linalg.inv(xs.T.dot(xs) + lbd*q.T.dot(q)).dot(xs.T).dot(y)\n", "e_rr = np.linalg.norm(y - xs.dot(b_rr), 2)\n", "\n", "df = pd.DataFrame(np.array([b_ols, b_rr]), index=['Least square', 'Ridge regression $\\\\lambda=%2g$' % lbd], \n", " columns=['$\\\\bs x$', '$\\\\bs x+.0001\\\\bs z$', '$\\\\bs 1$'])\n", "df['$\\Vert X\\\\bs \\\\beta - \\\\bs y \\\\Vert_2$'] = [e_ols, e_rr]\n", "fmt.displayDF(df, \"4g\")" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "* ridge regression is more robust, it works even if $X$ is not fully ranked (colinearity)\n", "* often used for constructing hedging portfolios" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Regularization\n", "\n", "Ridge regression is an example of regularization. Two other popular regularizations are:\n", "\n", "* LASSO regression: resulting in sparse $\\bs \\beta$\n", "\n", "$$\n", "l(\\bs \\beta) = \\Vert X \\bs{\\beta - y} \\Vert_2^2 + \\lambda \\Vert W \\bs \\beta \\Vert_1\n", "$$\n", "\n", "* Elastic-Net: in between LASSO and Ridge\n", "\n", "$$\n", "l(\\bs \\beta) = \\Vert X \\bs{\\beta - y} \\Vert_2^2 + \\lambda_1 \\Vert W \\bs \\beta \\Vert_1 + \\lambda_2 \\Vert W \\bs \\beta \\Vert_2^2\n", "$$\n", "\n", "Both LASSO and Elastic-Net are equivalent to support vector machine (SVM)." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Eigenvalue Decomposition\n", "\n", "eigen-: characteristic, origin: German\n", "\n", "aka: spectral decomposition" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Definitions\n", "\n", "For a square matrix $A$ of size $n \\times n$, if there exists a vector $\\bs {v \\ne 0}$ and a scalar $\\lambda $ so that:\n", "\n", "$$ A \\bs v = \\lambda \\bs v $$\n", "\n", "* $\\bs v$ is an eigenvector, $\\lambda$ is the corresponding eigenvalue\n", "* $A$ only changes $\\bs v$'s magnitude, but not direction\n", "* $\\lambda$ can be complex even for real $A$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Characteristic equation\n", "Rewrite the equation as:\n", "\n", "$$ (A - \\lambda I) \\bs {v = 0}$$\n", "\n", "It has non-zero solution if and only if:\n", "\n", "$$ p(\\lambda) = \\det(A - \\lambda I) = 0$$ \n", "\n", "where $p(\\lambda)$ is a polynomial of degree $n$." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Properties of eigenvalues\n", "For matrix $A$ of size $n \\times n$:\n", "* there can be $n$ distinct eigenvalues at most\n", "* eigenvalues can be negative or complex\n", "* $\\prod_{i}\\lambda_i = \\det( A )$\n", "* $\\sum_i\\lambda_i = \\text{tr}(A)$\n", "\n", "It is difficult to solve the characteristic function for $\\lambda_i$, especially for large $n$.\n", "* But once we have eigenvalues, it is easy to find corresponding eigenvectors." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Properties of eigenvectors\n", "Eigenvectors are usually specified as unit L2 vectors of $\\Vert \\bs v \\Vert_2^2 = \\bs v^T \\bs v = 1$. \n", " * $\\bs v$ and $- \\bs v$ are equivalent unit eigenvectors\n", " \n", "Eigen vectors of distinct eigenvalues are linearly independent.\n", "\n", "* proof: suppose the first k-1 eigenvectors are independent, but not the k-th:\n", " \n", "$$\n", "\\begin{array} \\\\\n", " \\bs{v_k} &= \\sum_{i=1}^{k-1}c_i\\bs{v_i} \\\\\n", " \\lambda_k \\bs{v_k} &= \\sum_{i=1}^{k-1}c_i\\lambda_i\\bs{v_i} = \\lambda_k \\sum_{i=1}^{k-1}c_i\\bs{v_i} \\\\\n", "\\bs 0 &= \\sum_{i=1}^{k-1}c_i(\\lambda_i - \\lambda_k) \\bs{v_i} \n", "\\end{array}\n", "$$\n", " \n", " this leads to contradiction." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "\n", "If $A$ has $n$ distinct eigenvalues, then all the eigenvectors form a basis for the vector space and we can write:\n", "\n", "$$ A R = R \\Lambda$$\n", "\n", "* where each column of $R$ is an eigenvector, and $\\Lambda$ is a diagonal matrix of eigenvalues\n", "\n", "\n", "$R$ is invertible because eigenvectors are all independent:\n", "\n", "$$\\begin{array} \\\\\n", "R^{-1} A &= \\Lambda R^{-1} \\\\\n", " A^*(R^{-1})^* &= (R^{-1})^* \\Lambda^* \\\\\n", "\\end{array}$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Eigenvalue decomposition\n", "\n", "\n", "$$A R = R\\Lambda \\iff A^*(R^{-1})^* = (R^{-1})^* \\Lambda^* $$\n", "\n", "If $A$ is real and symmetric: $A^* = A$:\n", "\n", "* $\\Lambda^* = \\Lambda$: all eigenvalues are real\n", "* we can consider real eigenvectors only without losing generality\n", "* $R$ is orthogonal: $(R^{-1})^* = (R^{-1})^T = R \\iff RR^T = I$\n", "\n", "$A = R\\Lambda R^T$, this diagonalization is called the eigenvalue decomposition (EVD)\n", "* all eigenvalues are positive if and only if $A$ is SPD\n", "* applies even when there are duplicated eigenvalues. " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Eigenvectors and maximization\n", "\n", "If $A$ is real and symmetric: \n", "\n", "* $\\bs v_1$ maximizes the $\\bs u^T A \\bs u$ among all L-2 unit vectors, i.e., $\\bs u^T \\bs u = 1$\n", "\n", "Apply Lagrange multiplier:\n", "\n", "$$\\begin{array}\n", "\\\\ l &= \\bs u^T A \\bs u - \\gamma (\\bs u^T \\bs u - 1) \\\\\n", "\\frac{\\partial l}{\\partial \\bs u^T} &= 2 A \\bs u - 2\\gamma \\bs u = \\bs 0 \\iff A \\bs u = \\gamma \\bs u\n", "\\end{array}$$\n", "\n", "* the solution must be an eigenvector \n", "* since $\\bs v_i^T A \\bs v_i = \\lambda_i$, $\\bs v_1$ is the solution because $\\lambda_1$ is the largest" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "This process can be repeated to find all eigenvalues and vectors:\n", "\n", "* $\\bs v_2$ maximizes $\\bs u^T A \\bs u$ for all unit $\\bs u$ that is orthogonal to $\\bs v_1$, i.e, $\\bs u^T \\bs v_1 = 0$.\n", "* $\\bs v_i$ maximizes amongst those unit $\\bs u$ that are orthogonal to $\\bs v_1, ..., \\bs v_{i-1}$\n", "* In the case of duplicated eigenvalues, $\\bs v_i$ is not unique, we can pick any $\\bs v_i$ and continue." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Matrix similarity\n", "\n", "Square matrix $B$ and $A$ are similar if $B = PAP^{-1}$: \n", "* similar matrix have identical eigenvalues:\n", "\n", "$$ AR = P^{-1}BP R = R \\Lambda \\iff B (PR) = (PR) \\Lambda $$ \n", "\n", "* $B$ is also called a similarity transformation of $A$, representing the same operation in different basis\n", "* $P$ is orthogonal if $A$ is real and symmetric" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Solving eigenvalues\n", "\n", "It is very challenging to solve eigenvalues for large matrices.\n", "* Solving characteristic equation is not numerically feasible.\n", "* QR algorithm is an important breakthrough in numerical analysis.\n", "\n", "The basic idea of solving eigenvalues of matrix $A$:\n", "* Find a similarity transformation $B = PAP^{-1}$ so that $B$ is a triangular matrix\n", "* $A$ and $B$ has identical eigenvalues\n", "* Eigenvalues of the triangular matrix $B$ are simply its diagonal elements." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# QR Decomposition\n", "\n", "Nassim Taleb: Decomposition, for most, starts when they leave the free, social, and uncorrupted college life for the solitary confinement of professions and nuclear families." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## QR decomposition\n", "\n", "Any real matrix $A$ can be decomposed into $A = QR$:\n", "* $Q$ is orthogonal ($QQ^T = I$)\n", "* $R$ is upper triangular, with the same dimension as $A$\n", "\n", "QR decomposition is numerically stable\n", "* making EVD analysis of large matrices a routine practice" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "\n", "$$\\overbrace{\\pmatrix{\n", " x & x & x & x \\\\ \n", " x & x & x & x \\\\ \n", " x & x & x & x \\\\ \n", " x & x & x & x \\\\ \n", " x & x & x & x \\\\ \n", " x & x & x & x \n", "}}^A =\n", "\\overbrace{\\pmatrix{\n", "x & x & x & x & x & x \\\\\n", "x & x & x & x & x & x \\\\\n", "x & x & x & x & x & x \\\\\n", "x & x & x & x & x & x \\\\\n", "x & x & x & x & x & x \\\\\n", "x & x & x & x & x & x \n", "}}^Q \\;\\;\n", "\\overbrace{\\pmatrix{\n", "x & x & x & x \\\\ \n", "0 & x & x & x \\\\ \n", "0 & 0 & x & x \\\\\n", "0 & 0 & 0 & x \\\\\n", "0 & 0 & 0 & 0 \\\\\n", "0 & 0 & 0 & 0\n", "}}^R$$\n", "\n", "\n", "If $A$ is not fully ranked:\n", "* $Q$ remains full rank (as all orthogonal matrices)\n", "* $R$ have more 0 rows " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## QR algorithm for solving eigenvalues\n", "\n", "\n", "QR algorithm is one of the most important numerical methods of the 20th century link\n", "\n", "Start with $A_0 = A$, then iterate:\n", "\n", "* run a QR decomposition of $A_k$: $A_k = Q_kR_k$\n", "* set $A_{k+1} = R_kQ_k = Q_k^{-1}A_kQ_k$, $A_{k+1}$ therefore has the same eigen values as $A_k$\n", "* stop if $A_k$ is adequately upper triangular\n", "* the eigven values are the diagonal elements of $A_k$\n", "* guaranteed to converge if $A$ is real and symmetric\n", "\n", "This algorithm is unconditionally stable because only orthogonal transformations are used.\n", "\n", "* $A$ is often transformed using a similarity transformation to a near upper triangle before applying the QR algorithm. " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Example of QR algorithm\n", "\n", "Find the eigenvalues of the following matrix:" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "text/latex": [ "$$\\tiny A=\\left(\\begin{matrix}5.0 & 4.0 & -3.0 & 2.0\\\\4.0 & 4.0 & 2.0 & -1.0\\\\-3.0 & 2.0 & 3.0 & 0.0\\\\2.0 & -1.0 & 0.0 & -2.0\\end{matrix}\\right)$$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def qr_next(a) :\n", " q, r = np.linalg.qr(a)\n", " return r.dot(q)\n", "\n", "a = np.array([[5, 4, -3, 2], [4, 4, 2, -1], [-3, 2, 3, 0], [2, -1, 0, -2]])\n", "A = sp.MatrixSymbol('A', 4, 4)\n", "A1 = sp.MatrixSymbol('A_1', 4, 4)\n", "Q = sp.MatrixSymbol('Q_0', 4, 4)\n", "R = sp.MatrixSymbol('R_0', 4, 4)\n", "\n", "fmt.displayMath(fmt.joinMath('=', A, sp.Matrix(a)), pre=\"\\\\tiny \")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "QR decomposition of $A_0 = A$:" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "text/latex": [ "$$\\tiny Q=\\left(\\begin{matrix}-0.68 & -0.297 & -0.611 & 0.276\\\\-0.544 & -0.406 & 0.65 & -0.34\\\\0.408 & -0.75 & 0.136 & 0.502\\\\-0.272 & 0.43 & 0.431 & 0.745\\end{matrix}\\right)\\;,\\;\\;\\;R=\\left(\\begin{matrix}-7.35 & -3.81 & 2.18 & -0.272\\\\0 & -4.74 & -2.17 & -1.05\\\\0 & 0 & 3.54 & -2.73\\\\0 & 0 & 0 & -0.6\\end{matrix}\\right)$$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "q, r = np.linalg.qr(a)\n", "fmt.displayMath(fmt.joinMath('=', Q, sp.Matrix(q).evalf(3)), fmt.joinMath('=', R, sp.Matrix(r).evalf(3)), pre=\"\\\\tiny \")" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "$A$ at the start of the next iteration, and after 20 iterations:" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "text/latex": [ "$$\\tiny A_{1}=\\left(\\begin{matrix}8.04 & 1.98 & 2.19 & 0.163\\\\1.98 & 3.1 & -3.83 & -0.258\\\\2.19 & -3.83 & -0.695 & -0.258\\\\0.163 & -0.258 & -0.258 & -0.447\\end{matrix}\\right)\\;,\\;\\;\\;A_{20}=\\left(\\begin{matrix}8.829 & 0.0 & 0.0 & 0.0\\\\0.0 & 5.405 & 0.009 & 0.0\\\\0.0 & 0.009 & -3.829 & 0.0\\\\0.0 & 0.0 & 0.0 & -0.405\\end{matrix}\\right)$$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ii = 20\n", "d = np.copy(a)\n", "for i in range(ii) :\n", " d = qr_next(d)\n", " \n", "An = sp.MatrixSymbol('A_%d' % ii, 4, 4)\n", "fmt.displayMath(fmt.joinMath('=', A1, sp.Matrix(r.dot(q)).evalf(3)), fmt.joinMath('=', An, sp.Matrix(np.round(d, 3))), pre=\"\\\\tiny \")" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Householder transformation\n", "\n", "An orthogonal transformation representing reflection over a hyper plane, with a normal vector $\\hat {\\bs u}$ with unit L-2 norm:\n", "\n", "$$ H \\bs x = (I - {2\\bs{\\hat u \\hat u}^T}) \\bs x = \\bs x - 2 \\bs{\\hat u} (\\hat{\\bs u}^T \\bs x) $$\n", "\n", "Household transformation can reflect an arbitrary vector $\\bs x$ to $ \\Vert \\bs x \\Vert_2 \\hat{\\bs e}_1$, where $\\hat{\\bs e}_1$ can be any unit vector. \n", "\n", "
\n", "\n", "* It is obvious that: $\\bs{\\hat u}$ must be in the direction of $\\bs u = \\bs x - \\Vert \\bs x \\Vert_2 \\hat{\\bs e}_1$." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## QR decomposition using Householder\n", "\n", "We show how to use Householder transformation to perform QR decomposition of the $A$ in previous example.\n", "\n", "* The first step, zero out the lower triangle of the first column by a Householder transformation" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$$\\tiny A=\\left(\\begin{matrix}5.0 & 4.0 & -3.0 & 2.0\\\\4.0 & 4.0 & 2.0 & -1.0\\\\-3.0 & 2.0 & 3.0 & 0.0\\\\2.0 & -1.0 & 0.0 & -2.0\\end{matrix}\\right)\\;,\\;\\;\\;x=\\left(\\begin{matrix}5.0\\\\4.0\\\\-3.0\\\\2.0\\end{matrix}\\right)\\;,\\;\\;\\;\\Vert{x}\\Vert_2=7.348\\;,\\;\\;\\;e_{1}=\\left(\\begin{matrix}1\\\\0\\\\0\\\\0\\end{matrix}\\right)\\;,\\;\\;\\;u=\\left(\\begin{matrix}-2.35\\\\4.0\\\\-3.0\\\\2.0\\end{matrix}\\right)$$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$$ \\;$$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$$\\tiny H_{1}=\\left(\\begin{matrix}0.68 & 0.544 & -0.408 & 0.272\\\\0.544 & 0.073 & 0.695 & -0.464\\\\-0.408 & 0.695 & 0.478 & 0.348\\\\0.272 & -0.464 & 0.348 & 0.768\\end{matrix}\\right)\\;,\\;\\;\\;H_{1} A=\\left(\\begin{matrix}7.348 & 3.81 & -2.177 & 0.272\\\\0.0 & 4.323 & 0.599 & 1.943\\\\0.0 & 1.758 & 4.051 & -2.207\\\\0.0 & -0.838 & -0.701 & -0.529\\end{matrix}\\right)$$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def householder(x0, e=0) :\n", " n = len(x0)\n", " e1 = np.zeros(n-e)\n", " x = x0[e:]\n", " e1[0] = np.linalg.norm(x, 2)\n", " u = x - e1\n", " v = np.matrix(u/np.linalg.norm(u, 2))\n", " hs = np.eye(n-e) - 2*v.T*v\n", " h = np.eye(n)\n", " h[e:,e:] = hs\n", " return h\n", "\n", "x, u, e1, Q, R = sp.symbols(\"x, u, e_1, Q, R\")\n", "xn = sp.symbols(\"\\Vert{x}\\Vert_2\")\n", "b = a[:, 0]\n", "c = np.zeros(len(b))\n", "c[0] = np.linalg.norm(b, 2)\n", "\n", "fmt.displayMath(fmt.joinMath('=', A, sp.Matrix(np.round(a))), fmt.joinMath('=', x, sp.Matrix(a[:,0])), \n", " fmt.joinMath('=', xn, np.round(np.linalg.norm(b, 2), 3)),\n", " fmt.joinMath('=', e1, sp.Matrix([1, 0, 0, 0])),\n", " fmt.joinMath('=', u, sp.Matrix(a[:,0]-c).evalf(3)), pre=\"\\\\tiny \")\n", "\n", "fmt.displayMath(\"\\;\")\n", " \n", "h1 = householder(a[:, 0], 0)\n", "H1 = sp.MatrixSymbol('H_1', 4, 4)\n", "a1 = h1.dot(a)\n", "fmt.displayMath(fmt.joinMath('=', H1, sp.Matrix(np.round(h1, 3))), \n", " fmt.joinMath('=', H1*A, sp.Matrix(np.round(a1, 3))), pre=\"\\\\tiny \")" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "continue to zero out the lower triangle" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$$\\tiny H_{2}=\\left(\\begin{matrix}1.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.912 & 0.371 & -0.177\\\\0.0 & 0.371 & -0.557 & 0.743\\\\0.0 & -0.177 & 0.743 & 0.646\\end{matrix}\\right)\\;,\\;\\;\\;H_{2} H_{1} A=\\left(\\begin{matrix}7.348 & 3.81 & -2.177 & 0.272\\\\0.0 & 4.741 & 2.172 & 1.047\\\\0.0 & 0.0 & -2.556 & 1.558\\\\0.0 & 0.0 & 2.451 & -2.325\\end{matrix}\\right)$$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$$ \\;$$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$$\\tiny H_{3}=\\left(\\begin{matrix}1.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 1.0 & 0.0 & 0.0\\\\0.0 & 0.0 & -0.722 & 0.692\\\\0.0 & 0.0 & 0.692 & 0.722\\end{matrix}\\right)\\;,\\;\\;\\;H_{3} H_{2} H_{1} A=\\left(\\begin{matrix}7.348 & 3.81 & -2.177 & 0.272\\\\0.0 & 4.741 & 2.172 & 1.047\\\\0.0 & 0.0 & 3.542 & -2.733\\\\0.0 & 0.0 & 0.0 & -0.6\\end{matrix}\\right)$$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "h2 = householder(a1[:, 1], 1)\n", "H2 = sp.MatrixSymbol('H_2', 4, 4)\n", "a2 = h2.dot(a1)\n", "fmt.displayMath(fmt.joinMath('=', H2, sp.Matrix(np.round(h2, 3))), \n", " fmt.joinMath('=', H2*H1*A, sp.Matrix(np.round(a2, 3))), pre=\"\\\\tiny \")\n", "fmt.displayMath(\"\\;\")\n", "\n", "h3 = householder(a2[:, 2], 2)\n", "H3 = sp.MatrixSymbol('H_3', 4, 4)\n", "a3 = h3.dot(a2)\n", "fmt.displayMath(fmt.joinMath('=', H3, sp.Matrix(np.round(h3, 3))), \n", " fmt.joinMath('=', H3*H2*H1*A, sp.Matrix(np.round(a3, 3))), pre=\"\\\\tiny \")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "the final results are therefore $Q = (H_3H_2H_1)^T, R = Q^T A$:" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$$\\tiny Q=\\left(\\begin{matrix}0.68 & 0.297 & -0.611 & 0.276\\\\0.544 & 0.406 & 0.65 & -0.34\\\\-0.408 & 0.75 & 0.136 & 0.502\\\\0.272 & -0.43 & 0.431 & 0.746\\end{matrix}\\right)\\;,\\;\\;\\;R=\\left(\\begin{matrix}7.348 & 3.81 & -2.177 & 0.272\\\\0.0 & 4.741 & 2.172 & 1.047\\\\0.0 & 0.0 & 3.542 & -2.733\\\\0.0 & 0.0 & 0.0 & -0.6\\end{matrix}\\right)$$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "q = (h3.dot(h2).dot(h1)).T\n", "r = q.T.dot(a)\n", "np.round(q.dot(r), 4)\n", "\n", "fmt.displayMath(fmt.joinMath('=', Q, sp.Matrix(np.round(q, 3))), fmt.joinMath('=', R, sp.Matrix(np.round(r, 3))), pre=\"\\\\tiny \")" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## QR decomposition for least square\n", "\n", "$$ \\min_{\\bs {\\beta}} \\Vert X \\bs{\\beta - y} \\Vert_2$$\n", "\n", "given the QR decomposition of $X = QR$:\n", "\n", "$$ \\min_{\\bs {\\beta}} \\Vert X \\bs{\\beta - y} \\Vert_2 = \\min_{\\bs {\\beta}} \\Vert Q^T X \\bs \\beta - Q^T \\bs y \\Vert_2 = \\min_{\\bs {\\beta}} \\Vert R \\bs \\beta - \\bs y'\\Vert_2$$\n", "\n", "note that $R$ is right triangular, the vector whose norm is to be minimized looks like:\n", "\n", "$$\\scriptsize \\begin{pmatrix}\n", "r_{11} & r_{12} & \\cdots & r_{1n} \\\\\n", "0 & r_{22} & \\cdots & r_{2n} \\\\\n", "\\vdots & \\ddots & \\ddots & \\vdots \\\\\n", "0 & \\cdots\\ & 0 & r_{nn} \\\\\n", "\\hline\n", "0 & 0 & \\cdots & 0 \\\\\n", "\\vdots & \\vdots & \\ddots & \\vdots \\\\\n", "0 & 0 & \\cdots & 0 \n", "\\end{pmatrix} \n", "\\begin{pmatrix}\n", "\\beta_1 \\\\ \\beta_2 \\\\ \\vdots \\\\ \\beta_n\n", "\\end{pmatrix} -\n", "\\begin{pmatrix}\n", "y'_1 \\\\ y'_2 \\\\ \\vdots \\\\ y'_n \\\\ \\hline y'_{n+1} \\\\ \\vdots \\\\ y'_m\n", "\\end{pmatrix}\n", "$$\n", "\n", "therefore, the solution is the $\\bs \\beta$ that zero out the first $n$ elements of the vector." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Top 10 numerical algorithm in the 20th century\n", "\n", "By [SIAM](https://www.siam.org/pdf/news/637.pdf):\n", "1. 1946, Monte Carlo\n", "2. 1947, Simplex method for linear programming\n", "3. 1950, Subspace iteration for solving $A\\bs x = \\bs y$\n", "4. 1951, LU decomposition\n", "5. 1957, Fortran optimized compiler\n", "6. 1959-1961, QR decomposition/QR algorithm\n", "7. 1963, quicksort\n", "8. 1965, fast fourier transform\n", "9. 1977, integer relation detection algorithm\n", "10. 1987, fast multipole algorithm" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Why single out the 20th century?" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Original mobile computing devices\n", "\n", "\n", "Slide rule:\n", "\n", "\n", "\n", "Abacus:\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Principal Component Analysis\n", "\n", "Mahatma Gandhi: action expresses priorities.\n", "$\\renewcommand{bt}[1]{\\tilde{\\bs #1}}$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Principal component (PC)\n", "\n", "* Suppose $\\tilde {\\bs r}$ is a random vector, with expectation $\\bar{\\bs r} = \\mathbb{E}[\\tilde{\\bs r}]$ and covariance matrix $ V = \\mathbb{E}[(\\bt r - \\bar{\\bs r})(\\bt r - \\bar{\\bs r})^T] $\n", " * e.g.: returns of a set of equity names\n", "\n", "* PC is defined to be the direction $\\hat{\\bs u}$ onto which the projection $\\tilde {\\bs r}^T \\hat{\\bs u}$ has the maximum variance, \n", " * $\\hat{\\bs u}$ is a unit vector, i.e., $\\Vert \\hat{\\bs u} \\Vert_2 = \\sqrt{\\hat{\\bs u}^T\\hat{\\bs u}} = 1$" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY4AAAEWCAYAAABxMXBSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xt8XHWd//HXZyYJtFDaAKX3tJRLoS2LNqEN6K4FigsV\nRQrIzcXLYtf9gSu67qqLFkR3f/x2RfEHuFiRVdxS5V5EUCgUgZ8G2nQRGkq1xKZNr1BCKbY0yczn\n98c5MzlJZpKZ3CaZvJ+PR2BmzplzvjNJz+d8b5+vuTsiIiK5ihW6ACIiMrQocIiISF4UOEREJC8K\nHCIikhcFDhERyYsCh4iI5EWBQ9LM7DEz+0Qvj/GXZrahj8rztJld2RfHkvyY2bfM7A0z21Hossjg\no8BRxMxsk5ntN7N3zGynmf3YzA7Ntr+7n+PuP+nNOd39WXef0Ztj5MrMjjeze8ML3B4ze8nMvmhm\n8YE4f6GFv89v9cNxK4B/BGa6+/gM26vN7Akze9PMXg9/BxO6ON58M0uGf4fvmFmjmd1jZqd08Z5p\nZuaR9+w0s0fM7Kw8Pscnzey5XPeX3ClwFL8Pu/uhwBygCvhaxx0sMKT+FszsGOB5YAtwkruPBi4C\nKoFRhSxbEagAdrv7rizby4GlwDRgKrAX+K9ujrkt/DscBVQDrwLPmtmZ3bxvTPi+k4EngAfN7JO5\nfAjpR+6unyL9ATYBCyLP/wN4JHz8NPCvwP8D9gPHhq9dGW7/JPAc8G2gCfgTcE7kWIcTXCy2hdsf\nCl+fDzR2KMNXgVfC/f4LODjcVg48ArwebnsEmBx5b7o8GT7bfwO/7ObzfwSoA94Kj3Vih3L9E/AS\n8GfgR8A44DGCC+FKoDzcdxrgwOLw824HvhQ51kHAzeG2beHjg6LfB8Ed/K7wvZ/q8N5vA5uBncDt\nwIju3huWpQVoBt4BfhG+/mVga/gZNgBnZvluRgN3hd99A8ENRQxYEP49JMPj/jiHv7M5wN4utrf7\nm4i8fiuwJst7Ut95SYfXvxR+T7Hw+VeA18LP+wpwfvj6icC7QCL8HG+Fr38I+B/gbYKbjusL/e90\nKP4UvAD66cdfbiRwAFPCi+g3w+dPhxerWUAJUErnwNECfAaIA38fXhQt3P5L4OcEF/9S4APh6+0u\nEmEZ1oXnP5wgUH0r3HYEcAEwkuBO9F7CABQpY7bAsYPIBTjD9uMJAsJZYfn+GdgIlEXKVUMQLCYR\nXJjXAu8FDgaeAq4L901dxJYDhwAnEVxwU9/tDeGxjgLGAr+NfM/zgdZwn1JgIbCPtqD0XeDh8LsZ\nBfwC+N85vvfHqe8yfD4jvBhOjJT7mCzfz13AivCc04A/AH+b6XeYw9/ZNUBNF9szHg84gyBAHZJh\nW+o77xg4poevnxg+vwiYSBD0Lg5/5xMif8PPZSjLSeH+f0EQhD5a6H+rQ+2n4AXQTz/+coOL4zsE\nd9wNwPdpu5t9Grihw/5P0z5wbIxsGxn+gx0PTAj/wZdnOGe7i0RYhs9Gni8EXstS3vcATZnKk2Hf\nFuDsLj7714F7Is9jBHfi8yPlujyy/X7gPyPPP0dbLSp1ETshsv3fgR+Fj18DFka2/TWwKfJ97I9e\nAAmCVDVg4YXumMi2U4E/dffe8PGPaR84jg23LwBKu/hu4gQ1lZmR1/4OeDrT77Cbv7G/AN4E/rKL\nfTIeDzgh/F4nZdiW+s47Bo6Dw9ffl+VcLwLnRf6Gn+um/DcD3+2vf4PF+lOCFLuPuvvKLNu2dPPe\n9Igad99nZgCHEtwdv+nuTTmWIXqeBoI7RMxsJMEd99kENReAUWYWd/dEN8fcTRDAspkYnitV/qSZ\nbSGoXaTsjDzen+F5x4EEHT/HSZnOReQzpsrq7q2R5/vCY48lCMi14XcLQTCJ5/DeTtx9o5ldA1wP\nzDKzXwNfdPdtHXY9kqAG07HMk8iDmR1L0LT3eXd/NnytgqDJKFWmrIMxwvM5wY1NrlJlfDM83xXA\nFwkCDQTfzZFdlHkecCMwGygjaCq8N4/zC+ocH+56mhp5C3C4mY3Jcf8pkccVBE1eELTdzwDmufth\nwF+FrxvdW0nQzJXNNoKO2+CAwZV5CkGto6eyfY525+qwrStvEASoWe4+JvwZ3c3FNqrT78/d73b3\n94flceD/ZDlvS4Yy5/zdmNlUgt/BN939p5Hzb3b3Q1M/3RzmfGCtu/851/OG79kFbAjL8EPgauAI\ndx9D0Cya+vvJ9Pd9N0HT4BQPBlTcTm5/bxKhwCF5c/ftBHea3zezcjMrNbO/6uItV5nZZDM7HLiW\noG8Egvb1/cBb4bbr8ijGdcBpZvYfZjYegjtgM/vvMKDdA3zIzM40s1KCIHWAoP+hp75uZiPNbBbw\nqcjnWA58zczGmtmRwBKCzvsuuXuS4ML3XTM7KvwMk8zsr3Msz06CNn/C984wszPM7CCCjuFUJ3fH\n8yYIvp9/NbNR4QX4i7mUOVVGgj6gW9399hzLmnqvhZ/xOuBK4F9yfN84M7ua4Pf+1fC7O4QgOLwe\n7vMpgppEyk5gspmVRV4bRVBbftfM5gKX5VN+CShwSE/9DcFd66sEd4DXdLHv3cDjQD1Bf0Bq7sHN\nwAiCO+Aa4Fe5ntzdXyPoD5gG1JnZHoJ+ijUEI3w2AB8HbgmP/2GCocnNuZ4jg98QdLA/CXzb3R8P\nX/9WeN6XgJcJOtlznV/x5fCYNWb2NsFdfK7zYH4EzDSzt8zsIYJmlxsJPu8Ogs76r2Z57+cI+lfq\nCUbP3Q3cmeN5ryQIWNdH5lm80817Job7vAOsJmjmmx/5DrN5y8z+TPC9LgQucvc7Adz9FeAm4HcE\nQeIkgsEXKU8RDAjZYWZvhK/9L+AGM9tLEODvyekTSzupETIi/cLMNhF0cGfrZxn0zGwawXDk0g79\nDSLDkmocIiKSl4IFDjObYmarzOwVM6szs89n2MfM7P+a2cYwncScQpRVRETaFKypKsxtM8Hd15rZ\nKKCWYOjoK5F9FhK0xS4E5gHfc/d5BSmwiIgABaxxuPt2d18bPt4LrKfzOPLzgLs8UAOM6SqZmoiI\n9L9BMQEw7Hx8L0HSuqhJtJ901Ri+tj3DMRYT5O/hkEMOqTzhhBP6o6giIkWptrb2DXcfm8u+BQ8c\nYZrv+4Fr3P3tnh7H3ZcSZOykqqrK16xZ00clFBEpfmbW0P1egYKOqgonZt0PLHP3BzLsspX2s3Un\n07uZvyIi0kuFHFVlBBOY1rv7d7Ls9jBwRTi6qhrYE85aFhGRAilkU9X7CGYfv2xmL4av/QtBzhzC\nVAaPEoyo2kiQ3O1TBSiniIhEFCxwuPtzdJNczIOxwlcNTIlERCQXmjkuIiJ5UeAQEZG8KHCIiEhe\nFDhERCQvChwiIpIXBQ4REcmLAoeIiORFgUNERPKiwCEiInlR4BARkbwocIiISF4UOEREJC8KHCIi\nkhcFDhERyYsCh4iI5EWBQ0RE8qLAISIieVHgEBGRvBQ0cJjZnWa2y8zWZdk+38z2mNmL4c+SgS6j\niIi0V7A1x0M/Bm4F7upin2fd/dyBKY6IiHSnoDUOd38GeLOQZRARkfwMhT6O08zsJTN7zMxmFbow\nIiLDXaGbqrqzFqhw93fMbCHwEHBcph3NbDGwGKCiomLgSigiMswM6hqHu7/t7u+Ejx8FSs3syCz7\nLnX3KnevGjt27ICWU0RkOBnUgcPMxpuZhY/nEpR3d2FLJSIyvBW0qcrMlgPzgSPNrBG4DigFcPfb\ngQuBvzezVmA/cIm7e4GKKyIiFDhwuPul3Wy/lWC4roiIDBKDuqlKRAa32oYmblu1kdqGpkIXRQbQ\nYB9VJSKDVG1DE5ffUUNza5KykhjLrqymcmp5oYslA0A1DhHpkZr63TS3Jkk6tLQmqanvw3EriQQ8\n9BDs2dN3x5Q+o8AhIj1SPf0IykpixA1KS2JUTz+ibw782GMwbhycfz48+WTfHFP6lBXjIKWqqipf\ns2ZNoYshUvRqG5qoqd9N9fQj+qaZqrkZDjooeDxtGrz2GsR0fzsQzKzW3aty2Vd9HCLSY5VTy/uu\nX2P/fqisDB7PnAl33qmgMUjptyIihbd3Lxx3HKxfD9ddB3V1MG9eoUslWajGISKF1dQEU6cGweM7\n34EvfKHQJZJuqMYhIoWzaxccfji1oyZx278vp3bRJwtdIsmBAoeIFMbWrTBuHLUTT+DyK/6Dm94c\nxeV31Ggy4RCgwCEiA6++HiZPBqDm69+mGeuf+SDSLxQ4RGRgrV8PxxwDQO0DT7B1XAUl8X6YDyL9\nRp3jIjJwXnwR3vteAGp/+QyX/+4dmls3UxIzLplbwaI5QS3ktlUb+25uiPQ5BQ4RGRi/+x2cdlrw\n+MUXqXnzEJpbN5B0SCSdiWNGACj/1RCgpioR6X9PPtkWNNavh5NPzpiypF/zX0mfUY1DRPrXI4/A\nhz8cPK6vh6OPBoJZ58uurO6UsqSsJEZLa1L9HYOYclWJSP/52c/g0nC9tsZGmDSp27f0ef4ryYly\nVYlIr/TJxfuHP4TFi4N8Uzt2wNixOb2tT/NfSb9Q4BCRdvpkgaabboIvfQlGj4ZNm2DMmH4pqxRG\nQTvHzexOM9tlZuuybDcz+79mttHMXjKzOQNdRpHhJtcO6qzLxi5ZEgSNKVOC5ikFjaJT6BrHj4Fb\ngbuybD8HOC78mQf8Z/h/EeknqdFOXXVQZ6yVVIyBf/gHuPVWmDUL1qyBgw8uwCeQ/lbQwOHuz5jZ\ntC52OQ+4y4Me/BozG2NmE9x9+4AUUGQYyjbaCdr6Pra+tb99reS1N6i89nOwbFkw7Pbpp6G0tHAf\nQvpVoWsc3ZkEbIk8bwxf6xQ4zGwxsBigoqJiQAonUqwydVBHaxkl8RglMSOR9KBW8p83wn3L4EMf\nghUrIB4vUMllIAz2wJEzd18KLIVgOG6BiyNSdKJ9H4lEkkvmVjBxVBnVNy2h8lf3wOWXw113adW+\nYWCw/4a3AlMizyeHr4nIAIvO9I7HY3giQfX1XwiCxtVXw09/qqAxTAz23/LDwBXh6KpqYI/6N0QK\nI9X3ccncCnDnZy9s5vJ5V1J77f+BW26hdvNbmUdZSdEpaFOVmS0H5gNHmlkjcB1QCuDutwOPAguB\njcA+4FOFKamIQBA8al7ZSmtLK8lYnJZYjJozF0FfzP2QIaPQo6ou7Wa7A1cNUHFEhG5mjb/+OtWL\nL6bsY9+kJRajtDSeNTmhAkfxKprOcRHpvS5njW/dCpMnUwksm9lKzfS/yJqcsHxkmdbUKGIKHCKS\nlrXm8Kc/wfTpwU6/+AWV555LZeR90bkf5SPLuOGROjVbFbHB3jkuIh1kTfXRB8csH1nWaY0MXn21\nLWisXAnnnpvxGJVTy7nq9GNp2tesNTWKnGocIkNItqak3mSz7XjMJefOomlfc3Cspob0Uq/89rdw\n6qndHi+XlCUytClwiAwh2RIQ9mZEU8djNu1r5qrTj4WamrZAsXZtWwDJwQVzJuPh/9VMVXwUOESG\nkEx3870d0ZSxhrBqFZxxRrDDK6/AiSem9++qdtOx9nLBnMl98rllcFHgEBlC+mq51Y4X/3bHXPfb\ntn6M115r69+g+7U6NCx3eFDgEBliOiYg7CqbbSZ3P7+ZJSvWkUg6B5W2Xfwrp5bDPffAxRcHO2ZY\n6rW7wKD+jeFBgUOkCESDSXdNSUtWrKM1GeQBbW6JXPx/9CO48kowC5Z6PeqoTufpLjDkG8RkaFLg\nECkiuTQlJb0teXQsZsHF/7vfhS9+EUaNgoYGKM98wc8lMGjN8OKnwCEyxKVqGOUjy3hs3facmpKa\nW5PEzLjhvNlU/tf34BvfgMmTg47wUaO6PJ8CgyhwiAxhqRrGgZYk0UVoYtEJfJF9a+p3t83TOPpw\nKr9zPdxySzBqqrYWRowY8M8gQ48Ch8gQdv/axk5BA+CkSaNZ8uFZ7fo92jVh/e08KpdcE6yhceqp\nwVKvZWUDXn4ZmpRyRGSIqm1o4r7axk5BA2DWpNFdD5P9xs3UPrma2664ltplDytoSF5U4xAZYlJN\nTtve2k9rIgmAhf9xh5JYMGM7Oroq2rdhiQR76zdz+eU30hwvoezO1UpEKHlR4BAZQqJNTiUxoyQe\nI5FIEo/HSLqTSDixWIwNO/Z2ylC75K+PZ8nD60hg3FF9AQmL4XlO1OtNTiwpHgocIkNItMkpkXTO\nPPEo9rckGFEaZ+X6nThBIPj56s3tm6Ze3c62pT8hcez7cYuRNIib4e55zTbXKn8CChwiQ0r5yDJi\nZoATj8d4esMuWpNOScyIx4xkwnHg5cY9xOKGJZ3SeIzy66/le++7AjcDoCQe4/oPR7Lg5hAAlE5E\nUgraOW5mZ5vZBjPbaGZfybB9vpntMbMXw58lhSinyGBQ29DEDY/UkUg6ZsbYQ8toTjhJh9aEM3PC\nYel9kwT9HRefNJZld/0TTZTSWlIKGAZcWDmZy+ZVcNXpx6bTsne3xkcqaMXoPNRXhpeC1TjMLA7c\nBpwFNAKrzexhd3+lw67PunvmlWNEhpHUHb8TNFNtfevd9LYkcOr0I6jb9nY6nYgnnUm3fJvKLXWw\nZAllDfF0qpBo1tpcmqBSQSvpTixmLDl3lmobw1ghaxxzgY3uXu/uzcDPgPMKWB6RQa16+hGUxCzr\n9lEjSrnhvNmUxIJaQVnLAao3vwwrVlB55cdYcu4sTjv2yE4X/WxrfERF93F3mvY198dHlCGikH0c\nk4AtkeeNwLwM+51mZi8BW4EvuXtdpoOZ2WJgMUBFRUUfF1Wkf+UyWqlyajkXVU1h2fObM27/zYZd\nfPmcE/n5OROp+ed/o3rzy1T+5BZYsCBdY2huTbJ605sA6f6NrhIXRtOZKOutpAz2zvG1QIW7v2Nm\nC4GHgOMy7ejuS4GlAFVVVZnmRIkMSvmMVpo1cXTW47ywqYlLf/BbLqx9lAs2v0zlvT+C004D2tcY\nmluTLFmxjqR7+nyZEhfWNjRx6Q9r0sEi3850KV6FDBxbgSmR55PD19Lc/e3I40fN7PtmdqS7vzFA\nZRTpd92NVorWRrprImpOOMtPPpsHqhaybNKJVIavR2sVZkYiGYy+ag7Pl+okj3pgbSPNrcEEw+bW\nJHXb9vCv55/Ulx9dhqhCBo7VwHFmdjRBwLgEuCy6g5mNB3a6u5vZXII+mc4NsCJDRKYmqY5NReUj\ny7ht1cZ0c1C0NrLk3FnEY8GFv5NkEszwWIyWJO0CUDQd+t79Ldz+TH3wFg9GS2XS8QyqxktKwQKH\nu7ea2dXAr4E4cKe715nZZ8PttwMXAn9vZq3AfuASd9ffrwxJ2Zqkohf18pFl7WZ8/9VxY9NJDFta\nkzTta+ab583m2gdfbn8h9yQn7/gj6yfPIOGZh8umznXbqo0EM0GCO7FstZgL5kzmvjVbaEk4pXHT\n+uGSVtA+Dnd/FHi0w2u3Rx7fCtw60OUS6Q9dNUlFL+rpvoiWJE++uisdIOLhokup93ztoZeDRZkc\nyhKtXHzZGdTtj+MEF/1s/RDV04/goNLuO7orp5azfPGpSjEinQz2znGRohGd9Z3pgl3b0MS2t/ZT\nEjZFpfoiIEhieFHVlPTF+7J5Fcyo/Q33r6jBgFGf+TRLntmWXke8Y5LDnq5RrkWbJBMFDpEBEJ31\nHc8wga5d8sJ4jIvnTmHfgVYeenEbEDQrtRtRdfPNVH7hC1Qeeih3r3iBrz1RT6rbo7klyf1rG9Od\n29FmsWgwuer0Y7OWVbUM6YoCh8gAiM76zjSBrl3ywkQSAx55aXt6uxH0RdQ2NFFzx71U3/kDNvzl\nx/j5hVfx8uP1JKMHM3hj74GMk/pymSGuRIbSHQUOkT6U7W69q0l2HbfH4zHWbd3TbuRUPGaUjyjl\n8u8/S7OPJ3bZjbTGS2Db3k5lcIen//B6uskrdb5ckhQqkaHkQoFDpI90dbfeXb9CavsPfvMaT67f\nyUuNe3CCmkY8ZtzwkVmsW7aCAyOOxmOx9jWMUCxcyMkJai2XzK1g4pgR7c6XbdhvtqHBmiEumShw\niPSR7u7WM3U0R2soAE+9uotEZJzt6JGlXFI5iRk3/yvXTz4nnRY9HoNEJHqcNXMcp884ihseqUtf\n9Bd1GFnV1bDfTEOD1cch2ShwiPSRfO/W735+M19/6GUSDmVxY/6Mo9KZbVPe2tfC7c/8ifoDY4Om\nKQvSol9ySgWzJo7msXXbOWf2BC6bF+RnmzF+VJcX/UzDfrMNDRbJRoFDpIc69md0vKNPdUinLsI3\nPrqeX9Xt4OxZ4zlr1ni+9uDL6San5oTz+Cs7s55r7THvJRaPgzsl8RhOECRSASMl14u+mqSkN6wY\nJ2JXVVX5mjVrCl0MKWJd9Wdk2vZE3Y50mg+AE8ePYv2Ozh3bEPRrnFJxGC807Gl7gVQTlWEEizel\nUpD0NPGght1KlJnVuntVLvuqxiHSA131Z2Ta9qu6He3ev6VpX5fH/+iym3nzhDPZOLaCVNAASKYW\naQLebUnytYdexsMUI8s/k9/QWTVJSU8VdOlYkcGsq+VUU009ceucFyq6LR4ztr21n/dMGdPu/XMq\nyikryfzPz5NJrj/14xw+aRzRoGFASdyILuWUDEdRNbcmeWBtY87lF+kNNVWJZJDrcqrZmnpqG5q4\nf20j99U20poIZoNPOOxgGt4MahplJTE+cPxYdr39Lr9v3NP2RnewVArC9qv9zZ1Wzotb3qIl4Rkz\n1Z48eTRLPjwrPUNcE/kkH/k0VanGIZJBLsupVk4tz7iORWrbpDEjaE20LZ6UChoQPF/5yk7Wb3+b\nkngYINI3cZ2DBsCuvQdoTWYOGgAvNe7h8jtq0gGtu/KL9JQCh0gGXTVF5XuMbKuEO5BIOh87dhSX\n/c+jfPAPvyNuRqagAfCeKWMoK4ml/9EGkwPb9naCPFWpWlBvyy+SjTrHRTLoaiLc3c9v7jR/IpsL\n5kzm9b0HeHrDriDBYTzG/OPHpp+XxowLvraYym2v8i/ff5xEQ+a1MQz4Vd0Olpw7i8fWbef/bXyD\npAdrN0XFIqnXNZFP+osCh0gWmUYd3f38Zv7lwZcBePaPwQrGmYJHxz6G6z8yu92w2dqGJmqe+T3V\nX/l7Kre9CrW1WEMpNGxud5xobSK1kNM1C45n9aY303mtcKc16cTMuOG82ZrIJ/1OgUMklMu8hp+v\n3tzp+Yzxo7h/bSMGLApXybt55R/a9THUbdvDxDEj0u+r3PQSlVecTu3EE7ht+XOUtxwJ7KEkbrRG\nco7E40bMjESibaJex9oEoJqFDCiNqhIh93Tii+9a026G96QxB7Nz74H0xT5aQ0g9Ly2JkUwmSSSh\nNG4sPwkqL/0QtRNP4PJP3sSBcJSUETQ1HX3kIdS//g5Jh7jBxXMrmBRJVpjvxD1N9JNcDJkJgGZ2\nNvA9gjXH73D3Gztst3D7QmAf8El3XzvgBZWil2s68b/7wDGs2rCLljBQbH3r3XbbM92GHXZwCW+8\nE/RdNCeS3P9fj1EJ3H/jnbxb92a79yaSzp9ef4eSeCxdy4guAxsNcKmmqa76WTQsV/pDwQKHmcWB\n24CzgEZgtZk97O6vRHY7Bzgu/JkH/Gf4f5E+lU/upouqpvDCn95k4653uj2uQzpopF54Y+QY7n78\nZX72VEPG9yQczjh+LO+ZMiZdS0h1yI8ojacDXNKdJSvWMWP8qKzBQOtrSH/oNnCY2eeA/3b3vp5+\nOhfY6O714Xl+BpwHRAPHecBdHrSn1ZjZGDOb4O7bOx9OJH/RZpzuRiFF797Nsg2y7d6qY0/hyaca\nSHbRSvybP7zOZz9wTDpopDrkIVh3IyWZ9E7BIPqZlMxQ+kMuNY5xBLWBtcCdwK+9bzpGJgFbIs8b\n6VybyLTPJKBT4DCzxcBigIqKrodIikDmZpyu1uGOdnjHCNYOT4Yr7M0/fmyX2W3TzGiNxfFEEmLZ\np1ElEm21g8fWtf9znz72UDa98WeSSaestH0wyPSZNCxX+lq3gcPdv2ZmXwc+CHwKuNXM7gF+5O6v\n9XcBc+XuS4GlEHSOF7g4MgTk2oyTuhgfaAnWDI9Z58y0P/3dppzPG4vFiLc000wcYvHO22mbtFfb\n0MSBlkS77Z9+39FZ193I9JmyzW4X6amcZo6HNYwd4U8rUA7cZ2b/3otzbwWmRJ5PDl/Ldx+RHulq\ndnU0QWDqYpy6Gzlq1EEsOXcWM8aPAuCJuh089OK2jOcwg4++Z2K71z588kSWV4/k5O1/jKQZgUnl\nI/jgzHFcMq+CZVdWA3DpD2t4YVPQSmzAZ/9qeped4ZoxLgMhlz6OzwNXAG8AdwD/5O4tZhYD/gj8\ncw/PvRo4zsyOJggGlwCXddjnYeDqsP9jHrBH/RvSV7LNru7Y3LPk3FmUxIzmcCTVjrcPcN3D6zAI\nckdlqd/GDb750ZNo2td+NvgjL23nb/7uVJZgXFrzZ1piceIlcV7fe4CVb+2kJB7czxlBrSFq1IjS\nXq1tLtIXcunjOBxY5O7thoC4e9LMzu3pid291cyuBn5NMBz3TnevM7PPhttvBx4lGIq7kWA47qd6\nej6RTDLNrn5gbWO6WSo1W/uiqikse75t8l9LwknlsM3Ggbpte5g1cTQlMUsvC5v0oEP7qgs/yHIe\np+amO9h22FiWz1mYToi4/PnNlMaNkrilh/6WxoN0Ij1Z21ykL+XSx3FdF9vW9+bk7v4oQXCIvnZ7\n5LEDV/XmHCIpuUyEq21o4t41W9IBIR5va+65d82WdK2jNG44tJvl3VHSYdnzmzm4NMaV7z+aO577\nE0l3yiJNSJUXfpDKMTFqP/E57p99JgdKD8Jpm9Nx8dyKdICKzufQSCkpJKUckWGhu6VeUwHlgbWN\n6Tt8Ay6sbLtYL198ajq1yKyJo7n+4XU5nbulNcmoEaXccN7sdHJEgNtWbQyC2IIFVP7kFpZ94nM8\nMPsM7q1aGMwyzzD5L/UeNUdJISlwyLCQrXknGlBK4kFqkFQdInXhTok2Ad22amM6wHQlNUKqfGQZ\nNzxSR3NrkufrdwfDchORILZgAZV33UrlggUsWvcUNbf+lOo5x3S5jnm2ocNRSjci/UGBQ4aFbBPh\nOgaUlI7W2cM6AAARiUlEQVS1DWh/Ed67v6XL/g0Ihu1eOreCRXMmtz9Pwkktx3SgJVjytXJqOZx5\nJqxcGQSRRadAQwPBAMaezQBXuhHpLwocMixkG20UDSipFOWJcFJftLbRsWaSSCSznSottR54x34J\nM0jFKCfIsLsobJKqPXYONT/8FdXXXUPl1KlB8Kio6NEMcKUbkf6iwCHDRuqimVpGNdX01F2K8o6z\nxjsOkU3JNMpq48696XMtu7Ka+9c2Urd1T7t1xhPJtjKlawif+DbLfvKlIHhs2kTl1Kl592so3Yj0\nF6VVl2GjJ003dz+/mSUr1qWH0qbSpKcWT0rpKu/Uv51/UnrNjvtqG2mJTCYEKIsbyxefSk39bm56\nfEM6nfoXjynhqs+cHey0aRNMndqjz6w+DsnFkEmrLjKQ8m26qW1oahc0UuYfP5bpRx5C3fa3GVEa\nZ+X6thxVHdfjgKApasPOvem5Iel9DRacOC6dzBA6DLM9ay489RSccQZMm9aj4KE5HdIfFDhk2Cgf\nWUbMDNwzphipqd9N+ciydP6pmvrdJDvUyB3SyQyNoAM8HjMsXE/8A8ePZc++5nSaEIBxhx3My1v3\ndGrGMof3TBnT9azvqaf3OniI9DUFDhkWahuauOGROpLuxGLGknNnpYfjZmpCOrg0SDVSVhLrVFNI\ncYK1M0g6l8ytYNbE0ekht6VxY+aEw7j4lApmjB/FM398Pd0x7hieIbMtZKkhnH46rFoV/H/aNPju\nd+Fzn4N45wSJIgNBgUOGhWgaEcNp2tfcKettVHNLkGokVQMoH1nGum17uK+2kdZEsl2fRsLh9b0H\naNrXnG4Ks6TzwVnj0wkJe71G+Pz5bTWPL3wBjjwSPv7xXn8vIj2hwCFFL1sakY5Zb6PMSF/Yo6Or\nIGiiGnVQCUufrU8HkMdf2cn0Iw/JOIopUwd1j/odUjWOTZvgq1+FSy9VrUMKQoFDikJXo4dq6ne3\nGxUVndhXEo/RnGF47fgxIzodv+OIrN/V7243rLZu+9ud+ij6fBJefX3QbPXAA5BMKnBIQeS0HofI\nYJa6ON/0+AYuv6MmXTNIia5RcVBp28S+yqnlXFg5OT0SKmpr0/52x8o0IuviU9qvizFrwmFUTi1v\nt3BSpvf1ilnQXHXrrVBa2rtjifSQahwy5OWSZjzaVxGdAHjBnMk8sLaR5pYkHesdzS1JbvhFHbMn\njWbWxNGdmqEqp5azefefWfpsPe5w52838faB1nRgSp1Pk/Ck2ChwyJCXywzpVCDJ1GwUDSp12/Zw\n75ottCacJPD7xmCWd1lJjE+fNo267W9zzuwJ6eONGhHc9Ttt62jcV9uYniDYcYlZzamQYqDAIUNe\nrqveZauZdBwCu2jOZG5e+Qee++Mb6Y7z5tZkej2N1ZveZMb4UVROLU8HrdTIrNTiT0QeN+1rzimT\nrchQocAhRSGXGdLV04+gJBasqBePGeUjy9LrWwDtht2OKI0Tj7UlI4zHjKR7xqCz7MpqHljbyL1r\ntpAIJwKmkiXGY8a2t/ZT29Ck2oYUDQUOGV4sSEXowPUPB+lESmKWXh8jOj8jHjPOmnlUOnnh0xt2\n4QlvtyogtAWtVPr01LbUxMLlL2zm/rWNSmsuRaMggcPMDgd+DkwDNgEfc/emDPttAvYCCaA11wRc\nIinRYbo19btpTSTbLfnqtF8fIyqRDNYVf+aPr0cmDwJZEoN2rPWkzpdp8SglHpShrFA1jq8AT7r7\njWb2lfD5l7Pse7q7vzFwRZNi0XEORSqFSHTtjdakd5nZdufb77abJJhaCzyXtS0yddprcSUpBoUK\nHOcB88PHPwGeJnvgEOmRjp3hddv2sGhOMG9jUThkNtoJbsAp04IaQdKhNG5cfEoFG3bWpYfrxoyc\nh9Vm6rS/bdVGLa4kQ16hAsc4d98ePt4BjMuynwMrzSwB/MDdl2Y7oJktBhYDVFRUZNtNhpHq6Uek\nZ4anVtpLepC6PLXi3jULjmf1pjfTtYIvn3Mi0D6X1Izxozplzs10sc+WWiS6rxZXkmLQb4HDzFYC\n4zNsujb6xN3dzLI1Frzf3bea2VHAE2b2qrs/k2nHMKgshWAhp14UXYpIMhkMi0p622JLmUZFZepz\niE4UTD3vKmjk0gSV69BhkcGs3wKHuy/Its3MdprZBHffbmYTgF1ZjrE1/P8uM3sQmAtkDBwyPOTT\nsVxTv5uOS4OnVvCrnn4Edz+/mcfWbeec2RPazbPI1DeSSpeeCgqp46fKkc8iUVpcSYa6QjVVPQx8\nArgx/P+KjjuY2SFAzN33ho8/CNwwoKWUQSXfjuXq6UdQGjeawxFUpXHjoqopXDBnMk/U7eD2Z+oB\nePaPwdiLVAr0aBBobk2y9JnX2gWFB9Y2cv/axnblUBOUDCeFChw3AveY2d8CDcDHAMxsInCHuy8k\n6Pd40MxS5bzb3X9VoPLKIJDv0q8AF1VNYdfeAxw16qB0v0ZtQxNLn61vt9/PV29OB45U30hLeK5N\nu/cBbR3jqfQi0XJcdfqxaoKSYaMggcPddwNnZnh9G7AwfFwPnDzARZNBLJ+7+tqGJi79YU163+Wf\nqW7XV9FxCG7dtj3tZ3d7+5kdMeB9xx7JNQuOB4KFoTqWQ01QMlxo5rgMGbl2LNc2NPHl+19Kr7PR\nHDYvpfavnn4EB5fGeLelrQPEnXQNJrp+BwT9ImWlMa5ZcHz6GKpdyHCmwCFDSscV+R5Y24gDF0Sa\noS79YU2nxZm8wzGWXVmdTgmSSLSvOURrNvF4jAsrJ6ePn6kcIsONAocMeplGUnUMEPet2cL1H5nN\nY+u2dwoaMUivkZGSuvBfEOaX6rhOR1c1CqUMkeFOgUMGtWwjqWrqd6fTlwM0J5wlK9aRzJBHasHM\ncV0OjYXM63T0Zr6GSDHT0rEyqGVberV6+hGUlrT9+caNdNpzI0yCSzBL/O8+cEyPztHbfUWKlWoc\nMqhlG0lVObWc5Z+pTvdxzJ44mhseqUvvl8+qe/mM1tJ8DREwz5IieiirqqryNWvWFLoY0kdy7VPo\nTd9DPu9VH4cUIzOrzXXpCgUOERHJK3Coj0NERPKiPg4ZNFJNQNnSl6uJSGRwUOCQQSE1zDW1RGvM\naJeJNjVZrzXRs2GwCjoifUeBQwaF1DDXVI9bx0y0qYAC+a+cp7kXIn1LfRwy4Gobmrht1UZqG5rS\nr6WGuab+IDtmok0Fjeh6GrnS3AuRvqUahwyobHf/0TQf0T4OaMtEG48F62ks6pA3qrtmKM29EOlb\nChwyoLpaUyPbEq3d5Y3qrhlKy7WK9C0FDhlQXd39d1UbyXaxz3VxJ2WzFek7ChwyoLq6++/JCn9q\nhhIZeAocMuCy3f33JAioGUpk4BUk5YiZXQRcD5wIzHX3jPlBzOxs4HtAnGAt8htzOb5Sjgxdmm8h\nUhhDIeXIOmAR8Ey2HcwsDtwGnAPMBC41s5kDUzwplMqp5Vx1+rEAnYbsisjgUJCmKndfD2CpRRMy\nmwtsdPf6cN+fAecBr/R7AWXAZFvdTxP2RAavwdzHMQnYEnneCMzLtrOZLQYWA1RUVPRvyaRPdLW6\nX76d5CIycPqtqcrMVprZugw/5/XH+dx9qbtXuXvV2LFj++MU0se6Wt2vrCRG3PKfJS4i/a/fahzu\nvqCXh9gKTIk8nxy+JkWiq9X9NFJKZPAazE1Vq4HjzOxogoBxCXBZYYskfSlbgIimV0/VQhQ8RAaP\nggQOMzsfuAUYC/zSzF509782s4kEw24XunurmV0N/JpgOO6d7l5XiPJK38jUEd5xTkdX6dUVPEQG\nh0KNqnoQeDDD69uAhZHnjwKPDmDRpJ/kOlIqW3p1dZCLDB5Kqy4DItfU5tnSq6uDXGTwGMx9HFJE\nck0nki29umobIoNHQVKO9DelHBmclE5EZPDKJ+WIahwyYJTaXKQ4qI9DRETyosAhIiJ5UeAQEZG8\nKHCIiEheFDhERCQvChwiIpIXBQ4REcmLAoeIiORFgUNERPKiwCEiInlR4BARkbwocIiISF4UOERE\nJC8KHCIikpeCBA4zu8jM6swsaWZZ87+b2SYze9nMXjQzLbAhIjIIFGo9jnXAIuAHOex7uru/0c/l\nERGRHBUkcLj7egAzK8TpRUSkFwZ7H4cDK82s1swWF7owIiLSjzUOM1sJjM+w6Vp3X5HjYd7v7lvN\n7CjgCTN71d2fyXK+xcBigIqKih6VWUREutdvgcPdF/TBMbaG/99lZg8Cc4GMgcPdlwJLAaqqqry3\n5xYRkcwGbVOVmR1iZqNSj4EPEnSqi4hIARVqOO75ZtYInAr80sx+Hb4+0cweDXcbBzxnZr8HXgB+\n6e6/KkR5RUSkTaFGVT0IPJjh9W3AwvBxPXDyABdNRES6MWibqkREZHBS4BARkbwocIiISF4UOERE\nJC8KHCIikhcFDhERyYsCh4iI5EWBQ0RE8qLAISIieVHgEBGRvChwiIhIXhQ4REQkLwocIiKSFwUO\nERHJiwKHiIjkRYFDRETyosAhIiJ5UeAQEZG8KHCIiEheChI4zOw/zOxVM3vJzB40szFZ9jvbzDaY\n2UYz+8pAl1NERDorVI3jCWC2u/8F8Afgqx13MLM4cBtwDjATuNTMZg5oKUVEpJOCBA53f9zdW8On\nNcDkDLvNBTa6e727NwM/A84bqDKKiEhmJYUuAPBp4OcZXp8EbIk8bwTmZTuImS0GFodPD5jZuj4r\n4eByJPBGoQvRj/T5hjZ9vqFrRq479lvgMLOVwPgMm6519xXhPtcCrcCy3p7P3ZcCS8PjrnH3qt4e\nczAq5s8G+nxDnT7f0GVma3Ldt98Ch7sv6Gq7mX0SOBc40909wy5bgSmR55PD10REpIAKNarqbOCf\ngY+4+74su60GjjOzo82sDLgEeHigyigiIpkValTVrcAo4Akze9HMbgcws4lm9ihA2Hl+NfBrYD1w\nj7vX5Xj8pf1Q5sGimD8b6PMNdfp8Q1fOn80ytxKJiIhkppnjIiKSFwUOERHJS1EGjlxTmgxVZnaR\nmdWZWdLMimZoYDGnmDGzO81sVzHOLzKzKWa2ysxeCf8uP1/oMvUlMzvYzF4ws9+Hn+8bhS5TfzCz\nuJn9j5k90t2+RRk4yCGlyRC3DlgEPFPogvSVYZBi5sfA2YUuRD9pBf7R3WcC1cBVRfa7OwCc4e4n\nA+8Bzjaz6gKXqT98nmAgUreKMnDkmNJkyHL39e6+odDl6GNFnWLG3Z8B3ix0OfqDu29397Xh470E\nF59JhS1V3/HAO+HT0vCnqEYVmdlk4EPAHbnsX5SBo4NPA48VuhDSrUwpZorm4jNcmNk04L3A84Ut\nSd8Km3FeBHYBT7h7UX0+4GaCuXXJXHYeDLmqemSgU5oMtFw+n8hgYmaHAvcD17j724UuT19y9wTw\nnrC/9EEzm+3uRdFfZWbnArvcvdbM5ufyniEbOPogpcmg1t3nK0JKMTOEmVkpQdBY5u4PFLo8/cXd\n3zKzVQT9VUUROID3AR8xs4XAwcBhZvbf7v7xbG8oyqaqHFOayOCiFDNDlJkZ8CNgvbt/p9Dl6Wtm\nNjY1MtPMRgBnAa8WtlR9x92/6u6T3X0awb+7p7oKGlCkgYMsKU2KhZmdb2aNwKnAL83s14UuU2/1\nMsXMoGdmy4HfATPMrNHM/rbQZepD7wP+Bjgj/Pf2Ynj3WiwmAKvM7CWCG5wn3L3bIavFTClHREQk\nL8Va4xARkX6iwCEiInlR4BARkbwocIiISF4UOEREJC8KHCIikhcFDhERyYsCh0g/M7NTwrVhDjaz\nQ8I1HWYXulwiPaUJgCIDwMy+RZAHaATQ6O7/u8BFEukxBQ6RARDm31oNvAucFmZbFRmS1FQlMjCO\nAA4lyKF2cIHLItIrqnGIDAAze5hgVcOjgQnufnWBiyTSY0N2PQ6RocLMrgBa3P3ucG3135rZGe7+\nVKHLJtITqnGIiEhe1MchIiJ5UeAQEZG8KHCIiEheFDhERCQvChwiIpIXBQ4REcmLAoeIiOTl/wOj\nl2RL3u/cogAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "es = np.random.normal(size=[3, 300])\n", "x = (1.5*es[0,:] + .25*es[1,:])*.3 + 1\n", "y = es[0,:]*.4 + es[2,:]*.2\n", "\n", "cov = np.cov([x, y])\n", "ev, evec = np.linalg.eig(cov)\n", "\n", "ux = mean(x)\n", "uy = mean(y)\n", "\n", "figure(figsize=[6, 4])\n", "plot(x, y, '.')\n", "xlim(-2, 4)\n", "ylim(-2, 2);\n", "xlabel('x')\n", "ylabel('y');\n", "\n", "arrow(ux, uy, -3*sqrt(ev[1])*evec[0, 1], -3*sqrt(ev[1])*evec[1, 1], width=.01, color='r')\n", "arrow(ux, uy, 3*sqrt(ev[0])*evec[0, 0], 3*sqrt(ev[0])*evec[1, 0], width=.01, color='r');\n", "title('Principal Components of 2-D Data');" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Link to eigenvectors\n", "\n", "The projection $\\hat{\\bs u}^T \\bt r$ is a random scalar:\n", "\n", "* the variance of the projection is $\\text{var}[\\hat{\\bs u}^T \\bt r] = \\hat{\\bs u}^T V \\hat{\\bs u}$.\n", "* the first eigen vector $\\bs v_1$ of $V$ is therefore the principal component\n", "\n", "If we limit ourselves to all $\\bs u$ that is perpendicular to $\\bs v_1$, then: \n", "\n", "* the second eigen vector $\\bs v_2$ of $V$ is the principal component amongst all $\\bs u$ with $\\bs v_1^T \\bs u = 0$\n", "* this process can continue for all the eigen vectors" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Variance explained\n", "\n", "The total variance of the random vector $\\tilde {\\bs r}$ is sum of variance of all its $n$ elements, which equals:\n", "\n", "1. trace of $V$\n", "2. sum of all eigen values of $V$\n", "\n", "The portion of variance explained by the first $k$ eigenvectors is $\\frac{\\sum_i^k \\lambda_i}{\\sum_i^n \\lambda_i}$. " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Application in interest rates\n", "\n", "CMT rates are constant maturity treasury bond yield that are published daily by U. S. Treasury.\n" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAW4AAAD+CAYAAAAas+94AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXecXFXZgJ8zdXvLpvfee0InCQlFaSKhShE/EZWign6o\nnw0FFQQpooKCRBFBmhFEipJCem+bbNputvc2O7s7fe75/jgzc+fuzJaUDQnchx+/3HvuOfeeOzvz\n3ve+5y1CSomJiYmJyemD5eOegImJiYnJ0WEKbhMTE5PTDFNwm5iYmJxmmILbxMTE5DTDFNwmJiYm\npxmm4DYxMTE5zTAFt0mvEELsE0IsOgnXGSGEaBdCWI/zPKuFELefqHn1NUKI/xNCPN/Lvl3emxBi\nlBBCCiFsJ3aGJqcSpuA2QQhRKoS4sFPbbUKIddF9KeVUKeXqHs5z3EJDSlkupcyQUoaP9Ry9QQgx\nQQjxuhCiUQjRKoTYI4S4TwhhjbuPnZ3G5AshAkKI0sh+e9z/mhDCG7d/09HMR0r5CynlafOgMfl4\nMQW3ySnDydIShRBjgc1ABTBdSpkNXAvMBTLjuqYJIabF7X8BKInuRB4wGVLKDKAcuCKu7W99fiMm\nn1pMwW3SK+K1ciHEGUKIbUIItxCiTgjxeKTbmsi/rojWebYQwiKE+KEQokwIUS+EeFEIkR05T1Sz\n/bIQohxY2VlrF0LkCSGWCSGqhRAtQoh/RtpzhRDvCCEaIu3vCCGG9fJ2fgpskFLeJ6WsAZBSHpRS\n3iSldMX1+yvwxbj9W4EXj+HjQwgxP/JZWeParhZC7I5sPyCEeCnu2FlCiA1CCJcQYndXZqrIG8Jj\nkTeHI8BlxzI/k9MLU3CbHAtPAU9JKbOAscBrkfYFkX9zIlrnRuC2yP8XAGOADOC3nc63EJgMXJLk\nWn8F0oCpwADgiUi7BVgGjARGAN4k5+2KC4E3etHvJeCGiHCcEpn75l5ew4CUcivQBFwc13wLSR4E\nQoihwL+Bh4A84DvAm0KI/klO/RXgcmA2MA+45ljmZ3J6YQpukyj/jGh3LiGEC/h9N32DwDghRL6U\nsl1KuambvjcBj0spj0gp24Hvo4RhvFnkASllh5TSGz9QCDEY+CzwNSlli5QyKKX8CEBK2SSlfFNK\n6ZFStgE/Rz0AekM/oKYX/SqBgyhBfyvqIXI8/AW4GdSbBOpB9XKSfjcD70op35VSalLK/wLbgEuT\n9L0OeFJKWSGlbAZ+eZxzNDkNMAW3SZSrpJQ50f+BO7vp+2VgAnBACLFVCHF5N32HAGVx+2WADRgY\n11bRxdjhQLOUsqXzASFEmhDiDxETjBtlpsnppTdKEzC4F/1AacS3ATdy/IL7JeAKIUQ6SuCujZpq\nOjESuLbTg/S8LuY8BOPnV5akj8knDFNwmxw1UsrDUsobUaaLR4A3IsIoWarJapQgijICCAF18afs\n4lIVQJ4QIifJsW8DE4EzIyabqJlG9OIWPgSW9qIfwJsou/ERKWV5L8ckRUpZBWwErkaZSbp6EFQA\nf41/kEop06WUDyfpW4N6wEUZcTxzNDk9MAW3yVEjhLhZCNFfSqkB0cU8DWiI/DsmrvsrwL1CiNFC\niAzgF8CrUspQT9eJaKPvAb+PLEbahRBRAZ2Jsmu7ImaHnxzFLfwEOEcI8agQYlDknsYJIV7q/JCQ\nUnYAi4ET5ar3InA/MB34Rxd9opr5JRH7eooQYlEXi6+vAd8QQgwTQuQC3ztB8zQ5hTEFt8mx8Blg\nnxCiHbVQeYOU0iul9KBszesjr/hnAS+gNMs1KFc6H3DPUVzrFpRN/QBQD3wr0v4kkAo0ApuA93t7\nQillMXA2MCpyH60ozXob0Jak/7bImBPBctQbyPLI55VsfhXA54D/Qz0MK4D/Jfnv9TngA2A3sIOu\nHwYmnyCEWUjBxOTkIoQoBr4qpfzw456LyemJqXGbmJxEhBBLUTb9lR/3XExOX8x8BiYmJwkhxGpg\nCnBLZH3AxOSYME0lJiYmJqcZpqnExMTE5DTDFNwmJiYmpxl9YuPOz8+Xo0aN6otTm5iYmHwi2b59\ne6OUMlk+mgT6RHCPGjWKbdu29cWpTUxMTD6RCCF6na7ANJWYmJiYnGaYgtvExMTkNMMU3CYmJian\nGabgNjExMTnNMAW3iYmJyWnGKSm42zsOEwg0fdzTMDExMTklOSVzlWze/BkAFi3ch9Wa8jHPxsTE\nxOTU4pTTuONzp9TVvfMxzsTExMTk1OSUE9wtLr3urCYDH+NMTExMTE5NTinBLaVk586bY/sHD/7o\nY5yNiYmJyalJrwS3EOJeIcQ+IcReIcQrQog+MTzXNyRWn3K5zNB5ExMTk3h6FNxCiKHAN4B5Uspp\ngBW4oS8m4/MmFtHevuN6Vqwci6b1WFvWxMTE5FNBb00lNiBVCGED0oDqvphMUfGvujwWDnf0xSVN\nTExMTjt6FNxSyirgMaAcqAFapZT/6dxPCHGHEGKbEGJbQ0PDUU+kp0pOmgwe9TlNTExMPon0xlSS\nC3wOGA0MAdKFEDd37iel/KOUcp6Ucl7//r1KKWvA59OV+E0br6Gxcbjx/JrpYWJiYmICvTOVXAiU\nSCkbpJRB4B/AOSdqAi7XNvz+BsrLn4+1BYOp7C9cYOhXX/vhibqkiYmJyWlNbwR3OXCWECJNCCGA\nJcD+E3HxcNjP9h3Xs3vP7QRDrQD4/VmxqW3ZchWBgHJgOXzkp2im1m1iYmLSKxv3ZuANYAdQEBnz\nx+O5aEPjCqqrX8PjLQGgrW0vmZlTACgpmR7r5/dlsn3blbH9VasnH89lTUxMTD4R9CpXiZTyJ8BP\nTtRF9+y5A4Ds7DmxtqKihwFwtQwGwCnt+EUQTbOeqMuamJiYfCL4WCMns7JmJbQFg8o0stR/Jlf6\n56Fpp1Rwp4mJicnHzscqFSsqXkjSKgDY27CSVUeeZWCrxqaN18SOhsOekzQ7ExMTk1OTky64vd6q\nHvuMCw+i1FOFM+ce0gP9Y1o4wK7dt/fl9ExMTExOeU6q4Ha797Bh44Iuj+/aGcnDHZyKxTYUIey0\n+VOJauEALtfmvp6miYmJySnNSRXc7e0Huz3e1qYH7kipTCIDmuoAKCnR7eFbtl6JiYmJyaeVk2wq\nkT32yNJSAbClnI0t5CHN2wxgMJe0te0jHPb2zRRNTExMTnFOquBOlo+koWEEFRVTaW6+GwCB4J2K\nZ7HY+jNt3/PY/a0IKairHUdD/cjYuBbTZGJiYvIp5aQK7rCWqCUXF51Backc9u1VkZMWKemIRFH2\nm5XPIF8RYxqDgODAgQWMG/d9AKR2fEmnio88wc5dt+HxlB3XeUxMTExONidVcNusmbHtlpZBdHTM\nMZhAAC4IzQAgo72SgiMbeHl2K0FvS+x4fr9FAGia/5jm4Pc3UFLyW0pLf0tz81o2blqMlJIVK8dS\nVv5ct2NbW3dx5MiThrqYJiYmJiebk2vj1p1DcLsHkOq8w9gItLVXANC/YSfTyiSIEJIxseMWixOA\nsOY7pikcPPQAR0qeMLTV1L4J6NGbXbFt+1JKSp+mvv7fx3RtExMTkxPBSRXc8UmiGupHsX7D+oQ+\n+Y4hOLJuxRoxhRQNEVj8jtjxZcteSjjX0RCKmGHiaaj/ILbdlTYdvxi6d983j+naJiYmJieCkyq4\n/b42ADZuuA6vNztpnzKtDIs1H58zj3VTBEcGQXvaUKaEhgHQ1KTOoYWPXuMOBltpadmY0N7YtDK2\n3dKyIenYQKDxqK9nYmJi0hecVMFdVb0OoMvEUbf6FlJUtxaAoD2dFy6yELLA5INvkCadhrHH4g54\n8OCPe+zTlYCuqfmHYX/jpkuO+vomJiYmJ4KTKriDQVWxPZngHhXujwMbAals3kOr1+J1grQIUkIN\nVPmOACClmnJNja4519W/S23t2z1e3+fvuVSm11uRtL2k9DeGfY+nqMdyayYmJiZ9Qa/Sup4IVGmy\nqF3auCB5m28RlsgzJCyD2IGc1mLCVjW9VK+fgYFUavDExnp9uuDeu/ceAAYOvBwhun4WBQLNPc7z\nSMkTjB59d2y/oXEFFmFP2jcUcmO35/R4ThMTE5MTyUnTuEvLnk3aPjM0ChtWLDFhnvgsef7iEI7w\nIG73LcEidaEfCrUZkk41NycudsYTCrUZ9juXR9P7qYrymhZkz5472LX7S0n79eZB8HERDLrYsHFx\nl28QJiYmpy8nTXALkdyuPS2kFwV+reRXODKuAGDF5UM5a/BZAJT293C4/Qh7mtdwZWB+rL/PV01T\n06q4a3R9O+Gw3+D7vWXLVTQ2jqSsbEZC34/WqLYNGxclHCsu0q/f4Tnc5fU+btasnYvXW5ZwD6U3\n3EjpF276eCZlYmJyQjhpgruy8kUAwuGI+UMqFz9nRMM+0rYHiURY+9O/YRd5NR2kWFVwjt8eAksW\nB1o3Y0Xg9WYAIGXYeJFuBHfh/v8lHG4HYN3aL+D3qWCg1FR3l2P8/lrD/u5dl1BdPYmCPRcCUFBw\nJ+Fj8G452QQq1ZuGlJIVKVezxTf7Y56RiYnJ8XDS83FHiyJcFJihTB9YeLXkEbY2vgeAwMr0fc9h\n9Qdx2pxMz59OewqMq6nAmnoe/lAHxUVnAInRk925CMYHzUipa//p6a6k/ZP5c7e19QMgGHTG2rZs\nvaLb+/046Dz3+t/uAqBm4x5m5VjJGzYVqZkLqyYmpysnXXBrmp0bfecyQCo/bl+nijYWoQTKe4sy\ncFqdXDPhGrxOCDqysTrnsK3hfVJSlQZZUvo0KSnDSUsbB0B1zesJduyeOHz4TAAK9y3kwP7zAHA6\nB3Po8IMJfaMeLR0debG2FOcQpNROCQ+TtvYD1Na+1aVLY9O+cgam9GdSWgbh1sRAJBMTk9ODj6V0\nmSXusuvq3oxtO3PuIa9xLyItjZL+khRrCleNuwqEwGM5hBAWNBnC3ToAgKamjwiH20lxDgKgoeED\n1m9YdFRzaXMPYO2aW2hqGkFDw2jQcvH7a6is/EuS3iKxxWJl5arxrFw1nqKiXx3VtU80W7Zcxr7C\n+2ho+CDp8ZBL93137TpwsqZlYmJygjkpgruzFmyNu6w72BTbFsJOW8ZwpMdDs68Z0dGIpWonQ9OH\nkNa+U0045QJ8vozYmGCwhbT0sXHXSm76SHEOAeDQnu4DZ6prBhjnap2StF80xWxT05pYW1n5H7o9\nd18SDOqJuDzeUsOx5v5b8Ne58ba2UTvlT/jTqyhc9v5JnqGJicmJ4qQIbuXDDVJLA5Tg3tW8ig31\nbxHU/My9/E7mXfUTAFK9+mv+G5Ur4PnF5HtbeekCKxesvhtkOuGw0a/aZsukJ6y2dLyuidS5dMG8\n1H8Ws0OjDP1aWwca9oPB/bHtAZoepn/gwPkIbPSmOMTJQItLc1tRscxwrGH272l4Yjcdrp20DltL\n6bk/oD4v+QPJxMTk1OekBeAAtJZfiE1a2dLwLuXt+2Lt+9anAEor9zt14WiPLLLt1jpguEAg0aSF\nziaLyoruIyKllHR0HKYjzvUQIEemIaTxXOnpLYb9I8XzycxspLFpBM2WVr7oW8Qbzo10CD+SkKFv\nXt753c6jr2hvP0hT89qE9oqKKQwfXhjb78gaQfQRl2ftuWiziYnJqUmfadweTwnBoJuamuVUV78G\nQFW7m5AIU+c5Eutndc4zjBtUt5VQitKoL/Aom+x5fiUg7/mqFS2JnfnQoTI8HcmTVgE0t6jAnPx8\nPRjlZt/5bG/8D25hXBytrp5o2K+pmcihQ+fS3KSE/tulv2FRYGrS6yS4J54EVqwcy+Ytl1JU9MuE\nY8FAamxbihBa3L2mWkIEyswiEiYmpyN9Jrg3brqQ9RvOp3D/d6io/DMAWsQNT4sTcLaUuYZxQ2rW\n8+v/Gw/Ag43K/n17k/q3NR2yW4uxSguNDSNiYwKBVHbv1m3XXq9Rm+zoSBIoEw5S3LaLSuoNzfGF\nHcrLphuOXeqZTkgG2NmssgkeKdbnnpNzJi0tG1i5aiKhUHvi9U4wBQV3U1rWvU3d50+PbR+66Hby\nMvX0uE3OAOXf/WGfzc/ExKTv6FMbdzTgJUqrS9mPw8RppsJYAccebKcwqDRjZ8R8nB3xOfY5YHzR\nP7g0MJsDB86LjWlqGk4o5KSf9bsAFBcbvTu0cGK1nLfKfwvA+Bb1MLkgpkXrGn1qmjE4Z0/9FhxZ\nXybVp94AGhv1GpiuSA1MKUMxDb+vqK5+g/qG9xLuszNNjSMM+za7fm+O6SvY6Z9O4x/+2CdzNDEx\n6Tv6RHCHwx0JbTbb5Fjgi5Qazpy7mX7xI4ZQeKEFsVgteEPGlK2jg5GFNyGwaiEc2JHSSlPljWzc\ncB2aFjHVC+UWWFf/jiGPiIw8KNzufABu9qkcJba0JYy0T+HLvsWM1QZxq28hI8P5HNxzMQAtLYMN\n8+jwF2GxZtNqUwFA/jiNNp6+NplUVf+9xz6bNi0FBK2t+mKsdOgP0hz3dMTQ+RQ/9waUrAFN46N9\n5Tzyg6+y8ZBp/zYxOZXpE8HtibNhRwmFlHfG5NBQFdouHBzeWqdPxAKL1twLobgFv0zlwmcFssNK\nGP7qmhAtHrUYWXjEhi2YgTUSGNPUqAvrtevmx9wQo7m7o6Hqb5U8DoDNORO7xYlA4A2148BGtaWF\netdA1q65mbra8eRruseKtAyI/JsosOOjKY+1Ok9vcTjyeuwTDCgPnniTUnDER7HttrH/ZtKkNew/\n43vwlytg429Z+Pp0vmv/O2e/PMWsq2licgpz0gNwpoSH4ci8OaFd00AgsQ9Xi4AzNBsMmAxfUfbk\nP9UqW3RtboiDLqMpIlsqIbV2T4mh3e3eAyiTTTDoQNN0N8LoHNY376XWW8rKmpfZ3vgfJoaHRHoo\ns0KjRfdBt2VcxcI13yI1KJkceeZ0dOTQ0jyYLZs/H+tXWPjt3n8gx0DA35C0ffDuOxmy6x5SC9S9\n5dQ10o8zKTmicpPIzBpD/7opL7I4R8PvtsJ/f2Q4VlN2qA9mbmJiciI46YI7R6YjLCkJ7Zlu5eFg\n6a/MGReELGBPhaFqAXBiQJlLAlYNrJNj43wiGKcVC7ZtvTJ2rPjI40ipEQ55YsmtolhsSnv2+Qv4\nqPZV2kMtFLXtxNMpWGh+UAX32KUVsGDVgkzZ/xcqm1VRiB3br2Dv3gsND4W+xt22J6FtcOr1ZNbN\nJ71+DvUNo1WjFuQRXmCP6Dq8vXLG0+xYfw6hTtadDld98gEmJiYfO30iuC2WVPr1W8T8+W8xYMBl\nAOzYcSkAAoEyfuhMOPwas3c/BcBrV6lETo0yCLaIgB+tbNL3NrcQtIO0DjGM98V5cXi92Zx/3lYA\n3O5drFw1nvaOQ8iw7lFhS1Mmk7nbH2VAhzJxWB3TABhjMfp6Tw0OYUFwMp8NzCbdo4SZM9CK1Tkn\n4b6L1t0Y2y4u/vVR5005VgYU3krGv5awznaAF1JWsstWCoCDuXidgvpA1+76vvwDFJx/E6sX5dPQ\nT/+MDleagtvE5FSlTwS3pnnRwj6yMqcxfdpvWLK4mI72fnE9jIJ7WNVH2CKeH+/5twPg18Jgjwju\nBfcDcIO7naAVQp2CZmTYaFO2Wo026La2AlLTXQzScviibyE2p8q3neatJ8+fhSPjOmypCwBBY2OB\nYeyeljVMCA9hgMxmzuEXmLB1C2neBmypCxPuuy2cgdTU3ErLfk9Z+XMJfYJB93EtXkZdHTNrz4i1\n2SvPwaI5OGgzBiJlupVpxK0JNE3/zCoqdD90aQnRb+IHCAF7pmbx9IBF+AXYy9ZgYmJyatIrwS2E\nyBFCvCGEOCCE2C+EOLunMS2uTUnb19cthzhPkrymfYbj04Yoe+zN7V6wRQJI+k8CIE1KEILB1Z0q\ntXdKUWqxOEhGSIZ5p+z36lyeOuwhD35nLhb7MIQlBWf218lzjor1PyM4jsPu7extWceH1X/F0taM\nNTOT4X/8A0IIhtboeVFs0kK78LF+va51R6vP1Dd8wKrVU/EHGlmzdjYbN12YdH69Ydv2pQA42tVb\nR23tWP6esh4fwYS+xdnKpOK1erFY9MXG0pI5huo/MqibUgoHHuTK4YPJy0w75jmamJj0Lb3VuJ8C\n3pdSTgJmAvt76E9Ghp4LIxBQGnGqdFDrLSFe4566X8/Cp/3jD6ypVJre2PYmcCvt8oOyMB33q6IG\nb1VW07+p2HgTEkPo+pYtW5LOqdHaRkBTHiZnbfkZAO3putlFWFKoaNNDxFuFByxZ7HOtp8lfjUUL\n8XzB85QOtjJr11O4WytjfUORdLTR1K8AdXWqgHFx8WNomo+6un8B4PWWH7PXRiCgFibDDjcT//Nn\nDh86R+2TmFb2yAAVvv+jpvpY8YnyUmUSaozz8R6VrnupXJMbZHoubKvs+k9sepyYmHy89Ci4hRDZ\nwALgTwBSyoCUMnkKvjgmT/p5bLuxUSWO8ooAIRmMlRibcPg17CHd5/ud9k6a9MF3OVTXxlf/up3/\ne1ulIR0eDOHKCDI7NDrWzSrTuSqupNl7772H1ZphOFVxsTFCE2DEX/7CObOUpjp715NqrjKbucEx\nADQHanFmXoewZGN1zmXF3fN4asdT3Ljha+S6DuHM+mKSOxfI4gdieytWjo25Rx4+/FCs3eer7Dyw\nR+IF5poWK6vt+tvKDpvRBdPiaafD6eel6loWBKvxdKiixi2uodRoqYCgqXEYAK3DVxvGzk8PcT7r\nkl5/xcqxrFw1LuZi2RtWrBzLipVj8XrLez3GxMSka3qjcY8GGoBlQoidQojnhRDJI0/iT2zR/Zpf\nf/11AM4Kjo+1jSx7j2FVHxnGpNpSDfutMo2Ln1Aa+Fu7qgle8ih24KVFXuaERjMxNISBWjbZ/hSa\nXAf5vF+3+65epbvnNTSMpLpKfwNYsFa569WPyaEueIjFq+8i16XC4qUMMSs8iksDs5nQloawZOHI\n+h/saQt5ybY1dg4BCEs6dmklR0tnSIW+mNda1rMfd0GkMn1v8Aca8fmq0TS9wk9r6yCKrHpptc72\n7bSyA7SnhAgIgQ0NS0k/amrG096eR0fEfbKyMnnOFZdXEBCJOWHqG/RUsMdSKLmu7t2jHmNiYpJI\nbwS3DZgDPCOlnA10AN/r3EkIcYcQYpsQYhuAJeLy53K5aGlRr+wZUncDHFGxwjiRrCyyI5kB39BU\naPz9wTsMfca/pcwaraluBILzQ5O5IjAPoak0sSUt2wz9z5j/NnPnvsaB/XrWPmf2V7CFfYxft5bP\nvXsNVWv0ogNztz+K0z6dnU0rGKLlkRpZ5BQRIRaMc84Ys3UT44veYHKVjyGV9bS169pkga2CUKh7\n98DuCht3Zt26M1m/4XxWf6TMHJ6WYT2OsVj64Ur3Ms+nFn33emdQdPgsNM3G3tAggtKC2z0g6dhx\nmRpuiwWfz6hVV1X9Td+ufoWmpsSMhJ3xxdXt9HrLWLFyLIFAUzcjTExMeqI30qMSqJRSbo7sv4ES\n5AaklH+UUs6TUs4DOHzYRWFhIU8++WSsT0DoUZH2uLD21NmzGfvB+zy27TEAxpcpzfYDTdegFYJf\nBm9kWqeQ+g7XYSQaDe3FzA+Oi7WHw0PJyZ5LNJhmoJaNsCif74aUIBKJN/Ji0JoG2W2lOAJ+Dru3\ns8+1gT3tbUw6qISVJRwgFOcMM+/Ncxlcs4GStt1UdOxXC5utuqa9bevnkn2WMdzu3YTDHoLB1m5t\nxsmO+VtGJOlpZFa1wJMqEcDeLKMHjEum8Tf/XNzpQ1m/7kb8vnQK9xn7rExLY/u+g7F9r7eClhbd\nlFVW9gy7dt+WcN1w2MeKlWNZs3Y+mhbE69EzEFbXqCyRGzdd1OP8TUxMuqZHwS2lrAUqhBDRfKdL\ngMJuhpCWNobly5fz2muvGdpTZHJvj1GvvIwtN7dXk/qPNo8FAS/Ly57i/coXeL3kMXx+N1bnbPxh\nDzPCI5geUoLtd7/7HYFAgElDlTD/bEB5rIx+6y0uflPlI3n2UgsvXGTh63cpqZzfsh+rcyZ7W9bi\nDzcypGYDMwqe4ezNP4F484EQ2MJ+7OmXYU+/CkQKwWo9MCY+BD6e9IYZse3tO25gzdo5VFa+2OX9\nSplodnG1JteUAdKL9pCxfxvf/J/tvFal3AG3Nyf/3Fe78tE0G1u2XE1T0wjq60fFjk1xhPnuGztj\n+8nyfSfD7VaFiYPBZgr23o0mE71djsY+bmJikkhv39fvAf4mhNgDzAJ+0V3nzn7UAEPDeTg62rFn\nLDW02wYNMuwvGbEEgAJtVNJzl8mB1PtmENB8tAYb0AhjkRJb6gJk+ucodu9kSliZEoLBIE888QSe\nchfZWhq2iDdLysQJsfO1pQnen2chZBP89nILo8rexWJXx62OCVgyM8lv2oszoDIF/vNz/4yNHbd9\nK1bHRKyOMczfoTL12b1RoaR/tEMav86g1Y+Q67+QDUVT6NijKt23tanFxYaG/3TxSRor20TxOlqS\n9FQ4bOdgT1MPpayIm+SvQ9dRElYPxh3BobG+nrDRjn3wwPmxVLaZI+2MTSmPLShWVyVPbNX5jcBm\nz4ltNzZ+iEwyfykD+LsoaGxiYtIzvRLcUspdETPIDCnlVVLKriUH4PcnplGtsjZT7N6FsGRz1uYH\nYu0jX3oJgLaAijI81KTc0D7SZhrGlz58GW9+/Ww0LDwYugth7R875k4NkdNagsU2hH2ujbGkUwBe\nr5dyayM2LLiDbs7e+CMaPMlzfayZbsER7MBqH05K7n0MbG1n6OOPYx86lHfmKyE3NmcsM/KV1vxe\n7Upm7Pk9s3c9SUZ7JY6sW0kp3YezrsJw3sI9ebxu2QtrrsAdtHNYM0ZUduXzDiQt/NvRkZOkp8KW\nMocxdcqunBkR3G7S2B4aRk04k/1hXVv/3mWJi5Mul3qQBoBbz3+RDRsvUOfKTL6QGV/rEoBO1e61\nJG8M0P3DysTEpHv6JHKyqSn54pNGGIs1B4umbN39v30fjmFKA9zbuBeAc1uVJtafxPwas4ZHzClC\n4Mi8GXu6CqfXbFam7v8z/Rt2ErRP44MkEYsS+E/Vc6T6m1n8+uIu515wqbECTsb555H3zmu8eGHE\nwK2F+da/a1PYAAAgAElEQVScbwHwg3U/YICvhIF5YSZt3YzFqvKs2JtVBqp9exdRXDyPApvSWt92\nRhZPZaLHRvwiXjyF++83NmhWpLcfed7EP52zroLFq+8irWU5AOmaZIs2ERC8es+FnHvpUrIz1NvQ\n1CFZfPG8cQnnaG1VgjsjzrqyYuVYnE79zSgvV8+FvnbdfEMkaOeo0IKCO9X1pj5paLdajB5EJiYm\nveekJZnqp2XiiHiaWLQQ/W7/Mv1uvx2A90re447/Kg+SxojmXWnRc2Gv+s4iAKwWQenDl3H4559F\nCIHVMRFnzt2E7BbWT3Ixbd/zCJGKJo21IAGaLe2EZYh/nGMUmhlWY8KrB2cUMWv3bwDId+9n4asL\n+cmGn+gdfpbHjFW/ju22/ut3jP7X21jS0zl704+xZ1yDM/MmcmsbaG4eTnXVZDrT1tYvoa266tXk\nH1yElBSVQ6Vj+234RRBnnJkjraSQjP3bcDTXYbv/Ln50q3rIWIHV4VkATB2Sza1nj+JPX1Sl4qwW\ngRCC++67L3L+xMRf8ZRX/AmAJYuLGTnqa4ZjZWXPsW37dQA0Nq1OOr5f3gIyMibFhH7h/u/Q3Lyh\n22uamJgkp08F97RRk2LblwXmRKImQcgQKVOmIIRg+eHl3L9G1yq/06Q07n/Yr4i1jc432sztVn3a\nQjjw24O8cJGFn37BwoSqUhBZXc7p1QX62L+74ZqmTsmUhCCv5SCLV9/FhuFrafY1s7pyNQAvVSut\n2HnovVj3L3/4FWa+NIsZL84g50d3cNH6R7hw3c/I7phE11hYu+YWJtgeY9JYtVwQXcTbvOUKdu3+\nHwBqat6MjZg54w8sWVzMDq8yPbSHXFg73FjbXVh9HpW6yzGVwgXDaUsTXNquPG/2ylEMzdG12zSH\nEuoj+6nPNCsri5tvvplvfetb3czXWBwjL/ds5s19PbZffORRWlu3o2kBSkqeTDYcuz2bM8/4NzNm\n6OXWdu66pdtrnmgaG1ficm07acm/TEz6ij4R3DabjXwtk7MODCVDSyFF2nF5q/FFfvwWLURLUxWe\noIcfb/ixYWyapha73KHuC9DP3f4okw68REZ7Jf3EDoJ2QeFICw25mVgzlnKZPzF7H4CM8wwZ31RO\nONFqwYrrlQnh4FDjwfEBfaHt71XG3NYAn2t/FIDyecM4mNlzlZrG9xxozyqfdU1T6wLt7YU0NX2E\nz1dtMJNkZBhNOAEySCs/RFpFEfb0S3HmfJNB3iH8cL2qI/njxmYu8P+aNdpMVv/vIv0eBmby7M1z\nefhqvZ7muHHjDBp3Tz7o4XCY7Ow5pDiNWRrbO3rO4S1E93/XoyEYbMHnq+65Y4Tde77C9h3X89Ga\nWYRCiVWaTExOF/pG45Z6cYPrA+dwk/98wjJEdvZohBbGooW4PPwUNR2Jwi83sqDWFqns/o3FiXZY\nUD7XQ2o3csa2X3IkU9fICwZvBeFgsMzlzLhIzav8nX3CwQF8s8XFog4Pb1XqAuCPo0tY9q3J7B5r\n/HhS4jwopgYSvSUArvu+je9cVMvWcb6kx+NyPfGWcyv/su/AEsykqWmNQQit36AHDVlEKp49DUgt\n3oNDf6hctOFpFn/0TRwuXZtNl5ISqcxN8W8oAJ+ZNoh0Z6IA/cY3vsHMlHGUlc1MOAaQm3sOjz76\nKA8++CA+n4+zz15pOB6OE4b9+38mth2ffiC+VB1AUfFjSa/VGzZsvNDwOR0NydwsTUxOF/pEcIfC\nITSUkBGR/8IyRKu7FmmxIlBZ/n6xWfcqTLOlsXHc7YbzWC2C+y42appRlt0zju/eZuVnN1qwnLeA\nH0XKlg1trmTq/r/wQdUypodHcF5wElf7zyRfZmJLWxIbX1CiFgydEp6ub2RMULeLSyF4LzWxMnzn\nD2tC7oSEPlHaUpILBuH1k9uia7T1FjeavQ2Pp6hLIZRVdg7NLx9A8+tztPk7cGR9CUfWl8i/6y7G\nf7SaB2/UZ/j94Je7nFtX5OXl4ch30BDnz52Tc2ZsW2oX09GhhLPX68ViMWrm8Rp3v34LWLK4mIUL\ndnH+eZtj7aJTKH15+fNHPc8ooZBKmRO1r3dHZ7fFo9HUTUxONfrMxl1iNdqOU6zp2FMXGNqscdpX\nhiODjP8qs8mXAv8LwKIJ/emKR+58mzMWXs/eURZmTJhFUfMVFJSUkz0wQK6rCFegnk31/2JSeCh5\nUml80WIJX53x1aTnvM3lTmj7xXlGl/WGr+yKbb+56Oku5+dP6eTf3NaGCPhIr2/jUObOLkYlRwum\n0oGPQJuuxefWVDPjwJvMOPAm/e+5m3C/LEI2XSiuCc9IdqoeGTwsg2AwNXJdwcCBl+v3YNM156ee\neoq3334bp2NgrO3QoQf0OYd9kTGZNDS4eOCBB6ivV9+JJYv17I4ySYBOb4g3dbS2bu+xv6YZg362\nxFVKOhm0unezYuVYWlt3Ul39xjGdw+MpYcXKsXR0FPfc2eQTzUnzKslPGQrCGE24sUYPoa736IJ+\nlaY8IX59XfJXdlCa22VjLycvJY8Fw89j2Gfu5fXQAp7NvYHvfVHDlnI2ZR2FuOPyYkRf0+8ecE7S\nc367xcVv+uuh3xNzJ3LF2Ct4dfQX2FCqfLMfXOPitczIotrjk/lPeRUryyvZXmLMfBeO+2SdNaVk\nNNjJqR7AocHl7BtodP2rqUluDopSnFXAKynrqXhc11wH581gxjc+z8xvXg3ofvAAr1XVUIV66I0f\nYMyS2BNjZqno0iOr7uFPR9JIy9YDppxOYwTmjh07mDf/H0nPM3jwNbHtZ599FoC9e/fG2kaMuD1h\nzNHQ2Q+8uvo1XK5tXfSGYCjxoXwy2bZN/Z22bb+G/Qe+S2Xl33oYkUh9vUryVVT8qxM6N5PTjz4T\n3J/zz09ok5p6td0xNsmKoAF1PCcteah2lNkDZvPR9R8xNGMo15w5lv8NfY26tnMYO/Qr2FLPBpHO\ne1XPs77un6yoUQLmd7X18NwFsXO4pdGf+IItf+VrLa1YhIXnCjfDA9lM2bOcTCn5efALvL27moca\ndJPG4HCY/mENB3CtWxeeG8sqmefOZ27HINICs7FYUnn+gmWsn1TC3b4j1KbU4ddaQUoCge6LFvh9\nyobfJpTW2L/ORb9Rw8i99lpyrrmGtkAbB5pV2ts/1Naz3qMXalh+17ndnrszOYOUXbzK6iLsGcnT\nr/+X+fOWk501m3/8I1EwpjgHMWbMfYa2SRMfwmZTcw4GdY1a0zRKS0sBGNtpzNESr/0D7D/wfbbv\nuJ6qqleS9u/oKEpoW7Fy7EnJLS5lYq70g4d+nKRn91girquNjR9SU/vPHnqbfJLpM8Gdgp3BD+j2\n0bZgM1bHNMYVvcGyixIv+8plr0DOSJiu7JX5Gd0L7c6kOWycNSaPR5ZO5zfXfZkBddtwZt8GQKXn\nII2+w2S5S1ng1c0N03zPc1/wzoRz3eVqZXcL5PoiWlqjSrb0UlgJRDfJtdgfNulRhL8MfJGDVe9z\nqPwdbM7p/HeqvpB3dUcHZfmreGfsh+SVtFFfN6bL+5oy5XFKS9UbSLSW5ABrf0ZlKrdJKSXnvHIO\nd65Q9zEqGKRG6n7iGUkWIXvL1La5yLJtZGXNYMaMlwkEkgu50aPuIidHX/yVWGICsbJSzzu+a8dO\n/vznP1NWVmZI+xsbdxRCVFiSe74cOPjDpO179ijfc5stG7td/3yOp4xcb2lsWpW0XXqOLjWuLW6R\n98iRJ45rTianN30muHNnDaWscDebG96hwVfJ6vo1CEsK/Zr20bl27W8X/5Zp+dPAVYZmVxrwtfOG\nJzlr9/z9jrO5fv4IrBYr0/YvQ3QyzUzbp0dULvQ/TjtpfKjNZU14Ov8Nd3IfbClNOL8P/WHyTlh/\nKI3yvQyoD/M2l5u/Vtfyt/DFsePL5nyDlGzdPGIB3qusoaCknObcgfh8mTRGihpE0+ECTJ70Swb1\nuwIplYmnwqrMPt5QkNzLVfHlGS8abdn9wmGWh8/jeBjoNT40Qy0+Xn755aR9w2El+ObO0TXdVStX\n89hjid4i7R5ll1650uiNEgy6qat/l5WrxlFf/wEeT2mPc4y6TyajtPRZGhqNaYOjNu5zzzHmgD9W\nG/vRsGfPHUnb656dBKGu76MzjY0lse1jKcRh8smhzwS3Z28Nyx/5KaXt+1hZ8zci2VRJ89YTjPMI\ny0/NZ2HWOPjgBwAUFKk0oHZLT+aU7nG/ruyB1pS4orpBfUGrTOoh3LcGv88dQfXqXuicybthfczV\n/gdi2zLu47o3eBfLQpcwx6fst9VSlf/6douL4T7jA8PvFDxV38CdLS7WlVXw5cC3eTSo3iw+mKgW\nqkJtKlx+5Ig7OOvM/5KdPY8BAy7FV5tom23ShnAwx8uR1iMJx9aE5tBM1wFIvSHdYcyF8t/H3qSt\nNbmN+MEHH4wJbyGUwG9r66Cjo4OtW7cm1aJra402/jVrZ1NSoqJVC/beycZNSwiHPd1qw9EMg7m5\niesVxUceZc+eO+joUJ9PvJC3WjMIBvV1j5Nblcf4c9s3KxPPu19TwvuVL8D+d9SBkJ/wswv4ww+/\nwH826guvTXWmJ4yJok8Etx0rjk5pTa12O6n2EAJjQYJGbyM8MQU2/haAga27AchK7T4IpCecOdnM\n2/4I9lRd+3z880oQnOn7bawtO3IdiYVRvpe5tPW73B38Ruz4LqkWDndq47hk6kD+71IVERnExk9D\nX6SZLDKcNmojgnuPNppz/MrbZGp9P2bU5jC8/BKGhMJ83eVmc3AOK7S5sf6/ai0nXXNi12yReYRJ\nTx/DvLmvYrNlUP+73Qn3Zg1Jbnr3Jj73z8Sc3xdZdwDw4X0L2PGjY8t7XW4xZu7bbD9MwK2bmIaE\n8wzH29vb1dwjvtHhsLqXf//73wQaPAnnjyYhs9myY20dHUb3y9UfTWffvq7t4NHkVuPH/V+XfaLa\ndDisz0EIwTln66aLkym4t229IqGtsPZ9eGgAHPw3vHoTvHgV3r/eQLBuD1+1/ZuLP1gMEZNKWFtt\nGGvW/vz00ieCO1ums6b2dUNbKBBGi/hKxwvubzcZs8v9OXQJoIdkHysOq4WGRSptuLAOwuqYTslA\nwTzfM9ShBM+hhz7Lxu8nJpzSsDDe9yJjfC+hYeES/8PcHPg+z9w0l8tnDEno//JXzuT+4B28GlrE\n5wM/w4+DQw99ll9dtZ0Hr91FYccFjPK9zFX+n/HV4L0AvKmdz9X+Bzjf76PD4sdtUZ9N5zSoIRK1\nzpz6/ya0nefx8tvael4NLSI/w8G4AZnkpR/dOkGUIa2J1xwUVlr4lf55zAyPNBzTNOPiWyikP7Q/\nWKfm2lnYB4NB7HGCOyMjMUVAXb3SQAOBZsJhY0BTe7tajHU6ByaMixJdFIxq55Mm/SIyRs+D0+FJ\nfGvpC9rb8vB6s6ivH8Xu3boZrcRqxyMEv87NoV0IOLKK4pp13DJpCGeOHa5KQP9qNGz9E8KuFr87\nOtTnVrj/f0/K3E1OPfrMVOING/NBdDTvx4+y32oWwblDzmX1tau4zW3s93ZYvfpeOLnrYgG9wWm3\nsNmuFhOdWV/Ann4RjVnQiPrS7//ZZ3DYLKQ5bJQ+fBlr79c9TV64bR5BVakRgINyBB2kYrEIhuQY\nvVC++5lJzBiWQ5EcxndDdxCO5Px22Cw05AhaMgU/uFQlmtolx8WZWwQ75AQm+v4MgNTUuM6FBzoX\nAbZ62nDlJC7sPVPXwEKvj1+HruVvt591tB+XgdSs3IS2dFIQUjBAZjNUy+N/fPoDLxQyJvUKBvUH\nRkubyvI4OTzU0GfHjh2kpOol2ByOrn32166bz/YdxiCbmpo3IuPykg0BYE/B1wiH/bS3q8Xl6OKe\nxWLnjPn/AqC4+FcUFNwNKAG/YuVYqqtfS37CY8DvV5kiMzKV1nzwwPm4WwfS5lYLpO9kpXPN0EG8\nkpvJ2aOG02yx8McB2Xytv59rcwN8abD6Hfj/+53YOaur1UOutnY54XDvbeQmnxz6THAHwslDvqNc\nXlNMP3uiVt2A0uw6R9gdLf3SHfwtfCUTD8YtqkXOOXFgJqkOY+h1KC6cfPyAzNj2stvmU/rwZZQ+\nfFmsbUx/fd5fOV9Vm8+OM+0UPKA0qgtSf8dVuX/iKwvGsPLbxtJgUfyRBU8tkkO8c+GEfTbjIpS1\n3U11P+Pcf96g22xHjhzNxEGZHA+2IYnCcJc8ghT6Z2RBMCeo7r24uNjw2h4KJWr6/WQmiwPTYvtC\nCLKy9IVVfxdpbaOmjLa2fUld+uIZMdwYLerzVbJ79/+we4/yGXc48mPH7Hb94VTf8B719e/j81UB\nUFb+R31egUYVOONONFn1hqjgLjpsTLlQUKCUilv7Bfj2mCCPDPMyzhlm4chhHIm8Kc1OC7M31cmG\nebkcGqNcRvcWLCY7uy52nqrqlwmF2kyzyaeMvhPcmp+zlt4Q27c6pjO4en1sP7W2AIKJJayC2Jgw\n8OiCRpKRk+ZAEw4yXHrQSrSUlzXJwufALKXFnjk6j+F5ul/1eePzE/p6/LopwRbJAzIoS71NPHPT\nHDJTlBD/zXULePBK9YMd0z+D4l9cisNm4asLx/D4dTP56kLlBji+IyumcUtND5X3l+g5yVNLD5BW\nsp+UVhs+dhjmc2W7vui6aFLXpoPeMn6crgkPjphIoqlRKjoOcqhV+XNnRnzg33//fbZv1xfRpEz8\nWmVIJ2O0gdzoU37lVquVMaPvjR3vbOOOEi3kALBp8yWx7bzcc8nMnGboO3bs/Zx77npDW4trU2wB\nMztb9xxKSRlMfr7u716w965YNKXHU0J9pIDFwYPK3zoaQNMVgUBj0jS1jU0fRc6ZbWgPhxMfbgPt\nyrRz70Bdi56cEsabZqV+gPp++XwZlEXcQwEOH36Ij9bMYu++b3Y7P5NPFn0muC0pVs5eeiMDx4wj\nJSMLW9oSOtJ122KqJsFjLLgwxfcCAM/cPPeEzOHf3zgP/0Rdexwy+YsA3B7RkuOJmkxe/erZhvbO\nCZoAnrxB/XCW36l7NMwargTcwOyu81pbLYJDD32W7392MlfPGcb3PzuZwp9dgqejlkBAjdu3q4yX\nnvkzmj/MgT/qQsjmA6uvg6xAOgc61Qp+J3wmtwa+yx2Be8ntIWipN6Rnxt1D0PjmtKH+nxS0rKG8\n/QAjNd28UVtby/hxyjMoHE5cWLZEvmrWiCmpuLiYcPjotcSY3VrzYrMZ3yyEsJLiHMQZZ/zb0N7S\nsgGHoz8Wix0pZWxxdMrkRwz94r1PogUgohWI4jX0ZBTuv5+du27B59MTp4VCbbE0t+GwnS/7FjM8\n3C8WnFZWanTlTNck6RbjZ/KlfGPOG78/nQzPYFwu4wO6vt54zyafbPpMcE88ZwEWq5Wbf/kkNz74\nHEJY6N+4m0fuVm54o0JBePsewxhPxAbutJ2YaU0dkk3bAv0VNftzv6L04cu4es6wbkYpnr15Lo9d\nmzzk/qwx/Sh9+DJmj9B/zD+5cgq/uXE2c0Z0/wPvTJrDhmaRNDcP40jhGew7NJaiulK2PPgOy51b\nYv0GeC04sm4jYPdRlS+4r7mDJ+sa+EVDI0+FlrJGm8l/tPnkph2fNw7AqNlzyWh2kdXqRQsn+jmH\nZJCNDW9hi/v6CJ9Gv37Xs3bNLWhaYtDPpga10GiNjCksLOTtt98mLW3sUc0tmks7GHTHvFImTPgJ\nWVmzY+a1jPTExGQCC263m3/961/88pe/JBAIYLd3XQIOQNN0231CibZONEU0681bPht7uLjdevHo\nUMjOB5UvMKnFwT3eZjJkCuXlMwlU6Yvdl/YLcWNu9zZra9jJ6EA/CvYYPYaSBTR1JhhsoajoEdOs\n8gmgTwR3i78WR4q+iHd4m7LJpXob2ZWm6j0OCYWhXM9Vwr37YptOm9GGezz4LpjPWZt+wnnrvweW\n3p/3M9MGcc3cngV8lDSHjStnJnqc9IZwynBAUNU4MRZs875NT0SV54EXluxh/u4XWDFFCYhB7Rks\n8Xi5ot2DS+o2d+0E/CbtDieirghZvQ9PlZ5U64KA0TQRjhNsW/fuMKxLXBCYakir2+BTuV6scV+5\ngoIC5sxOzNkRb4vuzIaNalFU0/xYI8FKw4fdyvx5euKmZOsjoXAHjz/+ODt2KDNTdEF15Mivd3mt\nzq6CyULXE64TamPrtqsAo/nH58ukWpvJLemDqUzJ4zM+pRSI/sboyWlpXV+jsXE4Y7x51PpdxKf1\nVXPrOQJ01+7bKSv/I9XVPeeKNzm16buQ9wz9NXbbu6UAaOkOwtYki46TLodsXUg67SduWksnXUua\nr5GA9dSteuKwdH+/1rBGY7bg/SfP4FAkoDQzoK8DtMaF4M8Ylt15+PER57WQKY1moOVlTxn2490C\nHdiZHh7BJYGZLAlMxxNy03x+B5ZOAsfpNHqTLFlczPRpvyMv73wWLdxHZ6KpXDXNh8XStVloyeJi\nliwuxm5XprJwuN1w3O1WAUWDBiX6wkepq3vbsN+V1t154bKtbR8HDv6YQ4cfBGDL5s+zMDCVF0ZM\nQBNWtv/wQhwXqCApuyP5In5VpdE9cvO/r2F/4SJaNA/tDvXQcbfqn52UIZqbjfb9zrjd6iHsat0e\n87Q5GjQtkLB4bvLx0GeCe+ikKbHtYZOU+WBg2Zakff8z+eeM+p5uoztRphJQ2pfnzafJeTt58qFT\ngf6iezU526Je6d88rJcyOyh1Q3cAZR7pn+k0LKyeaHa1dAoXR+Nqvx76Hwjo9liPUAJ/uJbPaE25\ntIVE71zXcnLmMXvWn7HG1QMdNkxlZBw8+NrItRqwWHs2D8QXOY4nmrHQIroW/iWlxrS9Tc1rk/bb\nteu2hLaqKv1NIhRysNVdwbgBGZQ+fBn9MpyMXaxMePsLFySMBThyZH7ceDuBTPUGmx3IoZ9bvWGl\nphmjWUtKf0dR8aPU1hofOAB+v559s7Z2OZu3XBoTwq3u3WzcdGGPOcpXrZ7Cho2Luu1jcnLoM8Ed\nNZV43AGC/jC5LQfpysHvjleMmpUjyYLg8TB36oWMHzGr544fE/5AU7fHm4PG41e2tfNMSM8nHU3d\nesHErn2hjxWLfTzT6gTjwoPwtyX+sKO5zgF+85vfxLYdMtHOveovz5E6I59bfUbXyDPPeBeA0aO7\nrnuZm3MWKSnDkVqQpuZ1ANTXf9Dj/KMufllZyVP5pqWNZMrkXzF16pPMnPE848cnT1IFUFj47Zhw\nCwSaKSr6FZoW6NFMEQ7bqLVn8eodun+91WHnMv8cGhtHsnbNLaxdo9ffbG5WJreoRr1po+7DXhju\noL9FaesdHUYbvcu1mbKyZ9lXeC+d0bTEwh6HDj8EQFnZs3g8JTS39FS8WXbpttkVBw89QGVV8jw3\nJsdO3wXgtLUT8IZYdv866krcCC2x8nqUS6cbtaLj9eE+3Wht7z5LXJtsZ7pP11a/3eyKBRIBPHOz\ncnO7cubQhLHHjrK125yzKGveiqtoJZ5Qa0KvXc2Jme9GhfszSkv+ENlY/hYOdKG+ceNGMjImsmRx\nMWNG35N0DIDVloHNmkYo3I67Vb3yW62phEKhhACgeEKRObvdiUIpWthh8OClDBp4Bfn5FzBi+JcM\nhR5A+U5HaWpaA6gq9WXlf6C5eX2skPLOnZ9l2DCjzbylZRBgoTJvEP0yjG8I2Yv600/TTYpRz6JD\nh5Rn0+7dn2HtmlsM7pVbnEOpCKp5Fx0+E5drIAUFS+hMY+MqVqwcS139e2haiA0bE+MIqqpeQkoZ\ny20uuhEHvV3QPFz0MBs2LkbT/ASDLVRW/pWDB3/Uq7EmvafPBPc7v6/juXvX6BeSIVovV1rPz5vc\nkJINEy/lYv8jvFugnuJv3XUu67+XGIL+SUfTJNYkvs9RcutC/LFW/Vh/0dDIDd5fAvCNwN18K3An\n4wZkUvrwZUl9zo8VZ9aXsKdfgcWujOp+TeX7sKd9Bkfm9eQNVaaag62J5q+R4f44RyttMHxeCq+W\n6G53JbuNOb0/+KB7rXnaNGWucDoH4nD0J+Cvj2m4I4Y/ykMPPcTTT3ddiSg/f0lk/MiEY7///e+7\nFEjxJdtaWnQ31mgQV9SLJBrcA9Delk/BHn1Rubl5CHsLLmJRYCrnnp0Y0j/hkrNpsuhrLwcOnEdZ\n6QyCgTRmBAcn9M/V0imz2XD7VDSt15tNwZ6LcbUkLopH57V3793s3Xt30nsEoyYeCHatQETXFgC2\nblvKipVjDTlgQNn2y8ufw+stY9XqKaxZO6/L85kcH30muIUwuqVZtBAyYgOd5+mA+V9B3vAyh6Se\nvnXm8ByGdgop/zSQlTeY/sFE/2+7tJK5fxuarZYMKSkoKeeKdg91Uq0ZLFz6dWZcmjxl6PFisaRj\ndYxPaLc6p2CxDeWSO3+RZJRCIPhw4/PkfW8G2jDjVywslXYcjbrsiYEDLmXRwr1kpI/HmTIYv7+O\nklJlklm2TNn8W1sT3wSizJj+DLNn/RWrRZkFhg8fzqhRo2LHO+dZiTJ6VLyws9DerjxFWlo24fVW\ndHm9I0f0N41o7c4PRQv3dFH0OkvTv++trsGUlytvkyt+dJuh3+2+JSwNnEXA4iDTOpnrfUbTT0VF\np7TEcTQ0Jua2iRKKS01RVPTLLvtt264H00UXOaurjfmI2toSF5Nj1wn13jng0OGHWLHy6NxEP230\nieAW1sTXZKGFaZ2qhLRTC0NqLsFjCMD4JDLxwuvJigsTnxtUEZUzGtWrtX/GLkP/P33tIvb+9BKW\nzh3G/5zXOwF4tFx+oWRS03/Ib9qU9Pjyx3bQf6zKn7G0fbbhmEDgtKbxzFdvwtOqNLXFX1J1PqOC\nW/awIBuP1Zoa+TeNsKZrefGBPqFQiMLCQsrKyoxzEVby8s5h82b1ZnDe0DlUlVTEnSO5fTp6zSg7\ndyiTRl3d2+zc9cWE/gV7lGbv8eSwds0tbN60lPp6JXwe+vkdWLpIU3yJdyqLA9O42WdcpLSnJC68\nrvDm0AMAACAASURBVKl9nWVfms+8Gy+i0rXHcMzj6TrwK568PGNB6oKCrt0hjedPTDeQmBO9a3Gy\nY8dNvboOQEXFMgAzD0s39JHGnXhaV844/A715XVKSYnHiT/U99VHTgdmXTQGb0h3VxvSbmFahZdD\njWuwiiz8vpmsDSsf6tsC9zM6P/24Ktv0hhHXXsyS1x/GmlGOsCnbuT39ckOftmalreba8mIPGzD+\n9d//varU0n+E8QFTY3FxtFitaYRCbaSmjsIicon3ZX7ooYd47bXXWLZsWdKxLpe6XspqN0Ghf++a\nmpIvDEddDTUt8bvs9ZYltLlcRnNFIJDG2PAg7v3uD7q9p+HfPIOgr5KUpXpVnoUB5ZE1MqwUoC/4\nzmND2ocs/f3DXDBxANPPH8nkOFMOgM/bc36aqVOfZNBAY5Hk1tYdXfTumc6LslFbfzLa2rvWxrsi\n3jPHxEifFguetkBfLPOn5PGHprcAJbh/trKO3RVdv+J+mrBYBJa4aj1hGaKsfR8W+ziWn7uXpdf8\nhDenPM0k3zJWa7NOSFh7b5k7bjA2p7JVWmyJVYmGTFRCZnZ4NFEl2hN0U9bph1pfYUEI/esWH5xz\ntHi9pWiy60jGN954gz/96U+xepfxWrUFEcuXAro/N6gFuHXr1tHS0hJLF1tZqbu1dsbT0b3PfCjo\nNSQfS0bWsAEsefxbDJs/k/FhtUg/+Ez1u5nams7tviW4vdVc9+Of4kxTrp7WFPX3z9F0189gsHvX\nyNzccxg08AoGDfo8c+e82m3gUW+R0rgofOjwz477nAA2m/KaOVz0c1asHEvB3q4XrT+t9IngtlgF\n6dkOzrtW/3HO3P00Ff2VhmQH6mQub2zXX1mfualrG92nA6W9Tg+NoKStQLUEi8hyXcjAUZO5YtZQ\nfKgfZ1ev3X3B8K/djdUxlpTc+xCWxPWHK+/9fmxbRqZV03EYidEUsnF5LXf/WaVL3VD/Fv3l0Vfp\nyczsWojGs3fvXioqKmhsVAUh4v3LBQInujCNF+otLS18+OGHvPLKK9hseYwds5yyUj3twdgxjxuu\nU1Orvt/VVSrEfmrI+GBrF91nyOzM1NyBXOs9gzGLlelp3hO3UDTmIJMeML7pCCHY5zIuCmta91HB\nIvJ2IoQgJ2deUg+elJTeRwqDnoK4pOTpLm3SPeV4iWfN2vmsW3cOoZDRP72+/t2jmtengT4R3FKT\nTDhzEBab4KxBJUwp+htDpxhThVbK/vxzl/KJvX7ecD47PXEV/dOEiAjj1mAjlR4V1Ra02CnoWEJW\nip1zx504j5GjwdavX7fHvR2JJhtbFyYwLRypndlxwNB+4MCBZN0T6FxkoidsNjW3qLvgrNAo1Y6V\nCwJTAXj99ddpaVHau9erslXW19fzxBNP0NISJv4nsnOnXscyGHTgdCrTgD+gNN+zQxO43K8nSBsZ\nPrq/2YxvfY4JDyzBkanOZ7FaWXTH7WTkJqbZ3duyislhJWjPDU5EdhkloXC1Gr15khdr7tp02Tmh\nF0Bp6e+QUnIkkkgryuTJjzBgwKVcsOggC87fljCuK4LBZvyBup47mvSR4JbgKTzA4QULSPv7Ywyq\n3EBhmzFtpxs9v8a9F03oi2mcVmiRH14w4p41aNwUbvjNizx5/SwsFkGK3cqQ7BS+deGxmxj6glcf\n2kpBxzpDm+jCxe7w1jou+kqia9rf//53amtr+ctf/sLWrVspLCxMOj5ee7NYek5fG9Wmoxp3ltTf\nGKIpaaWUPPXUU2zYsIFDhw7Fjre1tfHWW//P3nWHR1Fu7/eb2ZreG0kISegk9A7SFBBsFLEgVqwg\nKnjlglcv1/ITFCzX3kUURURRUZDei9QQektI73X77sz8/vh2p+zsJuEqArrv8/g4O/NNybJzvvOd\n85730NBePE9DIkVFUh6ioT4OVZWUYlhV2RpagcUvxYuxq+QX3GUbgrtsQxAeemFVrAzDQGtsvhrU\ng85cCu6yDUV7rhU4d3Lb4/0DtL+mBwnxN6KkpASLFy8WQ0hyhIVmA360WDjO6pcVcuzYLNW+pMSJ\nyOryJhhGOal7CqcC+P24aDHuhr2HwFVKvQvLnHT7c10m8nnlSxcZ/PsV7a50MO6CF4EAGkRj8osv\nIy02FDd1l/IEO+eMwONX//mTXO9988Xt1udXq44XOI+jJkTWp9KP0pXOqEF6T1rqbc5UhhHWrFmD\nvLw8/Pzzz/jmm2/gcrlUVL2oqMEIDaWeMkNokcrgwUqWhBzvvfcerFYrvvvuO3qOjCuvhTK0sHbt\nWmzZoizp96C3k4YBqqulUEhFRToaG2OxbesU2GyhaG0LAeFao6r3GnylOYTl1esx4KmJfp/t90Ib\nfBMaHNXQggUDAo7TYveuiTh7VuJOZ2RIRrVdu3lYv3498vLykJeXp7oeqwmB4KNNHgCUln7n9znK\nyn9QfPa0h/MFy+9oE9cUBfPviItmuJNKlZVq8eHUAHU/uRFpjLQcenli9h+qBnilgrgzewJhLrvK\n0VBTITof/RgdTyxBRt4qxFQq6YmEYVESlY/r7D3RlksEIzO4rbsOBaujjBiXg4NG52ZrcBz0gjRh\ne6oYPXjhhRewcuVK5X0IQWwMlTM9l0fpaZ31aU0++4IFC1BcTMveI2UqipFCy5p1hPNBiBHj8QRG\nwxIcyX0UVVXKgp4OaIPjWd/gPzd9i/UR3XHuqvHQ6lvuPV8oWF264neSxEXB6TQCYPDbnnHomv0R\noqMoxdBgSAbL6hHkTm4uXboUhYWFSEyQmkOwjMGv+qF3ErIpGAz+q3ftNv/l8javUvoB/TcrPpeX\nB/TG5Wix4SaEsISQg4SQVS0Zr7MrGSMRpWbEaaU42X2D2iB//lhM6qVmKvwdEeYuwEmw6UBwcal+\nF4p/TQ9HfOUBJJZRTneHU1+h3all4nFBIOA5DglCBIY4O4GTVeNlDZ8EbTBt5ea0c9Bo3Uv6Q0cV\nhtRiUXeDP3yYcpWLi4sl9oebmeJysyicq4rF8R07dvT5/D160MR3tBCK8BvToc2gv8PbbYOa/dvr\nGQs0YMXY9dq1a1FbS6mFYncgANW1hZjZbRSQ3BOVJjsSmmio8UfBKmsPmMRLYSS7PQQxMcPEuHR8\nHG27x7KSg/Txxx9DI9cjJ4xfw110AbQ8j9SuL5wveN9vHN0p0+tJTZ2qmgDq6vbAbq/EuXNvBBQK\ncWEe92MAjrd0sN7RgKi7pEKF6PO1CuH9IF3Ay5ajtMGE/mVGFFbsQoL5woR8Ljb69VJyf3VOE5JL\nJDkDc50T9ZUSh9fGmTDwlikYMGkyjKGScc7dXARWS71sPRukDF1ofYfLXC4XPvzwQ1HAKiX5brRu\n/RBKSmgsl8iScuPHj8fMmTNxxx13KK5x+vRpBAl0wjhycCOcZ2m81gj/tMp+/SRBqAPV6xDngwXT\nlqcJ9SBBhxK2GMl9p4HnBZjsLoQZLu7kG+Z8E7sr1+Fo7Q6sKfoYOqjfJ50uGoMG7kZGxizwPI+c\nHKX8bGLC7QAAnouFIIQDfkIlnKzGoHev79G+/fPI6vKOYkxwMM29ENL0311UtMTnfg8LyWhMQ5u0\nGSJ1NDWVlu7XNxxG/vl3kJf/X7Er0d8ZLTLchJBkAGMBfNTiCwsuxM6QKEcv3sKgxEm98Pdc16ma\n9f7dER8r4EjtNjh5O0LJhRenXEzM7DMbP/UhKIoGOB+SuwJcKDm5V/zsFBwIjY5B/wm3iWwZAGio\nsonL+3JrPtLdcq8AfCbMAOCjj+hPzuVy4bXXXoNGE4zMjH+gTZu2YtLQAwKC0NBQRUk7QBONnmKd\nXVuWI7/xiDj+hgGjFWNvtQ3ENY5sJGyRjFilrUhsvSaHBbSyL52LRx6bh5d2W9DuX6shCEDIRTbc\n5uTesPFWHKnbjnpnFXSC74lPr48FISzMZnVxzNq1B9Ch/Vbs2DEaR4+c9JuAjImlvTkJ0SAsLBvJ\nrW5XVZZmZsyG0ZgKo1G5gpbz5AGIGuXe8HQLat9uHjQaOtmPGH4WbTMp3dTlqhMrNR3NdCP6O6Cl\nHvfrAJ6Ch2zcDMIsxYi8cwqY4GBkbtyAjPXrkJMu3eonrj9szhZd6m+D2J7Ug2R5LRI7+NZovlRg\nGRZLRrCY+YAG25+Wkl9djrrncV75wguCAM6PIfaIOhWaT6E913zHoLIyafVRX18vUvscZptKmKt0\n3i6UvrAHzny1AfJMHwJ4HKhZL+6PCVZKo4bAgNZ8LAxuDz3ZGQ6T21DI9VWi+RA0VFPaZlsuEUl8\nI97fmg+XOzHr+iNaETWB0u7XQwPp2XVe4TXvxK4vMa3c3FxxOyGRTmaNjcfc59uxa/fV2LtvgljB\nGBv7Ns6epcqJUVGDkJnxlHh+TMwwDOi/CTqdkj766quvIu+c/2YVAFBdvU1UEHR5NbyQo6SEhudO\nnZrXoo4/f2U0a7gJIdcBqBAEYX8z4x4ghOwjhOwDx8F+klKrtElJ0LSiL+ht9fSFCiVWVJkCOgRy\nxCRT77N1VQVS5869xE/jH287pBLp2MqDimO1dpp01oeGoPNQqt3hbTDeeXgTht/3DDjBCQLSpCqi\nL6xfT42uzWqD1m2sEnhqwAgH8GYnqj86go5t2mHAAEmIiZcVBDl5O4rd2hvsuhpcN2Q0xg4ZhbFd\nJWXKEBgw2tENw1zZcAkEZxoOQiMLR4QJQQgj6bSysSEfdr3S460xqfWv/1AQAr1uMLTBN0IbMlGl\nf242m7Fjxw4IggCe57F27Vqfl/E28A5HFXjejk2bO8FiyRMFpQBgxbfbsWTJEvftGbRu/WCLHrWo\nSBlmsliUrJY6WTER58PrNxrTVPtq/ubUwpa8NQMB3EAIyQfwNYDhhJAvvAcJgvCBIAi9BEHoBQCG\nzp3FYwUNtHcf6355CvlYjO/+R2pHX/nI6NUP2QUVaFtWi8iIljEeLhViPn4Hmrg4VcnH5rJl2FG+\nEn1vuwWshhoyT76r99g0cdzulVIiMpW/sCKV3btpgpRzusT+laMc3TDJrlTLG3g8BcN7DkZ8PKWe\nWonSkObWUOqfYOOQ8KsTib+6kLhH+Rcl89HQEx00xgE4UL1OYbiNgg4aCzUyFbYC7I1XGu4nR6kb\nFv+RIISqZ7O6DDCaJJSZlXUSixYtwrp16/DNN9/gyy+/xJEjR3xeR85dB2hhTnNtzaxWK37++Wc4\nHA506fwGenT33V3K09/TG7t2Xw27vVL8bLOXitvx8derxvfquUy1j2kiCfp3QLOGWxCEOYIgJAuC\nkAbgVgAbBUG4o5nTEHn7beL2pFW0g0dfqx3fxj+OYsSqROX/7tBpGCTXNoK9TDtwP9dptrj9jHUZ\n2m6lhi/j7PfQGKlIv4O3oshyEoysh6bH4w6NlmKivCyMMMSpLmP30ATbtlUXG0VEUO/aaXOChUdC\ngVUU14j3dvEKypxcO1zTTFd0Q2dpyc9o4iFAQCaXgCQuEl1cqUhoEHDcuR0bS5ei0MHA6KSsjqfH\ndMRL47Ng0F78HE5R42HEVewHIRrYnb5DDMePHxfDG76wbRttx+ZwSN9HYeHiJu+7ceNG7N27FwcP\nHkR8/HWIjKTcfLvdjnnz5mHevHniOA/SWivlAnbvGSVuR0RIbdq8Y+eA7+bRnnL7vysuGo9bmyiV\nsFtdtJS4O4x48jz9R04I+3vPmN4ghOC/1w7HR6P7X+pH8YkesdJz7SiWmtK2KtkOjaEnEuOGivvs\nVh5rPz4Kl4ODZx5yFku0PTk0YBXL/CQuUox9jx6lTBwajUa0aUPjzIKOKFgpPkEI7HYaktMJGtQ5\nJC+vzlHh7ywAQNhw2iiiwVkLwtLn0UGDMc4e6OdqC5bnURMVhBohHnoSBos1A5/f2wf3X5WO2/qk\nNnXpPwyL2w7AghT6bMRFDVmqV5k949WIeqijM3zhxHGaV+F5B8rKV/oc44En4egdZjl9WvL6ly1b\nBpNJmkyWLDmI7Kz3xM8uWTcl74YMvhDhpYbIc9Zmz/kr44IMtyAImwVBuK75kQCRcUazY7PRlwkF\nC6kEOMAqUWO1fgxWGCZc6sfwCW24UktmUwFtWaZxc4mjtFI17G+rCnF6bzl2rDgDayMNUdgWzFGc\n33309aj29G8kNOGYxsVijLMHernSMcHeF2STxO0dP348DAYDXC4XHA4HzHaLQp7VFywHykUdEgdx\niVrgAMAJTqw8779zzjuzpsDB23G4bj8IIdBHPKbQWKl12sDzZ2DU9oCd34AdfBckRfzJzgghqDJG\nILloEwTeiam2ERjp7KoYEhcXp/jcmo/BVNsIUYnQA4+2OS/4js1HR0vt0U6epKEU7/yFfHVz/Lia\nOUwY38wXTxceT0PooqIibN+ujGH37LEUI4afRb++69zPGzDcfzgMnZXLXyfnhN5Sg3rX5VVYEkDL\nkejVmWjGphlYPpbS8TROM8BK/7Z2C/1ZHdlSjE1LToAIHIIsSm56WGw86p1Vin2VDPXkGDCIFEJg\n2S9V2Obl5UGr1cLpdIp85HNsOQzt/avPNW4uUny2uz07QzDNIdh5tae3uuhjfJu/CJzgxPfnX0ex\nicZpCWFxxEQ99tzarThrPgWbph5X7ZiN0LA8AASJ4Zeme9NugwMc47vHp9zjHh/eX0zoDnEqPW+P\n7rivpsIAQKCWFvDWlJGrMPp8FqI23DzvxNmzLwMA2rV9FgClgK5fv94nE8YTSmmJl/5nQhAEbNiY\ngZ27hv0p97s4oRJC8H7O+1jw2wJkLc7C8Zrj0IIg3xbc/LkBXJYghOA/RKmTsjqTLoWJwEOQeVve\nbetYlx2sV7PohkobDlavV+wzE/9MowxbHPR6PWw2m7hUZwUGwQObphSOt/eFBixusw1Etb0E1z0+\nGzaztIRn2yl/kw3OKoVnDghIy6f6LBZBg2V5C3CsbheCnWE43ZnDwvEMzmSnINSgQfBFbm7hC6M7\nJ6DNzePAwbegVUlJCUJCQtC9e3dElfsXvfLIwqq72lB8/706Tu7tzfvj4nsQGakMA3KcHTwvVX/K\n9doB+GwCLRpu/tJ53I2mEzicOw1VVVKj7NOnaWs8q7XgT3mGi2K4XbwLbx16C18cl8gnWpcD+4SA\nCmBTuK1PCkZ0iGt+4CXCyOvewkCL9MKYgtwazwKvFJYjyopEl5YajLF9axEURo9Vl5jhcieYurrU\njXy9YTtUhfDwcNTX14uaG2Mc3bF04VPKgRoCNlJKtEUJIZjW9VZoeB6c4ALv1arM2qoZWioJQipP\nY7eEobQ2TdDVsAdF47H6OiQnWRBUnI5GW8v1PP5I9GkThRFDO8HVhKyryWSClml6UhENt6yMPiXl\nnibPCQ8PF69vtVr9yvNmZWUhIiIChDAYPuwMWrWi3IbCwk9x6JD/e3g01T1yu4BkuC9ljPu338ai\nsnKN2JC5rOxHFBZ9Jh7314D6j8RFMdwna9V0Ip3Ao0qg/9D/GutbU+LvjpfGZ+Pju3s3P/ASITgy\nAUnFyqXg/01iQMADwcEIiaaJMX9aK2E6G8b/g+qG8BwNO7h4B3q6MhDKGzHS0VV1TmcX1ZzWQwOt\ni4Xdbhc7w0cKIairl0IwrZ4fiOQXBiHqVmVHdfOeMvA8NdiZvfrhhieldmJcBI/wsemIe7Q7fi78\nQNwfn04ZLQybAE3BSVy1bRbaFRyGNmQiWF0WTkcsQ3THaQgqHYklTjWF7c9EWmwoiLNpQ1ZWrpZR\nkFeehoTQkJPc426b2XTbtaNHaZejhQsXYsGCBTh3Tq3+N2vWLFRXV6Ourg5WqxWEEERGUILC2XOv\noL7hoOocj6bK559/jrfeegsrVqwQjxGiAyHsZRMq4Tgrjh57wmuf/xZufxQuausyOXYbDbC7O49M\n7tu8hxXA5QdCCFJGz0GsbAl7NpEAgoDaiiIIHO8Z6PN82+FcaN3hhIgEahhtnBkMCG5xDPDJ6e7n\naodbbQMRKYTAeaRGsXzWJSrDHBznBM9z0CaoQwIeH0ij0yGjZx8Eu5sT/PjqS9i0dzHenHkrTC6p\nlHrUI09CGzIOcc50xD7+ODScDVG1p8BqU5F29g1s6GbD67uAd7kb4IAWXZObbmN2McEyBA5t0/cv\nKFLLosbwUmFMVBRNLtPQhdQth/7f90RcUVEBm03d5eeZZ57BzJkzMW/ePISGhqKkhCahPawTjY9n\nTUq6BQsXLsSiRYtgNCpzBWfOSI2KCSEgRHvZJCcLiz5X7Tt2/B8X/b4XzXBHGaKQe5dUUluh0eA3\nvgO+fqBfgFFyBeOeQenQua1gts2OxiACIvBwtkCJtv6HH8Bq3Ukwt5HfUvZNk+cQEISAsjVYsHA4\nHEhJSYGeaFFfUaIY++4Dd+Dte29DTYWaeugRMeIFwFTjwMS5Un/E03t2qsbvXVUJVtsGdVHZCB1J\n1Q0T+7TDsM3T8fUAGu+tEqSS85yiS9s/1SVbnfd1tkWETtmxJsOLRQJAEVwRrPSTzV6G0JBOiImh\nLJKBA3dg0MBdfu87f/581T6WZREWRicFe570vdTX022tRm24O7R/ESaTCY2NjQoaoS/wvE0Rmvgz\n4S0v60msAkB21rsAgMrKtWhsPH5RVwUXzXDfnDYWMFfhtg60EGdJnhP5QiL6pTfdCiuAyx86dwyv\no5tFIIAHzwkYPe0pMNp2AFF6wj0OLBK3zWto/8AzB6gXZ3LVgWi9fobNTAKFhYUIZ0Pg8pL3dNit\ncFgtWPzkNIRfm4boKbKQnPuZty49iSX/2gWryXc/yIj4RIy4bzrycmrEff/Mex3WXz6EcdFzIGuX\nICeDPu9pQerReO/ANqpr/Rnw2Gsbz2Ff1a8osZxBFpeKiQ19FOOGOH2FJ+kXHcobYaihf1NR0edo\nNB0FIdS5MugToNNFicVQ5ALDt5XvHxa3d+6kE6TWh8fdnAa9N2f8UsBqLcaRozP8Ho+NHSlu/7b3\nOhw8dLdfls7vxUUz3D03LQReycDc1QuQm1cAwhsxqnPz7aYCuPxxWxeaUJqUPhkAQMBDcNoRl9YO\nupDrFOyAiTdpEdEgxT7L5tAKTIaVXl7BS3CMCaJGXesVConmJSmAClctrCbqwVXalLQ/APjgnYfB\ntDFCm0CvEew2FmcPVrrv75tTPOqhx7DjOym5arSUY33RRty17WEMWz4MkzbdDQCYUVMHO3SIDaWJ\n0OnDM31e72LB284FNR7H2cZDOCnrLZkp87I96oaHa6QuP57Q1HBnFxAvU+Dd9CAoKAghggE6NN+t\nqnEr/ffg3Qnbdi5aA2C1WtHY2AiNJsLvuf5QXn7pe1Hu3OVf/E1eXORBff1+HD7cMj2XC8VFM9zd\n7MqZxiwYMOZv3hD4r4Jb+z2Fw3ceRtset+CWhkbwjA4CE+Ezm65llSyOpvwqNlyHbebvUFxFY6GR\n45Ul78TrbM6tELe17Bv8XPi+6noNVZWKG/YdNwkOGz2HMNEYcd8jqnNsFuU9snPVLyQAjDGb8eTI\ndtj79NXIe2kMooL9a3v/GSDusHCF7by4zyion+ls4yH8WvwpANp8YaptBGKFMJz1mvxcXgk2nufB\nCAS8WyB0kFOZAPbgakcW6n+hIlK1K2lserBL8vbXr18PjebCtXhqamqaH/QnIiNd2WszJuZqn+Oq\na7b63P97cVEMdyTHw+j1EluZIIzqrI6zBXDlgSaICEhiNh6qq4dDHwW7pjU+m71DNVbD0Bc98cUX\nmr0uV+9AScVp7KlYhfDr0qFNll5wJlSLNsFKYTLebbhdghMml1rDnNVoAJkeeERCEgS3Tsr3iw4g\na/hI1TlrPpQMWJejHyHY6rs0/lXL/ejcinrxl0OrORdRv8q9XRkIEvS4xS3Adap+Hxy8DXWOCqzy\nmuisggO1tdL7KV/iWywW5Obmwkzs6OFKB+B7UgAknRmBF+CqoglE+YSbk5OjWJHFxY1B3z6rUVlZ\nqbjOnDnKSltPBawcPP/nUTAdDmWxWOvWD2PEcInb7vkNGAzJ8MbFiHVfFMOd5HLB1W0K7FOkLmdE\na/xThHcC+HMRMuYtn/vTz/2I9LYGwM0CYYL8F3/km5TKdXbeglJNHhoqpeVxcO8EsDoWGSH0xUjk\nIlQeuDeKjh+Fs1hKdJWcVkqGFhytxcR/KScUefFQXOVBVKob36CD3QEdcSLpElVK+kKlVv1dMGAw\nmRkqdrQ/WLNBPGb2MdHJmyEzjGSYPcqCHOGRxaViqm0EUvho9E7NFsckurWJPIqN1Z8fg7Oo6SQj\nAHTutAghIe3E1VpMTAyeffZZVUek3bt3g+M4kaECADU125q9/h8FiyVf8dljqGk3oLfF/d27fSb2\n+vRg85YsALRK1F97uAvFRQuVXLenM9p/KHW/6MUdamJ0AFcqDO3US8SOJ5YgreBXpH14HxpW0clb\nL1P667dnnmL8vqpfYXE1YGPpUnHfT6/Nx2czpVCGoX0UiIZBlLtvaRIfhbTQLk0+27oPlFokJ3Yr\nvbZf3s1F66xuuPOVtzD83ofQfYyUeIqqphzlF25lcQsTjXvqGrChoBjPVNVgaUkZvuKGI/HP1iZp\nAkyIAYAWjEbZgSa4dwJ4g4C8xlzfJ8ogyES75L0jd+xQr6QYMOh6SiqzT06kqyGP4bad8B/a4Hke\nrVrRtmmeidKTfBwxYgQYhhFL9bOz6eRgMpmwefNmfPCBxLXPOTwVPO9CWdmPF73ohZNVePbts1rc\nTm51O+LiJDG0oKA26NbtUwwbqqxl2bAxA5s2d8CJE01z41uKi2a4TwhUIe1uB+U0Ph//xsW6VQCX\nEiE+Kj1lXkXjunUgOh10GRniviCre1lMqBfOCS78VPguKm1KrrHL6QAbQZN/PO8Co2PBu+i1BbTs\nRT3lTtZtK/sWjMbXMpZHbGoauo+6DkUnpdBMl2OfAABKowm6lp3EzNo6xHEcJjWa3Ok5gjBD84m6\niw2PwdLrUmCIfBSsvofiONEysJvMYlhJjhqZDja9mOS1G4NaVmtx+8RbMdbeA532h2Fct5GIjxKD\nSgAAIABJREFUEpqPX3///ffo0P55jBh+VvRcOXdFK8MwEDgevNWFOXPm4KabbhLP80jQylFY9BmO\nHnsCZWXfK/8UQcD5gg9htfpWpbxQCG4Gk16fiJCQ5ivAGUaDqware8+UlFL6K8fZ4XL974U6F8Vw\nlwtR4vZmvjvSbEthDk27GLcK4FKDELQ/+k/lLi+jSnQ6EEIQff/9iv36sMnNXp4JpsZx06cfgI02\nIMlOGQkpfAyKzKcwZvos1Tlp3XqK2wdrNuBM6jHUaqt9FpJYG6RYbmON5FWxnA2rF9KWWyMsymKP\n/bxaJ/zPRscEGsNJj6WsGb2eer+EjVKMa9xQAKMmRJzoGG26eKzKpjRqgsxwt818XpwU2rXzb6iC\nvqhEohAJrZ0g2RblN3w11TYCgwdToarc3FxRbtcDj+FmWRa1351ByX92QafVgWEY9O3bV3U9Dzyx\nZ4dDGSO328tw5sx8HM59yO+5FwKPamLX7A9bfI5W65s9w/MubN7SCVu2Zvs83hJcFMNdjyAsvV/5\nZYcbL23WPYCLB4ZvRHj9j9JnTsmv5t0FFXGzZiJzkySuTxhlkYgv/Hb4BwBA/pkccIwLCc4I3Gcb\njlghDHur1iAsVqKYpnbJxsyvf0K/cbcorrF/y09+E4imOmpA6sqlBNKgHbNBAJzQ1SCS4xAkCEBs\nB2DWKWy8ahkmOOZhxcOXVjf95l7J+HnGIAzvQP/+OB0tWSfEd4OI1GDK7NAYB4OwanZXP2dbMVSi\n0YRj/vzXxRCJR9TrOnsP1XlyWA9VqneyBLo24SB6FklJkiDYF18om2h5BKpYlhVVIXkz3Td6tFKX\nXQ4P39y7B6XTSUM1JtMxOP+A5sJ1dXvdz+c/PJafn4+6OmXuwFd3oE2bf393pItiuENDQjEgI0bx\n465s9F3wEMCVD4EAYY2SUhrbRNEBMSh/+Bpd0xP6qYZ9+O7867ByjTi08RcIdk706hy8FUntJarZ\njf94BoQQhEarS+f9GW5LvQNFJ2rw3UK6rI0v3wud04SQIUNwquYEMh1OIG0wMG0PGrRRuHctB4Cg\ndfSlVbokhKBzksSFT2tDQxSE8Z0EZt0iU4QEQR9Gi+Lk4aZ4PkL0uD3h4vXr12PevHmi/naCEAmi\na95kaFtJ4ZK4h7qCsASCnYNBlvAsLFSGxdasWQMACk+86uMjsJ+rh2BVskfOnpEaVjsdNe5nVhpu\neUzaZlPrtFwoCgsphdLjRdtsNnGV4Pn82Wef4fXXX1ecFx4uTXZJiZNU13W5mk/g+sJFMdyekvae\nraPw5Ei6zEqJ8s8qCODKRlIV0PaMZKwZzr/hZvTUI4y306Icj2ZIU3C6hY+srkZasw7ARqxIatdR\nYZAZtyZ4UIQPjW43BS0pVmkEKvIb8MPrh2BtpN5dYikt797z4ABU22tRqmGBrImwOFzInic13I2+\nxLxtb2R0kYz42pKvcMBLMrfKzdMmDGWYaIOvB2SGmwERDTfH+S7fF7SAp1lR6Aj/XX4ibsiANjkE\n8Y/3gC4lFPYz1As1nfDhkbvhoQNaLBZoounk7iwzo/KDw6h4J0cx1uWSvntPzNib9cFzslDM76Rr\ncrJraTQ0RDV//nw8//zz4v6qqirVeQCNdffp/RMyM+cgI0OtYfK/hnIuiuEO0UmxxOnD2+KXGYMx\n59qAIuDfBd4ed+KLL4rbHo87tJCqwg2cdHeLr2uTFYUIAgeNTpkc9BhxjVaLyMRWaD/gKtWxyAM/\nIi1f0pvYv+a88hpuz+0/ua8AAIq0WuSnjEenZ38Vx6x5fPBlwd2WQxcurQBq7QU43aBMjG0v/x76\niGniZ1bXFo2yEAIHJzSapsuzLdYG2BoppZIx+peJ1bcOQ/z07mLVqgcpEb610z2hGABoHd1KJYHg\nqrJiwgSpM1RlpVpewFvLW65y+L9IwDocVbDZqad+OFeqfiSERXV1tWr8Rx99JD2vl454aGgntE6d\nCp0uCqkp9ymO+eJ9twQXxXBrWOWPulNSGHSaP02IMIBLDFbmcWesW4uICePFz8RN82LcWfqq4jgY\nQn2QpX1A/nIaEQJWq/R65d1e7n39fVz32FOITU0DAJhq3N6ew470/F/QI9s3K8WhDwd35zjx85qa\nEAx9Vclm6JDQsuf9MxHaJgmJpWrangdt+vRTxb/PNh7CoZpNKDafRgNXjaCgpoWyBIFDqYWulJj2\nQWCjL4wOaVp9HvfLEtSe5KdHwwQArO+egrNMXbCSlZUlO09tS1xeRS52e7nP7Zagqnoztm3vix07\nBgIAYqKHKo6/+aZEM+V5XqWj8tVXvrveA+ou9qWlyy/o2TwIWNMA/nAwMvEnNsJ3Zl1wJ5UObyqC\nrbFBcUyj9R2G8BgN8doa6vUltqPl14Tx8XP22hdcQ6vdhM9901ODzSX4uL/koeXU+2+Ndrlh2NLZ\nCDL47sBiafDdn/Nk/W/YXvEdnFYzSktpWPPwYTU3v70mGbzAY1/Vr6jqV4f3pk8Bf4Oa+hfU3Qc9\nVFa9GqeJQLdu3QDQohqTyYSoqObDZQAwffp0jB9PnQCdrp/iWGXlGpSUfov6+kPYsDEDJ05KfOnc\nI9PQUtTW7kFOjuQVO50NKCr+EgDQv99G1XiHw6Fq4Xb27FkUFBRg7dq1yMvLUxwLDlZr2mzYmAGn\n88LUJQOGO4DfjTr3+6uz01gmkSWKiE4HB+fA4qOL4ZSxTQqT/ffmC4+npde3v7BIsd/l1ciW0dBQ\nycS5z+Ge19RaJQCg0SjDKUEW6nmzLt/J8ta3j8X6Ahof/qGoBFpOOW7rP/6cnoL/CyKDdeiYLE2U\nhWapCKTsbKNqPKvvLm4zggCrNRzn859GfZ2adZJmiUaYLho8OJw6TPMAZWdOicc98gTBvZVCcpb6\nOkRPlwqlKj86gtRUGh//9ddfsXDhwhYVz3AmB2JiYpCWlgYAMBqeUI05fnw2co9M93k+zzfdVs2D\n/PPvKj43NByExe0w6PVqkbyCggJ8++239JlkOuKffPIJdu7cicWLFyvGs6wRPbp/ibTWjyAiQlJw\n3LqtacaONwKGO4DfjUX3KeOdCXPnIHLKFLAREWD0evT8oicW7luIT4/SzHzqZ58iukbdBRwAZi1b\nhb7jKZ0vIlEZEw2JjoFZTw1QpatI9Lh1xiBEJSl1TDwoPaOsYNMmUL5zmKkQXY4oObmhjefB95CM\nTLrThV281Pg659mRSI2+vJPsjgop/upJSBaYToDnSvydAgBg3OGHgoICtGql/i5TZE0uCo9SqVae\n5xA5oS1CrkoG8XjVjDJM+u4Dd+DrhZLuCN/ogM6LSbR6Na1E7O5K8/t8nvCJ51x/jYnt3kVFbuTl\n/dfvtT0QBB4ajZKimnNYCu0cOXIS8+bNUxxfulSq9p082XddQm6usmo1MrIfMjJmweVq8Dm+JQgY\n7gB+N2IEBnYtEFlHVf1YLYOEp+ei3W6lAH+1lRqV4H79EGmX6GDxGcoCj44Dh2DWslUwhkgv0cgH\nZ0Cj1cKkpT/2ameJaLgvBFyp9GLHVR3CqEmJ6Fq8HMM2T0Pv/S/jkxPUQxppoonQT7hr8dP0Qcif\nPxbhQZe+UrI5tL1eospV2GjY5JwpBwJHv/uwBvnSXTKyGaFSMUhxccuqDY9v24Tg3gmIGNMGbBSN\nd69642Xs//kHxbiaYiX1z1uHxIM2nH/ZZ1e1VXFucx3lPWDcLBpvtUObvQzHjs8GJ1tRnT79Iioq\nflGMk9MMv/9eWZ3pjZgYNQ0VAFasWIHGxkZUV1crVhcmk+8enS1BwHAH8LuhFzSY8ZgGHU5+gT6/\nvQCDofmfFW+TVSxW+xcf8xjnqFYpNPbtbvVis5hRcOQwzh+tRsV5asxP7inDO49sQu5mSeGvdTYN\nB4TFD0JUzTF4I7oyF9GnN4sm7FAV9Sb/VS0xLjomNl8odLnAGBsharzWOSqwLG8Byq358Lzq2bnv\no8/eF1XnMU0IdrUL913+ntpFMvaR49oi/IZ05JfkYPPndCVzbNsmn+dpWN8Trk6Q9uszlM0WnCWU\n78yyLDQaTYsM94D+m8Syc+/u9fn5b6O09FscPHgHamt3A0CTXXUS4m9s9n4GgwF6ve8CqEWLFuHN\nN9/EypUrAQAbNmwABN9jW4KA4Q7gd4NnDGjQCGB5F0IspQAjGWKnLLa49IS0rAyXNVdw8f2gMwRh\nwC3P4dyhSpSekarPjOE0ZsswDLRGIwqEE7BHOJFnOoyGynKsejMHy1+ieiTrPz0GgRew9Wsp9jpu\n9r8xbvZ/4HD0QU2UFPbwoOzf/1Z8ZtweUSTPo4uNUrw07JXzmujDg6ALGQfGoDS2ng71AiEIMXvC\nJi2jNGYZKP3uWJ1yBVVyUvIYGT0LV7ryegfX/CRuV4dL8rjmIrUyIQCEwAB9Rjiibm2PmHuVAmKO\nAilG73K5UFAgJWE9glVyxMRcDaMxFSyrR3BwO4Usq91RJTJN6hsO4sDByarqSrlkKz1H+czR0cpO\nXk88QWPuXbpIzx0bGwtv5OTk4Ny5c9i2bRv27r0W7dv9R2wTdyG4cn6RAVy22BzUAE7Oa5YZunN1\n6s7fAGC0SbFYho1Eep+ncWBtHVa/l4vvFh4QjxmCKBeYEILoVikoL89DXswJOPimK3E9utusRoP4\n9KZVBOU4kUxomKRVT5hwecezfcEQHw2WiYGRUWrfswaq36J1trxSL5qnKw2ugIYZcmuVTQE8+YOC\nIzmoyD+HulIpjs65XIhMkHIU6w99isiJVOMlZI3/2G7IgCQEdYsDcf+GdGl0wnGWmuGssqL2OxqO\nKyqSVlW+Eo8d2kvFMXpdnELLZO/eG1FVtUExvqRE6n06dMhR1fXCw6YoPg8cOFAR7w4PpyuEMWPG\n4LHHHsOECRPw8MMP4/bb1ZPK55/TBsM2WyhCQ69Hp44vq8Y0h4DhDuAPB2OUDB4j415H6iVqXeg1\nSspZfq66qAEAktrRwi2t0QitwQCX3Y6cdTQOmdxJKrCxNCiXzu88skncx7uNeLCp+dgtxxIsqqzG\n5jDKt72jn/8KwcsRhGGgc9SCEZRxZI2ehjUYt3Jj733zVRKwyZxEy0uJaYVIwS1g1US7sp3Lv8Ty\n55/Gktkz4LBJNMpz+3+DzaycJDxFOzqoQyViQZMsuRk/sydi7pEm3fKF+2D+TV2+HhU5QPF5+LDT\n0OslWqJWF4mGhhwxvmy3q69xRtb015ceCccptdd79PDNAmFZFpGRkcjKygLDMD69bjm+/PJLsOyF\ndwQKGO4AfjfSXErPtIiVPCqHrIqy1l6LPl/2QYmpBEG9lc1s/WHYPQ/i5mdeRHSrFGh1ejhlWhaV\nJV3F7U+f2q4611xPx/IcfWFTC6mXFffkLLT5YaVq/IuTGPS2Uk/+v8VUCKhn6yuHxy2Bh9Og/n7l\niclQUyFYXToII8WSU3nJyLhcTgxydsB19h5iIwZf2PWtVGwiN9w/vvp/yDu4TzlYthIzeE0sT935\nGACInjYAaOOCwOhZhAzwXXFpNKYBACIiRmL4MNomLT19pqqKsrychmzOu6l+DNOywqE+vaVQjzxG\n/sADD6D2u9OwnazBgw8+iFmzZkEQBBT9cxsq3lH2HYiQ1TF0794d3ggLCxOFsi4EAcMdwO/GpHql\nV/HQPkmTwepUlhtbXVaMWjEKRNs0I8TjHWm0WqR2oQbaEBoGnnMhyB33lner8YVvXtyL6mITKvLp\nREIEDsEDBiDq7rvBNyiX6/afP0ROBoN76+l+zwJgXPf/rST5UsJuULMzWJcV3Q+9rtqvC7kZrKEP\nqmzFigSlvcYCDVgkCC2fuJw2e5PH2WDp3+t2MlSMCwMA4yFbMARn9u3BRzOmir+B8OvT5ZdBKG9A\nSkoKBvTfgORWv2D+/PkoKCjAiOFn0SZNKrY5dOgQTCbJ6z97bhGs1mLwTYTZrhoshelCQzshK+sd\naDRhIITGtKdOnYrEhESYfytD1adHkZiYiNDQULgqKF1RHou3Hq0CV2PDhAkTkJycjOuvvx5hYcqq\n2zNnzmDz5s1NfW0+ETDcAfxuTGmgJeF1bmkKjgG+P/09BEHAgQr6IvRPVMqg1v/4E5pCwbEacF7d\n3yPchTmW+jqEx7fMoH79/G9Y+zGNWWpcVoSNHQui0cDYtSvCb7oJsY8/hswtm1Gvo7QvvSDgVOZ9\ncHIXt6PKn40gayVY3oUf+yoTiIQNg9Y4CGe1uQotbY2XaXDyTRtlADi6eb3P/R0GDkFYbBx0KRI7\nh7HxCA8Px+TJk/Hggw+iYZObMsgL+OGV51FfXoaKPJog9NaFCQsLB8tSL/X8eao1I495A7RjzsqV\nK7Fs2TK0l8W7vTu1R0crC6q0WiWbJS52FIZcdRCCm/HCMAxcleqSfLnB5hrpKrN6yXGUvbofWVlZ\nmDp1KhiGwa233qo6d8uWLbBYblLtbwoBwx3AH4aiaLe6HAM8u/NZfH7sc7x5kOo6jGs7TjHW2joO\nQWbfxRIAsOrNHPzy7mHlTtkLXF9ehJYiIZ16OZF1J2HasgWbCjYhp+4Ykua/hJiHHoI2Ph7/2PIk\nAKCRYTDyCM3yPzw0w+81rwSw+t4AAAOSRBmCZYMZTJpDjVBchRTK0AYZQGSNFDSCckVUE6RU9us8\nVF0WX5F/VrUvMbM9GJZFQ2UFBEFA2DVKtkvbtm2RmJgI+2nK2uBtkkDT1qWfYdEt12H583MVcrKu\nBhvy8/NhsVhEfRpvvRCrla70CgsL0SrpNtVzedCt60d+j8khb/RQ/toB1fGGjRLLpfTFPaj/Nd99\nogDLIYlRIw+dtJI1nNm/78IopwHDHcDvRjfb+1hfUIxF4xnMn8igMYgagIX7FopjRqWNUpxzPiME\n/fa+gMwzK/xet+AY1Vo+f6QatWVmZPb03wnFg4T0MFx9j5L2F5UUAp29HizvgmHu45ixaQamrJZY\nAr+c+wVWdyFGOit1t5k9ukOz97uc4dHmZohRlNp1upsK8wRgZF3SjZERCnKgiyi1TZhUGhf28Opj\nkv0nbT2hLQAYcMsdOLaVanyc2bsLocOkhKiz3AzBpTS4gotHahbVMinIpfHigiOHITikceUM1fV4\n+eWXsX07zW14G245z9uf5Gp09BAAQGbmHMTFjfHZaky8ZzmlDzJe2jeCe2XG1SpXJI2bpKKjmq9P\novKTIyj65zawZQ48M2suptpGwOWjnVxLETDcAfxu1CEU8RwHs5HgQFvfPymGMJjbdy46RlGWSI2Z\nvkwpRWrhHjlMtXaseisHS+ft8S0i5YWrbm2PkAhlYcOx7SXwaE8PXy2ps1VZ6TPM3jZb3De3+rpm\n73GlwMPdZg0xYHknlg+STPOHoxgQWRXfqd+2K2Lc4bwy4VzNl8AYGoaQKBrr7XTVcHQc7Fu3JSKe\nap10vWYMUjtLRTp1ZaUgDEFQLxqDL3/tgEjv88DYJUakgMoROjRFtU8O784zcmlVT3cdb3TN/hgA\n0Dp1KrK6vOm31RgAbN3qpkLavSYaJydST5uC/RTliVd+kIvSF/cAkCag/wUBwx3A70afNk2ru3WP\naAcsbI/b0sbi82sph/VjUE+puRKQxXMkqdIf3zgobgdH0pe/63DlCx2bGupTtMhjpAQZ3WzYN8NU\nYyNAk1kZsZe2w80fAUabiZDs26FlO4AND8HywRJ7YUN3BoBkhDjBBTuRjN1Al9ReK+qOjjh7YC80\nej3Gz3kOw+99CEHhET77fQLAkCn3YtK/X8LVUx8Bw0r33Prlp3DabZKuCQDLgQoxJgwAr025EbXl\n6hBa2Kimmxd7/zt6a2J7o3OnV1usqS7vdFP7llJ3BLyAhg2+FRkvJpo13ISQFELIJkLIMULIUULI\nY3/GgwVw5WDxPX1QNPgVv8c/PLQeMJUB2xZCz1JvuCJSemmaCpfIUXi8Fl2vGQMAiEyiBSWxraXY\n4KBJbVH90UfQFapL2z0ed5xRKTs6YrlUtbaovBJr+V54dVJXrH5MmcS6EkEIgaboCCzaaFRx6nCB\nySAZO17gYCIS20IDyeCWlZ6GqboKjVWViEpqhe6jpFXJgJsnI7N3P4WB1hmDkNJJ0s+WY9tXi8Wi\nGvHeNqWRrcxXF23ZTFLyrzWn5kYXFBSIGis8zysMt6/y+Li4sT6fzxfWrpU6HxmhFMiq/uoEGt2G\nO7ivsuipOXR10cno4YcfvqDzgJZ53C4AswRB6ASgH4BphBB17XAAf1sYdSySh9/v89iCAS9A77EP\nGqNPL6cgpeUlv8YwupwtO0eNTFK85DXGa6tQsXARqh69Hxk94jDqfql4w6WhS/+eCT0hR6WVJt2e\nrq7FSIsVo7NTML5H8hXd+KP7wdfEbZtAk4ichsakx5rMOJBHDY1ZL313vMApelDK0ejyXaIOAP0n\n3oYbn/yXWCjVb4I6EXjfG5IK48HVP4HRKxOf1iO+Y9ByVBcVIO7R7ogc3xaJvJqiWFNTgw8//BDb\ntm3Dc889J8akAarO17Xrx+jT52e0zZwLvS4eDOOfjmq1WpGbm4t9+2jyNjFRkrn17mLvSaoCQHDv\nBEX3HmO3WCQ82Qv+0MuVgXttw+B47aTfMf7Q7K9TEIRSQRAOuLcbARwH4FtDM4C/L/wsO7tpmu8W\nE2qSGCIxVYfBuvy3mmK0PdB/4m1g9dQoF1x7jXis6sE76aMAGP1AF2T2jENMCq1K4zQ0uebw0w9z\ntFsNMCHswrq6XI6om3Y3Ms4qC4wElnqpz1TVQAvg8Zpa8EQy1AIE9HC1QQ9nG9xrk2LXJf3LUVct\nhS44Thnj9UZyx86qfREJXvreXmGNhl8ppS+nxrcoFQDYzGboWoXA0DkaGU2oCG7YQIusNm6Ucif7\n9+9HTPRQhIZ0QGrqfRg0aKe/07Fz504sWLAAK1aswKpVqwBAbJZ8jSPb73kAwEboETM1C7q0MOjS\nwhAxNh1EL61Ekv7THxEyTrquVSgYMCAgaO/yXWTkDxfkVhBC0gB0B7Dngu4SwN8CMW6GwIQGqegh\nXNbZGzv/C3BOrJ+o5Pum59EXpP2pr9D52Mdgmsi2H/i1BANunozwOBoi8ZRwAwCRbXP1NPEj54JH\nTp6MBodaJ0MjCIjgeWzjuqBzq8uvLdmFor5dT7QuXAei0PDgoOd5BLuN5n31jQBRGmEtNOjBpYNx\nm4WV59/EtqWfobZUkgp4/9EtPu/ZZRidQD1c+6bARPpWxSuz5vs9x+4un2f0rCpc0RL4Y5Z4Y9Mm\n5eThcDhw/DjVjk/mJWEp4qPnJhuig751GOIe6oq4h7qCDdWBDdXB0J6uEIiOhT7DnQDVEDBB0jUG\nuy6sJ2+LDTchJATACgCPC4Kg+vUTQh4ghOwjhOzzdGwO4O8F4k52PVxXj9eHvoZp3aYh+OxmaYDT\nAjwfg/hXlPrboaZCDN88Da1KtoPlXQivpzHOSXN7+72XIViLeKMyK69gSfTtB66xEbWy/oXG7CyU\nmcvQL7Efrk+X2CVrCqk40kPOJ5AY7r+8+0pBx1bUOAiMVKmos+XB7sXKMTRDR7Pz9Ls7u4/6adqQ\niX4ZFJ2HjMBjS75DeJxvwz1+zn/EbRLtO0zhaqJLTX4O5U4TdwgrJeTC4snLli1rdkxZWZmKgZKf\nny9uszJzGT+tG6LvkVYXSc8qW6nJEX13Z7R6cSDNOcQHIeKmTCTN7auiQl4IWmS4Ca0tXgHgS0EQ\nvvM1RhCEDwRB6CUIQq/mhFUC+GtiXo0TAy1WRHMcRhz8Hg+ZXcBWKt7TEKsU5bk6pjuWDWawfKA6\nxNL52CfomvMmosLVP+z4NtQj5pwcSCONL2bnvou4iv0gXjHaildfVXwWCEFhYyE6RnfE1KypAIB7\n6hoQz3G40zEbZhjRtxmGzJWAbilqWlvX3E8AAC87bxH3aZ350nawUm+60UvmFABYLY2TC7yA4pO1\nKiaHRuffE27TrScye9Pq2TfvuhnGbHXTAZcgGc2Bk+5QHDuxY4vifn2q06TtPr51b3r37o1//IPK\nL3gnKG02G3bs2AGbzQabjeZL3nvvPdU1POESObQpodDEGGFsL/1WmCaabBBCRA0WQghC+iWCCdKC\nq2m+GtUfWsIqIQA+BnBcEIRXmxsfwN8XEc5WeK+8kmq/HfoCWCs1bB1Q+Ihi7NDj67FiEIPlV7H4\n9Grlz5DlnYiuPYHTQ4ZC715OTniqJ4yh0svhtDkhVNOKtJjqI+hy7BPV89R99TVGCSsRW3kQg7c/\niVvOzKUHBCA9Ih0/37QKT9RS42+P6oDkSN/J0ysR7Q8qq/u0LhNerKzGO9wNqBTo5GdwSpWThI3B\nvqpfxc8M8W8adv9wFitfO4i8nJaFH8RnGjBY3A6b0AYhA5VxXY53YMyjT2LWslXoN4GWhne95lrx\neO5G6fk8yoUAEGk1onMnZWw9NTUVY8eORXBwMBiGQUKC5KFXVlZi/vz5WLduHebPn4/58+fDbvdt\nRBu8NG2Ceycg6pb2+HD6fTiw+kcE9YjzK4LVFBb/Yzo4twiaMct355ym0BKPeyCAKQCGE0IOuf8b\nc8F3CuAvD6Pdd4jsMccjMCEIt4Z/iWvs1AM3yCrdohp9L78Fmw1ad3LHtGEDrI1OlOc1gHPyaKh2\ngPcwA5owts4t6zAoswJalxUlnpJ8cyVwcjVSX8sWOQInzCEY1t5Hh/IrFIxRGfKpDwKM9W0BEPS2\nv4c021I0gFaUAgAhGrBECmFYXf51uz0VrY3VTWuiA4DN5ITTQUMynCwMser1BQi/to1irEtwQWuQ\nnvvxL1dixL0SVW7dB29h8T/UzYCt+ysxOm0gAKBdOxqGGzx4MGxnasGZnYiPj8fJkydFiuDbb7+t\nuoanAhMAbrjhBtx/v5Il1S2DJsOD+yRAG2NEQ2U5Nn32AaImtUfEDVQaweVwwNIghe9+eXMhjm6h\nyVKnzQabyQSbyQSH1YKqgnxYXJTiGDkuUyWk1RyabdonCMJ2tLRVRgB/a6RF6gEv5thshWjTAAAg\nAElEQVTzzjvwAz8IALC7nACg4lAjLBJz5MY9/ivPhPoaAMGofe9txN8wD+WlTuxbnQ8AqIx1y2TK\nltAhQ4YgeMhVKH9OEhayHTsGJi4WAF3+d/ztM8D8jnj8s5hZqC9yovVl3gj498ARxWEUewiQhXAF\nQNQwAViQJvy47GvG4JTbQa8qbHkzho+f3IboViG49Zk+SGwrSQjk5xwU49XS8/CieBQglddP/3QZ\n3rqHhniqCvIBpb1HBh8PWHk89dRT0Ov1YFkWvINDybM7oUsLQ2kZZcVs2rQJ11xzDXxh27Zt4rYv\nre2ubToBR6sBhoDn1bkBgefxxpTxAIAnvvoBO5Z9gePbN+P49s04f/ggCo8ehqm2RnHOptKvkBSU\ngeSgwShl81TXbApXLlk1gMsO2juWoyhrmmJfpRCO6cMyFfv+7bxL4TH80Ne/X9DqBI0xap0mGHav\nAsMQ7Psl3+/46Afuhz5TeT/76TOiQP+dZifGmpXqbvOKKLc7I/bCBe2vFHzhY43MEgGM4C5UIawi\nTOTdYcgQ1LLvZvcPZ1F2jnqdTjs1cNXFJvAcj6gkiUXMc/S+ETcqhbwIq9am1gcFIzhC4m6XWvKg\nS5UKr1gwEHgeQUFBouHn3U00HPlSqGPHjh2orVXH7uXwll31wKg1uJ+PYM/336iOVxbki9tr3n4N\nv61cLn4+vn2zymgDgMlVi1MN++ByOvHTa/ObfC5vBAx3AH8cYjIRPHoe2to+F3ddNXI8nhzVHp/e\n0xuDMmOQ99IYHEqchJvsz4ljlg5j8PZY+lOs79cJjOzlSS7ZiiFbH4Pe0QCrMVrsZgMAYQ35qkcw\n9ugBJlhdrs43Ui8x3dKgWD6u5ajR7pQYhkFtLzzWeCUgsWQHckN0eJp/SLFfIARt8n52f2Khc3dE\nNznr8Fvlz4qxvW+8WXXdk3uUnWQ4F4/9q89jxctUrGnLV1JhycYltD9lRi+lUFhI/yS0+r9B+Kn6\nffpMnG+mi7yBRpQ+Ho6CRjz26AzcZqOrOVeVcqLhrVLl5F2yROcbb7zh8/oezJgxQ9yePVvSsHG4\nu8yDIdj5zZeq8+orpYKf49s3N3kPb7xxx7jmB3khYLgD+EMRGazDMzd2RS6fBgDo2Y6W9Q5rH4cv\npvYFIQQ/TB+ElS9JygnBgoAt2QzueZzFgQlZYKOUlXGsW8WO4ZRUrW45b4IJlTyvqLvuAiEE+nR3\nvFAry/S7vWxXoqRcx/W4G9Oc9Dl+njEI2iuoKXBLkFqwDgCgdZkRyvMIazcYS6dKhvNkGyPiKw+g\n07HPQAgDrZtzf6J+D+y8FMpq138wWK2aMVLp1qDetzofJ/eUwW5Rlq43VErX8MTFx86QmmyUnjkp\napdYGmiMzeX0XSCll03GepaGtFzfFSEYvjnhgqxQqFVkos8xvqDRSGtBo9GImTNnYsSIESBbq91/\nh1Jq2OVmq5hqfLfeawqxqWkXfI4Hf61fagCXBe7sn4YliXNxl2M2WsVF+x2Xm1eA3LwCjHVXLZqN\nBO/WrMDL3Qph6KquUutw6mvFZw1nQ/oqqSFD1J1UqpUxGpGxbi067N8H4kVR+5FzL1n7T8feLs/C\nCQ30GuYvwyaRQ+eghrUumEUExyOtfTZiQyVDZ88Mh1kPhJhpgU2pheppV9sprz0ujYYx+twwAX6q\n4bF47g7s+eEc1n96DHaLcmJlZDFsqzt0odVLlalLn56FNe8ou/K4/Cj5NVapE9/2s1IiUHDxcBRJ\neiaCs2Uc6WeffRZarX8qX1hYGAYNGiSWuq/9QOmxcy76vEXH1Q2GvdH7xonoOVaiXRpC//dir2aT\nkwEE8L/gyTtuRHGttUnND6HjDSDHf8R+g9Jr2tWRQcS89xBS78CZIUPF/WI8VgZ5WISV1Q/oUqhq\noODF333WGQy0HgTn1c/j1qdXAwC+fsB/8cSVDJaj4YXqUA7hPI8QvRZhRslIaRkWThaIMFNDXWI9\ni+V5C8GDQ3BEDELjOqAi/yxCoqJRfMp3bNgk4yLbzNK/z4ndpSg+2XQ8GQBKTh5TMDF8SboClAee\nd8i/XrY1pxLWnErEPpgNR0EjNHESO0VwqsMviYmJGDduHBiGweOPP47Gxka/jX2dxVIy1sopE7Me\nHfBTu7bBFyb/32v4ci5t0db7hglgGAYH1/yM65/4J3LWr/b79zSHgMcdwEVBXKgB3VOb7ldIblkC\nzKvH1yM+xE2Nyhdi+PLhYGJjwIaH+zmbgg0JAXF7TL70umMeoXSy1T2px9S+rgSITMPwRZvFMVmt\nmr7HlYrEsp1Iy/8FLsca/LPchmA9C4NWSv51F+LBe31lPKiRszQ4UXSqHZI6PwlDcDh+fturG5EP\n2M2St7zhs+N+x8nDHqbaGpw/LMn1pnXr6esUjJ42U9wuMPm/duX7h1G/Og/ViyWFSMGuNty33347\n4uIo/TM4OBgJCQkKRosc8ni5txDXqtcXYNXrC3yel9GrLxIy2op/kyE4BPqgYDyxdCUye/eD3dRy\ndo43AoY7gEsOffpVeH6aUsrTxbvQbUk3MBHUqKYtX646L3T0aAiCgNZfLEHMo9Nx3lyEtflrcb7h\nvDgmdsYMRO7fhE9Hul/KxlKctEegsEaKv2r+YrFtD3I78EjP/xmZDjNiOYK8KjP0shVQWyYSQpAU\nUmD1MqNJaDFSTQmPXSvVLckye6o57xWyvosehMUY0KGfsjw9KFw5oQeFSZWehBCYam3YueIMeFmc\nOihMmlwrbS1vWwcA1V+ewNixY3HHHXdAr6eru2AfCWyAxsaL/rkNRf/chspPjgAAXLU08bm2+DPV\n+ILcQzjp9raDI6OQ1lWiEg69k3LBJ8z5D2YtW6UKx5Weocnbqybfg/vf/vSC/qZAqCSAywOEYF5l\nNV6JjoRZ7jkbaEy0zFIG/Q1jkHhyB0oTByIt/2dYnIeR/TmNhedOy8XwxZIG9IabNyAuiBoXzkuT\n42DuEQADAACrHh10Ef+oS4uTUbHoikqc02pRxPXHrV2ToJNNUoQQ/HatHbZTQaBmUR4XljzLnA1S\nG67UgrUoSB2Jtr3jcWZ/BeTYu0rNRe5zXRtsWEw95DP7K5DZMw43zJyDxU9KtFGnXckIWTyHqvcl\nd4yEzexEcvsoBIXpEBGfiLryUpxrPISeMb752L4g2Fzo1bMfCEPwwAMPoKSkRNWCzIOS53aL256u\nNY3uv98kk7eNSkpGTYlyAhn9yBNo1b4jaoqLEJ+upKQ2hZTO2QiLuTCZkL+mqxHAFYl2zvZY41Xc\n8U0UbW01ddfj2Ht4NYxWmr0PslSAKy4Rx2UtVgr3j1g+AmVmSlf774H/AgBeL6cJrjddlH41NjsR\nXf6iYRIAKIihr/e5BIKFrkkINWjAMATDO8Thgyk9QQhBaRiDVX08ZkDuffuWME3P+wl3Pd8L4ft/\nwtiHu/gcI0dojFGsj/r1Q+rBxqQou9n8sPAFAMAdLykTlZu/OIl1Hx/Dp0/RqsY7X3kTk//vNfDg\nYU+TJuPIiW1h7Nq04Wt0N/ONjo5GVpbvJg+uKqsqrMLbXWJpurzTfY8xSm0XAAiNjoFWb2ix0Z74\n9AtI79Eb8W0uvCl1wHAHcNkgWDAjgq/D5yUSP/jrqxg89gCLikiCtT0IUgvXoePxzxFfsR9F/gkr\nAIBrvr0GWYuzsKmQSnV2sjuQw6ejGPQlv6ajf13nvwKGDboTjz/AoluMFgCBXkPDRZ/c3RsjOycA\nhGBNSDAsntyw28JqjMOh0fs2bozAw7r8C1S88grCj2/E1FcH4+75AxVjWneh/zCRCUGIa63sXn5i\nN61inLLgv6prG0Lo2KS2NHTSWKP0xLV6A2LcFLqqaMnbD+oah8hxamMZ/2QvxLgV/BrWS+3FbGfr\n0LCZetGWnErUr6ErhYp3DqmuUbPslGpf99HXo+s112LWMqUAVXSrpvtieqN1djeMm/3vFvVS9UbA\ncAdw2SDMRb3p7nYHct1dWgSGoNStMfJbewaMwCOxfA8IBPzndt/JJG9Y3Y0ZEjkOu4OlbjtD2v21\nVSyTg1vh14ZC9LP65vKZ3d4lx9Lvl9FSOYKoVmk+xw/cOQcAYHV3hnGWlEIfpEWwV3Pmfjelo0P/\nBNzyrz7QaFn0vFbysD1Jy7i0dFXPSq07/mwM9a8y6CmDP39MSmgSLQPGoEHcjO6IvpsaakPHKJSW\nnQafqI4GV32Yi4Y1+aj59hRqvjqBxs1FcFZawFvUrCXbMSU/+5Z58zHs7gfEzwNunozeN05UGfGL\njYDhDuCywRT2ZdznmIUagZZXe4y3P9SHqLnXB6ccRN+Evj5GU2Q6qOGID9MjMvjCBfmvJHB6yhMu\nFXxL1QoC0MtKvVrCO8HqOkAf/iAaqtWysNfc3QF6dxMK885dAADeDysiJjkUI+7qBFbDoHHDBnRr\n75ubndmnv+Izw2pQdLIWLod/nXBPgq/wWC6ip3SEubcTi265DtXFhdAlhcDQLhKhw1IQMiYFy5+f\ni59e/T/APTE5y8zui9D/WfZJ1Y5yj9yXWh/nzsXqg0MUScb+E2/DVbff7fd5W4r83AtTWgwY7gAu\nG/wwexzGTrwXPewfYLSdajd0tCt52Ke8FDRfHPSiuL1g8AJoGA0+HPkh/CHHkYSHh2Zgz9yr/7gH\nv0zhDE/DI44ZmOV8yOdxAQRp7oKXPvteAgAQRmJbRCdL+iSZPdTGzFEoJS1btaPGfmBKAayHJepg\n0bTpyLtpnBg+ASA2Y5AX4wDAgV+L8cNrB3H+iLoK0dqorqg0do7Bqm+o0vS5A3vdz08QPioNdoFW\nylYVFQAcvV/56wdg2lPqs5jImiMV+ERP7ojk+YMVx/cW/gIAYJiWrfIuFDWl5gsaHzDcAVw20GkY\njO+RjJx/j8TL027DF6MPwyHQQop/VNfiGrMFx1Kpt3OcruoxioTisawH6XZ0NmCrByEEuXflIveu\nXCy5dgn6xHbD90U0tvpf542ID/VdJv1XA8sw+IXvhwb4FogSAIS7C0iCLBWq4z21+6E3spjwVE9V\nn0gAMMsU9Tz0QOeKz5E/iSr52U6cEI8P7+cUQyaHN/um8x1cV+xzP0CFqrxht0hiYS4vPW2bezVg\na2xA3BypYW/d92f83gOAGBMHACZMWpFVVlCKKaP5Ywz3zu/O4O2HNkLgBZjr7dj1nZpy2RQChjuA\nyw7hRi2ykyNwR7/WmG7ohB42GyY1mnB3hRYrBjL4bgDB87fRF0j/+U2Y+uPTyM0rAPtaZ2B+KjAv\nHPjoaiD3W3Srq8DHdU5kOp2oE4IBEBTV+m9G/FeChpGW9I8OVyfvBABXWdyhEi83lHXZ4Pr0vxi4\n+iHadciH4QYAy/79ODduPGL3fIXJM9sixCI1Fi5+7HFxu+iJJxAWQyfh7d+cFr3u255f2KK/pSxP\nUvnzlOKfO/CbuK++olwxXk4xrP//9s47PMoqa+C/M5NeIaGXJBCkF+llQUCaiKy4qy6oCJZFQVH8\n1NVlbYiIBawg6y6iLE0RGyiCIkVFaaJSEnpCJySEhJCQZJK53x93kpkhk4JGJuX+nidPZu5b5p4p\n5z3vuaekuRfDKgn/5s4Y8/r/cLbOsztCSn081Gy5FA7vPsOpQ+n8/JV2zbw1YR2Hfr70Vo8mjttQ\noRn4tzkM3LsK2t+Mbe0y8o9O4f2+WmmvO1xCIsaxrfrPhSE5OsPtgYFX/GHzrUhYHYq7bcMwHh7c\nwsMeQqecHHYmHCEedx9U6Hmnz3d/rz9hz/bcNOHwrbryXk58PE2uG+a2LfewMxEqPznFrXHzxo8O\n0PumK2jQvCWdhv6ZlGMnOF3Cx7n5s0N0GRoDwOlEbZ2ufNOp9JU9H+W4exCLxc0Cv7jFWkm4+q/F\nx0LDab05vm0n2a9oV0ZIRCmhTMWQeiKTbV8msn9rUpFt375fNHKlNIzFbajYBIRDh7+BCJ0H3EQv\nq7NTSC27nW7Zzm4mP9mLV8gpKowk9CJdWEDxRYWqEgUWtxTXB8VFSf0wwEbweaerou3udwof5589\ni7pQ+l1KXqqzNsnZpUVrVrv6ueO+d8bg9x87jv5jHy6yP0BsJ2fkT1JikR7lzvN9t45XRv2ZxU8+\nQlZ6GrZcp+LOyy3aliy4R31qj2tHnfuuJPK2VlgjAqjhIaRQrEK2Vcs++J4HChX77HvX8t3S4hWu\nUooNS/aSuCMFZVcseXazR6X9WzEWt6FSYbH6FuaJJKtwTlOT2OwF9Lf8whp7JywoHvJZxkSfT1mZ\n343HbXe7+XgTXxhWzJmrHqWl8rtal/9tF8BDa86QGaKbHfjZSq6jEf7Xv5D+kXvf8LxTTjfJqaee\nLnxsrVWL/JQUwmoFUr9ZOCcPpGPLyScvNx+rr67MqByf6eC725B06Byt+zQgMNQXvwAfDm5fD8Cm\nTw9y/aSOJc7r1IF9zBnn3mg4KeEgtQnHEuKL/bxejK05wkVJNw4lsK1efD2feoa3x48B4LpJj9Oi\nZ2/2b94IQHR7/doFFvyOtcfoc3Nzj/PYuOwAuzYcZ9eG4v329ZqGFzaduFSMxW2oVAy0Oa22rjlz\nSHxhGLNu7UpG9CBW3N+H6FqhzMy7mZjsxUywTeKl2/ry0l/b8+aojiRMr16tUq2WkkvVuiruLH8I\nytIWYbet04o7hAYzZxAxZgyRd91VZNvJJ54sMlbn0UfIT9GhbvEtW3HteGdG5tsPbChMky+o7e0X\n4EM7/ziS+nfB90I6yc8/x8jROmIlpKY/+7acot/td5co18Wsnfdv6j3elXoPd6H2+A6EDYwqdt9P\nXnQ2+Pj8NR3ZFPftWoDCLjz2fM+ul7iNJ5h971rOn80uNUokrHYgASG//c7PKG5DpaLzVf/H0uMn\n2ZR4tFARD21Xnw/u6Um7RuGse6Qfd/XWTQn/d2c3rmlbj5u7NmZ4hwZVsuZ2SRTo7eLEtrhsiM2z\n0TThczpvf5mQzBNF9g0dPJi6k/9J+LBh1P3n4/g3bUqLn7YRcded+EYXrwgD2rinxVvPu5d6/fmr\nI+Tn2Vm3UEeg2PPtnHjscQCSpk/n7OIlnL7rVgJDfdnz4ym+nhdHemoL6jd39q8cOeWl4t8EB+uX\nvYMl0Af/6DA2H1rBzL9dh1KKbSs+5oMp+vVOJx4q9J8XcDrRWfysIPlnz48nuRi7XbHO0eXn/alb\nCCxGKd81sw9NOtRi2IT2hfHq/kE+jHyyW6kyuGIUt6FS0TCmBRvzrufrrkuKVcRPXteaxBeGcVUV\nz4wsK8Vdrs4E6fWC6bZRzDmVjEXlEe5oB2etVYucD2cBUPfJJ2j0xutE3H672/GW4GDqPvoosStX\nFvva/rHu3csP9O3r9jzPZncrVpV9KIHAzrpK4bmVznrVrgub8RtPMvjvzm7vDVu25sEFHxemwxfw\nl8efYagjO/PXr7/kjTE3cWTXDnZ8s0qfP/k0GxbO41jcLs4cO8qCxx7gYlzH9m4+xbaViaxf5GzJ\nlueo9X1sj7OnZE5WHvu2FPVn3/JMdwKCfbl2fHsi6gdzbI++iEU2DCGigedqhcVhFLehUiEi3P3U\nO4y4dqi3p1LhKS2WIiGiN4NyXuLt/Ouok5/P5hZOFZ+fksLo7ZP47H9jiLj11hLPc3GD36Yrv6Dm\n7aNp8esv+NSuTdi17i6q4ROd7eN8A6xYXUrNnp75Chd+cm+Y4BsVRW62ezZlRKNo7n17AeP/q/s/\n+vj5MeblWQwa51ToTTp2oXWf/oXPbdkX+HDq5MLncyc63T3vPTy+RBn73HI3a96NY/Ny9/LDaUk6\nljwr3XPLtQlz+hNSU+cN1Kgb5HGfvqNakLF6dYmvfzFGcRsM1RQB9qtGgPB+Xn98XRoxzxqvM5wW\nxS/Clu85Zd0T9aZMwb9pU+pNnozFUXukwcsvEfv1V4X7BH23jLBaOmvSlp1PWpLTH1w7pWjDhvyz\nZ2l4hXubr02fHCS4Rk23Ot0ALXpeBeiFxQJueW5mmeffqk9/HlryGfe/6x4VE16nlcf9P3huK8lH\nMtiyomhJ27ZXNUREGDP9T9z376uL3CGOntaT/qNbUrN+EJkbfyjzHMEoboOh6lOMS8nVIs8igKN1\n9H5NP1/BtzWcSSu/Jv8KwNK9S9md4rm3YpOPPyKwc2dCBw4osk2sVvwaN6beM88AkPzaawzI/xyL\no4bI5uVa6V35yxtFEoEA7BkZdK9/1G3M4uNZJv+gIB7+4HNa9OzNrm+Pk5GaTf0rPMWwe+aaCZOw\nWKz4BwVxyzSnwheLu886NMKZrr/0+a2FlQxd59WyZ8lNisMiA2n9pwZc2L6dNA+NQkrCKG6DoYrS\nIFxnKo64skEpe0IePqzpoVj53FAsTdzrZd+x+g5OZZ5i6qapjPxiJFm2rCLHB7RuTcyihfhEFp+g\nEtjRGcqX/sknDA5a77a9ZlrxcdFpz052e147KrSYPTX7tyWxYfFe/jdZW7LR7TvStr/n5gt/utkZ\nPuhai6R+sxY8tPgzxs6cw/l0d3dQ8+6eSwKPef5PDBjTiglz+uuM04vIS0khPy2N+JatiG/Zioy1\n68jZX3IavidMHLfBUEWpFx7A7ilDCPLzXF/D1WZtKMnYLbA35CyJjgXKTsGN2Z6pLd1By5xKb+yq\nsUy4cgJ9G/W9pEidgBbNiV29ioNDrgEgd8VS6OdcrBQU+PhAXh7WiAhC+vQh/IYbODJ2rJbn9FZO\n1+uG3a44nZhBbMc6fDH7V9JOX2DkE92w+jrt0HMpzoSh82dzuPFfUwHYte5rAIbe/zC1o2IIr1MX\nv8AgYrt0xy/Q2WC4AIvVSmSjxrz/nA4JtFgEu13RPuocHZ9tz9ynnK6dGx7uRFCYn0dL237hAue/\n/Y7jDz7oNn5swoQyv3+uGMVtMFRhgv2L/4m7OiWGWzcx2SeK5KRtfH5I15b+574txA59g047prsd\nF58az8S1E7mr7V1M6jzJbdvi+MUMjhlMrUCd0DJ351xSs1MZ32E8oX6h+EW7W/N1k7aQVNcZCtfw\nlZnYjhwh5Oqr8W+qI1Jiv1rNwcFDaB33Hq3i5rOu3ywSfk2m67AYEnfqSoK7vz9O+/7ORga+/s6L\n1YWM3MIFwgcXfkJuViZB4e6la2tHNyn2fXLtcH/T5C7UahRKfEvt854QF8c3/4vH6mOhfjOnvz0/\nLY3k2W9Re+L9WMPC2NuxU5Hz/h6Mq8RgMAAQ7SjxOm/XPABa5trw/Ww8t9S/yuP+7+x6h2+PfYvd\nkfaYmJ7I9C3T6b9UR3LsTd3L69tfZ0HcAoZ8NKTwuNjVqwoft4mf73ZOZbMReffdhUobwC/KGSde\n4AM/eyqLZJc2d5uXJ7BuQTxr3o0jO9PGdx/sL9y2c8Mxfl17lJMH0sg6l4ePfwhHHA0Sko9kFHbl\nATj0SzKz713LnPvXFSrs8y6deIJ9c8lPd2Y7ikUYOLY1/W9rybnPv2BPp85c2LmTfb37cHbBAvZ1\n686eKz1newb16OFxvCzIpRRgKStdunRR2xxdMgwGQ8Xkla/28sZa7V9tLkf5R81neKiujn1vYMtj\n9TFnIs6nt81n2qZp9Gvcj6MZR9l9xvMiZQHDmw5nxaEVbmOPdHmEMW10OrnKz2ePIzknPawJeT6B\nRKbGEfPhUgI99IQssHAB1vabXWT7b+G2qT1Z+KRuCtGsSx0ObCta2nb0tJ4s+Jfep9+GB7Eo9y45\nwb17EzX3v+QcPMihYdeV+po1Ro0kbcn71H7wAc599TU58fHUuPlm6j7+GNbg4J+UUl1KPQnG4jYY\nqi2uJts+1Zi+2U6l9NHxkyiXSIoRK6ew1a81L6/7D++HdOTHUT+WeO6LlTbAjG0zWBS/iHx7PmK1\nUn+abhIcfi6ByNQ4mq1fh2rpuXFu1Lx3PI6XRI0SFjuBQqUNeFTaQKHSBooobYDM778nvmUrkt+c\nVep8Yld9Sf2nn6bZ2m+IvPdecuJ1Nya/pk2wBHmO8S4Oo7gNBgMAvnYbQ89ncnv6OUKUomnWu5y8\n6Qu9MfUQxH2qH69/npDnG7Ljr+uIDosu/oTAh8M/ZFx7Z4/GF7a8wJULrmTFwRWEjLieoO5O/3an\n1YPovrg77ea3o938djyy4RHazW/H4XOHCe7ViwYzZxA6eHCR12gVP582gfuLjHf65XWuXn8f9U9u\nLPN7EBYKHXbMomFwmtt4291zSzwuY9Uqj+Mxy5ZRa+L91J40Cb+YGAB8G+jyCw1fexWAiNtu8xip\nUxLGVWIwVFNmfrWXN9c6Q9ESA25x2x6TvdjjuBsP/AIRTWg3X7s32ka2ZdeZXQC8GdiKfnE6I1D5\nhdC+oefelzUlhPO2DGzFxGYD7Lh9R2EEyy/tu7M/9q+crtuFxkfXcMXBTwr3ywqsw6buT9Nhx2wi\nU+OKnKfAzVIr5VfOBzek0fH11D+1mTORbUDZqXfambVpFwv7m91Etn9N2u3+DxblTLuPXrIY+7lz\nHL3HvS1co7fe4tiECYRdO5QGM2aUuYP7jctv5KPrPyqzq8QoboOhmlKS4o7JXkRBwGCg5DCq0Vk6\npn7JVxda8KbfRW6B8T/w4dmdPLt5GltaP0hgk76wfCIccXenZIiQ5OPDDY2KT0y5Lf0cC8OLxj+7\nsnR6UZdFEXp1YUyPnxnxo50bftQ6Lssf/PL8yfMJIiDnbCknKEqj2bMIHVA0wSj/fCZZm34k5Oqr\ny6yoXTmVeYpBywaxa+yuMituEw5oMFRT7A6jrUXdUNIu5HImvw6R+adZWWMUnHJavxeUP/OO1gPu\nAGBFdi8EOwkBjsSVOb24CbgJIMG9IcKK/B4Mt24CIFQpQm02dibo7jp24OWIGiwMD2Po+UxeStaR\nHo+mpiFA+yZRjDubzn9quqe1J9aBGBeXtO+LT+AfVhOfE8nYvvmW1G0/cm+3n7ngLyzpZ2VJP+e+\n7RJsdNmfRlyUhRxfyLfAzhjBagerHXzzICAX0kKg19FgJi5xNG+YN4Ne+ycx7AI8tSIAAAzdSURB\nVLthPNXjKcavGc+ImGtYtO1Nnh80m+/rHaHGwU8Z0WwEgnAy8yRbTm1hRLMRbnMvMJRFpPDxnF/n\nlO0Dc6FMFreIXAO8DliBuUqpF0ra31jcBkPF58VVe5iz/iCPDmnBy6v3MtDyE3P9ZjIm9zE22Duw\n97lraPGEZ99tASW5Ue7KfZhv7J3pa/mVQZZttLIcIV0F80LeKPpYdtBAUmkmx+lr1UksL9pGUlvS\nuNPH/TVXBQfxaB1nl3mLXdE4GV6el8/MGyxsbunZyo222TjsqxdYx6SfY1VwEM1zbXwXVDTRpiJQ\nrha3iFiB2cAg4BiwVUSWK6WKOpAMBkOlwV5o/enna+yd6ZX9BifQStLfx8rmyQPo/vw3ALwxqiOD\nWtUl0JGJGfP4F7TOnoc/udSSc0RLEvH2KK62/sxH+Vdh9Q9h88N92ZzQkf/90I8nDmv3xKHnr+V0\nRg5r4pN4Jy6JMfuSGdsrhvd+SAQgo99zvLpmL0MsW3nb7zWuycziGoeVrtCW+OG6cPM/Pauv2nl5\nzD95mmM5zelpjWO3PZpM6nI+qTtb7S3oLye5yroDuxJSCWOjvQ2zA17k66Agsi3CFbk2muXaWBES\nzIxIZ/Pg4RmZrAi9tPKrZeXl0ylcSr3LUi1uEekJPKOUGuJ4/k8ApdT04o4xFrfBUPF545v9vPL1\nPqb8uQ1PL3ePy45/9ppCBa2UQimd7u3KqfRsekz/xuO5G0cE8u2j/d1S4v+94SBNagUzpE29Uue2\n81g6w2d9D8CjPu9zn89y3swbwUSfT0mzWPggLIQQu510i5Wrsi6QaRHa5eTiqxQ+QLfs2SRT0+2c\njWoG0rNpJD2aRmKxQExkMPuSMnhr/UFOnkmnjSRiwc4OFcvg9o1ZueM4b/u+ygDrTxTkYeYI+Cnt\n/d/t50eUzcYRXx/+lfEkc/1mECHnyAd80T79474+rAsKJDbXRlReHrG5Nn4J8CfArmiQl0eyj5WW\nuTrxSaacK7/FSRG5EbhGKXW34/looLtS6v6L9hsHjAOIiorqfNilw7PBYKh4ZNvymbcxgb/3acrX\ncUlMWLQdgNE9opk6om0pRzvJyLbx51kbSUjJ5N6+sXSJrsmAVnXKpePQtsRUbvy3c5EzgByCyebf\nfq/S1aLjtLfYW1CPVGz4MCtvBIkNruWT+z1nexZHVm4erZ9aTf8WtXn3DmeI4vG0C9yzYBu7jp+j\nTYMwdp/QPu85vq8y1LqVv+f+HwNvuINh7Rtw+lw2181cTS4+XNshik1xB2ibv4fzKpDYqEYcO5pA\nqgqji2UvB1QDFvlN5yXbzczPH0ImgRx+8brLr7hdMRa3wVD5UEpxNstGRLCft6dSKkopUjNzSTqX\nQ/O6IYgIJ9MvUD88sNRem+XFyfQL1A7xL7Upc3G46t6cPDuBfj7lGlVyHGjs8ryRY8xgMFQhRKRS\nKG3Qc40M8ScyxL9wrFHNS8s+/L3UD/99i5yudyQBvp4rOBZHWS4VW4ErRKSJiPgBI4Hll/QqBoPB\nYCg3SrW4lVJ5InI/sBodDjhPKVVyhRmDwWAw/GGUKQFHKbUSKL6Vs8FgMBguG6bIlMFgMFQyjOI2\nGAyGSoZR3AaDwVDJ+EOqA4pIMlBRMnBqASnenoSXMLJXT4zslZNopVTtsuz4hyjuioSIbCtrUHtV\nw8huZK9uVBfZjavEYDAYKhlGcRsMBkMlozoo7v94ewJexMhePTGyV3GqvI/bYDAYqhrVweI2GAyG\nKoVR3AaDwVDJMIq7kiPlUa3eYKhEmO98FVHcIlKdu9X7ensC3kJEajn+X1ox4yqAiIS7PK5uiqxK\n6K3fQ6V+A0Skp4j8F+jq7blcbhyyfwjMEJHW1UV5iSZIRJYAnwEopfK9PK3Lhoh0F5HPgLkicqeI\n+KtqEmEgIt1EZCEwXUTaiUil1l+/h0oruIj8HR36sx34ubooLgARqQPMQpfaTQEeBO50bKvS1pfS\nZDme1hKR8QDV4UcsIu2B2cAy4EPgaqCZVyd1GRARi4g8DcwFvkSXo74P6ODViXmRyvxljwL+pZSa\no5TKrk5WF/oLu1cp9S4wE/gYuF5EmiulVFVW3iLiIyL1gSTgLmC8iNRQStmrgfLuBhxQSi0AvgYC\ngCMFG6vq566UsqNrH41VSi0CpgHRQLUx1i6m0nzRHa3T/B2PI4C2wBYRuVpEVovIZBH5i2N7lfoC\ni8goEZkiIn92DP0MdBWRWKVUJrq93DbgHtBWqZemWu64yD4cdEcmpdRJoAmQCGwAHne8F3YvTrXc\ncZH9esfQCuAGEZkG7ET3f31DRB6DKve59xWR7i5D7wO/OFxDZ4AMoL53Zud9KrziFpEYEfkSfZu0\nWERaKaVSgTPAImAE+vbxJPCUiHSoKl9ghz/3XuAfaCX1sojcDZwHFqBdJABpwBogyGGNVno8yD5D\nRO4QkWARiQYSlFLH0JbnBOBDEfEXkUq/WOtB9pdEZJxSKgloiV6QnqyU6gG8B/QWkZ7emm95IiKh\nIvIx8Alwj8NIA8hRStmVUjmOz7gRsNdrE/UyFVJxX2QxPwJsVkoNANYCz4lIE+BpoB1wUim13OE2\nWAlcX+SElRTHBagn8IJDvvuAfsAA4HMgVkQGOizNM0BDIN1L0y1XipF9INAHOAvEiMgK4GW01X1Y\nKZWjlLJ5a87lRTGy9xWRoUqpBLRf+5hj95+A00COVyZb/uSif+e3ASeAG6HI3UQrIEkptc+h6Ltd\n/ml6lwqpuNG+O9cwvzgApdRsoDPaJZCCtsL/6nJcHeCHyzfN8kdEbnfcJhZYGvFAQxHxUUqtAXah\nf9QpwBLgNRFphlbmAvh5Y97lQRlk34FW3C3QP+pDQGel1HCgsYh09srEy4Eyyt7fsTC9GnjaYeCM\nBNqgL9yVEhfZayilctC/6zXAPqCLiDR37FegDyKALBEZi/69t6tq7tHSqFDxzyIyCH17uFdEvlVK\nLRWRVKCjiBTcFu0CGgONlVKTRaSliLyAtkRPAJWuA73jS1cPWAzYgYNAsCNi4ij6zqIZsAft63sV\niFRKLRSRRsDjaGU2TimV5gURfjOXKPtS9GLsB8AkpVSuy6kGKKUq1d3GJcr+Afpzb6CUeltE+uKM\nsLhTKVVRGpeUiWJkHyciDyqlUhz7/Ag0B24GnlNK5TkOHwKMQt9l3KqU2nG55+91lFIV4g/9Bd2M\ndnV0RFuTE4BQ4Em0a+B7oAv6w37IcVwY2u832Nsy/Ea5rY7/zYGFBWPAW8B8tD/zHWA0EO7Y/h4w\nzeUcft6W4zLKPh941vFYAIu35bjMsk91PPYF6nlbjnKW/U3g44v2vcHxnjQDghxjvYC/eVsOb/55\n1eIuCN9S2kfbHfhJKfWZY9satHX1oVJqqog0VUodcmzbiNOnl6GU2oO2SioNouPOpwJWEVmJvgDl\ng04oEZGJ6AXX1ugL1Q3oBZnpaAul0CWk3C3PCs/vlD0ffYFH6V9xpVqILgfZNzn2tQGnLrsAv4My\nyP4gcEJE+iqlNjjGPxGRVsAqIERE+iulKrU7tDzwmo9bRO5AL7BMdQztBEY6Fh5B3wIeRN8eAiQ4\njhuHjt/dDpUzBMpxm/sTUBM4gH4PbGgfZjcozAacAryolPoGnWzUW0Q2O45b74Wp/26M7EZ2ipfd\nDjzj+Cs47ibgX8A6oL1SKv6yTryi4qVbpRDgU3Q423agpWP8NbSLZCOwEO3j+wKo69g+CR2z3NXb\ntyq/U/4+wGiX528B44Gx6LsO0BfVeugMuRjHWA2gobfnb2Q3sv/Bsi8Fmrgc18fb869of16xuJVS\n54EHlFKvA1+hLQyAh9GhT48ppW5DxycnO/4D/Ecp1VUptfVyz7mc+QlYKs40/Y1AlFLqPfRt5ESl\nrY9GQJ5SKhFAKZWmlDrujQmXI0Z2IzuULnsCgFLqO6XUd16ZcQXGa64SpVRBqu5rQBMRGaL0bWK6\nUup7x7Z7gSwgz3FMVtEzVT6UUllKxxwXpOkPQl+gAO4AWonI5+i7j+3emOMfhZHdyO4YKkn2n70x\nx8qE18MBlVKnROQdYDKwWulFim5ov5YvOtSpStYhcVgfCqgLLHcMZ6Dfi7bo7MDKbml5xMhuZKea\nyV6eeL3npIhYlC4QtAy9mp6DDr7fr5Q66NXJ/cE4Yln90AkHn6Ar/J0BJiqlznlzbn80RnYjO9VM\n9vKkIljcdhEJQmc99kPH6K7y7qwuD0opJSIdgVvRRZPeVUq94+VpXRaM7EZ2qpns5YnXLW4AEXkE\nvSjxmNIpr9UGR+bjaOAVI3v1wchePWUvLyqK4raoKlaS02AwGP4oKoTiNhgMBkPZqajVAQ0Gg8FQ\nDEZxGwwGQyXDKG6DwWCoZBjFbTAYDJUMo7gNBoOhkmEUt8FgMFQy/h/+bOALPYhcpAAAAABJRU5E\nrkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "cmt_rates = pd.read_csv(\"data/cmt.csv\", parse_dates=[0], index_col=[0])\n", "\n", "cmt_rates.plot(legend=False, title='Historical CMT yield');" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Covariance matrix\n", "\n", "* Covariance matrix between CMT rates at different maturities" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "text/html": [ "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
0.250.5123571020
0.254.9315.0224.9914.8494.5583.9283.4742.952.505
0.55.0225.1365.124.9884.6964.0553.5893.0562.597
14.9915.125.1325.0354.764.1373.6763.1462.692
24.8494.9885.0355.0024.7634.1843.7443.2232.787
34.5584.6964.764.7634.5624.043.6353.1432.738
53.9284.0554.1374.1844.043.6313.2962.8752.535
73.4743.5893.6763.7443.6353.2963.0122.6412.351
102.953.0563.1463.2233.1432.8752.6412.3352.097
202.5052.5972.6922.7872.7382.5352.3512.0971.919
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "tenors = cmt_rates.columns.map(float)\n", "cv = cmt_rates.cov()\n", "fmt.displayDF(cv, \"4g\")" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## IR PCA components\n", "\n", "The eigenvectors and percentage explained, \n", "\n", "* the 1st principal component (PC) explains >95% of the variance\n", "* the first 3 PCs can be interpreted as level, slope and curvature\n", "* note that the sign of the PC is insignificant" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
P/C123456789
Cumulative Var(%)96.2799.7499.9299.9699.9999.9999.99100.00100.00
Eigenvalues34.331.240.060.020.010.000.000.000.00
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "xcv, vcv = np.linalg.eig(cv)\n", "vcv = -vcv # flip the sign of eigen vectors for better illustratiaons\n", "\n", "pct_v = np.cumsum(xcv)/sum(xcv)*100\n", "\n", "import pandas as pd\n", "pd.set_option('display.precision', 3)\n", "fmt.displayDF(pd.DataFrame({'P/C':range(1, len(xcv)+1), \n", " 'Eigenvalues':xcv, 'Cumulative Var(%)': pct_v}).set_index(['P/C']).T, \"2f\")" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "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\nQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "flab = ['factor %d' % i for i in range(1, 4)]\n", "\n", "fig = figure(figsize=[12, 4])\n", "ax1 = fig.add_subplot(121)\n", "plot(tenors, vcv[:, :3], '.-');\n", "xlabel('Tenors(Y)')\n", "legend(flab, loc='best')\n", "title('First 3 principal components');\n", "\n", "fs = cmt_rates.dot(vcv).iloc[:, :3]\n", "\n", "ax2 = fig.add_subplot(122)\n", "fs.plot(ax=ax2, title='Projections to the first 3 P/Cs')\n", "legend(flab, loc='best');" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Dimension reduction in MC\n", "\n", "Given a generic $n$-dimensional SDE in vector form:\n", "\n", "$$\\renewcommand{Sigma}{\\mathcal{S}} d \\bs x = \\bs u dt + A \\Sigma d \\bs w, \\;\\;\\; d\\bs w d\\bs w^T = C dt$$\n", "\n", "* $\\Sigma$ is a diagonal matrix of $\\sigma_i$ \n", "* $C$ is the correlation matrix of $\\Sigma d \\bs w$, its covariance matrix $V = \\Sigma C \\Sigma$.\n", "\n", "Recall Cholesky decomposition $V = LL^T$: $\\Sigma \\delta \\bs w = L \\bt z \\sqrt{\\delta t}$: \n", "\n", "$$\n", "\\small\n", "\\mathbb E [\\Sigma\\delta \\bs w (\\Sigma\\delta \\bs w)^T] = \\mathbb E[(L \\delta t \\bt z \\sqrt{\\delta t}) (L \\delta t \\bt z \\sqrt{\\delta t})^T ] \n", "= L \\mathbb E[\\delta t \\bt z\\delta t \\bt z^T] L^T \\delta t = V \\delta t\n", "$$\n", "\n", "* $\\bt z$ is independent standard normal random vector.\n", "* we can reduce $\\bt z$ dimension by finding a rectangular $\\dot L$ so that $V \\approx \\dot L {\\dot L}^T$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Dimension reduction with PCA\n", "\n", "Use the PCA of the covariance matrix: \n", "$$\n", "\\scriptsize\n", "V = R_V \\Lambda_V R_V^T \\approx \\dot R_V \\dot \\Lambda_V \\dot R_V^T = \\dot R_V \\dot H_V \\dot H_V^T \\dot R_V^T = (\\overbrace{\\dot R_V \\dot H_V}^{L_V})(\\dot R_V\\dot H_V )^T \\\\$$\n", "Or PCA on the correlation matrix:\n", "$$\n", "\\scriptsize\n", "V = \\Sigma C \\Sigma = \\Sigma (R_C \\Lambda_C R_C^T) \\Sigma \\approx \\Sigma \\dot R_C \\dot \\Lambda_C \\dot R_C^T \\Sigma = \\Sigma \\dot R_C \\dot H_C \\dot H_C^T \\dot R_C^T \\Sigma^T = (\\overbrace{\\Sigma \\dot R_C \\dot H_C}^{L_C})(\\Sigma \\dot R_C\\dot H_C )^T \n", "$$\n", "\n", "* $\\Lambda = H H^T$, both $\\Lambda$ and $H$ are diagonal matrix with positive elements\n", "* The dotted version only retains the first $k$ eigen values\n", "* $\\dot R$ and $L_V, L_C$ are $n \\times k$ matrices; $\\dot \\Lambda$ are $k \\times k$ matrices.\n", "\n", "Simulation can then be driven by $\\Sigma \\delta \\bs w = L \\dot{\\bt z} \\sqrt{\\delta t}$:\n", "* Either $L_V = \\dot R_V \\dot H_V$ or $L_C = \\Sigma \\dot R_C \\dot H_C$ works\n", "* $\\dot{\\bt z}$ is of length $k$ only" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## PCA is scale variant\n", "\n", "Given the EVDs on covariance and correlation matrices:\n", "\n", "$$R_V \\Lambda_V R_V^T = V = \\Sigma C \\Sigma = \\Sigma R_C \\Lambda_C R_C^T \\Sigma$$\n", "\n", "Are they equivalent? " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "* $\\Sigma R_C \\Lambda_C R_C^T \\Sigma = (\\Sigma R_C) \\Lambda_C (\\Sigma R_C)^T$\n", " * implies $\\Lambda_C = \\Lambda_V$ and $R_V = \\Sigma R_C$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "* $\\Sigma R_C \\Lambda_C R_C^T \\Sigma = R_C (\\Sigma \\Lambda_C \\Sigma) R_C^T$\n", " * implies $ \\Lambda_V = \\Sigma \\Lambda_C \\Sigma $ and $R_C = R_V$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "However, neither is true because: \n", "* $\\Sigma R_C$ is not orthogonal: $(\\Sigma R_C)(\\Sigma R_C)^T = \\Sigma R_C R_C^T \\Sigma = \\Sigma\\Sigma \\ne I$\n", " * $V = \\Sigma C \\Sigma$, $V$ and $C$ are not similar\n", "* $\\Sigma R_C \\ne R_C \\Sigma$, even when $\\Sigma$ is diagonal.\n", "\n", "There is no simple relationship btw these two EVDs.\n", "* despite $C$ and $V$ are covariance matrix of $\\bt r$ and $\\Sigma^{-1} \\bt r$ respectively" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Orthogonality depends on scale\n", "\n", "The PCs are no longer orthogonal after stretching horizontally." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nkjr7L7W1QiJvL/MKAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "figure(figsize=[13, 4])\n", "subplot(1, 2, 1)\n", "\n", "plot(x, y, '.')\n", "xlim(-2, 4)\n", "ylim(-2, 2);\n", "xlabel('x')\n", "ylabel('y');\n", "\n", "arrow(ux, uy, -3*sqrt(ev[1])*evec[0, 1], -3*sqrt(ev[1])*evec[1, 1], width=.01, color='r')\n", "arrow(ux, uy, 3*sqrt(ev[0])*evec[0, 0], 3*sqrt(ev[0])*evec[1, 0], width=.01, color='r');\n", "title('Unscaled PCs');\n", "\n", "subplot(1, 2, 2)\n", "\n", "scale = 1.5\n", "plot(x*scale, y, '.')\n", "xlim(-2, 4)\n", "ylim(-2, 2);\n", "xlabel('x')\n", "ylabel('y');\n", "\n", "arrow(ux*scale, uy, -3*sqrt(ev[1])*evec[0, 1]*scale, -3*sqrt(ev[1])*evec[1, 1], width=.01, color='r')\n", "arrow(ux*scale, uy, 3*sqrt(ev[0])*evec[0, 0]*scale, 3*sqrt(ev[0])*evec[1, 0], width=.01, color='r');\n", "title('Scaled');" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Before applying PCA \n", "\n", "PCA is a powerful technique, however, beware of its limitations:\n", "\n", "* PCA factors are not real market risk factors\n", " * It does not lead to tradable hedging strategies\n", "* PCA is not scale (or unit) invariant\n", " * it requires all the dimensions to have the same natural unit\n", " * mixing factors of different magnitude can lead to trouble: eg, mixing interest rates with equities\n", " * PCA results are different when applied to co-variance matrix and correlation matrix\n", " \n", "PCA is usually applied to different data points of the same type\n", "\n", "* different tenors/strikes of interest rates, volatility etc.\n", "* price movements of the same sector/asset class" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## PCA vs. least square\n", "\n", "The PCA analysis has some similarity to the least square problem, both of them can be viewed as minimizing the L2 norm of residual errors. " ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "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\nmsquXbv4/PPPGTx4MP369eOGG27g2LFjADz66KP06tWL3r1789vf/haAiRMn8uKLLwKQnp5Onz59\n6NOnD5MmTQp8xrRp07jvvvsC3w8dOpSvvvoKgHvuuYcBAwaQkpLCH//4xzL/CNLT07nwwgvp378/\nP//5z9m7dy/gPKV64IEHGDBgAC+//DK33XYbd999N4MGDeJ3v/sdR44c4ZprrqF3796kpaUF/jwm\nTpzImDFjOP/88xkzZkyZn19HaVYoVZecYlaUJjgrevXqxVdffcXSpUsZP348P/3pTzUrKqGmL8pe\nCSQZY46JyJXAHODMcCeKyDhgHEBSUlL1tVApFepU9n/Iy4NbbnG+ImgAsHw53bt3p2nTpiWOb968\nmbfeeou0tDQOHTrE008/zYIFC2jcuDHPP/88L730EuPHj+fDDz9kw4YNiAhHjx4tcZ3bb7+dV199\nlSFDhvDwww+Xq/nPPPMMLVq0wOv18tOf/pQffviB3r17hz23sLCQX/3qV8ydO5dWrVoxc+ZMHn/8\ncaZOnQo4ozD+oe/bbruNzMxMvvvuO1wuF7/61a8455xzmDNnDl9++SW33norq1atAmDdunUsWrSI\nRo0alavNdYxmhVK1zWnKCsDpgESwefNm/vznP3P//fdz9OhR3nvvPb788kvNikqq0R0KY0xO0O8/\nEZHXRKSlMeZQmHMnA5MBBgwYEPm/JKVUrVXa5kLJycmkpaUBsHTpUtatW8f5558PODfewYMH06xZ\nMxo2bMidd97J0KFDGTp0aMg1jh49ytGjRxkyZAgAY8aMYf78+WW26/3332fy5Ml4PB727t3LunXr\nIobExo0bycjI4Gc/+xnglL4NLnd70003hZx/ww03BBYHLlq0iNmzZwNwySWXcPjwYXJynNvksGHD\n6mtnQrNCKVUuxhg6dOhA69atiYmJ4fjx42zYsEGzogrU6A6FiLQF9htjjIgMxJmidTjKzVJKRUlp\nO5U2btw48HtjDD/72c+YMWNGifOWLVvGF198waxZs3j11Vf58ssvy/XZbrc7ZG3GyZMnAfjxxx95\n8cUXWb58OfHx8dx2222BY+EYY0hJSWHJkiVl/hzhvo+kvOfVRZoVSqmy2LbNtm3biI2NpUmTJpx5\n5pns3LlTs6KKRLts7AxgCdBDRDJF5E4RuVtE7vadcj2QISKrgVeAkcaUMo6llIo+Y0r/+uc/IS4u\n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\nnkMhaeLVNR9z5GhgAXb2DziY/cMWj2uYJ9vwB9KnhXYiIinFOcfUqVO5++67ycnJYf/+/cFmAkIv\nwG5OeSGSeBJ5DYUkubVr1zLr4V/6F2BnZJB9ggt+43myHU/NpvpwjRbaiYikiCNHjjB69GjefPNN\nhgwZwltvvUW7du2aHBNqAXZzyguRxKOGQmLizTffZMQI/8Ytz43tw+c17U56wW8+T1ZERJJfdXU1\n/fv3Z9++fUyePJkXXngBn+/4CRKt2blJeSGSWNRQSNStWLGC0aNHA7B792569OjhcUUiIuKF3bt3\n06tXLwBmz57NAw88cMLj1SiIJCc1FBJVRUVFjB07FoCKigq6devmcUUiIuKF9evXM2jQIACWLVvG\ndddd53FFIhIrWpQtUbNo0aJgM/HFF1+omRARSVNLly4NNhMbNmxQMyGS4tRQSFQsWLCACRMmkJmZ\nyVdffUXnzp29LklERDzwhz/8gRtuuAHwT3kaOHCgxxWJSKypoZA2e+6555g4cSKnn346+/fv56yz\ntHWfiEi6qa+v56677mL69Onk5eVRXV2tNXQiaUINhbTJM888w/3330/nzp2pqKggJyfH65JERCTO\nvvvuO4YMGcKLL77IyJEj2bVrl/JAJI2ooZCIPfbYYzz88MP06tWLsrIyOnTo4HVJIiISZ1VVVXTu\n3Jn169czffp03njjDbKzs70uS0TiSLs8Sas555g+fTqzZs0iPz+f9evXc8opp3hdloiIxNn27dvp\n27cvAPPnz2fixIkeVyQiXlBDIa3inOOee+6hsLCQQYMG8c477+hOlIhIGlq7di2XXXYZAKtWrQo+\nzFRE0o+mPEnY6uvruf322yksLOSqq67i3XffVTMhIpKGFi1aFGwmNm/erGZCJM2poZCw1NXVMXbs\nWBYtWsR1111HcXExmZka4BIRSSfOOWbMmMGECRPIyMigsrKS/Px8r8sSEY/pb4RyUrW1tVxzzTWs\nXr2a8ePHs3DhQnw+9aIiIumktraWcePGsWTJEs477zzWrVtH+/btvS5LRBKA/lYoJ1RTU8Nll13G\n6tWrmTRpEosWLVIzISKSZg4dOkR+fj5LlizhpptuYtOmTWomRCRIfzOUkL7//nsKCgooKSlh6tSp\nFBYWYmZelyUiInG0d+9ecnJy2LZtG48//jivvPKKpryKSBO6IkiLDh8+zIABA9i1axePPvooM2fO\n9LokERGJs82bNzNgwAAAFi9ezPjx4z2uSEQSkScjFGZ2s5ltNbN6Mys4wXG7zWyzmX1kZhviWWM6\nO3ToEL1792bXrl089dRTaiZExDPKC+8UFxcHm4m1a9eqmRCRkLwaodgCjAXmhnHsT5xzX8W4Hgn4\n+uuv6dmzJwcPHmTOnDncf//9XpckIulNeeGBefPmMWXKFMD/8Lo+ffp4XJGIJDJPGgrn3CeA5uMn\nmAMHDpCbm0tNTQ3z5s1j0qRJXpckImlOeRFfzjkeeughZs+ezRlnnMGOHTvo1KmT12WJSIJL9EXZ\nDlhtZqVmNsXrYlJZVVUVZ599NjU1Nbz00ktqJkQk2Sgv2qimpoaRI0cye/ZsBg8ezL59+9RMiEhY\nYjZCYWargS4tfPSIc25pmF8zzDlXaWY/BFaZ2afOuTUhft4UYArAOeecE1HN6aqyspK8vDwAXnvt\nNcaOHetxRSKSTuKZF8qKllVXV5Ofn8/evXuZNGkSc+fO1RbhIhK2mDUUzrkRUfiOysCvVWZWBAwC\nWmwonHOFQCFAQUGBa+vPThfl5eX07NkTgOXLlzN69GhvCxKRtBPPvFBWHG/37t306tULgFmzZvHg\ngw96XJGIJJuEvf1gZqeZWYeG3wMj8S/OkyjZtWtXsJlYtWqVmgkRSUrKi8ht2LAh2EwsXbpUzYSI\nRMSrbWNvNLMK4BLgdTNbGXg/18xWBA7rDKw1s4+BdcDrzrk3vKg3FX366af07t0bgDVr1jBiRJtv\nEIqIRJ3yInaWLVvGxRdfDPgbi+uvv97jikQkWXm1y1MRUNTC+3uBawO/LwMuiHNpaaHxg4pKSkoY\nPHiwxxWJiLRMeREbs2bNYtq0aYB/ylOPHj08rkhEkpmelJ1mSktLKSjwPxtq48aNXHTRRR5XJCIi\n8VJfX8/kyZNZsGAB3bp1Y8uWLeTk5HhdlogkOTUUaeT9999n6NChAGzZsoX+/ft7XJGIiMTLd999\nx5VXXsm6deu4+uqrWb58OdnZ2V6XJSIpIGEXZUt0/e1vfws2E9u2bVMzISKSRvbv30+XLl1Yt24d\nDz74ICtXrlQzISJRoxGKNLBy5UpGjRoFQFlZWXBHDxERSX3bt2+nb9++AMybN08PLhWRqFNDkeKW\nLVvGmDFjANizZw/du3f3uCIREYmXd999l2HDhgFQXFzM1Vdf7XFFIpKKNOUpxTU0E3v37lUzISKS\nRhYvXhxsJjZt2qRmQkRiRg1FituzZw/V1dV07drV61JERCQOnHM8/vjj3Hbbbfh8PiorKzn//PO9\nLktEUpgaihTXvXt3bQkoIpJGVqxYwYwZMzj33HM5ePAgubm5XpckIilODYWIiEgKGTZsGH/+85/Z\nvHkzHTp08LocEUkDWpQtIiKSQs444wzuuOMOr8sQkTSiEQoREREREYmYGgoREREREYmYGgoRERER\nEYmYGgoREREREYmYGgoREREREYmYGgoREREREYmYGgoREREREYmYGgoREREREYmYGgoREREREYmY\nJw2FmT1rZp+a2SYzKzKznBDHjTKzbWa208wejnedIiLiLeWFiEji82qEYhWQ75wbAGwHftP8ADPL\nAJ4HrgH6AbeaWb+4VikiIl5TXoiIJDhPGgrnXLFzrjbwsgTIa+GwQcBO51yZc64GeBkYE68aRUTE\ne8oLEZHEl+l1AcAvgL+28H434PNGryuAwaG+xMymAFMCL4+Y2ZaoVZhYzga+8rqIGEjV8wKdW7JK\n5XPr63UBEWpzXigrUoLOLTnp3JJTWHkRs4bCzFYDXVr46BHn3NLAMY8AtcDCtv4851whUBj43g3O\nuYK2fmciStVzS9XzAp1bskr1c/O6hsbimRfKiuSnc0tOOrfkFG5exKyhcM6NONHnZvaPwM+A4c45\n18IhlUD3Rq/zAu+JiEgKUV6IiCQ3r3Z5GgX8GrjeOXc4xGHrgT5m1svMsoHxwLJ41SgiIt5TXoiI\nJD6vdnl6DugArDKzj8zsBQAzyzWzFQCBRXj3ASuBT4BXnHNbw/z+whjUnChS9dxS9bxA55asdG6J\nIZZ5kUz/HlpL55acdG7JKe3PzVoePRYRERERETk5PSlbREREREQipoZCREREREQilpINhZk9a2af\nmtkmMysysxyva4oWM7vZzLaaWb2ZpcQWZWY2ysy2mdlOM3vY63qixcwWmFlVKu5zb2bdzextM/uv\nwJ/HB7yuKVrM7BQzW2dmHwfO7XGva4o2M8swsw/NbLnXtXhNeZFclBfJR3mRvFqTFSnZUACrgHzn\n3ABgO/Abj+uJpi3AWGCN14VEg5llAM8D1wD9gFvNrJ+3VUXNi8Aor4uIkVpgmnOuHzAEuDeF/rsd\nAa5yzl0AXAiMMrMhHtcUbQ/gX7wsyoukobxIWsqL5BV2VqRkQ+GcKw7s+gFQgn9P8pTgnPvEObfN\n6zqiaBCw0zlX5pyrAV4GxnhcU1Q459YA/8/rOmLBObfPObcx8PtD+C843bytKjqc338HXmYF/kmZ\n3SvMLA8YDcz3upZEoLxIKsqLJKS8SE6tzYqUbCia+QXwH14XISF1Az5v9LqCFLnQpAsz6wlcBHzg\nbSXRExjm/QioAlY551Lm3IDZ+J/rUO91IQlIeZHYlBdJTnmRVFqVFTF7UnasmdlqoEsLHz3inFsa\nOOYR/ENtC+NZW1uFc24iicDM2gOvAVOdc994XU+0OOfqgAsD8+mLzCzfOZf0c5vN7GdAlXOu1Myu\n9LqeeFFeiHhPeZE8IsmKpG0onHMjTvS5mf0j8DNguEuyh22c7NxSTCXQvdHrvMB7kuDMLAt/OCx0\nzi3xup5YcM4dNLO38c9tTuqACLgUuN7MrgVOAU43s5ecc7d7XFdMKS9ShvIiSSkvkk6rsyIlpzyZ\n2Sj8wzTXO+cOe12PnNB6oI+Z9TKzbGA8sMzjmuQkzMyAfwU+cc7N8rqeaDKzTg07/ZhZO+Bq4FNv\nq4oO59xvnHN5zrme+P9feyvVm4mTUV4kFeVFElJeJJ9IsiIlGwrgOaADsMrMPjKzF7wuKFrM7EYz\nqwAuAV43s5Ve19QWgcWQ9wEr8S/UesU5t9XbqqLDzBYD7wN9zazCzCZ6XVMUXQrcAVwV+H/so8Cd\njFTQFXjbzDbh/wvMKudc2m+vmsKUF0lCeZG0lBdpwJJsdFdERERERBJIqo5QiIiIiIhIHKihEBER\nERGRiKmhEBERERGRiKmhEBERERGRiKmhEBERERGRiKmhEBERERGRiKmhEBERERGRiKmhEIkRM7vY\nzDaZ2SlmdpqZbTWzfK/rEhGRxKGskFSgB9uJxJCZPQmcArQDKpxzT3lckoiIJBhlhSQ7NRQiMWRm\n2cB64HtgqHOuzuOSREQkwSgrJNlpypNIbJ0FtAc64L/7JCIi0pyyQpKaRihEYsjMlgEvA72Ars65\n+zwuSUREEoyyQpJdptcFiKQqM/s5cNQ5t8jMMoD3zOwq59xbXtcmIiKJQVkhqUAjFCIiIiIiEjGt\noRARERERkYipoRARERERkYipoRARERERkYipoRARERERkYipoRARERERkYipoRARERERkYipoRAR\nERERkYj9f9j8ECP/e+sKAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "xs = np.array([x, np.ones(len(x))]).T\n", "beta = np.linalg.inv(xs.T.dot(xs)).dot(xs.T).dot(y)\n", "\n", "s_x, s_y = sp.symbols('x, y')\n", "br = np.round(beta, 4)\n", "\n", "figure(figsize=[13, 4])\n", "subplot(1, 2, 1)\n", "plot(x, y, '.')\n", "xlim(-2, 4)\n", "ylim(-2, 2);\n", "xlabel('x')\n", "ylabel('y');\n", "\n", "dx = 4*sqrt(ev[0])*evec[0, 0]\n", "dy = 4*sqrt(ev[0])*evec[1, 0]\n", "\n", "arrow(ux-dx, uy-dy, 2*dx, 2*dy, width=.01, color='k');\n", "\n", "ex = 3*sqrt(ev[1])*evec[0, 1]\n", "ey = 3*sqrt(ev[1])*evec[1, 1]\n", "plot([ux, ux+ex], [uy, uy+ey], 'r-o', lw=3)\n", "legend(['data', 'residual error'], loc='best')\n", "\n", "title('PCA');\n", "\n", "subplot(1, 2, 2)\n", "plot(x, y, '.')\n", "xlim(-2, 4)\n", "ylim(-2, 2);\n", "xlabel('x')\n", "ylabel('y');\n", "arrow(-1, -1*beta[0]+beta[1], 4, 4*beta[0], width=.01, color='k');\n", "y0 = (ux+ex)*beta[0] + beta[1]\n", "plot([ux+ex, ux+ex], [y0, uy+ey], 'r-o', lw=3)\n", "legend(['data', 'residual error'], loc='best')\n", "title('Least Square');" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## PCA or regression?\n", "\n", "The main differences between PCA and least square (regression):\n", "\n", "| | PCA | Least Square/Regression |\n", "| :-----: | :----: | :----: |\n", "| Scale Invariant | No | Yes |\n", "| Symmetry in Dimension | Yes | No |\n", "\n", "To choose between the two:\n", "* Use least square/regression when there are clear explanatory variables and causality\n", "* Use PCA when there is a set of related variables but no clear causality\n", "* PCA requires a natural unit for all dimensions" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## What variable to apply PCA\n", "\n", "It is important to choose the right variable to apply PCA. The main considerations are:\n", "\n", "* Values or changes\n", " * Equity prices or returns?\n", " * IR levels or changes?\n", " * Key consideration: stationarity and mean reversion, horizon of your model prediction\n", " \n", "* Spot or forward\n", " * Forward is usually a better choice than spot\n", " \n", "Since the PCA is commonly applied to a correlation/covariance matrix, it is equivalent to ask what variables' correlation/covariance matrix we should model." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Spurious correlation - equity price\n", "\n", "Spurious correlation: variables can appear to be significantly correlated, but it is just an illusion:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Price CorrelationReturn Correlation
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SPYGLDOIL
SPY10.1780.01086
GLD0.1781-0.5238
OIL0.01086-0.52381
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SPYGLDOIL
SPY10.032150.4191
GLD0.0321510.3011
OIL0.41910.30111
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "f3 = pd.read_csv('data/f3.csv', parse_dates=[0]).set_index('Date').sort_index()\n", "r = np.log(f3).diff()\n", "\n", "fmt.displayDFs(f3.corr(), r.corr(), headers=['Price Correlation', 'Return Correlation'], fmt=\"4g\")" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Spurious correlation - spot rates\n", "\n", "The correlation between 9Y and 10Y spot rates and forward rates:" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "es = np.random.normal(size=[2, 500])\n", "r0 = es[0,:]*.015 + .05\n", "f1 = es[1,:]*.015 + .05\n", "\n", "r1 = -np.log(np.exp(-9*r0-f1))/10\n", "\n", "\n", "rc = np.corrcoef(np.array([r0, r1]))[0, 1]\n", "fc = np.corrcoef(np.array([r0, f1]))[0, 1]\n", "\n", "figure(figsize=[12, 4])\n", "subplot(1, 2, 1)\n", "plot(r0, r1, '.')\n", "xlabel('9Y rate')\n", "ylabel('10Y spot')\n", "title('Corr(9Y Spot, 10Y Spot) = %.4f'% rc)\n", "\n", "subplot(1, 2, 2)\n", "plot(r0, f1, '.')\n", "xlabel('9Y rate')\n", "ylabel('9-10Y forward')\n", "title('Corr(9Y Spot, 9-10Y Forward) = %.4f'% fc);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$\\begin{eqnarray}\n", "\\exp(-10 r_{10}) &=& \\exp(-9 r_9)\\exp(-(10-9) f(9, 10) ) \\\\\n", "r_{10} &=& 0.9r_9 + 0.1f(9, 10) \n", "\\end{eqnarray}$$\n", "\n", "* the $f(9, 10)$ is the 9Y to 10Y forward rate.\n", "* of course $r_{10} = f(0, 10)$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Correlated by construction\n", "\n", "$$ r_{10} = 0.9r_9 + 0.1f(9, 10) $$\n", "\n", "* The high correlation between spot rates to similar tenors are by construction\n", "* PCA analysis can be misleading in percentage of variance explained\n", " * the variance of spot rates of short tenors are counted multiple times\n", "* May not be a problem if we have unlimited precision, but we usually only keep the first few eigen vectors in PCA\n", "* it's usually better to model the correlation/covariance matrix of forward rates" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Singular Value Decomposition\n", "\n", "rotate, stretch and rotate, then you get back to square one, that's pretty much the life in a bank." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Definition\n", "\n", "For any real matrix $M$, $\\sigma \\geq 0$ is a singular value if there exists two $\\bf\\mbox{unit-length}$ ectors $\\bs {u, v}$ such that:\n", "\n", "1. $M \\bs v = \\sigma \\bs u$ \n", "2. $\\bs u^T M = \\sigma \\bs v^T$\n", "\n", "$\\bs {u, v}$ are called left and right singular vector of $M$.\n", "* unlike eigenvalues, singular values are always non-negative.\n", "\n", "By convention, \n", "* we represent singular vectors as unit L-2 vectors, i.e., $\\bs u^T\\bs u = \\bs v^T \\bs v = 1$,\n", "* we name the singular values in descending order as $\\sigma_1, \\sigma_2, ..., \\sigma_n$, and refer corresponding singular vector pairs as $ (\\bs u_1, \\bs v_1), (\\bs u_2, \\bs v_2), ..., (\\bs u_n, \\bs v_n) $." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Singular vectors and maximization\n", "\n", "Consider $\\bs u^T M \\bs v$ for real matrix $M$:\n", "\n", "* $\\bs {u_1, v_1}$ maximize $\\bs u^T M \\bs v$ amongst all unit $\\bs {u, v}$ vectors. \n", "\n", "Apply the Lagrange multiplier, with constraints $\\bs u^T \\bs u = \\bs v^T \\bs v = 1$:\n", "\n", "$$\\small \\begin{array} \n", "\\\\l &= \\bs u^T M \\bs v - \\lambda_1 (\\bs u^T \\bs u - 1) - \\lambda_2 (\\bs v^T \\bs v - 1) \\\\\n", "\\frac{\\partial l}{\\partial{\\bs u^T}} &= M \\bs v - 2 \\lambda_1 \\bs u = \\bs 0 \\iff \\bs u^T M \\bs v - 2 \\lambda_1 = \\bs 0\\\\\n", "\\frac{\\partial l}{\\partial{\\bs v}} &= \\bs u^T M - 2\\lambda_2 \\bs v^T = \\bs 0^T \\iff \\bs u^T M \\bs v- 2\\lambda_2 = \\bs 0\n", "\\end{array}$$\n", "\n", "Therefore,\n", "$$ 2\\lambda_1 = \\small \\bs u^T M \\bs v = 2\\lambda_2 $$\n", "$$M \\bs v = \\sigma \\bs u \\;,\\; M^T\\bs u = \\sigma \\bs v $$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Orthogonality of Singular Vectors\n", "\n", "Given $\\bs{u_1, v_1}$ are the first singular vectors of $M$:\n", "\n", "$$\\bs x^T \\bs v_1 = 0 \\iff (M \\bs x)^T \\bs u_1 = 0 \\iff \\bs u_1^T M \\bs x = 0 $$\n", "\n", "because:\n", "\n", "$$ (M \\bs x)^T \\bs u_1 = \\bs x^T M^T \\bs u_1 = \\bs x^T \\sigma_1 \\bs v_1 = 0 $$\n", "\n", "Therefore, if we only consider those $\\bs u^T M^T \\bs u_1 = 0$ ($M$-orthogonal), the corresponding $\\bs v$ must be orthogonal to $\\bs v_1$ :\n", "\n", "* $\\bs {u_2, v_2}$ maximizes $\\bs u^T M \\bs v$ among those $(\\bs u, \\bs v)$ orthogonal to $\\bs u_1, \\bs v_1$\n", "* this process can repeat for all singular vectors (assuming singular values are distinct)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Singular value decomposition\n", "\n", "We can write all singular vectors and singular values in matrix format, which is the singular value decomposition (SVD):\n", "\n", "$$\n", "U^T M V = \\Sigma \\iff M = U \\Sigma V^T\n", "$$\n", "\n", "| | $M$ | $U$ | $\\Sigma$ | $V$ |\n", "| :---: | :---: | :----: | :----: | :---: |\n", "| Name | Original Matrix | Left singular vector | Singular value | Right singular vector |\n", "| Type | Real | Orthogonal, real | Diagonal, positive | Orthogonal, real |\n", "| Size | $m \\times n$ | $m\\times m$ | $m\\times n$ | $n \\times n$ |\n", "\n", "* For matrix $M$, there can only be $\\min(m, n)$ singular values at most\n", "* The left/right singular vectors form a basis for the vector space of $\\bs {u}$ and $\\bs v$ respectively" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Graphical representation of SVD\n", "\n", "Illustration from wikipedia:\n", "\n", "
" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Link between SVD and EVD\n", "\n", "\n", "$$\n", "M = U \\Sigma V^T\n", "$$\n", "\n", "SVD and eigenvalue decomposition (EVD) are closely related to each other:\n", "\n", "* SVD reduces to EVD if $M$ is symmetric positive definite\n", "* $MM^T = U \\Sigma V^T V \\Sigma^T U^T = U \\Sigma \\Sigma^T U^T$:\n", " * the column vectors of $U$ are the eigen vectors of $MM^T$\n", "* $M^TM = V\\Sigma^TU^TU\\Sigma V^T = V \\Sigma\\Sigma^T V^T$: \n", " * the column vectors of $V$ are the eigen vectors of $M^TM$\n", "* The singular values are the positive square roots of eigen values of $MM^T$ or $M^TM$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## SVD of pseudo inverse\n", "\n", "Given the SVD decomposition $X = U\\Sigma V^T$, the SVD of $X$'s pseudo inverse is:\n", "\n", "$$X^+ = (X^TX)^{-1}X^T = V \\Sigma^+ U^T$$\n", "\n", "where $\\Sigma^+$ is the pseudo inverse of $\\Sigma$, whose diagonal elements are the reciprocals of those in $\\Sigma$.\n", "\n", "Proof: the last equation is obviously true, and every step is reversible:\n", "\n", "$$\\begin{array}&(X^TX)^{-1}X^T &= V\\Sigma^+ U^T \\\\\n", "(V \\Sigma^T \\Sigma V^T)^{-1} V\\Sigma^TU^T &= V\\Sigma^+ U^T \\\\\n", "(V \\Sigma^T \\Sigma V^T)^{-1} V\\Sigma^T\\Sigma &= V \\Sigma^+\\Sigma \\\\\n", "(V \\Sigma^T \\Sigma V^T)^{-1} V\\Sigma^T\\Sigma &= V \\\\\n", "(V \\Sigma^T \\Sigma V^T)^{-1} (V\\Sigma^T\\Sigma V^T) &= I \n", "\\end{array}$$\n", "\n", "SVD is another way to solve the least square problem." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## L2 norm and condition number\n", "\n", "Consider a real matrix $A$, its L2 norm is defined as the maximum of $\\frac{\\Vert A \\bs x \\Vert_2}{\\Vert \\bs x \\Vert_2}$:\n", "\n", "$$\n", "\\Vert A \\Vert_2^2 = \\max_{\\bs x} \\frac{\\Vert A \\bs x \\Vert_2^2}{\\Vert \\bs x \\Vert_2^2} \n", "= \\max_{\\bs x} \\frac{\\bs x^T A^T A \\bs x}{\\bs x^T \\bs x} \n", "= \\max_{\\hat{\\bs x}} \\hat{\\bs x}^T A^T A \\hat{\\bs x} = \\sigma_1(A)^2$$\n", "\n", "where $\\hat{\\bs x} = \\frac{\\bs x}{\\Vert \\bs x \\Vert_2}$ is a unit vector, and $\\sigma_1(A)$ is the largest singular value of $A$.\n", "\n", "For a generic non-square matrix $A$:\n", "* the L-2 norm of a matrix is its largest singular value: $\\Vert A \\Vert_2 = \\sigma_1(A)$\n", "* the L-2 norm of the pseudo inverse $A^+$: $\\Vert A^+ \\Vert_2 = \\frac{1}{\\sigma_n(A)}$\n", " * $\\sigma_n(A)$ is the smallest singular value of $A$.\n", "* the L-2 condition number of a matrix $A$ is therefore: $k(A) = \\Vert A \\Vert_2 \\Vert A^+ \\Vert_2 = \\frac{\\sigma_1(A)}{\\sigma_n(A)}$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## SVD and condition number\n", "\n", "SVD offers clear intuitions in understanding the L-2 condition number of a Matrix $A$.\n", "\n", "For a linear system $\\bs y = A \\bs x$, consider a perturbation $\\delta \\bs x$ to the input $\\bs x$:\n", "\n", "* if $\\delta \\bs x$ is stretched by a larger factor than $\\bs x$, then the relative error grows.\n", "* the worst case occurs when $\\bs x$ is stretched by $\\sigma_n(A)$, while $\\delta \\bs x$ is stretched by $\\sigma_1(A)$\n", " * the relative error grows by a factor of $\\frac{\\sigma_1(A)}{\\sigma_n(A)}$.\n", "* Orthogonal matrix represents a pure rotation\n", " * all singular values are 1, no stretches, thus the relative error does not grow" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Spot the trouble\n", "\n", "When working with near singular matrix, SVD can identify ill-conditioned area:\n", "\n", "* real world covariance and correlation matrix are often near singular\n", "* numerical instability arises when inputs are very close to signular vectors with small singular values \n", " * e.g, when return forecast is in the same direction as the last singular vector ..." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Rank deficiency and reduction\n", "\n", "Singular matrix are those that are not fully ranked\n", "* Square matrix: non-invertible, its determinant is 0\n", "* In practice, matrices are rarely exactly singular due to numerical errors\n", "\n", "SVD can detect near singular matrices\n", "* near singular matrix has very small singular values\n", "\n", "SVD can find low rank approximations to a full rank matrix\n", "* by zeroing out small singular values" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Condition number for EVD\n", "\n", "What is the change in $\\lambda_i$ if we perturb the symmetric matrix $A$? \n", "\n", "$$ A \\bs v_i = \\lambda_i \\bs v_i$$\n", "\n", "Apply the perturbation analysis: $\\delta A = \\dot{A} \\epsilon, \\delta \\lambda_i = \\dot{\\lambda_i} \\epsilon, \n", "\\delta \\bs v_i = \\dot{\\bs v_i} \\epsilon$, the first order terms of $\\epsilon$:\n", "\n", "$$\\begin{array} \n", "\\\\ (A + \\dot{A}\\epsilon )(\\bs v_i + \\dot{\\bs v_i}\\epsilon) &= (\\lambda_i + \\dot{\\lambda_i}\\epsilon) (\\bs v_i + \\dot{\\bs v_i} \\epsilon) \\\\\n", "\\dot{A}\\bs v_i + A \\dot{\\bs v_i} &= \\lambda_i \\dot{\\bs v_i} + \\dot{\\lambda_i}\\bs v_i \\\\\n", "\\bs v_i^T\\dot{A}\\bs v_i + \\bs v_i^T A \\dot{\\bs v_i} &= \\bs v_i^T \\lambda_i \\dot{\\bs v_i} + \\bs v_i^T \\dot{\\lambda_i}\\bs v_i \\\\\n", "\\bs v_i^T\\dot{A}\\bs v_i &= \\dot{\\lambda_i}\n", "\\end{array}$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Therefore:\n", "$$\\begin{array}\n", "\\\\ \\frac{ | \\delta \\lambda_i |}{| \\lambda_i |} &= \\frac{\\Vert \\bs v_i^T\\delta A \\bs v_i\\Vert_2}{|\\lambda_i|}\n", "\\le \\frac{\\Vert \\delta A \\Vert_2}{|\\lambda_i|} = \\frac{\\Vert A\\Vert_2}{|\\lambda_i|} \\frac{\\Vert \\delta A \\Vert_2}{\\Vert A \\Vert_2}\n", " = \\left\\vert \\frac{\\lambda_1}{\\lambda_i}\\right\\vert \\frac{\\Vert \\delta A \\Vert_2}{\\Vert A \\Vert_2} \n", " \\end{array}$$\n", " \n", "* The eigenvalue's conditional number for a symmetric matrix $A$ is therefore the ratio from the largest eigen value: $k(A) = \\left\\vert \\frac{\\lambda_1}{\\lambda_i} \\right\\vert$.\n", "* The smaller eigenvalues are less accurate, we should ignore them." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Decomposition summary\n", " \n", "For real matrix $A$:\n", " \n", "| Decomposition | Applicability | Formula | Results | Key applications |\n", "| :---: | :---: | :---: | :---: | \n", "| LU | square, full rank | $A = LU$ | lower, upper triangular | matrix inversion |\n", "| Cholesky | symmetric positive definite | $A = LL^T$ | lower triangular | simulate correlated factors |\n", "| QR | any | $A = Q R$ | orthogonal, upper triangular | solve eigen values, least square|\n", "| EVD | symmetric | $A = R\\Lambda R^T$ | orthogonal, real diagonal | PCA |\n", "| SVD | any | $A = U\\Sigma V^T$ | orthogonal, positive diagonal, orthogonal | error analysis, rank reduction |\n" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Assignment\n", "\n", "Required reading:\n", "\n", "* Bindel and Goodman: Chapter 4\n", "\n", "Recommended reading:\n", "\n", "* Andersen and Piterbarg: 4.1\n", "\n", "Homework: \n", "\n", "* [Homework set 3](http://yadongli.github.io/nyumath2048/)" ] } ], "metadata": { "celltoolbar": "Slideshow", "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.5" } }, "nbformat": 4, "nbformat_minor": 1 }