--- a
+++ b/Code/All Qiskit ML Demos/07 Pegasos QSVM 22.5s kkawchak.ipynb
@@ -0,0 +1,649 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "id": "opened-florist",
+   "metadata": {},
+   "source": [
+    "import time\n",
+    "seconds = time.time()\n",
+    "print(\"Time in seconds since beginning of run:\", seconds)\n",
+    "local_time = time.ctime(seconds)\n",
+    "print(local_time)\n",
+    "# Pegasos Quantum Support Vector Classifier\n",
+    "\n",
+    "There's another SVM based algorithm that benefits from the quantum kernel method. Here, we introduce an implementation of a another classification algorithm, which is an alternative version to the `QSVC` available in Qiskit Machine Learning and shown in the [\"Quantum Kernel Machine Learning\"](./03_quantum_kernel.ipynb) tutorial. This classification algorithm implements the Pegasos algorithm from the paper \"Pegasos: Primal Estimated sub-GrAdient SOlver for SVM\" by Shalev-Shwartz et al., see: https://home.ttic.edu/~nati/Publications/PegasosMPB.pdf.\n",
+    "\n",
+    "This algorithm is an alternative to the dual optimization from the `scikit-learn` package, benefits from the kernel trick, and yields a training complexity that is independent of the size of the training set. Thus, the `PegasosQSVC` is expected to train faster than QSVC for sufficiently large training sets.\n",
+    "\n",
+    "The algorithm can be used as direct replacement of `QSVC` with some hyper-parameterization."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 12,
+   "id": "759a01c7-b426-4ebe-8a4e-c9b9a1104603",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Time in seconds since beginning of run: 1696472962.5317466\n",
+      "Thu Oct  5 02:29:22 2023\n"
+     ]
+    }
+   ],
+   "source": [
+    "import time\n",
+    "seconds = time.time()\n",
+    "print(\"Time in seconds since beginning of run:\", seconds)\n",
+    "local_time = time.ctime(seconds)\n",
+    "print(local_time)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "thirty-painting",
+   "metadata": {},
+   "source": [
+    "Let's generate some data:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 13,
+   "id": "impressed-laser",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from sklearn.datasets import make_blobs\n",
+    "\n",
+    "# example dataset\n",
+    "features, labels = make_blobs(n_samples=20, n_features=2, centers=2, random_state=3, shuffle=True)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "moderate-yugoslavia",
+   "metadata": {},
+   "source": [
+    "We pre-process the data to ensure compatibility with the rotation encoding and split it into the training and test datasets."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 14,
+   "id": "adolescent-composer",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import numpy as np\n",
+    "\n",
+    "from sklearn.model_selection import train_test_split\n",
+    "from sklearn.preprocessing import MinMaxScaler\n",
+    "\n",
+    "features = MinMaxScaler(feature_range=(0, np.pi)).fit_transform(features)\n",
+    "\n",
+    "train_features, test_features, train_labels, test_labels = train_test_split(\n",
+    "    features, labels, train_size=15, shuffle=False\n",
+    ")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "central-poverty",
+   "metadata": {},
+   "source": [
+    "We have two features in the dataset, so we set a number of qubits to the number of features in the dataset.\n",
+    "\n",
+    "Then we set $\\tau$ to the number of steps performed during the training procedure. Please note that, there is no early stopping criterion in the algorithm. The algorithm iterates over all $\\tau$ steps.\n",
+    "\n",
+    "And the last one is the hyperparameter $C$. This is a positive regularization parameter. The strength of the regularization is inversely proportional to $C$. Smaller $C$ induce smaller weights which generally helps preventing overfitting. However, due to the nature of this algorithm, some of the computation steps become trivial for larger $C$. Thus, larger $C$ improve the performance of the algorithm drastically. If the data is linearly separable in feature space, $C$ should be chosen to be large. If the separation is not perfect, $C$ should be chosen smaller to prevent overfitting."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 15,
+   "id": "dying-dispatch",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# number of qubits is equal to the number of features\n",
+    "num_qubits = 2\n",
+    "\n",
+    "# number of steps performed during the training procedure\n",
+    "tau = 50\n",
+    "\n",
+    "# regularization parameter\n",
+    "C = 1000"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "improving-wilderness",
+   "metadata": {},
+   "source": [
+    "The algorithm will run using:\n",
+    "\n",
+    "- The default fidelity instantiated in `FidelityQuantumKernel`\n",
+    "- A quantum kernel created from `ZFeatureMap`"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 16,
+   "id": "automated-allergy",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from qiskit import BasicAer\n",
+    "from qiskit.circuit.library import ZFeatureMap\n",
+    "from qiskit.utils import algorithm_globals\n",
+    "\n",
+    "from qiskit_machine_learning.kernels import FidelityQuantumKernel\n",
+    "\n",
+    "algorithm_globals.random_seed = 12345\n",
+    "\n",
+    "feature_map = ZFeatureMap(feature_dimension=num_qubits, reps=1)\n",
+    "\n",
+    "qkernel = FidelityQuantumKernel(feature_map=feature_map)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "attractive-stationery",
+   "metadata": {},
+   "source": [
+    "The implementation `PegasosQSVC` is compatible with the `scikit-learn` interfaces and has a pretty standard way of training a model. In the constructor we pass parameters of the algorithm, in this case there are a regularization hyper-parameter $C$ and a number of steps.\n",
+    "\n",
+    "Then we pass training features and labels to the `fit` method, which trains a models and returns a fitted classifier.\n",
+    "\n",
+    "Afterwards, we score our model using test features and labels."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 17,
+   "id": "representative-thumb",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "PegasosQSVC classification test score: 1.0\n"
+     ]
+    }
+   ],
+   "source": [
+    "from qiskit_machine_learning.algorithms import PegasosQSVC\n",
+    "\n",
+    "pegasos_qsvc = PegasosQSVC(quantum_kernel=qkernel, C=C, num_steps=tau)\n",
+    "\n",
+    "# training\n",
+    "pegasos_qsvc.fit(train_features, train_labels)\n",
+    "\n",
+    "# testing\n",
+    "pegasos_score = pegasos_qsvc.score(test_features, test_labels)\n",
+    "print(f\"PegasosQSVC classification test score: {pegasos_score}\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "sustainable-empire",
+   "metadata": {},
+   "source": [
+    "For visualization purposes we create a mesh grid of a predefined step that spans our minimum and maximum values we applied in MinMaxScaler. We also add some margin to the grid for better representation of the training and test samples."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 18,
+   "id": "judicial-pottery",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "grid_step = 0.2\n",
+    "margin = 0.2\n",
+    "grid_x, grid_y = np.meshgrid(\n",
+    "    np.arange(-margin, np.pi + margin, grid_step), np.arange(-margin, np.pi + margin, grid_step)\n",
+    ")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "marine-constitution",
+   "metadata": {},
+   "source": [
+    "We convert the grid to the shape compatible with the model, the shape should be `(n_samples, n_features)`.\n",
+    "Then for each grid point we predict a label. In our case predicted labels will be used for coloring the grid."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 19,
+   "id": "competitive-outdoors",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "meshgrid_features = np.column_stack((grid_x.ravel(), grid_y.ravel()))\n",
+    "meshgrid_colors = pegasos_qsvc.predict(meshgrid_features)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "former-constraint",
+   "metadata": {},
+   "source": [
+    "Finally, we plot our grid according to the labels/colors we obtained from the model. We also plot training and test samples."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 20,
+   "id": "monetary-knife",
+   "metadata": {
+    "tags": [
+     "nbsphinx-thumbnail"
+    ]
+   },
+   "outputs": [
+    {
+     "data": {
+      "image/png": "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jBYUFIR58+Y1yrmMCiufffYZOnfuDBcXF7i4uCAqKgr/+c9/6tzn22+/Rbt27eDg4IBOnTphy5Yt91VhIiIiWzZmzBhIkqRbPD090bdvX4PvBKoWExODiRMnmqweBw4cwIsvvmiy49XFqLDi7++PDz74AIcOHcLBgwcRGxuLJ598EsePH6+1/N69ezFs2DC88MILOHz4MBITE5GYmIhjx46ZpPJERESWptEAmZnAqlVVf2o05j9n3759kZ+fj/z8fGzfvh12dnYYMGDAfR9XCIHKysp6lfXy8kKzZs3u+5z1YVRYGThwIPr374/g4GC0bdsWs2fPhpOTE3766aday8+fPx99+/bFm2++idDQULz77ruIiIjAggULTFJ5IiIiS0pLA9q0AXr3BoYPr/qzTZuq9eakVqvh6+sLX19fhIeHY8qUKTh//jwuXrxYa/kxY8Zg586dmD9/vq5HJi8vD5mZmZAkCf/5z38QGRkJtVqN3bt34/Tp03jyySfh4+MDJycnPPzww/j+++/1jnn3bSBJkrB06VI89dRTaNasGYKDg7Fp0yaTtLfBY1Y0Gg1Wr16N8vJyREVF1VomKysLcXFxeuvi4+ORlZVV57ErKipQWlqqtxAREclJWhowZAjQqROQlVX1TsOsrKrPQ4aYP7BUKysrw4oVK9CmTRt4enrWWmb+/PmIiorC+PHjdT0yAQEBuu1TpkzBBx98gNzcXHTu3BllZWXo378/tm/fjsOHD6Nv374YOHAgzp07V2ddZs6ciWeffRZHjhxB//798be//Q2XL1++7zYaPSnc0aNHERUVhRs3bsDJyQnr169H+/btay1bUFAAHx8fvXU+Pj4oKCio8xzJycmYOXOmsVUjIiJqFBoN8I9/AAMGABs2AIrbv/p37171OTERmDwZePJJQKk0/fk3b94MJycnAEB5eTn8/PywefNmKBS190G4urpCpVKhWbNm8PX1rbF91qxZeOKJJ3SfPTw8EBYWpvv87rvvYv369di0aRMmTJhgsF5jxozBsGHDAADvv/8+PvnkE+zfvx99+/ZtUDurGd2zEhISgpycHOzbtw+vvPIKRo8ejRMnTtxXJe42depUlJSU6Jbz58+b9PhERET348cfgbw84O23/woq1RQKYOpU4MyZqnLm0Lt3b+Tk5CAnJwf79+9HfHw8+vXrh7NnzzboeF27dtX7XFZWhsmTJyM0NBRubm5wcnJCbm7uPXtWOnfurPt78+bN4eLigqKiogbV6U5G96yoVCq0adMGABAZGYkDBw5g/vz5+Pzzz2uU9fX1RWFhod66wsLCWlPdndRqNdRqtbFVIyIiahT5+VV/duxY+/bq9dXlTK158+a6/4sBYOnSpXB1dcUXX3yB9957r0HHu9PkyZORkZGBf/3rX2jTpg0cHR0xZMgQ3Lx5s87j2Nvrv8JBkiRotYbfP1Vf9z3PilarRUVFRa3boqKisH37dr11GRkZBse4EBERWQM/v6o/DT3cWr2+upy5SZIEhUKB69evGyyjUqmgqeejSnv27MGYMWPw1FNPoVOnTvD19UVeXp6Jams8o3pWpk6din79+uHBBx/E1atXsXLlSmRmZmLbtm0AgFGjRqFly5ZITk4GALz++uvo1asX5syZg4SEBKxevRoHDx7EkiVLTN8SIiKiRtKjBxAUBLz/vv6YFQDQaoHkZKBVq6py5lBRUaEb/3nlyhUsWLAAZWVlGDhwoMF9goKCsG/fPuTl5cHJyQkeHh4GywYHByMtLQ0DBw6EJEn4f//v/5mkh6ShjOpZKSoqwqhRoxASEoLHH38cBw4cwLZt23SDcs6dO4f8O/q8oqOjsXLlSixZsgRhYWFYu3YtNmzYgI6G+s2IiIisgFIJzJkDbN5cNZj2zqeBEhOr1v/rX+YZXAsAW7duhZ+fH/z8/PDII4/gwIED+PbbbxETE2Nwn8mTJ0OpVKJ9+/bw8vKqc/zJ3Llz4e7ujujoaAwcOBDx8fGIiIgwQ0vqRxJCCIudvZ5KS0vh6uqK5xEAlRW8IWBZeKylq0BN0NicHZauApFRTP2zUGhuovLov1FSUgIXF5f7Pt6NGzdw5swZtGrVCg4ODg06Rlpa1VNBd94hadWqKqgMHnzfVWzSjPn6Gz3AloiIiKoMHlz1ePKPP1YNpvXzq7r1Y64eFVvFsEJERHQflEqgjrsvZALyv6dCRERENo1hhYiIiGSNt4GIiMgsTD0o/Ca0WG7SI5K1YM8KERERyRrDChEREckawwoRERHJGsesEJHseOMW1DA8tXcFFCiCvcHtRNS0MKwQkax44xZm4cI9y01HCwYWIhvB20BEJCu6HpUVK4BDh2ouK1bolyOyUVlZWVAqlUhISKhX+aCgIMybN8+kdYiJicHEiRNNeszasGeFiOQpNBSw4IvTiO7p11+r3l5oiLMzEBxsttOnpKTg1VdfRUpKCi5cuIAWLVqY7VyWxp4VIiIiY/36K9C2LRAZaXhp27aqnBmUlZVhzZo1eOWVV5CQkIDU1NQ6y8fExODs2bN44403IEkSJEnSbdu9ezd69OgBR0dHBAQE4LXXXkN5eblu+6JFixAcHAwHBwf4+PhgyJAhAIAxY8Zg586dmD9/vu6YeXe+0dGEGFaIiIiMVVePSkPKGembb75Bu3btEBISghEjRmDZsmUQQhgsn5aWBn9/f8yaNQv5+fnIz88HAJw+fRp9+/bF008/jSNHjmDNmjXYvXs3JkyYAAA4ePAgXnvtNcyaNQsnT57E1q1b0bNnTwDA/PnzERUVhfHjx+uOGRAQYJb28jYQERGRlUlJScGIESMAAH379kVJSQl27tyJGANvVPTw8IBSqYSzszN8fX1165OTk/G3v/1NN+4kODgYn3zyCXr16oXPPvsM586dQ/PmzTFgwAA4OzsjMDAQXbp0AQC4urpCpVKhWbNmesc0B/asEBERWZGTJ09i//79GDZsGADAzs4OQ4cORUpKitHH+vnnn5GamgonJyfdEh8fD61WizNnzuCJJ55AYGAgHnroIYwcORL//ve/ce3aNVM36Z7Ys0JE8pSba9x6IhuRkpKCyspKvQG1Qgio1WosWLAArq6u9T5WWVkZXnrpJbz22ms1tj344INQqVTIzs5GZmYmvvvuO0yfPh3vvPMODhw4ADc3N1M0p14YVohIViqqO3xvd3HfsxyRDamsrMRXX32FOXPmoE+fPnrbEhMTsWrVKrz88su17qtSqaDRaPTWRURE4MSJE2jTpo3Bc9rZ2SEuLg5xcXGYMWMG3NzcsGPHDgwePLjWY5oDwwoRyUoR7DEdLTiDLVEtNm/ejCtXruCFF16o0YPy9NNPIyUlxWBYCQoKwq5du/Dcc89BrVbjgQcewFtvvYXu3btjwoQJGDduHJo3b44TJ04gIyMDCxYswObNm/H777+jZ8+ecHd3x5YtW6DVahESEqI75r59+5CXlwcnJyd4eHhAoTD9LxL81YSIZKcI9jgPtcGFQYVsVUpKCuLi4mq91fP000/j4MGDOHLkSK37zpo1C3l5eWjdujW8vLwAAJ07d8bOnTtx6tQp9OjRA126dMH06dN1t5jc3NyQlpaG2NhYhIaGYvHixVi1ahU6dOgAAJg8eTKUSiXat28PLy8vnDt3ziztlkRdzzrJRGlpKVxdXfE8AqCygny1LDzW0lWgJmhszg5LV4HIom5Ci+U4j5KSEri4uNz38W7cuIEzZ86gVatWcHBwMG7n6nlW7uXUKbNODGfNjPn68zYQERGRsYKDq4KIBWewtSUMK0RERA3BINJo5H9PhYiIiGwawwoRERHJGm8DmYE5BkJy0C4REdkq9qwQERGRrDGsEBERkawxrBAREZGsMawQERGRrDGsEBERkawxrBAREVmRMWPGQJIk3eLp6Ym+ffsafCdQtZiYGEycONHkdUlMTDTpMWvDsEJERHQfNBogMxNYtarqT43G/Ofs27cv8vPzkZ+fj+3bt8POzg4DBgww/4kthGGFiIiogdLSgKAgoHdvYPjwqj+DgqrWm5NarYavry98fX0RHh6OKVOm4Pz587h48WKt5ceMGYOdO3di/vz5uh6ZvLw8AMCxY8fQr18/ODk5wcfHByNHjsSlS5d0+65duxadOnWCo6MjPD09ERcXh/Lycrzzzjv48ssvsXHjRt0xMzMzzdJehhUiIjILb9xCACoMLt64Zekq3pe0NGDIEOCPP/TX//e/VevNHViqlZWVYcWKFWjTpg08PT1rLTN//nxERUVh/Pjxuh6ZgIAAFBcXIzY2Fl26dMHBgwexdetWFBYW4tlnnwUA5OfnY9iwYRg7dixyc3ORmZmJwYMHQwiByZMn49lnn9Xr5YmOjjZLGzmDLRERmZw3bmEWLtyz3HS0QBHsG6FGpqXRAK+/DghRc5sQgCQBEycCTz4JKJWmP//mzZvh5OQEACgvL4efnx82b94MhaL2PghXV1eoVCo0a9YMvr6+uvULFixAly5d8P777+vWLVu2DAEBATh16hTKyspQWVmJwYMHIzAwEADQqVMnXVlHR0dUVFToHdMcGFaIiMjk1NBW/WXFCiA0tGaB3FxgxIi/ylmZH3+s2aNyJyGA8+erysXEmP78vXv3xmeffQYAuHLlChYtWoR+/fph//79ulBRHz///DN++OEHXfC50+nTp9GnTx88/vjj6NSpE+Lj49GnTx8MGTIE7u7uJmtLfTCsEBGR+YSGAhERlq6FyeXnm7acsZo3b442bdroPi9duhSurq744osv8N5779X7OGVlZRg4cCA+/PDDGtv8/PygVCqRkZGBvXv34rvvvsOnn36KadOmYd++fWjVqpVJ2lIfHLNCRERkJD8/05a7X5IkQaFQ4Pr16wbLqFQqaO56VCkiIgLHjx9HUFAQ2rRpo7c0b95cd+xHH30UM2fOxOHDh6FSqbB+/XqDxzQHhhUiIiIj9egB+PtXjU2pjSQBAQFV5cyhoqICBQUFKCgoQG5uLl599VVdL4khQUFB2LdvH/Ly8nDp0iVotVokJSXh8uXLGDZsGA4cOIDTp09j27ZteP7556HRaLBv3z68//77OHjwIM6dO4e0tDRcvHgRobdv7QUFBeHIkSM4efIkLl26hFu3zDNommGFiIjISEolMH9+1d/vDizVn+fNM8/gWgDYunUr/Pz84Ofnh0ceeQQHDhzAt99+i5g6BshMnjwZSqUS7du3h5eXF86dO4cWLVpgz5490Gg06NOnDzp16oSJEyfCzc0NCoUCLi4u2LVrF/r374+2bdvif/7nfzBnzhz069cPADB+/HiEhISga9eu8PLywp49e8zSXo5ZISIiaoDBg4G1a6ueCrpzsK2/f1VQGTzYPOdNTU1Famqq0fu1bdsWWVlZNdYHBwcjzcBz1qGhodi6davBY3p5eeG7774zui7GMiqsJCcnIy0tDb/88gscHR0RHR2NDz/8ECEhIQb3SU1NxfPPP6+3Tq1W48aNGw2rMRERWY/cXOPWW5nBg6seT/7xx6rBtH5+Vbd+zNWjYquMCis7d+5EUlISHn74YVRWVuLtt99Gnz59cOLECd1AnNq4uLjg5MmTus+SoZt8RETUJFRUjzIYMaJ+5ayYUmmex5PpL0aFlbu7glJTU+Ht7Y1Dhw6hZ8+eBveTJMnsE8YQEZF8FMEe09GiznlUKqCwygnhqPHd15iVkpISAICHh0ed5crKyhAYGAitVouIiAi8//776NChw/2cmoiIZI5BhEylwf1vWq0WEydOxKOPPoqOHTsaLBcSEoJly5Zh48aNWLFiBbRaLaKjo/FHHVP/VVRUoLS0VG8hIiIyB1HbnPlkdsZ83RscVpKSknDs2DGsXr26znJRUVEYNWoUwsPD0atXL6SlpcHLywuff/65wX2Sk5Ph6uqqWwICAhpaTSIiolopb4+CvXnzpoVrYpuuXbsGALC3v3cPXINuA02YMAGbN2/Grl274O/vb9S+9vb26NKlC3777TeDZaZOnYpJkybpPpeWljKwEBGRSdnZ2aFZs2a4ePEi7O3tDb4EkExLCIFr166hqKgIbm5uutBYF6PCihACr776KtavX4/MzMwGvRdAo9Hg6NGj6N+/v8EyarUaarXa6GMTERHVlyRJ8PPzw5kzZ3D27FlLV8fmuLm51fvhG6PCSlJSElauXImNGzfC2dkZBQUFAKpePe3o6AgAGDVqFFq2bInk5GQAwKxZs9C9e3e0adMGxcXF+Oijj3D27FmMGzfOmFMTERGZnEqlQnBwMG8FNTJ7e/t69ahUMyqsVL+O+u7pfJcvX44xY8YAAM6dO6fXlXblyhWMHz8eBQUFcHd3R2RkJPbu3Yv27dsbc2oiIiKzUCgUcHBwsHQ1qA6SsIJh0KWlpXB1dcXzCICqCUwg1BDLwmMtXQWysLE5OyxdBSKLugktluM8SkpK4OLiYunqUCPiu4GIyCp44xYnGCOyUQwrRCR73riFWbhwz3LT0YKBhagJYlghItnT9aisWAGEhtYskJsLjBhRZ88LEVkvhhUish6hoUBEhKVrQUSNzDZHqxIREZHVYFghIiIiWeNtICKiBuITSkSNg2GFiKgB+IQSUeNhWCEi65Gba9x6M7qfJ5TYI0NkHIYVIpK9iurhdSNG1K9cYzLyCSX2yBAZj2GFiGSvCPaYjhZNojeivnPBcM4Yor8wrBCRVbCGIGLInbd9fHHLwrUhsj4MK0REZuSOSvwdlyxdDSKrxnlWiIjMSA3Zv9ieSPbYs0JEdD9k9IQSUVPFsEJE1AD1fULpJqRGqA1R08awQkTUAPV9QolP9RDdP4YVIqIGutcTSt641eCnfywyZwyRTDGsEBGZQX0nf6uWAk8U3A4/1jJnDFFjYVghIjIDY2//FMAe56E2U22IrBv7GYmIZIC3fYgMY88KEZEFpcATZ6HmbR+iOjDKExFZUAHsGVSI7oFhhYiIiGSNYYWIiIhkjWGFiIiIZI1hhYjIDOr7dA+fAiK6Nz4NRERkBvWdjp+Da4nujWGFiMhMGESITIP9j0RERCRrDCtEREQkawwrREREJGsMK0RERCRrDCtEREQkawwrREREJGsMK0RERCRrDCtEREQka5wUjoiIAADeuMUZd0mWGFaIiAjeuIVZuHDPctPRgoGFGh3DChER/dWjsmIFEBpas0BuLjBiRJ09L0TmwrBCRER/CQ0FIiIsXQsiPRxgS0RERLLGsEJERESyZlRYSU5OxsMPPwxnZ2d4e3sjMTERJ0+evOd+3377Ldq1awcHBwd06tQJW7ZsaXCFiYiIyLYYFVZ27tyJpKQk/PTTT8jIyMCtW7fQp08flJeXG9xn7969GDZsGF544QUcPnwYiYmJSExMxLFjx+678kRERNT0GTXAduvWrXqfU1NT4e3tjUOHDqFnz5617jN//nz07dsXb775JgDg3XffRUZGBhYsWIDFixc3sNpERGQWubnGrSdqBPf1NFBJSQkAwMPDw2CZrKwsTJo0SW9dfHw8NmzYYHCfiooKVFRU6D6XlpbeTzWJiOgeKqo72keMqF85okbU4LCi1WoxceJEPProo+jYsaPBcgUFBfDx8dFb5+Pjg4KCAoP7JCcnY+bMmQ2tGhERGakI9piOFpzBlmSpwWElKSkJx44dw+7du01ZHwDA1KlT9XpjSktLERAQYPLzEBHRXxhESK4aFFYmTJiAzZs3Y9euXfD396+zrK+vLwoLC/XWFRYWwtfX1+A+arUaarW6IVUjIiKiJsaom49CCEyYMAHr16/Hjh070KpVq3vuExUVhe3bt+uty8jIQFRUlHE1JSIiIptkVM9KUlISVq5ciY0bN8LZ2Vk37sTV1RWOjo4AgFGjRqFly5ZITk4GALz++uvo1asX5syZg4SEBKxevRoHDx7EkiVLTNwUIiIiaoqM6ln57LPPUFJSgpiYGPj5+emWNWvW6MqcO3cO+fn5us/R0dFYuXIllixZgrCwMKxduxYbNmyoc1AuERERUTWjelaEEPcsk5mZWWPdM888g2eeecaYUxEREREB4LuBiIiISOYYVoiIiEjW7msGWyKipsYbtzgxGpHMMKwQEd3mjVuYhQv3LDcdLRhYiBoRwwoR0W26HpUVK4DQ0JoFcnOBESPq7HkhItNjWCEiultoKBARYelaENFtHGBLREREssawQkRERLLGsEJERESyxrBCREREssYBtkREd8vNNW49EZkVwwoR0W0V1Z3NI0bUrxwRNQqGFSKi24pgj+lowRlsiWSGYYWI6A4MIkTyw75MIiIikjWGFSIiIpI1hhUiIiKSNYYVIiIikjWGFSIiIpI1Pg1EsiaEBFHWFqh0A+yKITmdgiQJS1eLiIgaEcMKyZa2OAJS4XBornvo1tk5XobWZyUUbtkWrBkRETUm3gYiWdIWR0CTl4S+j7sjKwu4ehXIygLiY92gyUuCtjjC0lUkIqJGwrBCsiOEBKlwOAYMADZulNC9O+DkBHTvDmzapEBCgoBUOAxCSJauKhERNQKGFZIdUdYWldc9MG2aBMVd/0IVCmDaNAUqr3tWjWUhIqImj2GF5KfSDQDQsWPtm3Xrb5cjIqKmjQNszWBZeKylq2Dd7IoBAMeOVd36uduxY/rlbIW5/l2NzdlhluMSEZkKe1ZIdiSnU7BzvIz33tNCe9fLb7VaYPZsLewc/4TkdMoyFSQiokbFsEKyI0kCwmcl0tMlDBqk1XsaaNAgLdLTJQifVZxvhYjIRvA2EMmSwi0bCFqIbTuGIz39znlWrkAZtIrzrBAR2RCGFZIthVs2hOthKO+YwRZOp6BgjwoRkU1hWCFZkyQByfmkpatBREQWxDErREREJGsMK0RERCRrDCtEREQkawwrREREJGsMK0RERCRrDCtEREQkawwrREREJGsMK0RERCRrDCtEREQkawwrREREJGsMK0RERCRrRoeVXbt2YeDAgWjRogUkScKGDRvqLJ+ZmQlJkmosBQUFDa0zERER2RCjw0p5eTnCwsKwcOFCo/Y7efIk8vPzdYu3t7expyYiIiIbZPRbl/v164d+/foZfSJvb2+4ubkZvR8RERHZtkYbsxIeHg4/Pz888cQT2LNnT2OdloiIiKyc0T0rxvLz88PixYvRtWtXVFRUYOnSpYiJicG+ffsQERFR6z4VFRWoqKjQfS4tLTV3NYmIiEimzB5WQkJCEBISovscHR2N06dP4+OPP8bXX39d6z7JycmYOXOmuauGZeGxZj8HEZGtMvXPWKG5CRz9t0mPSdbBIo8ud+vWDb/99pvB7VOnTkVJSYluOX/+fCPWjoiIiOTE7D0rtcnJyYGfn5/B7Wq1Gmq1uhFrRERERHJldFgpKyvT6xU5c+YMcnJy4OHhgQcffBBTp07Ff//7X3z11VcAgHnz5qFVq1bo0KEDbty4gaVLl2LHjh347rvvTNcKIiIiarKMDisHDx5E7969dZ8nTZoEABg9ejRSU1ORn5+Pc+fO6bbfvHkT//jHP/Df//4XzZo1Q+fOnfH999/rHYOIiIjIEEkIISxdiXspLS2Fq6srnkcAVCYcZsMBtkTA2Jwdlq4CNVHmGGBbefTfKCkpgYuLi0mPTfLGdwMRERGRrDGsEBERkawxrBAREZGsMawQERGRrDGsEBERkawxrBAREZGsMawQERGRrDGsEBERkawxrBAREZGsMawQERGRrDGsEBERkawxrBAREZGsMawQERGRrDGsEBERkawxrBAREZGs2Vm6Asb4ulNPSEqVpatB1KQsC481y3HH5uwwy3HJ9Mz1b4DIVNizQkRERLLGsEJERESyxrBCREREssawQkRERLLGsEJERESyxrBCREREsmZVjy5bghASRFlboNINsCuG5HQKkiQsXS0iIiKbwbBSB21xBKTC4dBc99Cts3O8DK3PSijcsi1YMyIiItvB20AGaIsjoMlLQt/H3ZGVBVy9CmRlAfGxbtDkJUFbHGHpKhIREdkEhpVaCCFBKhyOAQOAjRsldO8OODkB3bsDmzYpkJAgIBUOgxCSpatKRETU5DGs1EKUtUXldQ9MmyZBcddXSKEApk1ToPK6Z9VYFiIiIjIrhpXaVLoBADp2rH2zbv3tckRERGQ+DCu1sSsGABw7Vvtm3frb5YiIiMh8GFZqITmdgp3jZbz3nhZarf42rRaYPVsLO8c/ITmdskwFiYiIbAjDSi0kSUD4rER6uoRBg7R6TwMNGqRFeroE4bOK860QERE1As6zYoDCLRsIWohtO4YjPf3OeVauQBm0ivOsEBERNRKGlToo3LIhXA9DeccMtnA6BQV7VIiIiBoNw8o9SJKA5HzS0tUgIiKyWRyzQkRERLLGsEJERESyxrBCREREssYxK0RkFsvCY01+zLE5O0x+THMxR/uJbBV7VoiIiEjWGFaIiIhI1hhWiIiISNYYVoiIiEjWGFaIiIhI1owOK7t27cLAgQPRokULSJKEDRs23HOfzMxMREREQK1Wo02bNkhNTW1AVYmIiMgWGR1WysvLERYWhoULF9ar/JkzZ5CQkIDevXsjJycHEydOxLhx47Bt2zajK0tERES2x+h5Vvr164d+/frVu/zixYvRqlUrzJkzBwAQGhqK3bt34+OPP0Z8fLyxpyciIiIbY/YxK1lZWYiLi9NbFx8fj6ysLIP7VFRUoLS0VG8hIiIi22T2sFJQUAAfHx+9dT4+PigtLcX169dr3Sc5ORmurq66JSAgwNzVJCIiIpmS5dNAU6dORUlJiW45f/68patEREREFmL2dwP5+vqisLBQb11hYSFcXFzg6OhY6z5qtRpq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xh9//GHwPBUVFSgtLdVbmjqFWzaUQQsB+2L9DfZXoAxayHlWiIjIZpl9UrioqChERUXpPkdHRyM0NBSff/453n333Vr3SU5OxsyZM81dNdlRuGVDcj3MGWypUY3N2WHpKlicOb4Gy8JjTX5MIltlVM/KAw88AKVSicLCQr31hYWF8PX1rdcx7O3t0aVLF/z2228Gy0ydOhUlJSW65fz588ZU06pJkoDC+SQU7vugcD7JoEJERDbPqLCiUqkQGRmJ7du369ZptVps375dr/ekLhqNBkePHoWfn5/BMmq1Gi4uLnoLERER2SajbwNNmjQJo0ePRteuXdGtWzfMmzcP5eXleP755wEAo0aNQsuWLZGcnAwAmDVrFrp37442bdqguLgYH330Ec6ePYtx48aZtiVERETUJBkdVoYOHYqLFy9i+vTpKCgoQHh4OLZu3aobdHvu3DkoFH912Fy5cgXjx49HQUEB3N3dERkZib1796J9+/amawURERE1WZIQQvaDIkpLS+Hq6gq7Tn+DpFRZujpETQoH2JoHB9iantDcROXRf6OkpITDA2wM3w1EREREssawQkRERLLGsEJERESyxrBCREREssawQkRERLLGsEJERESyxrBCREREssawQkRERLLGsEJERESyxrBCREREssawQkRERLLGsEJERESyxrBCREREssawQkRERLJmZ+kKUOMSQoIoawtUugF2xZCcTkGShKWrRUREZBDDig3RFkdAKhwOzXUP3To7x8vQ+qyEwi3bgjWj+hibs8PSVSAjWNP1WhYea+kqENWJt4FshLY4Apq8JPR93B1ZWcDVq0BWFhAf6wZNXhK0xRGWriIREVGtGFZsgBASpMLhGDAA2LhRQvfugJMT0L07sGmTAgkJAlLhMAghWbqqRERENTCs2ABR1haV1z0wbZoExV1XXKEApk1ToPK6Z9VYFiIiIplhWLEFlW4AgI4da9+sW3+7HBERkZwwrNgCu2IAwLFjtW/Wrb9djoiISE4YVmyA5HQKdo6X8d57Wmi1+tu0WmD2bC3sHP+E5HTKMhUkIiKqA8OKDZAkAeGzEunpEgYN0uo9DTRokBbp6RKEzyrOt0JERLLEeVZshMItGwhaiG07hiM9/c55Vq5AGbSK86wQEZFsMazYEIVbNoTrYSjvmMEWTqegYI8KERHJGMOKjZEkAcn5pKWr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hw6J5557Tjg4OIjjx49bqgk1XL16VRw+fFgcPnxYABBz584Vhw8fFmfPnhVCCDFlyhQxcuRIXfnff/9dNGvWTLz55psiNzdXLFy4UCiVSrF161ZLNaFWxrbr448/Fhs2bBC//vqrOHr0qHj99deFQqEQ33//vaWaUMMrr7wiXF1dRWZmpsjPz9ct165d05Wxxu+thrTLGr63pkyZInbu3CnOnDkjjhw5IqZMmSIkSRLfffedEMI6rxU1HQwrt3366afiwQcfFCqVSnTr1k389NNPum29evUSo0eP1iv/zTffiLZt2wqVSiU6dOgg0tPTG7nG9WNMuyZOnKgr6+PjI/r37y+ys7MtUGvDqh/ZvXupbsfo0aNFr169auwTHh4uVCqVeOihh8Ty5csbvd73Ymy7PvzwQ9G6dWvh4OAgPDw8RExMjNixY4dlKm9Abe0BoPf1t8bvrYa0yxq+t8aOHSsCAwOFSqUSXl5e4vHHH9cFFSGs81pR0yEJIUTj9eMQERERGcfmx6wQERGRvDGsEBERkawxrBAREZGsMawQERGRrDGsEBERkawxrBAREZGsMawQERGRrDGsEBERkawxrBAREZGsMawQERGRrDGsEBERkawxrBAREZGs/X9iAnoyZwKRMAAAAABJRU5ErkJggg==\n",
+      "text/plain": [
+       "<Figure size 500x500 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "import matplotlib.pyplot as plt\n",
+    "\n",
+    "plt.figure(figsize=(5, 5))\n",
+    "meshgrid_colors = meshgrid_colors.reshape(grid_x.shape)\n",
+    "plt.pcolormesh(grid_x, grid_y, meshgrid_colors, cmap=\"RdBu\", shading=\"auto\")\n",
+    "\n",
+    "plt.scatter(\n",
+    "    train_features[:, 0][train_labels == 0],\n",
+    "    train_features[:, 1][train_labels == 0],\n",
+    "    marker=\"s\",\n",
+    "    facecolors=\"w\",\n",
+    "    edgecolors=\"r\",\n",
+    "    label=\"A train\",\n",
+    ")\n",
+    "plt.scatter(\n",
+    "    train_features[:, 0][train_labels == 1],\n",
+    "    train_features[:, 1][train_labels == 1],\n",
+    "    marker=\"o\",\n",
+    "    facecolors=\"w\",\n",
+    "    edgecolors=\"b\",\n",
+    "    label=\"B train\",\n",
+    ")\n",
+    "\n",
+    "plt.scatter(\n",
+    "    test_features[:, 0][test_labels == 0],\n",
+    "    test_features[:, 1][test_labels == 0],\n",
+    "    marker=\"s\",\n",
+    "    facecolors=\"r\",\n",
+    "    edgecolors=\"r\",\n",
+    "    label=\"A test\",\n",
+    ")\n",
+    "plt.scatter(\n",
+    "    test_features[:, 0][test_labels == 1],\n",
+    "    test_features[:, 1][test_labels == 1],\n",
+    "    marker=\"o\",\n",
+    "    facecolors=\"b\",\n",
+    "    edgecolors=\"b\",\n",
+    "    label=\"B test\",\n",
+    ")\n",
+    "\n",
+    "plt.legend(bbox_to_anchor=(1.05, 1), loc=\"upper left\", borderaxespad=0.0)\n",
+    "plt.title(\"Pegasos Classification\")\n",
+    "plt.show()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 21,
+   "id": "fddca436-0531-4f77-9c54-71a0ed4dc462",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Time in seconds since end of run: 1696472984.9916549\n",
+      "Thu Oct  5 02:29:44 2023\n"
+     ]
+    }
+   ],
+   "source": [
+    "seconds = time.time()\n",
+    "print(\"Time in seconds since end of run:\", seconds)\n",
+    "local_time = time.ctime(seconds)\n",
+    "print(local_time)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 22,
+   "id": "imperial-promise",
+   "metadata": {
+    "tags": []
+   },
+   "outputs": [
+    {
+     "data": {
+      "text/html": [
+       "<h3>Version Information</h3><table><tr><th>Software</th><th>Version</th></tr><tr><td><code>qiskit</code></td><td>0.44.1</td></tr><tr><td><code>qiskit-terra</code></td><td>0.25.1</td></tr><tr><td><code>qiskit_machine_learning</code></td><td>0.6.1</td></tr><tr><th colspan='2'>System information</th></tr><tr><td>Python version</td><td>3.10.8</td></tr><tr><td>Python compiler</td><td>GCC 10.4.0</td></tr><tr><td>Python build</td><td>main, Nov 22 2022 08:26:04</td></tr><tr><td>OS</td><td>Linux</td></tr><tr><td>CPUs</td><td>8</td></tr><tr><td>Memory (Gb)</td><td>31.142810821533203</td></tr><tr><td colspan='2'>Thu Oct 05 02:29:45 2023 UTC</td></tr></table>"
+      ],
+      "text/plain": [
+       "<IPython.core.display.HTML object>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "<div style='width: 100%; background-color:#d5d9e0;padding-left: 10px; padding-bottom: 10px; padding-right: 10px; padding-top: 5px'><h3>This code is a part of Qiskit</h3><p>&copy; Copyright IBM 2017, 2023.</p><p>This code is licensed under the Apache License, Version 2.0. You may<br>obtain a copy of this license in the LICENSE.txt file in the root directory<br> of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.<p>Any modifications or derivative works of this code must retain this<br>copyright notice, and modified files need to carry a notice indicating<br>that they have been altered from the originals.</p></div>"
+      ],
+      "text/plain": [
+       "<IPython.core.display.HTML object>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "import qiskit.tools.jupyter\n",
+    "\n",
+    "%qiskit_version_table\n",
+    "%qiskit_copyright"
+   ]
+  }
+ ],
+ "metadata": {
+  "celltoolbar": "Tags",
+  "kernelspec": {
+   "display_name": "Python 3 (ipykernel)",
+   "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.10.8"
+  },
+  "widgets": {
+   "application/vnd.jupyter.widget-state+json": {
+    "state": {
+     "2510a0810f054a83b7c0d998a97d6f05": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "2.0.0",
+      "model_name": "LayoutModel",
+      "state": {
+       "margin": "0px 0px 0px 37px",
+       "width": "600px"
+      }
+     },
+     "2740f9e368094ddf98713e368606e5f9": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "2.0.0",
+      "model_name": "HTMLModel",
+      "state": {
+       "layout": "IPY_MODEL_c42f4a3190a24cf79347ef34f4635f42",
+       "style": "IPY_MODEL_ca2882c4b08e4b7ebfd2d306273683ed",
+       "value": "<p style='font-family: IBM Plex Sans, Arial, Helvetica, sans-serif; font-size: 20px; font-weight: medium;'>Circuit Properties</p>"
+      }
+     },
+     "2a0d392e012645c6839339470dfa6884": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "2.0.0",
+      "model_name": "LayoutModel",
+      "state": {
+       "width": "145px"
+      }
+     },
+     "2d92f0f334dc4378a343209cfa2a469a": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "2.0.0",
+      "model_name": "LayoutModel",
+      "state": {
+       "width": "70px"
+      }
+     },
+     "2f4cd6604b2248a6b96e62aa082ecb0f": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "2.0.0",
+      "model_name": "HTMLStyleModel",
+      "state": {
+       "description_width": "",
+       "font_size": null,
+       "text_color": null
+      }
+     },
+     "3feaf14105224daa86f60ecd97a917e0": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "2.0.0",
+      "model_name": "HTMLModel",
+      "state": {
+       "layout": "IPY_MODEL_f706d41b232847ec8ec859bddaf6d042",
+       "style": "IPY_MODEL_2f4cd6604b2248a6b96e62aa082ecb0f",
+       "value": "<h5>Job ID</h5>"
+      }
+     },
+     "451d96f883ec485eb878bf073a80c757": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "2.0.0",
+      "model_name": "LayoutModel",
+      "state": {
+       "width": "95px"
+      }
+     },
+     "4ee2dbaaa0d94460a34155eaaefa3ec2": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "2.0.0",
+      "model_name": "HTMLStyleModel",
+      "state": {
+       "description_width": "",
+       "font_size": null,
+       "text_color": null
+      }
+     },
+     "4fe0dc0453a944688c52221fa3ebafa0": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "2.0.0",
+      "model_name": "HTMLModel",
+      "state": {
+       "layout": "IPY_MODEL_2d92f0f334dc4378a343209cfa2a469a",
+       "style": "IPY_MODEL_deb18161679c4081b7847b87a971fb94",
+       "value": "<h5>Queue</h5>"
+      }
+     },
+     "720cdfcaccfa4a4dbb6108650fed055d": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "2.0.0",
+      "model_name": "HTMLModel",
+      "state": {
+       "layout": "IPY_MODEL_2a0d392e012645c6839339470dfa6884",
+       "style": "IPY_MODEL_f8ac1f3c5bef413f918761ac97fc3c34",
+       "value": "<h5>Backend</h5>"
+      }
+     },
+     "82953adfc54e47b4994b3521cc3ffe9d": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "2.0.0",
+      "model_name": "HBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_3feaf14105224daa86f60ecd97a917e0",
+        "IPY_MODEL_720cdfcaccfa4a4dbb6108650fed055d",
+        "IPY_MODEL_fd818b923dc345a98ca5dc7962c53b06",
+        "IPY_MODEL_4fe0dc0453a944688c52221fa3ebafa0",
+        "IPY_MODEL_ad2e5f0edf2a46c6910033225943f815"
+       ],
+       "layout": "IPY_MODEL_2510a0810f054a83b7c0d998a97d6f05"
+      }
+     },
+     "90d2312724fd410eaad8198b3a54f96f": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "2.0.0",
+      "model_name": "LayoutModel",
+      "state": {}
+     },
+     "985109d9783b4f4a8e8081b1c6a04908": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "2.0.0",
+      "model_name": "ButtonModel",
+      "state": {
+       "button_style": "primary",
+       "description": "Clear",
+       "layout": "IPY_MODEL_b75cad7cf5af4c42beb45a611609d402",
+       "style": "IPY_MODEL_cd92bb39ee01487c9d9dda7c9c52e086",
+       "tooltip": null
+      }
+     },
+     "9f7158bd25844ec9bb05603ca29c1d51": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "2.0.0",
+      "model_name": "HTMLStyleModel",
+      "state": {
+       "description_width": "",
+       "font_size": null,
+       "text_color": null
+      }
+     },
+     "ad2e5f0edf2a46c6910033225943f815": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "2.0.0",
+      "model_name": "HTMLModel",
+      "state": {
+       "layout": "IPY_MODEL_90d2312724fd410eaad8198b3a54f96f",
+       "style": "IPY_MODEL_4ee2dbaaa0d94460a34155eaaefa3ec2",
+       "value": "<h5>Message</h5>"
+      }
+     },
+     "b75cad7cf5af4c42beb45a611609d402": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "2.0.0",
+      "model_name": "LayoutModel",
+      "state": {
+       "grid_area": "right",
+       "padding": "0px 0px 0px 0px",
+       "width": "70px"
+      }
+     },
+     "bcb1e868bcbc46fba7efe94ef6b00cae": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "2.0.0",
+      "model_name": "LayoutModel",
+      "state": {
+       "grid_template_areas": "\n                                       \". . . . right \"\n                                        ",
+       "grid_template_columns": "20% 20% 20% 20% 20%",
+       "width": "100%"
+      }
+     },
+     "c42f4a3190a24cf79347ef34f4635f42": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "2.0.0",
+      "model_name": "LayoutModel",
+      "state": {
+       "margin": "0px 0px 10px 0px"
+      }
+     },
+     "ca2882c4b08e4b7ebfd2d306273683ed": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "2.0.0",
+      "model_name": "HTMLStyleModel",
+      "state": {
+       "description_width": "",
+       "font_size": null,
+       "text_color": null
+      }
+     },
+     "cd92bb39ee01487c9d9dda7c9c52e086": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "2.0.0",
+      "model_name": "ButtonStyleModel",
+      "state": {
+       "font_family": null,
+       "font_size": null,
+       "font_style": null,
+       "font_variant": null,
+       "font_weight": null,
+       "text_color": null,
+       "text_decoration": null
+      }
+     },
+     "deb18161679c4081b7847b87a971fb94": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "2.0.0",
+      "model_name": "HTMLStyleModel",
+      "state": {
+       "description_width": "",
+       "font_size": null,
+       "text_color": null
+      }
+     },
+     "efadc7c52eec46dda395572abb432fba": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "2.0.0",
+      "model_name": "GridBoxModel",
+      "state": {
+       "children": [
+        "IPY_MODEL_985109d9783b4f4a8e8081b1c6a04908"
+       ],
+       "layout": "IPY_MODEL_bcb1e868bcbc46fba7efe94ef6b00cae"
+      }
+     },
+     "f706d41b232847ec8ec859bddaf6d042": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "2.0.0",
+      "model_name": "LayoutModel",
+      "state": {
+       "width": "190px"
+      }
+     },
+     "f8ac1f3c5bef413f918761ac97fc3c34": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "2.0.0",
+      "model_name": "HTMLStyleModel",
+      "state": {
+       "description_width": "",
+       "font_size": null,
+       "text_color": null
+      }
+     },
+     "fd818b923dc345a98ca5dc7962c53b06": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "2.0.0",
+      "model_name": "HTMLModel",
+      "state": {
+       "layout": "IPY_MODEL_451d96f883ec485eb878bf073a80c757",
+       "style": "IPY_MODEL_9f7158bd25844ec9bb05603ca29c1d51",
+       "value": "<h5>Status</h5>"
+      }
+     }
+    },
+    "version_major": 2,
+    "version_minor": 0
+   }
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}