{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import datetime\n", "import matplotlib as mpl\n", "import pandas as pd" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "mpl.style.use('seaborn-darkgrid')\n", "mpl.rc('font', size=16)\n", "mpl.rc('figure', figsize=(16, 10))" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "!wget http://freedata.lt/vptData/sutartys.tsv \\\n", " http://www.freedata.lt/vptData/ataskaitos.tsv \\\n", " http://www.freedata.lt/vptData/dalyviai.tsv \\\n", " http://www.freedata.lt/vptData/dalyviai_krt.tsv \\\n", " https://raw.githubusercontent.com/viesujupirkimutarnyba/pirkimu-duomenys/master/data/grupes.tsv \\\n", " http://www.freedata.lt/vptData/subjektai.tsv \\\n", " http://www.freedata.lt/vptData/bvpz.tsv" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/sirex/anaconda3/lib/python3.6/site-packages/IPython/core/interactiveshell.py:2698: DtypeWarning: Columns (0,9) have mixed types. Specify dtype option on import or set low_memory=False.\n", " interactivity=interactivity, compiler=compiler, result=result)\n", "/home/sirex/anaconda3/lib/python3.6/site-packages/IPython/core/interactiveshell.py:2698: DtypeWarning: Columns (0) have mixed types. Specify dtype option on import or set low_memory=False.\n", " interactivity=interactivity, compiler=compiler, result=result)\n" ] } ], "source": [ "ataskaitos = pd.read_csv('ataskaitos.tsv', sep='\\t', error_bad_lines=False, usecols=['DOK_ID', 'DOK_PIRKIMO_KODAS', 'DOK_POBJ_PAVADINIMAS'])\n", "sutartys = pd.read_csv('sutartys.tsv', sep='\\t', error_bad_lines=False, usecols=['SSUT_DOK_ID', 'SSUT_DATA', 'SSUT_KAINA'])" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style>\n", " .dataframe thead tr:only-child th {\n", " text-align: right;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: left;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>DOK_ID</th>\n", " <th>DOK_PIRKIMO_KODAS</th>\n", " <th>DOK_POBJ_PAVADINIMAS</th>\n", " <th>SSUT_DOK_ID</th>\n", " <th>SSUT_DATA</th>\n", " <th>SSUT_KAINA</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>94901</th>\n", " <td>2002818293</td>\n", " <td>155470</td>\n", " <td>Preliminarioji sutartis dėl laboratorinių reag...</td>\n", " <td>2002818293</td>\n", " <td>2014-11-17</td>\n", " <td>4.532977e+08</td>\n", " </tr>\n", " <tr>\n", " <th>94892</th>\n", " <td>2002818293</td>\n", " <td>155470</td>\n", " <td>Preliminarioji sutartis dėl laboratorinių reag...</td>\n", " <td>2002818293</td>\n", " <td>2014-11-05</td>\n", " <td>3.392120e+08</td>\n", " </tr>\n", " <tr>\n", " <th>108271</th>\n", " <td>2003321086</td>\n", " <td>163138</td>\n", " <td>Vilniaus kogeneracinės jėgainės statybos darbai</td>\n", " <td>2003321086</td>\n", " <td>2016-09-29</td>\n", " <td>2.157321e+08</td>\n", " </tr>\n", " <tr>\n", " <th>108272</th>\n", " <td>2003321086</td>\n", " <td>163138</td>\n", " <td>Vilniaus kogeneracinės jėgainės statybos darbai</td>\n", " <td>2003321086</td>\n", " <td>2016-09-29</td>\n", " <td>1.810765e+08</td>\n", " </tr>\n", " <tr>\n", " <th>110559</th>\n", " <td>2002806241</td>\n", " <td>152404</td>\n", " <td>Preliminarioji sutartis dėl laboratorinių reag...</td>\n", " <td>2002806241</td>\n", " <td>2014-08-13</td>\n", " <td>1.751669e+08</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " DOK_ID DOK_PIRKIMO_KODAS \\\n", "94901 2002818293 155470 \n", "94892 2002818293 155470 \n", "108271 2003321086 163138 \n", "108272 2003321086 163138 \n", "110559 2002806241 152404 \n", "\n", " DOK_POBJ_PAVADINIMAS SSUT_DOK_ID \\\n", "94901 Preliminarioji sutartis dėl laboratorinių reag... 2002818293 \n", "94892 Preliminarioji sutartis dėl laboratorinių reag... 2002818293 \n", "108271 Vilniaus kogeneracinės jėgainės statybos darbai 2003321086 \n", "108272 Vilniaus kogeneracinės jėgainės statybos darbai 2003321086 \n", "110559 Preliminarioji sutartis dėl laboratorinių reag... 2002806241 \n", "\n", " SSUT_DATA SSUT_KAINA \n", "94901 2014-11-17 4.532977e+08 \n", "94892 2014-11-05 3.392120e+08 \n", "108271 2016-09-29 2.157321e+08 \n", "108272 2016-09-29 1.810765e+08 \n", "110559 2014-08-13 1.751669e+08 " ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pirkimai = pd.merge(ataskaitos, sutartys, left_on='DOK_ID', right_on='SSUT_DOK_ID')\n", "pirkimai['SSUT_DATA'] = pd.to_datetime(pirkimai['SSUT_DATA'])\n", "pirkimai['SSUT_KAINA'] = pd.to_numeric(pirkimai['SSUT_KAINA'].str.replace('.', '').str.replace(',', '.'))\n", "kaina = pirkimai['SSUT_KAINA'].copy()\n", "litais = pirkimai['SSUT_DATA'] < datetime.datetime(2015, 1, 1)\n", "kaina[litais] = (kaina[litais] / 3.45280).round(2)\n", "pirkimai['SSUT_KAINA'] = kaina\n", "pirkimai.sort_values('SSUT_KAINA', ascending=False).head()" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style>\n", " .dataframe thead tr:only-child th {\n", " text-align: right;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: left;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>DOK_ID</th>\n", " <th>DOK_PIRKIMO_KODAS</th>\n", " <th>DOK_POBJ_PAVADINIMAS</th>\n", " <th>SSUT_DOK_ID</th>\n", " <th>SSUT_DATA</th>\n", " <th>SSUT_KAINA</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>9878</th>\n", " <td>2002291207</td>\n", " <td>48487</td>\n", " <td>Nacionalinio dispecerinio centro duomenu bazes...</td>\n", " <td>2002291207</td>\n", " <td>2006-09-28</td>\n", " <td>2735222.72</td>\n", " </tr>\n", " <tr>\n", " <th>57816</th>\n", " <td>2003616378</td>\n", " <td>190049</td>\n", " <td>ORACLE programinės įrangos licencijų techninio...</td>\n", " <td>2003616378</td>\n", " <td>2017-09-08</td>\n", " <td>2530787.60</td>\n", " </tr>\n", " <tr>\n", " <th>76566</th>\n", " <td>2003502074</td>\n", " <td>182944</td>\n", " <td>ORACLE (arba lygiavertės) programinės įrangos ...</td>\n", " <td>2003502074</td>\n", " <td>2017-04-21</td>\n", " <td>2244893.64</td>\n", " </tr>\n", " <tr>\n", " <th>89396</th>\n", " <td>2002750577</td>\n", " <td>139509</td>\n", " <td>Oracle programinės įrangos licencijų ir licenc...</td>\n", " <td>2002750577</td>\n", " <td>2013-10-03</td>\n", " <td>2194857.25</td>\n", " </tr>\n", " <tr>\n", " <th>15983</th>\n", " <td>2003404095</td>\n", " <td>180140</td>\n", " <td>Agentūros informacinių sistemų, veikiančių Ora...</td>\n", " <td>2003404095</td>\n", " <td>2017-04-05</td>\n", " <td>1996500.00</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " DOK_ID DOK_PIRKIMO_KODAS \\\n", "9878 2002291207 48487 \n", "57816 2003616378 190049 \n", "76566 2003502074 182944 \n", "89396 2002750577 139509 \n", "15983 2003404095 180140 \n", "\n", " DOK_POBJ_PAVADINIMAS SSUT_DOK_ID \\\n", "9878 Nacionalinio dispecerinio centro duomenu bazes... 2002291207 \n", "57816 ORACLE programinės įrangos licencijų techninio... 2003616378 \n", "76566 ORACLE (arba lygiavertės) programinės įrangos ... 2003502074 \n", "89396 Oracle programinės įrangos licencijų ir licenc... 2002750577 \n", "15983 Agentūros informacinių sistemų, veikiančių Ora... 2003404095 \n", "\n", " SSUT_DATA SSUT_KAINA \n", "9878 2006-09-28 2735222.72 \n", "57816 2017-09-08 2530787.60 \n", "76566 2017-04-21 2244893.64 \n", "89396 2013-10-03 2194857.25 \n", "15983 2017-04-05 1996500.00 " ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "oracle_pirkimai = pirkimai[pirkimai['DOK_POBJ_PAVADINIMAS'].str.contains('oracle', case=False)]\n", "oracle_pirkimai.sort_values('SSUT_KAINA', ascending=False).head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Kiek pinigų per metus išleidžiama Oracle pirkimams\n", "\n", "Duomenys gali būti ne tikslūs, kadangi pirkimai atrenkami tik tikrinant ar pavadinime buvo paminėtas žodis „Oracle“." ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "<matplotlib.axes._subplots.AxesSubplot at 0x7f7d4d673860>" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7MAAAJ6CAYAAAD6jhWnAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlYlPX+//HXgKIgCmiaS6hpiVuuKS6oR8O1zDRLs1xy\nxX3BJXKnI2aJG+aG4G6l5IKaxzVLUvOcrMxcy8wtFXcRExB+f3gxP0dmcFS2+zvPx3V1XXIvc7/f\nszWv+Xzue0wpKSkpAgAAAADAQJyyuwAAAAAAAB4XYRYAAAAAYDiEWQAAAACA4RBmAQAAAACGQ5gF\nAAAAABgOYRYAAAAAYDiEWQAZbs2aNfLx8dHnn3+eZl1iYqL69eun8uXLa+XKleblTZo0UZMmTZ7o\neE+zr71++OEH+fj4KCws7LH3Tb0/1qxZkwmVPf6x16xZo9atW+v777+XJG3evFmtWrXSr7/+miE1\nP86+nTt3lo+Pj+7evStJunnzpt577z1NmjRJ169f15kzZ9S3b1+NGTPG6n5GduvWLS1YsEAdO3aU\nr6+vKleurDp16qhr165asWKFEhISsrU+Hx8fde7cOVtryChhYWHy8fHRDz/8kN2lZLkneT2m5+zZ\ns/Lx8dEHH3yQUSUCwBPLld0FAHAcSUlJCgwM1M6dOzVu3Dh16tTJvG7u3LnZWNmjVapUSVFRUSpS\npMhj79u4cWNFRUXpueeey4TKHv/Y7dq1U/78+RUQEKDixYvrypUrioiI0EsvvZRpx7RXgQIFFB4e\nriFDhqhp06a6e/euOnXqlOaD88SJE3X79u0MqTc7HDx4UP3791dcXJw6dOiggIAAeXh46MqVK/r2\n2281efJkrVy5UvPnz8+W5w3+78jo958iRYooKipKXl5eGXJ7APA0CLMAssS9e/c0atQobd26NU2Q\nlZTjR9nc3d2fOOx5eXll2wc/W8du2rSpvv76a125ckVFihRR8eLFM/2Y9nJ1ddWcOXP0999/y8nJ\nyWptZcqUeZoSs9WlS5fUp08f5c2bV9HR0fL29rZY7+/vr/bt26tbt24KCAjQV199pTx58mRTtTC6\njH7/cXFxybAvvgDgaTHNGECmS05OVlBQkDZt2mQ1yErWpwpfunRJY8eOVaNGjVS5cmXVq1dPQ4cO\n1R9//PHIYx49elS1atVS+/btFRcXZ3O7Jk2a6NVXX9Uff/yh7t27q3r16qpevbq6deum48ePm7ez\nNs3Yx8dHgwYN0q+//qquXbuqRo0aqlOnjvr3769z586Zt7M2zS82NlaBgYGqXbu2qlWrpi5duujI\nkSMaNGiQxbTb1OmR3333nUXdqVP9hg4dmu79YO3YR48e1aBBg/Tuu+/qvffe09tvv61Bgwbp2LFj\nj7hXpU2bNqljx46qXr26qlatqjZt2mjJkiVKTk5O95iXLl3S0KFD9fLLL6tatWrq2LGj/ve//6W5\n/SZNmsjHx0cVK1bUK6+8osaNG8vHx0c+Pj4Wzw9r0yH/+usvDRs2TH5+fqpcubIaNGigvn376siR\nIxbbde7cWb6+vjp//rz69OmjGjVqyNfXV+PHj1diYqJiYmLUvn17Va1aVU2aNNGCBQus3g/vvPOO\natSooSpVqqh58+aaNm1aus+1VOHh4bp69arGjx+fJsimqlq1qgYPHqwTJ04oKirK4v5p166ddu7c\nqSZNmqh58+aP3b8knThxQoMGDVKdOnVUvXp1tW3bVqtXr35k7X/++acCAwNVv359Va5cWQ0bNtSY\nMWN08eLFR+77wQcfyMfHR3/99ZdGjx6tOnXq6KWXXtLrr7+urVu3ptl++fLlateunapVq6bq1avr\ntdde08KFC5WYmGix3f79+9WzZ09z3w0bNtSoUaN09uzZdOu5ffu2pkyZoqZNm6py5cry9fVVx44d\ntW3bNovtHvc1uGjRIvNtNmvWTCtWrNA333xjcepFeq/fh6fe2+Lj46PevXvrwIED6tixo6pWraqa\nNWtqwIAB+vvvv83bPfx6TD32lClTNHv2bPn6+qaZxv+gCxcuqHHjxvL399fFixetTjNOfV4ePXpU\nnTt3VrVq1VS/fn3NnDlTKSkp2rBhg1q3bq2qVauqefPmWrduXZrj2PN4p74PL1++XCtWrJC/v7+q\nVKmiNm3aaP/+/YqPj9fEiRNVv3591ahRQ926ddOpU6csjrNt2za9++675udfkyZNNHHiRF27di3d\n+xtAzsTILIBMlZKSojFjxig6OtpmkLXm6tWr6tChgxISEtS3b1+VL19eZ86c0WeffaYOHTpo1apV\nNkfnzpw5o549e6pYsWKKiIiQu7t7use6cuWKhgwZoo4dO6pfv376448/FBISom7dumnz5s3y8PCw\nue/Zs2c1fPhw9ezZUwMGDNDevXv12WefKT4+XosWLbK6z71799S7d28dP35cAwYMULVq1XTs2DH1\n7dtX+fPnt+v+eVJXrlxRly5dVLJkSY0dO1aFChXSuXPntGDBAnXq1ElbtmzRM888Y3XfBQsWKDQ0\nVM2bN1e/fv3k7Oys7du3KyQkRH/88YeCg4Ot7nfv3j316dNHJ06c0MCBA1WtWjWdPn1a48eP1507\ndyy2nTt3bppzRb///ntNnz5d9evXt9nXrVu31KVLFyUlJWn48OEqWbKkzpw5o6lTp6pr167asGGD\nnn32WYuahg4dqtdee03du3fXunXr9MUXXyghIUG//vqr+vXrJy8vLy1cuFChoaGqUqWK6tSpI0n6\nz3/+o2HDhqlRo0aaMWOG8ubNq127dmn+/Pk6ffq0ZsyYke5jsG3bNhUuXFiNGjVKd7t27dppypQp\n2rJli959913z8vj4eE2fPl1jxowxT3t/nP5///13vf322ypXrpzGjRunQoUK6T//+Y/GjBmjy5cv\nq2/fvlbrOXnypN5++215eXkpMDBQJUuW1LFjx/TZZ59p9+7dWrt2rQoWLJhuT5I0bNgw1alTR9On\nT1d8fLw+/vhjDR48WMuWLdPLL78sSYqMjNSUKVPUpk0bjRgxQpK0fv16ffrpp7p27Zp52fHjx9Wj\nRw/Vrl1b//73v1WgQAGdPHlSc+bMUadOnbRt2zabo9qBgYHavXu3Bg4cqJdfflm3bt3S3LlzNWDA\nAC1YsOCRj481ixYt0scff6x//etf+vDDD5WYmKjw8PBMG1k/deqUxo4dq+7du6tUqVI6cOCApk+f\nrpMnTyo6Olq5ctn+mHfgwAG5uLgoLCxMhQsXtrrNtWvX1L17d6WkpGjx4sV69tlnbX5JEBcXp5Ej\nR6pr167q37+/IiMjNWfOHMXGxurEiRMaMmSIXFxcNH36dH344YeqVq2aSpcuLcn+xzvVpk2b5O7u\nrnHjxikuLk4fffSRhg4dqqpVq6pkyZIKDQ3VqVOnFBISojFjxmj58uWSpJiYGA0cOFCvvvqq+vbt\nK1dXVx0+fFizZ8/WL7/8ki3XNQDwdAizADJNSkqKxo8fr6+++kp9+vSxO8hK0vz583X+/Hl98cUX\nql69uiSZR/Vee+01hYWFafr06Wn2i42NVffu3ZU/f34tWrQo3SCa6tq1axo5cqTatWtnPk7qh+x1\n69apa9euNvf97bfftHr1alWpUkWSVKtWLW3fvl179+7V7du3lS9fvjT7xMTE6PDhw+ratas5ONSt\nW1eFCxfWsGHDHn3nPIUDBw7oxo0bCggIkL+/vySpRo0aql69ujZu3Kjbt29bDbNXrlzR7Nmz1aBB\nA82cOVMmk0mSVL9+fcXHx+vLL79U165dVbZs2TT77tmzR4cPH1b37t3Vp08fSZKvr68qVKigN998\n02Lbh0dbT506pYiICFWvXl1jx4612deZM2dUsWJFtW7dWq1atZIk1axZU7dv31ZwcLC++eYbdezY\n0bz9rVu31KZNG/Nz8qWXXtKGDRu0fv16bd68WaVKlZIkFStWTM2bN9euXbvMYfbChQvy8/NTaGio\n+cuH2rVra//+/dqyZYv++ecf5c2b12qdcXFx+vvvv+Xn52e+D20pUKCAOTA+6M8//9T8+fP1r3/9\n64n6nzlzppKTkzVv3jzz9FNfX1/9+eef2rBhg3r27KncuXOnqWfatGlKTExUZGSkeUT55ZdfVtmy\nZdW1a1dFRkZq+PDh6fYkSS+++KJFOClatKjatWunRYsWmcPstWvX9Morr2jKlCnm+6l27dqKiYnR\n+vXrzfvv2bNHCQkJGj58uCpUqCDp/vO5cuXK2r17t27evGk1qP3zzz/KkyePevbsqYCAAPNyb29v\nvfrqq1q/fv1jh9mUlBRFRETomWeeUVhYmFxcXCTdf20/OIKekf766y8tXbpUvr6+ku4/HpcuXdKy\nZcu0a9cu82vcmt9++00xMTHy9PS0uj4+Pl59+vTRzZs3tXz58keec/vXX39ZfAlQtGhRffvtt/rP\nf/6jnTt3qkCBApIkJycnde/eXbt37zaHWXsf71Tnz5/X9u3bzc/TY8eOad68eSpQoIB5xLhOnTr6\n73//q40bNyouLk7u7u7atWuX+f9LqfXUrFlTPj4++u2332y+ZwPIuZhmDCDTREREaM2aNcqfP7/W\nrl2rCxcu2L3vrl27VLJkSXOQTfX888/Lx8fH6hTVW7duqWfPnpKkxYsXq1ChQnYdy2QyqVmzZhbL\nUoPCo6beFi9e3BxkU5UsWVIpKSm6ceOG1X1+/vlnSVKDBg0slrdo0cL8ASuzpI7OLVy4UAcPHlRK\nSook6bnnnlNAQIA5xD1sz549unv3rlq3bp0mhLVo0UKS9OOPP1rd98CBA5IkPz8/i+WVK1dO91zd\nuLg49e3bV25ubpo9e7Y5HFhTsWJFzZ071xzkUqWO3p8/fz7NPg+GFTc3N3l5ealUqVIW90GJEiUk\nyeKx7NatmyIiItKMoj///PNKTk62mOL5sNSLVtn7gTlfvnxpLnTl5OSUZpT6cfr/7rvvVKlSpTTn\nUS5evFhff/211SCblJSk3bt3q3r16mmmRtepU0deXl5WX5PWPBzsKlWqpMKFC1u81gIDAzVnzhyL\n55qzs7NKliyp2NhY8+h96vM5LCxMJ06cMG9bvnx59erVy+aIY968eTVz5sw003yff/55SdafL49y\n9uxZxcbGytfX1+K5mj9//jSPS0bx8vIyB9lU9r53Va1a1WaQTUhI0IABA3T69GktWrTIHDrTkytX\nLovXeOprp1q1ahbva9ZeU/Y+3qnq1atn8TxNvc2GDRtabJcawG/evCnpfsCWpE8//VRnzpwxb1e7\ndm29//77BFnAgBiZBZBpUlJStHLlSt29e1fvv/++evXqpc8///yR036l+x8mExISbF4YysnJSUlJ\nSeZpdAkJCQoICNDRo0c1evRoiymlj1KgQIE0NaUG4StXrqS7r7VRzNQPWQ+eR/qgy5cvS1KaKyM7\nOzvr+eef1y+//GJf4U+gSpUqmjBhgqZOnaq33npLXl5eqlWrlvncYVuBMTWgjRw5UiNHjkx3m4el\n9mstWDz77LNWg0NycrKGDRum8+fPa+XKlTanPj9o8+bNioqK0pEjR3Tt2jWL+9/aY/Hwlx25c+e2\nukySOfRL90N2ZGSktm3bpvPnz6c5T9bW4y7JHIBtfdHxsFu3bqX5gqNAgQJWA6c9/V+7dk3//POP\nXffng1L327t3r83XpK3R6IcVK1YszbJChQrp9OnT5r8vXbqkyMhIffPNN7p06ZLi4+Mttk99PFq2\nbKnjx49r4cKF2rFjh5599lnVrl1bzZo1k7+/v5ycbH9n/+uvv2rp0qXav3+/rly5YnFuZnqPoS2x\nsbGS0r6uJVmdsZARbN2X0qPfu9L7sm/kyJH6/vvv1a1bN7344ot21eLh4SFnZ2fz36nP0YePk/qe\n/eBryt7HO9XD09lTb9PW8tTHs1u3bjp9+rSioqK0atUqeXt7y9fXV61atUr3NAYAORdhFkCm6dWr\nl3nUMjg4WEFBQRo0aJAWLFiQ7rlc0v3R0lKlSmnmzJnpbpMqNjZWefPmlY+Pj6ZPn6569erphRde\nsKtOa9M9Uz88PWoq6KPWW5N629Y+aNt7ew9/uHsc77zzjlq3bq2YmBjt3btXu3fv1tatWxUeHq7l\ny5ene97jqFGjVLduXavr7Dlf8mG2+pg6daq+/fZbTZs2TZUqVXrk7XzxxRcaP368KlWqpKCgIJUs\nWVIuLi46dOiQzYvbWLuv7bn/e/bsqZ9++kkdOnTQyJEjVbBgQTk5OWnmzJn65ptv0t3Xzc1NpUqV\n0tGjRy2+jLHmxo0bOnv2bJoP2db2sbf/1Ofc4/6Gber9UqtWLY0ePdrqNukFx0dtl5KSYj7GP//8\no06dOun8+fPq0aOH6tWrJw8PD5lMJo0ePVq//fabxb6DBw9W586dtXv3bu3du1cxMTHasGGDatas\nqUWLFlk9X/Xo0aPq1KmT3N3d1a9fP1WoUME8KvfGG2/Y1cfDz9303jMe533icV7b6b13PerxeDB4\nPmzfvn2qUaOGli1bpsaNG5un2D9uLektT/W4j/fTHCtXrlwKDg5Wv379tHv3bu3Zs0dbt25VVFSU\nWrRooRkzZjzRezqA7EOYBZAl2rVrp5MnTyo8PFzjx4/XpEmT0t2+RIkSunLlinx8fOz6kOzp6amo\nqCjdunVLbdu21eDBg7V69Wq5ubk9ct+bN2+mOc8xdVTjcUew7JEa+q5cuWIx6pGSkqK//vrLYtvU\nD1ZJSUkWy+25emx63N3d1aJFC/MU4RUrVig4OFgrVqzQwIED02yfOl3PycnJfG6ivR7s92EPXvU5\nVXR0tCIiIhQQEKBXX33VrmOsWrVKJpNJCxcutAjV9lyh+XEcP35cP/30kxo3bpzmglcPjybZ0rJl\nS82bN09ff/21Xn/9dZvbrV27VsnJyXrttdceeZv29u/h4aF8+fJZHUW/c+eO7ty5k2aETbo/ndXN\nzU03b9587Mf/YRcvXlS5cuUsll29etX8Wtu7d6/OnDmj9957T4GBgRbb2RrRLliwoNq0aaM2bdro\n3r17mjFjhhYsWKBNmzaZz4V/0Pr165WQkKAJEyZYTHu2NkvA3tdg6v1+9erVNLfx8BV1U9/THr5N\na7ebnkuXLqVZlvo6s/c0C2vWrFkjNzc3tW3bVoGBgVq3bp3NKdtP60ke76dVtGhRvfXWW3rrrbeU\nkJCgDz/8UBs2bND+/fvTTNsGkLNxziyALBMYGKimTZsqKipKc+bMSXfbf/3rX7px44a2bNlisTwp\nKUnjxo1L81Me+fLlk6enp7y9vTVp0iT9/vvvGjdunF11JScna+fOnRbLvv32W0mya1TwcVWsWFHS\n/Q9xD9q6dWuan4dIPa/x4dD38M+H2Cs6OtrqFwktW7aUJF2/ft3qfnXr1lWePHm0Zs0a3bt3z2Ld\n9u3b9fHHH1v9EC/dPzdPUppRy//973/mqZmpDh48qDFjxqhJkyYaMmSIfU3p/tWJ8+bNa3EOYGJi\nopYuXWpenxFSb+fhaewHDx40nzP6qCmq77//vooWLaqQkBCbYfvgwYOaNWuWqlSpYleYfZz+a9eu\nraNHj+rkyZMWt9G/f381adLE6qits7OzGjRooGPHjungwYMW627duqUPPvhA+/bte2Sd0v3ny4N+\n++03xcbGml9rtu7jLVu2mK+km7rNsmXL0szecHZ2Np8Db+v5nBoiU8+hTBUREWFx+5L9r0Fvb28V\nKFBA//3vfy32j4uL08aNGy22TR15fPg2jxw5YnEu56PExsamOS0hI967ihcvLk9PT82YMUM3btzQ\nsGHDMuw19LDHebyf1qxZs8yviVQuLi7mC2XZer4AyLkYmQWQZUwmkz799FO9++67mjVrlry9vdW6\ndWur2/bu3VtbtmxRUFCQLl68qCpVqujy5ctatmyZfvzxRzVu3NjmcZo3b67OnTubf+rjwavYWlOg\nQAHNnj3b/IH65MmTmjFjhooUKWKzvqfRuHFjFS9eXIsXL5aXl5cqVqyoo0ePauXKlfLx8bEIOI0a\nNVLu3Lm1cOFCFSpUSIUKFdJ3331ncbGbx5EnTx4tXbpUFy9e1BtvvKGCBQvq2rVrWrlypZydnW1e\nqMbLy0uDBw/WJ598oh49eqh79+5ydXXVjz/+qHnz5qlChQo2rxzdoEEDlS1bVitWrFDBggVVo0YN\nnTp1SnPnzlXp0qXNo1ZXr15V//795ebmpq5du+rQoUNpbuv555+3es513bp1dfToUX300Ud69dVX\ndfnyZS1YsEAtWrTQb7/9pr179+p///ufatSo8UT3W6qyZcuqSJEi2rhxo/liSAcOHNDq1av13nvv\nacmSJVq/fr3efPNN88WEHubp6anw8HAFBATorbfe0ttvvy0/Pz95eHjoypUriomJUVRUlMqXL6/P\nPvvskVPyH7f/IUOG6IcfflDv3r01cuRIeXp6auvWrfr+++81ePBgubq6Wj3GsGHDtHfvXvXu3VvD\nhw9XmTJldO7cOYWHh5tH1uzx008/KSQkRI0bN9adO3c0efJk5cqVS++//76k+19+uLm5acWKFSpd\nurS8vLy0e/dufffdd2rTpo3Wr1+v1atXy9/fX0lJSeaff2nWrJkKFCigS5cuaeHChXJ1dbV5Nd+6\ndetq6dKlmjp1qvr166ekpCRFRUUpX758Kl26tE6ePKndu3erSpUqNl+DD38RkStXLr311luKiIjQ\niBEj1LZtW/3zzz+KiIiQj4+PxRc3+fLlU7169fT9998rLCxMdevW1enTpzV//nxVrVrVfJG4RylR\nooRGjBihXr16qUyZMjpw4IBWrFihChUqpLng2pOoWrWqhg8frsmTJ2vGjBlpRk4zwuM83k/r5s2b\nmjdvnvmK5K6urjp79qxmz56tZ555xuYpFAByLsIsgCzl6uqquXPnqn379goKCjJfsOVhXl5e+vLL\nLxUWFqZFixbp8uXLcnNzU/Xq1bV06VLzT3jYMnLkSP3888+aNGmSXnrppXRHKVJ/azEkJMT8syUv\nv/yyRo8ebdfFqh5Xnjx5tHDhQoWEhGjGjBnKnTu3atWqpfnz55vPb0yd2vjcc89pxowZCgsLU1BQ\nkNzc3NS0aVPNmjVLNWvWfOxjN2/eXHPnztWSJUsUFBSk27dvy8vLS5UrV9bSpUvTvc0ePXqoWLFi\nWrp0qQYPHqzExEQVL17cHG5tnYOXO3duhYeHKyQkRAsWLNC9e/dUvnx5ffLJJ1q2bJk5zJ44ccI8\nbdLWzyE9+DMkDxo4cKDi4+O1bds2rV27VmXKlFHPnj3VqlUrXbhwQWvWrNGwYcPSjAo+LhcXF82d\nO1chISGaOHGiXFxcVLt2bUVERMjFxUX79u3TkiVLzFMXbSlXrpw2btyolStXavv27YqOjtbt27dV\noEABVaxYUcHBwXr99dftCrKP23/58uW1cuVKzZgxQ6NHj9adO3dUsmRJhYSEWJ2Sm6p06dKKiooy\n/yzWtWvXVKBAAdWpU0effPKJypcvb1etwcHBioqK0rBhwxQXF6cyZcpo9uzZ5vPrCxcurNmzZ2vq\n1KkaMWKE3N3d1bBhQ0VGRurSpUv66aefFBoaqpSUFL3//vvy8PDQl19+qS1btujOnTsqXLiwatSo\noeDgYJUsWdJqDU2aNFFQUJCWL1+u3r1769lnn9Ubb7yhvn37auPGjQoJCdHQoUMVHh6u6tWr23wN\n1qpVy+J2hw4dqpSUFG3YsEHbt29X6dKl1bt3byUkJCgmJsbifMxJkyZp0qRJWrFihSIjI1WxYkV9\n8skn+vzzz+0Os88884xGjRql0NBQHT58WM7OzmratKnGjBlj9znMj9KtWzf997//VXh4uGrWrGn3\ntQjs9TiP99NOcf/www9VokQJrV+/Xl988YUSExNVpEgR1a9fX7169cr0q8kDyHimlKe5iggAGFyT\nJk109+5dff/999ldiiSpbdu2OnHihNVRyQdNnz5dhw8f1syZM+06LxjIbh988IHWrl2rr7/+OtOu\n7ptTLV26VJMmTVJoaGi608Z/+eUXjRgxQtOmTVPlypXTvU0fHx9VrVpVq1atyuhyAcAwOGcWALJY\nfHy8xo4dq7CwMIvl58+f14kTJx75Ifbo0aOaN2+eeZQIQM7w+eefq1+/fml+rsne81jHjx+v5s2b\nP/I9AABwH9OMASCLubm56cKFC1q9erXu3bsnPz8/XblyRXPmzFFSUpICAgLS3T/19zjv3r2rq1ev\nPtFP4gDIeB4eHtqxY4f69u2rnj17ysXFRVu2bFFMTIxatGhh8zzqVKdPn1ZiYqLu3Lmje/fuZcpp\nDgDwfwlhFgCywaxZs8w/zxIZGalcuXKpUqVKmj9/vho1apTuvg0aNJCfn586dOigUqVKacOGDVlU\nNYD0tGrVSi4uLoqIiNDw4cN1584dlShRQv3793/kl1SSNGTIEM2ePVurVq3SvHnzrF5PAADw/3HO\nLAAAAADAcAw9MhsbeytbjuvunkdxcXez5djZwZH6daReJcfq15F6lRyrX0fqVXKsfh2pV8mx+nWk\nXiXH6teRepUcq9/s6rVw4fw213EBqCeQK5f1n5/4v8qR+nWkXiXH6teRepUcq19H6lVyrH4dqVfJ\nsfp1pF4lx+rXkXqVHKvfnNgrYRYAAAAAYDiEWQAAAACA4RBmAQAAAACGQ5gFAAAAABgOYRYAAAAA\nYDiEWQAAAACA4RBmAQAAAACGQ5gFAAAAABgOYRYAAAAAYDiEWQAAAACA4RBmAQAAAACGQ5gFAAAA\nABgOYRYAAAAAYDiEWQAAAACA4RBmAQAAAACGQ5gFAAAAABgOYRYAAAAAYDiEWQAAAACA4RBmAQAA\nAACGQ5gFAAAAABgOYRYAAAAAYDiEWQAAAACA4RBmAQAAAACGQ5gFAAAAABhOruwuAAAAAACQNWqF\nfpflx/xvYMNMuV1GZgEAAAAAhkOYBQAAAAAYDmEWAAAAAGA4hFkAAAAAgOEQZgEAAAAAhkOYBQAA\nAAAYDmEWAAAAAGA4hFkAAAAAgOEQZgEAAAAAhkOYBQAAAAAYDmEWAAAAAGA4hFkAAAAAgOEQZgEA\nAAAAhkPHpVNEAAAgAElEQVSYBQAAAAAYDmEWAAAAAGA4hFkAAAAAgOEQZgEAAAAAhpPlYTY5OVmz\nZs1S+fLlFRYWZrEuLi5O//73v9WkSRNVr15d7dq10+bNm7O6RAAAAABADpcrKw929epVDR8+XGfP\nnpWTU9ocPXToUP3xxx+aOHGivL299dVXX2nIkCHy9PRU3bp1s7JUAAAAAEAOlqUjs9HR0XJ2dlZU\nVJScnZ0t1p04cULfffedPvzwQzVo0EClS5dWYGCgSpcurejo6KwsEwAAAACQw2XpyOwrr7yiLl26\nWB2VLVu2rGJiYuTp6Wmx/JlnntG1a9eyqkQAAAAAgAFk6cist7e31SArSU5OTipcuLBy585tXhYb\nG6tDhw6patWqWVUiAAAAAMAAsnRk9nEkJSVp5MiRyp8/vzp16mR1G3f3PMqVy9nquszk7OwkT0+3\nLD9udnGkfh2pV8mx+nWkXiXH6teRepUcq19H6lVyrH4dqVfJsfp1pF4lx+v3SWXWfZQjw2xCQoIG\nDRqkn3/+WZGRkfLw8LC6XVzc3Syu7D5PTzddvx6fLcfODo7UryP1KjlWv47Uq+RY/TpSr5Jj9etI\nvUqO1a8j9So5Vr+O1KvkeP0+qae5jwoXzm9zXY4Ls3fu3FG/fv10+PBhLVq0SNWqVcvukgAAAAAA\nOUyOCrP37t3TkCFDdOLECa1YsUIvvPBCdpcEAAAAAMiBclSYnTlzpg4cOKDPP/+cIAsAAAAAsClL\nw+z169eVmJho/js+Pl6xsbGS7p8nGxERoUGDBsnDw8O8XJKcnZ1VsGDBrCwVAAAAAJCDZWmYHThw\noPbv32/+OzIyUpGRkeZ1SUlJmjZtmqZNm2axX4kSJbRz586sLBUAAAAAkINlaZhdtmxZuusHDBiQ\nRZUAAAAAAIzMKbsLAAAAAADgcRFmAQAAAACGQ5gFAAAAABgOYRYAAAAAYDiEWQAAAACA4RBmAQAA\nAACGQ5gFAAAAABgOYRYAAAAAYDiEWQAAAACA4RBmAQAAAACGQ5gFAAAAABgOYRYAAAAAYDiEWQAA\nAACA4RBmAQAAAACGQ5gFAAAAABgOYRYAAAAAYDiEWQAAAACA4RBmAQAAAACGQ5gFAAAAABgOYRYA\nAAAAYDiEWQAAAACA4RBmAQAAAACGQ5gFAAAAABgOYRYAAAAAYDiEWQAAAACA4RBmAQAAAACGQ5gF\nAAAAABgOYRYAAAAAYDiEWQAAAACA4RBmAQAAAACGQ5gFAAAAABgOYRYAAAAAYDiEWQAAAACA4RBm\nAQAAAACGQ5gFAAAAABgOYRYAAAAAYDiEWQAAAACA4RBmAQAAAACGQ5gFAAAAABgOYRYAAAAAYDiE\nWQAAAACA4RBmAQAAAACGQ5gFAAAAABgOYRYAAAAAYDiEWQAAAACA4RBmAQAAAACGQ5gFAAAAABgO\nYRYAAAAAYDiEWQAAAACA4RBmAQAAAACGQ5gFAAAAABgOYRYAAAAAYDiEWQAAAACA4RBmAQAAAACG\nQ5gFAAAAABgOYRYAAAAAYDiEWQAAAACA4RBmAQAAAACGQ5gFAAAAABgOYRYAAAAAYDiEWQAAAACA\n4RBmAQAAAACGQ5gFAAAAABgOYRYAAAAAYDiEWQAAAACA4RBmAQAAAACGQ5gFAAAAABgOYRYAAAAA\nYDiEWQAAAACA4WR5mE1OTtasWbNUvnx5hYWFWay7d++epk2bpgYNGqhy5cpq27at9uzZk9UlAgAA\nAAByuCwNs1evXlXPnj21ceNGOTmlPXRoaKi+/PJLjRs3TuvXr5efn5969+6t48ePZ2WZAAAAAIAc\nLkvDbHR0tJydnRUVFSVnZ2eLdXFxcVq+fLn69u2rpk2bqmzZsgoMDNQLL7ygiIiIrCwTAAAAAJDD\n5crKg73yyivq0qWL1VHZH3/8UXfv3pWfn5/F8nr16ik6OjqrSgQAAAAAGECWjsx6e3tbDbKSdPr0\naUlSiRIl0uwTGxur+Pj4TK8PAAAAAGAMWToym57bt2/LZDLJ1dXVYrmbm5uk+9OQU/+dyt09j3Ll\nspyunBWcnZ3k6en26A3/j3Ckfh2pV8mx+nWkXiXH6teRepUcq19H6lVyrH4dqVfJsfp1pF4lx+v3\nSWXWfZRjwuyTiIu7my3H9fR00/XrjjNS7Ej9OlKvkmP160i9So7VryP1KjlWv47Uq+RY/TpSr5Jj\n9etIvUqO1++Tepr7qHDh/DbX5Zjfmc2fP79SUlIUFxdnsTz17/z5bTcBAAAAAHAsOSbMlipVSpJ0\n5swZi+WnTp1S8eLF00w/BgAAAAA4rhwTZmvWrCk3Nzft3r3bvCwlJUXfffedGjZsmI2VAQAAAABy\nmiw9Z/b69etKTEw0/x0fH6/Y2FhJUsGCBdWjRw8tWLBAL7zwgl588UUtWbJEly5dUs+ePbOyTAAA\nAABADpelYXbgwIHav3+/+e/IyEhFRkZKknbs2KF+/fopJSVF48eP1/Xr11WhQgVFRETI29s7K8sE\nAAAAAORwWRpmly1b9shtBg4cqIEDB2ZBNQAAAAAAo8ox58wCAAAAAGAvwiwAAAAAwHAIswAAAAAA\nwyHMAgAAAAAMhzALAAAAADAcwiwAAAAAwHAIswAAAAAAwyHMAgAAAAAMhzALAAAAADAcwiwAAAAA\nwHAIswAAAAAAwyHMAgAAAAAMhzALAAAAADAcwiwAAAAAwHAIswAAAAAAwyHMAgAAAAAMhzALAAAA\nADAcwiwAAAAAwHAIswAAAAAAwyHMAgAAAAAMhzALAAAAADAcwiwAAAAAwHAIswAAAAAAwyHMAgAA\nAAAMhzALAAAAADAcwiwAAAAAwHAIswAAAAAAwyHMAgAAAAAMhzALAAAAADAcwiwAAAAAwHAIswAA\nAAAAwyHMAgAAAAAMhzALAAAAADAcwiwAAAAAwHAIswAAAAAAwyHMAgAAAAAMhzALAAAAADAcwiwA\nAAAAwHAIswAAAAAAwyHMAgAAAAAMhzALAAAAADAcwiwAAAAAwHAIswAAAAAAwyHMAgAAAAAMhzAL\nAAAAADAcwiwAAAAAwHAIswAAAAAAwyHMAgAAAAAMhzALAAAAADAcwiwAAAAAwHAIswAAAAAAwyHM\nAgAAAAAMhzALAAAAADAcwiwAAAAAwHAIswAAAAAAwyHMAgAAAAAMhzALAAAAADAcwiwAAAAAwHAI\nswAAAAAAwyHMAgAAAAAMhzALAAAAADAcwiwAAAAAwHAIswAAAAAAwyHMAgAAAAAMhzALAAAAADAc\nwiwAAAAAwHAIswAAAAAAwyHMAgAAAAAMhzALAAAAADAcwiwAAAAAwHByZJhNSEjQ7Nmz1aJFC730\n0ktq1KiRZs+erYSEhOwuDQAAAACQA+TK7gKsCQ0N1VdffaWQkBBVqFBBR44c0Ycffqhbt24pKCgo\nu8sDAAAAAGSzHDkyu379erVt21bNmjWTt7e3mjVrpnbt2mnDhg3ZXRoAAAAAIAfIkWHWZDIpVy7L\nQWMXFxeZTKZsqggAAAAAkJPkyDDbqVMnRUdH6+DBg0pJSdGJEycUHR2tDh06ZHdpAAAAAIAcIEee\n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\ni7EAAAAAAH7E78psw4YNVbduXaWkFL/Qy+rVq9W+fXuFhIR4NBkAAAAAwF/43dWMJWn48OEaM2aM\nWrdurTZt2mjZsmXatGmT3nnnHa9HAwAAAAD4Ab8ss7169VJBQYGmT5+uI0eOqGHDhkpOTlbr1q29\nHs1Jhw8fVq1atRQYGOj1KAAAANZhLQVUDL+7NY+/OHz4sNasWaPAwED97ne/U1hYmI4ePaq33npL\n6enpio6O1r333quWLVt6PWqFa968uT7++GNdc801Xo9SLnbs2KGmTZuqSpXin7LfvHmz3nzzTWVl\nZalBgwZKSkqqFLeBOnz4sEJCQhQZGSnph++jz58/X2lpaQoPD1dsbKz69u2rGjVqeDxp2f3+97/X\njTfeqKSkJIWGhno9ToXbuXOnPvnkEwUEBKhXr15q1KiRUlNT9frrr+vAgQOKjo5Wnz59dPvtt3s9\narlZt26d1q9fr8zMTBUUFCgoKEgRERGKiYlR586di667YLuzZ89q2bJlWrdunQ4cOFDsIojXXHON\nbr75Zt16660l3scqs9zcXD366KN6++23vR6lTI4fP641a9boxIkTatWqVal/z+Tn5+v555/Xiy++\n6MGE5Yv11A9YS9mNtZT/osyWYtOmTXr44Yd16tQpST9clGru3LkaOHCgTp8+rXr16ik9PV05OTma\nM2eOrr/+eo8nLpvk5OSf3P/666/rvvvuU0REhKQfPgZus6ZNm2rt2rVFb0iStH79eg0ePFgNGzZU\n48aNtWvXLh08eFBvvfWW2rdv7+G0ZbN27VoNGzZMEyZMUM+ePZWamqr77rtPVapUUZMmTVRYWKg9\ne/YoODhY8+fPV8OGDb0euUxiY2NVv359nTlzRiNGjFDPnj0VEBDg9VgVYv369RoyZIjCw8MVFBRU\n9GmWxx57TI0bN1b9+vW1b98+bd++XZMmTdKdd97p9chlcuzYMT388MPavn27GjVqpIiICO3du1eF\nhYXq2LGj9u3bp927d+uuu+7Ss88+q6Agv/zg0SXJzMxUUlKSDh8+rKZNm6pu3bq67LLLJEl5eXk6\ncOCAdu/erSZNmmjmzJmKioryeGLfyM7OVkJCglJTU70e5VdLTU3VoEGDlJOTU/Te1KlTJ02aNKnY\nIrgyZJXcWk+xlmItxVrKG5TZUgwYMEDh4eEaP368jDF66aWXlJubK0l68803FRISovPnz2vUqFE6\n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\nXnmlevXqpVq1ank9arnIz8/XJ598on379unChQtq2LChEhMTiz7WlZ2drYCAAGv+Av45a9eu1caN\nG5WRkaGCggJJUnh4uBo0aKCEhATdcMMNHk/oW4WFhTp8+LBq167t9Shlkpubq6VLl6pv376lXnXb\nGKMlS5Zow4YNleLWPK6vp1hLsZayjW1rKcosAAAAAMA6XADqIo4fP65333231BvWN2rUSLfccov6\n9u2r8PBwjyctH+StvHldyiq5ldelrJJ7eX/O8ePHdc8991h/i49L5VJel7JKbuV1KavkVl6Xskr+\nk5czs6XYuXOnBg0apKCgILVp06bUG9Zv3rxZ1apV0+zZs63/Yjt5K29el7JKbuV1KavkXt5LUVnu\nRXqpXMrrUlbJrbwuZZXcyutSVsl/8lJmSzFgwADVq1dP48ePL/X7LJJ06tQpPf3008rLy9OsWbN8\nPGH5Im9JlSWvS1klt/K6lFVyK++WLVsu6bicnBz96U9/8nwhUVYu5XUpq+RWXpeySm7ldSmrZF9e\nymwpWrZsqYULF/7sl/T379+vXr16FV110FbkLV1lyOtSVsmtvC5lldzK++NVQn/qr+cf9wcEBHi+\nkCgrl/K6lFVyK69LWSW38rqUVbIvL9+ZLUVYWJiysrJ+dtGUlZVV9DE3m5G3dJUhr0tZJbfyupRV\ncitv586dlZGRoYkTJ6pKlYvfDj4nJ0dDhw714WQVw6W8LmWV3MrrUlbJrbwuZZUszGtQwjPPPGO6\ndetmVqxYYb7//vsS+/Py8syyZctM586dzYQJEzyYsHyRt7jKlNelrMa4ldelrMa4lffkyZOmW7du\nZsqUKT95XFZWlomNjfXRVBXHpbwuZTXGrbwuZTXGrbwuZTXGvrycmS3FqFGjNHLkSA0bNkxVqlRR\nzZo1i92wPjc3V5LUu3dvPfXUU16OWi7IW3nzupRVciuvS1klt/JWr15d06ZN0xtvvKHMzMyfvHeh\nqQTfFHIpr0tZJbfyupRVciuvS1kl+/LyndmfkJ6erg0bNigzM7PEDetvuukm62/c/r/IW3nzupRV\nciuvS1kl9/ICAICLo8xegtOnTxe7n2FoaKjHE1Us8lbevC5lldzK61JWya28LmWV3MrrUlbJrbwu\nZZXcyutSVsn/8/Ix44v45ptvNGvWLK1bt05ZWVnF9l111VW65ZZblJSUpDp16ng0Yfki739Utrwu\nZZXcyutSVsmtvC5lldzK61JWya28LmWV3MrrUlbJrrycmS3Fhg0bNGTIEF177bXq0KGD6tatW3R1\nzLy8PB04cEApKSk6evSo/vGPf6hVq1YeT1w25K28eV3KKrmV16Wsklt5XcoquZXXpaySW3ldyiq5\nldelrJKFeb246pS/6927t5k8efLPHjdhwgTTt29fH0xUschbusqQ16WsxriV16WsxriV16WsxriV\n16WsxriV16WsxriV16WsxtiXlzJbiubNm5u9e/f+7HGZmZmmZcuWPpioYpG3dJUhr0tZjXErr0tZ\njXErr0tZjXErr0tZjXErr0tZjXErr0tZjbEv78XvhOuwmjVrKj09/WeP27Nnj2rUqOGDiSoWeUtX\nGfK6lFVyK69LWSW38rqUVXIrr0tZJbfyupRVciuvS1kl+/IGjh07dqzXQ/ibEydOaPr06QoNDVV4\neLjCwsIUFPTDtbJOnTqlvXv3atGiRZo0aZL69++vtm3bejxx2ZC38uZ1KavkVl6Xskpu5XUpq+RW\nXpeySm7ldSmr5FZel7JK9uXlAlClKCws1CuvvKJ58+bp7NmzkqSAgABJ/7k5cNWqVfXHP/5Rw4YN\nK9pnK/JW3rwuZZXcyutSVsmtvC5lldzK61JWya28LmWV3MrrUlbJvryU2Z+Qn5+vL7/8UhkZGSoo\nKJAkhYeHq0GDBrr++utVtWpVjycsX+StvHldyiq5ldelrJJbeV3KKrmV16Wsklt5XcoquZXXpayS\nPXm5z+xFLFy4UIsXL9aJEyfUqlUrPfjgg6pbt26xY7Kzs5WQkKDU1FSPpiw/5K28eV3KKrmV16Ws\nklt5XcoquZXXpaySW3ldyiq5ldelrJJdebkAVCneffddjR49WoGBgYqNjdXq1avVs2dPrVixosSx\nleHENnkrb16Xskpu5XUpq+RWXpeySm7ldSmr5FZel7JKbuV1KatkYd6KvlyyjXr06GHmzJlT9PP3\n339vRo4caZo1a2ZWrlxZtD0rK8vExsZ6MWK5Im/lzetSVmPcyutSVmPcyutSVmPcyutSVmPcyutS\nVmPcyutSVmPsy0uZLUVcXJzJyMgosf3ZZ581rVq1Mlu3bjXG+M+LWFbk/UFlzOtSVmPcyutSVmPc\nyutSVmPcyutSVmPcyutSVmPcyutSVmPsy8vHjEtRq1atUj//PW7cON1666166KGHtHXrVg8mqxjk\n/UFlzOtSVsmtvC5lldzK61JWya28LmWV3MrrUlbJrbwuZZXsy8t9ZkuRm5urqVOnqmrVqoqNjS26\nt5Ikde3aVYcOHdKkSZNUUFCgr7/+WsOHD/dw2rIjb+XN61JWya28LmWV3MrrUlbJrbwuZZXcyutS\nVsmtvC5llSzM6/WpYX909uxZ89xzz5lmzZqZ48ePl3rM+++/b9q2besXp9fLirwlVZa8LmU1xq28\nLmU1xq28LmU1xq28LmU1xq28LmU1xq28LmU1xr683Gf2J+Tn5ys8PPyi+0+dOqUdO3aoTZs2Ppyq\n4pC3uMqU16Wsklt5XcoquZXXpaySW3ldyiq5ldelrJJbeV3KKtmTlzILAAAAALAOF4ACAAAAAFiH\nMgsAAAAAsA5lFgCACjZw4EDFxMRo8eLFpe7/5ptvFBMTo5iYmAqdY9OmTYqJifGr2yoAAPBrUWYB\nAPCByy67TB9//HGp+z7++GNVq1btF/2+bdu2qUuXLr/on4mPj9fatWvVqlWrX/TPAQDgjyizAAD4\nQNu2bbVhwwYdOXKk2HZjjJYuXaobbrjhF/2+bdu2/eIZQkJCFBUVpeDg4F/8zwIA4G8oswAA+ECz\nZs0UERFR4qPGmzdvVlZWlhISEoptX7Fihfr27avWrVurffv2GjNmjPLy8iRJ06dP14svvqiDBw8q\nJiZG06dPlyRt2bJFAwcOVFxcnOLj49W3b19t2rSp6HfyMWMAQGVCmQUAwAcCAgLUvXv3EmV28eLF\n6tixo6pXr160bdOmTRo+fLiaNm2qBQsW6NVXX9XGjRv1+OOPS5KSkpLUq1cvXXnllVq7dq2SkpKU\nl5enIUOG6KqrrtKiRYu0aNEixcTEaNiwYTp27JhPswIA4AuUWQAAfCQxMVG7d+/Wjh07JElnzpzR\nv/71L91+++3Fjps5c6aaNGmisWPHqlGjRurQoYNGjx6tlJQU7d69W2FhYQoNDVVgYKCioqIUFham\nqlWrauHChXr22WfVsGFDNWjQQEOGDFF+fv6v+kgyAAD+jjILAICPxMfHq06dOlq0aJEkaeXKlTp3\n7py6du1a7Ljt27erffv2xba1adNGkpSamlrq7w4ODtbhw4f15z//WQkJCYqPj1diYqIkKTc3t7yj\nAADgOcosAAA+lJiYqGXLluncuXNasmSJbr75ZoWFhRU7Jj8/X/PmzVN8fHzRnx+/U5udnV3q792+\nfbsGDx6skJAQTZkyRYsWLdLs2bMrOg4AAJ4J8noAAABckpiYqDfffFOrVq1SSkqKJk+eXOKY6tWr\nq3v37ho8eHCJfVdccUWpv3f58uWqWrWqpk2bppCQEEnSzp07y3d4AAD8CGUWAAAfaty4sWJiYvTq\nq68qJCREt9xyS4ljWrRooczMTNWvX79o24ULF7R//37VqFGjaJsxpuh/nzt3TmFhYUVFVpKWLFlS\n4jgAACoLPmYMAICPJSYmKj09XV27dlVoaGiJ/UlJSdq4caOmTZumvXv3Ki0tTWPGjFG/fv10/Phx\nST+coc3KytLWrVuVmZmpli1bKisrSwsWLFBmZqbeeOMNnThxQsHBwfrqq6+Uk5Pj65gAAFQoyiwA\nAD6WmJiogIAA9ejRo9T9HTp0UHJyslavXq2ePXuqX79+ys7O1ty5cxURESFJ6t27t2rXrq0//OEP\nevvtt5WYmKj+/fvr5Zdf1l133aWDBw9q7Nix6t+/vz788EPNmDHDlxEBAKhwAYbPHgEAAAAALMOZ\nWQAAAACAdSizAAAAAADrUGYBAAAAANahzAIAAAAArEOZBQAAAABYhzILAAAAALAOZRYAAAAAYB3K\nLAAAAADAOv8P3L7Q1ZV/fyAAAAAASUVORK5CYII=\n", "text/plain": [ "<matplotlib.figure.Figure at 0x7f7d3ee60eb8>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "kaina_per_metus = oracle_pirkimai.set_index('SSUT_DATA').sort_index().resample('AS')['SSUT_KAINA'].sum() / 1e6\n", "ax = kaina_per_metus.plot.bar()\n", "ax.set_xticklabels(kaina_per_metus.index.year)\n", "ax.set_xlabel('Metai')\n", "ax.set_ylabel('Mln. € per metus')\n", "ax.set_title('Kiek pinigų išleidžiama Oracle paslaugų pirkimams')\n", "ax" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Oracle pirkimai 2017 metais" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style>\n", " .dataframe thead tr:only-child th {\n", " text-align: right;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: left;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>DOK_PIRKIMO_KODAS</th>\n", " <th>SSUT_DATA</th>\n", " <th>DOK_POBJ_PAVADINIMAS</th>\n", " <th>SSUT_KAINA</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>57816</th>\n", " <td>190049</td>\n", " <td>2017-09-08</td>\n", " <td>ORACLE programinės įrangos licencijų techninio aptarnavimo paslaugų pirkimas</td>\n", " <td>2,530,787.60</td>\n", " </tr>\n", " <tr>\n", " <th>76566</th>\n", " <td>182944</td>\n", " <td>2017-04-21</td>\n", " <td>ORACLE (arba lygiavertės) programinės įrangos licencijos ir jų trijų metų palaikymo paslaugos</td>\n", " <td>2,244,893.64</td>\n", " </tr>\n", " <tr>\n", " <th>15983</th>\n", " <td>180140</td>\n", " <td>2017-04-05</td>\n", " <td>Agentūros informacinių sistemų, veikiančių Oracle technologiniu pagrindu (KPPAIS2 ir PRIS) palaikymo ir vystymo paslaugos</td>\n", " <td>1,996,500.00</td>\n", " </tr>\n", " <tr>\n", " <th>123425</th>\n", " <td>189876</td>\n", " <td>2017-06-30</td>\n", " <td>Reliacinės duomenų bazės programinės įrangos „Oracle“ licencijų palaikymo konsolidavimas ir papildomos licencijos</td>\n", " <td>1,550,798.96</td>\n", " </tr>\n", " <tr>\n", " <th>126333</th>\n", " <td>180733</td>\n", " <td>2017-04-03</td>\n", " <td>Nacionalinės mokėjimo agentūros prie Žemės ūkio ministerijos žemės ūkio paramos administravimo informacinės sistemos (toliau – ŽŪPAIS) posistemių: „Oracle“ apskaitos sistemos (toliau – OAS) ir Užstatų administravimo informacinės sistemos (toliau – UAIS) palaikymo ir vystymo paslaugos (toliau – Paslaugos)</td>\n", " <td>836,836.00</td>\n", " </tr>\n", " <tr>\n", " <th>88349</th>\n", " <td>184584</td>\n", " <td>2017-08-02</td>\n", " <td>INFORMACINIŲ SISTEMŲ ORACLE SPECIALISTO PASLAUGŲ PIRKIMAS</td>\n", " <td>635,250.00</td>\n", " </tr>\n", " <tr>\n", " <th>88350</th>\n", " <td>184584</td>\n", " <td>2017-08-02</td>\n", " <td>INFORMACINIŲ SISTEMŲ ORACLE SPECIALISTO PASLAUGŲ PIRKIMAS</td>\n", " <td>635,250.00</td>\n", " </tr>\n", " <tr>\n", " <th>88348</th>\n", " <td>184584</td>\n", " <td>2017-08-02</td>\n", " <td>INFORMACINIŲ SISTEMŲ ORACLE SPECIALISTO PASLAUGŲ PIRKIMAS</td>\n", " <td>635,068.50</td>\n", " </tr>\n", " <tr>\n", " <th>88347</th>\n", " <td>184584</td>\n", " <td>2017-08-02</td>\n", " <td>INFORMACINIŲ SISTEMŲ ORACLE SPECIALISTO PASLAUGŲ PIRKIMAS</td>\n", " <td>580,800.00</td>\n", " </tr>\n", " <tr>\n", " <th>88346</th>\n", " <td>184584</td>\n", " <td>2017-08-02</td>\n", " <td>INFORMACINIŲ SISTEMŲ ORACLE SPECIALISTO PASLAUGŲ PIRKIMAS</td>\n", " <td>526,350.00</td>\n", " </tr>\n", " <tr>\n", " <th>117674</th>\n", " <td>180424</td>\n", " <td>2017-02-10</td>\n", " <td>Oracle programinės įrangos techninio palaikymo prenumeratos paslaugų viešasis pirkimas</td>\n", " <td>197,691.57</td>\n", " </tr>\n", " <tr>\n", " <th>110750</th>\n", " <td>181206</td>\n", " <td>2017-01-02</td>\n", " <td>Oracle programinės įrangos techninio aptarnavimo paslaugos įsigijimas</td>\n", " <td>65,079.80</td>\n", " </tr>\n", " <tr>\n", " <th>80590</th>\n", " <td>184241</td>\n", " <td>2017-05-23</td>\n", " <td>Finansų valdymo sistemos Oracle E-Business Suite vystymo ir konsultacinės paslaugos.</td>\n", " <td>58,956.00</td>\n", " </tr>\n", " <tr>\n", " <th>124546</th>\n", " <td>188336</td>\n", " <td>2017-08-02</td>\n", " <td>Duomenų bazių valdymo sistemos ORACLE techninės priežiūros paslaugos</td>\n", " <td>27,974.23</td>\n", " </tr>\n", " <tr>\n", " <th>6251</th>\n", " <td>185421</td>\n", " <td>2017-05-26</td>\n", " <td>Oracle programinės įrangos techninio palaikymo prenumeratos paslaugų viešasis pirkimas</td>\n", " <td>25,348.29</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " DOK_PIRKIMO_KODAS SSUT_DATA \\\n", "57816 190049 2017-09-08 \n", "76566 182944 2017-04-21 \n", "15983 180140 2017-04-05 \n", "123425 189876 2017-06-30 \n", "126333 180733 2017-04-03 \n", "88349 184584 2017-08-02 \n", "88350 184584 2017-08-02 \n", "88348 184584 2017-08-02 \n", "88347 184584 2017-08-02 \n", "88346 184584 2017-08-02 \n", "117674 180424 2017-02-10 \n", "110750 181206 2017-01-02 \n", "80590 184241 2017-05-23 \n", "124546 188336 2017-08-02 \n", "6251 185421 2017-05-26 \n", "\n", " DOK_POBJ_PAVADINIMAS \\\n", "57816 ORACLE programinės įrangos licencijų techninio aptarnavimo paslaugų pirkimas \n", "76566 ORACLE (arba lygiavertės) programinės įrangos licencijos ir jų trijų metų palaikymo paslaugos \n", "15983 Agentūros informacinių sistemų, veikiančių Oracle technologiniu pagrindu (KPPAIS2 ir PRIS) palaikymo ir vystymo paslaugos \n", "123425 Reliacinės duomenų bazės programinės įrangos „Oracle“ licencijų palaikymo konsolidavimas ir papildomos licencijos \n", "126333 Nacionalinės mokėjimo agentūros prie Žemės ūkio ministerijos žemės ūkio paramos administravimo informacinės sistemos (toliau – ŽŪPAIS) posistemių: „Oracle“ apskaitos sistemos (toliau – OAS) ir Užstatų administravimo informacinės sistemos (toliau – UAIS) palaikymo ir vystymo paslaugos (toliau – Paslaugos) \n", "88349 INFORMACINIŲ SISTEMŲ ORACLE SPECIALISTO PASLAUGŲ PIRKIMAS \n", "88350 INFORMACINIŲ SISTEMŲ ORACLE SPECIALISTO PASLAUGŲ PIRKIMAS \n", "88348 INFORMACINIŲ SISTEMŲ ORACLE SPECIALISTO PASLAUGŲ PIRKIMAS \n", "88347 INFORMACINIŲ SISTEMŲ ORACLE SPECIALISTO PASLAUGŲ PIRKIMAS \n", "88346 INFORMACINIŲ SISTEMŲ ORACLE SPECIALISTO PASLAUGŲ PIRKIMAS \n", "117674 Oracle programinės įrangos techninio palaikymo prenumeratos paslaugų viešasis pirkimas \n", "110750 Oracle programinės įrangos techninio aptarnavimo paslaugos įsigijimas \n", "80590 Finansų valdymo sistemos Oracle E-Business Suite vystymo ir konsultacinės paslaugos. \n", "124546 Duomenų bazių valdymo sistemos ORACLE techninės priežiūros paslaugos \n", "6251 Oracle programinės įrangos techninio palaikymo prenumeratos paslaugų viešasis pirkimas \n", "\n", " SSUT_KAINA \n", "57816 2,530,787.60 \n", "76566 2,244,893.64 \n", "15983 1,996,500.00 \n", "123425 1,550,798.96 \n", "126333 836,836.00 \n", "88349 635,250.00 \n", "88350 635,250.00 \n", "88348 635,068.50 \n", "88347 580,800.00 \n", "88346 526,350.00 \n", "117674 197,691.57 \n", "110750 65,079.80 \n", "80590 58,956.00 \n", "124546 27,974.23 \n", "6251 25,348.29 " ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.set_option('display.max_colwidth', 1000)\n", "frame = oracle_pirkimai[oracle_pirkimai['SSUT_DATA'].dt.year == 2017].sort_values('SSUT_KAINA', ascending=False)[[\n", " 'DOK_PIRKIMO_KODAS', 'SSUT_DATA', 'DOK_POBJ_PAVADINIMAS', 'SSUT_KAINA',\n", "]]\n", "frame['SSUT_KAINA'] = frame['SSUT_KAINA'].map('{:,.2f}'.format)\n", "frame" ] } ], "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.6.3" } }, "nbformat": 4, "nbformat_minor": 2 }