diff --git a/AishikRakshit_190122002_W03.ipynb b/AishikRakshit_190122002_W03.ipynb new file mode 100644 index 000000000..3f4faf068 --- /dev/null +++ b/AishikRakshit_190122002_W03.ipynb @@ -0,0 +1,526 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# used for manipulating directory paths\n", + "import os\n", + "\n", + "# Scientific and vector computation for python\n", + "import numpy as np\n", + "\n", + "# Plotting library\n", + "from matplotlib import pyplot\n", + "\n", + "# Optimization module in scipy\n", + "from scipy import optimize\n", + "\n", + "# library written for this exercise providing additional functions for assignment submission, and others\n", + "import utils\n", + "\n", + "\n", + "\n", + "# tells matplotlib to embed plots within the notebook\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "# Load data\n", + "# The first two columns contains the exam scores and the third column\n", + "# contains the label.\n", + "data = np.loadtxt(r'C:\\Users\\LENOVO\\Desktop\\Machine learning\\machine-learning-ex\\ex2\\ex2data1.txt', delimiter=',')\n", + "X, y = data[:, 0:2], data[:, 2]\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "def plotData(X, y):\n", + " \"\"\"\n", + " Plots the data points X and y into a new figure. Plots the data \n", + " points with * for the positive examples and o for the negative examples.\n", + " \n", + " Parameters\n", + " ----------\n", + " X : array_like\n", + " An Mx2 matrix representing the dataset. \n", + " \n", + " y : array_like\n", + " Label values for the dataset. A vector of size (M, ).\n", + " \n", + " Instructions\n", + " ------------\n", + " Plot the positive and negative examples on a 2D plot, using the\n", + " option 'k*' for the positive examples and 'ko' for the negative examples. \n", + " \"\"\"\n", + " # Create New Figure\n", + " fig = pyplot.figure()\n", + "\n", + " # ====================== YOUR CODE HERE ======================\n", + " pos = y == 1\n", + " neg = y == 0\n", + " pyplot.plot(X[pos, 0], X[pos, 1], 'k*', lw=2, ms=10)\n", + " pyplot.plot(X[neg, 0], X[neg, 1], 'ko', mfc='y', ms=8, mec='k', mew=1)\n", + " \n", + " \n", + " # ============================================================" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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W+NqK1VdoKplqlpWUlJyzP4DBw6YQvARIkL//v0zOnLzg0tlqpiLc3v8YMJKl3TiPIJk7nR9pCAiPwAuAZqBCHA88BvgAuDjqtosImOB21X1gs7OFW+i+fXXX+eMM85ISabGxkYuv/xyFi9eTHFxcUrHGsmRzveSCD9N2hrpEzPBPPigNyasdEl1ktyPIwtfjRRU9d9VdZCqDgamAWtU9WJgLfA1522XAY+7JZNfi4sb8fHTpK2RPslmF/AbqU6S+yGCPBX8FKdwC9FJ578B/YFFbl04FsaeyXD23/zmN4gIf/nLX+Luv/zyy3nssceSPt/27dv52teiOvOFF17gySefbN23bt261iIkqTB48GB2796d8nFe42YksmF0JNVOSdDMnZ4qBVVdp6qTndd/V9VPq+pQVb1IVQ9m67puVHWqq6vj85//PEuXLs2IzAMHDmxVIplSCkElyPZoI/ik2ikJmvutn0YKrnHbbbe1y50eK6aRqaIaTU1NPP300yxatKhVKagqN954I2eeeSZf+tKX2NmmIMPgwYP5/ve/z9ixYykrK+P555/nggsu4NRTT+WnP/0pAFu2bOHss8/m0KFDzJ49m0ceeYRRo0Zx11138dOf/pR7772XUaNG8dRTT7Fr1y6++tWvcu6553Luuefy9NNPA7Bnzx6+8IUvMHr0aL71rW8R1BQnNmlreEmqnZLAmTsTlWQLQotXjvO1117rtAxdjGwUF49RW1ur//qv/6qqqmPHjtWNGzfqr371K504caI2NzfrO++8o8XFxfroo4+qquopp5yi999/v6qqzpgxQ4cPH64ffvih7ty5U0tKSlRVdfPmzXrWWWepqupDDz2kN9xwQ+v1qqurdd68ea3r06dP16eeekpVVd966y09/fTTVVX129/+ttbU1Kiq6hNPPKGA7tq1K+3PmQrJfi+GEQRipURLS0s0HA5paWlJwjKunZX2nTAhojU1s12Xn07KcXoSvOYHYkU1LrroonbukpkoqlFXV8eMGTMAmDZtGnV1dRw+fJjp06cTDocZOHAgEyZMaHfMl7/8ZQCGDx9OU1MTffr0oU+fPkQikZTzua9atYrXXnutdf3DDz9k3759bNiwgV//+tcAfOlLX+KEE05I+zMaRj4TmyRPJpaiquomli37FXPnxo9R8Zu5M2+VArQvqlFQUMDBgwe7XVRj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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plotData(X, y)\n", + "# add axes labels\n", + "pyplot.xlabel('Exam 1 score')\n", + "pyplot.ylabel('Exam 2 score')\n", + "pyplot.legend(['Admitted', 'Not admitted'])\n", + "pass\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "def sigmoid(z):\n", + " \"\"\"\n", + " Compute sigmoid function given the input z.\n", + " \n", + " Parameters\n", + " ----------\n", + " z : array_like\n", + " The input to the sigmoid function. This can be a 1-D vector \n", + " or a 2-D matrix. \n", + " \n", + " Returns\n", + " -------\n", + " g : array_like\n", + " The computed sigmoid function. g has the same shape as z, since\n", + " the sigmoid is computed element-wise on z.\n", + " \n", + " Instructions\n", + " ------------\n", + " Compute the sigmoid of each value of z (z can be a matrix, vector or scalar).\n", + " \"\"\"\n", + " # convert input to a numpy array\n", + " z = np.array(z)\n", + " \n", + " # You need to return the following variables correctly \n", + " g = np.zeros(z.shape)\n", + " \n", + " # ====================== YOUR CODE HERE ======================\n", + " g=1/(1+np.exp(-z))\n", + " # =============================================================\n", + " return g" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "g( 0 ) = 0.5\n" + ] + } + ], + "source": [ + "# Test the implementation of sigmoid function here\n", + "z = 0\n", + "g = sigmoid(z)\n", + "\n", + "print('g(', z, ') = ', g)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "# Setup the data matrix appropriately, and add ones for the intercept term\n", + "m, n = X.shape\n", + "\n", + "# Add intercept term to X\n", + "X = np.concatenate([np.ones((m, 1)), X], axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": {}, + "outputs": [], + "source": [ + "def costFunction(theta, X, y):\n", + " \"\"\"\n", + " Compute cost and gradient for logistic regression. \n", + " \n", + " Parameters\n", + " ----------\n", + " theta : array_like\n", + " The parameters for logistic regression. This a vector\n", + " of shape (n+1, ).\n", + " \n", + " X : array_like\n", + " The input dataset of shape (m x n+1) where m is the total number\n", + " of data points and n is the number of features. We assume the \n", + " intercept has already been added to the input.\n", + " \n", + " y : arra_like\n", + " Labels for the input. This is a vector of shape (m, ).\n", + " \n", + " Returns\n", + " -------\n", + " J : float\n", + " The computed value for the cost function. \n", + " \n", + " grad : array_like\n", + " A vector of shape (n+1, ) which is the gradient of the cost\n", + " function with respect to theta, at the current values of theta.\n", + " \n", + " Instructions\n", + " ------------\n", + " Compute the cost of a particular choice of theta. You should set J to \n", + " the cost. Compute the partial derivatives and set grad to the partial\n", + " derivatives of the cost w.r.t. each parameter in theta.\n", + " \"\"\"\n", + " # Initialize some useful values\n", + " m = y.size # number of training examples\n", + "\n", + " # You need to return the following variables correctly \n", + " J = 0\n", + " grad = np.zeros(theta.shape)\n", + "\n", + " # ====================== YOUR CODE HERE ======================\n", + " z=np.dot(X,theta)\n", + " A=sigmoid(z)\n", + " J =-1/m * np.sum( np.multiply(np.log(A), y) + np.multiply(np.log(1-A), (1-y)))\n", + " #J=-(1/m)*sum(y*np.log(g)+(1-y)*(1-np.log(g)))\n", + " grad=(1/m)*X.transpose()@(g-y)\n", + " \n", + " \n", + " # =============================================================\n", + " return J, grad" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Cost\n", + "0.6931471805599453\n", + "Gradient at initial theta (zeros):\n", + "[ -0.1 -12.00921659 -11.26284221]\n", + "Cost\n", + "0.21833019382659774\n", + "Gradient at initial theta (zeros):\n", + "[ -0.1 -12.00921659 -11.26284221]\n" + ] + } + ], + "source": [ + "# Initialize fitting parameters\n", + "initial_theta = np.zeros(n+1)\n", + "\n", + "cost, grad = costFunction(initial_theta, X, y)\n", + "\n", + "print(\"Cost\")\n", + "print(cost)\n", + "print('Gradient at initial theta (zeros):')\n", + "print(grad)\n", + "\n", + "test_theta = np.array([-24, 0.2, 0.2])\n", + "cost, grad = costFunction(test_theta, X, y)\n", + "\n", + "print(\"Cost\")\n", + "print(cost)\n", + "print('Gradient at initial theta (zeros):')\n", + "print(grad)" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.6394269623737789\n", + "theta:\n", + "[6.39239128e-05 7.67676114e-03 7.19964943e-03]\n" + ] + } + ], + "source": [ + "# set options for optimize.minimize\n", + "options= {'maxiter': 400}\n", + "\n", + "# see documention for scipy's optimize.minimize for description about\n", + "# the different parameters\n", + "# The function returns an object `OptimizeResult`\n", + "# We use truncated Newton algorithm for optimization which is \n", + "# equivalent to MATLAB's fminunc\n", + "# See https://stackoverflow.com/questions/18801002/fminunc-alternate-in-numpy\n", + "res = optimize.minimize(costFunction,\n", + " initial_theta,\n", + " (X, y),\n", + " jac=True,\n", + " method='TNC',\n", + " options=options)\n", + "# the fun property of `OptimizeResult` object returns\n", + "# the value of costFunction at optimized theta\n", + "cost = res.fun\n", + "\n", + "# the optimized theta is in the x property\n", + "theta = res.x\n", + "print(cost)\n", + "print('theta:')\n", + "print(theta)" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": {}, + "outputs": [], + "source": [ + "def predict(theta, X):\n", + " \"\"\"\n", + " Predict whether the label is 0 or 1 using learned logistic regression.\n", + " Computes the predictions for X using a threshold at 0.5 \n", + " (i.e., if sigmoid(theta.T*x) >= 0.5, predict 1)\n", + " \n", + " Parameters\n", + " ----------\n", + " theta : array_like\n", + " Parameters for logistic regression. A vecotor of shape (n+1, ).\n", + " \n", + " X : array_like\n", + " The data to use for computing predictions. The rows is the number \n", + " of points to compute predictions, and columns is the number of\n", + " features.\n", + "\n", + " Returns\n", + " -------\n", + " p : array_like\n", + " Predictions and 0 or 1 for each row in X. \n", + " \n", + " Instructions\n", + " ------------\n", + " Complete the following code to make predictions using your learned \n", + " logistic regression parameters.You should set p to a vector of 0's and 1's \n", + " \"\"\"\n", + " m = X.shape[0]\n", + " # Number of training examples\n", + " m\n", + " # You need to return the following variables correctly\n", + " p = np.zeros(m)\n", + "\n", + " # ====================== YOUR CODE HERE ======================\n", + " z=X*theta\n", + " h=sigmoid(z)\n", + " p=np.round(p)\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " # ============================================================\n", + " return p" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "40.0" + ] + }, + "execution_count": 59, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "prob = sigmoid(np.dot([1, 45, 85], theta))\n", + "pr = predict(theta, X)\n", + "np.mean(pr == y) * 100" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": {}, + "outputs": [], + "source": [ + "# Load Data\n", + "# The first two columns contains the X values and the third column\n", + "# contains the label (y).\n", + "data = np.loadtxt(r'C:\\Users\\LENOVO\\Desktop\\Machine learning\\machine-learning-ex\\ex2\\ex2data2.txt', delimiter=',')\n", + "X = data[:, :2]\n", + "y = data[:, 2]" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plotData(X, y)\n", + "# Labels and Legend\n", + "pyplot.xlabel('Microchip Test 1')\n", + "pyplot.ylabel('Microchip Test 2')\n", + "\n", + "# Specified in plot order\n", + "pyplot.legend(['y = 1', 'y = 0'], loc='upper right')\n", + "pass" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": {}, + "outputs": [], + "source": [ + "def costFunctionReg(theta, X, y, Lambda):\n", + " \"\"\"\n", + " Compute cost and gradient for logistic regression with regularization.\n", + " \n", + " Parameters\n", + " ----------\n", + " theta : array_like\n", + " Logistic regression parameters. A vector with shape (n, ). n is \n", + " the number of features including any intercept. If we have mapped\n", + " our initial features into polynomial features, then n is the total \n", + " number of polynomial features. \n", + " \n", + " X : array_like\n", + " The data set with shape (m x n). m is the number of examples, and\n", + " n is the number of features (after feature mapping).\n", + " \n", + " y : array_like\n", + " The data labels. A vector with shape (m, ).\n", + " \n", + " lambda_ : float\n", + " The regularization parameter. \n", + " \n", + " Returns\n", + " -------\n", + " J : float\n", + " The computed value for the regularized cost function. \n", + " \n", + " grad : array_like\n", + " A vector of shape (n, ) which is the gradient of the cost\n", + " function with respect to theta, at the current values of theta.\n", + " \n", + " Instructions\n", + " ------------\n", + " Compute the cost `J` of a particular choice of theta.\n", + " Compute the partial derivatives and set `grad` to the partial\n", + " derivatives of the cost w.r.t. each parameter in theta.\n", + " \"\"\"\n", + " # Initialize some useful values\n", + " m = y.size # number of training examples\n", + "\n", + " # You need to return the following variables correctly \n", + " J = 0\n", + " grad = np.zeros(theta.shape)\n", + "\n", + " # ===================== YOUR CODE HERE ======================\n", + " theta2=np.concatenate(0,theta[1:n+1])\n", + " z=np.dot(X,theta)\n", + " A=sigmoid(z)\n", + " J=-1/m * np.sum( np.multiply(np.log(A), y) + np.multiply(np.log(1-A), (1-y)))+(Lambda /(2*m))*sum(theta[1:n+1]^2)\n", + " grad=(1/m)*X.transpose()*(g-y)+(Lambda/m)*sum(theta2[1:n+1])\n", + " \n", + " \n", + " # =============================================================\n", + " return J, grad" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/Phase 3 - 2020 (Summer)/README.md b/Phase 3 - 2020 (Summer)/README.md index 9818b1173..87a6eae8e 100644 --- a/Phase 3 - 2020 (Summer)/README.md +++ b/Phase 3 - 2020 (Summer)/README.md @@ -1,3 +1,9 @@ +Aishik Rakshit +190122002 +CST +https://github.com/Aishik13012002 + + # IITG.ai - Resources include course/blog/tutorial/research paper links as well as details regarding graded assignments as well as prospective project ideas. diff --git a/Phase 3 - 2020 (Summer)/Week 1 (Mar 28 - Apr 4)/assignment/AISHIK RAKSHIT_190122002/Graphs_w01.png b/Phase 3 - 2020 (Summer)/Week 1 (Mar 28 - Apr 4)/assignment/AISHIK RAKSHIT_190122002/Graphs_w01.png new file mode 100644 index 000000000..dfc56e078 Binary files /dev/null and b/Phase 3 - 2020 (Summer)/Week 1 (Mar 28 - Apr 4)/assignment/AISHIK RAKSHIT_190122002/Graphs_w01.png differ diff --git a/Phase 3 - 2020 (Summer)/Week 1 (Mar 28 - Apr 4)/assignment/AISHIK RAKSHIT_190122002/Result_w01.txt b/Phase 3 - 2020 (Summer)/Week 1 (Mar 28 - Apr 4)/assignment/AISHIK RAKSHIT_190122002/Result_w01.txt new file mode 100644 index 000000000..792c9ca6c --- /dev/null +++ b/Phase 3 - 2020 (Summer)/Week 1 (Mar 28 - Apr 4)/assignment/AISHIK RAKSHIT_190122002/Result_w01.txt @@ -0,0 +1,5 @@ +RESULT + + + +THE two features that describe the two labels perfectly are feature 3 and 8 \ No newline at end of file diff --git a/Phase 3 - 2020 (Summer)/Week 1 (Mar 28 - Apr 4)/assignment/AISHIK RAKSHIT_190122002/data.csv b/Phase 3 - 2020 (Summer)/Week 1 (Mar 28 - Apr 4)/assignment/AISHIK RAKSHIT_190122002/data.csv new file mode 100644 index 000000000..67bec0c73 --- /dev/null +++ b/Phase 3 - 2020 (Summer)/Week 1 (Mar 28 - Apr 4)/assignment/AISHIK RAKSHIT_190122002/data.csv @@ -0,0 +1,1000 @@ +Label 1 2 3 4 5 6 7 8 9 10 +2 3.201 5.774701479 3.429271509 0.108731597 -0.146594209 -2.140013156 8.025347331 -0.082736883 -0.316597925 8.970594702 +1 1.066 0.519693458 5.936319736 0.19472858 -1.031532563 0.678118588 12.40887466 -0.057266412 0.129536154 6.406818035 +2 1.395 6.18460515 4.393926764 0.236127673 -0.306629726 -1.152583351 12.27118782 -0.216143346 0.654901697 17.42562827 +1 0.062 0.106773671 0.227877344 0.241524643 -1.734882845 -2.111483361 12.53193079 0.991367763 0.012839022 3.487370091 +2 1.416 7.687775933 3.696550805 0.416806978 -0.16730342 -1.977925232 12.91515299 -0.142540374 0.773265509 20.23465854 +2 3.929 5.109210021 1.878944788 0.502120872 0.657464241 -0.527106429 9.179846913 0.507144633 -0.359042395 16.46087899 +2 3.947 5.859324469 1.153662192 0.507744628 0.533879437 0.229925275 8.75453989 0.79247962 -0.274797071 9.065836314 +2 2.529 5.775247364 1.215303078 0.511342921 -0.493071807 -0.073267454 12.74701658 0.77139188 0.51039382 8.659029406 +2 0.414 6.431543842 2.74162632 0.658268566 -0.287392126 -2.756843379 10.78617133 0.142027865 -0.491328216 10.90229338 +2 5.145 2.261374009 1.862050936 0.722430263 -0.789449606 1.2384776 8.796320955 0.514424361 -1.518901366 19.04618511 +1 0.848 1.190165636 0.009058933 0.794686041 -2.145244465 -3.338397625 8.153719346 0.999986323 -1.134761919 0.074790793 +2 1.614 7.670741144 4.080048519 0.833665094 -1.628040868 -0.50904631 10.19672228 -0.197705106 -1.714917781 6.65390479 +1 0.217 0.396703105 4.809722968 0.837892989 0.568168004 1.307683566 10.4133593 -0.20692809 -0.011786561 4.305879625 +2 3.317 3.308198661 0.779481424 0.845310715 -2.614122286 -1.727452636 13.0072622 0.901767047 0.4010224 3.717246878 +2 3.131 5.821287306 3.226665913 0.881875306 -0.037554626 0.486201841 9.110740249 -0.026333894 -0.98863987 12.66371236 +2 1.344 4.293829549 2.809000749 0.886208818 -2.350962834 -1.565452513 8.708318348 0.116231364 -1.464931916 1.989717961 +2 0.152 6.864823033 2.811000366 0.895119349 -1.589874574 1.281363099 8.927791344 0.115476079 -1.878841284 9.289314166 +2 1.708 5.721147734 4.484196331 0.90672248 -1.010086915 -1.999191504 9.989481679 -0.217224396 -1.691625265 3.391231956 +2 5.456 5.083440795 4.519788746 0.927002184 -1.48451198 0.903325087 10.72504975 -0.217158344 -1.263516749 9.993585963 +1 0.069 1.181511824 5.59886212 0.933222048 0.662457752 -3.234787128 9.507136583 -0.112906644 -0.381553842 0.009255953 +1 0.239 0.372213585 3.985110838 0.937386792 0.246621381 -2.854679277 10.46659516 -0.187444414 -0.260523294 4.056078289 +2 0.805 4.933173454 1.167043118 0.959987224 -1.835346251 0.393483345 12.2189491 0.787968266 -0.024956535 8.259165241 +2 4.546 1.745217799 4.868811436 1.022118418 0.513577926 -1.161132237 10.01918093 -0.202881328 -0.337186264 15.29394489 +1 0.287 0.504174541 5.695678041 1.049916708 -0.074419017 0.214672224 13.66762054 -0.097317295 0.378131482 2.798778083 +1 1.038 0.454658455 1.226700725 1.082608629 -2.269898568 -0.138134034 10.25195093 0.767408801 -1.442379448 0.497807316 +2 5.911 3.826092573 3.771601701 1.193634215 0.217775796 -1.43568543 9.484560203 -0.156207393 -0.782155084 16.62931827 +1 1.09 2.334084775 4.557174885 1.263455257 -1.253495063 -0.773167385 10.08923826 -0.216796257 -1.737330591 0.588804781 +1 0.256 0.166154069 5.056914487 1.26665146 0.53178581 1.578253148 13.52595532 -0.186128482 1.080933487 0.004179179 +1 1.628 2.576641092 2.591818329 1.285181423 0.663130582 -1.98203899 13.24315666 0.201593922 1.395176587 0.030773643 +2 1.467 5.632987643 3.626435223 1.293531487 -0.184272841 -2.601193964 11.71793912 -0.128519896 0.477928987 5.809889103 +1 0.655 0.700822806 2.170700721 1.337013126 0.15818828 1.62701567 9.529426791 0.380241083 -0.83699994 1.600552609 +1 0.689 1.24906167 1.47822918 1.340410061 -1.804109441 -1.974668159 8.912532606 0.673588868 -1.844551915 0.722083214 +1 0.282 0.530288935 2.284123292 1.406141891 -2.883779716 -0.331620151 13.92980084 0.331063151 -0.049083237 4.049282386 +1 0.033 0.219511263 4.187918729 1.440052638 -1.310997395 -0.786621947 11.65971929 -0.206687234 -0.350055554 0.735248847 +1 2.855 1.513249056 4.349711097 1.450819401 -1.649233148 -1.772435315 9.519615275 -0.214945338 -1.992431721 0.133112985 +1 2.325 2.615973781 5.460528127 1.45312046 0.008044936 -0.6480863 13.31045752 -0.134228048 0.743751498 0.127225423 +2 2.376 6.987846865 2.834295762 1.458592683 0.438076347 -1.3443138 9.174020839 0.106722547 -0.54452658 14.39299066 +1 2.334 2.028196599 3.57235516 1.469459307 0.691349961 1.265475298 13.29548261 -0.116887531 1.383344043 5.891642746 +2 2.567 4.707382344 1.316293273 1.484608366 -1.718696931 -1.125464905 8.109229913 0.735237768 -1.24156828 16.62554193 +1 0.687 0.669629569 0.794321228 1.50303362 0.308057145 0.642458073 8.477762062 0.898110338 -0.280899994 6.485718074 +1 0.065 1.817468901 2.965328325 1.526947678 -0.707022399 -0.341237239 13.57656164 0.059134435 -0.117873837 4.188634989 +2 1.37 4.427705724 1.107976019 1.533912529 -1.417341341 0.414383607 9.302231873 0.807595877 -1.980749491 22.64865363 +1 0.435 2.767820777 0.605948128 1.536012759 -2.584916232 -3.10300895 11.14989728 0.939918174 -0.374656182 2.130332115 +1 1.141 1.63127238 2.97184208 1.572157304 0.586475087 -1.191131161 9.353649472 0.056845723 -0.444042857 5.314512291 +2 6.81 1.759671045 5.720527553 1.572943074 0.49537979 -3.06190978 12.78817083 -0.093249462 1.450868827 17.54195318 +1 1.352 1.711880752 3.768287102 1.637122384 -1.553361329 -2.386130457 12.4133259 -0.155633197 -0.011536515 1.790607417 +1 0.043 1.194686395 3.607295953 1.647313583 -0.999318117 -0.482077696 13.09668368 -0.12448419 0.021546396 0.087105491 +2 5.09 3.968031526 5.734444699 1.669332872 0.390408185 -0.25010689 10.78786793 -0.090961406 0.174349814 18.20819374 +1 1.488 1.912472403 1.278502297 1.671831384 -0.987584434 1.495747985 12.15695115 0.74898995 0.082653931 2.143953118 +1 0.61 0.553222635 4.566035705 1.676660945 -2.308869887 -1.362853943 11.94493763 -0.216667045 0.073278846 3.657229264 +2 1.787 5.561928631 5.911165939 1.684915079 -2.943675877 -1.844207595 13.60180785 -0.061493352 0.313522721 28.11561756 +1 0.801 1.069876543 4.273459535 1.69449472 -1.141973161 1.274411084 9.452997825 -0.211820687 -1.909057554 0.161329861 +1 2.801 2.757962272 4.339160845 1.702482753 -0.273205064 -1.319645021 10.31642716 -0.214593369 -0.897948631 0.633947702 +2 0.853 4.270324139 5.268276438 1.704339408 -2.181409199 -1.72127642 11.85761355 -0.161235363 -0.060125291 8.192364685 +1 0.004 0.008236368 5.348466688 1.713798348 -0.082330058 -2.052878186 13.68365881 -0.150404219 0.355884654 0.013069244 +1 1.817 0.176709431 0.096234332 1.717203343 -0.89227169 -0.083190909 10.25985539 0.998457207 -1.449619849 0.296442053 +2 1.781 5.437113183 0.394153888 1.719117312 -2.679714471 -0.976574322 13.66365007 0.974307509 0.010388734 0 +1 0.147 0.035490624 0.975969116 1.737152833 -2.240083083 -2.684534055 12.58616295 0.848638879 0.215539757 0.044655805 +1 0.537 1.515310246 2.654600351 1.744852664 -1.080130187 -2.182970254 13.49329978 0.176286413 -0.281726362 4.315446926 +1 0.599 2.32112157 3.151968761 1.745301605 -1.175646804 0.480829271 12.52231321 -0.003291886 0.076090613 5.92549503 +1 1.675 1.325416235 2.20132442 1.752870801 -0.55770048 -0.931094008 8.541686412 0.366922869 -1.164001841 0.045149609 +1 0.314 3.149940303 4.792381288 1.767728358 -0.877718571 -0.089517148 8.106868645 -0.20799729 -1.019483444 0.90741143 +2 0.711 5.228195328 2.095859617 1.773089714 -0.62392161 -1.238236174 11.23879694 0.412857908 -0.343390731 21.70573876 +2 3.064 3.477502438 2.504833738 1.775871849 0.148323676 0.73406276 8.712798188 0.23737809 -0.609289485 7.666223198 +1 0.589 1.757028892 3.062811868 1.784991404 -2.115913409 -2.81330715 12.37064993 0.02569512 0.125841183 5.201048456 +1 3.008 1.876829636 4.624403672 1.800243643 -1.785302737 -0.962108336 11.90752744 -0.21540762 -0.18638061 0.038193836 +2 2.838 6.262713718 3.378285329 1.842836398 -1.340719655 -2.14609091 11.57803475 -0.069410597 -0.423568555 3.040522146 +1 1.043 1.596998572 4.56959105 1.851251429 -2.722948041 -1.717233632 11.54080787 -0.216610563 0.112095327 1.00926046 +1 0.772 0.549146131 1.840798477 1.860470382 -1.468595686 -0.750676145 13.57214128 0.523561017 -0.459344568 0.823038401 +2 0.073 7.452051295 2.030806709 1.873999843 -0.158166761 -3.430548458 9.072096059 0.44122756 -1.095957834 14.50005087 +1 0.496 0.293423878 5.700223227 1.883652986 -1.92902841 -3.034345137 10.49703962 -0.096575025 -1.414657231 1.506036851 +2 5.985 3.199868081 1.772757495 1.884835748 -0.55731878 -0.062191763 10.87164483 0.552627797 -0.652525085 29.14240637 +1 1.307 1.35615201 0.206224491 1.890188115 -0.397572583 -2.073332024 11.73424352 0.992926967 0.286123186 0.070237834 +1 2.276 2.090608128 0.613697117 1.890341294 -1.229778304 -0.264521158 9.724885185 0.938400812 -1.897719476 3.434150374 +1 0.672 1.041359327 1.2059452 1.901769053 -0.812723015 0.535504583 13.03158366 0.774642903 0.167564009 0.874543595 +1 0.324 0.977855156 1.714963901 1.904489409 -0.431800016 0.143927508 8.290451544 0.577053454 -0.841249243 0.489578643 +1 1.484 2.496255175 4.752636969 1.904497396 -1.43315907 0.019658426 13.23137098 -0.210239108 -0.203626379 0.418088518 +1 0.026 2.876568958 5.72315451 1.907911002 -1.701573349 -2.921623623 9.560252151 -0.092818094 -1.982298264 2.342196248 +2 2.562 3.441728791 1.565619397 1.937040287 -1.880895244 -3.124273792 10.6632892 0.638716282 -1.278507361 20.03046752 +1 0.727 1.248158776 3.956537158 1.965104121 0.260404852 -0.80732286 10.6755922 -0.183920308 -0.057077778 6.845602121 +1 0.54 1.526414698 4.5144264 2.00015614 -1.222890564 -3.205307286 8.75766466 -0.217185802 -1.725699759 0.167622454 +2 7.499 1.530997493 2.093647513 2.016126465 -0.959043358 -1.05300359 11.79401459 0.413822743 -0.10237397 0.205300615 +1 2.118 2.427081198 0.773881531 2.0235226 -0.599017994 -1.643445368 10.56237592 0.903131231 -0.983607592 6.999109663 +2 1.117 6.24716603 5.949579377 2.04482442 -0.176303535 0.446165119 11.9171089 -0.055037887 0.621138768 8.355192805 +2 5.269 3.801569088 0.378862884 2.068547524 -2.276255308 -2.744220384 11.9746276 0.976248258 0.068655633 18.4482071 +2 3.768 4.471176408 1.871194557 2.113885246 0.438186107 0.584544181 13.42318685 0.510486056 1.079144594 11.95093832 +2 4.7 5.352186929 4.191928745 2.156088223 -1.442048771 1.516858208 11.24662261 -0.206966878 -0.743303919 28.04092769 +1 1.038 1.354605421 4.109062235 2.170151874 -0.046242506 -2.415842316 9.8928148 -0.200399162 -0.938681685 0.947735937 +1 0.503 3.633756248 1.694672578 2.209820635 -2.37788343 -2.373703593 10.84590594 0.585562755 -0.840715475 0.086084574 +1 0.726 0.815959622 1.682109215 2.235222558 -0.850749094 0.616858888 10.70912204 0.590812479 -1.034325407 2.577333868 +1 1.479 1.445345976 0.014578479 2.248733734 -2.059544403 -2.715381643 9.26622672 0.999964578 -1.870378416 0.8338826 +1 0.165 0.780816901 1.862371098 2.274082483 -0.469984471 -2.308178235 11.5783934 0.514286534 0.097507395 4.320326054 +2 5.193 4.526290056 2.078524624 2.278303702 -2.347144104 -1.249189167 13.27927316 0.420419002 0.042989382 25.16908499 +2 2.064 7.203703645 1.959090893 2.281011334 -2.141005196 1.766590095 12.50064248 0.472441633 0.15605244 11.58276588 +1 0.915 0.975502278 5.915453248 2.296655621 -0.587731211 0.031260256 13.02448516 -0.060773034 0.342413584 3.00858E-06 +2 0.641 5.949936833 0.230602261 2.30310728 -2.360466437 -0.504259795 11.14047062 0.991160635 -0.55968977 6.47799499 +1 0.37 3.783760648 2.182939659 2.308658104 -2.494290699 -1.04297829 13.73295922 0.374915673 -0.209745884 1.34942E-05 +2 4.24 5.992357787 2.56922119 2.327352603 -1.454833175 -1.947885627 11.89712777 0.210813716 -0.208992181 16.71957842 +1 0.398 1.778736349 4.457850066 2.351390656 -2.906070755 -3.40018794 12.26719776 -0.21709557 0.722230094 3.29455E-05 +1 0.602 3.748771813 5.76443362 2.356980868 -1.013570469 -0.679520647 9.005204883 -0.086009567 -1.761988374 0.037763745 +2 3.915 4.086159596 0.454514822 2.362480823 -2.776373438 -2.539876108 9.700866924 0.965923275 -1.319282983 15.47195375 +2 0.426 6.768563993 5.064509598 2.454289732 -0.014441556 -1.816912922 11.11920422 -0.18533748 0.10887418 2.251732734 +2 3.482 3.356318789 0.64788083 2.455189634 -1.155093976 -2.963597914 12.87051423 0.931495397 0.039270855 2.021846133 +2 4.437 4.702439931 1.069696469 2.479110863 0.847201491 -0.657873809 12.90860388 0.819909906 1.691438047 9.683498579 +1 2.752 1.54927244 2.264449472 2.497909648 -1.478081474 -2.448046314 13.8110422 0.33955958 -0.675330615 0.856971111 +1 0.087 1.530034313 2.54766606 2.523256338 -1.549667191 1.376366804 10.20388633 0.219659672 -1.711317109 5.066694257 +1 1.844 2.682846876 5.137463742 2.541847116 -1.611601008 -2.525176192 13.37078074 -0.177326391 -0.305631291 0.561137606 +2 5.101 3.859458921 5.762294739 2.550750674 -1.384933109 0.893963773 9.760070553 -0.086363648 -1.927091172 20.214748 +1 0.01 0.543486932 3.072600746 2.565539859 -2.355635921 -2.712696476 13.7464206 0.022436104 -0.326623034 0.229274048 +2 2.804 3.118299312 1.982547931 2.571252858 -2.929124209 -2.469670813 8.929298923 0.462244164 -1.090614528 9.636938079 +2 6.027 3.652084222 5.055331917 2.606429271 -1.416970263 -0.823763692 10.3283404 -0.186292249 -1.607007561 5.998506465 +1 2.743 0.921639054 4.43368056 2.607097321 -0.583495199 -2.995282168 10.03454314 -0.21684277 -1.370726702 1.469384188 +1 1.284 2.851854439 1.355334888 2.607735731 -1.050635603 -0.32544732 10.61260514 0.720764921 -1.241415478 2.741951228 +2 4.992 3.25500675 3.985184516 2.613952379 -0.05048571 -2.135926249 10.31481893 -0.187453239 -0.679844453 7.853797789 +1 0.137 1.177590225 0.201746536 2.632298375 0.195662598 -2.277681486 9.511268407 0.993230181 -0.8018455 1.39999144 +1 1.516 2.53446903 3.94207932 2.63405211 -1.505295615 -1.393030241 11.96546402 -0.182060028 -0.173032221 0.752393586 +1 0.566 0.296152745 5.984456982 2.642217536 -1.350678784 -1.782140339 8.787489926 -0.049178245 -1.779584171 0.806849541 +1 0.214 0.625428253 1.092797506 2.646262726 -0.058121319 -3.750383479 9.211325967 0.812517639 -1.035394088 0.0187648 +2 3.902 5.174178651 4.201014124 2.654773507 -2.910234732 -1.865595382 10.56683512 -0.207586188 -0.645023897 17.76579683 +2 2.075 5.374333356 0.316398668 2.655967459 0.682174118 1.185573023 13.19183543 0.983398629 1.44117314 12.48414344 +2 5.523 2.655781598 5.584229502 2.656427669 -2.807961091 -2.119493089 8.964284216 -0.115220675 -1.223309688 12.1722786 +1 0.992 1.258994715 0.411874593 2.678748075 -0.732256609 1.651746054 10.36302196 0.971965403 -1.259754694 1.621422491 +1 1.464 1.330734547 0.7013027 2.679843763 0.606292227 -2.47144739 12.26168743 0.920021412 1.523766501 1.935761995 +2 3.668 3.374179041 3.843981808 2.687358882 -1.754328752 1.077192662 11.61760563 -0.168066137 -0.400517921 9.37630937 +2 3.328 6.236451235 3.800890683 2.688289751 -1.875898611 0.609898017 11.91045735 -0.161162791 -0.161324955 14.49362238 +1 0.029 0.450663569 2.401670859 2.697016067 -2.862557279 1.109404459 13.10455452 0.280733788 0.583212523 0.326510948 +1 0.176 1.612281577 4.692660313 2.714756988 -2.110746775 1.021985789 9.811745784 -0.21305727 -1.783791761 0.572416299 +1 1.943 1.485851047 5.768356792 2.71484266 -0.270142213 0.63319587 11.08371134 -0.085359768 -0.178845506 0.447663477 +1 2.469 2.172169105 4.333664509 2.718665955 -2.648531521 0.970670683 8.306168635 -0.214399845 -0.910258389 5.670293437 +1 2.066 1.687981651 1.532985613 2.721119147 -0.185974623 -2.891873695 11.11502832 0.651855602 -0.065734287 0.075146277 +2 3.782 6.346272059 4.088231545 2.732782073 0.817685831 1.567038259 12.22322615 -0.198485777 1.671266466 17.21016063 +2 3.955 5.111187864 5.478065405 2.740151838 -2.693804212 -1.907822042 9.493463642 -0.131600061 -1.430615147 11.89485773 +2 3.737 4.714009475 1.162240069 2.778803924 -2.319133313 -1.058595914 8.179270889 0.78959191 -1.052404317 30.63160092 +2 5.454 2.53086218 1.169633444 2.783376194 -0.87912725 -0.950960357 11.4996563 0.787090629 -0.287178675 1.180965735 +2 6.221 4.975102196 3.648693097 2.787652329 -1.560665078 -2.028315098 13.95569332 -0.13310098 -0.819469488 4.285876229 +2 1.486 6.076160596 0.210269233 2.791750368 0.071867823 -1.49197636 10.49601779 0.992647414 -0.407230308 7.930676851 +1 2.983 2.594947385 3.773174288 2.796250819 -1.658644536 -1.153317695 11.78504048 -0.156478864 -0.286166372 3.268790106 +2 2.36 3.471340968 0.166266042 2.810680242 0.110472527 1.54120597 11.73703951 0.995398965 0.785617169 22.24388257 +1 1.921 0.62548284 3.424031684 2.81385048 -0.262451606 -1.189151017 8.851011942 -0.081394944 -1.09931173 0.789224749 +2 4.456 1.577624939 2.887767766 2.81713174 -0.762290869 -0.830434237 8.204047518 0.086955788 -1.033539837 16.05165621 +2 7.029 2.468621135 2.587575908 2.819975208 -2.779378392 0.481506672 8.903786937 0.203320558 -1.221672022 13.44240722 +1 0.44 1.507096287 3.991675637 2.828178525 -1.195527233 0.17743779 8.68570433 -0.188225507 -1.669501908 3.842255049 +1 0.639 3.174741578 2.084441929 2.843044612 0.064994219 -2.510450307 11.26766172 0.417837983 0.333691129 3.70022622 +1 0.841 2.129140805 0.790558009 2.843750611 -1.405102846 -2.323650405 12.13766782 0.899043341 -0.076798462 0.00610691 +1 0.344 0.60241589 3.428264816 2.857399301 -2.138241887 0.628221038 12.65395739 -0.082479558 0.152890045 3.817331782 +2 2.02 6.737900732 2.692885104 2.877150221 -0.149217247 0.537816508 11.4811044 0.161091681 0.31801315 0.480511345 +1 0.328 0.405110242 2.741589411 2.878274273 -0.159192013 0.077477431 9.02156422 0.142042177 -1.078325238 0 +1 0.579 1.198823491 1.175344114 2.884005747 0.550711143 -1.890291967 9.680936955 0.785150871 -0.444076931 0.774244503 +2 3.972 6.835004605 2.059190177 2.885701188 0.019928061 1.13765256 9.084464869 0.428851898 -0.922723466 20.27025989 +1 0.512 2.226647686 1.210342326 2.927933227 -2.436255004 -0.376321478 9.699957014 0.773117468 -1.610667511 0.058220853 +1 0.263 0.752145805 4.792304675 2.931076335 -0.550199684 -1.042805607 10.81366092 -0.208001892 -0.703769155 0.459038938 +2 3.942 6.384851595 3.033451445 2.935000077 -0.381264252 -2.594460836 8.109945801 0.035580116 -0.625272519 0.688189703 +2 0.32 5.202777086 0.002405349 2.941739689 -1.201549951 -2.905728709 8.011889372 0.999999036 -1.089851924 15.99731482 +2 0.829 4.090750248 4.225832379 2.945822827 -0.353295112 -0.736977035 12.94055811 -0.209177293 0.584813636 6.002225066 +1 1.576 1.506821555 0.366268616 2.956961759 -2.99131303 -0.405870151 12.25215027 0.977790713 0.80132303 1.192868957 +2 0.415 5.425862011 1.977270591 2.960944998 0.948609126 1.146347684 13.16319751 0.464539611 1.639728797 1.259209021 +2 5.289 2.886126384 2.944655291 2.964432578 0.560699218 -2.503591131 8.238791134 0.066448122 0.156395909 20.40708994 +1 0.607 1.138460696 4.999913799 2.968057062 -1.41152266 1.801857293 13.40131084 -0.191793051 -0.316120746 2.96234102 +2 0.168 5.049434913 1.154959759 2.969435372 -2.430225615 -0.485203797 8.455172267 0.79204379 -1.218494617 1.48145951 +1 1.074 0.870662574 0.356954728 2.970976785 -0.984926216 -2.023196773 9.153498614 0.978898769 -1.796660161 0.117749129 +2 4.675 5.26780246 4.83345849 2.975906434 -1.010888308 -0.880208217 8.35763536 -0.205376758 -1.329932744 22.99561294 +2 3.358 5.892350063 4.002457043 2.985340138 -2.95421522 -2.138787639 8.864430874 -0.189485167 -1.033353569 5.676612691 +1 0.645 3.598081927 3.910554516 2.987110485 0.862930175 -0.609036136 12.99916631 -0.177823777 1.667547818 0.068554612 +2 4.691 6.379262116 2.691880134 3.021900636 -0.559380832 -3.441065217 11.42172871 0.161488117 -0.117289273 7.466345039 +2 0.035 4.637208909 1.854182013 3.031740001 -2.790046202 -1.825099401 13.23573238 0.517810156 0.43986775 7.003490352 +2 1.518 6.277030303 4.952848021 3.03517137 -1.298086954 -0.524985529 10.06032617 -0.196095005 -1.767791074 19.52061293 +1 1.182 0.524175889 4.061390596 3.040388166 0.35179492 -1.54338341 8.67256223 -0.19586375 -0.385593392 7.064661839 +1 2.393 1.499335265 2.446617335 3.052087669 -0.956877853 -0.466052367 13.19857964 0.261735447 -0.01067286 0.207231066 +2 4.556 4.860032199 4.068361049 3.078811282 -2.699342687 -1.248306143 8.189144453 -0.196561659 -0.75689698 1.306495323 +2 4.561 2.90204486 4.096077775 3.086723743 -1.622257584 -2.416318566 12.22060576 -0.199218931 -0.057859656 30.7374195 +1 0.259 1.220532776 3.184841738 3.104861649 -2.899906395 -0.267493007 12.79864474 -0.013575432 0.733805214 0.020788175 +1 1.64 2.603409797 1.779375534 3.125731697 -2.941270403 -0.111207397 8.193687042 0.549814295 -0.532194497 1.181873026 +2 0.817 6.709200723 0.781244702 3.127560694 -2.407385597 -2.428700782 9.748225672 0.901335712 -1.618143959 27.14863829 +2 1.37 4.417813828 4.401859474 3.16333749 -2.486450438 -3.488875144 8.517925204 -0.216311291 -1.225499487 16.69710298 +1 0.435 0.910732119 4.617083036 3.194146395 -2.499723648 -0.388123895 13.67949291 -0.215604055 -0.156830801 0.388483937 +2 1.384 4.684875669 2.171805989 3.198575296 0.035166631 -0.154630379 8.652474089 0.379760025 -0.681145576 8.609885532 +2 4.308 3.233506016 5.995020057 3.201287142 0.902643047 0.175041544 12.62460737 -0.047404947 1.783271835 3.555849458 +1 1.382 3.674754683 4.334960647 3.21106158 -2.417559042 0.243656277 11.05309918 -0.21444611 -0.604918619 0.088959047 +2 2.046 5.93850103 1.670124154 3.217146966 -1.737358307 -0.897337813 13.26276445 0.595806631 -0.219000227 5.770906914 +2 3.466 6.203717612 1.993390082 3.221812707 -2.765192584 -1.407580926 10.3081096 0.457526225 -1.002154732 2.883408261 +2 2.476 4.993097713 0.709752414 3.223250782 -1.871287631 -0.395940612 8.008376637 0.918131419 -1.10897351 13.92994392 +1 1.388 3.010611577 0.092903006 3.227883427 -2.448394358 -3.095688969 12.89151218 0.998562126 0.308604918 0.67842075 +1 0.382 1.950791766 2.285387304 3.247658991 -0.526964612 -0.606003656 11.44450114 0.330517869 -0.06891309 1.474256388 +2 1.606 5.675766876 5.066221396 3.248272068 0.272183426 -2.149789234 11.87437369 -0.185158053 1.038808485 12.73207522 +2 2.95 4.310441264 5.843681433 3.258388673 -1.434894577 -2.515810818 13.15273769 -0.07281207 -0.157823151 20.03487288 +1 0.157 0.151035082 1.37675815 3.273745728 -1.188397007 -2.055522915 13.00918187 0.712713112 -0.024221342 2.124135598 +1 0.72 1.720669003 5.840485482 3.273993346 0.331755445 -2.36194406 12.38938443 -0.073346742 1.31008204 0.510877214 +1 0.401 1.061410555 0.793566829 3.290365917 -1.106942702 0.739804859 13.43699327 0.898297684 -0.249984528 0.313958751 +1 0.768 2.362394861 1.600687004 3.290636594 -0.6542201 -1.290014236 8.639605082 0.624452691 -1.315806624 6.08213904 +2 5.741 5.335586294 0.070824452 3.296223348 0.83473389 -0.608772062 11.75313988 0.999164192 1.428272735 6.918351901 +2 3.854 6.650397798 0.330106112 3.296705737 -2.976740953 -1.799511744 11.65050843 0.981937023 0.445000967 16.86484005 +1 1.132 3.48799432 2.723119276 3.298088769 -2.085902492 -0.52945224 8.036939805 0.149228145 -1.052179591 1.668026054 +1 0.119 3.128737109 4.007247088 3.311516945 0.665968364 1.028716591 8.063230118 -0.190035597 0.410096029 0.742961237 +1 0.307 2.689082644 2.450476957 3.31696115 -0.178119083 1.304614934 13.99276555 0.260111511 -0.033278654 1.712839015 +1 0.286 0.072685926 0.22277611 3.320439608 -2.620629082 0.215954131 8.597685269 0.991748969 -1.174734412 2.887008585 +2 2.022 7.217460713 2.974215585 3.321557116 -1.477515359 -0.262668389 13.92752858 0.056013643 -0.787546288 12.55656265 +2 7.026 1.772316904 5.041307321 3.324249486 -2.868232809 0.235710596 13.87147331 -0.187727554 -0.007389425 22.4894938 +1 2.882 1.453377859 0.163818944 3.328710756 -2.629383679 -1.421185352 10.93396634 0.995533223 -0.551672904 0.195458448 +1 0 0.00653331 0.485387982 3.346047688 0.44364157 -0.474709908 9.706233965 0.961193065 -0.531420695 3.173497538 +1 1.563 3.124422212 2.335475221 3.366615881 -2.114272501 -0.383784506 12.82632795 0.308975532 0.110484669 0.882306124 +1 1.669 2.217031887 4.399214761 3.367560115 -1.46518007 -1.33122026 8.135652405 -0.216256878 -1.272388752 5.926026904 +1 0.854 1.306663262 0.113756477 3.367591522 -1.684483196 0.747536772 9.097885724 0.997844639 -1.940589428 2.460844368 +2 0.8 5.477402147 2.074310727 3.369618212 -0.88085155 -2.402611321 12.92199389 0.422257013 0.166148495 9.519513562 +2 2.382 6.136914759 3.382880372 3.390097161 -2.229560214 -2.203086403 8.307460325 -0.07063603 -1.228844783 16.91238879 +1 1.727 3.284097189 2.770251752 3.393983178 0.179484772 -1.421125159 10.7153044 0.130986386 -0.098092371 0.001600316 +2 6.842 4.004886368 0.315281548 3.412849025 -0.096411729 -2.920659128 8.700325184 0.98351507 -0.845124631 6.851352984 +2 0.774 5.415389181 1.653932879 3.41752845 -2.774107593 0.628946979 12.65624738 0.602531191 0.636694257 4.69939881 +1 1.554 0.081364349 5.729056931 3.428169461 0.472007706 -0.575644927 9.198200828 -0.09184798 -0.519765648 3.7448769 +1 0.647 3.473069194 4.067343331 3.46047416 -0.868731792 -1.908495442 11.61151003 -0.196460504 -0.185787991 4.015581379 +1 0.061 0.619077782 2.644063079 3.469091723 0.793780567 0.318405087 11.66795499 0.180501017 1.335859398 0.00018482 +1 2.293 1.999444434 5.505133979 3.485534441 -1.630541987 -2.452102366 11.20072635 -0.12749785 -0.794499725 1.221201264 +1 0.52 1.696742546 0.515515735 3.491302963 -1.858681515 1.103071579 9.837429954 0.956292098 -1.874906957 0.224865795 +1 0.003 0.004498066 5.288604296 3.494740321 -1.318925176 1.102654759 9.898276901 -0.158554262 -1.858426008 0.288497857 +1 1.557 0.727932222 4.778941042 3.498523665 0.87159579 0.554847276 9.466550344 -0.208788144 -0.23377069 4.733810863 +1 0.777 1.038416397 5.262113562 3.505159743 0.211508932 -0.06404885 8.544186535 -0.162039157 -0.426759754 3.093922773 +1 0.009 3.055418928 1.586276285 3.507178821 -1.389050043 -1.367791693 11.88631559 0.630331675 -0.205991436 4.91539185 +2 0.88 5.46479431 0.52455707 3.52568977 -2.757540608 -1.112808382 11.25168654 0.954766805 -0.12135887 8.057888814 +1 0.874 0.602866306 1.164026345 3.535163117 -0.876555036 -1.718097971 10.24249745 0.78898863 -1.452426165 5.147049247 +2 0.951 6.779927691 2.956404808 3.535179471 -0.608531046 -2.039805695 11.69052231 0.062282124 0.068682696 10.93800637 +2 2.047 3.777367251 3.808864302 3.54130404 0.459097574 -0.399616255 13.53871092 -0.162474976 1.006506805 15.41054086 +1 0.7 0.26616409 1.075043518 3.542573708 -0.228082495 1.397106338 13.88209072 0.818209531 0.026209066 1.814319253 +1 2.531 1.074257013 0.80282547 3.545424745 -2.433049201 1.828816558 8.617553815 0.895987703 -1.342234779 4.279463479 +2 2.099 6.033212179 2.437542128 3.560497848 -2.712144169 -3.179152437 13.92918678 0.265558654 -0.209885418 8.574545024 +1 3.178 0.350706374 0.168040914 3.582127375 -1.271464406 -0.69589485 12.3052725 0.995300349 0.010573385 1.650681588 +1 0.888 1.517221784 5.881789158 3.589276155 -2.232704344 -1.424676009 11.21393161 -0.06642603 -0.572194714 0.559262752 +2 0.735 5.987881349 1.973228474 3.617952895 -1.066768543 -0.439367627 12.32684335 0.466297319 0.09580581 0.162302312 +2 3.124 2.570036677 0.381942673 3.673388609 -2.433816342 -0.882284821 11.99660385 0.97586336 0.191881015 12.36290994 +2 4.489 3.810848392 2.953077499 3.714183193 0.974378049 0.442707662 10.32393323 0.063459413 0.205081262 24.6269765 +2 3.609 2.914447081 5.550617816 3.716382712 -1.910153314 -2.980603855 11.95624791 -0.120487608 -0.12339119 17.77358153 +1 0.882 2.29439748 4.23427592 3.718849952 -1.929632795 -0.879427883 10.40907819 -0.209685129 -1.489752152 0.00216427 +1 0.691 1.767295606 0.505097908 3.719713233 -1.794164154 -0.441245734 13.18140596 0.958018469 -0.158403903 0.805821158 +1 0.085 0.567468817 2.65007836 3.733964967 -0.249152948 -0.536531112 8.882208624 0.178093398 -1.102968015 2.525228668 +1 1.939 2.645139507 0.162826612 3.740008566 0.625164106 -0.118631353 9.088830044 0.995587103 -0.358867891 6.848506541 +1 0.212 0.496985793 3.869585973 3.749042159 0.493132268 -1.461157948 9.014563864 -0.171949395 -0.443648183 0.025545561 +2 0.365 4.418600448 3.922712187 3.767383844 -2.746217925 0.253228047 8.925191491 -0.179486752 -1.262934779 9.029174646 +1 0.188 0.163689591 1.828168895 3.773459403 -0.229685619 -0.557727287 11.95023645 0.528978535 0.588447149 6.947380234 +1 0.545 1.163206793 1.247356084 3.779404456 -0.964802746 -2.661124143 8.528592619 0.760125861 -1.446530144 0.091438309 +2 2.106 5.927893373 2.803917374 3.790455123 0.21492267 1.556886302 12.24753915 0.118154178 1.162874231 12.21617005 +1 0.224 0.259914524 3.64491359 3.79980472 -0.127561465 0.194259104 9.793798868 -0.132331611 -1.059896755 4.722788398 +1 0.828 1.824284004 3.615639386 3.80031448 -1.704320736 -2.074897853 11.40502883 -0.126254434 -0.592989831 1.886072063 +1 2.524 2.569618888 3.249803226 3.80089175 -0.93209568 -0.559057864 11.90712767 -0.033232632 -0.01241488 6.887517904 +2 1.807 5.679304644 1.278199701 3.814271595 -1.352175955 -0.575648842 11.68601094 0.749099013 -0.339323709 1.672911989 +1 1.966 2.402232146 5.590754315 3.83835095 -2.884240304 -1.406583136 9.1312301 -0.11419035 -1.211744319 0.667576929 +2 3.52 2.912834917 0.114400145 3.856041895 -0.163025649 0.295886114 8.765850523 0.997820195 -0.952953859 4.081586253 +2 2.24 5.871152193 1.337444105 3.864237739 -0.469958271 -2.445188895 8.347297916 0.727429797 -0.92639844 16.36997389 +1 0.202 0.947819559 5.286547129 3.871779668 -1.817548701 -0.606799989 11.09584047 -0.158827645 -0.86961252 0.044001312 +1 1.425 0.47499019 4.003337048 3.874539983 -0.901412211 -1.540225259 13.97435251 -0.189586714 -0.622107922 6.82414971 +2 0.412 6.582302993 1.050028526 3.87967247 -2.522961558 -1.828260963 13.4815907 0.826108432 0.029695633 15.15857813 +2 4.414 5.930787093 2.054903244 3.884571209 0.538258834 -1.531841639 10.49347896 0.430721476 0.031378492 10.26250349 +1 1.978 2.163530576 2.850518754 3.891028295 -1.683311986 -1.43930479 13.5380224 0.100676804 -0.429740564 0.042535442 +1 1.174 2.041239153 2.227008242 3.896752118 -2.35611402 -1.610857968 10.14658941 0.355772862 -1.457773738 0.001866077 +2 6.389 1.729271843 0.089054586 3.897642675 -2.73778706 -1.251443441 9.448525725 0.998678738 -1.392638733 21.50208524 +1 1.799 1.843910634 4.578548633 3.901836238 -2.12040551 -1.668794914 10.13650459 -0.216456529 -1.609964004 0.431310795 +2 6.919 1.479967854 0.199749821 3.902728035 -0.218126626 -1.133639048 12.220585 0.993363256 0.72440845 11.24172459 +1 0.074 0.045255347 0.687814333 3.911876987 -1.021002773 -2.845297171 12.15729802 0.922996143 0.064857692 0.050110548 +1 2.088 2.659774812 5.917392146 3.918410813 0.600755925 -2.652682967 12.71299949 -0.060447252 1.554535438 0.714854029 +2 1.066 5.810972849 3.554080164 3.920512453 0.982254318 -1.900831082 11.50987703 -0.112796961 1.323678872 12.71580173 +1 0.91 0.479904667 4.938242934 3.941580639 -0.840546262 0.167162737 13.97026732 -0.1973583 -0.578881761 5.504795458 +2 0.829 4.852211901 2.714027717 3.943035441 -2.521698412 -1.709021548 13.39512883 0.152782588 0.09484251 8.353322405 +2 3.925 3.425736071 2.652039562 3.944730878 -2.454094188 0.440964652 11.83602744 0.177309391 0.11033961 11.34982651 +2 1.952 3.49139973 5.933830385 3.972746605 -0.739761739 -1.510750468 13.88564725 -0.057684791 -0.425235822 20.11368806 +1 2.262 0.579954647 4.224931185 3.97661861 0.019539372 -0.586478585 8.002222856 -0.209122089 -0.128160744 4.737440361 +1 1.355 3.318143568 5.751324259 3.976919793 -0.76887874 -3.299086169 12.97584903 -0.088177638 0.22199877 1.098102145 +1 1.029 2.64788787 1.340186563 3.979390982 0.942084102 -2.709276028 8.727894786 0.726411702 0.041939141 5.967842336 +1 1.464 2.231051089 0.884357442 3.979697717 -2.781289794 -0.487360621 11.36124755 0.874655276 0.005020462 0.063489536 +1 0.188 2.463916771 0.368127305 3.98195009 0.071173754 -2.251426715 8.207634552 0.977566264 -0.275213285 0.634108016 +1 0.054 3.799295672 1.445263175 4.002736384 -0.624889755 -1.552577293 9.292639235 0.686470861 -1.576290239 4.059116152 +1 0.99 1.134019766 2.810421319 4.003232996 -1.276872301 -1.034040881 11.22012628 0.115694731 -0.734444789 4.263597756 +2 3.094 6.775191831 0.235752832 4.011936184 -2.700376656 -3.00273576 10.68443384 0.990762475 -0.733183848 22.28273487 +2 6.859 3.038865532 1.682792812 4.013487423 -0.030871728 -0.153650577 12.40834332 0.590527211 0.956672826 1.630860794 +1 0.497 3.96667996 2.887230188 4.024348323 -0.402506108 -3.045008511 8.159907265 0.087152192 -0.692901352 4.701126604 +1 2.231 2.370089075 1.525168339 4.027057407 -2.684842765 -0.531104673 12.74926565 0.654982928 0.542287776 3.266258794 +1 0.663 0.509121999 0.639563403 4.027893557 -0.343550001 -1.219474278 11.96110078 0.93320723 0.485516832 4.453008416 +2 0.348 5.378707012 0.803799471 4.043305708 -1.220789183 -0.222027373 12.61517805 0.895743341 0.05943889 7.005862426 +2 1.665 5.046789312 0.100481862 4.055204959 -1.99457207 1.147610482 11.08890902 0.998318082 -0.818343555 10.25317891 +1 0.696 3.311512019 2.150193279 4.058315884 0.180695242 -1.117272182 9.861599294 0.389171053 -0.72638747 5.36308552 +1 1.519 1.43735023 1.020178295 4.059115996 -0.797038137 -3.294766684 10.44368365 0.835345475 -1.23958751 0.008813262 +1 0.734 1.610181234 3.097112608 4.083353201 -0.081123725 0.523235238 9.238024218 0.014357043 -1.063646919 1.97143994 +2 0.783 7.905184006 2.750469086 4.1018394 -0.645473619 -2.938688019 9.308857675 0.138604493 -1.594865603 8.009663396 +1 0.145 0.518250183 3.102896464 4.112673332 -1.742775092 0.304700235 13.9347053 0.012467878 -0.784166765 0.108514019 +2 0.382 4.047413974 0.132602759 4.12048944 0.790070062 -2.955653868 11.00463281 0.997071993 0.719460979 5.481416991 +2 2.989 3.875130773 5.647861761 4.126601813 0.677622824 -1.860706764 10.87359559 -0.105073032 0.505266387 19.58529077 +1 1.889 3.130993494 4.593912125 4.128236462 -1.810306693 -3.423835935 13.63850252 -0.216153421 -0.493201211 0.127818254 +1 2.159 1.668807408 1.150442484 4.129835775 -1.199085355 -0.079591393 12.54221846 0.793559533 0.068001083 2.398506481 +2 1.015 4.621390576 3.78822362 4.130481427 0.484502097 -2.639415738 8.54564946 -0.15904577 -0.172054782 9.528532 +2 2.772 7.378061996 4.382452294 4.140938997 0.931064161 -0.935992416 12.65185017 -0.215875221 1.798604525 6.067217014 +2 3.247 7.082110545 1.207434471 4.174406635 -1.150134309 1.157329818 13.27416596 0.774126683 -0.153021694 15.37617459 +1 1.628 2.751983001 1.355071061 4.178496165 -1.240014992 0.195999943 12.68770099 0.7208636 0.046859626 0.035099033 +2 0.92 6.514496133 5.493954291 4.185571877 -0.376149154 -1.45614449 11.60561207 -0.129198712 0.205556845 18.06534514 +1 1.24 2.314321298 3.720724692 4.188552728 -2.245209303 -0.947706845 11.7915871 -0.147094386 -0.066501154 3.507443145 +1 1.815 2.590152399 4.220667545 4.189352606 -2.415798106 0.449122517 11.86175414 -0.208858288 0.098130083 0.935091604 +1 0.831 3.757064691 2.787032283 4.192975099 0.55000904 0.32308873 11.94680317 0.124569104 1.336824649 0.005434869 +1 0.711 1.17283066 0.317215437 4.201429718 0.201261992 -0.29806321 11.78032465 0.983313239 0.90655458 2.718944499 +1 1.309 2.633562463 2.826837264 4.206344183 -2.890288979 -2.312143085 11.20862621 0.109515992 -0.037223098 0.699793468 +1 1.283 3.161401628 2.914156026 4.233120772 0.397931856 -1.633372532 12.67331248 0.077374343 1.381799791 0.283761558 +1 1.153 0.798430253 2.844142276 4.239128501 -1.307906936 -3.371840272 11.0538499 0.103048115 -0.90740051 0.105360988 +1 0.811 0.885159288 1.167728762 4.244592137 0.234119586 -2.369071128 12.85626699 0.787736096 1.190260183 1.763415791 +1 3.16 1.004271373 0.998330153 4.247247457 -0.126263235 -0.862324176 11.77387751 0.841973557 0.576144133 3.58790929 +1 1.808 1.395248753 4.312169056 4.262777779 0.148533034 -0.013639524 9.074636344 -0.213575887 -0.791336665 5.645503545 +1 0.453 0.819882194 3.345413424 4.2693758 -2.937645696 1.452867267 9.696515997 -0.060504474 -1.165841907 0.400647387 +2 0.167 7.559930639 1.383366559 4.278626812 -0.979370507 -3.891839813 10.93232597 0.710214076 -0.893352719 6.447711235 +2 4.111 2.760843228 1.142904674 4.28096447 -2.068443608 -1.833498776 13.18124327 0.796079199 -0.061861172 8.709139639 +1 0.345 0.551554229 1.474816577 4.314462662 -2.039269678 -2.473990243 12.53161881 0.674929679 0.107137569 0.008204934 +2 0.039 5.177987817 3.56758349 4.324877691 0.770711716 -3.090093391 8.314347976 -0.115827218 0.252369672 11.32339333 +1 2.859 1.247789318 5.058879582 4.327955368 0.900326203 1.025957111 12.39004327 -0.185924625 1.768024209 0.02979588 +1 0.013 0.105755433 2.448340099 4.349685751 -0.639203268 -3.390647691 12.34497974 0.261010442 0.379036779 4.406255271 +2 4.2 3.81286619 2.660603982 4.362741545 -1.589818343 0.619177348 9.4184443 0.173891304 -1.999799029 8.914214324 +1 2.946 1.846776224 2.391789613 4.364409288 -1.130613528 1.095313923 11.56209031 0.284930844 -0.367978174 3.897364083 +2 0.574 6.567750828 3.984126395 4.367611419 -2.529829545 -2.385526238 12.63880971 -0.187326363 0.423065738 13.14504628 +2 2.567 3.169181891 3.621976878 4.382115583 -0.476025035 0.271255568 8.986889089 -0.127587768 -1.363898622 8.119872763 +2 2.151 5.054633268 1.395491184 4.396122477 0.143403845 0.95174128 9.581068841 0.705610595 -0.84489858 19.76622025 +1 1.365 2.057844802 4.415991358 4.403550128 -1.093583132 0.346610644 9.557130201 -0.216575348 -1.879532586 0.22469178 +1 0.5 2.884178239 4.730536458 4.412537841 -1.831190825 -1.800146492 11.88985641 -0.211357707 -0.186528653 0.526905152 +2 1.44 7.015724265 0.328969738 4.415092312 -1.819475288 -1.820283224 9.173883048 0.982060499 -1.937929035 1.125259096 +2 0.488 7.286576759 4.890871732 4.428964262 0.831935362 -2.590069851 10.11544618 -0.201214476 -0.031584382 6.194497057 +1 0.709 0.768344169 5.225870463 4.431849006 -2.040255097 -2.271062169 13.8636609 -0.166678384 -0.621704467 3.122120759 +2 0.364 4.156544223 3.255503326 4.436434368 0.240247359 -2.556122919 9.129747848 -0.034914567 -0.718850498 26.86531724 +1 2.158 1.735346107 0.927069615 4.437203941 -0.324860109 -0.248010572 9.520627845 0.862788085 -1.31458613 0.358086936 +2 1.856 7.258282059 1.380351395 4.441978412 -1.288572636 1.14122134 8.053786471 0.711355175 -1.158916588 9.011425731 +2 4.356 6.140362811 0.632102387 4.472877212 -0.119367825 -3.115811268 12.14932775 0.934725534 0.795206195 10.50595491 +2 5.856 2.618497638 2.951489968 4.48265299 -2.488829214 -1.448105652 13.50597647 0.064021811 -0.017277745 11.15174171 +1 0.512 0.842403896 0.277281468 4.48644146 -2.204925683 -2.694406934 10.36610534 0.987235002 -1.394303407 0.060033568 +2 3.498 3.909018476 3.36154511 4.488151783 0.845514916 -2.014294995 13.54023812 -0.064905637 1.310417836 8.425495224 +1 2.58 1.360232126 4.273935306 4.488750132 0.464838065 -0.828077333 12.51605721 -0.211844391 1.447012602 1.406080427 +2 1.281 3.96863914 0.393584693 4.491114483 -1.018790714 -3.362521839 11.99728227 0.974381085 -0.009081918 23.4951224 +1 0.016 0.021556057 1.825684039 4.499844195 -1.091804428 -0.20415131 8.055736797 0.530043311 -1.087849193 2.724676618 +2 5.428 4.907816211 0.024968044 4.503712399 -2.550543027 -1.288256375 11.37199135 0.999896103 -0.189642144 9.829652149 +2 1.623 3.734391102 0.61517222 4.530082064 -2.525367569 0.037837253 12.28701099 0.938109947 0.383273507 8.817709161 +2 0.107 4.490760231 0.387071128 4.54269348 -1.76822301 -1.795654002 10.99105783 0.975215718 -0.985091012 1.324088917 +2 0.827 6.549066392 1.188571259 4.558524228 -1.619256412 0.535680161 13.51793101 0.780632215 -0.41841291 9.66890711 +2 2.258 3.434873976 0.990787308 4.577244677 -1.798740981 0.39493371 13.7495858 0.844235388 -0.596182826 14.60560058 +1 0.316 0.938107764 5.127166315 4.578498756 0.763838785 -0.771604174 9.542738245 -0.178501343 -0.301351897 1.115890426 +1 0.379 2.689264944 4.409131517 4.581846073 -1.187522153 -3.216293266 10.69131765 -0.21645278 -1.227029237 1.622698913 +2 3.956 2.666710635 1.380877428 4.584726525 -1.494934889 1.12601535 10.9984518 0.711156203 -0.994246397 5.083826739 +1 1.963 1.922986332 3.801430567 4.595096006 -2.402081608 -3.41328895 12.595887 -0.161252136 0.325637669 3.805134937 +1 3.323 0.567435191 4.695781788 4.596386588 -0.641327414 -2.262843828 11.88383311 -0.212927719 0.177715023 1.034890017 +2 0.616 4.512115073 3.478957342 4.608082557 -0.452356064 -0.3591471 9.253179613 -0.095143876 -1.422398931 5.129993366 +2 7.329 2.102679882 3.062375458 4.617050803 -1.497159757 -1.585751479 13.63200112 0.025840845 -0.513337497 24.59664261 +1 2.529 2.047439803 1.996964985 4.617099281 -1.307120452 -2.031095921 10.45770228 0.455970062 -1.477748088 0.023647066 +1 1.895 2.728390575 4.927969973 4.627932049 -0.895527521 -0.068311489 10.32242741 -0.198226102 -1.40398845 0.601838747 +2 2.889 5.161423099 3.914470632 4.643578746 -0.026589019 -0.511441995 8.07362909 -0.178363449 -0.244471449 15.19838132 +2 0.272 5.995811744 0.788626194 4.645236105 0.229026247 -2.781050879 8.374625975 0.899520788 -0.270409902 13.15138091 +1 0.343 2.244169466 3.028629061 4.657570772 -1.580295933 0.258887495 10.84636064 0.037219314 -1.148615446 1.497402795 +2 1.547 7.725234854 4.418444091 4.673133071 -2.125340781 -1.704220167 11.33538685 -0.216616608 -0.516830019 11.4809502 +1 2.355 0.870851765 2.45547638 4.677004344 -1.076193261 -1.640237716 8.377255741 0.258009845 -1.379876 3.567429661 +1 0.389 1.471507197 2.557934518 4.686358624 -2.1062737 -2.749998516 12.70459483 0.215439509 0.130437086 0.169944004 +2 0.221 4.225824895 3.385635594 4.722428781 -0.901480211 0.294327261 9.8894124 -0.0713685 -1.678231597 11.97072716 +1 0.829 2.58619194 3.270806552 4.731959267 -0.787133582 -2.196908604 12.85237558 -0.03939537 0.251045772 0.951940226 +2 3.499 2.151659105 4.938586762 4.734629736 -2.233652774 -0.221855658 11.44140463 -0.197328957 -0.357030463 24.00160093 +1 1.699 2.363496986 2.647401766 4.735710441 0.123908003 -1.32818359 13.94224269 0.179164156 0.317283401 0.874991839 +2 1.631 4.225224867 4.160274983 4.749415297 -2.862144333 -2.255895835 9.427716673 -0.204654178 -1.275821094 16.79083127 +2 4.35 4.638839282 4.33121434 4.763146363 -0.596322991 -0.649336907 9.381211723 -0.214311328 -1.560655039 20.42712338 +1 0.412 1.014777956 2.218705026 4.764382492 -0.014805637 -0.011219896 9.897905627 0.359375255 -0.904952549 2.023658577 +2 4.913 1.425501802 0.045354836 4.770894227 -0.658807003 -1.663993395 11.60709616 0.999657192 -0.038059759 3.642586491 +2 0.786 5.841545302 0.918761669 4.781487829 -0.247498117 0.922135059 12.01430873 0.865132745 0.606465907 10.45956937 +1 0.169 0.38835763 5.00476549 4.783888408 -2.259419507 -0.760004365 10.19350124 -0.191329964 -1.490920534 5.766795482 +1 1.222 1.00217143 2.857569947 4.787744625 0.930612022 -2.379145226 12.4229955 0.098062148 1.791725061 1.939509756 +2 6.327 2.628310142 4.505451646 4.793303987 -1.555087932 0.269617034 8.225666562 -0.217217905 -1.363062448 4.692397342 +1 2.199 0.881996251 0.821873908 4.793980173 -1.97999159 -2.668426255 9.949111113 0.891162206 -1.783099284 0.396168472 +2 2.417 4.95272121 0.377893505 4.794285405 0.950460743 0.996479262 9.773554401 0.97636878 -0.12610814 1.262508417 +2 4.777 4.271946816 2.073929373 4.79673448 -0.092134532 0.061424215 8.043295154 0.422423351 -0.280188959 20.53559252 +1 0.977 2.710069438 1.05085728 4.8015572 -2.578548854 -0.524961149 13.30043881 0.825849029 0.208692681 0.337465807 +2 5.058 3.330409445 2.034453192 4.803894113 0.050700215 -2.073708998 11.66968181 0.439638059 0.674878798 27.52497489 +1 0.542 1.756347281 1.832132677 4.80912126 -2.602313802 -3.587707183 12.37062818 0.527279262 0.467386218 1.135891415 +2 1.354 6.222670032 4.844563522 4.818511428 -1.941501052 0.359832777 13.12149833 -0.204616505 -0.082239139 18.26143021 +1 3.098 2.068049721 0.305493675 4.820955744 -1.689653063 -1.634689288 8.955209294 0.984518023 -1.8847084 1.918064377 +1 0.57 0.433484671 3.599203089 4.821709519 -1.153978261 -1.75307314 9.213420872 -0.122750969 -1.892128898 4.7582241 +2 4.855 5.217365557 3.141954142 4.837296512 0.981819003 0.014202064 9.669026538 -0.000115052 -0.138810092 16.1187801 +2 1.643 4.291175776 5.117684238 4.844006312 0.47831034 1.299747814 11.16719078 -0.179570676 0.631055119 26.17849423 +2 3.993 4.393176353 2.305216226 4.879260269 -1.854753055 -0.98889852 12.00691062 0.321973977 -0.112412621 14.81177247 +2 2.659 5.36001952 3.253057151 4.893179133 -2.264939544 -3.949744165 10.31850201 -0.034193629 -1.395115904 13.15196202 +1 0.002 0.001504292 4.40742934 4.90146493 -1.621983386 -1.804606091 12.01204561 -0.216420729 -0.148434299 1.134732539 +1 0.708 2.776694758 2.006206864 4.902022533 0.806602776 -1.224302993 13.53345108 0.451945897 1.289646021 2.528055925 +2 4.989 3.351288519 2.230770951 4.90303515 -1.13926807 -3.156063291 10.15147024 0.35414115 -1.655703745 1.599538972 +1 0.395 2.875674469 0.484084623 4.904470755 0.775227013 0.852222064 8.772933245 0.961398753 -0.095087807 0.111377602 +2 0.872 7.053976092 5.326240247 4.905313794 -0.568295427 -3.113521952 13.03416387 -0.153473302 0.354369339 16.014038 +1 2.642 2.768124866 1.696348739 4.916551898 -2.493711575 -2.524228808 10.08233526 0.58486125 -1.39498574 0.011763425 +2 1.064 7.27478233 2.270059984 4.925977836 0.384301453 -0.457522727 12.56613586 0.337134856 1.374911605 16.94884827 +2 2.265 4.861732901 2.764654299 4.93616917 0.729592403 -0.383820493 12.46937117 0.133136173 1.661865089 1.057204851 +2 1.256 4.084389622 3.144789837 4.937100204 -1.596316283 0.545904244 11.03550669 -0.001016659 -0.95975259 13.55168189 +2 1.189 7.061159204 4.170750253 4.937723178 -2.197336428 -1.524430795 11.14258526 -0.205446251 -0.66357904 25.63063311 +1 2.212 1.653358619 0.438816242 4.94174561 -0.374135667 0.372006673 10.63958286 0.968214298 -0.713987926 0.00634842 +1 1.26 1.858885911 1.041411078 4.945134097 -0.468168251 0.647751384 9.176487841 0.828796335 -1.420586433 1.948195376 +1 0.195 1.152265541 5.832256243 4.945135562 -2.628181212 -1.037371438 11.6078248 -0.074722698 0.08355892 0.000940771 +1 2.344 2.079392261 0.553087376 4.954185584 0.454904122 -0.632214721 11.97580216 0.949789889 1.270000466 2.183335 +1 0.66 1.866081144 4.755777334 4.957392148 -2.055664731 -0.80120312 10.96205797 -0.210072676 -0.918246337 1.143097716 +1 0.846 0.56510801 2.620439201 4.959744506 -0.972508178 -1.764159021 10.99867335 0.189998987 -0.823201935 0.144880013 +1 0.615 0.55377927 4.805472016 4.961416859 -2.048684646 -3.013425971 8.160159696 -0.207195234 -1.189384732 2.396414765 +1 3.025 1.584735218 0.168225936 5.001007984 -1.087484205 -0.733743924 13.29831515 0.995290009 -0.141584349 0.008697897 +2 1.794 5.41084043 2.004579962 5.004249805 -2.645391822 -0.837275769 13.54114921 0.45265441 0.085263297 7.085060419 +1 0.459 2.064784176 4.403793594 5.009841758 0.528412611 -0.039385431 10.11498826 -0.216350085 -0.266949042 0.005167416 +1 0.075 0.068898874 3.793768901 5.020419182 -2.93271296 -1.771545161 12.82909587 -0.159977443 0.758321705 1.66566951 +1 0.821 0.771721844 4.384981334 5.023321522 0.37548513 -3.248801449 11.89254342 -0.215936882 1.148163202 0.6195759 +1 0.189 2.055470566 5.328801666 5.032560118 -2.881973428 1.44629577 13.23300227 -0.153122151 0.529196353 0.209699596 +1 2.299 1.352075739 2.625955668 5.046415042 0.849975539 -1.835369319 13.44051843 0.18777511 1.392914974 5.25368583 +1 0.513 0.399162361 3.061048552 5.048903184 -2.288229335 -1.065663322 10.9979073 0.026284145 -0.751162877 0.83474176 +2 1.75 6.752356313 4.73829129 5.06031266 0.428168532 -1.68784831 9.556015218 -0.210975749 -0.576195382 2.558372869 +1 0.572 0.248026177 0.204851981 5.066270707 -2.935493092 -3.133755508 10.21790507 0.993020605 -0.906264101 0.132876159 +1 2.012 2.518237702 0.245469534 5.069493684 0.450058079 -0.965931781 12.66408548 0.989987664 1.430247531 5.315772037 +2 4.514 3.794950319 2.920566078 5.076180881 0.803721944 -0.915042434 12.18299846 0.075064674 1.647352775 2.459574716 +1 1.799 2.640373597 1.912216302 5.082594564 0.543156459 -1.02276282 10.4903851 0.492768611 0.03286774 0.006619968 +2 3.094 4.599783311 1.858950791 5.086832479 -0.823336491 -2.238433069 8.761256464 0.515758665 -1.521246229 2.913276799 +1 1.901 2.536797699 2.871071286 5.089698884 -2.37899821 -3.219572462 12.44835831 0.093078107 0.302244955 3.108422124 +1 1.104 0.785118896 4.533765636 5.092188766 0.658084045 -0.361209466 12.28862929 -0.217057806 1.573279321 0.251010457 +1 0.55 1.069852791 1.949592743 5.109453237 -1.337922424 -1.200380081 10.50874833 0.476566401 -1.440830152 2.845758935 +2 3.327 4.058929804 2.625414856 5.11842263 -2.474732888 -1.983223919 9.282112834 0.18799297 -1.608362126 14.39100457 +2 3.167 5.168921343 2.995195191 5.120087262 0.361597585 -0.746089224 13.2305288 0.048703031 1.141204915 9.222976378 +1 2.692 2.675185515 0.00977294 5.142455154 -1.621524327 0.470611362 12.19834253 0.999984082 -0.065675004 0.007243872 +2 0.231 5.451121302 1.118203051 5.147362948 -1.188906029 -2.203556454 9.11814825 0.804251151 -1.881318122 14.61813096 +2 2.787 6.444223298 3.850634656 5.158258157 -0.387807443 -2.185979039 11.11491763 -0.169090818 -0.259099343 15.26761512 +2 3.978 4.251480339 3.903020002 5.165953892 -0.242680719 -1.484060541 9.144714281 -0.176774738 -1.201343491 7.882417205 +2 2.962 4.716992344 3.707433393 5.169608412 -2.674908337 -2.393346743 8.768319673 -0.144608318 -1.242086398 28.96799575 +1 0.309 0.468867356 2.460037362 5.172121617 -1.851654806 0.617719027 11.3478877 0.256094328 -0.615747797 4.671823025 +1 0.666 2.434568304 3.559388737 5.172184966 0.172539074 0.516738742 8.889327508 -0.113993475 -0.688354609 0.471935476 +1 0.15 0.439117814 0.695103206 5.173808672 -2.509819706 -2.514093981 11.87358264 0.921395123 0.178891947 0.003348896 +1 0.897 0.321625259 1.56787074 5.205113704 0.769846754 -1.325780971 11.5527513 0.637804951 1.224817505 0.468118585 +2 2.775 5.511331493 3.788188791 5.219057749 0.634411448 0.28822495 8.842964153 -0.159039894 -0.24276368 8.985956331 +2 5.371 2.842601959 2.894041834 5.220074488 0.933773518 1.275487653 13.06626353 0.084667117 1.681504059 9.038710033 +2 4.218 4.515454032 4.716974519 5.221293265 -0.115562174 -0.363273942 11.36877164 -0.211998068 0.249289426 27.40143253 +1 1.288 1.17680498 4.117376133 5.230700562 -0.632746729 -2.577847827 9.832288292 -0.201133263 -1.50947235 0.989081255 +2 4.695 2.659545678 3.638254165 5.238681169 0.17282723 -0.001300741 13.17628479 -0.130967506 0.991665327 8.267061436 +2 0.648 7.241353923 5.059245118 5.240673416 0.412687694 0.904352406 12.58676733 -0.185886643 1.40086482 1.011203606 +2 6.387 1.862201287 5.735114611 5.241107344 -1.966829443 -3.837027362 10.21807561 -0.090851101 -1.624097518 25.76460838 +2 3.87 4.595319607 0.631167118 5.257216688 -0.954322033 -0.93085194 8.582386901 0.934914705 -1.481602387 18.68182622 +2 4.113 5.79890352 1.959597092 5.260474898 -1.827531251 -0.234781121 12.97575003 0.47222173 -0.049856194 3.97120463 +2 3.288 2.994129916 3.46543667 5.276967505 -1.135632934 -0.012078483 9.318386478 -0.091824822 -1.901146937 9.41857034 +2 3.033 3.594557658 5.714802479 5.27830882 -2.355246885 -0.244747818 10.5617909 -0.094188705 -1.128083306 11.58375113 +1 1.674 3.336000061 5.372890509 5.278985865 -1.85743517 -1.750100319 10.10571063 -0.146975754 -1.736185514 1.667915252 +1 0.453 2.97186303 5.923634441 5.280383513 -2.124671021 0.902467645 13.85204415 -0.059398307 -0.569217588 1.515724814 +2 4.661 4.600255783 1.051449854 5.290585308 -0.929210652 -1.889495864 8.241246674 0.825663455 -1.178805199 11.04831781 +2 1.975 3.976606475 2.624755916 5.29088118 -0.02086605 -3.018681682 13.48960686 0.188258464 0.582377692 9.844699164 +1 0.621 0.607381429 0.442559126 5.300060285 0.23866867 -1.31052222 12.43494474 0.967675088 1.227785289 3.447333265 +2 4.273 4.358270434 0.764663119 5.305423524 -2.706658084 -3.041766958 11.77393298 0.905358088 0.28076058 26.7474204 +1 2.436 2.432687563 3.728268479 5.306916777 -2.785825241 -2.210240965 9.922741391 -0.148486024 -1.226866949 0.204770291 +1 0.629 2.579807493 5.30692235 5.309034976 0.506066054 -1.880000274 11.96253294 -0.156099883 1.307902777 0.000344897 +2 4.91 3.525133591 5.205087122 5.328672705 -0.065287238 -0.568467482 8.980764142 -0.169268989 -0.968275604 0.933907302 +1 0.79 0.745322508 3.334510131 5.328867643 -2.041287113 -1.512516936 9.179247255 -0.05749662 -1.861354373 1.075054942 +1 0.138 0.436498824 3.441856421 5.373757104 -0.812648938 -0.548638046 8.655192169 -0.085933911 -1.444310023 5.287668727 +2 4.908 6.0902618 0.956128241 5.374407326 -0.235050846 -0.472308954 8.399636282 0.854451179 -0.75187022 22.4655755 +2 2.327 4.234316993 0.14965457 5.382546568 -2.066755371 -0.004297738 10.77430749 0.996271429 -1.098978442 6.671116912 +1 0.607 1.626859629 5.135483107 5.382959401 0.398788189 -2.181429175 11.0561473 -0.177553482 0.44883788 5.553609808 +2 1.368 6.255274137 1.62927794 5.390333419 -0.002711125 -0.757717631 10.73618889 0.612719545 -0.259197682 11.81662355 +1 2.674 1.771668048 4.249576493 5.391472584 -0.039309938 -3.03868427 10.72143064 -0.210562243 -0.310022475 2.772419989 +2 2.781 3.745256702 5.612616163 5.396856596 -2.769549988 0.069962716 11.04831831 -0.110720558 -0.310799539 18.48481943 +2 3.975 2.914151229 4.865504471 5.399855654 -1.570013764 -0.478380734 11.86668049 -0.203123995 -0.234957913 15.33392217 +2 2.54 3.558547257 2.29917281 5.403199608 -2.752427563 -0.826671905 11.83023665 0.324575904 0.361653786 19.68709996 +2 4.302 5.616190355 3.833126378 5.406335995 -0.2905677 -3.003900203 8.901908499 -0.166370542 -1.152886004 14.35441965 +1 2.127 2.196437718 3.241225328 5.409560683 -2.908624541 -0.355284431 11.98005777 -0.030688369 0.60211995 3.353303829 +1 0.441 3.249993739 3.386278068 5.413277535 -2.0444894 -2.200368153 10.55456701 -0.071539052 -1.316740257 0.510853691 +2 1.076 4.857557539 1.602869652 5.41355599 -0.266943115 -0.445356479 9.244796003 0.623560184 -1.247630981 29.89100491 +1 1.917 2.112301714 3.486037172 5.419993182 0.279121196 -2.787391411 11.30931314 -0.09686468 0.584128096 10.06688166 +1 0.869 0.461044173 1.741881848 5.421687265 -2.727063858 -3.222410975 11.68003332 0.565710319 0.229495302 0.015858647 +2 0.453 4.02843227 2.815256505 5.434323468 -0.831004785 0.600647038 11.16619083 0.113870513 -0.568819128 10.97055948 +1 0.009 0.193256139 1.054858343 5.434505289 -0.320334472 -2.060870493 10.93887053 0.824594464 -0.371557411 0.000542259 +2 3.291 6.174051033 0.216601951 5.436916286 0.336492461 -2.707213535 13.3129962 0.992198922 1.064163128 8.254009788 +1 2.032 1.841735047 1.515500514 5.441627267 -1.674733994 -0.956013708 11.11983626 0.658839484 -0.870660911 1.311857413 +2 2.727 3.028663455 0.10821647 5.456553579 -0.946671659 -0.288371582 12.82248711 0.998049342 0.155906098 22.1423067 +2 6.168 4.462544566 2.542291173 5.46332851 0.34577216 0.176472405 12.08171179 0.221873021 1.223757192 20.84357869 +1 0.075 0.123412712 0.507043488 5.470828522 -2.419441732 -1.078821984 11.54892885 0.957698598 -0.135456091 3.704442679 +1 0.079 0.536597323 3.035822298 5.481312303 -2.600983285 -0.115681998 13.77508128 0.034775833 -0.160433126 3.742405616 +1 0.944 3.818104363 4.760534749 5.488825718 -0.490108799 -2.604748582 10.72863425 -0.20981702 -0.734502972 0.337547886 +1 2.959 0.831647302 2.942658754 5.501126967 -1.876066392 -0.819382585 11.59789173 0.067158439 -0.3872122 0.745202455 +1 0.099 0.456056654 1.499333579 5.502128374 -0.64764536 0.053671911 13.96535507 0.665260645 -0.432342412 4.203540549 +2 0.917 4.274299396 2.900013326 5.526601952 -2.589534758 -2.45242964 11.59377493 0.082494928 0.038715962 4.191511226 +2 4.618 3.475889174 4.324507599 5.533407788 0.692682773 0.792999938 13.85326579 -0.214061933 0.918706726 8.135289913 +1 0.085 0.278200774 0.052868967 5.544348755 -2.347283354 0.801800847 12.11525364 0.99953421 0.18658095 2.137666698 +2 0.317 4.938233818 3.412316997 5.544357709 -2.111855114 -1.9248819 8.879759254 -0.078371813 -1.712281433 10.65506747 +1 1.356 2.044557514 0.149203891 5.545770946 0.928687584 0.079313318 13.20370904 0.996293828 1.604517038 0.720476026 +1 1.389 0.36780217 4.647543649 5.547858335 0.872187028 1.427628368 10.34198647 -0.214715203 0.157698655 7.963267814 +2 3.07 4.306119036 5.863501175 5.556953306 -0.141445152 -1.611365938 13.52203581 -0.069492954 0.436091642 26.1885049 +2 1.679 5.669751973 4.235839851 5.558590809 -0.342426522 -0.566348462 11.79340382 -0.209777331 0.380068501 15.26472244 +1 0.942 1.524129203 5.147900326 5.578578483 0.522542451 -0.340473448 11.4101603 -0.176121211 0.901895962 4.178728869 +2 6.424 4.512832827 5.659092339 5.599436914 0.386695867 -1.31509089 8.50662714 -0.103260634 -0.230160007 16.18193837 +2 2.626 5.466267954 0.089590151 5.60880397 -1.362912234 -1.031181991 12.2373023 0.998662804 -0.032125968 15.4357357 +2 3.21 5.021426822 4.233646875 5.612652236 -0.842759893 -0.708008339 12.51504977 -0.20964788 0.252200967 13.97173132 +1 0.519 1.286275393 2.022851038 5.627791004 -0.430654723 -0.69264047 13.75559686 0.444694867 -0.04508774 2.256760631 +2 7.344 2.106747515 0.109580462 5.631412713 -1.704961655 -1.506092888 8.540119943 0.997999888 -1.624567454 14.86844432 +2 3.969 1.028366403 0.831641274 5.654013585 -1.516339901 -0.919534925 9.376532257 0.888650018 -1.997354017 1.658475514 +2 2.401 6.108749558 2.739504746 5.657448164 -1.688173491 -2.079842904 11.34497976 0.14285085 -0.650779944 28.99043808 +1 1.268 0.535032137 0.562992236 5.661430759 -1.815889266 -1.360581362 13.04305665 0.948004198 -0.08159441 0.963401361 +2 3.86 1.554980587 3.187454889 5.667904008 -1.328547857 -3.145282228 8.293383279 -0.014383313 -1.396199079 14.50659091 +2 2.4 5.753175777 5.31661211 5.668399946 0.614888766 1.466824255 13.66322253 -0.154787238 1.033267129 23.75899302 +2 4.527 2.55856344 4.022327145 5.68762128 -0.84368597 -1.149078221 8.413375893 -0.191731459 -1.277771187 27.73525298 +2 5.157 1.752885444 1.03063231 5.692548589 -0.544715134 1.09101838 12.12488168 0.832134152 0.385941991 18.22645056 +2 3.174 7.078001101 3.972016979 5.692649803 -0.789378595 -2.58211494 9.085822144 -0.185854611 -1.653018136 16.2489937 +1 0.784 0.961835645 0.602868002 5.701613765 -0.558845358 0.187944453 8.508280688 0.940516349 -1.138810778 0.39009802 +2 0.654 5.863678488 5.67886809 5.706149939 -2.140113554 0.404758455 8.89528961 -0.100055212 -1.705334838 29.17212332 +1 2.039 2.607048571 4.812890711 5.721637938 -0.517471553 -0.981476346 10.97265767 -0.206726895 -0.517598927 0.144698093 +2 1.287 7.652509504 2.586584747 5.727067282 -0.636711521 -1.347485021 10.33999014 0.203724243 -1.204176937 8.065994673 +1 1.286 1.656556855 0.847360282 5.731558931 -1.413475852 -1.253235156 13.74957106 0.884553638 -0.609686911 0.126440198 +1 1.272 0.21984116 1.683892409 5.731828879 -1.637046722 0.638503688 10.86088241 0.590068253 -1.132091231 0.013626835 +2 2.113 7.413246303 1.851838535 5.739611881 -1.434517778 -0.471764877 12.50437674 0.518817855 0.007350554 13.80762187 +2 3.087 4.260434734 5.477408875 5.749054746 -0.051879505 -2.625571809 10.3678218 -0.131698874 -0.639183454 11.58261669 +1 0.213 0.322782285 3.07765336 5.752121587 0.095195921 0.866442006 12.37611644 0.020761187 1.077008406 1.347292944 +1 2.916 2.020453616 0.45050783 5.754737447 -1.984371959 -1.490096418 10.75417383 0.966515392 -1.154752391 0.59943816 +2 5.068 4.853323325 0.064983645 5.75642193 -0.01912277 -2.320553451 12.15991568 0.999296336 0.899406549 7.947763216 +1 0.706 2.481094839 5.955363637 5.761376995 -1.875207879 -2.388343202 11.6815867 -0.054065795 -0.320566772 0.002648673 +1 0.718 0.177194182 3.522695741 5.779059309 -0.14415025 1.237143874 10.85524006 -0.10558523 -0.283525607 5.078510972 +1 0.513 3.39079166 2.641034035 5.781921456 -2.908349164 -1.098777449 9.910310636 0.181715075 -1.115560882 5.801040298 +2 2.891 2.859585415 4.293483986 5.79650194 -2.932783002 -3.29826318 8.09699368 -0.2127724 -0.447922814 3.919532546 +2 0.056 7.554951242 5.705048152 5.800502871 -0.985153888 -1.229930092 8.704470824 -0.095786183 -1.584960332 12.38057621 +1 2.418 2.9259432 2.772029208 5.816506302 -1.893624315 -3.619795692 11.31021592 0.130304682 -0.63886632 0.813721602 +2 4.829 5.563329311 2.813922898 5.822467755 -0.793750562 -0.095299216 10.34043163 0.114373298 -1.322260453 8.877399175 +2 1.301 6.193611694 4.711417784 5.828086407 -2.793488833 0.333960193 13.61458108 -0.212250234 0.158006558 1.546112138 +2 4.642 3.633097814 4.469572475 5.834536452 -2.224981788 0.729508158 12.23941524 -0.217171695 0.153480698 19.2119607 +2 1.938 5.643966134 2.25024978 5.838184684 -2.586953554 -0.91567929 8.960414901 0.345702186 -1.420743539 3.025673065 +1 0.016 0.381681854 0.554297458 5.8396567 -1.696557908 -0.351694023 10.19467471 0.949573324 -1.71008497 0.460035514 +2 1.926 7.400216281 5.527941529 5.847292946 -1.77096642 -0.733577018 13.4434565 -0.12400026 -0.340638314 8.176520596 +2 2.882 2.863986741 5.078223797 5.85383355 0.070530429 0.092866927 12.2729552 -0.183888203 1.027733611 2.613441094 +1 0.013 0.743061844 1.855262203 5.856263189 -1.169882711 -0.494571412 13.64709349 0.517345574 -0.450014138 0.694118801 +2 6.744 2.716934452 2.13730491 5.861250663 -1.386137071 -0.076321492 8.658476405 0.394786872 -1.703479243 14.23172956 +2 0.763 6.981492089 0.483524429 5.862353494 -2.052108215 -1.915977212 8.602125603 0.961486998 -1.566667907 1.354251331 +1 0.157 3.305214988 5.070907153 5.868575761 -1.960467778 -1.544261145 10.53025926 -0.184664751 -1.373738276 0.321081036 +1 0.247 3.557017285 0.934208881 5.868954542 0.972940674 -2.603601861 8.492433079 0.860759367 0.230591869 0.14954148 +1 1.556 2.777217823 1.003080985 5.872615333 -0.592055063 -1.175726131 13.78282601 0.840541954 -0.21109517 0.197814347 +2 1.101 6.435113913 1.046883422 5.886579408 -2.017228264 -1.675251085 12.89345278 0.82709142 0.044990466 10.51823952 +1 2.758 1.597627002 4.700326353 5.895737628 -2.570442927 -1.799849907 11.61598166 -0.212735706 0.040767019 0.987503795 +1 3.465 1.405057926 2.229706017 5.900094498 0.628709766 -3.155708077 11.043194 0.354602913 0.635703436 3.197343709 +1 1.978 2.251268158 3.027795301 5.90341022 -0.668566636 0.644042631 11.4796698 0.037503163 -0.154453853 1.180042969 +2 2.052 3.510921767 2.015061303 5.906171191 -1.800476491 0.421324324 8.190491479 0.448089007 -1.303933968 14.51805396 +1 0.86 1.708586265 0.417162505 5.909021765 -1.631872775 -0.183554714 10.60785577 0.971247235 -1.376212673 4.584726088 +2 1.201 5.393834297 2.567417509 5.92742458 -1.074006515 -0.194718878 10.96668477 0.211552033 -0.908002584 1.87179004 +1 2.997 2.536032104 2.859006803 5.933020235 0.82339016 -1.352399943 10.44401141 0.097530327 0.209435483 2.64773784 +1 0.464 0.906740586 0.963027212 5.940418844 -2.910955494 1.529509553 13.15740856 0.852441103 0.601764902 0.544756016 +2 6.936 1.723780678 5.047823399 5.945564104 0.161348817 -0.992727538 11.98193126 -0.18706427 0.994671192 10.21741654 +1 0.23 0.471800081 4.387806523 5.947719201 -1.023367881 -3.006822517 8.904119794 -0.216004048 -1.721357782 0.009659804 +2 5.828 2.541484637 4.629253473 5.962056245 -1.926233221 -2.330817078 9.161341386 -0.215271477 -1.902995336 12.58714839 +2 1.848 6.610481628 2.972835157 5.975449371 -1.21381869 -0.322845418 11.21319838 0.056497457 -0.72104688 17.30840593 +2 3.671 5.317519187 0.698166768 6.005870044 -1.096766529 -2.726776404 11.6240367 0.920717659 -0.301834364 22.40449753 +2 0.271 6.17310697 0.75399798 6.021993521 -1.27961599 0.548496375 12.10024754 0.907905061 -0.064588297 11.9973141 +2 0.839 6.449801243 4.077165271 6.034194493 -2.409738411 0.107366997 12.7082776 -0.197426134 0.321697868 25.33030978 +1 0.175 0.391740638 1.830143588 6.05018372 -1.727878603 -3.872331103 12.62433763 0.528132101 0.010632456 0.023712508 +1 0.863 1.27242427 5.84056625 6.053615126 -0.288424822 -3.168090398 11.89257233 -0.073333232 0.49701487 2.704149711 +1 0.283 2.84737373 2.518791762 6.062309149 -0.676053857 -3.368233486 12.9001803 0.231584235 0.319081257 0.000811153 +2 4.156 1.657230814 3.877728985 6.065429967 0.436978429 1.167187524 11.55329667 -0.173150236 0.95245885 6.069892363 +2 6.345 0.159370151 1.455017333 6.075200654 0.506842339 -2.239418113 12.35830506 0.682675782 1.463851326 2.779462885 +2 0.886 5.807945758 5.983211648 6.091985653 -2.122834417 -3.110875518 12.56132771 -0.049387362 0.148529816 6.060916758 +2 4.431 1.128262411 5.03373711 6.094113185 0.423666885 0.023793722 11.43282816 -0.188490272 0.834559199 9.939166464 +2 0.338 4.006660743 0.090300685 6.101198207 -0.200328285 -2.938189088 13.76460723 0.998641518 0.165009669 0.392582302 +1 0.033 1.333373082 2.421232041 6.111277562 -2.25131286 -3.236156672 12.60790438 0.272446312 0.221889775 2.304812365 +2 2.158 7.053728757 4.676391923 6.111484379 0.585556927 -0.981142928 8.044050489 -0.213701544 0.363737103 1.043453101 +2 0.168 6.292886017 0.545059766 6.111746299 -1.736216042 -0.395566732 8.936723582 0.951215315 -1.869596177 7.034666233 +2 2.82 3.986427159 2.170665171 6.117618142 -2.349080161 -0.681199653 11.80935766 0.380256557 0.014771179 5.411383243 +2 6.533 3.593987398 1.059459701 6.128250366 -2.263137338 -2.228323108 12.81955008 0.823147135 0.198367151 14.25196201 +2 2.07 5.246459267 2.658632966 6.131086038 -2.921219476 -0.072602087 10.71275283 0.17467713 -0.497659915 18.80468138 +1 0.18 0.319381372 5.418399868 6.136734951 -1.116850036 0.951879248 13.32471725 -0.140439261 -0.172749538 0.707937067 +2 0.621 3.960667819 0.831968962 6.139767939 -2.230985516 0.627137381 8.885146719 0.888565293 -1.647774438 13.51518263 +1 0.475 1.030691879 3.81295561 6.142953584 0.230017115 -0.83599328 13.77840647 -0.163142137 0.579108083 1.321528242 +1 2.175 3.165138827 4.956487471 6.146963821 -2.957046535 -1.810026897 11.88564968 -0.195774851 0.593618821 0.425625633 +2 2.632 3.019666875 2.892667758 6.15423082 -1.213512273 -1.576859303 11.65088714 0.085167795 -0.327442804 29.92511858 +2 6.256 3.552596235 0.705387592 6.156871405 -0.270014635 -2.542313567 8.156143484 0.919110263 -0.56433035 0.646623725 +2 4.458 2.467635696 0.877750468 6.158200405 0.974050836 -3.091713722 12.90475296 0.876449135 1.770461774 22.0111116 +1 0.642 2.667973543 0.794819654 6.15821634 -2.640016315 1.261576906 11.20514242 0.897986475 -0.272770812 0.518918753 +1 0.031 0.005961938 3.707833454 6.162654037 -1.562461773 -1.967970886 12.12968338 -0.144683783 -0.093807535 0.372319716 +1 1.152 1.664986438 0.099845443 6.164081062 -1.256371483 -2.595140467 13.96356675 0.998339309 -0.778244877 0.109605376 +1 1.845 2.882339535 1.983369745 6.165593037 -1.693291761 1.371673723 10.72303578 0.461886646 -1.26168393 7.201599406 +1 0.895 0.977644513 1.617219049 6.188650388 -0.536361964 -3.277934271 11.51367096 0.617679256 -0.015784723 4.874095459 +2 1.324 4.584510848 5.596806739 6.195874962 -2.663313111 -0.313908895 8.037331868 -0.113232425 -0.642577124 7.528655208 +1 0.49 0.077946604 2.814505797 6.20181409 0.17599559 -0.482816208 10.2369954 0.114153504 -0.512802241 0.147870695 +1 2.442 2.49954686 5.981486245 6.210604526 -2.019687146 -3.446011595 13.48264457 -0.049677111 -0.292148615 4.269592067 +2 0.054 7.270042635 4.947381694 6.21090716 0.08761138 -0.691463685 12.65018688 -0.196571863 1.083988815 25.00518283 +2 2.711 3.760979631 2.019805551 6.214174869 -0.741398293 1.38448684 13.91585158 0.446021951 -0.45580676 25.40759702 +2 6.285 3.225180572 4.320028292 6.224529795 -0.757810711 1.689848463 8.498970228 -0.213889566 -1.288522244 1.302365751 +1 0.308 0.573090638 4.478264625 6.22782258 0.687627765 -1.413962853 13.0325865 -0.21720866 1.527981491 0.420727632 +2 5.434 3.350790161 1.525943831 6.242223538 -1.761643485 0.113041462 9.224599296 0.654673046 -1.961874956 21.32463697 +2 4.039 3.590010119 0.814589005 6.244885411 -0.628513345 0.649637806 10.40211995 0.893019233 -1.147170895 1.540175041 +2 5.978 5.141756356 2.312490273 6.24493313 -1.674530357 0.585468883 8.684188256 0.318844711 -1.732695248 26.63962639 +1 0.074 0.542973076 1.233279284 6.25160537 -2.223608488 -0.115564225 11.58880265 0.765098226 -0.23533807 0.436713247 +2 5.538 4.010721977 3.217966934 6.253870828 -1.887682328 -1.067020619 11.6910652 -0.023710639 -0.309447966 9.707047732 +1 0.762 1.84759288 1.898316278 6.269282557 -0.995996476 -1.638701179 8.183715884 0.498780465 -1.16309274 0.722834394 +1 1.205 2.541328655 1.999018755 6.291872189 0.336175568 -3.164897292 8.002548876 0.455075936 0.181857851 1.941043927 +1 0.054 2.029729191 2.948566235 6.29773499 -1.442965451 1.175986612 10.23646611 0.065058732 -1.680115501 0.191262019 +1 1.104 2.896144664 3.611152432 6.298222094 -1.187633278 -1.782136414 13.05607334 -0.125304529 -0.045014026 4.480228325 +2 0.912 5.230990588 2.043228315 6.310420353 -1.901467661 -0.296287109 11.133133 0.435812402 -0.808699288 8.263592872 +1 0.592 0.923426162 4.400996294 6.322370801 -1.997612397 -1.141391513 13.953729 -0.216293705 -0.727877524 5.128925504 +1 1.546 1.667098233 1.990095403 6.325271674 -1.343991042 -0.819838763 10.74762713 0.45896017 -1.219804163 7.725052325 +1 0.057 0.29131341 5.173978944 6.325382741 -2.516969555 -2.620570593 9.478198571 -0.173047767 -1.583365036 5.584464102 +1 0.525 1.068833536 1.115670014 6.345987804 0.117094544 -2.552501312 10.48873199 0.8050817 -0.368591809 1.019231414 +1 0.2 0.977292238 3.248789859 6.35259171 -0.483655887 -2.492863198 13.25700847 -0.032932884 0.305821002 0.340574251 +1 0.966 0.747498151 0.762052466 6.357145746 -2.240189245 -1.102842475 12.73965294 0.905984463 0.200825636 2.544152404 +1 0.245 1.003748592 3.379358849 6.358231023 0.243705509 -0.261409471 11.81456482 -0.06969732 0.971757065 0.015760402 +1 2.092 2.772963813 5.805362748 6.377243228 -1.502808527 -0.777058763 11.4691467 -0.079210675 -0.541621282 1.442089119 +2 0.61 5.486150228 5.820839224 6.384941665 0.925181016 -2.060008938 11.8586943 -0.076629689 1.558604174 12.16903473 +2 2.963 5.649125486 2.27368026 6.414352338 -0.1655881 -1.943591462 11.86569404 0.335570987 0.599573735 7.074262041 +1 0.003 2.937753939 5.201648953 6.418737708 -2.267416221 1.709757938 8.060262327 -0.169692515 -0.971836207 2.103637586 +1 0.083 0.369158566 4.04169995 6.419888028 0.578109098 -0.061314205 8.668222518 -0.193827749 -0.180763447 0.002811354 +2 1.577 7.01960836 0.914400156 6.422215409 -0.296772002 -0.702808052 10.08928593 0.86635666 -1.079655151 17.61625341 +2 1.186 7.644044109 5.825425307 6.434127809 -0.999209057 0.983393632 13.75524536 -0.075863961 -0.468339089 11.95614278 +2 1.198 7.157383158 5.001420693 6.4394956 -0.03925968 0.292358972 12.76305943 -0.191649607 0.94146944 6.890895129 +1 0.1 0.350990331 3.938771634 6.451487215 -0.276606248 -0.148451483 8.074235162 -0.181627137 -0.491569512 0.463216353 +2 0.233 5.607276064 3.866043738 6.46105936 -1.857491221 -2.329289223 13.07122737 -0.171421879 -0.083939975 30.54254406 +2 0.43 6.077769987 0.47960689 6.461304189 -2.069008824 -1.298834537 12.94557425 0.962101385 0.050521596 23.71547349 +2 2.732 3.782100404 4.188404451 6.468122268 -2.294098272 -3.068476463 13.60624453 -0.206721312 -0.243295392 1.612789164 +2 0.214 6.187331386 0.751260217 6.46994338 -1.832680653 0.821101968 8.555033995 0.908553774 -1.610926059 9.067157925 +1 0.766 0.831702596 3.546618791 6.475433426 -2.941571017 1.267507027 9.269722821 -0.111103788 -1.186693553 5.282918009 +1 0.025 0.064012635 5.895391028 6.488940653 0.126765743 -0.610706881 10.22481418 -0.064142887 -0.570254221 0.057488647 +1 0.229 1.096115531 1.78063181 6.50496347 -1.270718832 -2.865015922 11.72380344 0.549279863 -0.289764582 7.740728048 +1 0.167 2.335916288 2.593609458 6.529928745 -2.929739302 -3.303565555 9.541373449 0.200865551 -1.203482619 2.963056897 +2 0.278 5.753737309 1.268470925 6.537377983 -2.97275382 -0.59149037 13.74775791 0.752596441 0.21160395 6.103041546 +2 1.637 4.721164503 2.252916706 6.541366038 -0.28355134 -2.769041537 8.291466209 0.344547888 -0.703429218 6.065956842 +1 1.596 3.329894919 3.405233619 6.542545288 -1.644264166 -0.628802693 12.56740505 -0.076528503 0.002697013 2.247075769 +1 1.301 2.091697167 4.999096928 6.55242783 -1.781907001 0.087465005 13.60955693 -0.191870665 -0.474328977 0.371406634 +1 0.078 0.768299583 5.525440108 6.555248685 -2.429087657 -1.356190786 13.10942446 -0.124385627 0.202403175 2.005974708 +2 4.738 5.779239204 0.630530355 6.564739096 -0.618874771 -1.691555269 12.03587236 0.935043352 0.282436085 4.809018993 +2 5.218 4.159781287 0.266765843 6.573178621 0.089098646 -0.389052445 13.11267072 0.988181462 0.943433379 20.1896451 +2 2.056 4.581016702 1.927448422 6.580262811 -0.809571651 1.215378387 8.92380516 0.486171742 -1.601107523 17.35193796 +2 7.289 1.698993407 3.989777426 6.58193882 -2.97279438 0.810339365 9.111132748 -0.18800075 -1.119213065 5.494859053 +2 4.515 2.318597073 4.7100397 6.596136652 -0.498840713 0.306709197 11.43696493 -0.21231185 -0.051210604 22.84707853 +1 0.603 1.597680532 1.563736163 6.604067126 -1.431307955 -0.814855074 8.434940191 0.63947813 -1.539112743 0.633583634 +1 1.196 1.593403352 5.530754508 6.608143089 -0.074359145 -2.657704808 13.84832304 -0.123566384 0.210553572 0.133841646 +1 0.782 3.067143838 2.748198731 6.612877129 -0.047110796 -1.978831353 8.201033994 0.139482376 -0.387220761 1.224653487 +2 3.188 2.913837568 3.747077055 6.617040419 -1.595193671 -1.856608251 12.60964634 -0.151894509 -0.000638647 19.15121046 +2 0.844 6.627139874 4.86360421 6.62180466 -0.712304528 0.909492833 9.790160793 -0.203262581 -1.587566746 18.84834891 +1 0.067 1.66235227 1.422620247 6.62991206 -1.427918445 -2.585356491 8.549211717 0.695225587 -1.630372446 1.827779393 +1 2.135 3.196323049 4.231857485 6.634601419 -1.756395954 1.916405001 8.18574248 -0.209541405 -1.308534135 1.165593787 +2 0.194 5.715630099 3.036129729 6.635018028 -0.596279397 -0.710999853 9.396876559 0.034671619 -1.561178607 7.00554144 +2 3.203 3.008722472 1.709679126 6.639443038 0.209790009 -0.107916242 11.6092365 0.579273187 0.784119855 9.115281603 +2 3.237 6.310510776 3.118731171 6.649223224 -0.041853586 -0.631446375 10.62866878 0.007329741 -0.400569991 5.145839941 +2 0.797 7.055514933 0.986088711 6.674588237 -2.150539367 -2.267094628 11.59097107 0.845637411 -0.275766133 0.574899019 +2 0.639 5.351488438 2.843432356 6.685081541 0.106903209 0.095408865 10.39884644 0.103312524 -0.455239123 7.852690431 +2 1.479 6.06531082 1.119489362 6.69010745 0.42821937 0.371366277 8.227728239 0.803828852 0.050145663 7.740368399 +1 0.847 0.707719198 4.362328967 6.70492046 0.452869274 -2.492699853 12.62618252 -0.215332713 1.43575917 0.176511916 +1 1.75 1.887081885 0.475343268 6.705306871 -2.299407565 -2.149849969 9.670023469 0.962764631 -1.716177553 7.600488216 +2 0.862 4.537307316 2.392403142 6.729439461 0.170302614 1.441812258 9.221680663 0.284670045 -0.809965946 15.90861578 +1 0.269 0.190509968 1.838641056 6.731064968 -2.489969519 0.391999779 13.39254621 0.524487111 0.071215209 1.002987355 +2 0.309 6.439216701 5.08794508 6.741088648 -1.829671835 -1.374242243 13.39446753 -0.1828447 -0.290399566 13.67374663 +2 5.429 5.625813972 0.674810533 6.745059031 -1.201922856 0.207193589 8.501207642 0.925814517 -1.535709874 12.36212597 +1 1.065 0.741056102 2.765317372 6.747887782 -1.816718295 -0.833810922 13.79619794 0.132881272 -0.635512814 4.797705088 +1 0.215 0.25308605 2.35249028 6.748442257 -2.085658466 -0.761188436 12.49265505 0.301689321 0.126923622 1.060882826 +1 1.008 1.871103237 0.73833265 6.748877867 -2.053766869 -1.261297474 11.74861941 0.911588685 -0.201755595 0.081524316 +1 1.951 2.141741873 5.310102256 6.753922758 -2.458762713 -0.215643614 13.68456442 -0.155670192 -0.193683499 0.051387002 +1 1.737 2.963183216 5.285866837 6.77986026 0.062097336 0.064038705 13.96950529 -0.158917951 0.228934682 0.068752627 +2 2.717 4.529925477 1.364177688 6.786219187 -0.977479656 1.205055385 12.48575768 0.717450673 0.16766169 6.817156152 +2 1.018 6.910281172 1.429813293 6.830536551 -1.154058218 -0.681311747 10.75750222 0.692452887 -1.150243658 4.999330743 +2 2.402 6.852988755 0.374762266 6.83227932 0.570375785 0.877534269 8.212643063 0.976756036 0.18892723 20.86472598 +1 0.053 0.309890298 1.051730558 6.840743882 -2.990673534 -0.848143259 13.42808829 0.825575519 0.500787913 0.316321226 +1 1.861 2.794760051 0.748493773 6.842183177 -2.222188117 -2.532264726 13.2332681 0.90920716 -0.009496225 1.751652957 +2 4.399 1.795035187 4.111747797 6.845896061 -1.77157472 -1.906928601 11.8239245 -0.200638134 -0.243094674 3.271259975 +1 0.62 2.662389658 4.761496257 6.853036677 -2.353744621 -2.101642013 12.37563861 -0.209764836 0.27302875 0.190286209 +1 0.325 0.360142262 3.261885917 6.860833882 -1.625171438 -1.15606162 11.31501321 -0.036789563 -0.684488125 2.155027629 +1 0.554 0.397038313 4.531616573 6.865308449 -0.772304558 1.192439937 13.37766964 -0.217075982 -0.009230868 1.204002038 +1 0.004 0.466519233 3.742989066 6.871759021 -1.678692102 0.386433912 8.056545824 -0.151161123 -1.195366647 4.868525713 +1 0.226 3.076485945 5.78050687 6.877788062 -0.724817752 -0.056251018 10.98951332 -0.083344658 -0.669059953 0.186314863 +1 0.111 0.230140193 3.45884622 6.88240907 -1.691285361 -1.001868388 11.04296247 -0.090191453 -0.945379521 5.007097281 +1 1.831 3.149533305 1.481770033 6.894312813 -0.089624869 -3.038739155 10.39940025 0.672195924 -0.650985578 3.989053114 +1 1.639 1.672941567 2.165708053 6.895067821 -0.678013661 -2.43974377 10.91428559 0.382414413 -0.708446462 1.238881682 +1 1.792 1.976320405 3.205346112 6.896875156 0.786337363 -3.650873436 8.045183858 -0.019876256 0.517731236 2.274562271 +1 0.374 1.65251266 3.36668509 6.905736593 -0.833722716 0.372527631 13.8289895 -0.066295618 -0.437116178 0.194005588 +1 0.002 1.569388227 5.216213055 6.913244225 -0.956869012 -0.450694642 9.146813172 -0.167888616 -1.779007762 0.530167121 +2 2.791 3.52191048 4.542910031 6.94730001 -0.361678975 -2.542932231 11.31872593 -0.216969471 -0.036288443 3.419601112 +1 0.521 0.859238919 3.848734326 6.956087165 -2.417295316 -1.772095383 12.89512802 -0.168799249 0.283834931 0.001374821 +1 0.067 3.422000713 0.293626902 6.956976395 0.431104555 0.16575609 8.42396878 0.985692358 -0.121746676 5.170300139 +1 0.731 3.828697788 5.866342858 6.958983802 -0.468858806 0.041430878 8.124044754 -0.069016645 -0.718660808 2.028659868 +1 1.258 2.472678402 4.188936092 6.978798579 -0.523389186 -2.817508888 10.81057001 -0.206758547 -0.683769222 0.822825005 +1 1.221 1.862868362 4.895518625 6.99450817 -0.697979399 -2.060346875 13.50084632 -0.20085279 -0.048430742 0.279637955 +1 0.566 1.272925842 5.979360283 7.000058631 0.442421614 -3.256108467 12.45555808 -0.050034152 1.421995745 0.145538244 +1 0.949 0.524559869 3.24259041 7.006371821 -1.56645396 0.326897462 12.6295041 -0.031094318 -0.001982828 6.376639934 +2 4.406 3.295064448 2.780486401 7.043494839 -2.067329487 -3.117951574 12.54745125 0.127067464 0.120581658 18.80899795 +1 0.927 3.704585085 5.852521144 7.062225343 -0.911834223 1.602125516 13.68202439 -0.071332406 -0.351037801 0.637084188 +2 2.965 4.221164861 0.991558019 7.063248237 -1.628250682 0.601728771 9.317430543 0.844004906 -1.992593749 5.226731912 +2 0.928 6.747448469 3.234134589 7.06763488 -0.390796914 -1.739426315 8.118324063 -0.028573302 -0.642199963 23.50502426 +2 2.996 2.89934283 1.646033398 7.069319594 0.778192215 -1.409266602 11.31236813 0.605802426 1.013514641 10.46846579 +1 0.338 3.35719686 3.860737499 7.076951858 0.416084975 -0.69501315 13.12875515 -0.170625825 1.250168644 0.553993226 +2 3.027 6.705732299 0.861971235 7.078352909 -1.021552696 1.311373471 12.08089023 0.88068739 0.031531264 20.75490971 +1 0.512 0.373558632 1.488107603 7.088412066 -0.731736841 -0.991798488 8.772121119 0.669698369 -1.462635984 1.43572971 +2 2.755 2.907318837 2.613360108 7.089072003 -0.17240952 -3.449680633 9.33051449 0.192858068 -1.16711713 18.32300595 +2 3.849 2.729528425 4.191991698 7.099110173 -0.849245389 -0.047570931 10.92775155 -0.206971238 -0.818552915 0.42307727 +2 5.107 4.355567372 2.410124213 7.10547974 -2.919429596 0.880348792 8.427442798 0.277148853 -0.762882801 5.416077906 +1 0.047 0.185061632 0.724259548 7.118238146 0.335817142 -3.158913411 13.99274004 0.91483921 0.473466095 2.314462777 +2 4.298 2.185217094 3.341020185 7.121996987 -0.477299185 0.327254569 11.66318286 -0.059295733 0.159727878 10.10264294 +1 0.184 0.326269392 5.167576071 7.126729477 -1.931908443 -1.934836747 13.35297432 -0.173810464 -0.229250653 0.570442342 +1 0.177 0.106015818 3.114325961 7.129819886 -0.841630441 0.535808148 13.34260988 0.008754162 -0.032177035 2.708222635 +2 2.844 4.34673909 0.575506785 7.136967417 -1.870929183 -2.958916688 13.8213001 0.945705637 -0.644656676 22.6160332 +2 1.498 5.57756529 1.596165096 7.140298663 -0.910291539 -1.196979949 11.12487194 0.626300019 -0.660744952 10.41555889 +2 1.603 6.031757398 5.491559009 7.152284479 0.974769808 -0.02829696 12.70105136 -0.129561932 1.818516939 24.68985777 +1 0.029 0.091333539 5.755288306 7.154927421 -2.919784737 -1.398230674 9.754845349 -0.087522591 -1.166014111 0.042391189 +2 3.126 5.341363718 2.895779158 7.156022571 0.308610238 1.341940135 10.2436656 0.084034532 -0.379299255 14.20978233 +1 0.707 1.687226247 0.370030077 7.175101078 -0.376167732 -1.485540136 12.65870486 0.977335346 0.628381358 0.051371515 +2 2.811 4.445177593 4.588160902 7.181471016 -2.224933361 -0.162920634 9.055887363 -0.216272627 -1.726301265 8.860475914 +2 6.868 1.512235893 2.587016218 7.19098372 -0.462909142 -1.655035096 12.29785896 0.203548498 0.517613847 15.26523445 +1 0.711 3.497261905 3.574354471 7.197378732 -2.799485695 1.120218285 11.15514346 -0.117330167 -0.176579825 0.141870973 +1 1.582 1.87252909 1.217850217 7.198383024 -0.660856485 -2.770103549 10.8008768 0.770503967 -0.807262988 1.995466857 +1 0.594 0.788078425 2.447570031 7.201055198 -1.656208026 0.392347929 9.40474329 0.261334486 -1.99615395 2.320762843 +2 1.567 4.397508059 4.576452057 7.213757068 0.450266723 -0.193427849 11.55083026 -0.216494084 0.962366522 6.823578428 +2 2.433 3.315246475 1.257501791 7.223255109 0.736979754 -3.120331703 9.505033275 0.756518506 -0.324726788 20.19728047 +2 4.056 3.28934701 4.812141098 7.229704669 0.827287122 0.317618061 11.54106157 -0.206774669 1.254932517 8.928963411 +1 2.754 2.058930079 1.320318368 7.237157598 -1.136374169 -2.016861075 9.040057908 0.733757922 -1.834016933 0.618039735 +2 1.422 4.79857836 2.505792993 7.237325241 0.613645675 0.39133002 13.346591 0.236979316 1.286610347 11.00071993 +1 1.387 2.752221905 1.907737324 7.242360873 -2.607594977 -0.554695799 10.8077048 0.494706676 -0.695744816 7.074930658 +1 1.034 2.442194069 5.070262285 7.280169282 -2.230811393 0.752058522 12.45480623 -0.184732827 0.203800152 2.486553214 +1 2.428 2.06223117 1.784305971 7.286117055 0.660487389 1.840726069 13.36133272 0.547716192 1.313813627 0.824263937 +1 0.196 0.989824426 1.927663069 7.287450104 -0.322855726 0.001332957 13.46655899 0.486078718 0.304186368 5.671635846 +2 5.802 4.832976161 1.01904992 7.293118768 -1.783204531 1.498044045 10.97434344 0.83569056 -0.998755321 8.197582916 +1 0.009 0.06025099 1.252847568 7.296141469 -1.386921188 -3.394434384 10.2656978 0.758175772 -1.649920132 0.040180008 +1 0.355 1.620637847 2.377182073 7.302969196 -0.348457645 -2.171380883 11.16188089 0.291147948 -0.17590751 1.248922757 +2 7.449 0.779955578 0.585756779 7.339621285 -1.223624492 -0.084364919 11.01544337 0.943787899 -0.920470951 14.18170547 +1 0.108 2.330770503 0.842452459 7.341271402 -0.822926254 -1.348004836 9.165675613 0.885839665 -1.699759407 2.406720756 +2 3.473 2.570965566 5.681888224 7.341580424 -0.846778291 0.659644885 12.216969 -0.099564177 0.190427495 4.381921718 +1 1.173 2.506215906 0.567701875 7.341812253 -1.107312668 -1.538124216 9.815015558 0.947144717 -1.819319202 2.220072193 +2 4.215 2.106144525 4.616445389 7.348484118 0.55417299 -0.67925351 12.5345816 -0.215620647 1.525735016 1.664888667 +2 5.555 3.385181167 1.576932503 7.375706166 -0.283493791 -0.477322507 8.631305477 0.634130612 -0.981086068 23.47951967 +2 1.629 3.724503999 2.592138966 7.382247712 -2.545503369 0.380329791 13.68671608 0.201463507 -0.126039049 0.848305065 +2 2.12 4.748529087 5.32744205 7.384496456 0.430309795 -2.174710882 8.188647358 -0.153308627 0.088698918 7.0504018 +1 0.217 1.036247903 3.076267846 7.401324919 -0.683725988 -0.0595664 11.44743 0.021219985 -0.195050122 0.065632439 +1 1.12 1.263958445 2.687142363 7.41165529 -0.444427696 -0.111245477 10.92619507 0.163358842 -0.499264812 0.588419035 +2 3.268 3.185638299 2.666814872 7.419266174 -1.118216631 0.238602093 8.823756336 0.17141828 -1.72408036 1.824879818 +2 1.293 5.774435452 1.525610391 7.420687409 0.070967414 -1.075227669 10.38682317 0.654806296 -0.500935507 5.708507836 +1 0.452 0.917866071 1.452168241 7.432509961 -0.3874494 -0.337397736 12.41319753 0.683785741 0.610463814 4.822452427 +1 0.57 0.139192668 5.699779368 7.45436328 0.590552686 -3.133296188 8.645796313 -0.096647547 -0.154809168 0.691045642 +1 0.047 1.252636455 1.277576345 7.468998314 -2.500172956 -0.938095095 8.131507158 0.749323633 -0.872310269 3.317195231 +1 0.108 0.021161587 0.451601785 7.477663821 0.148806082 0.082421569 8.780380568 0.966354236 -0.651204393 2.721298015 +2 3.887 5.486142776 4.861451969 7.485321111 0.337192369 -3.081393207 13.00151915 -0.203418788 1.23764631 4.36273457 +2 3.741 3.25374996 5.777407892 7.499888375 -0.566294846 -0.236464575 11.22914238 -0.083859003 -0.305058779 20.45198785 +2 3.253 5.613719709 5.431663774 7.505861944 -0.658274542 0.172730398 8.854616627 -0.138499685 -1.453566745 13.4802808 +1 0.503 0.059236342 3.008262271 7.507911585 -1.379866938 -1.772906127 11.38447336 0.044190196 -0.60265836 1.885587138 +2 0.132 4.355295599 3.11323889 7.512246351 -2.381779427 -0.548554677 10.37182165 0.009106261 -1.272871308 12.51575381 +2 4.497 0.449598873 5.519841674 7.512885467 -1.923694982 -0.292571562 8.449955927 -0.125246559 -1.499690173 1.512982097 +1 1.227 1.201512949 5.732926893 7.513253542 -2.843867028 -2.446215651 11.13430526 -0.091211265 -0.155060259 2.86975841 +1 0.539 1.364098046 4.622582535 7.513410617 -1.010581859 -0.053765266 12.9275731 -0.215457507 0.088331374 1.114544856 +1 0.402 0.521640786 2.483870603 7.513787547 -0.422563254 -1.659521629 13.33076262 0.246114149 0.311703696 0.128834789 +2 3.224 2.536141624 3.996498699 7.520980035 -1.827449996 -0.061068077 13.35895324 -0.188792569 -0.265236452 9.853255642 +2 3.575 3.60016311 5.612772284 7.538412467 0.509776678 -1.206157403 13.69373475 -0.110695685 0.917024565 9.05141284 +2 1.85 4.707643048 5.33425657 7.539608763 0.552808296 -1.515345167 13.00386529 -0.152372105 1.430895244 12.63367103 +2 3.204 5.711665325 3.041025742 7.540752752 -2.133422353 -1.804550196 13.06950647 0.033014347 0.030217556 22.10110442 +2 2.243 4.006222172 4.445875147 7.584558934 -1.334627544 -1.316032561 8.592774303 -0.216986505 -1.645637379 8.420063659 +2 0.801 7.619277835 1.430807298 7.5858895 -2.152391218 -2.317941592 9.391700133 0.692069106 -1.835040526 12.83495798 +2 4.25 5.88357243 5.446294776 7.605240706 -1.748231621 -3.082830015 9.404989937 -0.136342982 -1.984103838 23.12675368 +2 1.164 4.085388791 3.73040247 7.608786542 0.641706943 -0.822586103 11.31313093 -0.148877142 0.910810003 6.052404945 +1 0.116 0.605498569 0.735811788 7.627320416 -0.290384742 -2.040291268 8.639781779 0.912175036 -0.993711849 0.001739305 +2 0.166 7.845576815 2.28957525 7.633687647 0.302700745 -0.209000222 11.6010188 0.328711768 0.867226876 10.88589072 +2 1.931 5.453684507 5.738395982 7.646814768 -1.84505671 -0.49042593 12.70432632 -0.09031059 0.02787342 19.901399 +2 4.855 4.167797846 3.842601013 7.647918707 -1.393143871 -0.234893146 10.2575664 -0.167852086 -1.657076727 12.15017311 +1 0.006 0.360711697 3.819771498 7.661769524 -2.861731507 -2.00636809 8.866840373 -0.164244354 -1.124571034 0.592386686 +1 0.605 3.208337069 5.450127829 7.665793976 -1.441469958 -0.593412143 9.678171149 -0.135775042 -1.959716352 0.054413501 +1 0.073 0.056253935 4.928434155 7.689367622 -2.525185848 -0.041017064 11.71433392 -0.198187263 0.080344654 0.67686102 +2 0.137 5.023282503 4.29460584 7.691927343 -1.56570886 -1.48365408 12.2854472 -0.212822941 -0.03918722 12.45229857 +1 2.01 0.744976515 3.08132313 7.694495357 -1.592175086 1.092797713 9.58529752 0.019547785 -1.986915858 0.001478915 +2 0.921 7.681066277 3.459804744 7.700066754 0.360046857 -0.945559611 9.07308993 -0.090429644 -0.586474467 11.68670202 +2 0.539 7.265904826 2.640430612 7.703290588 -0.193958013 0.292692142 9.644027474 0.181957064 -1.168805143 11.89387962 +2 3.452 6.402405683 0.593536665 7.71128583 -1.699709122 -0.332029463 10.31625795 0.942311283 -1.619963529 17.96005033 +1 1.242 2.315391631 3.281110006 7.720196681 0.57802329 1.499539586 10.52730975 -0.042383575 0.095031105 4.947169639 +1 2.576 2.657454239 1.464881071 7.729871355 -1.281617635 -2.556722103 8.959758374 0.678823858 -1.85229119 1.415633458 +2 0.28 4.217734767 3.795581771 7.732847703 0.473206554 -0.131516021 10.33698801 -0.160280371 -0.156256592 11.01182502 +2 4.193 1.649976604 3.428069549 7.742940662 0.384250952 -3.331108716 11.33376221 -0.082429618 0.706643014 5.738307909 +1 1.29 0.777509577 3.190251117 7.750902277 -2.557470257 -1.094226408 12.98985686 -0.015246218 0.360194338 1.733045638 +1 0.091 0.697687209 4.223641077 7.753304346 0.892155975 -0.557602869 10.1962905 -0.209042724 0.061570017 5.322341949 +1 0.936 3.165659078 5.238731406 7.754203297 -1.233442497 0.137301222 8.370178186 -0.165049561 -1.437209674 0.316825071 +2 4.097 4.796718513 4.329311179 7.757815564 -2.616409151 -1.344986055 11.46084254 -0.214241615 -0.052709234 13.61055948 +2 0.031 6.622600475 4.849393999 7.758052655 -0.389470251 -1.041704864 9.950290291 -0.204279026 -1.244765434 7.933760113 +2 0.328 4.695655613 3.434159371 7.795080517 0.528323127 -0.100716459 12.19721756 -0.083982946 1.436719094 10.53106478 +2 0.605 5.407041281 2.432476213 7.800771816 -1.835406428 -0.280623235 10.55479748 0.267695715 -1.391836697 12.49539422 +1 2.416 2.321887862 4.436505941 7.825835893 -1.184414057 -0.092733992 12.80863262 -0.216879014 0.044519382 0.769750127 +2 4.288 3.710031665 4.053737867 7.828541966 -1.971012269 -1.480533521 12.93107834 -0.195083788 0.013251168 9.848779732 +2 3.73 2.415931831 2.15916598 7.839984753 -2.159025256 -0.770400294 8.071545807 0.385262941 -1.04777659 14.00691898 +1 0.452 0.694599008 2.44347373 7.841027371 0.004259026 -0.925761071 9.619702678 0.263059027 -0.976803241 3.302393299 +2 3.666 4.694533724 2.710752351 7.84828159 0.387270952 -1.669085861 8.767032409 0.154065886 -0.413709582 18.62288956 +2 3.085 2.632049518 4.915860174 7.851912286 -1.203631397 -1.157150052 13.49583609 -0.199226793 -0.335086424 12.30780752 +2 5.337 0.907509469 3.871987568 7.865161049 -2.283172269 -2.428276029 12.93793998 -0.17230527 0.174947675 8.402904205 +1 0.063 0.216298966 0.219707981 7.87647394 0.712510507 -0.196877843 13.22102853 0.991974129 1.44699185 0.575326436 +2 3.226 3.242271968 5.783410014 7.888778303 -1.861691284 0.461611535 10.31475955 -0.082862589 -1.58741391 13.23622661 +2 1.802 7.45971544 5.187014613 7.906262078 -2.664795287 -3.327231834 13.41690391 -0.17147896 0.200646306 10.19601578 +2 6.144 4.743230204 3.461519372 7.919086935 -2.587755773 -1.592504465 12.25845054 -0.090855189 0.427011602 12.48656696 +1 0.161 0.567939808 4.977875251 7.925154386 -2.109291319 -0.275550309 13.8629311 -0.193850786 -0.587670077 1.078403864 +1 0.319 0.161087782 3.688732466 7.945000482 -2.272077257 -1.802820174 10.49871125 -0.141036716 -1.240686605 1.433247239 +1 0.403 1.793633733 3.837117035 7.948963723 0.7218051 -2.562125362 12.19623679 -0.166997279 1.593019627 6.103893432 +1 1.609 2.031566256 2.017859498 7.964712083 -2.619597962 -2.435189154 13.7374247 0.446869883 -0.109429261 0.860603491 +2 3.17 2.855335281 1.324078914 7.984290349 0.950356819 -2.075374619 13.97451908 0.732372757 0.975554693 15.51393816 +2 2.263 4.075552973 3.78168041 7.984655517 -2.733681296 -0.760796105 9.793260821 -0.157936622 -1.329567816 8.627524184 +2 4.071 2.127003047 4.094232998 7.986361495 -1.148135844 -1.291309283 10.11000404 -0.199047908 -1.686276864 4.770663417 +2 2.564 5.12677312 0.299301384 7.98897146 -1.512317767 -1.456539616 8.823810118 0.985136511 -1.82307936 6.151067152 +2 3.17 4.25245451 2.956371149 7.989217646 -0.024928643 -1.305491362 10.00472088 0.062294023 -0.861419993 17.78388688 +1 3.876 0.454957634 3.959840754 8.003670762 -2.610585018 -1.50012008 9.740141392 -0.184338101 -1.457086199 0.016604864 +2 4.326 1.386617306 3.473126935 8.028626096 -0.353793462 0.519307894 8.872850824 -0.093717894 -1.197974456 10.38603612 +2 0.153 5.753406957 2.965882418 8.038895006 -2.899009724 -0.992510589 12.98047411 0.058939451 0.675266688 19.65215575 +2 1.556 5.686001839 5.666748141 8.054916064 0.043269687 -1.673248153 9.992224615 -0.102021786 -0.80001991 24.02134318 +2 1.755 5.293508392 4.489112545 8.071137515 -2.755582509 0.585357786 12.94860109 -0.217231621 0.551339852 20.29825167 +1 0.162 0.537688218 0.796023234 8.072277067 0.373111453 -2.062994968 13.64606391 0.897687097 0.836113416 0.754079146 +2 2.6 5.579458042 4.058956108 8.080359471 0.689083712 -2.18205128 10.783143 -0.195617189 0.424993074 9.817471157 +2 3.71 4.972562559 0.244121551 8.081114261 -0.0052822 -1.979714881 8.105031806 0.990096999 -0.253703523 3.81390951 +1 3.365 1.773504409 5.209879062 8.085847707 -1.428729752 -2.089515348 8.212383993 -0.168676298 -1.340704062 0.546668288 +2 4.833 3.737915402 3.949599255 8.086885093 -2.865426239 0.527386788 9.223883752 -0.183034086 -1.252557873 8.02879458 +2 1.933 7.372975692 3.843768919 8.092796291 0.461022035 0.10546188 8.242929206 -0.168033166 0.065648868 4.401092792 +1 1.794 0.591350516 5.35454225 8.106684546 -1.223974229 0.289791741 9.120659753 -0.149556757 -1.894569041 0.013841224 +2 4.408 3.288026856 0.833160489 8.117134597 -0.278214444 -0.329821607 8.535048603 0.88825698 -0.904261503 10.41066596 +1 0.003 0.270384425 1.906772996 8.130617879 -1.19607246 -1.151344163 9.163474969 0.495123836 -1.89666291 3.06230103 +2 1.21 7.367119276 5.022821239 8.134630595 0.610716927 -1.883975606 11.41560544 -0.189575056 0.981243835 9.039630233 +1 0.482 0.244292798 4.145754121 8.142715122 -2.568242563 -1.53002851 9.063101079 -0.203512345 -1.477754246 2.875716406 +1 0.321 1.017168064 1.07081909 8.1491264 -2.735120707 1.144267281 12.32226086 0.819553446 0.574981674 2.522609746 +2 2.276 3.983812796 4.486081297 8.158587018 -2.600135469 -1.132126564 9.630200775 -0.217227789 -1.494360111 6.26163218 +2 3.074 7.36781185 0.432977419 8.167048648 -1.787647437 -3.067576047 10.78012511 0.969046662 -1.190366032 12.87058312 +2 4.433 5.073199594 0.968082765 8.172261563 0.566778741 -1.905505843 11.38213429 0.850960699 0.913921756 2.264708633 +1 0.196 0.227835739 3.137785956 8.182886677 0.261203166 -1.772284749 11.54594546 0.001213177 0.781246717 6.88417695 +1 1.748 2.744682545 5.852226713 8.210134475 0.862320819 0.308132673 11.74376247 -0.071381708 1.439666665 1.122679568 +1 2.898 2.747849487 5.232395324 8.226175236 -2.365869761 -1.568183916 10.03791248 -0.165854446 -1.518080672 3.602955194 +2 0.758 7.526278253 1.984719243 8.237788364 0.933726874 -2.729552893 12.63213445 0.461299532 1.801680758 6.815212272 +2 3.252 6.314757847 5.845000473 8.241866179 0.629362301 -2.594313436 9.189328701 -0.072591352 -0.383780276 9.290107227 +2 7.749 1.656337331 2.067720046 8.248235433 0.921301895 -2.371024697 12.23860025 0.42513166 1.743152147 12.37648872 +1 0.037 0.42861209 0.244722956 8.248752467 -2.487305503 -3.06793049 8.321972317 0.990048293 -1.059687694 0.245918405 +1 0.129 0.149954704 0.359497784 8.249627665 -2.740939395 -1.896019989 9.756437598 0.978598985 -1.335523197 0.191459551 +2 5.37 1.275857167 2.59721078 8.282080054 -0.742294219 -0.079306385 10.39648911 0.19940215 -1.239867548 5.456696879 +2 3.147 6.104849286 3.927957699 8.283677533 -1.11191365 -1.600550919 11.34291767 -0.180192913 -0.556146922 6.721594747 +1 0.963 0.836782095 5.26051062 8.28758207 -2.05672463 -1.037136028 11.70336148 -0.162247522 -0.234087715 0.259726036 +1 0.466 1.096252555 4.204709984 8.301483581 -1.652929604 -2.03374314 8.279575314 -0.207832459 -1.409490533 0.205161966 +2 1.305 6.789636716 1.320185908 8.307389439 -1.875566602 -0.236223765 11.38044578 0.733806667 -0.578475878 5.704918916 +1 0.238 1.329080782 4.709105147 8.309437326 -0.4380677 -1.756372486 8.896434002 -0.212353425 -1.287833491 2.939791258 +1 0.618 0.923045861 3.590000348 8.310657149 -1.272681924 -1.835187965 12.98827434 -0.120760767 -0.043581 1.346253952 +1 1.275 3.37716049 1.151923066 8.315950409 -1.750295549 0.066495617 11.40144017 0.793063207 -0.589118773 3.774822169 +2 4.101 5.729120312 0.97563573 8.31818524 -1.240348716 -0.772077127 8.034328885 0.848737338 -1.125268406 6.189759077 +1 0.026 0.056881353 4.790298875 8.324143585 -0.210818906 -0.02400213 10.26042193 -0.208121995 -0.879960915 0.059927368 +2 1.281 4.45629027 5.90815197 8.328627046 0.925799014 -2.597391488 9.346438595 -0.061999683 -0.197831658 0.068230996 +2 5.436 0.915893438 0.335924177 8.329846089 0.070609143 0.742584774 8.818200809 0.981298323 -0.751053565 25.0512906 +2 2.339 3.390627127 0.039936939 8.336711131 -0.069246491 -3.171737213 13.71986526 0.999734195 0.336104003 24.40521846 +1 1.509 1.32934043 3.181888094 8.360047431 -0.062947203 -1.164699424 13.04335196 -0.012660576 0.825479188 1.39035182 +1 0.023 2.178719476 1.94013885 8.373838109 -2.213988152 1.168967267 8.061475515 0.480669153 -1.006193717 0.263738276 +1 1.095 1.064469212 2.121567057 8.38173202 -0.577819899 -1.912958834 12.4216024 0.401647176 0.443340308 7.313385896 +2 5.457 1.930516978 1.493988404 8.389442634 -1.64199808 -0.782246804 13.15285559 0.66737581 -0.164575063 7.049904533 +2 3.366 2.916658098 2.529222804 8.393253767 -0.309466713 -2.746482967 13.73054148 0.227266768 0.090961477 7.755945439 +2 3.779 2.644505415 5.134037577 8.400929581 -2.552654975 -0.046475576 9.106612098 -0.177718892 -1.505288763 1.226683145 +2 5.68 5.135937204 1.176529159 8.417983752 -0.083452168 -1.383015333 13.48369614 0.7847475 0.524590467 7.732270763 +1 0.819 1.982427584 1.544774203 8.418894658 0.043417279 0.556361699 12.84001186 0.647124636 1.006196915 0.805806766 +2 5.411 2.84165119 4.002362211 8.426715865 -0.066206296 -2.295150413 10.34756873 -0.189474212 -0.669755402 7.029896728 +1 0.543 0.312972383 3.539400982 8.427981655 0.132322156 -2.025884243 8.420791685 -0.109453195 -0.405007333 1.861281786 +2 6.91 3.728023979 0.932708021 8.437727298 -1.779583707 -3.828793575 10.4038373 0.861186919 -1.536086491 15.66418944 +2 2.852 2.910464407 2.805302127 8.479568687 -2.170419187 1.606673689 12.92079391 0.117629998 0.112298283 14.66788177 +2 0.753 5.79380421 1.322338425 8.481998097 -2.372584479 -1.140561331 8.915757207 0.733014161 -1.568644989 12.38396295 +2 5.596 2.249311721 5.120276817 8.482509688 -2.750219129 0.47698282 8.576081731 -0.179279507 -1.042420524 19.78651151 +1 0.381 0.036328672 5.685470078 8.485773637 0.094994238 -0.313722049 8.103278266 -0.098981314 -0.151870963 1.407865775 +2 4.819 1.453733438 1.752016411 8.499740338 -2.775626973 -0.524482329 13.22670263 0.561424267 0.43193743 13.80332233 +2 1.509 4.454337142 1.681478749 8.508615852 -1.14647165 -0.079727126 9.900813374 0.591075535 -1.800135686 2.711908833 +2 0.889 7.668342129 1.555678286 8.549243464 0.036426673 0.987972682 12.95266173 0.64273297 0.962731388 8.686431119 +2 3.844 3.28659496 0.456773149 8.563306128 -2.963439096 0.368264877 11.73779041 0.965587346 0.498710133 9.392063068 +2 0.589 5.262606984 4.550340945 8.564319061 -2.210169148 0.853658018 11.70985108 -0.216884611 -0.147398989 7.728546291 +1 0.23 0.555731538 4.963976668 8.566363125 -2.26246867 -1.99086576 9.524853265 -0.195109378 -1.765177073 0.247086262 +2 4.645 3.339922101 5.136339807 8.57659837 -1.98249507 -3.416283383 12.95430728 -0.177455321 0.009249182 5.623245402 +2 2.827 6.65334204 1.222143388 8.598688916 -1.298454205 0.823248253 12.66603081 0.7690045 0.031894496 7.896359787 +2 1.885 7.52345118 1.663055693 8.606921181 0.856941168 -0.03509597 12.91181854 0.598745506 1.696767196 1.108832239 +2 2.587 5.49276472 0.347075299 8.621716952 -2.400791397 0.729763912 12.70232056 0.980043701 0.315893633 17.10689843 +1 0.602 1.452730224 5.123768258 8.6278638 -1.259299057 -1.950229384 9.165954941 -0.178885951 -1.918567635 0.117046235 +1 3.515 1.227723165 2.096629033 8.640173694 -1.120948692 -1.228595504 12.84250411 0.412522323 0.061603417 2.37475077 +1 2.393 2.195439127 1.580588175 8.649852153 -0.910379394 -2.718848906 10.1061111 0.63264554 -1.566470296 0.423940813 +2 0.215 5.233763239 2.864126505 8.672377217 0.249581743 0.466015249 9.179827926 0.095638091 -0.72315076 15.22194666 +2 5.543 4.12178938 4.696497539 8.686027899 -2.573847324 0.646480023 9.258966002 -0.212897745 -1.524017134 14.25281656 +2 2.227 5.919688254 1.640974594 8.688143815 -2.126892674 0.811176296 12.21693532 0.607893943 0.090243983 16.8473927 +2 1.113 6.887891463 5.217001967 8.700320821 -2.417870155 -2.058085267 8.711896326 -0.16779017 -1.418659076 8.847418862 +1 1.792 2.789915899 4.080061249 8.703355089 -1.127028767 0.810133713 10.0419799 -0.197706333 -1.718641534 0.118135479 +2 6.07 1.68326467 4.025630179 8.708435536 0.68182913 1.082952078 11.29314927 -0.192095416 0.923416888 20.31880195 +2 3.735 3.750179111 1.860506168 8.726464686 -2.471784801 0.776037509 10.64715067 0.515089293 -0.962251937 5.272023211 +2 4.426 3.756335728 1.547249695 8.733341975 0.886341185 0.809672633 11.3813724 0.64612893 1.151062354 10.43300125 +1 0.889 0.870916202 5.008423434 8.747384457 -0.813735982 -1.971108408 13.47197579 -0.190978436 -0.109648527 1.965899889 +2 3.962 5.62411279 2.090716686 8.753343548 -1.85604657 -0.659174286 10.00755822 0.415101078 -1.794527032 3.769888975 +2 5.607 5.694297475 1.490075498 8.75792628 -1.940389609 0.806474937 12.11118623 0.668921705 -0.03429436 13.18314574 +2 1.456 3.898772453 1.20289575 8.763129422 -2.778930047 -0.008099053 13.54595839 0.775698538 0.202599941 16.73835882 +1 0.895 1.788326938 2.188844253 8.769249869 -1.650937814 -1.685977509 11.27793898 0.372347703 -0.718162916 1.133390469 +1 0.773 1.050970691 1.150386148 8.778423636 -1.72885152 -3.151952386 9.834909623 0.793578409 -1.904603592 4.750032101 +2 2.06 4.55160649 3.763968908 8.785560753 -1.728745397 1.836497751 9.364217821 -0.154881062 -1.985718752 0.880271264 +2 0.164 6.103094685 1.451463473 8.795534883 -1.400307355 -1.089298715 9.49892726 0.684060122 -1.982754124 2.662659151 +1 1.743 0.758191762 1.330953155 8.79939573 -0.403689307 -1.769985577 12.2977025 0.729834283 0.571311535 0.065867672 +2 3.316 5.078529045 3.191065709 8.800776144 -0.690762166 -0.762753048 9.226633197 -0.015497292 -1.617558284 8.300644489 +1 0.653 3.252887593 5.890791698 8.805978537 0.118157325 -1.607900935 9.434400122 -0.064915077 -0.882071126 0.019344157 +2 0.808 6.800568135 5.900092986 8.812620983 -1.879740048 -0.686560842 9.130393867 -0.06335331 -1.909636295 20.10541807 +1 1.12 3.561654566 4.312649403 8.881338348 0.132333862 -1.994948089 11.6260413 -0.21359547 0.721470013 1.140043615 +1 1.903 1.84311253 1.012432986 8.890148565 0.038927296 -1.750821114 10.05514868 0.837708133 -0.768891582 1.772490677 +1 0.016 0.1346798 2.224775967 8.895036702 -0.705409752 -3.602354265 8.135398152 0.356741123 -0.92606257 4.883471918 +1 1.756 3.008495449 4.333892378 8.900606052 -0.096027621 1.832895358 9.191576179 -0.214408007 -1.068811577 4.793824035 +2 0.229 6.469255501 3.311514392 8.917472756 0.920425093 -1.399946187 10.49355918 -0.051065825 0.314666087 13.34159147 +1 2.616 1.606858008 2.064748855 8.939448309 -0.024149482 0.037101468 8.150182811 0.426427557 -0.316036064 1.739476122 +2 0.011 6.202817848 0.872090679 8.948635744 0.952554505 1.109716985 9.763240018 0.877976808 -0.128367673 11.63476928 +2 3.268 7.270193702 5.799601188 8.951497472 -1.683837104 -1.901848977 8.103632503 -0.080170219 -1.240683358 16.84040231 +2 3.416 5.825936474 2.366085274 8.953125007 -0.608658217 -2.770765388 8.564675142 0.295880489 -1.224126699 3.916322701 +1 1.295 0.830158256 0.064634986 8.99111044 -2.369000776 -1.826403824 8.704687882 0.999303865 -1.449739964 4.496084535 +1 1.259 3.095602925 0.810609436 8.998081633 -0.871406071 -0.874808976 12.80686024 0.894027645 0.20598662 3.541566166 +2 1.703 7.476262608 0.358553966 8.999297298 -2.986212076 0.594855557 8.935034537 0.978710487 -1.037209684 6.483867925 +1 0.448 1.183408753 1.087816013 9.012297165 -0.181469392 -0.426185202 11.20696372 0.814121807 0.029343572 0.313487049 +2 0.514 4.406047924 3.170618367 9.022952246 -0.302255015 -2.765123202 8.515058011 -0.009153305 -0.911640577 13.50405946 +1 0.213 3.488080924 0.285371997 9.103041897 0.567441341 -1.122534636 11.84288688 0.986482297 1.286980197 3.6617811 +2 3.529 4.757957288 0.764258238 9.104268568 0.038779736 -3.480389919 8.38396643 0.905455355 -0.466750207 5.993336442 +2 0.12 5.388531041 5.948730587 9.148685871 -0.849223828 -2.636816897 10.63813536 -0.055180538 -1.100644097 16.84521097 +1 2.283 1.633419692 5.952751309 9.170118764 -2.820335437 0.818339006 13.95964706 -0.05450481 -0.13917073 0.002154877 +1 0.455 2.504002122 3.796474081 9.180822269 0.808190841 -0.559346476 9.99950643 -0.160429175 -0.116301362 3.729097158 +2 1.951 4.040193339 0.234757674 9.189764708 -1.38155431 -1.712985729 8.312042912 0.990840083 -1.424357182 25.15527856 +1 0.048 0.328341713 2.999344013 9.192663476 0.919041778 1.064053561 10.48514813 0.047266802 0.306471619 1.73715117 +1 0.571 0.62712248 4.894481234 9.208261518 0.812399258 -2.553930275 13.09895844 -0.200933851 1.587435321 1.623608192 +2 3.298 4.608363045 3.899406054 9.216271749 -2.125379608 -0.447303469 13.04389948 -0.176266555 0.038013376 11.98335982 +1 0.475 1.732263168 3.409215092 9.216863657 -2.947528061 -1.485363411 13.45697556 -0.077566024 0.43609305 5.97294255 +2 0.632 4.048058338 3.907357112 9.218221981 -1.152708856 -2.855975196 11.87207231 -0.177380322 -0.145364254 8.743711271 +1 1.346 3.516991763 3.577957539 9.229552268 -0.296503056 -3.200705275 9.263907303 -0.118125433 -1.279265845 0.251723214 +1 3.5 0.344627681 5.230688199 9.23172026 -2.306796041 1.242466912 9.745822173 -0.166070501 -1.690066414 0.866771261 +2 5.189 3.876216624 4.676394249 9.238914141 0.077731629 0.259014271 8.25382329 -0.213701456 -0.311619119 4.591454607 +2 6.891 3.485900911 0.763099879 9.240662145 0.161824677 -0.720460661 9.69766094 0.905733383 -0.801878599 11.06992238 +2 3.929 6.578209904 2.055756465 9.262032357 -0.367863956 -1.520612513 8.218950387 0.430349386 -0.716543222 1.000907528 +2 3.519 6.739264988 0.725388238 9.275403808 -1.072433673 1.867061889 12.17466129 0.914580571 0.045891471 14.66710769 +2 3.392 5.827305497 4.0770543 9.279238518 -0.384846043 -3.257369303 10.66404044 -0.197415356 -0.700910175 14.59370556 +2 1.026 5.000455489 5.983159322 9.292645858 0.492190725 1.306177469 8.288787356 -0.049396149 0.051323497 14.91135133 +2 2.024 7.489416072 2.507836693 9.30140359 -1.956803698 1.533740462 9.372627483 0.236130015 -1.925060107 4.690711435 +1 1.153 2.427980969 5.649346507 9.305992194 0.336019308 1.661893965 10.05274118 -0.104833765 -0.479494148 0.219959225 +2 4.354 5.917457138 0.320071743 9.314423467 -1.947225106 -1.286167755 11.92358549 0.983012927 -0.129553963 23.85089018 +2 7.327 2.106692466 4.830966449 9.336524005 -0.416778922 0.572483684 12.02099936 -0.205544364 0.450117553 18.43152674 +2 2.605 7.518345785 3.182945858 9.354589213 -2.289381964 -2.445129826 8.410309359 -0.012988414 -1.280808856 13.21978544 +2 1.295 4.213665544 5.505842622 9.365518621 -1.159053398 -3.561704738 12.74630761 -0.127389732 0.067430288 22.21137831 +2 5.028 2.25206709 0.441155786 9.375195773 -0.045219862 -2.619317228 9.735626123 0.967877773 -0.997278941 25.76064569 +2 1.665 7.541479071 5.996988619 9.417453924 -0.764694808 -0.623651809 9.241013416 -0.047074571 -1.675479564 4.843378034 +1 1.372 0.468395748 5.459482034 9.426967236 0.277708306 0.092852513 13.74728083 -0.134384042 0.654235555 0.051247181 +1 0.415 1.347621089 0.134987519 9.433164387 0.223928073 0.697544276 8.584549716 0.996965827 -0.445231522 0.003138776 +2 0.246 4.98651685 0.619616681 9.435332879 -1.250932028 -1.357426564 9.624384869 0.937229679 -1.929422694 10.3326983 +1 2.214 3.093273054 4.398176604 9.452441466 -0.980779431 0.095605766 9.684319174 -0.216235087 -1.797439101 5.91444671 +1 0.003 2.73497816 3.172649757 9.459427702 -0.825612713 -2.730115619 11.73077079 -0.009787437 -0.064230492 2.050855907 +2 3.418 2.518983479 1.463451981 9.477669265 0.940790951 -0.270153938 8.171764038 0.679382815 0.495563574 6.891341757 +1 2.97 2.339185264 0.505075562 9.500298654 0.369258232 1.02030839 8.956794051 0.958022136 -0.531555773 1.231613555 +2 3.544 4.916938 0.551206469 9.511277095 -1.733127653 -2.537565746 11.40108678 0.950125628 -0.592363434 4.022483666 +1 1.734 0.961888842 1.369617963 9.536159618 -0.157277455 -1.688968451 8.227105018 0.715405186 -0.521155528 0.005217122 +2 0.939 4.564298433 5.119223662 9.536860245 -0.655626476 -1.246440836 9.475925924 -0.179397896 -1.608348177 10.87251616 +1 0.943 2.867603087 0.124487336 9.543385675 -0.060609172 -1.314034172 11.61456388 0.997419151 0.519640447 0.048234849 +1 1.281 0.6424968 1.360705962 9.551454254 -2.305600277 -0.424379858 12.24423526 0.718753427 0.206599337 0.878583269 +2 4.656 3.090851496 1.587374481 9.553469827 -1.177013797 -0.046200001 12.22977323 0.629884503 0.020419562 4.755392553 +2 5.13 3.641681524 0.981168357 9.553788987 0.668286586 -0.096090526 11.03290968 0.847099887 0.656968788 10.97329496 +1 0.093 2.792753075 5.764310564 9.607964586 -2.785626942 -2.622541623 12.07499552 -0.086029942 0.533189173 3.604290519 +1 0.979 1.167617688 3.943956188 9.616124159 -1.074946179 -0.848428979 8.071019909 -0.182304453 -1.094902875 0.02749877 +2 4.62 2.633990201 1.11180745 9.619013793 -1.623128464 -0.911084756 8.511366302 0.806345492 -1.609679652 31.92792594 +2 0.804 6.5572428 1.363070569 9.648900622 0.984937914 0.159265726 9.322576352 0.717866335 -0.161544196 7.204411466 +2 0.568 5.353031948 0.551802449 9.653116183 -2.00892406 -0.146719547 10.22458081 0.950019363 -1.602395671 13.4713715 +1 0.609 3.276628666 1.90570973 9.676971615 -0.617920657 -3.703127769 11.73155059 0.495583751 0.091969511 2.799462058 +1 0.007 0.597025566 4.368597591 9.72768018 -2.062902084 -3.3080984 8.806798767 -0.215511613 -1.696390833 4.99952929 +2 4.254 3.383401658 0.890782447 9.763226769 0.108734811 -1.657430962 12.20935899 0.872899992 1.045466043 24.16085091 +1 2.597 2.299939372 4.659163187 9.767031068 -1.112595379 -0.791348025 8.495697712 -0.214326866 -1.495420753 0.920590082 +1 1.761 0.612381524 3.197645289 9.783985286 -1.620648131 -0.133739479 12.08729151 -0.01752017 -0.111337861 3.94840957 +2 5.114 3.685637252 5.667190153 9.786557364 -2.496197524 -1.123341022 10.5120559 -0.101950179 -1.066411244 13.44601408 +2 0.867 5.420298513 1.028905378 9.796017118 0.614188029 -1.858431075 9.095237051 0.832666406 -0.369895873 14.2522919 +2 3.902 4.552997651 4.962002591 9.799799272 0.066134239 -2.494136419 13.95946805 -0.195285659 0.242851207 1.56542012 +1 2.91 2.405192324 4.264372261 9.806477019 -0.863382452 -1.322879037 12.01135181 -0.211357718 0.089845472 4.321350933 +2 0.289 5.7386696 0.039091541 9.845910934 0.221348814 -1.057619375 13.69466044 0.999745328 0.647751616 4.978796727 +2 6.507 3.07897232 2.819673886 9.864398039 -2.143761438 -1.579726295 8.410124518 0.112207069 -1.368211501 3.099675514 +2 5.945 4.213841984 3.920273229 9.869534951 -0.453911925 0.730621751 8.172156977 -0.179156087 -0.751318687 18.3001757 +1 0.042 0.151152848 5.92648962 9.872070243 -0.225122687 0.419256004 9.428081821 -0.05891849 -1.223220497 0.058873913 +2 3.308 4.085605391 4.066406316 9.881549871 0.106280268 -1.675970569 8.272732663 -0.196367147 -0.300539414 8.557215019 +2 0.691 4.2160301 5.592157977 9.887176054 -2.233419542 -3.091479257 10.22237277 -0.113968377 -1.486811247 25.84578671 +1 1.443 1.324507199 4.87015362 9.901730913 -2.674624782 -1.930227722 8.246648377 -0.2027823 -0.832834413 4.178538394 +1 1.176 3.451629381 4.623157035 9.935439187 0.173919576 0.517747217 9.753304986 -0.215441843 -0.77347451 0.642638966 +2 3.578 5.619177772 4.233012239 9.9407971 -2.465506904 -3.293076181 8.87123414 -0.209610204 -1.476411464 6.978084455 +1 0.486 3.432152375 2.148137813 9.950447653 0.655553549 0.207687077 9.892375857 0.390066511 -0.283055454 0.006240655 +1 0.214 2.963121569 5.146980869 9.982933988 -1.215757044 -0.650595134 13.08872312 -0.176227962 -0.07098497 5.140557978 +2 0.887 6.469343753 2.167054525 10.01033184 0.43662872 -1.001290758 10.54529943 0.381828238 -0.012326135 5.130467332 +2 5.491 5.275541021 4.992604266 10.05970982 -2.80955165 -1.348768038 8.819949486 -0.192483896 -1.14857287 6.887451262 +1 3.685 1.444326174 1.493730706 10.08347685 0.702406733 -0.941187597 9.408750498 0.667477686 -0.353814972 1.905710409 +1 1.228 1.754908493 1.405816795 10.09268326 -0.086000201 -2.007458095 9.856866276 0.701671598 -0.993987441 2.808958155 +1 0.6 2.888409397 5.71438666 10.11184786 -0.898287964 1.481511093 12.66827036 -0.094256877 0.212551168 0.002285451 +1 2.221 1.393031415 0.344651006 10.12733443 0.860723822 -0.073931851 11.79495015 0.980319863 1.475235725 5.609681074 +1 0.597 1.976621388 1.284705785 10.1474326 -0.737769376 1.337775555 11.81970431 0.746750329 0.061318184 0.717864183 +1 2.947 2.01068715 4.95251011 10.16915698 0.035750512 -1.372319759 13.67639265 -0.196124622 0.480384674 0.663122366 +2 4.93 5.312069959 3.716205716 10.17207232 -1.357520702 -2.792338309 11.47133819 -0.146254023 -0.519325184 8.332885344 +1 0.535 0.780626022 4.606445423 10.17811496 -1.703919104 -0.361371304 11.09373769 -0.215869969 -0.893146412 4.733870913 +1 0.51 3.406178764 3.054713644 10.23382349 -2.834825115 -0.273330668 9.944584452 0.028405202 -1.169893981 3.110629429 +1 0.554 1.358111166 2.48543175 10.24447081 0.748829309 -1.632086584 13.30055571 0.245462176 1.423158685 0.030640161 +2 4.329 3.526272684 0.844454959 10.25164927 0.064133941 -2.126211097 13.56842245 0.885315709 0.602664592 12.08385048 +2 1.808 3.899283481 5.395775195 10.27517561 -0.899920062 -1.604297944 10.77704316 -0.143712258 -1.000073141 27.34690069 +2 5.28 0.573044141 3.54568858 10.31594915 -1.796097963 -2.037842394 10.40811553 -0.110891765 -1.528974372 0.543999745 +1 0.146 1.012812978 1.306241639 10.38479229 -0.896037327 0.344236233 10.43311308 0.738920739 -1.314127383 1.139320965 +2 7.474 1.117650844 4.555011164 10.38527608 0.434324169 -0.74886511 8.227800649 -0.216825297 0.055624056 10.23989758 +2 2.267 5.24695974 2.203712639 10.3999777 0.400445716 -0.985391031 12.91575505 0.365885248 1.329412444 8.395718293 +1 1.037 1.866694305 1.939350064 10.45017347 -2.159676779 -2.091342455 8.501698853 0.481011334 -1.434930577 5.177975261 +1 0.083 0.141728012 5.881548534 10.47793806 -1.330965577 -0.858278802 9.804143287 -0.066466405 -1.900278054 1.206196882 +1 0.251 1.050750105 0.777020921 10.4985311 -2.64687111 -3.10674983 9.838486708 0.90236751 -1.390422777 0.825548372 +2 6.506 1.686221868 1.26930928 10.51347346 -0.35173561 -0.330251744 8.713749939 0.752295753 -1.102219051 20.17895088 +1 0.039 0.024122343 2.093927664 10.51895118 -2.340488982 -0.60046366 8.158367565 0.413700551 -1.01783198 5.317916443 +2 1.913 4.104908746 5.724279355 10.53937506 -1.604132566 -2.397622951 13.26191233 -0.09263331 -0.231737715 10.86017068 +1 2.336 2.104191716 0.906880804 10.5701394 -0.298081576 -0.779104527 9.729373604 0.868455375 -1.247655224 0.316117989 +2 4.533 3.892149508 2.286574399 10.62479007 -2.295088058 -0.54194878 10.41955478 0.330005835 -1.293658981 10.53483115 +1 0.584 0.536792893 3.016806006 10.62769335 0.506414733 -1.592967827 11.22108953 0.041256561 0.708653683 3.509398885 +1 1.015 3.303747615 0.864769207 10.63119562 0.815041307 -0.85427266 12.61718336 0.879940608 1.726463239 0.892584585 +1 3.171 2.010923978 2.475500752 10.68216916 -0.654389003 0.142174874 13.67849422 0.249613336 -0.165916172 0.812400344 +2 4.065 4.169458368 2.906655337 10.71407235 -1.053191225 -1.55128541 12.95587247 0.080085871 0.056091666 5.326878464 +2 3.412 3.516211636 5.138699836 10.72955549 0.129299704 -3.486462792 9.790867068 -0.177184402 -0.804794727 21.4417922 +2 5.284 5.175416482 2.910567414 10.811432 -1.866216673 -1.061863905 13.85907533 0.078670449 -0.682158765 3.834845731 +1 0.945 0.756459289 5.168850938 10.85814396 -1.181262747 -1.725966564 10.1607894 -0.173659021 -1.666238404 1.911263888 +2 2.766 3.044130029 3.264032554 10.88920085 -1.22505271 -2.155821803 9.434795258 -0.037418194 -1.940773531 0.201941525 +1 0.09 0.069340614 5.051586556 10.90437799 -0.173908992 -0.2889314 13.90805217 -0.186678373 0.054081825 5.440602757 +2 4.628 2.254321792 5.877660585 10.92370474 -2.994303878 -1.961576081 13.23847824 -0.067118707 0.635754315 27.38203535 +1 1.243 1.211614522 1.156148315 10.93246423 -2.434224575 -2.497496395 11.93300019 0.791644264 0.156201688 0.478081376 +1 0.849 2.477782787 2.954891247 10.97839513 0.627857144 0.42368843 9.418932036 0.062817419 -0.412570992 0.417634922 +1 2.398 1.003636679 4.654160567 10.9822226 -1.72033745 -3.33268953 11.19063897 -0.214497371 -0.795009558 4.194771698 +2 5.257 3.506092208 5.479624252 11.01053441 0.989518961 -3.118127496 13.52321169 -0.131365312 1.411866827 9.77172033 +2 5.405 5.201779381 4.045041808 11.04712864 -0.85353533 1.250131177 10.26490132 -0.194180014 -1.420979926 10.54950727 +2 2.743 4.940460041 2.895977167 11.14955651 -0.152747599 1.382175297 12.67680729 0.083962466 0.841753755 20.96244352 +2 1.358 6.03651172 4.895072784 11.15557517 0.555666702 -2.177953737 12.71530841 -0.20088765 1.516439067 16.60312415 +2 4.611 5.354556011 2.447279319 11.17336649 -1.91466154 -3.000005866 10.60272243 0.26145683 -1.324283203 20.07408617 +2 3.468 2.402792775 2.114706965 11.19458199 -0.373581779 -1.724797349 13.52575944 0.404638346 0.209068055 30.95011076 +1 1.37 0.439298355 3.045842432 11.20903752 -0.573306223 -2.135616352 13.46481933 0.031388354 0.080411779 0.695285824 +1 2.417 2.922905188 1.807295892 11.21498577 -2.03656849 -2.424590391 8.101951857 0.537910859 -1.138911819 1.201552536 +1 2.81 1.354140547 5.366312814 11.28944355 -2.734259401 0.362152459 8.764868766 -0.147904726 -1.186210086 0.377183867 +2 1.519 4.380450816 2.49792002 11.36026624 -1.958327857 0.76884129 11.89750479 0.240254775 -0.141319258 3.346551639 +2 5.458 4.471458128 4.959344077 11.39540982 -0.401164209 -2.353390711 10.76781568 -0.195522076 -0.61628497 17.64311372 +2 2.113 7.658276558 1.920879894 11.40975617 -2.868869469 -0.366854543 8.218143628 0.489017589 -0.625521339 5.593306053 +2 1.377 4.844674591 2.190547572 11.44174929 -2.55957236 -1.870973509 12.61313971 0.371607071 0.449193808 22.22504205 +1 2.632 2.616838109 0.084600044 11.49757994 -1.839119028 -1.543901078 9.341708797 0.998807566 -1.960768669 0.414875464 +2 1.482 4.727302582 3.862833756 11.59975458 -2.00842928 1.405114156 13.3566487 -0.170941147 -0.202109598 3.911158906 +1 1.866 2.950051157 1.702322057 11.65534373 -1.059964037 -0.484756103 13.56664011 0.582359224 -0.332262389 0.016424186 +1 0.966 2.8035431 4.665995584 11.68365289 -1.941228539 -2.86043659 9.749072625 -0.214085933 -1.880046675 0.004106537 +1 0.854 0.977449368 5.408349873 11.69025452 0.066928772 -2.310024945 11.28825567 -0.141898735 0.355399432 0.060236838 +1 0.03 0.093711788 3.678407315 11.87139315 -0.085894958 -0.717799527 13.5153185 -0.139027914 0.496749195 0.079339821 +2 3.881 5.772867182 0.97386923 11.91699859 -0.62227508 -1.354237917 10.65049178 0.849258588 -0.921159618 17.13040574 diff --git a/Phase 3 - 2020 (Summer)/Week 1 (Mar 28 - Apr 4)/assignment/AISHIK RAKSHIT_190122002/iitg_ml....w01.py b/Phase 3 - 2020 (Summer)/Week 1 (Mar 28 - Apr 4)/assignment/AISHIK RAKSHIT_190122002/iitg_ml....w01.py new file mode 100644 index 000000000..2c4631f31 --- /dev/null +++ b/Phase 3 - 2020 (Summer)/Week 1 (Mar 28 - Apr 4)/assignment/AISHIK RAKSHIT_190122002/iitg_ml....w01.py @@ -0,0 +1,50 @@ +# -*- coding: utf-8 -*- +""" +Created on Fri Apr 3 14:54:41 2020 + +@author: LENOVO +""" + +# -*- coding: utf-8 -*- +""" +Created on Thu Apr 2 19:13:26 2020 + +@author: LENOVO +""" + +import numpy as np +import pandas as pd +from matplotlib import pyplot as plt +plt.style.use('ggplot') + + +ds = pd.read_csv(r"C:\Users\LENOVO\Desktop\data.csv", delimiter='\t') +ds1=ds.loc[ds['Label']==1] +ds2=ds.loc[ds['Label']==2] + + +plt.rcParams['figure.figsize']=(30,30) +fig, axes=plt.subplots(10,10) + + + + +for i in range(1,11): + for j in range(1,11): + if(i!=j): + x=str(i) + y=str(j) + ds1=ds.loc[ds['Label']==1].sort_values(by=x) + ds2=ds.loc[ds['Label']==2].sort_values(by=x) + x_c1=ds1[[x]] + y_c1=ds1[[y]] + x_c2=ds2[[x]] + y_c2=ds2[[y]] + axes[i-1][j-1].plot(x_c1,y_c1,'r',label='1') + axes[i-1][j-1].plot(x_c2,y_c2,'b',label='2') + axes[i-1][j-1].set_xlabel(x) + axes[i-1][j-1].set_ylabel(y) + + +fig.tight_layout(pad=2.0) +plt.show() \ No newline at end of file diff --git a/Phase 3 - 2020 (Summer)/Week 2 (Apr 5 - Apr 11)/AishikRakshit_190122002.ipynb b/Phase 3 - 2020 (Summer)/Week 2 (Apr 5 - Apr 11)/AishikRakshit_190122002.ipynb new file mode 100644 index 000000000..135e1495e --- /dev/null +++ b/Phase 3 - 2020 (Summer)/Week 2 (Apr 5 - Apr 11)/AishikRakshit_190122002.ipynb @@ -0,0 +1,509 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "import os\n", + "from matplotlib import pyplot as plt\n", + "from numpy.linalg import inv\n", + "from mpl_toolkits import mplot3d as plt3d" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "ds1=np.genfromtxt(r\"C:\\Users\\LENOVO\\Desktop\\machine-learning-ex\\ex1\\ex1data1.csv\",delimiter=',')\n", + "ds2=np.genfromtxt(r\"C:\\Users\\LENOVO\\Desktop\\machine-learning-ex\\ex1\\ex1data2.csv\",delimiter=',')" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "def plotdata():\n", + " print(\"Dataset 1\")\n", + " print(ds1)\n", + " print(\"Dataset 2\")\n", + " print(ds2)\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[ 6.1101 , 17.592 ],\n", + " [ 5.5277 , 9.1302 ],\n", + " [ 8.5186 , 13.662 ],\n", + " [ 7.0032 , 11.854 ],\n", + " [ 5.8598 , 6.8233 ],\n", + " [ 8.3829 , 11.886 ],\n", + " [ 7.4764 , 4.3483 ],\n", + " [ 8.5781 , 12. ],\n", + " [ 6.4862 , 6.5987 ],\n", + " [ 5.0546 , 3.8166 ],\n", + " [ 5.7107 , 3.2522 ],\n", + " [14.164 , 15.505 ],\n", + " [ 5.734 , 3.1551 ],\n", + " [ 8.4084 , 7.2258 ],\n", + " [ 5.6407 , 0.71618],\n", + " [ 5.3794 , 3.5129 ],\n", + " [ 6.3654 , 5.3048 ],\n", + " [ 5.1301 , 0.56077],\n", + " [ 6.4296 , 3.6518 ],\n", + " [ 7.0708 , 5.3893 ],\n", + " [ 6.1891 , 3.1386 ],\n", + " [20.27 , 21.767 ],\n", + " [ 5.4901 , 4.263 ],\n", + " [ 6.3261 , 5.1875 ],\n", + " [ 5.5649 , 3.0825 ],\n", + " [18.945 , 22.638 ],\n", + " [12.828 , 13.501 ],\n", + " [10.957 , 7.0467 ],\n", + " [13.176 , 14.692 ],\n", + " [22.203 , 24.147 ],\n", + " [ 5.2524 , -1.22 ],\n", + " [ 6.5894 , 5.9966 ],\n", + " [ 9.2482 , 12.134 ],\n", + " [ 5.8918 , 1.8495 ],\n", + " [ 8.2111 , 6.5426 ],\n", + " [ 7.9334 , 4.5623 ],\n", + " [ 8.0959 , 4.1164 ],\n", + " [ 5.6063 , 3.3928 ],\n", + " [12.836 , 10.117 ],\n", + " [ 6.3534 , 5.4974 ],\n", + " [ 5.4069 , 0.55657],\n", + " [ 6.8825 , 3.9115 ],\n", + " [11.708 , 5.3854 ],\n", + " [ 5.7737 , 2.4406 ],\n", + " [ 7.8247 , 6.7318 ],\n", + " [ 7.0931 , 1.0463 ],\n", + " [ 5.0702 , 5.1337 ],\n", + " [ 5.8014 , 1.844 ],\n", + " [11.7 , 8.0043 ],\n", + " [ 5.5416 , 1.0179 ],\n", + " [ 7.5402 , 6.7504 ],\n", + " [ 5.3077 , 1.8396 ],\n", + " [ 7.4239 , 4.2885 ],\n", + " [ 7.6031 , 4.9981 ],\n", + " [ 6.3328 , 1.4233 ],\n", + " [ 6.3589 , -1.4211 ],\n", + " [ 6.2742 , 2.4756 ],\n", + " [ 5.6397 , 4.6042 ],\n", + " [ 9.3102 , 3.9624 ],\n", + " [ 9.4536 , 5.4141 ],\n", + " [ 8.8254 , 5.1694 ],\n", + " [ 5.1793 , -0.74279],\n", + " [21.279 , 17.929 ],\n", + " [14.908 , 12.054 ],\n", + " [18.959 , 17.054 ],\n", + " [ 7.2182 , 4.8852 ],\n", + " [ 8.2951 , 5.7442 ],\n", + " [10.236 , 7.7754 ],\n", + " [ 5.4994 , 1.0173 ],\n", + " [20.341 , 20.992 ],\n", + " [10.136 , 6.6799 ],\n", + " [ 7.3345 , 4.0259 ],\n", + " [ 6.0062 , 1.2784 ],\n", + " [ 7.2259 , 3.3411 ],\n", + " [ 5.0269 , -2.6807 ],\n", + " [ 6.5479 , 0.29678],\n", + " [ 7.5386 , 3.8845 ],\n", + " [ 5.0365 , 5.7014 ],\n", + " [10.274 , 6.7526 ],\n", + " [ 5.1077 , 2.0576 ],\n", + " [ 5.7292 , 0.47953],\n", + " [ 5.1884 , 0.20421],\n", + " [ 6.3557 , 0.67861],\n", + " [ 9.7687 , 7.5435 ],\n", + " [ 6.5159 , 5.3436 ],\n", + " [ 8.5172 , 4.2415 ],\n", + " [ 9.1802 , 6.7981 ],\n", + " [ 6.002 , 0.92695],\n", + " [ 5.5204 , 0.152 ],\n", + " [ 5.0594 , 2.8214 ],\n", + " [ 5.7077 , 1.8451 ],\n", + " [ 7.6366 , 4.2959 ],\n", + " [ 5.8707 , 7.2029 ],\n", + " [ 5.3054 , 1.9869 ],\n", + " [ 8.2934 , 0.14454],\n", + " [13.394 , 9.0551 ],\n", + " [ 5.4369 , 0.61705]])" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ds1" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "def normalEqn(arr):\n", + " \n", + " r=arr.shape[0]\n", + " c=arr.shape[1]\n", + " \n", + " d1=arr[:,c-1]\n", + " \n", + " one1=np.ones((r,1))\n", + " arr=np.concatenate((one1,arr),axis=1)\n", + " \n", + " t_t=arr[:,0:c].transpose()\n", + " t_c=arr[:,0:c]\n", + " a1=inv(np.dot(t_t,t_c))\n", + " b1=np.dot(a1,t_t)\n", + " theta=np.dot(b1,d1)\n", + " return theta" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[89597.9095428 139.21067402 -8738.01911233]\n" + ] + } + ], + "source": [ + "theta1=normalEqn(ds1)\n", + "theta2=normalEqn(ds2)\n", + "print(theta2)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[2.10400e+03, 3.00000e+00, 3.99900e+05],\n", + " [1.60000e+03, 3.00000e+00, 3.29900e+05],\n", + " [2.40000e+03, 3.00000e+00, 3.69000e+05],\n", + " [1.41600e+03, 2.00000e+00, 2.32000e+05],\n", + " [3.00000e+03, 4.00000e+00, 5.39900e+05],\n", + " [1.98500e+03, 4.00000e+00, 2.99900e+05],\n", + " [1.53400e+03, 3.00000e+00, 3.14900e+05],\n", + " [1.42700e+03, 3.00000e+00, 1.98999e+05],\n", + " [1.38000e+03, 3.00000e+00, 2.12000e+05],\n", + " [1.49400e+03, 3.00000e+00, 2.42500e+05],\n", + " [1.94000e+03, 4.00000e+00, 2.39999e+05],\n", + " [2.00000e+03, 3.00000e+00, 3.47000e+05],\n", + " [1.89000e+03, 3.00000e+00, 3.29999e+05],\n", + " [4.47800e+03, 5.00000e+00, 6.99900e+05],\n", + " [1.26800e+03, 3.00000e+00, 2.59900e+05],\n", + " [2.30000e+03, 4.00000e+00, 4.49900e+05],\n", + " [1.32000e+03, 2.00000e+00, 2.99900e+05],\n", + " [1.23600e+03, 3.00000e+00, 1.99900e+05],\n", + " [2.60900e+03, 4.00000e+00, 4.99998e+05],\n", + " [3.03100e+03, 4.00000e+00, 5.99000e+05],\n", + " [1.76700e+03, 3.00000e+00, 2.52900e+05],\n", + " [1.88800e+03, 2.00000e+00, 2.55000e+05],\n", + " [1.60400e+03, 3.00000e+00, 2.42900e+05],\n", + " [1.96200e+03, 4.00000e+00, 2.59900e+05],\n", + " [3.89000e+03, 3.00000e+00, 5.73900e+05],\n", + " [1.10000e+03, 3.00000e+00, 2.49900e+05],\n", + " [1.45800e+03, 3.00000e+00, 4.64500e+05],\n", + " [2.52600e+03, 3.00000e+00, 4.69000e+05],\n", + " [2.20000e+03, 3.00000e+00, 4.75000e+05],\n", + " [2.63700e+03, 3.00000e+00, 2.99900e+05],\n", + " [1.83900e+03, 2.00000e+00, 3.49900e+05],\n", + " [1.00000e+03, 1.00000e+00, 1.69900e+05],\n", + " [2.04000e+03, 4.00000e+00, 3.14900e+05],\n", + " [3.13700e+03, 3.00000e+00, 5.79900e+05],\n", + " [1.81100e+03, 4.00000e+00, 2.85900e+05],\n", + " [1.43700e+03, 3.00000e+00, 2.49900e+05],\n", + " [1.23900e+03, 3.00000e+00, 2.29900e+05],\n", + " [2.13200e+03, 4.00000e+00, 3.45000e+05],\n", + " [4.21500e+03, 4.00000e+00, 5.49000e+05],\n", + " [2.16200e+03, 4.00000e+00, 2.87000e+05],\n", + " [1.66400e+03, 2.00000e+00, 3.68500e+05],\n", + " [2.23800e+03, 3.00000e+00, 3.29900e+05],\n", + " [2.56700e+03, 4.00000e+00, 3.14000e+05],\n", + " [1.20000e+03, 3.00000e+00, 2.99000e+05],\n", + " [8.52000e+02, 2.00000e+00, 1.79900e+05],\n", + " [1.85200e+03, 4.00000e+00, 2.99900e+05],\n", + " [1.20300e+03, 3.00000e+00, 2.39500e+05]])" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ds1\n", + "ds2" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "def computeCost(theta,arr):\n", + " r=arr.shape[0]\n", + " c=arr.shape[1]\n", + " \n", + " \n", + " \n", + " one1=np.ones((r,1))\n", + " arr=np.concatenate((one1,arr),axis=1)\n", + " theta_t=theta.transpose()\n", + " cost=np.dot(arr[:,0:c],theta_t)\n", + " return cost" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "def computeCostMulti(theta,arr):\n", + " r=arr.shape[0]\n", + " c=arr.shape[1] \n", + " one1=np.ones((r,1))\n", + " arr=np.concatenate((one1,arr),axis=1)\n", + " theta_t=theta.transpose()\n", + " cost=np.dot(arr[:,0:c],theta_t)\n", + " return cost" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "cost1=computeCost(theta1,ds1)\n", + "cost2=computeCostMulti(theta2,ds2)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[ 3.39377399 2.6989512 6.26719552 4.45927234 3.09515767 6.10530086\n", + " 5.02381586 6.33818102 3.84247394 2.13452698 2.91727635 13.00234766\n", + " 2.94507404 6.13572322 2.833764 2.52202431 3.69835548 2.22460102\n", + " 3.77494824 4.53992141 3.48802365 20.28701109 2.65409313 3.65146926\n", + " 2.74333205 18.70624151 11.40845471 9.17628876 11.82363042 22.59314512\n", + " 2.37050903 3.96559502 7.13763287 3.13333475 5.90033768 5.56903223\n", + " 5.7629002 2.79272364 11.41799898 3.68403908 2.55483273 4.31527318\n", + " 10.07225703 2.99243747 5.43934948 4.56652606 2.1531383 3.02548451\n", + " 10.06271276 2.71553436 5.09993141 2.43648379 4.96118159 5.17497322\n", + " 3.65946258 3.69060076 3.58955081 2.83257096 7.21160096 7.38268198\n", + " 6.63321825 2.28329828 21.49078204 13.88996469 18.72294398 4.71577457\n", + " 6.0005525 8.3161115 2.66518834 20.37171648 8.19680814 4.85452438\n", + " 3.2698178 4.72496093 2.10147995 3.91608412 5.09802255 2.11293307\n", + " 8.36144678 2.19787707 2.93934748 2.29415488 3.68678305 7.75860688\n", + " 3.87790704 6.26552528 7.05650658 3.26480705 2.69024205 2.14025354\n", + " 2.91369725 5.21493985 3.10816174 2.43373982 5.99852435 12.08371175\n", + " 2.59062374]\n", + "[356283.1103389 286120.93063401 397489.46984811 269244.1857271\n", + " 472277.85514636 330979.02101847 276933.02614885 262037.48402896\n", + " 255494.58235014 271364.59918814 324714.54068768 341805.20024106\n", + " 326492.02609912 669293.21223208 239902.98686016 374830.38333402\n", + " 255879.96102141 235448.2452916 417846.48160547 476593.38604091\n", + " 309369.11319496 334951.62386342 286677.77333008 327777.17551607\n", + " 604913.37413438 216515.5936252 266353.01492351 415030.01477433\n", + " 369647.33504459 430482.39959029 328130.30083655 220070.56444809\n", + " 338635.60808944 500087.7365991 306756.3637394 263429.59076914\n", + " 235865.87731365 351442.99009906 641418.82407778 355619.31031959\n", + " 303768.43288347 374937.34065726 411999.63329673 230436.66102696\n", + " 190729.36558116 312464.00137413 230854.29304902]\n" + ] + } + ], + "source": [ + "print(cost1)\n", + "print(cost2)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "r=ds1.shape[0]\n", + "c=ds1.shape[1]\n", + "print (c)\n", + "plt.scatter(ds1[:,0],ds1[:,1])\n", + "plt.plot(ds1[:,0],cost1,'r')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "def featureNormalize(arr):\n", + " c=arr.shape[1]\n", + " for i in range(0,c):\n", + " rng=max(arr[:,i])-min(arr[:,i])\n", + " arr[:,i]=arr[:,i]/rng\n", + " return arr\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "r1=ds1.shape[0]\n", + "c1=ds1.shape[1] \n", + "one1=np.ones((r1,1))\n", + "ds_1=featureNormalize(ds1[:,0:c1])\n", + "ds_1n=np.concatenate((one1,ds_1),axis=1)\n", + "r2=ds2.shape[0]\n", + "c2=ds2.shape[1] \n", + "one2=np.ones((r2,1))\n", + "ds_2=featureNormalize(ds2[:,0:c2])\n", + "ds_2n=np.concatenate((one2,ds_2),axis=1)\n", + "\n", + "x1=ds_1n[:,0:c1+1]\n", + "x2=ds_2n[:,0:c2+1]\n", + "y1=ds_1n[:,c1]\n", + "y2=ds_2n[:,c2]" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "def gradientMulti(X_norm,y,theta,alpha,m,n):\n", + " temp=np.array(np.zeros_like(theta,float))\n", + " h=computeCost(theta,X_norm)\n", + " while(j>0.01):\n", + " for i in range(0,n):\n", + " temp[i]=theta[i]-(alpha/m)*(np.sum((h-y)*X_norm[:,i]))\n", + " theta=temp\n", + " h=computeCost(theta,X_norm)\n", + " j=(1/(2*m))*np.sum(np.square(h-y)) \n", + " return theta" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "def gradient(X_norm,y,theta,alpha,m,n,num_it):\n", + " temp=np.array(np.zeros_like(theta,float))\n", + " h=computeCost(theta,X_norm)\n", + " while(j>0.01):\n", + " temp[0]=theta[0]-(alpha/m)*(np.sum(h-y))\n", + " temp[1]=theta[1]-(alpha/m)*(np.sum((h-y)*X_norm[:,1]))\n", + " theta=temp\n", + " h=computeCost(theta,X_norm)\n", + " j=(1/(2*m))*np.sum(np.square(h-y))\n", + " return theta" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/Phase 3 - 2020 (Summer)/Week 2 (Apr 5 - Apr 11)/Exercise1/AishikRakshit_190122002.ipynb b/Phase 3 - 2020 (Summer)/Week 2 (Apr 5 - Apr 11)/Exercise1/AishikRakshit_190122002.ipynb new file mode 100644 index 000000000..135e1495e --- /dev/null +++ b/Phase 3 - 2020 (Summer)/Week 2 (Apr 5 - Apr 11)/Exercise1/AishikRakshit_190122002.ipynb @@ -0,0 +1,509 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "import os\n", + "from matplotlib import pyplot as plt\n", + "from numpy.linalg import inv\n", + "from mpl_toolkits import mplot3d as plt3d" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "ds1=np.genfromtxt(r\"C:\\Users\\LENOVO\\Desktop\\machine-learning-ex\\ex1\\ex1data1.csv\",delimiter=',')\n", + "ds2=np.genfromtxt(r\"C:\\Users\\LENOVO\\Desktop\\machine-learning-ex\\ex1\\ex1data2.csv\",delimiter=',')" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "def plotdata():\n", + " print(\"Dataset 1\")\n", + " print(ds1)\n", + " print(\"Dataset 2\")\n", + " print(ds2)\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[ 6.1101 , 17.592 ],\n", + " [ 5.5277 , 9.1302 ],\n", + " [ 8.5186 , 13.662 ],\n", + " [ 7.0032 , 11.854 ],\n", + " [ 5.8598 , 6.8233 ],\n", + " [ 8.3829 , 11.886 ],\n", + " [ 7.4764 , 4.3483 ],\n", + " [ 8.5781 , 12. ],\n", + " [ 6.4862 , 6.5987 ],\n", + " [ 5.0546 , 3.8166 ],\n", + " [ 5.7107 , 3.2522 ],\n", + " [14.164 , 15.505 ],\n", + " [ 5.734 , 3.1551 ],\n", + " [ 8.4084 , 7.2258 ],\n", + " [ 5.6407 , 0.71618],\n", + " [ 5.3794 , 3.5129 ],\n", + " [ 6.3654 , 5.3048 ],\n", + " [ 5.1301 , 0.56077],\n", + " [ 6.4296 , 3.6518 ],\n", + " [ 7.0708 , 5.3893 ],\n", + " [ 6.1891 , 3.1386 ],\n", + " [20.27 , 21.767 ],\n", + " [ 5.4901 , 4.263 ],\n", + " [ 6.3261 , 5.1875 ],\n", + " [ 5.5649 , 3.0825 ],\n", + " [18.945 , 22.638 ],\n", + " [12.828 , 13.501 ],\n", + " [10.957 , 7.0467 ],\n", + " [13.176 , 14.692 ],\n", + " [22.203 , 24.147 ],\n", + " [ 5.2524 , -1.22 ],\n", + " [ 6.5894 , 5.9966 ],\n", + " [ 9.2482 , 12.134 ],\n", + " [ 5.8918 , 1.8495 ],\n", + " [ 8.2111 , 6.5426 ],\n", + " [ 7.9334 , 4.5623 ],\n", + " [ 8.0959 , 4.1164 ],\n", + " [ 5.6063 , 3.3928 ],\n", + " [12.836 , 10.117 ],\n", + " [ 6.3534 , 5.4974 ],\n", + " [ 5.4069 , 0.55657],\n", + " [ 6.8825 , 3.9115 ],\n", + " [11.708 , 5.3854 ],\n", + " [ 5.7737 , 2.4406 ],\n", + " [ 7.8247 , 6.7318 ],\n", + " [ 7.0931 , 1.0463 ],\n", + " [ 5.0702 , 5.1337 ],\n", + " [ 5.8014 , 1.844 ],\n", + " [11.7 , 8.0043 ],\n", + " [ 5.5416 , 1.0179 ],\n", + " [ 7.5402 , 6.7504 ],\n", + " [ 5.3077 , 1.8396 ],\n", + " [ 7.4239 , 4.2885 ],\n", + " [ 7.6031 , 4.9981 ],\n", + " [ 6.3328 , 1.4233 ],\n", + " [ 6.3589 , -1.4211 ],\n", + " [ 6.2742 , 2.4756 ],\n", + " [ 5.6397 , 4.6042 ],\n", + " [ 9.3102 , 3.9624 ],\n", + " [ 9.4536 , 5.4141 ],\n", + " [ 8.8254 , 5.1694 ],\n", + " [ 5.1793 , -0.74279],\n", + " [21.279 , 17.929 ],\n", + " [14.908 , 12.054 ],\n", + " [18.959 , 17.054 ],\n", + " [ 7.2182 , 4.8852 ],\n", + " [ 8.2951 , 5.7442 ],\n", + " [10.236 , 7.7754 ],\n", + " [ 5.4994 , 1.0173 ],\n", + " [20.341 , 20.992 ],\n", + " [10.136 , 6.6799 ],\n", + " [ 7.3345 , 4.0259 ],\n", + " [ 6.0062 , 1.2784 ],\n", + " [ 7.2259 , 3.3411 ],\n", + " [ 5.0269 , -2.6807 ],\n", + " [ 6.5479 , 0.29678],\n", + " [ 7.5386 , 3.8845 ],\n", + " [ 5.0365 , 5.7014 ],\n", + " [10.274 , 6.7526 ],\n", + " [ 5.1077 , 2.0576 ],\n", + " [ 5.7292 , 0.47953],\n", + " [ 5.1884 , 0.20421],\n", + " [ 6.3557 , 0.67861],\n", + " [ 9.7687 , 7.5435 ],\n", + " [ 6.5159 , 5.3436 ],\n", + " [ 8.5172 , 4.2415 ],\n", + " [ 9.1802 , 6.7981 ],\n", + " [ 6.002 , 0.92695],\n", + " [ 5.5204 , 0.152 ],\n", + " [ 5.0594 , 2.8214 ],\n", + " [ 5.7077 , 1.8451 ],\n", + " [ 7.6366 , 4.2959 ],\n", + " [ 5.8707 , 7.2029 ],\n", + " [ 5.3054 , 1.9869 ],\n", + " [ 8.2934 , 0.14454],\n", + " [13.394 , 9.0551 ],\n", + " [ 5.4369 , 0.61705]])" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ds1" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "def normalEqn(arr):\n", + " \n", + " r=arr.shape[0]\n", + " c=arr.shape[1]\n", + " \n", + " d1=arr[:,c-1]\n", + " \n", + " one1=np.ones((r,1))\n", + " arr=np.concatenate((one1,arr),axis=1)\n", + " \n", + " t_t=arr[:,0:c].transpose()\n", + " t_c=arr[:,0:c]\n", + " a1=inv(np.dot(t_t,t_c))\n", + " b1=np.dot(a1,t_t)\n", + " theta=np.dot(b1,d1)\n", + " return theta" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[89597.9095428 139.21067402 -8738.01911233]\n" + ] + } + ], + "source": [ + "theta1=normalEqn(ds1)\n", + "theta2=normalEqn(ds2)\n", + "print(theta2)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[2.10400e+03, 3.00000e+00, 3.99900e+05],\n", + " [1.60000e+03, 3.00000e+00, 3.29900e+05],\n", + " [2.40000e+03, 3.00000e+00, 3.69000e+05],\n", + " [1.41600e+03, 2.00000e+00, 2.32000e+05],\n", + " [3.00000e+03, 4.00000e+00, 5.39900e+05],\n", + " [1.98500e+03, 4.00000e+00, 2.99900e+05],\n", + " [1.53400e+03, 3.00000e+00, 3.14900e+05],\n", + " [1.42700e+03, 3.00000e+00, 1.98999e+05],\n", + " [1.38000e+03, 3.00000e+00, 2.12000e+05],\n", + " [1.49400e+03, 3.00000e+00, 2.42500e+05],\n", + " [1.94000e+03, 4.00000e+00, 2.39999e+05],\n", + " [2.00000e+03, 3.00000e+00, 3.47000e+05],\n", + " [1.89000e+03, 3.00000e+00, 3.29999e+05],\n", + " [4.47800e+03, 5.00000e+00, 6.99900e+05],\n", + " [1.26800e+03, 3.00000e+00, 2.59900e+05],\n", + " [2.30000e+03, 4.00000e+00, 4.49900e+05],\n", + " [1.32000e+03, 2.00000e+00, 2.99900e+05],\n", + " [1.23600e+03, 3.00000e+00, 1.99900e+05],\n", + " [2.60900e+03, 4.00000e+00, 4.99998e+05],\n", + " [3.03100e+03, 4.00000e+00, 5.99000e+05],\n", + " [1.76700e+03, 3.00000e+00, 2.52900e+05],\n", + " [1.88800e+03, 2.00000e+00, 2.55000e+05],\n", + " [1.60400e+03, 3.00000e+00, 2.42900e+05],\n", + " [1.96200e+03, 4.00000e+00, 2.59900e+05],\n", + " [3.89000e+03, 3.00000e+00, 5.73900e+05],\n", + " [1.10000e+03, 3.00000e+00, 2.49900e+05],\n", + " [1.45800e+03, 3.00000e+00, 4.64500e+05],\n", + " [2.52600e+03, 3.00000e+00, 4.69000e+05],\n", + " [2.20000e+03, 3.00000e+00, 4.75000e+05],\n", + " [2.63700e+03, 3.00000e+00, 2.99900e+05],\n", + " [1.83900e+03, 2.00000e+00, 3.49900e+05],\n", + " [1.00000e+03, 1.00000e+00, 1.69900e+05],\n", + " [2.04000e+03, 4.00000e+00, 3.14900e+05],\n", + " [3.13700e+03, 3.00000e+00, 5.79900e+05],\n", + " [1.81100e+03, 4.00000e+00, 2.85900e+05],\n", + " [1.43700e+03, 3.00000e+00, 2.49900e+05],\n", + " [1.23900e+03, 3.00000e+00, 2.29900e+05],\n", + " [2.13200e+03, 4.00000e+00, 3.45000e+05],\n", + " [4.21500e+03, 4.00000e+00, 5.49000e+05],\n", + " [2.16200e+03, 4.00000e+00, 2.87000e+05],\n", + " [1.66400e+03, 2.00000e+00, 3.68500e+05],\n", + " [2.23800e+03, 3.00000e+00, 3.29900e+05],\n", + " [2.56700e+03, 4.00000e+00, 3.14000e+05],\n", + " [1.20000e+03, 3.00000e+00, 2.99000e+05],\n", + " [8.52000e+02, 2.00000e+00, 1.79900e+05],\n", + " [1.85200e+03, 4.00000e+00, 2.99900e+05],\n", + " [1.20300e+03, 3.00000e+00, 2.39500e+05]])" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ds1\n", + "ds2" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "def computeCost(theta,arr):\n", + " r=arr.shape[0]\n", + " c=arr.shape[1]\n", + " \n", + " \n", + " \n", + " one1=np.ones((r,1))\n", + " arr=np.concatenate((one1,arr),axis=1)\n", + " theta_t=theta.transpose()\n", + " cost=np.dot(arr[:,0:c],theta_t)\n", + " return cost" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "def computeCostMulti(theta,arr):\n", + " r=arr.shape[0]\n", + " c=arr.shape[1] \n", + " one1=np.ones((r,1))\n", + " arr=np.concatenate((one1,arr),axis=1)\n", + " theta_t=theta.transpose()\n", + " cost=np.dot(arr[:,0:c],theta_t)\n", + " return cost" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "cost1=computeCost(theta1,ds1)\n", + "cost2=computeCostMulti(theta2,ds2)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[ 3.39377399 2.6989512 6.26719552 4.45927234 3.09515767 6.10530086\n", + " 5.02381586 6.33818102 3.84247394 2.13452698 2.91727635 13.00234766\n", + " 2.94507404 6.13572322 2.833764 2.52202431 3.69835548 2.22460102\n", + " 3.77494824 4.53992141 3.48802365 20.28701109 2.65409313 3.65146926\n", + " 2.74333205 18.70624151 11.40845471 9.17628876 11.82363042 22.59314512\n", + " 2.37050903 3.96559502 7.13763287 3.13333475 5.90033768 5.56903223\n", + " 5.7629002 2.79272364 11.41799898 3.68403908 2.55483273 4.31527318\n", + " 10.07225703 2.99243747 5.43934948 4.56652606 2.1531383 3.02548451\n", + " 10.06271276 2.71553436 5.09993141 2.43648379 4.96118159 5.17497322\n", + " 3.65946258 3.69060076 3.58955081 2.83257096 7.21160096 7.38268198\n", + " 6.63321825 2.28329828 21.49078204 13.88996469 18.72294398 4.71577457\n", + " 6.0005525 8.3161115 2.66518834 20.37171648 8.19680814 4.85452438\n", + " 3.2698178 4.72496093 2.10147995 3.91608412 5.09802255 2.11293307\n", + " 8.36144678 2.19787707 2.93934748 2.29415488 3.68678305 7.75860688\n", + " 3.87790704 6.26552528 7.05650658 3.26480705 2.69024205 2.14025354\n", + " 2.91369725 5.21493985 3.10816174 2.43373982 5.99852435 12.08371175\n", + " 2.59062374]\n", + "[356283.1103389 286120.93063401 397489.46984811 269244.1857271\n", + " 472277.85514636 330979.02101847 276933.02614885 262037.48402896\n", + " 255494.58235014 271364.59918814 324714.54068768 341805.20024106\n", + " 326492.02609912 669293.21223208 239902.98686016 374830.38333402\n", + " 255879.96102141 235448.2452916 417846.48160547 476593.38604091\n", + " 309369.11319496 334951.62386342 286677.77333008 327777.17551607\n", + " 604913.37413438 216515.5936252 266353.01492351 415030.01477433\n", + " 369647.33504459 430482.39959029 328130.30083655 220070.56444809\n", + " 338635.60808944 500087.7365991 306756.3637394 263429.59076914\n", + " 235865.87731365 351442.99009906 641418.82407778 355619.31031959\n", + " 303768.43288347 374937.34065726 411999.63329673 230436.66102696\n", + " 190729.36558116 312464.00137413 230854.29304902]\n" + ] + } + ], + "source": [ + "print(cost1)\n", + "print(cost2)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "r=ds1.shape[0]\n", + "c=ds1.shape[1]\n", + "print (c)\n", + "plt.scatter(ds1[:,0],ds1[:,1])\n", + "plt.plot(ds1[:,0],cost1,'r')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "def featureNormalize(arr):\n", + " c=arr.shape[1]\n", + " for i in range(0,c):\n", + " rng=max(arr[:,i])-min(arr[:,i])\n", + " arr[:,i]=arr[:,i]/rng\n", + " return arr\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "r1=ds1.shape[0]\n", + "c1=ds1.shape[1] \n", + "one1=np.ones((r1,1))\n", + "ds_1=featureNormalize(ds1[:,0:c1])\n", + "ds_1n=np.concatenate((one1,ds_1),axis=1)\n", + "r2=ds2.shape[0]\n", + "c2=ds2.shape[1] \n", + "one2=np.ones((r2,1))\n", + "ds_2=featureNormalize(ds2[:,0:c2])\n", + "ds_2n=np.concatenate((one2,ds_2),axis=1)\n", + "\n", + "x1=ds_1n[:,0:c1+1]\n", + "x2=ds_2n[:,0:c2+1]\n", + "y1=ds_1n[:,c1]\n", + "y2=ds_2n[:,c2]" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "def gradientMulti(X_norm,y,theta,alpha,m,n):\n", + " temp=np.array(np.zeros_like(theta,float))\n", + " h=computeCost(theta,X_norm)\n", + " while(j>0.01):\n", + " for i in range(0,n):\n", + " temp[i]=theta[i]-(alpha/m)*(np.sum((h-y)*X_norm[:,i]))\n", + " theta=temp\n", + " h=computeCost(theta,X_norm)\n", + " j=(1/(2*m))*np.sum(np.square(h-y)) \n", + " return theta" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "def gradient(X_norm,y,theta,alpha,m,n,num_it):\n", + " temp=np.array(np.zeros_like(theta,float))\n", + " h=computeCost(theta,X_norm)\n", + " while(j>0.01):\n", + " temp[0]=theta[0]-(alpha/m)*(np.sum(h-y))\n", + " temp[1]=theta[1]-(alpha/m)*(np.sum((h-y)*X_norm[:,1]))\n", + " theta=temp\n", + " h=computeCost(theta,X_norm)\n", + " j=(1/(2*m))*np.sum(np.square(h-y))\n", + " return theta" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/Phase 3 - 2020 (Summer)/Week 2 (Apr 5 - Apr 11)/Exercise1/ex1data1.csv b/Phase 3 - 2020 (Summer)/Week 2 (Apr 5 - Apr 11)/Exercise1/ex1data1.csv new file mode 100644 index 000000000..0f88ccb61 --- /dev/null +++ b/Phase 3 - 2020 (Summer)/Week 2 (Apr 5 - Apr 11)/Exercise1/ex1data1.csv @@ -0,0 +1,97 @@ +6.1101,17.592 +5.5277,9.1302 +8.5186,13.662 +7.0032,11.854 +5.8598,6.8233 +8.3829,11.886 +7.4764,4.3483 +8.5781,12 +6.4862,6.5987 +5.0546,3.8166 +5.7107,3.2522 +14.164,15.505 +5.734,3.1551 +8.4084,7.2258 +5.6407,0.71618 +5.3794,3.5129 +6.3654,5.3048 +5.1301,0.56077 +6.4296,3.6518 +7.0708,5.3893 +6.1891,3.1386 +20.27,21.767 +5.4901,4.263 +6.3261,5.1875 +5.5649,3.0825 +18.945,22.638 +12.828,13.501 +10.957,7.0467 +13.176,14.692 +22.203,24.147 +5.2524,-1.22 +6.5894,5.9966 +9.2482,12.134 +5.8918,1.8495 +8.2111,6.5426 +7.9334,4.5623 +8.0959,4.1164 +5.6063,3.3928 +12.836,10.117 +6.3534,5.4974 +5.4069,0.55657 +6.8825,3.9115 +11.708,5.3854 +5.7737,2.4406 +7.8247,6.7318 +7.0931,1.0463 +5.0702,5.1337 +5.8014,1.844 +11.7,8.0043 +5.5416,1.0179 +7.5402,6.7504 +5.3077,1.8396 +7.4239,4.2885 +7.6031,4.9981 +6.3328,1.4233 +6.3589,-1.4211 +6.2742,2.4756 +5.6397,4.6042 +9.3102,3.9624 +9.4536,5.4141 +8.8254,5.1694 +5.1793,-0.74279 +21.279,17.929 +14.908,12.054 +18.959,17.054 +7.2182,4.8852 +8.2951,5.7442 +10.236,7.7754 +5.4994,1.0173 +20.341,20.992 +10.136,6.6799 +7.3345,4.0259 +6.0062,1.2784 +7.2259,3.3411 +5.0269,-2.6807 +6.5479,0.29678 +7.5386,3.8845 +5.0365,5.7014 +10.274,6.7526 +5.1077,2.0576 +5.7292,0.47953 +5.1884,0.20421 +6.3557,0.67861 +9.7687,7.5435 +6.5159,5.3436 +8.5172,4.2415 +9.1802,6.7981 +6.002,0.92695 +5.5204,0.152 +5.0594,2.8214 +5.7077,1.8451 +7.6366,4.2959 +5.8707,7.2029 +5.3054,1.9869 +8.2934,0.14454 +13.394,9.0551 +5.4369,0.61705 diff --git a/Phase 3 - 2020 (Summer)/Week 2 (Apr 5 - Apr 11)/Exercise1/ex1data2.csv b/Phase 3 - 2020 (Summer)/Week 2 (Apr 5 - Apr 11)/Exercise1/ex1data2.csv new file mode 100644 index 000000000..79e9a807e --- /dev/null +++ b/Phase 3 - 2020 (Summer)/Week 2 (Apr 5 - Apr 11)/Exercise1/ex1data2.csv @@ -0,0 +1,47 @@ +2104,3,399900 +1600,3,329900 +2400,3,369000 +1416,2,232000 +3000,4,539900 +1985,4,299900 +1534,3,314900 +1427,3,198999 +1380,3,212000 +1494,3,242500 +1940,4,239999 +2000,3,347000 +1890,3,329999 +4478,5,699900 +1268,3,259900 +2300,4,449900 +1320,2,299900 +1236,3,199900 +2609,4,499998 +3031,4,599000 +1767,3,252900 +1888,2,255000 +1604,3,242900 +1962,4,259900 +3890,3,573900 +1100,3,249900 +1458,3,464500 +2526,3,469000 +2200,3,475000 +2637,3,299900 +1839,2,349900 +1000,1,169900 +2040,4,314900 +3137,3,579900 +1811,4,285900 +1437,3,249900 +1239,3,229900 +2132,4,345000 +4215,4,549000 +2162,4,287000 +1664,2,368500 +2238,3,329900 +2567,4,314000 +1200,3,299000 +852,2,179900 +1852,4,299900 +1203,3,239500 diff --git a/Phase 3 - 2020 (Summer)/Week 2 (Apr 5 - Apr 11)/ex1data1.csv b/Phase 3 - 2020 (Summer)/Week 2 (Apr 5 - Apr 11)/ex1data1.csv new file mode 100644 index 000000000..0f88ccb61 --- /dev/null +++ b/Phase 3 - 2020 (Summer)/Week 2 (Apr 5 - Apr 11)/ex1data1.csv @@ -0,0 +1,97 @@ +6.1101,17.592 +5.5277,9.1302 +8.5186,13.662 +7.0032,11.854 +5.8598,6.8233 +8.3829,11.886 +7.4764,4.3483 +8.5781,12 +6.4862,6.5987 +5.0546,3.8166 +5.7107,3.2522 +14.164,15.505 +5.734,3.1551 +8.4084,7.2258 +5.6407,0.71618 +5.3794,3.5129 +6.3654,5.3048 +5.1301,0.56077 +6.4296,3.6518 +7.0708,5.3893 +6.1891,3.1386 +20.27,21.767 +5.4901,4.263 +6.3261,5.1875 +5.5649,3.0825 +18.945,22.638 +12.828,13.501 +10.957,7.0467 +13.176,14.692 +22.203,24.147 +5.2524,-1.22 +6.5894,5.9966 +9.2482,12.134 +5.8918,1.8495 +8.2111,6.5426 +7.9334,4.5623 +8.0959,4.1164 +5.6063,3.3928 +12.836,10.117 +6.3534,5.4974 +5.4069,0.55657 +6.8825,3.9115 +11.708,5.3854 +5.7737,2.4406 +7.8247,6.7318 +7.0931,1.0463 +5.0702,5.1337 +5.8014,1.844 +11.7,8.0043 +5.5416,1.0179 +7.5402,6.7504 +5.3077,1.8396 +7.4239,4.2885 +7.6031,4.9981 +6.3328,1.4233 +6.3589,-1.4211 +6.2742,2.4756 +5.6397,4.6042 +9.3102,3.9624 +9.4536,5.4141 +8.8254,5.1694 +5.1793,-0.74279 +21.279,17.929 +14.908,12.054 +18.959,17.054 +7.2182,4.8852 +8.2951,5.7442 +10.236,7.7754 +5.4994,1.0173 +20.341,20.992 +10.136,6.6799 +7.3345,4.0259 +6.0062,1.2784 +7.2259,3.3411 +5.0269,-2.6807 +6.5479,0.29678 +7.5386,3.8845 +5.0365,5.7014 +10.274,6.7526 +5.1077,2.0576 +5.7292,0.47953 +5.1884,0.20421 +6.3557,0.67861 +9.7687,7.5435 +6.5159,5.3436 +8.5172,4.2415 +9.1802,6.7981 +6.002,0.92695 +5.5204,0.152 +5.0594,2.8214 +5.7077,1.8451 +7.6366,4.2959 +5.8707,7.2029 +5.3054,1.9869 +8.2934,0.14454 +13.394,9.0551 +5.4369,0.61705 diff --git a/Phase 3 - 2020 (Summer)/Week 2 (Apr 5 - Apr 11)/ex1data2.csv b/Phase 3 - 2020 (Summer)/Week 2 (Apr 5 - Apr 11)/ex1data2.csv new file mode 100644 index 000000000..79e9a807e --- /dev/null +++ b/Phase 3 - 2020 (Summer)/Week 2 (Apr 5 - Apr 11)/ex1data2.csv @@ -0,0 +1,47 @@ +2104,3,399900 +1600,3,329900 +2400,3,369000 +1416,2,232000 +3000,4,539900 +1985,4,299900 +1534,3,314900 +1427,3,198999 +1380,3,212000 +1494,3,242500 +1940,4,239999 +2000,3,347000 +1890,3,329999 +4478,5,699900 +1268,3,259900 +2300,4,449900 +1320,2,299900 +1236,3,199900 +2609,4,499998 +3031,4,599000 +1767,3,252900 +1888,2,255000 +1604,3,242900 +1962,4,259900 +3890,3,573900 +1100,3,249900 +1458,3,464500 +2526,3,469000 +2200,3,475000 +2637,3,299900 +1839,2,349900 +1000,1,169900 +2040,4,314900 +3137,3,579900 +1811,4,285900 +1437,3,249900 +1239,3,229900 +2132,4,345000 +4215,4,549000 +2162,4,287000 +1664,2,368500 +2238,3,329900 +2567,4,314000 +1200,3,299000 +852,2,179900 +1852,4,299900 +1203,3,239500 diff --git a/Phase 3 - 2020 (Summer)/Week 3(Apr 13 - Apr 18)/AishikRakshit_190122002_W03.ipynb b/Phase 3 - 2020 (Summer)/Week 3(Apr 13 - Apr 18)/AishikRakshit_190122002_W03.ipynb new file mode 100644 index 000000000..3f4faf068 --- /dev/null +++ b/Phase 3 - 2020 (Summer)/Week 3(Apr 13 - Apr 18)/AishikRakshit_190122002_W03.ipynb @@ -0,0 +1,526 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# used for manipulating directory paths\n", + "import os\n", + "\n", + "# Scientific and vector computation for python\n", + "import numpy as np\n", + "\n", + "# Plotting library\n", + "from matplotlib import pyplot\n", + "\n", + "# Optimization module in scipy\n", + "from scipy import optimize\n", + "\n", + "# library written for this exercise providing additional functions for assignment submission, and others\n", + "import utils\n", + "\n", + "\n", + "\n", + "# tells matplotlib to embed plots within the notebook\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "# Load data\n", + "# The first two columns contains the exam scores and the third column\n", + "# contains the label.\n", + "data = np.loadtxt(r'C:\\Users\\LENOVO\\Desktop\\Machine learning\\machine-learning-ex\\ex2\\ex2data1.txt', delimiter=',')\n", + "X, y = data[:, 0:2], data[:, 2]\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "def plotData(X, y):\n", + " \"\"\"\n", + " Plots the data points X and y into a new figure. Plots the data \n", + " points with * for the positive examples and o for the negative examples.\n", + " \n", + " Parameters\n", + " ----------\n", + " X : array_like\n", + " An Mx2 matrix representing the dataset. \n", + " \n", + " y : array_like\n", + " Label values for the dataset. A vector of size (M, ).\n", + " \n", + " Instructions\n", + " ------------\n", + " Plot the positive and negative examples on a 2D plot, using the\n", + " option 'k*' for the positive examples and 'ko' for the negative examples. \n", + " \"\"\"\n", + " # Create New Figure\n", + " fig = pyplot.figure()\n", + "\n", + " # ====================== YOUR CODE HERE ======================\n", + " pos = y == 1\n", + " neg = y == 0\n", + " pyplot.plot(X[pos, 0], X[pos, 1], 'k*', lw=2, ms=10)\n", + " pyplot.plot(X[neg, 0], X[neg, 1], 'ko', mfc='y', ms=8, mec='k', mew=1)\n", + " \n", + " \n", + " # ============================================================" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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W+NqK1VdoKplqlpWUlJyzP4DBw6YQvARIkL//v0zOnLzg0tlqpiLc3v8YMJKl3TiPIJk7nR9pCAiPwAuAZqBCHA88BvgAuDjqtosImOB21X1gs7OFW+i+fXXX+eMM85ISabGxkYuv/xyFi9eTHFxcUrHGsmRzveSCD9N2hrpEzPBPPigNyasdEl1ktyPIwtfjRRU9d9VdZCqDgamAWtU9WJgLfA1522XAY+7JZNfi4sb8fHTpK2RPslmF/AbqU6S+yGCPBX8FKdwC9FJ578B/YFFbl04FsaeyXD23/zmN4gIf/nLX+Luv/zyy3nssceSPt/27dv52teiOvOFF17gySefbN23bt261iIkqTB48GB2796d8nFe42YksmF0JNVOSdDMnZ4qBVVdp6qTndd/V9VPq+pQVb1IVQ9m67puVHWqq6vj85//PEuXLs2IzAMHDmxVIplSCkElyPZoI/ik2ikJmvutn0YKrnHbbbe1y50eK6aRqaIaTU1NPP300yxatKhVKagqN954I2eeeSZf+tKX2NmmIMPgwYP5/ve/z9ixYykrK+P555/nggsu4NRTT+WnP/0pAFu2bOHss8/m0KFDzJ49m0ceeYRRo0Zx11138dOf/pR7772XUaNG8dRTT7Fr1y6++tWvcu6553Luuefy9NNPA7Bnzx6+8IUvMHr0aL71rW8R1BQnNmlreEmqnZLAmTsTlWQLQotXjvO1117rtAxdjGwUF49RW1ur//qv/6qqqmPHjtWNGzfqr371K504caI2NzfrO++8o8XFxfroo4+qquopp5yi999/v6qqzpgxQ4cPH64ffvih7ty5U0tKSlRVdfPmzXrWWWepqupDDz2kN9xwQ+v1qqurdd68ea3r06dP16eeekpVVd966y09/fTTVVX129/+ttbU1Kiq6hNPPKGA7tq1K+3PmQrJfi+GEQRipURLS0s0HA5paWlJwjKunZX2nTAhojU1s12Xn07KcXoSvOYHYkU1LrroonbukpkoqlFXV8eMGTMAmDZtGnV1dRw+fJjp06cTDocZOHAgEyZMaHfMl7/8ZQCGDx9OU1MTffr0oU+fPkQikZTzua9atYrXXnutdf3DDz9k3759bNiwgV//+tcAfOlLX+KEE05I+zMaRj4TmyRPJpaiquomli37FXPnxo9R8Zu5M2+VArQvqlFQUMDBgwe7XVRj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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plotData(X, y)\n", + "# add axes labels\n", + "pyplot.xlabel('Exam 1 score')\n", + "pyplot.ylabel('Exam 2 score')\n", + "pyplot.legend(['Admitted', 'Not admitted'])\n", + "pass\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "def sigmoid(z):\n", + " \"\"\"\n", + " Compute sigmoid function given the input z.\n", + " \n", + " Parameters\n", + " ----------\n", + " z : array_like\n", + " The input to the sigmoid function. This can be a 1-D vector \n", + " or a 2-D matrix. \n", + " \n", + " Returns\n", + " -------\n", + " g : array_like\n", + " The computed sigmoid function. g has the same shape as z, since\n", + " the sigmoid is computed element-wise on z.\n", + " \n", + " Instructions\n", + " ------------\n", + " Compute the sigmoid of each value of z (z can be a matrix, vector or scalar).\n", + " \"\"\"\n", + " # convert input to a numpy array\n", + " z = np.array(z)\n", + " \n", + " # You need to return the following variables correctly \n", + " g = np.zeros(z.shape)\n", + " \n", + " # ====================== YOUR CODE HERE ======================\n", + " g=1/(1+np.exp(-z))\n", + " # =============================================================\n", + " return g" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "g( 0 ) = 0.5\n" + ] + } + ], + "source": [ + "# Test the implementation of sigmoid function here\n", + "z = 0\n", + "g = sigmoid(z)\n", + "\n", + "print('g(', z, ') = ', g)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "# Setup the data matrix appropriately, and add ones for the intercept term\n", + "m, n = X.shape\n", + "\n", + "# Add intercept term to X\n", + "X = np.concatenate([np.ones((m, 1)), X], axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": {}, + "outputs": [], + "source": [ + "def costFunction(theta, X, y):\n", + " \"\"\"\n", + " Compute cost and gradient for logistic regression. \n", + " \n", + " Parameters\n", + " ----------\n", + " theta : array_like\n", + " The parameters for logistic regression. This a vector\n", + " of shape (n+1, ).\n", + " \n", + " X : array_like\n", + " The input dataset of shape (m x n+1) where m is the total number\n", + " of data points and n is the number of features. We assume the \n", + " intercept has already been added to the input.\n", + " \n", + " y : arra_like\n", + " Labels for the input. This is a vector of shape (m, ).\n", + " \n", + " Returns\n", + " -------\n", + " J : float\n", + " The computed value for the cost function. \n", + " \n", + " grad : array_like\n", + " A vector of shape (n+1, ) which is the gradient of the cost\n", + " function with respect to theta, at the current values of theta.\n", + " \n", + " Instructions\n", + " ------------\n", + " Compute the cost of a particular choice of theta. You should set J to \n", + " the cost. Compute the partial derivatives and set grad to the partial\n", + " derivatives of the cost w.r.t. each parameter in theta.\n", + " \"\"\"\n", + " # Initialize some useful values\n", + " m = y.size # number of training examples\n", + "\n", + " # You need to return the following variables correctly \n", + " J = 0\n", + " grad = np.zeros(theta.shape)\n", + "\n", + " # ====================== YOUR CODE HERE ======================\n", + " z=np.dot(X,theta)\n", + " A=sigmoid(z)\n", + " J =-1/m * np.sum( np.multiply(np.log(A), y) + np.multiply(np.log(1-A), (1-y)))\n", + " #J=-(1/m)*sum(y*np.log(g)+(1-y)*(1-np.log(g)))\n", + " grad=(1/m)*X.transpose()@(g-y)\n", + " \n", + " \n", + " # =============================================================\n", + " return J, grad" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Cost\n", + "0.6931471805599453\n", + "Gradient at initial theta (zeros):\n", + "[ -0.1 -12.00921659 -11.26284221]\n", + "Cost\n", + "0.21833019382659774\n", + "Gradient at initial theta (zeros):\n", + "[ -0.1 -12.00921659 -11.26284221]\n" + ] + } + ], + "source": [ + "# Initialize fitting parameters\n", + "initial_theta = np.zeros(n+1)\n", + "\n", + "cost, grad = costFunction(initial_theta, X, y)\n", + "\n", + "print(\"Cost\")\n", + "print(cost)\n", + "print('Gradient at initial theta (zeros):')\n", + "print(grad)\n", + "\n", + "test_theta = np.array([-24, 0.2, 0.2])\n", + "cost, grad = costFunction(test_theta, X, y)\n", + "\n", + "print(\"Cost\")\n", + "print(cost)\n", + "print('Gradient at initial theta (zeros):')\n", + "print(grad)" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.6394269623737789\n", + "theta:\n", + "[6.39239128e-05 7.67676114e-03 7.19964943e-03]\n" + ] + } + ], + "source": [ + "# set options for optimize.minimize\n", + "options= {'maxiter': 400}\n", + "\n", + "# see documention for scipy's optimize.minimize for description about\n", + "# the different parameters\n", + "# The function returns an object `OptimizeResult`\n", + "# We use truncated Newton algorithm for optimization which is \n", + "# equivalent to MATLAB's fminunc\n", + "# See https://stackoverflow.com/questions/18801002/fminunc-alternate-in-numpy\n", + "res = optimize.minimize(costFunction,\n", + " initial_theta,\n", + " (X, y),\n", + " jac=True,\n", + " method='TNC',\n", + " options=options)\n", + "# the fun property of `OptimizeResult` object returns\n", + "# the value of costFunction at optimized theta\n", + "cost = res.fun\n", + "\n", + "# the optimized theta is in the x property\n", + "theta = res.x\n", + "print(cost)\n", + "print('theta:')\n", + "print(theta)" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": {}, + "outputs": [], + "source": [ + "def predict(theta, X):\n", + " \"\"\"\n", + " Predict whether the label is 0 or 1 using learned logistic regression.\n", + " Computes the predictions for X using a threshold at 0.5 \n", + " (i.e., if sigmoid(theta.T*x) >= 0.5, predict 1)\n", + " \n", + " Parameters\n", + " ----------\n", + " theta : array_like\n", + " Parameters for logistic regression. A vecotor of shape (n+1, ).\n", + " \n", + " X : array_like\n", + " The data to use for computing predictions. The rows is the number \n", + " of points to compute predictions, and columns is the number of\n", + " features.\n", + "\n", + " Returns\n", + " -------\n", + " p : array_like\n", + " Predictions and 0 or 1 for each row in X. \n", + " \n", + " Instructions\n", + " ------------\n", + " Complete the following code to make predictions using your learned \n", + " logistic regression parameters.You should set p to a vector of 0's and 1's \n", + " \"\"\"\n", + " m = X.shape[0]\n", + " # Number of training examples\n", + " m\n", + " # You need to return the following variables correctly\n", + " p = np.zeros(m)\n", + "\n", + " # ====================== YOUR CODE HERE ======================\n", + " z=X*theta\n", + " h=sigmoid(z)\n", + " p=np.round(p)\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " # ============================================================\n", + " return p" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "40.0" + ] + }, + "execution_count": 59, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "prob = sigmoid(np.dot([1, 45, 85], theta))\n", + "pr = predict(theta, X)\n", + "np.mean(pr == y) * 100" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": {}, + "outputs": [], + "source": [ + "# Load Data\n", + "# The first two columns contains the X values and the third column\n", + "# contains the label (y).\n", + "data = np.loadtxt(r'C:\\Users\\LENOVO\\Desktop\\Machine learning\\machine-learning-ex\\ex2\\ex2data2.txt', delimiter=',')\n", + "X = data[:, :2]\n", + "y = data[:, 2]" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plotData(X, y)\n", + "# Labels and Legend\n", + "pyplot.xlabel('Microchip Test 1')\n", + "pyplot.ylabel('Microchip Test 2')\n", + "\n", + "# Specified in plot order\n", + "pyplot.legend(['y = 1', 'y = 0'], loc='upper right')\n", + "pass" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": {}, + "outputs": [], + "source": [ + "def costFunctionReg(theta, X, y, Lambda):\n", + " \"\"\"\n", + " Compute cost and gradient for logistic regression with regularization.\n", + " \n", + " Parameters\n", + " ----------\n", + " theta : array_like\n", + " Logistic regression parameters. A vector with shape (n, ). n is \n", + " the number of features including any intercept. If we have mapped\n", + " our initial features into polynomial features, then n is the total \n", + " number of polynomial features. \n", + " \n", + " X : array_like\n", + " The data set with shape (m x n). m is the number of examples, and\n", + " n is the number of features (after feature mapping).\n", + " \n", + " y : array_like\n", + " The data labels. A vector with shape (m, ).\n", + " \n", + " lambda_ : float\n", + " The regularization parameter. \n", + " \n", + " Returns\n", + " -------\n", + " J : float\n", + " The computed value for the regularized cost function. \n", + " \n", + " grad : array_like\n", + " A vector of shape (n, ) which is the gradient of the cost\n", + " function with respect to theta, at the current values of theta.\n", + " \n", + " Instructions\n", + " ------------\n", + " Compute the cost `J` of a particular choice of theta.\n", + " Compute the partial derivatives and set `grad` to the partial\n", + " derivatives of the cost w.r.t. each parameter in theta.\n", + " \"\"\"\n", + " # Initialize some useful values\n", + " m = y.size # number of training examples\n", + "\n", + " # You need to return the following variables correctly \n", + " J = 0\n", + " grad = np.zeros(theta.shape)\n", + "\n", + " # ===================== YOUR CODE HERE ======================\n", + " theta2=np.concatenate(0,theta[1:n+1])\n", + " z=np.dot(X,theta)\n", + " A=sigmoid(z)\n", + " J=-1/m * np.sum( np.multiply(np.log(A), y) + np.multiply(np.log(1-A), (1-y)))+(Lambda /(2*m))*sum(theta[1:n+1]^2)\n", + " grad=(1/m)*X.transpose()*(g-y)+(Lambda/m)*sum(theta2[1:n+1])\n", + " \n", + " \n", + " # =============================================================\n", + " return J, grad" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}