Skip to content

Instantly share code, notes, and snippets.

@fabianp
Created December 3, 2015 11:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fabianp/1c80fc522617f3d08f6d to your computer and use it in GitHub Desktop.
Save fabianp/1c80fc522617f3d08f6d to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
}
],
"source": [
"%pylab inline\n",
"# decent size plot\n",
"plt.rcParams['figure.figsize'] = (10.0, 8.0)\n",
"plt.style.use('bmh')\n"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(18846, 130107)\n",
"<class 'scipy.sparse.csr.csr_matrix'>\n",
"0.1939923444\n",
"SAGAClassifier\n",
"score = 0.9446095076400679\n",
"SAGAClassifier\n",
"score = 0.9000424448217318\n"
]
}
],
"source": [
"from datetime import datetime\n",
"\n",
"import numpy as np\n",
"\n",
"from sklearn.datasets import fetch_20newsgroups_vectorized\n",
"from sklearn.cross_validation import train_test_split\n",
"\n",
"from lightning.impl.sag import SAGClassifier, SAGAClassifier\n",
"import pylab as plt\n",
"from scipy import sparse\n",
"\n",
"# Load News20 dataset from scikit-learn.\n",
"bunch = fetch_20newsgroups_vectorized(subset=\"all\")\n",
"X = bunch.data\n",
"y = bunch.target\n",
"\n",
"loss = 'log'\n",
"n_samples = y.size\n",
"X = 3 * X[:n_samples]\n",
"y = y[:n_samples]\n",
"\n",
"y[y < y.mean()] = -1.\n",
"y[y >= y.mean()] = 1.\n",
"\n",
"# add some dense factors\n",
"# scipy.sparse.rand creates the full matrix, hence this is the way\n",
"# to keep memory efficient\n",
"if False:\n",
" X = X.tolil()\n",
" for e, i in enumerate(np.random.randint(0, X.shape[0], X.shape[0] / 100.)):\n",
" for j in np.random.randint(0, X.shape[1], X.shape[1] / 100.):\n",
" X[i, j] += np.random.randn()\n",
" X = X.tocsr()\n",
" print(\"Done adding noise\")\n",
"# X += 0.5 * sparse.rand(X.shape[0], X.shape[1], density=.05)\n",
"# X = X.toarray()\n",
"\n",
"print(X.shape)\n",
"print(type(X))\n",
"\n",
"# Train / test split.\n",
"X_tr, X_te, y_tr, y_te = train_test_split(X, y,\n",
" train_size=0.75,\n",
" test_size=0.25,\n",
" random_state=0)\n",
"\n",
"\n",
"from lightning.impl.sgd_fast import Log\n",
"logloss = Log()\n",
"alpha = 1. / X_tr.shape[0]\n",
"\n",
"# compute exact solution\n",
"from sklearn import linear_model\n",
"clf = linear_model.LogisticRegression(\n",
" C=1. / (X_tr.shape[0] * alpha),\n",
" fit_intercept=False,\n",
" solver=\"lbfgs\", tol=1e-12, max_iter=100000)\n",
"clf.fit(X_tr, y_tr)\n",
"pred = X_tr.dot(clf.coef_.ravel())\n",
"loss_true = np.mean([logloss.loss(pred[i], y_tr[i]) for i in range(y_tr.size)]) +\\\n",
" 0.5 * alpha * clf.coef_.ravel().dot(clf.coef_.ravel())\n",
"print(loss_true)\n",
"\n",
"\n",
"loss1 = []\n",
"time1 = []\n",
"start = datetime.now()\n",
"def cb(model):\n",
" w_ = model.coef_.ravel() * model.coef_scale_[0]\n",
" pred = X_tr.dot(w_)\n",
" loss1.append(\n",
" np.mean([logloss.loss(pred[i], y_tr[i]) for i in range(y_tr.size)])\n",
" + 0.5 * alpha * w_.dot(w_)\n",
" )\n",
" time1.append((datetime.now() - start).total_seconds())\n",
"\n",
"clf1 = SAGAClassifier(\n",
" eta='auto', loss=loss, alpha=alpha, beta=0.0, max_iter=500, verbose=False, penalty=None,\n",
" callback=cb, tol=1e-12)\n",
"print(clf1.__class__.__name__)\n",
"clf1.fit(X_tr, y_tr)\n",
"print(\"score = {}\".format(clf1.score(X_te, y_te)))\n",
"\n",
"\n",
"loss2 = []\n",
"time2 = []\n",
"start = datetime.now()\n",
"def cb(model):\n",
" w_ = model.coef_.ravel() * model.coef_scale_[0]\n",
" pred = X_tr.dot(w_)\n",
" loss2.append(\n",
" np.mean([logloss.loss(pred[i], y_tr[i]) for i in range(y_tr.size)])\n",
" + 0.5 * alpha * w_.dot(w_)\n",
" )\n",
" time2.append((datetime.now() - start).total_seconds())\n",
"\n",
"clf2 = SAGAClassifier(loss=loss,\n",
" eta=1., alpha=alpha, beta=0.0, max_iter=500, verbose=False,\n",
" penalty=None, callback=cb, tol=1e-12)\n",
"print(clf2.__class__.__name__)\n",
"clf2.fit(X_tr, y_tr)\n",
"print(\"score = {}\".format(clf2.score(X_te, y_te)))\n"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n2ZNGjRrlycu7777LnXfeSUxMDDExMdx1110hazADValShY0bN3LkyBHq1KlDly5dgqZbvHgxt9xy\nC02bNqVevXpMnDjRd1379u3js88+Y+rUqVSvXp2TTjqJW265xVeIDXZ73VGjRlGzZk2qVKnC3Xff\nzbp160hNTS1UngMFO37t2rU5fPhwsY5XFFElfoZySPsEuk/7SrlPY+4+jXn5tH37dvbs2UOrVq18\n63JycvId2LBkyRIef/xxtmzZgsfjIS0tLSwjS0OpWbNmnkLIkSNH8hT0vOrXrx+0gNisWTPf89jY\nWLKysjhw4EDQ7du3b2fKlCncd999uY6xe/duYmNjGTp0KO+++y69e/fm3XffZeTIkUHzsmfPHpo3\nb57rvHv27Mnnav/06quvMn36dB566CHi4+O5//776dGjR9BzBF6b/3VkZWXRoUMH3zqPx5MrjT+P\nx8PDDz/MBx98wP79+31N9X/88UeegnhxpaamUq9evbAcKz9aCFRKKaXyERsbS4sWLfjuu++Cbg/s\nr5eRkcGYMWOYNWsWF154IZGRkVx99dW+Gp8dO3bkW4B86qmnilwb2KZNG7Kzs9myZYuvSXj9+vW5\nCjb+Onbs6Ouf58/bp8/7vEqVKsTExHD8+HGAXM2csbGx3HnnnSHzOmzYMIYNG8btt9/O6tWreeON\nN4Km8za1nnLKKb7zNm7cGIAaNWqQlpbmS7t3795c+5522mm88cYb5OTk8OKLLzJ27FjWrl0b9Bw7\nd+4Mep3NmjUjOjqazZs3F9j3EmDBggV88sknLF68mObNm3P48GFat27te31r1KjhixeQ7wCPUM3G\nmzZt4oorrigwLydKm4OD0D6B7tO+Uu7TmLtPY35i0idP5uAff+R5pAf0WwuVPlS6gpx++unUqlWL\nZ555hrS0NHJyctiwYQM//vgjYPv/paSk+AoBmZmZZGZmEhMTQ0REBEuWLGHp0qW+48XGxpKSkhLy\n4V+oysjIID09Pc/zQDVr1uTiiy9m2rRpHD9+nK+//pr//Oc/XH755UHTd+/encOHD7N7927fOmMM\n77zzDps2beL48eNMmzaNwYMHhyyoXHfddTz55JO+fodHjhxh8eLFvu2dO3emQYMG3HbbbfTv3586\ndeoEPc7QoUOZPn06Bw4c4MCBAzzxxBO+fHfq1ImNGzeybt060tPTeeyxx3z7ZWVlsWDBAo4cOUJk\nZCS1atUiMjIy6Dkuu+wyZs+eza5duzh06BBPP/20b1vjxo35y1/+wj333ENqaioej4etW7eGnMfw\n2LFjREdHU69ePY4dO8bDDz+ca3vnzp356KOPSEtLY8uWLSELv2DfO7///nuudenp6fz888+cc845\nIfcLFy0EBpGcnExiYqJ+YCullCIiIoL58+ezdu1aunfvTrt27Zg4caKv+XXw4MGArY3r378/tWvX\nJjExkbFjx9K6dWsWLVrEBRdcUKxz9+zZk2bNmrFnzx6GDx9ObGysrxbrySefzFXI+9e//kV6ejqn\nnHIKN910E9OnT/fVrgWqWrUqV155JQsWLPCtExFGjhzJuHHj6NChA1lZWST69aMMLAxedNFF3H77\n7Vx//fW0aNGCs846K8+I1uHDh7Ny5UqGDx8e8honTZpEt27dOPvsszn77LPp1q0bkyZNAqBt27bc\neeedDBkyhJ49e9K7d+9c+XjnnXfo1q0bLVq04NVXX2X27NlBz3HNNdfQv39/+vbtS//+/bnkkkty\nHef5558nKyuL3r1707p1a6677rpctY7+aUeOHEnz5s2Jj4/nrLPOokePHrm233LLLVSpUoVTTjmF\n8ePHM2LEiFzb/Z+PHj2aTZs20apVK6655hoA/vOf/5CQkBC0/2SgpKQkEhMTi115JcE6JFZ2n3/+\nuenevXtpZ0MppSqNXbt20bRp09LORqVy4MABLrzwQlasWEF0dDSXXnopl19+OaNHjy7trFVqAwcO\n5Nlnn+XUU0/Nsy3U/8nq1asZMGBAwUOSA2ifQKWUUqoSiomJ4Ztvvsm1TiuGSt+SJUtcO5c2Bweh\nfQLdp03v7tOYu09jrsq6wsxvpyoOrQlUSimlFB988EFpZ0G5TGsCg9B5At2n86e5T2PuPo25Uqos\n0UKgUkoppVQlpIXAILRPoPu0r5T7NObu05grpcoSLQQqpZQqdVWrVuXAgQM6OlWpEI4fPx5yMuzi\n0nkCg3BznkA5eJCIX38lp0cPKMTtapRSqqI6evQohw8f1hGqSgURGRlJw4YNg/5/6DyB5VFqKrX7\n9yfy999J/+tfSXviidLOkVJKlZpatWpRq1at0s6GUpWGVj0F4VafwOg5c4h07hlY7eWXoRLXympf\nKfdpzN2nMXefxtx9GvPyo1IVAkWkpoi8KiIvisio0s5P1Q8/zLUsu3aVUk6UUkopVdlUqj6BInI1\n8Icx5v9E5C1jzBXB0rnVJ1AOHaJe69a+5dS33iL7vPNK/LxKKaWUqjiK2yew3NcEisgrIrJXRNYG\nrB8kIhtF5DcRudtZ3QzY7jzPcTWjQZh69Ui/9VayO3Ui44orMA0alHaWlFJKKVVJlPtCIDAHGOS/\nQkQigZnO+o7AlSLSAdgBNHeShbx2N+cJTHvkEVJXrOD488+Tc8YZrp23rNE+JO7TmLtPY+4+jbn7\nNOblR7kvBBpjVgIHA1b3BJKNMduMMVnAW8BgYBEwTESeB/QmiUoppZSqtCrqFDH+zb5gawDPNMYc\nB8YWtHNycjK33norcXFxANStW5fOnTv77vvp/ZWjy+Fd9ior+dFlXQ73ckJCQpnKT2VY9q4rK/mp\nLMteZSU/FW3Z+zwlJQWAM844gwEDBlBUFWJgiIi0BD40xnR2locBg4wxNzjLo7GFwAmFOV5JDgyJ\nXLeOiJQUss47D6KiSuQcSimllKo8Ku3AkBB28mffP5znOwq7c0n2CYx+5hlqjR5N3a5difr00xI7\nT3kT+OtRlTyNufs05u7TmLtPY15+VNSqqO+Bdk4N4S5gJHBlaWYIQA4coOoHtitixO7dmCZN7IYj\nR4j6/nsi163DnHQSmaNKfQpDpZRSSlVw5b4QKCLzgX5AjIhsB+43xswRkfHAf4FI4GVjzC+FPWa3\nbt1KJK9V581DMjMByD79dHI6dwYg6ptvqD1ypF3fs2elLAT6999R7tCYu09j7j6Nufs05uVHuS8E\nGmOC1vAZYz4BPnE5O6F5PES/+qpvMWPMGN/znE6dfM8jN2wAjwciKmpLvVJKKaXKAi1pBLFw4UIS\nExPD2q8hasUKIrdsAcBTpw6ZQ4b4tpnGjfHExAAgR48S4dxPuDLRPiTu05i7T2PuPo25+zTm7klK\nSiIxMbHYYxnKfU1gSWjbti1jxxY4k0yRZPfqxbHZs6k6Zw45XbpAjRp/bhQhp1MnIpYvB+wIYk+r\nVmE9v1JKKaUqFu/UU6tXry7W/hViiphwK/F7B2dn55kepvp991HtuecASJs0ifQpU0ru/EoppZSq\nMIo7RYzWBJaGIPMDZickkLlnD9mdO5Pdr18pZEoppZRSlYn2CQzCzXsHe2Wdfz7HXnqJjNtuI6dr\nV9fPX9q0D4n7NObu05i7T2PuPo15+aGFQKWUUkqpSkj7BAYRzj6BUZ9/TnavXlCzZliOp5RSSinl\nT28bF0Zr1qwJyxQxsnMntUaOpF7HjlS/6y7IyQlTDpVSSilV2Z3oFDFaCAxh8uTJJzzrebUZMxCP\nB0lNJfK33yAyMky5q3i0D4n7NObu05i7T2PuPo25exISEpg8eXKx73Smo4NLSMQvvxA9d65vOf2W\nWwrcRw4fpuqbbxK5fj1kZ3N89uwSzKFSSimlKjPtExhEOPoE1ho+nCpffAFAVr9+HF20CCT/5no5\neJB6bdoAYKKjObR9e9DpZJRSSimlvLRPYBkSsWEDUUuXAmAiIkh75JECC4AApn59PE2bAiAZGUT8\n9luJ5lMppZRSlZcWAoM40XkCPR07krp8OVn9+pE5ejQ58fGF3je7Uyff88j1608oH+WJ9iFxn8bc\nfRpz92nM3acxLz+0EFhCcjp14uiiRRx/7LEi7+cVtW5duLOllFJKKQVoITCo4o6yyUMEoqOLtIt/\nrWHk2rXhyUc5cKIjsVXRaczdpzF3n8bcfRrz8kNHHZQx2T17knbPPeR06kR2586lnR2llFJKVVBa\nExjEwoULiz5ZdHZ2WM5tmjUj/Y47yDr/fIwzSKQy0D4k7tOYu09j7j6Nufs05u450cmitSYwiLZt\n2zJ27Ngi7VNz7FhMjRqk3XcfplmzEsqZUkoppZSVkJBAQkICq1evLtb+Ok9gEEWdJzBq5UpqDx4M\ngKlZk8M//IBp2LCksqeUUkop5aPzBJaWnByq33uvbzHz4ou1AKiUUkqpMk8LgUEUpW296rx5RDmj\neE316qT5FQjDwuMJ7/HKKO1D4j6Nufs05u7TmLtPY15+aCHwRKSmUn3qVN9i+oQJ4ekP6PFQ429/\no/aAAdRr2RLS00/8mEoppZRSfrQQGESh5wk0hsyhQzFRUXiaNCF9woTwZCAigqikJKJ+/BE5epTI\nTZvCc9yiyMig2rRpRC1f7srpdF4p92nM3acxd5/G3H0a8/JDC4Enok4d0h59lCNffsmxF16AmjXD\nduhck0aX5J1DjKHaE08QsXmzb1XEhg3U6deP6k88QY2JE+H48ZI7v1JKKaVKhRYCgyjqfDuedu3I\n7ts3rHnwv31cid05xOOh+uTJVJ82jdqDBxPx++8AmJgYZO9ee+5t26hexFvfFYf2IXGfxtx9GnP3\naczdpzEvP7QQWEblKgSuXx/+E3g81Pj736n20ksAROzaRfTzzwNgGjUi7eGHfUmjn3+eyJ9+Cn8e\nlFJKKVVqdJ7AIIo6T2BJkB07qNelCwA5zZtzJJyFsJwcakyYQPRbb/lWZQ4ZwrFZs6BKFbvCGGoN\nGUKVFSsAyO7ShdTPPoOogucXr/rmm1SbOdM2I0dE2HsoO39TP/0UU79++K5FKaWUquSKO0+g3jGk\njDLNmnH0jTfIiY/HExcX1mNHffFFrgJgxsiRHJ85EyIj/0wkwvEnn6ROQgKSno5p1AhJTS1UAS6n\nc2ciUlKQtLS8G/VHh1JKKVUmaHNwEMW9B19YiZB14YV4WrSwNWlhlD1wIMfvvx+AjKuvzlsAdHha\nt+b4I49w9KWXOPrWW4Wuwcvp0oVjzzwTfGOIa9E+JO7TmLtPY+4+jbn7NOblh9YEVlIZf/sbOfHx\nZA8YYJtqQ8gs4j2UvbIGDeLwjz/amj9j7KTXxmDq1Mmb+NixYp1DKaWUUsWnfQKDKAt9AsPmyBEI\nVvAKB2OIWrWK7D59irf/8eNUe/ZZomfPJnXpUlvrqZRSSqki0XsHqzyqfPwxdXv0oMrixeE/eEYG\nNW67jdoXX0zVefOKdYiaN99M9cceI+LQIao7zdNKKaWUcocWAoMoE30C/Xk8VHv8caJnziTqyy+R\ngwfzTS6HD1Pj1lupNXo0Ef/7HzUmTfLN+xcOkV9/Tf0mTYh+800Aavz970T+/HORj5M+frzv+Vcf\nfkiU9iNxlfbbcZ/G3H0ac/dpzMsP7RMYRHJyMomJiSQkJJT67W9q3HILVf/v/5CjR3Ot9zRpwpGk\npDyDNaKWLqXmhAlE7Nr158roaCJ27CCnUaMTy4wxRM+cSY0HHsi1OnPYMHLaty/y4XJ69iRjxAii\nFywAoPqUKaQuXRp0kIpSSimlcktKSiIpKYmGDRsyYMCAIu+vfQKDKEt9AqtNn071qVPzrPfUq8fh\nzZtzj7bNzqZOnz5EJif7VmWMGEHaY49h6tULS35qjBtH9Pz5AJiICNIefpiMm28u9ghm2bmTumee\niTi3pjv25JNkjhkTlrwqpZRSlYHOE1hBpf/972SddRZR339P5C+/ELl+PZGbNpHTsWPegldUFMee\ne47aF1yAqV+f49Onk3XppWHNT9rUqUTs24fs3k3aI4+Qfc45J3Q806wZ6bfdRvXERDLPO4/ss84K\nT0aVUkoplS8tBAaxZs0aykpNICLk9OpFTq9ef67LzkYOHQqaPKdHD47NmkV2376Yhg3Dnh1Trx5H\nnebbcEkfP56l1avTe8KEsB5X5S8pKanUuztUNhpz92nM3acxLz+0EFgeRUVhTjop5Oas4cNdzEwY\n1KhBzmmnlXYugopasYKoFSsw9etjYmLwNGiAadAAT1xciRSylVJKKbdon8AgylKfQOWC48chJwdq\n186zqdqjj1L9X//Ksz7tjjtIv+ceN3KnlFJK5UvnCVSqiGTvXqpNnUrdLl2o9sILwdOEmI7HNGhQ\nkllTSimlSpwWAoMoc/MEVgKB80pFbNtGrUsuocqHH1J13jyin3uOqBUrgu4buXo1tQYPpvpddxH9\n8st2LsX9+0OeK2LDBmqMH0/drl2pPn06EX/8QfTLL0N6ep60WRdcQNo//kH6jTeSMWIEWf37k33a\naXji4k7sgssAncvLfRpz92nM3acxLz+0T6Aqc6pNn061J55AMjOp8uWXvvXpN95Idt++edJH/vwz\nVVaupMrKlbnWZ4wYwfHZs3Oti9i6lbpBOiybatWI2LoVT4cOudZn9+9Pdv/+J3I5SimlVJmkNYFB\ndOvWrbSzUOn4jyQzUVFIZmaeNKGaZiM3bQq63hMbm3ddq1Zk+RUks08/naOvvMKRH37IUwCs6HT0\nnvs05u7TmLtPY15+aE2gKnMybr2ViL17ifrxRzx169qRufXqkX3GGUHTp0+YQPY55xCxaRORfg/P\nqacGTz9uHKZuXdLHjSOnZ8+SvBSllFKqzKp0o4NFpBVwD1DXGDMiWJrp06ebsWPHupuxSi7s80p5\nPHbEb5Uq4TtmBaNzeblPY+4+jbn7NObu09HBhWSM2WqMub6086FKWESEFgCVUkqpfJTbQqCIvCIi\ne0VkbcD6QSKyUUR+E5G7i3Ns7RPoPv3V6D6Nufs05u7TmLtPY15+lNtCIDAHGOS/QkQigZnO+o7A\nlSLSQUSuFpGnRKRpKeRTKaWUUqrMKbeFQGPMSiBwuGhPINkYs80YkwW8BQw2xrxujJlojNklIg1E\nZBbQLVRNoc4T6D6dV8p9GnP3aczdpzF3n8a8/Khoo4ObAdv9lncAZ/onMMb8AdzsZqaUUkoppcqa\nilYIDMtQ5+TkZG699VbinLtC1K1bl86dO/v6OXh/5ehyeJe9ykp+dFmXw72ckJBQpvJTGZa968pK\nfirLsldZyU9FW/Y+T0lJAeCMM85gwIABFFW5niJGRFoCHxpjOjvLvYAHjTGDnOV/AB5jzGNFOe7n\nn39uunfvHubcKqWUUkqFn04RY30PtBORliJSFRgJfFDUg2ifQPcF/npUJU9j7j6Nufs05u7TmJcf\n5bYQKCLzga+A9iKyXUSuM8ZkA+OB/wIbgLeNMb+UZD6OZ+aQcjC9JE+hlFJKKRV25bo5uKQUpTn4\n5e92seDnvQzueDKjuzemdnRUCedOKaWUUupP2hwcRmvWrCExMbHAKu1dRzJYtHYfHgPvrf8f172z\ngQ83/I8cjxaslVJKKVWykpKSSExMLHY3Ni0EhjB58uRco8uC8RhDx0Y1fctHMnJ49qsd3PreRn7c\nlVrSWaxQtA+J+zTm7tOYu09j7j6NuXsSEhKYPHlyse90poXAExBbtxqPX9iW+wa0olGtqr71Ww+m\nc/fHyfxzyRZ2H8koxRwqpZRSSgWnfQKDKM4UMZnZHt5dt4/5a/aSnu3xra8SIQzt3JBR3RpRvUpk\nuLOqlFJKqUpO+wSWsqpREVzZrTFzRnTk3HYNfOuzPIa3f9rL5E+SScvKKcUcKqWUUkr9SQuBQZzI\nPIExNatwV78WPH1pe049uYZv/S/7jvPgki1k+tUSqj9pHxL3aczdpzF3n8bcfRrz8kMLgSWkQ8Oa\nzLi0PTf0bOpb9+Ouo0xduo1sHT2slFJKqVKmfQKDmD59utm3b5/vXp8nat6Pe5j7w27f8oC29bmz\nXwsipMjN90oppZRSgK11TUpKomHDhtxxxx1FLlRoITCIcN872BjDv7/dxYK1+3zrLu5wEhP6xCJa\nEFRKKaXUCdCBIWEU7nsHiwjX92zKRafG+NZ99Mt+Xvl+dz57QY7H8P2OIzy1MoV/f7uzQjcjax8S\n92nM3acxd5/G3H0a8/JD73HmEhFhfJ/mHM/ysHTzQQDe/mkvNatGcEXXxrnSbj+UzpLf/uCz3/5g\n//Es3/qGtapyaceTXc23UkoppSombQ4OItzNwf6yPYaHPtvC1ylHfOvG94llQNsGLN9ykE9//YMN\n+44F3bdTo5o8eUn7EsmXUkoppcqn4jYHa02gy6IihHv7t+Ke/27mp91HAZj51Q5e/GYnmTl5C+R1\nq0WRmpGNx8D6vcc4cCyLmJpV3M62UkoppSoY7RMYRLj7BAaqGhXBPwe2zjWPoH8BMFKgT4u6PDiw\nFfOujKdz41oAGCBp26ESzVtp0T4k7tOYu09j7j6Nufs05uWH1gSWkhpVI3nk/Dbc9fFvbPkjHYDW\nDapxXvsY+repT73qf9b29W1Vz1druHLrIQbHa79ApZRSSp0Y7RMYREn2CQyUnu3hm5TDxNaNpk1M\njd4Mj90AACAASURBVKBp/jiexZXz1mEAAeaP6kSDGtokrJRSSimdIqbcqhYVQb/W9UMWAAEa1KiS\nq0n4ywraJKyUUkop92ghMIiFCxeSmJhYpvo1nN2qnu/5iq0VrxBYlmJdWWjM3acxd5/G3H0ac/ck\nJSWRmJhY7LEM2icwiLZt2zJ27NjSzkYuCS3r8fyqHRhg7Z6jHEzLon51bRJWSimlKivv7W1Xr15d\nrP21JjCIbt26lXYW8oipWYX4RjUB8Bj4ctvhUs5ReIXjHs2qaDTm7tOYu09j7j6NefmhhcByxL9J\neGUFbBJWSimllHu0EBhESc8TWFwJfoXAn3ancjg9uxRzE17ah8R9GnP3aczdpzF3n8a8/NBCYDly\ncs2qdGz4Z5PwVzpKWCmllFLFpIXAIMpin0CvijpKWPuQuE9j7j6Nufs05u7TmJcfWggsZ/wLgT/u\nSuVIBWoSVkoppZR7CiwEisgVQdZdWTLZKRvKap9AgIa1qvruOewx8NXvFWOUsPYhcZ/G3H0ac/dp\nzN2nMS8/ClMT+I8g6+4Jd0ZU4fXVUcJKKaWUOkH53jtYRGKMMQdczE+Z4Oa9g4tjT2oG17y9AYCo\nCOHtqzpRO1rn/VZKKaUqo5K6d3CKiLwvIsNFpGox86bCrHHtaE5xmoSzPYZVFaRJWCmllFLuKagQ\n2Ar4ApgM7BWRF0Wkwg/7Kct9Ar3OblmxmoS1D4n7NObu05i7T2PuPo15+ZFvIdAYs88Y87Qx5gyg\nN/A/4A0R2SIiD4lIC1dyqfLwHyX8w85UjmXmlGJulFJKKVXeFGWKmMZAI6AOsAVoBqwRkWADR8q1\nsjxPoFeTOtG0jakOVIwmYZ1Xyn0ac/dpzN2nMXefxrz8yLcQKCKdRCRRRH4HZgGbga7GmHONMX8F\nTgOmuJBPFUTf1hWrSVgppZRS7imoJnA5UBu43BhzqjFmmjFmu3ejMWYbMKME81cqykOfQICzW9b3\nPf9+55Fy3SSsfUjcpzF3n8bcfRpz92nMy4+CCoFDjDHjjDHf+K8UkZ7e58aY+0okZ6UoOTmZxMTE\nMv9GblY3mjZOk3BWjuGblPLdJKyUUkqpwktKSiIxMbHYlVcFzRN4xBhTJ8j6g8aY+sH2qQjK+jyB\n/ub9uIe5P+wGoE+Lujw4sHUp50gppZRSbgrrPIEiEiEikfapRAQ82gFZJ5phFR7+/QK/23GE4+W4\nSVgppZRS7gnVHJyNLejVdJ77P34BXnAld6WkvPQJBIitW41W9asBTpPw9iOlnKPiKetN7xWRxtx9\nGnP3aczdpzEvP0IVAls7jx3YCaO9y62AOsaYB9zJniqMs1v/2TL/318r3V3+lFJKKVUM+fYJrKzK\nU59AgN1HMrhuwQY8zks587JTaH9SjdLNlFJKKaVcUdw+gVGBK0TkJWPMDc7z10PsZ4wx1xT1ZKpk\nNKkTTd9W9Vi2xc4V+PZPe7lvQKtSzpVSSimlyrJgzcFb/Z5vBpKdv4GPCqs89Qn0Gtm1ke950tZD\npBxKL8XcFJ32IXGfxtx9GnP3aczdpzEvP/LUBBpjHvV7/qCruVHF1iamBmc2r8M3249ggAU/7+WO\nvnprZ6WUUkoFl6dPoIj0L8yOxpgvSiRHZUB56xPotX7PUSZ+9BsAkQKvjoynYa2qpZwrpZRSSpWk\nsPUJBF4BCjNaRDudlTHxjWvRqXFN1u05Ro6BhWv3cWvv2NLOllJKKaXKoDx9Ao0xLY0xrQp6lEZm\nw0FEBovIiyLylogMDJamPPYJ9Lqya2Pf80827udQWvmY11v7kLhPY+4+jbn7NObu05iXHwXdO7jC\nMca8b4y5EbgZGFna+Qm3M2Jr09a5n3BGjuG99f8r5RwppZRSqizKtxAoInVF5CkRWS0iv4vIdueR\n4lYG88nbKyKyV0TWBqwfJCIbReQ3Ebk7n0PcC8wMtqFbt27hzKqrRIQr/EYKf7BhP8fKwa3kEhIS\nSjsLlY7G3H0ac/dpzN2nMS8/CqoJfA7oDjwENAAmACnAjBLOV2HMAQb5r3DudzzTWd8RuFJEOojI\n1U5htqlYjwGfGGPKb7tvPs5qWY/YutEAHMvM4aNf9pdyjpRSSilV1hRUCDwfGGaMWQx4nL+XA6NL\nPGcFMMasBA4GrO4JJBtjthljsoC3gMHGmNeNMRONMbuwBdkBwHARuSnYsctzn0CAyAjh8i5/1gYu\nWrePjGxPKeaoYNqHxH0ac/dpzN2nMXefxrz8KKgQKMBh53mqiNQDdgPtSjRXxdcM2O63vMNZ52OM\necYYc4Yx5hZjzGxXc+eiAW3rc1LNKgAcTMvWeworpZRSKpdgU8T4+xnoC3wOJGGbh48Bm0o4X8UV\nlhshJycnc+uttxIXFwdA3bp16dy5s6+fg/dXTllfHt65PbO+3smRzWuYtWs9F917FZERUmbyF7js\nVVbyo8u6HO7lhISEMpWfyrDsXVdW8lNZlr3KSn4q2rL3eUqKHaJxxhlnMGDAAIoqz2TRuTaKtAEw\nxmwWkUbAo0At4J/GmA1FPluYiUhL4ENjTGdnuRfwoDFmkLP8D2wz9mNFOW55nSw6UFpWDle/tZ4j\nGXZgyF3/z96dx0dV3f8ff32yhwBhDTskEBZRFPctrmjd1y5+bWu/v2I3W9tvLVZRW6tWbayi1ta2\ndq+2VSvVuittEXTcEbEoaxK2hCUs2QjZc35/zDAEGDLJkLkzk3k/H495zJybufd+8nEMZ+79nHNO\nG8dZEwfFOCoRERHpSZFOFt3p7WDnXKlzrjTweotz7mrn3BXx0AE8gEXARDPLN7MM/FPAPNfdgyR6\nTeBu2empXHpYXrD95EdbaO+k0x9L+357lOhTzr2nnHtPOfeecp440sK9wcxOBY7EfwUw2IPouMZw\nLJjZ48BpwGAz2wDc6pz7o5ldC7wKpAK/d84tj2WcsXbJ1CE89d8tNLS0s666kXfW13DSuAGxDktE\nRERiLNzt4J/jHw38BtCwezPgnHNXRT+82Ogtt4N3++27FTy1tBKAyUP78NDFkzDr9lVjERERiUM9\nuXZwR18EDg1MrZI0lixZwrx584KF3Inu8ml5/HPZVlraHCu37mLJpp0cObJfrMMSERGRg+Dz+fD5\nfOTl5UU0MCTcFDEbgOaIIktws2fP7hUdQIDBfdI5Z+LgYPuJJVtiGE1oqiHxnnLuPeXce8q595Rz\n7xQVFTF79uyIVzoL1wm8GvitmX3WzE7t+IjobBIznz08j5TAheIPN9axcmt9bAMSERGRmApXE/gN\n4GdAHXtqAgFwzo2Jbmix09tqAncrfm0t80v9i6ycPC6XH509PsYRiYiIyMGKyhQxwF3Ahc65Ic65\nMR0fkYUpsXTFEXuWkntzXQ3LK3U1UEREJFmF6wTWAwu9CCSe9JZ5AvdVMCibE8fmBtu3/7uMrfXx\nUfKpGhLvKefeU869p5x7TzlPHOE6gbcCD5rZCDNL6fjwIjjpeV87fhT9MlMB2LGrlR/NK6OhpS3G\nUYmIiIjXwtUEth/gR845lxqdkGJvzpw5rrKystdMEbOvJRvruOnlEtoC/+mL8nP5wYwCUjR3oIiI\nSMLoOEXMrFmzuv2PeLhOYP6BfuacW9vdkyWK3jowpKMXV2zjZ74NwfaVRwzjy8eOjGFEIiIiEolo\nrR289kCPiCNNAL21JrCjC6YM4bLDhgbbj3+0hX+v3hGzeFRD4j3l3HvKufeUc+8p54ljvxVDzOy3\nzrmvBl4/doD9nHPuS1GNTKLua8eNoqKmifc21ALwwBvrGdE/g0OH9Y1xZCIiIhJt+90ONrObnHM/\nCby+DXD41wumw2vnnLvdwzg9lQy3g3erb27ju8+vYl1VIwC5WWn8/JJJDO+XGePIREREpCt6bO3g\n3R3AgEecc5v2fY+ZjejuiSQ+5WSkcsenxvOdZ1dR09hKTWMrt84r44GLJpGT0WvH/oiIiCS9cFO9\nrDzA9k96OpB4kgw1gR2N6JfJj84qID2wrtzaqkaKX1tLW/uBBw31NNWQeE85955y7j3l3HvKeeII\n1wnc79KimfUHDjR1jCSow4b35bun7FkI5t0NtfzuvYoYRiQiIiLRFHKKGDPbPXfISGDjPj8eDDzu\nnLs6yrHFTDLVBO7r9+9v5MmPtgTb1xWN4bwpQ2IYkYiIiHSmx2oCA64KPL8MfJG9B4Zscc6t6M5J\nzKwQOBoYDWQAO4AS4E3nXGN3g5bo+fIxI9hQ3chb62oAeOjNDYzsn8kRI/vFODIRERHpSSFvBzvn\nFjjnFgBDnHMLd7cDr7vcATSzL5nZo8A1QCawCngf2AYcAvzCzO43s8kH/Zv0oLlz51JcXJyUdQ0p\nZtx4+jgmDM4GoM3B3a+tpaqhJarnTcZcx5py7j3l3HvKufeUc+/4fD6Ki4sjHstwoCuBu7Wa2Y+B\nK9lza/gJ4M7OruCZWR/gBuBF59yjnZ3AzLKA/zGzKc65Z7sVfZQUFhYyc+bMWIcRM9np/hHD1/5z\nJVUNrVQ1tHL/6+u541PjMS0tJyIiEhd2L2+7ePHiiPYPt2zcH4BJwF3AemAscAuw2jn35U72GwFs\ndc61djkQszHOuQ3h3xl9yVwT2NGi8lpufqU02P72SaO5aOrQTvYQERERr0Vl2TjgUuAi59zLzrlP\nnHMvAxcHth+Qc25TdzqAgX3iogMoexwzuv9eS8s98m4F66oaYhiRiIiI9JRwncBNQJ99tmWz/4jh\nLjOzvoHnuB1pkGzzBHbm6mNGUjAwC4DmNsdPXltHc1vPzxCkGhLvKefeU869p5x7TzlPHOE6gY8B\nL5vZ18zsPDP7OvAS8KiZnbn70c1z/snMsoE/RBKweCsjLYXZZ+STnuq/yly2o4E/LdpvERkRERFJ\nMOFqAtcGXnZ8k+3TxjlXEPZE/kmmj8Y/z+D/AH8BdjjnXu9eyNGnmsD9PfvJVh5+uzzYLj5vAkeN\n6h/DiERERAR6fp5AAJxz+RFHtL8MYAj+28sDgBzCX4mUOHHx1CG8X17LextqAfjpwnU8cvkh5GaF\nG2AuIiIi8ShsJ8zM0szsVDO7MvAc0b/6zrltzrmngPOBzwAXOOeejuRY0aaawP2ZGbNOGcuAQKdv\nx65W7n9jPZ1dSe4O1ZB4Tzn3nnLuPeXce8p54ui0E2hmU4DlwN+A7wSeV5jZIQdxzv9zzlUDsw7i\nGBIDA/ukc/1pY4Ptt9fV8PLK7TGMSERERCIVribwNfwDQe5zzjnzzxQ8C/9VvDM8itFzqgns3MNv\nbeDZZdsAyExL4ZeXTmbMgKwYRyUiIpKcojVP4HTgfhfoKQaefwYc2f0Qpbf4ynGjGBeYNqaptZ2f\nvLaWlihMGyMiIiLRE64TuBE4fZ9tpwAVkZzMzKYElpSLa6oJ7FxmWgo3nZ5Peor/S0fJ9gYe/eDg\npo1RDYn3lHPvKefeU869p5wnjnCdwJuAZ83sCTP7qZk9CTyHf+m4SNwCnAlgZueb2TERHkdibPzg\nbK4+bmSw/ff/VrJkY10MIxIREZHu6LQmEMDMJgFXACPwXxl8yjm3MqKTmX0BeDEwMAQzu9Q5989I\njhVNqgnsmnbnuOWVUj6o8Hf+cjJS+fIxI7hgyhBSU7pdmiAiIiIRiFZNIM65VcBdwG3AXZF2AAOm\nAf8xswVmdgdw0kEcS2IsxYzrTxsXnCuwvrmNX7xVzrefXcmyLfUxjk5EREQ6E26KmIFm9hjQAGwG\nGs3sL2Y2KMLzveGcOxr/lcU1wIoIjxNVqgnsusF90rnjU+MZ2T8juK1kewPffX4Vc15fR3VDS5eO\noxoS7ynn3lPOvaece085TxzhrgT+EcjGP0q4X+A5M7A9EqlmVuic2wIsxn+LOe6UlJRQXFysD3IX\nHZKXw28uP4T/PXoEGal7rka/umoHM59azvPLttLW3jOTSouIiIifz+ejuLg44otX4eYJrAFGOOd2\nddjWB9jknMuN6IRmY51z6wMTUX/KOfdQJMeJJtUERm5zXRO/eqeCt9fV7LW9cHA23z55DIfk5cQo\nMhERkd4pWjWBK4D8fbaNI8xtXDMrMLMrQ/3MObc+8LxidwfQzIaY2Ve7FLHEteH9Mrn97PHcec7+\nt4j/77lV3P/6+i7fIhYREZHo2a8TaGZXm9lMM5sJ/AeYZ2Z3m9k1ZvYTYB7w784O6pxbA7xrZveY\n2bfN7NDAaiMdz9PXzM40szuBLwK/67Hf6iCpJvDgHTcml99cfghf2ucW8SurtnP13OV8vHnnXu/X\nrXfvKefeU869p5x7TzlPHGkhtl0FdLxHXAKcGHgAlNKFUb3OuTLgRjM7HLgUuCtwKzkVaMU/0GQh\n/iXpqiP+DSRuZaSl8MUjhzOjcCC/fruCt9f7bxHXNbXxo3+V8eBFk7TcnIiISIyEnSfwoE9g9nXA\n55z7JKon6kGqCYyOd9fXMOf19VQ3tgIwol8GD148iYHZ6TGOTEREJHFFpSbQzFIO9OjGOcYCOYHj\nXdbdAKX3OH5sLneeM4HMNP/HZ1NdM7f9q4ymVq07LCIi4rVwnbnWAzy6U9m/DfiZmf0KOD9UfWC8\nUU1g9Ewa2oebz8hn94Iiyyt3cc+Cdbz+xhsxjSsZqW7He8q595Rz7ynniSNcJ3D8Po+TgOeBr3f1\nBM65B4BzgWeAkcDtwMdmtjAw4OSISAKXxHXiuFy+ccLoYNu3tpoXV2yPYUQiIiLJp9s1gWaWC7zv\nnJvU7ZOZHe+cezfwehhwPHACsM05d393jxctqgn0xq/eKeeZj7cG29eeNJqLpw6NYUQiIiKJJ2pr\nB4fQH4joX+rdHcDA6y3OueeAQUCfSI4nie1rx43ipHF75hz/5dvlvLu+ppM9REREpKeEGxjy2D6P\nf+Bf7u2vPRjDb4EXevB4nTKzKWb2KzP7u5ldHeo9qgn0RmqKMfuMfCYP7UNt6RLaHdw1fy2rt+0K\nu68cPNXteE85955y7j3lPHGEuxJYin+ewNLA4x3g8865ayM9oZnld2w75z5wznnW6wqsVHIN8D/A\nOV6dV0LLSkvhjrPHMygwTUxjazs/nFdK5c7mGEcmIiLSu0V9nsD9Tmj2I+fc7T1wnD8AFwCVzrlp\nHbafCzyIf1Lq3znn7gmx70XAN4HfOuee3vfnqgn03vqqRr77/Cp2NrcBkD8wiwcumkRORmqMIxMR\nEYlv0Zon8PNmNjXwerKZvW5mr5nZlEgD7UF/xD/qOMjMUoFfBLZPBa40s0PM7Coze8DMRgI45553\nzp0H/K/XQUtoYwdmcetZBaQF5o5ZW9XIj/+zhtZ2b7+kiIiIJItwt4PvBHbP3TEHeA94HfhlNIPq\nCufcG0DVPpuPA0qcc2udcy3AE8AlzrnHnHPXOec2mtlpZvYzM3sEeC3UsVUT6D2fz8f0kf247pQx\nwW2LK+r4+ZsbYhhV76a6He8p595Tzr2nnCeOUGsHdzTEObfFzLKBk4FP458oOl4ndRsFdOw1lOOf\nhibIObcQ/5rFEofOnjiYzXXNPLZ4MwAvr9zOkSP7cfqEgTGOTEREpHcJ1wncamYTgWn45wZsMrMc\nIF5X/OiRe4clJSV885vfZOzYsQDk5uYybdo0ioqKgD3fctTu2fZu+fUlTGjYQmn2BADu+PNz7Dp1\nHOefdXpcxau22t1tFxUVxVU8ydDevS1e4kmW9m7xEk9va+9+vX79egCOOeYYZsyYQXd1OjDEzP4f\n8DOgHbjCOTfPzC4BrnPOnd7ts9FzA0MCx8oHnt89MMTMTgBuc86dG2jfBLSHGhzSGQ0Mib365ja+\n8fQKtgRGCR8zuh93nTOBOF9xUERExHNRGRjinPsT/qXeRjvn5gU2v41/epVINRzEvuEsAiaaWb6Z\nZQBXAM919yCqCfTevt8eczJSuf7UscFLzovK63hh+TbvA+vF9s25RJ9y7j3l3HvKeeIIu2KIc67e\nOVffoV3pnNsc6Qmdcz+NdN+OzOxx4C1gkpltMLMvO+dagWuBV4FlwJPOueU9cT7x3hEj+3H5YXsW\np/nNexupqGmMYUQiIiK9h+fzBCYC3Q6OH82t7Xzr2ZWsq/J3/qYM7cMDF00iNUW3hUVERMDbtYO7\nzcwKzewKM5tlZjeZ2dfNbIaZZXlx/u5asmQJxcXFuqQdBzLSUrjxtHHB+QNXbN3FEx9tiXFUIiIi\nsefz+SguLo64jC2qnUAz+5KZPQpcA2QCq4D3gW3AIcAvzOx+M5sczTgiMXv27L1Gl0l0ddbhLhzS\nh6uOGh5s/2XxJq0v3AP0Jcd7yrn3lHPvKefeKSoqYvbs2UyfPj2i/dPCvcHMcoHJQN+O251z8zvZ\npw9wA/Cic+7RMMfPAv7HzKY4557tUtSSdD53+DDeXV/Lssp62hz8dME6Hr50MhlpnlzMFhER6XW6\nMkXMw8BOYK9LL865gk72GwFsDQzU6FogZmOcc3GxPIRqAuNTRU0T33hmBU2t7QBcfthQvnHC6BhH\nJSIiElvRqgm8G/iMc26Yc66g46OznZxzm7rTAQzsExcdQIlfo3Iz+frxo4Ltpz/eypKNdTGMSERE\nJHGF6wSmAvPCvCdiZjYo8JwarXNEQvMEeq+rNSQXTBnMsaP7B9v3LlxHfXNbtMLq1VS34z3l3HvK\nufeU88QRrhN4D/BDM4tW4dWPAs9jzOz8KJ1DehEz43unjqVfpv97w9b6Fh5+uzzGUYmIiCSecDWB\n5cAwoAXY3uFHzjk3NuKTmp2Kf+WRo4Ac4MvAEufcnEiP2ZPmzJnjKisrg2t9Svx5vayKO+evDbZv\nnVFAUcGA2AUkIiLiMZ/Ph8/nIy8vj1mzZnW7JjBcJ/D0A/3MObeguyfrcNxfAE34bzefAVwHvOOc\ni4t5PzQwJDEUv7aW+aVVAPTPTOWXl00hr29GjKMSERHxVrTWDl5woEfEkfqPe61zbpZz7rvA2cBA\n4PqDOWZPUk2g9yKpIfnWSaMZ0icdgNqmNma9sJpNtU09HVqvpbod7ynn3lPOvaecJ45OO4FmlmFm\nd5jZGjNrCjzfYWYRXW4xsymBOQSDAmsR/8M5d0ckx5Tk1S8zjRtO37OayJadzXzvhdWsr9b6wiIi\nIuGEux38AHAccDuwHhgL3AosClzF697JzB4DnnTOvRAYCFLpnFsUUeRRpNvBieW9DTXc8e81NLf5\nP8u5WWncc14h4wdnxzgyERGR6IvWPIGfAy5xzs1zzq1wzs0DLg1sj8QrgA/AOfcSoJl+5aAdNyaX\nH58zgazA6iE1ja18/6XVrNxaH+PIRERE4pfXa25NA/5jZgvM7A7gJI/P3yWqCfTewdaQHDmyHz85\nbwJ90v0f6bqmNm58qYSlm3f2RHi9kup2vKece085955ynjjCdQKfAp4zs3PN7BAzOw94NrA9Em84\n544GrgDWACsiPI7Ifg4d1pd7L5hI/8Acgrta2rn55RIWV9TGODIREZH4E64mMBO4Bfg8MBLYCDwO\n3Omc6/YwTDO7GFjmnCsxsyOAC51zd0UUeRSpJjCxrdnRwOyXS6hq8K9cmJ5q/HBGASeMzY1xZCIi\nIj0vWlPENDnnbnXOFTrn+gSefxhJBzBwvOeA5kCzCdDCr9LjCgZlc/+FExma458+pqXNcfu/yni9\nrCrGkYmIiMSP/TqBgdU8dr+eYWZnhnpEekLn3PrA8wrn3EORHiea5s6dS3FxseoaPNTTuR6Vm8X9\nF05iRD//bEZtDu5+bS3zVm0Ps2fy0Ofbe8q595Rz7ynn3vH5fBQXF0c8liEtxLZfAocFXv8eOND9\n4oIDHdTMCoATnHOPdyUIMxsCXOac+21X3h9thYWFzJw5M9ZhyEEa1i+DORdO5MaXSthQ00S7g/te\nX0+7g3MnD451eCIiIgdl9/K2ixcvjmj/TmsCD4aZjQe+DpQD8/HXAroOP++Lfw7CM4FtwM9ctILp\nJtUE9i5VDS3c9HIpZTsaAEgx+NFZ4zlxnGoERUQk8UWlJtDMnj3A9qfDHdg5V+acuxFYiH9uwWfM\nbJ6Z/cfMXgUeBvKB+5xzD8ZLB1B6n4HZ6dx7QSGFgcmj2x3cPX8Nyys1j6CIiCSvcFPEHKj274xu\nnONE4J/OuUudc59yzs1wzp3jnPtf59wfnHPV3TiWJzRPoPeiXUPSLzONu86ZEKwRbGpz/ODV0qRe\nYk51O95Tzr2nnHtPOU8coWoCMbMfB15mBCZ17niJcTywthvnGAvkBI57mXPumQjiFDloA/ukc/e5\nE/ju86upaWylrqmNW14p5cGLJjE4MJJYREQkWYSsCTSzPwVefh74a4cfOWAL8HvnXEmXTmB2Hf5l\n5pbg73Q+yD71gfFGNYG928qt9Xz/xRIaW9sBGD8oizkXTiInIzXGkYmIiHRfpDWB4SaL/mpPjNg1\ns1zgeOD/gAbgEPyDQd4EnnTOfXSw5+hJ6gT2fu9vqOXWeaW0BT7+R4zoy13nTiAj1euVFEVERA5O\nVAaGAM2BlT2CzOwIM7uqOydxztU45+YBdzjnPuOcOxT/1cF3gCvM7HvdijrKVBPoPa9rSI4d05/v\nnTo22P5o005+umAd7fF7gbrHqW7He8q595Rz7ynniSNcJ/DHwIZ9tpUDES315px7t8PrLYEVRAYB\nfSI5nsjBOHviYK4+dmSw/fqaan71dgVxXKkgIiLSY8LdDq4Chjjn2jpsSwO2O+d6ZJI1MzsaaHPO\nxc3lN90OTh7OOX71TgX//GRrcNvVx47kiiOGxTAqERGRrovW7eDlwGf22XZZYHuPcM59EE8dQEku\nZsY3ThjFaQUDgtt+//5G/rVay8uJiEjvFnKKmA5uAF4ys88BZcAE4Czg/GgHFktLlixBVwK95fP5\nKCoqism5U8z4/unjqG5s5aNNOwG4//X1fFBeR4r5h8S3By6YO+dwgX1OGNufMyYMiknMPSGWOU9W\nyrn3lHPvKeeJo9NOoHPOZ2bT8E8VMwZ4D/iuc269F8GJeCUjNYXbzh7PrBdWUbajkTYH80urFrtz\nsAAAIABJREFUOt3ntdIqBmWnc8TIfh5FKSIi0nOitnZwIlNNYPLaXt/Cd59fxZadzV16//hBWTx8\n6RRSU7pdiiEiItIjIq0J7PRKoJkNBq4HpgN9O/zIOedO7e7JROLd4Jx0fnHpZBaV19IWuAdsBhZY\nNCfFoM05HnqznKbWdsp2NPLyyu1ceMiQWIYtIiLSbeFqAv8GZAB/xz/J8269+vKhagK9F081JLlZ\nacwo7LzWr3JnC3/+YBMAf1q0kdPGD6BfZrj/neJLPOU8WSjn3lPOvaecJ45w/2qdCOQ55xq9CCZe\nlJSUUFxcTFFRkT7IEtJnpuXxysrtbNnZTG1TG3/5cDPXnDA61mGJiEgS8fl8+Hw+8vLymDFjRrf3\nDzdPoA/4f11dJ7i3UE2gdMXrZVXcOX8tAKkGj3z6EMYOyIptUCIiknSiNU/gfOBlM7vZzGYGHleb\n2czIwhTpPU4pGMC04f5S2TYHj7xTEeOIREREui5cJ/BUoAI4G7gq8Phi4LnX0trB3kvEtSbNjG+e\nOIrdX73eL6/lvQ01MY2pOxIx54lOOfeecu495TxxhJsn8HSP4hBJSBMG9+G8KYN5aYV/hZFfv1PB\nkSP7kZ4a7vuViIhIbIWrCTzgv2TOufaoRBQHVBMo3VHd0MKXn1pOfbN/ie2vHT+Kz0zLi3FUIiKS\nLKJVE9h6gEdLtyMU6aUGZKfzxSOHB9t//XAzVQ36X0REROJbuE7g+H0eJwHPA1+PclwxpZpA7yV6\nDcnFU4cwOjcTgPrmtuAcgvEs0XOeiJRz7ynn3lPOE0ennUDn3Np9Hu8AXwJu8CY8kcSQnprCN04Y\nFWy/vGI7pdt3xTAiERGRznV77WAzGwP81zk3MDohxZ5qAiVSt7xSyvvltQBMG96X+y4oxEzrCouI\nSPREa+3gx/bZ1Af/tDF/7e6JRJLB108YxeJ/1NLmYOnmnbxWWsWZYZagExERiYVwNYGlQEnguRR4\nG7jSOXdttAOLJjPLMbP3zeyCUD9XTaD3eksNydgBWVxy6NBg++dvlVO5szmGER1Yb8l5IlHOvaec\ne085Txz7XQk0syedc1cEmuudc3/wOCYv3AA8GesgpHe66qgRvLWuhs11zdQ3t3HPgnX89PxCUlN0\nW1hEROLHfjWBZlYNDHLOtZtZnXOuX2xC65yZ/QG4AKh0zk3rsP1c4EEgFfidc+6effY7GxgEZAHb\nnHMv7nts1QTKwVq2pZ7vvbCK9sD/Xl8+ZgRXTh/e+U4iIiIR6MmawDeAt81sFZBpZo8C+x7YOee+\nFEGcPemPwM+BR3dvMLNU4BfAWfiXu3vfzJ4DjgGOAu4FTgNygKlAg5m95Lo7OkYkjKnDcvjCkcN5\nbPFmAB79YBNHjuzHlLycGEcmIiLiF6om8HP4O1IrAceeesB96wNjyjn3BlC1z+bjgJLAdDYtwBPA\nJc65x5xz1znnNjrnfuCcuw74G/CbUB1A1QR6rzfWkHx++nCmBjp9bQ6KF6yjoaUtxlHt0RtzHu+U\nc+8p595TzhPHflcCnXMNwGMAZpbunLvd86giNwrY0KFdDhwf6o3OuT8f6CALFy5k0aJFjB07FoDc\n3FymTZtGUVERsOcDrnbPtZcuXRpX8fRU+8YzxnHlT5+gsbUdJkznl2+Xc3zKhriIb7d4ypfaavd0\ne+nSpXEVTzK0e+vf83hq7369fv16AI455hhmzJhBd3V7nsB4Ymb5wPO7awLN7NPAuc65rwbaXwSO\nd859uzvHVU2g9KT/lOzgngXrgu0fzMjn1IJeO82miIh4LFprByeaCmBMh/YY/FcDRWJmRuEgzpiw\np9P34Bsb4nbaGBERSR69rRO4CJhoZvlmlgFcATzX3YOoJtB7+96i7G2+c/IYhvXNAGBncxv3LlxH\nW3tsr8L39pzHI+Xce8q595TzxJGwnUAzexx4C5hkZhvM7MvOuVbgWuBVYBnwpHNueSzjFAHIyUhl\n9unj2D1V4EebdjJ3aWVsgxIRkaTWaU2gmZ0JrHXOlZnZCOAeoA24yTm32aMYPaeaQImWRz/YxF8+\n9P+vk2rws4snM2lonxhHJSIiiSxaNYG/BFoDr+/HP5rYAb/p7okSyZIlSyguLtYlbelxXzhyOIfk\n+Tt9bQ5+9uZ6EnlwloiIxI7P56O4uDjiMrZwncCRzrn1ZpYOnAN8HfgGcHJEZ0sgs2fPDg7JluhL\nlg53aoox+/R8MlP9X9hWb2tgUXldTGJJlpzHE+Xce8q595Rz7xQVFTF79mymT58e0f7hOoG1ZjYc\nOBX4xDlXh3/1kPSIziYijOifyXlThgTbjy/ptZUVIiISx8J1An8OvId/dY1fBradDPTqwRaR9qgl\ncsl21fWzh+eRFhgl8vGWev67aafnMSRbzuOBcu495dx7ynni6LQT6Jy7BzgbONk593hgcznwlWgH\nJtKbDc3J4OyJg4JtXQ0UERGvhZ0ixjm30jlXAsHRwiOcc0ujHlkMaZ5A7yVjDcnnDh8WnDLmg4o6\nVm6t9/T8yZjzWFPOvaece085TxyddgLN7HUzOznw+kbgceBxM7vFi+BEerNRuZmcNn7PSiKPL9kS\nw2hERCTZhJsncDuQ55xrM7NS4GKgFnjLOTfmgDsmuDlz5rjKykqKiopU2yBRtWZHA19/ekWw/cjl\nUygYlB3DiEREJFH4fD58Ph95eXnMmjWr2/MEpoX5eQqAmU0AcM59YmYGDOx0rwQ3ffp0NFm0eKFg\nUDYnjsvl7XU1ADzx0RZuOiM/pjGJiEhi2H2xavHixRHtH64m8E3gF8Ac4JnAtgnA1ojOliBUE+i9\nZK4h+fz0YcHXC8uqqKhp8uS8yZzzWFHOvaece085TxzhOoH/D6gGPgJuC2ybAvwseiGJJJfJQ3M4\nalQ/ANod/P2/qg0UEZHo67QmMFlp7WDx2n831XH9iyUApKUYf/rcVPL6ZsQ4KhERSQRRWTvYzDLM\n7A4zW2NmTYHnO8xM/zqJ9KBpw/ty6LAcAFrbHXOXVsY4IhER6e3C3Q6+B5iBf83gIwLPZwI/jXJc\nMaWaQO8lew2JmXFlh9rAl1dso6qhJarnTPacx4Jy7j3l3HvKeeII1wn8HHCJc26ec26Fc24ecGlg\nu4j0oGNH96dwsH96mKY2x9Mf9+rxVyIiEmNhVwxJRlo72Huaj3H31cDhwfbzy7ZS19QatfMp595T\nzr2nnHtPOU8c4TqBTwHPmdm5ZnaImZ0HPBvYLiI97OT8XMYOyAJgV0s7zy7bFuOIRESktwrXCbwR\n+Df+uQI/AH4OzAduiHJcMTV37lyKi4tV1+Ah5dovxYz/OWJPbeDc/26J2prCyrn3lHPvKefeU869\n4/P5KC4ujngsQ6crhjjnmoBbA4+kUVhYyMyZM2MdhiSpMyYM5C8fbmJjbTO7Wtq58aUS7j63kKmB\n0cMiIiJw8CuG7DdPoJnNAMJOHuicmx/RGROA5gmUWCvZtosbXy6hrqkNgOz0FH78qQkcPqJvjCMT\nEZF4E+k8gaGuBP6eLnQCgYLunkxEuqZwSB/uPX8iN75cQk1jKw0t7dzyail3nD2eIwOri4iIiByM\n/WoCnXP5zrmCcI9YBOsVzRPoPdWQ7G/84Gzuu6CQQdn+72pNre38cF4pi8pre+T4yrn3lHPvKefe\nU84Th6aIEYlj4wZmc9+FExnSJx2A5jbHj+aV8c76mhhHJiIiiU5rB4egmkCJNxtrm7jhpdVU7vSv\nIpKWYtx8Zj5F+QNiHJmIiMRaVNYOFpH4MLJ/JnMumMTwfv5lu1vbHXf+Zw0LSqtiHJmIiCQqdQJD\nUE2g91RDEt6wfhnMuXAio/pnAtDuoHjBWp5bFtnycsq595Rz7ynn3lPOE4c6gSIJZGhOBvddODG4\nqki7g1+8Vc5v3q2gXaUdIiLSDaoJDEE1gRLvqhpauHVeGSu37gpuK8ofwI2njyMzTd/tRESSiWoC\nRZLIwOx0fnp+ISeOyw1u862t5saXSqhuaIlhZCIikijUCQxBNYHeUw1J92Wnp3LrjAIuPXRocNuy\nynq++/wqKmoaw+6vnHtPOfeecu495TxxqBMoksBSU4xvnjiaa04Yxe77ABtrm/m/51bxyeadMY1N\nRETim2oCQ1BNoCQi39pqil9bS3Ob///p9FTjhtPGcdr4gTGOTEREokk1gSJJrih/APdeMJHcLP8y\ncy1tjrvmr+XvH21BX/ZERGRf6gSGMHfuXIqLi1XX4CHlumcckpfDQxdPYnRuZnDb797fyO/e27hf\nR1A5955y7j3l3HvKuXd8Ph/FxcURj2VI6+F4eoXCwkJmzpwZ6zBEIjKifyYPXjSJ2/5dxseb6wF4\namklAF85biRm3b5jICIicaioqIiioiIWL14c0f6qCQxBNYHSGzS3tXPX/LW8va4muO2z0/LUERQR\n6WVUEygie8lITeEHZ+bvNZfgU0srQ94aFhGR5KNOYAiaJ9B7qiGJjvRAR/CkfTqCv31vI2+88UYM\nI0tO+px7Tzn3nnKeONQJFOnl0lNTuGWfjuDcpZW8sGK7rgiKiCQx1QSGoJpA6Y1a2tq5e/5a3uxQ\nI/iZaXl8VTWCIiIJTTWBItKp9NQUbj4zn5P3uSL4W9UIiogkJXUCQ1BNoPdUQ+KN9NQUbplRwMnj\ncqkt9X/O1RH0jj7n3lPOvaecJw51AkWSTFqKccuMAqYNywlum7u0kp+/WU5buzqCIiLJQjWBIagm\nUJJBa7vj7vlr8K3dUyN4+vgB3HB6PmkpqhEUEUkUqgkUkW5JSzFuPrOAGYUDg9sWlFVz27/KaGxt\nj2FkIiLihaTrBJrZ6Wb2hpn9ysxOC/Ue1QR6TzUk3vP5fKSlGN8/bRwXTx0S3P7ehlpufqWE+ua2\nGEbXO+lz7j3l3HvKeeJIuk4g0A7UAZlAeYxjEYm5FDO+deJovnDk8OC2jzfX8/0XV1Pd0BLDyERE\nJJoStibQzP4AXABUOuemddh+LvAgkAr8zjl3zz77mXPOmVkecL9z7ov7Hls1gZKs/rG0kkferQi2\nR+dmUnxeIXl9M2IYlYiIdCYZawL/CJzbcYOZpQK/CGyfClxpZoeY2VVm9oCZjXR7er3V+K8GikjA\np6fl8b1TxrJ7XEh5TRPXPb+K8prG2AYmIiI9LmE7gc65N4CqfTYfB5Q459Y651qAJ4BLnHOPOeeu\nc85tNLPLzOzXwKPAz0MdWzWB3lMNifcOlPNzJw/mljMLgiOEt9a3cN3zqynb3hDRedZVNXDLK6U8\n/JamoNHn3HvKufeU88SRFusAetgoYEOHdjlwfMc3OOeeAZ7p7CALFy5k0aJFjB07FoDc3FymTZtG\nUVERsOcDrnbPtZcuXRpX8SRDe7dQPzfgx586nNv+vYatKxdTC/ww1fjFpZP55IN3u3y+ql0tfO2h\nudQ0ttJ/wnQKh2STU7k8Ln5/tZOjvXTp0riKJxna+nvuzd9vn8/H+vXrATjmmGOYMWMG3ZWwNYEA\nZpYPPL+7JtDMPg2c65z7aqD9ReB459y3u3Nc1QSK+C3bUs/Nr5Swq8U/Zcxhw3O457xC0lPD30Ro\nbmvnxpdK+GRLfXDb1LwcHrx4UtTiFRFJRslYExhKBTCmQ3sMGgEsErGpw3K4+cx8dv9l+XhzPb96\nu6LTfQCcczz8VvleHUCAZZX1rK2K7LayiIj0rN7WCVwETDSzfDPLAK4AnuvuQVQT6L19b1FK9HU1\n58eNyeXqY0cG2y+s2MYLy7d1us/zy7fx8srtwfag7LTg65dXbA+1S1LQ59x7yrn3lPPEkbCdQDN7\nHHgLmGRmG8zsy865VuBa4FVgGfCkc255LOMU6Q0+e3geZ0zYs7LIw29tYOnmnSHfu2RjHb98e88F\n+BmFA7n+tHHB9r9LdtCsFUlERGIuoWsCo0U1gSL7a2xt53vPr6IkMEo4NyuNhy+dvNccgpvqmvj2\nP1dS2+RfbWTy0D7cd8FE0lON/31yGVt2NgMw+/RxnFk4yPtfQkSkF1JNYA9asmQJxcXFuqQt0kFW\nWgq3nT2eAVn+W7s1ja17rTPc0NLGbfPKgh3AQdlp/OisAjLTUkgx49zJg4PH6nirWEREIuPz+Sgu\nLo64jE2dwAOYPXt2cEi2RJ863N6LJOd5fTP44VkFpAa+b5Zsb+D+19fR7hz3LlzHmir/pNLpKcat\nZ41nSM6eq4TnTBoUnIT6o007qahpOujfIdHoc+495dx7yrl3ioqKmD17NtOnT49of3UCRaRbpg3v\ny7dO2jMIf0FZNdc9vwrf2prgtu8UjWHqsJy99huSk8FxY/oH26+s7HxwiYiIRJc6gSFE2qOWyOmq\nq/cOJucXHjKEC6cMCbaXV+4Kvr7s0KGcM2lwqN04b/Kefeat3kFrkq0gos+595Rz7ynniUOdQBGJ\nyDUnjuKw4Xtf7TtyZF++dvyoA+5z3Jj+DO6TDkBVQyvvrKs54HtFRCS61AkMQfMEek81JN472Jyn\np6bwwxkFDAuMDh7ZP5NbziwgNeXAA9RSU4xPTdozKvilJLslrM+595Rz7ynniSMt/FtEREIbmJ3O\nw5dO5sONdRw9qh99M8P/STl38mAeX7IFgA/K69hS18ywfhlh9hIRkZ6meQJDmDNnjqusrKSoqEi1\nDSJRMPvlEhZX1AHwxSOH86WjR8Q4IhGRxOPz+fD5fOTl5TFr1qxuzxOoTmAImixaJLpeL6vizvlr\nARiak86jVxza6W1kERE5ME0W3YNUE+g91ZB4L5Y5P3FcLrmBSae31rfwQUVtzGLxkj7n3lPOvaec\nJw51AkXEc+mpKZw9scMAkRVaQURExGu6HRyCbgeLRN/66ka+Mnc5ACkGf73ysOD0MSIi0nW6HSwi\nCWXsgKzgPIPtDuat0tVAEREvqRMYgmoCvacaEu/FQ87P77CCyKurttPey+9MxEPOk41y7j3lPHGo\nEygiMXNKwQD6ZqQCsLG2mXfWawURERGvqCYwBNUEinjn4bc28OyyPSuHnDguly8cOZxJQ/rEMCoR\nkcShmsAetGTJEoqLi3VJW8QDlx46lD7pe/4Uvb2uhmv/uZIfvlrK8sr6GEYmIhLffD4fxcXFEZex\nqRN4ALNnz9ZqIR5Sh9t78ZLzUblZPHDRJIryc/fa/u6GWv7vuVXc9HIJn2zeGaPoela85DyZKOfe\nU869U1RUxOzZs5k+fXpE+2vtYBGJuYJB2dx61njW7Gjgbx9u5vU11ewuVPmgoo4PKuqYPrIvVx01\ngmnD+8Y0VhGR3kI1gSGoJlAkttZXNfK3JZtZUFZF+z5/ok4rGMBXjx9FXt+M2AQnIhJnVBMoIr3G\n2IFZzD4jn9995hDOnjiIjssKL1xTzdVzl/P4ks00t7XHLEYRkUSnTmAImifQe6oh8V4i5Hx0bhbf\nP20cf/zsVM6YMDC4vam1nT8u2sTX/rGC9zYkzrQyiZDz3kY5955ynjjUCRSRuDeifyY3nZHPfRdM\nZPygrOD2jbVN/ODVMn40r4xNtU2xC1BEJAGpJjAE1QSKxK+2dscLy7fx5w82sbO5Lbg9PdX4zGF5\nHD26P2MHZDIgW+sQi0hyiLQmUKODRSShpKYYlxw6lFPHD+CP72/ilcCawy1tjsc/2sLjH20BoH9m\nKmMHZDF2YJb/eUAWBQOzGZyjzqGICOh2cEiqCfSeaki8l+g5H5idzvdOHctDF08KubpIbVMbH2+p\n56UV2/n1OxXc/EopX3jiY/64aGMMovVL9JwnIuXce8p54tCVQBFJaFPycnjokkm8VlrFB+W1rKtu\nZEN1E42t+48cbnfw+JItjB2QxYzCQTGIVkQkfqgmMATVBIoktnbn2FbfwrqqRtZX+x/LKutZV9UI\nQFZaCr+8bDKjc7PCHElEJP6pJlBEJCDFjLy+GeT1zeDYMf0B2NXcxrXPrqS8xn+V8M7/rOWhiyeR\nkaaqGBFJTvrrF4JqAr2nGhLvJVvO+2SkcsuZ+aSn+r8sl+1o4JF3KzyNIdlyHg+Uc+8p54lDnUAR\nSRoTBvfhG8ePCrafX76N19dUxTAiEZHYUU1gCKoJFOm9nHPcOX8tb6ypBqBPegq/umwKI/pnxjgy\nEZHIaO1gEZEuMDOuKxrD8H4ZAOxqaeeu+Wtp6cI6xK3tjl0dJqgWEUlk6gSGMHfuXIqLi1XX4CHl\n2nvJnPO+mWnccmY+aSn+L86rtu3i9+8feP7Akm27+MVbG/jcX5Zy+WP/5b6F69hc1/1l6pI557Gi\nnHtPOfeOz+ejuLg44rEMGh0cQmFhITNnzox1GCISRZOH5vCV40by63f8g0Oe/ngrR4zox4njcgHY\n2dTK/NIqXlm5nZLtDXvtO2/1DuaXVnHBlCF8fvowBvbRKiQi4r2ioiKKiopYvHhxRPurJjAE1QSK\nJAfnHLf9aw1vr68BoF9mKtcVjeXNddW8saaa5rbwfx8z01K4/NChfPbwPPpm6nu1iHgv0ppAdQJD\nUCdQJHnUNrZyzTMr2FrfcsD3pKcap+QP4NzJgzHgj4s2sayyfq/39M1I5XNH5HHJ1KFkp6cC0NTa\nTk1ja/BR29jKrpZ2jhzZj1G5GogiIj1Dk0X3oCVLlqBOoLd8Ph9FRUWxDiOpKOd+/bPSuPmMfGa9\nuJr2fb4TTxiczXmTB3PGhIH063CV74GL+vLehlr+uGgjZTv8q5DsbG7jD+9v4qn/VpKdnkJNYxtN\n+yxdV1u6hP4TppOdnkLxeYUckpcT7V8v6elz7j3lPHGoEygiSe/Q4X355omj+eXb5WSnp3LmhIGc\nO3kwE4f0Cfl+M+P4sbkcO6Y/C8uq+fMHm9hY6x8oUtfURl1T5yOIG1raueWVUn56fiGFBziHiEi0\n6XZwCLodLJKc6pvbyExLCY4a7qrWdse8Vdv5y+LNbNu157ZyeorRPyuN3KzUwHMaSzbupKaxFYDc\nrDTuvaCQ/IHZPfp7iEhy0e1gEZGDlJORGtF+aSnG+VOGcPbEQVTUNpGZlkJuZhrZ6SmY7f13uXT7\nLr7/Ygk7m9uoaWxl9kslzLlwIqNys3riVxAR6TLNExiC1g72nuaV8p5y3vPSU1PIH5jNiH6Z9MlI\n3a8D6PP5mDC4D3edO4HsdP+f3x0NrdzwUglb6ppjEXKvp8+595TzxKFOoIiIxw7Jy+HHn5pAZqq/\nk7i1voUbXlrNtnp1BEXEO6oJDEE1gSLihQ/Ka7l1XhktgWHJY3Izue/CiQzM1uTTItJ1Wju4i8zv\nLjN7yMy+FOt4RCR5HT26Pz+YUUDggiAbapq46eUSagMDR0REoinpOoHApcAooBkoD/UG1QR6TzUk\n3lPOvRcq5yeOy+WmM/LZPSC5bEcjN79SSn1z59PMxNrmuiZufGk1c15fR0tbe/gdYkSfc+8p54kj\nYTuBZvYHM9tiZkv32X6uma0ws9VmdmOIXScBbzrnrgeu8SRYEZFOnDp+INefOo7d93JWbdvFza+U\nsGZHQ6f7xdIDb6znw407eXXVDp5bti3W4YhIBBK2JtDMTgF2Ao8656YFtqUCK4GzgArgfeBK4Bjg\nKOBe4Ayg2Tn3lJk96Zy7Yt9jqyZQRGLhxRXb+JlvQ7BtwKnjB3DVkSMYOzB+ppAp297AN55ZEWyP\n7J/JHz57CCnW7ZIkEekBSVcT6Jx7A6jaZ/NxQIlzbq1zrgV4ArjEOfeYc+4659xG4GngHDN7CFjg\nadAiIp24YMoQrjlhVPCKoAMWllXz1X8sp/i1tVTUNMYyvKCnP67cq72xtolF5bUxikZEIpWwncAD\nGAVs6NAuD2wLcs41OOe+4pz7jnPuV6EOoppA76mGxHvKufe6kvPLDsvj4Usnc+LY3OA2B8wvreLq\nucu5b+E6NgWWqIuFHbtaeK103+/fxO0tYX3OvaecJ47etmJIj9zbXrhwIYsWLWLs2LEA5ObmMm3a\ntOCC2Ls/4Gr3XHvp0qVxFU8ytHeLl3jU3rt9+6eKWLm1np889iIrttbTf8J02h3MfWU+z7wKnzlv\nBp+fPpzVH73naXwPPPES21fvoP+E6YzOzWT54ndxwPtMp6KmiTVL34+L/O1uL126NK7iSYa2/p57\n8/fb5/Oxfv16AI455hhmzJhBdyVsTSCAmeUDz3eoCTwBuM05d26gfRPQ7py7pzvHVU2giMSTZVvq\n+fMHm/hwY91e29NSjHMnD+bSQ4cydkD0awabWtv54hOfBNc+vuXMfP61egfvbfDfCv70YUP5+gmj\nox6HiOwt6WoCD2ARMNHM8s0sA7gCeC7GMYmIHJSpw3K45/xC7rtgIocP7xvc3trueGH5Nr4ydznX\nPLOCJz/aEtXl5/5TsiPYAczrm05R/gAumTo0+PNXV+2goSW+p7YRkT0SthNoZo8DbwGTzGyDmX3Z\nOdcKXAu8CiwDnnTOLe/usVUT6L19b1FK9Cnn3jvYnB8+oi/3XlDIPecXMjUvZ6+flW5v4Pfvb+Sq\nJz/hu8+t4pmPK9mxq+WgzteRc46nP94abF86dSipKcbRo/sxsn8mADub25gfol4wlvQ5955ynjjS\nYh1ApJxzVx5g+8vAyx6HIyLiCTPjyJH9mH5RXz6oqOOlFdt5d0MNLW17SnuWVdazrLKeR96t4PAR\nfTl9/ECK8gfQPyvyP/mLyutYX+0fnZydnsJ5U4YAkGLGxVOH8Ot3KgB47pOtnD95MKbpYkTiXkLX\nBEbLnDlzXGVlJUVFRcFiTBGReFXf3Mbb62p4rbSKxRW1tIX4s55q/kmpv3PyGHIyUrt9jpteLuGD\nCn9N4mWHDuWaE/fU/u1sauXKxz+hqdW/csh9F0zk8BF9Qx5HRHqOz+fD5/ORl5fHrFmzuv3NK2Gv\nBEbT9OnT0cAQEUkUORmpnDVxEGdNHERNYytvrKlmYVkV/920MzhlQpuD10qraG5t59azCrp1pW7N\njoZgBzDF4NJDh+71876ZaZxVOJAXV2wH4LllW9UJFPHA7otVixcvjmj/hK0JjCbVBHohaz0OAAAW\n2ElEQVRPNSTeU86950XOc7PSuPCQIdx7wUT+duVhfOOEUUwZ2if48zfX1fCPDrV9XfFMh/efNC6X\nEYEawI4u7jBAxLe2mq310Rug0h36nHtPOU8c6gSKiPRSg3PSufywPB66ZPJeV+9+/14Fn2ze2aVj\nVDW08J/SHcH2pw/LC/m+gkHZHBG4+tfu4MXl8Tl5tIjsoU5gCNOnT491CElHtZfeU869F8ucf/W4\nkcErgm0O7pq/luqG8KOHX1i+LTjoZPLQPkwdlnPA93a8GvjSiu00t7UfZNQHT59z7ynniUOdQBGR\nJJCemsIPZhTQL9M/KGTbrhaKF6yjrf3AgwObW9v3Wg7u8sPyOq0lPGlcLkNy0gGoDtQmikj8Uicw\nBNUEek81JN5Tzr0X65zn9c1g9un57O7GLa6o468fbj7g++eXVgUnhx6Sk84pBQM6PX5qinFhYOoY\n8A8QibVY5zwZKeeJQ53AEEpKSiguLtYHWUR6nWPH9OfK6cOC7b9+uJlF5bX7vc85xz8+rgy2Lz10\nKGkp4UcUnzdlMOmB9y2v3MWqrbt6IGoRCcXn81FcXBzxxSvNExiC1g4Wkd6srd1x0yslLNnoHxyS\nm5XGLy+bzNCcjOB7Piiv5aZXSgHISkvhb1ceSt/Mrs0q9tMFa/l3iX/lkLMnDuL7p43r4d9ARDrS\n2sEiItIlqSnGTafnM6iPv1NX09jKXf9ZS2uH+sCOVwHPmTS4yx1A2HuAyIKyqi4NQBER76kTGIJq\nAr2nW+/eU869F085H9gnnVvOLGD3Hd5llfX87j3/0m/rqhpYVO6fHNqAyw4beoCjhDYlL4fJgZHI\nLW2OV1Zt77G4uyuecp4slPPEoU6giEiSmja8LzOPHRlsP/3xVnxrqnm6w+TQJ47LZWSIyaHDuXjq\nngEiLyzf1ukoZBGJDdUEhqCaQBFJFs45bvv3Gt5eVwNAn/QUWtsdzYG5ASNdB7i5tZ0vPPFJcHTx\nrWcVUJTf+ehiEYmMagJFRKTbzIzvnzqW4f38g0J2tbQHO4CFg7OZNvzAk0N3JiMthfMnDw62n/xo\nC7411Xy4sY7V23axqbaJ2sZWXSEUiSF1AkNQTaD3VEPiPeXce/Ga876ZafxwRgHpqXtfSPj0tM4n\nhw7ngkOGBGsOV27dxR3/WcONL5XwrX+u5H//vozP/GUp5/1hCZf++SPunr+G2sBVw54UrznvzZTz\nxKFOoIiIMHFIH645YXSwPbhPOqeGmRw6nLy+GWEnmAb/1ccFZdV857lVbKhuPKhzikjXqSYwBNUE\nikgy8k8QvZVF5bVcddRwDh3W/VrAfdU1tfLPT7ayua6Znc1t1De1+Z+b9zx31DcjlR/OKODIUf0O\n+twiySLSmkB1AkOYM2eOq6yspKioSAthi4hEUVu748111dy7YB1NgVrEVINvnzyG8zssQSci+/P5\nfPh8PvLy8pg1a5YGhvSU2bNnqwPoIdWQeE85955yvr/UFOPUgoHMuWhScPLqNgcP+jbwyDvlBz1w\nRDn3nnLunaKiImbPns306dMj2l+dQBERiblJQ/rw80smUzg4O7jtHx9v5fZ/l9HQ0tbJniISKd0O\nDkE1gSIisdHQ0kbxgnXBeQsBxg/K5o5PjSevb0Yne4okL80TKCIiCS87PZUfnVXA5w7PC24r29HA\nd55dyYrK+hhGJtL7qBMYguYJ9J5qSLynnHtPOe+aFDO+ctwovnfKWHZPXbijoZXrX1zNwrKqbh1L\nOfeecp441AkUEZG4dO7kwRSfV0i/zFQAmtscd81fS/Fra9m+qyXG0YkkPtUEhqCaQBGR+FFR08gP\n55VRXtMU3NYnPYWrjhrBJYcOJS0l8lVNRHoD1QSKiEivNCo3i59dPInTOqw+squlnUfereCaZ1bw\n3011MYxOJHGpExiCagK9pxoS7ynn3lPOI9cvM41bZhRQfN4ExuRmBrevq2rk+hdL+Mlra9lev/8t\nYuXce8p54lAnUEREEsZRo/rz68un8JXjRpKVtuefsNdKq5g5dxlz/7uF1oOcYFokWagmMATVBIqI\nxL+t9c385t0KFpZV77V93IAsvnXSaA4b3pfm1naa29ppbnM0t7XT1Op/3dLWTlOrf9vEIX00B6Ek\ntEhrAtOiEYyIiEi0Dc3J4JYzCzh/Sh0Pv1XO+upGANZVN3LDSyVdPo4BXzt+FJ+elhf2vSK9iW4H\nh6CaQO+phsR7yrn3lPPoOHJkP359+RS+dtxIstP3/mettjT833MHPPJuBY8t3oTujh08fc4Th64E\niohIwktLMT5z+DDOmDCI371fwRtrqmltd2SkppCblUZ6qpGRmkJmqpGRlkJGagoZqcbW+pbgFcTH\nFm9mV3MbXzt+FGaadkZ6P9UEhqCaQBGRxOac61JHrrG1ndv/VcYHFXummTlv8mC+c/IYUjX/oCQI\nzRMoIiIS0NUreVlpKdz+qfEU5ecGt728cjvFC9ZqlLH0euoEhjB37lyKi4tV1+Ah5dp7yrn3lHPv\ndSXnGakp3HJmAWdNHBTctrCsmtv/VUZTa3s0w+uV9Dn3js/no7i4OOKxDKoJDKGwsJCZM2fGOgwR\nEfFIaopx/aljyUlP4dll2wB4d0MtP3i1lNvPHk+fjNQYRyiyv6KiIoqKili8eHFE+6smMATVBIqI\nJCfnHH9atInHP9oS3DZlaB/uPGcC/bN03UTik2oCRUREDpKZ8eVjR3L1sSOD21Zs3cX3X1zNjl37\nL0snksjUCQxB8wR6TzUk3lPOvaecey/SnF9xxDCuPWl0sL2mqpHvvbCaipqmngqt19LnPHGoEygi\nIhLCxVOHcsNp49g9U8zG2iZmPrWM619YzQvLt1HT2BrbAKOsoaWN+SU7qNzZHOtQJEpUExiCagJF\nRGS3N9dWc/f8tbTsM2VMisFRo/pxxoSBnDRuADm9aPBIQ0sb33l2FeuqGxneL4PfffoQMtJ03She\nae1gERGRKDg5fwA/Pb+QRxdv4qNNO9ndF2x3sKi8jkXldaSnbuD4Mf05fcJAjh+TS2ZaCm3tju27\nWtiys5ktdc1U7mxmy07/c+XOZtJSjG+cOJojR/aL7S8Yws/fKmddYCWVzXXNvLuhllMKBsQ4Kulp\n6gSGsGTJEnQl0Fs+n4+ioqJYh5FUlHPvKefe66mcHzq8L/ecP5Edu1p4fU01C0qrWFZZH/x5S5vD\nt7YG39oastNT6JeZyrb6FsLNN33LK6XcePo4Ths/8KBj7CnzVm3n36t37LVtfsmOLncC9TlPHOoE\nioiIdNGgPulceuhQLj10KFvqmllYVsVrZVWUbm8IvqehpZ2Glq5NMt3a7rh7/lpqGlu5eOrQHo+3\n3TlSurEO8rqqBn7+Vvl+29/bUEtdUyv9MtVt6E1UExiCagJFRKQ71lc3sqC0igVlVZR3GEE8MDuN\nvL4ZDOubsddzv8xUHnhjPRs6vPeLRw7nqqOGd3nJu86s3raLB95Yz9b6Fv736BFcMGVw2OM2trbz\nnWdXsrbKfxt4TG4m6alG2Q5/+7pTxnLe5MEHHZv0PNUEdpGZFQFfwP+7T3XOnRzjkEREJMGNHZDF\nl44ewVVHDWdTXTPtzpGXk9HpYIoHLprED14tZcXWXQD85cPNVDW0cO1JY0hNiawj6JzjuWXb+M27\nFcGBLA+9uYHV23bxrZNGk5F64Hh+9XZ5sAOYkWr8YEYBiyvqeOTdCsB/S1idwN4l6Yb6OOd8zv3/\n9u49SKryzOP49wcMDHKZATHG4SKREUtWF8waYXNboFZjLC+57W7ccq3FTTbLXtzSXCyzqayl2dWU\nqVUTLWKyqMTUShLNWqgh0QgxEhOKNRnEoMhQclNARBgdLkHGZ//od4am6Znuge6e6enfp4qizznv\nOeeZh7fg4T39vifmA48C9+Vr43UCK8/rSlWec155znnlVTrnkmgaPYwJDfUFZ9OOrh/C1y9q5twJ\nhyeGPPbiLv5j2UYOdvT+ncXtfzjETU++zF2/3nrUTOal63bxhUfX8/re/Mu9LN/wBkvX7era/sc/\nncB7xg5n9mlj6CxHn9vW3u352dzPq0fVFoGS7pG0Q9KanP0XSnpR0npJ1/Vwib8G/iffgdbW1lKG\nakVYs2ZN4UZWUs555Tnnldffcz68bjA3XjCFuVMOTwxZsXEP//bTDew92FH0dV58bS/z/3cdKza2\nde2bcuJwZp92eDLHizv38U8Pr2PN9vYjzn2l7QC3r9jStT1nypiuEb8TR9Qxo2kkAAEs37C7YCz9\nPecD0bEOXlVtEQjcC1yYvUPSYODOtH8acLmkMyX9jaTbJDWldpOAtojYm3tRgL178+62Mmprayvc\nyErKOa8857zyqiHnQwaJL80+lY+fdXhiyOpt7XzxsfUFF2qOCB5c8xrXPPISO7LaXjptHHdcMpXr\n50xm/qzxXQte795/iC89tp4la3cSERw89A5fW7axayJL0+hhXP2BiUd8f3Bu89iuz8uKKAKrIecD\nzerVq4/pvKr9TmBEPC1pcs7u84DWiNgIIGkxcFlE3ALcn9XuKuCeCoRpZmZW0CCJf5g5njHDh3DP\nqm0AtO7azxWLf09D/RAmNdZzamM9ExuHMamxnklj6hk2eBC3PrWJlVve7LrOiKGDufZDk45YzuXj\nZ72L08YO52tpFnJHwJ3PbOWlnfsYMlhdM5vrBomvzJ181KLXH5zcyDd/tYW3O4INu/azafd+Th0z\nvAJZsXKr2iKwG+OBLVnbW4GZuY0i4oaeLrJ9+/bSRmUFbd68ua9DqDnOeeU555VXTTmXxKenv5uG\n+jruWLG5a43BtgOHWLO9/ajHuCLziLbTGSedwJfnTOaU0cOOuvb0plHc9bEzuPHnL/PS65mJKI/n\nrAX4uVnjaR53wlHnjhg6mFmTGnj65T0ALGvdzbz3dV8EVlPOa11VLxGTRgIfiYiz0/YngQsj4rNp\n+wpgZkT8S2+uO3/+/Mh+JDx9+nRmzJhRqrAtj5aWFue4wpzzynPOK885rzznvPxaWlqOeAQ8YsQI\nFixY0Osp5QOtCJwF3BARF6bt64F3IuLrfRakmZmZWT9UzRND8vk/4HRJkyUNBf4KWNLHMZmZmZn1\nO1VbBEp6AHgGmCppi6R5EXEI+GfgZ8Ba4AcR8UJfxmlmZmbWH1VtERgRl0dEU0QMi4iJEXFv2r80\nIs6IiOaIuLmnaxSzpqCkb6bjqyWdU46fpZYUyrmk2ZLaJP0u/fpKX8Q5UHS3nmZOG/fxEiqUc/fx\n0pM0UdJySb+X9Lykq7tp575eIsXk3H29tCTVS1opqUXSWkl5a5ze9POBNju4aFlrCv458AqwStKS\n7JFDSRcBzRFxuqSZwAJgVp8EPAAUk/PkqYi4tOIBDkz3At8CvpfvoPt4WfSY88R9vLTeBq6JiBZJ\nI4FnJT3hv8/LqmDOE/f1EomIA5LmRMQ+SUOAFZI+GBFdr2jpbT+v2pHAEuhaUzAi3gYWA5fltLkU\nWAQQESuBRkknVzbMAaWYnAMc/9vTDcispwn0tLqr+3iJFZFzcB8vqYjYHhEt6XM78ALQlNPMfb2E\nisw5uK+XVETsSx+HAoOBN3Ka9Kqf13IRmG9NwfFFtJlQ5rgGsmJyHsD70zD2TyRNq1h0tcl9vPLc\nx8sorRpxDrAy55D7epn0kHP39RKTNEhSC7ADWB4Ra3Oa9Kqf1+zjYI5cY7Mnuf+Lqd41dfpeMbn7\nLTAxDXd/FHgYmFresGqe+3hluY+XSXos+SDwr2l06qgmOdvu68epQM7d10ssIt4BZkhqAH4maXZE\n/CKnWdH9vJZHAl8BJmZtTyRTMffUZkLaZ8emYM4j4q3O4e6IWArUSRqLlYv7eIW5j5eHpDrgIeD7\nEfFwnibu6yVWKOfu6+UTEW3AY8C5OYd61c9ruQgsZk3BJcCV0LUQ9Z6I2FHZMAeUgjmXdLKUeXO5\npPPILGie+50HKx338QpzHy+9lM+FwNqIuL2bZu7rJVRMzt3XS0vSOEmN6fNw4HzgdznNetXPa/Zx\ncEQcktS5puBgYGFEvCDpc+n43RHxE0kXSWoF9gLz+jDkqldMzoFPAfMlHQL2AZ/us4AHAGXW0/wz\nYJykLcC/A3XgPl4uhXKO+3g5fAC4AnhOUuc/il8GJoH7epkUzDnu66V2CrBI0iAyg3j3R8STx1O3\nVPVr48zMzMzs2NTy42AzMzOzmuUi0MzMzKwGuQg0MzMzq0EuAs3MzMxqkItAMzMzsxrkItDMzMys\nBrkINLOqJOl5SR+u0L2mSVrVF/euJEn3SbqpiHYr/R5Ys+pXs4tFm1n/Jqmdw++8HAEcADrS9t9H\nxFkVDOcm4NbOjQrfu5KC4t6n+w3gRjKLAZtZlfJIoJn1SxExMiJGRcQoYBNwced2RDxQqTgknQLM\nBvK9j3Ygyn35fD6PAHMknVzuYMysfFwEmllVkrRR0tz0+QZJP5J0v6Q3JT0n6XRJ10vaIWmTpPOz\nzm2QtFDSq5K2SropvYopn/OBZyPiYA/3/qGkRenez0v6kx7ivi3F1Jbi/KO0f5ikb6RYt0taIKk+\n67zLJLWk81olfSTtb5K0RNIuSeslfSbrnB5jk3SOpN+mY4uB7PuNk/SopN3p2r/sfA9sRBwAngU+\nUtQflpn1Sy4Czaxa5T62vBj4HjCGzEvVn0j7m8g8zr07q+19wEFgCnAOcAHwGfI7G1hX4N6XAA8A\nDWRe4H5nvgulwu1DwOkR0QD8BbArHb4FaAamp9/HA19N550HLAI+n877MLAxnbcY2EzmvaKfAv5T\n0pxCsUkaSmZ0cxGZnP0I+GTWz/Z5YAswDngXcH0c+Z7RF1KsZlalXASa2UDxy4h4IiI6gAeBE4Fb\n0vYPgMmSRqdHmB8FromI/RGxE7id7l9u3wC0F7j30xHx01QkfZ/ui6ODwCjgTEmDImJdRGxPI2yf\nBa6NiD0R0Q7cnBXT3wELI+JJgIh4NSLWSZoIvB+4LiIORsRq4L+BK4uIbRYwJCLuiIiOiHgIWJV1\n3kEyheXkdPxXOT/LW0BjgbyYWT/mItDMBorXsj7vB17PGrnan34fCZwK1AHb0qPO3cC3gZO6ue5u\nMoVbT3Zkfd4H1Od7vBwRy8mMxN0F7JB0t6RR6d4nAM9mxbSUzCgcwARgQ577NgFvRMTerH2byYwi\nFoqtCXgl53qbOPydwFuBVuBxSRskXZfTdjSZ3JhZlXIRaGa1ZgvwB+DEiBiTfjVExNndtH8OmFqq\nm0fEtyLiXGBauu4XgZ1kCtVpWTE1RsTorJib81zuVWCspJFZ+yYBW4sIZRtHFouQKZAjxdkeEV+I\niCnApcC1nd+DTM4EVhdxHzPrp1wEmllNiYhtwOPAf0kaJWmQpCk9rPv3c+C96Tt0x0XSuZJmSqoj\nMyp3AOhII5bfBW6XdFJqO17SBenUhcA8SXNTvOMlnRERW4BngJvTxJI/Bq4i89i3kF8DhyRdLalO\n0ieA92XFerGk5vSo+k0yy/N0pGP1wHs5/L1LM6tCLgLNbCDIt75dT9tXAkOBtcAbZCZFvDvvhSN2\nAMuAjx3HvTuNBr6T7rkReJ3D6w9eR+bx628ktZEpsKamGFYB84DbgD3AL8iM+AFcDkwmMyr4Y+Cr\nEbGsUGxptvMngL8lMznlL4GHsto1pxjeIlNo3hURT6VjlwDLI2J7Nz+nmVUBHTnZy8zMckk6E1gU\nEef1dSz9gaTfAFdFxNq+jsXMjp2LQDMzM7Ma5MfBZmZmZjXIRaCZmZlZDXIRaGZmZlaDXASamZmZ\n1SAXgWZmZmY1yEWgmZmZWQ1yEWhmZmZWg1wEmpmZmdWg/wd5QEeVIeMX2wAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1076f9cf8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"\n",
"\n",
"plt.plot(time1, np.array(loss1) - loss_true, lw=3, label=\"eta='auto'\")\n",
"plt.title(\"SAGA: step size comparison\\n loss: %s, amount of regularization: %s\" % (loss, alpha))\n",
"plt.plot(time2, np.array(loss2) - loss_true,\n",
" lw=3,\n",
" color='red',\n",
" linestyle=\"--\", label=\"eta=1.0 (previous default)\")\n",
"\n",
"plt.legend()\n",
"plt.xlabel(\"Time (in seconds)\")\n",
"plt.ylabel(\"loss function suboptimality:\\n $f(x_k) - f(x*)$\")\n",
"\n",
"plt.yscale('log')\n",
"plt.ylim((1e-7, None))\n",
"plt.xlim((0, 3))\n",
"plt.show()\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.4.3"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment