{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "Azc8twVhEBGA" }, "source": [ "##### Copyright 2020 Google" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "cellView": "form", "id": "Wxjxus_UECF_" }, "outputs": [], "source": [ "#@title Licensed under the Apache License, Version 2.0 (the \"License\");\n", "# you may not use this file except in compliance with the License.\n", "# You may obtain a copy of the License at\n", "#\n", "# https://www.apache.org/licenses/LICENSE-2.0\n", "#\n", "# Unless required by applicable law or agreed to in writing, software\n", "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", "# See the License for the specific language governing permissions and\n", "# limitations under the License." ] }, { "cell_type": "markdown", "metadata": { "id": "39df10ff7cb1" }, "source": [ "# Optimization Analysis" ] }, { "cell_type": "markdown", "metadata": { "id": "nINncTOwEMgS" }, "source": [ "\n", " \n", " \n", " \n", " \n", "
\n", " View on QuantumAI\n", " \n", " Run in Google Colab\n", " \n", " View source on GitHub\n", " \n", " Download notebook\n", "
" ] }, { "cell_type": "markdown", "metadata": { "id": "314b4703b85b" }, "source": [ "## Setup\n", "\n", "Install the ReCirq package:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "ca9285a3a162" }, "outputs": [], "source": [ "try:\n", " import recirq\n", "except ImportError:\n", " !pip install -q git+https://github.com/quantumlib/ReCirq sympy~=1.6" ] }, { "cell_type": "markdown", "metadata": { "id": "ab6ae3f3c490" }, "source": [ "## Load Data\n", "Go through each record, load in supporting objects, flatten everything into records, and put into a dataframe." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "id": "96f13c4f4ba2" }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
timestampxfunnitnfevlowest_energy_foundbest_bitstring_foundevaluated_pointsbitstring_listsenergy_lists...optimal_angles_funproblemproblem_typedataset_idgeneration_taskdevice_namepalgorithmx0line_placement_strategy
02020-08-12 10:47:34.046188[0.3091960656314942, -0.31222192779577423]-0.808481071-1.0[0, 1, 0][recirq.NumpyArray([0.3 0.2]), recirq.NumpyArr...[recirq.BitArray([[0 1 0]\\n [0 0 0]\\n [1 1 1]\\...[recirq.NumpyArray([-1. 3. 3. ... 3. 3. 3......-0.81088(0, 1, 2)SKProblem2020-03-tutorialSKProblemGenerationTask(dataset_id='2020-03-tu...Syc23-simulator1OptimizationAlgorithm(method='MGD', n_shots=25...[0.3, 0.2]None
12020-08-12 10:46:52.953423[0.46700596149989154, -0.3960967452764799]-1.383841071-3.0[1, 0, 1, 1][recirq.NumpyArray([0.3 0.2]), recirq.NumpyArr...[recirq.BitArray([[0 0 0 1]\\n [1 1 0 0]\\n [1 1...[recirq.NumpyArray([ 1. -1. 1. ... 3. 1. 1......-1.39364(1, 2, 3, 0)HardwareGridProblem2020-03-tutorialHardwareGridProblemGenerationTask(dataset_id='...Syc23-simulator1OptimizationAlgorithm(method='MGD', n_shots=25...[0.3, 0.2]None
22020-08-12 10:48:05.093354[0.2539034350243896, -0.2954098997546575]-0.973921071-2.0[1, 0, 1, 0][recirq.NumpyArray([0.3 0.2]), recirq.NumpyArr...[recirq.BitArray([[0 1 1 1]\\n [1 0 1 0]\\n [0 0...[recirq.NumpyArray([ 0. -2. 0. ... -2. 0. 6......-0.98040(0, 1, 3, 2)ThreeRegularProblem2020-03-tutorialThreeRegularProblemGenerationTask(dataset_id='...Syc23-simulator1OptimizationAlgorithm(method='MGD', n_shots=25...[0.3, 0.2]None
\n", "

3 rows × 25 columns

\n", "
" ], "text/plain": [ " timestamp x \\\n", "0 2020-08-12 10:47:34.046188 [0.3091960656314942, -0.31222192779577423] \n", "1 2020-08-12 10:46:52.953423 [0.46700596149989154, -0.3960967452764799] \n", "2 2020-08-12 10:48:05.093354 [0.2539034350243896, -0.2954098997546575] \n", "\n", " fun nit nfev lowest_energy_found best_bitstring_found \\\n", "0 -0.80848 10 71 -1.0 [0, 1, 0] \n", "1 -1.38384 10 71 -3.0 [1, 0, 1, 1] \n", "2 -0.97392 10 71 -2.0 [1, 0, 1, 0] \n", "\n", " evaluated_points \\\n", "0 [recirq.NumpyArray([0.3 0.2]), recirq.NumpyArr... \n", "1 [recirq.NumpyArray([0.3 0.2]), recirq.NumpyArr... \n", "2 [recirq.NumpyArray([0.3 0.2]), recirq.NumpyArr... \n", "\n", " bitstring_lists \\\n", "0 [recirq.BitArray([[0 1 0]\\n [0 0 0]\\n [1 1 1]\\... \n", "1 [recirq.BitArray([[0 0 0 1]\\n [1 1 0 0]\\n [1 1... \n", "2 [recirq.BitArray([[0 1 1 1]\\n [1 0 1 0]\\n [0 0... \n", "\n", " energy_lists ... optimal_angles_fun \\\n", "0 [recirq.NumpyArray([-1. 3. 3. ... 3. 3. 3... ... -0.81088 \n", "1 [recirq.NumpyArray([ 1. -1. 1. ... 3. 1. 1... ... -1.39364 \n", "2 [recirq.NumpyArray([ 0. -2. 0. ... -2. 0. 6... ... -0.98040 \n", "\n", " problem problem_type dataset_id \\\n", "0 (0, 1, 2) SKProblem 2020-03-tutorial \n", "1 (1, 2, 3, 0) HardwareGridProblem 2020-03-tutorial \n", "2 (0, 1, 3, 2) ThreeRegularProblem 2020-03-tutorial \n", "\n", " generation_task device_name p \\\n", "0 SKProblemGenerationTask(dataset_id='2020-03-tu... Syc23-simulator 1 \n", "1 HardwareGridProblemGenerationTask(dataset_id='... Syc23-simulator 1 \n", "2 ThreeRegularProblemGenerationTask(dataset_id='... Syc23-simulator 1 \n", "\n", " algorithm x0 \\\n", "0 OptimizationAlgorithm(method='MGD', n_shots=25... [0.3, 0.2] \n", "1 OptimizationAlgorithm(method='MGD', n_shots=25... [0.3, 0.2] \n", "2 OptimizationAlgorithm(method='MGD', n_shots=25... [0.3, 0.2] \n", "\n", " line_placement_strategy \n", "0 None \n", "1 None \n", "2 None \n", "\n", "[3 rows x 25 columns]" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from datetime import datetime\n", "import recirq\n", "import cirq\n", "import numpy as np\n", "import pandas as pd\n", "from recirq.qaoa.experiments.optimization_tasks import (\n", " DEFAULT_BASE_DIR,\n", " DEFAULT_PROBLEM_GENERATION_BASE_DIR)\n", "\n", "records = []\n", "for record in recirq.iterload_records(dataset_id=\"2020-03-tutorial\", base_dir=DEFAULT_BASE_DIR):\n", " task = record['task']\n", " result = recirq.load(task, DEFAULT_BASE_DIR)\n", " pgen_task = task.generation_task\n", " problem = recirq.load(pgen_task, base_dir=DEFAULT_PROBLEM_GENERATION_BASE_DIR)['problem']\n", " record['problem'] = problem.graph\n", " record['problem_type'] = problem.__class__.__name__\n", " recirq.flatten_dataclass_into_record(record, 'task')\n", " records.append(record)\n", "df = pd.DataFrame(records) \n", "df['timestamp'] = pd.to_datetime(df['timestamp'])\n", "df.head()" ] }, { "cell_type": "markdown", "metadata": { "id": "ae1b90cc3613" }, "source": [ "## Plot" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "id": "71dfbff0d6f5" }, "outputs": [], "source": [ "%matplotlib inline\n", "from matplotlib import pyplot as plt\n", "\n", "import seaborn as sns\n", "sns.set_style('ticks')\n", "\n", "plt.rc('axes', labelsize=16, titlesize=16)\n", "plt.rc('xtick', labelsize=14)\n", "plt.rc('ytick', labelsize=14)\n", "plt.rc('legend', fontsize=14, title_fontsize=16)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "id": "85276e9c8cfe" }, "outputs": [], "source": [ "# Load landscape data\n", "from recirq.qaoa.experiments.p1_landscape_tasks import \\\n", " DEFAULT_BASE_DIR, DEFAULT_PROBLEM_GENERATION_BASE_DIR, DEFAULT_PRECOMPUTATION_BASE_DIR, \\\n", " ReadoutCalibrationTask\n", "\n", "records = []\n", "ro_records = []\n", "for record in recirq.iterload_records(dataset_id=\"2020-03-tutorial\", base_dir=DEFAULT_BASE_DIR):\n", " record['timestamp'] = datetime.fromisoformat(record['timestamp'])\n", " dc_task = record['task']\n", " \n", " if isinstance(dc_task, ReadoutCalibrationTask):\n", " ro_records.append(record)\n", " continue\n", " \n", " pgen_task = dc_task.generation_task \n", " problem = recirq.load(pgen_task, base_dir=DEFAULT_PROBLEM_GENERATION_BASE_DIR)['problem']\n", " record['problem'] = problem.graph\n", " record['problem_type'] = problem.__class__.__name__\n", " record['bitstrings'] = record['bitstrings'].bits\n", " recirq.flatten_dataclass_into_record(record, 'task')\n", " recirq.flatten_dataclass_into_record(record, 'generation_task') \n", " records.append(record)\n", " \n", "# Associate each data collection task with its nearest readout calibration\n", "for record in sorted(records, key=lambda x: x['timestamp']):\n", " record['ro'] = min(ro_records, key=lambda x: abs((x['timestamp']-record['timestamp']).total_seconds()))\n", " \n", "df_raw = pd.DataFrame(records) \n", "df_raw.head()\n", "\n", "from recirq.qaoa.simulation import hamiltonian_objectives\n", "\n", "def compute_energies(row):\n", " permutation = []\n", " qubit_map = {}\n", " final_qubit_index = {q: i for i, q in enumerate(row['final_qubits'])}\n", " for i, q in enumerate(row['qubits']):\n", " fi = final_qubit_index[q]\n", " permutation.append(fi)\n", " qubit_map[i] = q\n", " \n", " return hamiltonian_objectives(row['bitstrings'], \n", " row['problem'], \n", " permutation,\n", " row['ro']['calibration'],\n", " qubit_map)\n", "\n", "# Start cleaning up the raw data\n", "landscape_df = df_raw.copy()\n", "landscape_df = landscape_df.drop(['line_placement_strategy', \n", " 'generation_task.dataset_id', \n", " 'generation_task.device_name'], axis=1)\n", "\n", "# Compute energies\n", "landscape_df['energies'] = landscape_df.apply(compute_energies, axis=1)\n", "landscape_df = landscape_df.drop(['bitstrings', 'problem', 'ro', 'qubits', 'final_qubits'], axis=1)\n", "landscape_df['energy'] = landscape_df.apply(lambda row: np.mean(row['energies']), axis=1)\n", "\n", "# We won't do anything with raw energies right now\n", "landscape_df = landscape_df.drop('energies', axis=1)\n", "\n", "# Do timing somewhere else\n", "landscape_df = landscape_df.drop([col for col in landscape_df.columns if col.endswith('_time')], axis=1)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "id": "4e59538f1609" }, "outputs": [], "source": [ "import scipy.interpolate\n", "from recirq.qaoa.simulation import lowest_and_highest_energy\n", "\n", "def get_problem_graph(problem_type,\n", " n=None,\n", " instance_i=0):\n", " if n is None:\n", " if problem_type == 'HardwareGridProblem':\n", " n = 4\n", " elif problem_type == 'SKProblem':\n", " n = 3\n", " elif problem_type == 'ThreeRegularProblem':\n", " n = 4\n", " else:\n", " raise ValueError(repr(problem_type))\n", " \n", " r = df_raw[\n", " (df_raw['problem_type']==problem_type)&\n", " (df_raw['n_qubits']==n)&\n", " (df_raw['instance_i']==instance_i)\n", " ]['problem']\n", " return r.iloc[0]\n", "\n", "def plot_optimization_path_in_landscape(problem_type, res=200, method='nearest', cmap='PuOr'):\n", " optimization_data = df[df['problem_type'] == problem_type]\n", " landscape_data = landscape_df[landscape_df['problem_type'] == problem_type]\n", " xx, yy = np.meshgrid(np.linspace(0, np.pi/2, res), np.linspace(-np.pi/4, np.pi/4, res))\n", " x_iters = optimization_data['x_iters'].values[0]\n", " \n", " min_c, max_c = lowest_and_highest_energy(get_problem_graph(problem_type))\n", " zz = scipy.interpolate.griddata(\n", " points=landscape_data[['gamma', 'beta']].values,\n", " values=landscape_data['energy'].values / min_c,\n", " xi=(xx, yy),\n", " method=method,\n", " )\n", "\n", " fig, ax = plt.subplots(1, 1, figsize=(5, 5))\n", " norm = plt.Normalize(max_c/min_c, min_c/min_c)\n", " cmap = 'RdBu'\n", " extent=(0, 4, -2, 2)\n", " \n", " g = ax.imshow(zz, extent=extent, origin='lower', cmap=cmap, norm=norm, interpolation='none')\n", " xs, ys = zip(*x_iters)\n", " xs = np.array(xs) / (np.pi / 8)\n", " ys = np.array(ys) / (np.pi / 8)\n", " ax.plot(xs, ys, 'r-')\n", " ax.plot(xs[0], ys[0], 'rs')### Hardware Grid\n", " ax.plot(xs[1:-1], ys[1:-1], 'r.')\n", " ax.plot(xs[-1], ys[-1], 'ro')\n", " x, y = optimization_data['optimal_angles'].values[0]\n", " x /= (np.pi / 8)\n", " y /= (np.pi / 8)\n", " ax.plot(x, y, 'r*')\n", " \n", " ax.set_xlabel(r'$\\gamma\\ /\\ (\\pi/8)$')\n", " ax.set_ylabel(r'$\\beta\\ /\\ (\\pi/8)$')\n", " ax.set_title('Optimization path in landscape')\n", "\n", " fig.colorbar(g, ax=ax, shrink=0.8)\n", " \n", "def plot_function_values(problem_type):\n", " data = df[df['problem_type'] == problem_type]\n", " function_values = data['func_vals'].values[0]\n", " min_c, _ = lowest_and_highest_energy(get_problem_graph(problem_type))\n", " function_values = np.array(function_values) / min_c\n", " x = range(len(function_values))\n", " \n", " fig, ax = plt.subplots(1, 1, figsize=(5, 5))\n", " \n", " ax.plot(x, function_values, 'o--')\n", " ax.set_xlabel('Optimization iteration')\n", " ax.set_ylabel(r'$E / E_{min}$')\n", " ax.set_title('Optimization function values')" ] }, { "cell_type": "markdown", "metadata": { "id": "3a65b8c06f8a" }, "source": [ "### Hardware Grid" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "id": "f9c6f9583b18" }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_optimization_path_in_landscape('HardwareGridProblem')" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "id": "45a2cf794c33" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAV4AAAFYCAYAAAAbcpQHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy86wFpkAAAACXBIWXMAAAsTAAALEwEAmpwYAABO30lEQVR4nO3deVxU1f/H8dewioAgIghmLpGIgCKI5JpbaqmpaGLu39QsF7RSE82vmqahuZv2dTdtwVJLc8vM1NJcEJVMMHNHwWETkWUQ7u8PfkxNQLIMzCCf5+Ph48GcuXPv54765syZc+9RKYqiIIQQotyYGLoAIYSobCR4hRCinEnwCiFEOZPgFUKIcibBK4QQ5UyCt5KrCJNaKkKN+lYZz7kykeCtQI4ePcqIESMICAigadOmdO/enZUrV5KSklLsfcXGxjJixAiSkpIAuH37Nu7u7uzfv7/E9e3YsQN3d3cSExNLvI9/OnPmDMHBwWV6jMLMnz+f5s2b4+vrS3h4eJkfD0Cj0TB37lwOHTqkbevYsSPvv/9+uRy/NPTxb6iyMDN0AaJoFi1axJo1a+jWrRtz587FxsaGyMhINm/ezK5du1i3bh1PP/10kfd3/Phxfv75Z+1jJycnwsLCqFevXolrbN++PWFhYVSrVq3E+/inr7/+mmvXrpXpMQoSHR3Npk2bGDZsGC+88AIeHh5lerw89+7dY8uWLTRv3lzbtnLlyjI/X1G+JHgrgH379rFmzRpCQkIYPny4tr1ly5b06NGDAQMG8M477/Dll19iampaomNYWFjg4+NTqjodHBxwcHAo1T6M4RgA9+/fB6BHjx40adKkzI/3bxo3bmzQ4wv9k6GGCuB///sfDRs21AndPK6urkycOJELFy7wyy+/ALBixQp69OjBt99+S4cOHWjWrBmjR4/m9u3bQO7H9ZCQECA3vFesWJHvY+LUqVMJDg5m/fr1tGvXDh8fH4KDg0lNTWXlypW0atWKgIAA5s6dS05Ojna/ecMAJ0+exN3dvcA/K1asACArK4vly5fTtWtXvLy88Pf3Z9y4cdy9e1dbw86dO/njjz9wd3fn5MmT+YYaFEVh27Zt9OzZkyZNmtClSxc2bdqk8x65u7uzY8cO3nrrLZo1a0ZAQAAffPABjx49KvD9XrFiBUOGDAHglVdeYciQIYV+jO7VqxdTp04F0J7zmTNnGDBgAN7e3nTq1ImvvvpK5zUxMTFMmDCBFi1a0KJFC8aPH8+dO3e4ffs2nTp1AmDChAnaGv451HD79m0mTJhAy5YtadasGW+++SbXr1/XqT8wMJDvvvuOrl274u3tTd++fTl79myB5wswZMgQXnvtNZ227OxsWrduzdKlS4Hc3nhISAht2rTB09OTNm3a8MEHH6DRaAp9H5s1a6bTdunSJe3fZZ7ffvuNYcOG0bRpU5577jnmzJlDenq69nm1Ws2ECRO0Q2wDBw7k1KlThZ5LRSDBa+QSExO5dOkS7dq1K3SbF154AZVKxZEjR7RtMTExLFiwgHHjxjF//nyuXr3K8OHD0Wg0tG/fnjfffBOAdevW8corrxS4359//pmDBw8yZ84cJk+ezMGDB+nbty/nz58nNDSU/v37s2XLFvbu3ZvvtZ6enoSFhen86dChA1WrVqVbt25A7hjq1q1bGTVqFBs2bGDixImcOHGCefPmATBmzBief/556tSpQ1hYGJ6envmOs3jxYmbNmkXHjh1ZtWoV3bp1IzQ0lCVLluhsN2/ePBwcHFi1ahWDBg3i008/Zdu2bQWe9yuvvMJ///tfbY0zZ84s9L0vyFtvvUXXrl1Zs2YNjRs35r333uPKlSsApKamMnDgQKKjo5k5cyYffvghV69eZdSoUTg5ObFy5UoA3n777QKPGxsbyyuvvMKNGzeYNWsW8+fP5/bt2wwcOJC4uDjtdtevX2f58uWMGzeOFStWkJmZyYQJEwr9ZdOjRw9OnjypHfMHOHXqFPHx8fTs2ZOcnBxGjhzJ77//zsyZM1m3bh29evXi008/JSwsrFjvz99duXKFwYMHo1KpWLp0KZMmTWLv3r1MnDhRu83kyZO5efMm8+fPZ9WqVVhZWTF69GiSk5NLfFxDk6EGI5fXS61du3ah29ja2mJnZ0dMTIy2LS0tjWXLlmkDu0GDBrz88svs2bOHPn36aMeDPT09cXBw0B7n79LS0li+fDlOTk4A7Nq1iytXrrB9+3ZsbGxo27Ytu3bt4vz58/To0UPntTY2NjpDF/v37+enn35i4cKFPPvss0DuL5UpU6bQr18/AFq0aMG1a9fYvXs3AE8//TQODg7cuXOnwGGQpKQkNm7cyIgRI3jrrbcAaNOmDYqisH79eoYNG6YdlmjWrBkzZswAcnv5hw8f5ujRowwcODDffmvVqoWbmxsAzz77LG5ubgW+P4UZOnQo//nPf4Dc9/fgwYMcPXoUNzc3tm/fTnx8PPv376dOnToAuLi4MHbsWG7cuKEdS65bt662hr/btGkTGRkZbNiwQXtuLVq0oHPnzmzcuFHb+3748CGbNm3SDpNkZ2czZswYoqKi8PLyyrffrl27MmfOHH744QftL+J9+/bRqFEjnnnmGe7evYudnR3Tp0+nUaNG2vfx2LFjnD59Wts7L65Vq1bh6OjImjVrsLCwAKBevXoMGjSI06dP4+/vT3h4OOPGjaNjx45A7t/Jxo0bSU9Px97evkTHNTTp8VYQZmb//jvyn8/b2trq9JIbNmxInTp1OHPmTJGP6eLiog1dgBo1alC/fn1sbGy0bfb29jx48OBf93P58mVCQkIYOHAgPXv21LYvXbqUfv36ERcXx4kTJ/jss884e/ZsoR9d/+n8+fNkZWVpe9B5unfvTlZWFufPn9e2NW3aVGcbZ2dn0tLSinSc4vr7L4lq1apRtWpV7bEiIiJwc3PThi6Ah4cHP/74o/YX0r85ffo0AQEBOuPcDg4OtGzZUufjt5mZmU7A1qpVC0DnI/zf2dvb06ZNG+1QSnZ2NgcPHqR79+5A7r+FLVu20LBhQ65fv85PP/3EJ598QkJCQpH/vgpy8uRJWrVqhYmJCY8ePeLRo0f4+PhgY2PDiRMnAGjevDnLly/n7bff5ttvv8XCwoJ3330XFxeXEh/X0KTHa+RcXV0BuHPnTqHbpKWlkZSUpPMPsWbNmvm2c3Bw0H5pVBTW1tb52qysrIr8esj9kmrs2LE8++yz2t5YnrNnzzJr1iyio6OxtbXFw8MDS0vLYu0bwNHRUae9Ro0aQO7H+sLqNjExKbO5slWqVCn0WPfv39fWVxIpKSkFzrCoUaOGdjgDcr8sNTH5q1+V93PeeHxBevbsyZQpU0hOTub3338nKSlJ55PMV199xdKlS4mPj6dmzZo0bdoUS0vLUr2PycnJ2qGof1Kr1QAsWbKEjz/+mH379rFnzx7Mzc156aWXeP/99/O91xWFBK+Rc3R0xNvbm0OHDjFhwgRUKlW+bQ4fPkx2djbt27fXthU0/pWQkIC7u3sZVqsrJyeHt99+mwcPHvDpp59qP0oCPHjwgDfeeANfX19WrFhB3bp1AViwYAFRUVFF2n/ex8z4+HicnZ217fHx8TrP60Pe+/7P4Cpur9nW1pabN2/maz9y5EiBY9j/ZGdnpz2/v4uPjy/1+Xbs2BELCwt+/PFHzp07R7NmzbS/+E+dOsWMGTMYM2YMgwcP1va484aJCqJSqfK9Xw8fPtR5bGNjQ6dOnXj11Vfzvb569epA7t/j9OnTmT59OpcuXWLXrl1s3LgRNzc3Xn/99VKds6HIUEMFMGbMGC5fvszatWvzPadWq1m0aBGenp60bt1a256YmMiFCxe0j6Oiorh16xbPPfccgE5vqKwsWrSI48ePs2jRonwfC69evcr9+/cZNmyYNnRzcnI4fvy4Tg/q3+r09vbG3Nw830yDvXv3YmZmptdpYHnDK/fu3dO2xcXFFWvsF3LHmv/44w+d8fg///yT119/naioqMdOB/Tz8+PkyZM6F5AkJiZy4sQJfH19i1XLP1lZWdGxY0cOHz7MDz/8oNPbPXfuHCqVijfffFMbunFxcVy+fLnQHq+NjQ0ZGRk6F/j880IUPz8/rl69ipeXF97e3nh7e+Pi4sKiRYv4448/SExMpH379nz//fdA7rDMu+++i6urq3b2S0UkPd4KoGPHjowbN45FixZx8eJFevbsSbVq1fj9999Zv349FhYWLF68WGecV6VSMXHiRCZNmgTkflzz8PCgS5cuANoJ+QcPHtQJbH3Zt28f69atIygoCHt7e86dO6d9zsbGhgYNGmBtbc2qVavIyckhIyODzz//nKioKFQqFYqioFKpqFatGrGxsfzyyy/5vhRycHBgyJAhrF+/HlNTU/z9/Tl9+jTr169n+PDh2NnZ6e187OzsaNq0KRs2bMDFxQVTU9MSXdjQt29fNm3axOjRoxk/fjympqYsW7aMJk2a8Nxzz5GRkQHkXuBSr1497RdZeYYPH87OnTt57bXXtDNTVq9ejYWFBcOGDSv1efbs2ZMxY8agUql48cUXte3e3t7k5OQwb948unXrxt27d1m9ejUajabQceO2bdsyf/58pk+fzqBBg4iKiuLzzz/X2WbMmDEMGDCACRMm0LdvXzQaDatWreLu3bs0btwYBwcH6tatywcffEBaWhouLi789NNP3LlzhxdeeKHU52soErwVxPjx42nevDmbN29m5syZpKam8tRTT9G/f3+GDRuWLwCsrKwYN24c8+bNIyMjgw4dOjBt2jRtOLds2ZI2bdowZ84c+vfvn28OZ2nlTW0raPyuRYsWbNmyhRUrVrBgwQLefPNNqlevTvPmzVm2bBnBwcGcP38eHx8fgoKCOHz4MKNHj2bBggX5jjN58mSqV69OWFgY69ato3bt2rz77rsMHTpUr+cDuVPLZs2axaRJk6hZsyavv/46x48fL9Y+qlWrxtatW/nwww+ZOnUqFhYWtGvXjqlTp2JmZoaNjQ2jRo1i69atREREaGd45HFxceGzzz5j4cKFTJ06FVNTUwICAliyZIn2C7TSaN26Nba2tnh5eel8gdeyZUtCQkL49NNP2b59O7Vq1eLFF1/EzMyMzZs3F/gF2zPPPMPcuXNZvXo1o0aNomnTpixfvpz+/ftrt/Hy8mLz5s0sXbqU4OBgLC0t8fX1ZcGCBdrho8WLF7NgwQI++ugjkpOTqV+/Ph999BGtWrUq9fkaikqW/nnyrFixgg0bNhAREWHoUoQQBZAxXiGEKGdGH7wajYYZM2bg7+9P69atC/yCKc+IESPyXZ76ww8/lGO1QgjxeEY/1DB37lxOnjzJ/PnziY2NZcqUKcyZM0c7sfvv8sbK/P39tW12dnY605iEEMLQjDp409LSeO655/jkk0+0A+mrVq3i2LFjfPHFFzrbpqam4ufnx6FDh3jqqacMUa4QQhSJUQ81REVFodFo8PPz07b5+fkRGRlJdna2zrZXrlzB0tJSO+FbCCGMlVFPJ1Or1djZ2elcRuro6EhWVhYJCQk69xG4cuUK1apV46233iI8PJxatWoxfvx4nn/++cceJyAg4F9vQiOEECURExOjcwvMPEYdvOnp6fnGZ/Me/3Pe4J9//snDhw/p2LEjb775JgcPHuSNN97gyy+/zHeDFNCdX1q1alV27NhRRmchhKisAgMDC2w36uC1tLTMF7B5j/9505NJkybx5ptvai8kaNSoERcvXiw0eIOCgggKCgIKf3OEEKIsGPUYr7OzMykpKTrhq1arsbCwyHc5qKmpab6rtxo0aKBzbb0QQhgDow5eDw8PzM3Nda7ACg8Px9PTM9/9Z4ODg5k1a5ZO26VLl6hfv355lCqEEEVm1MFrZWVF7969mT17NhcuXODQoUNs2LBBex2+Wq3W3lSkY8eObN++nd27d2uXPQkPDy+Ta/aFEKI0jHqMFyAkJIRZs2YxbNgwrK2tGTt2LC+99BKQu8zL/PnzCQwMpHfv3qSmprJ8+XJiY2Np2LAh69evL9aS50IIUR6M+gKK8hIYGCizGoQQeldYthj1UIMQQjyJjH6oQQhR8XwTEcPCA9HcSU7H1d6KyV3d6d1MLlLKI8ErhNCrbyJiCNkRSXpW7mX9McnphOyIBNBr+FbkcJfgFULoxcPMRyQ+1LDwQLQ2dPOkZ2Uze/dFrC3NeKFx7soSV9WppGmyqWJuShVzE6qYm2Jlboq15eNjqbzCPe9Y+g54CV4hKpniBInmUQ4JDzNRP/jrT5B/HVQqFVtOXOfbc3dQp+a254aoCZlZBS8hn5SWxbSdkdrg/WDPJQ5F6V7gVK9GVX6a3AGA1zad5vytZCzNckPZ0twUj1q2LA7yKTTcZ+26qD2Xb8/FkJGVjaWZKZZmJliam+BcrQqerrkXX/2pTsXMRKXzvKWZKaYmf63kXVYBL8ErhJEoj4/OO8/eZtrOSNL/PxxjktOZ/PV5frwUh1O1KqhTM5nV05Pq1hZ8fPgKCw9E59tHN69a2Fe14FGOgrmpCU2fsqemrWXuHxtLFh2M5k5yRr7XOVez5LORz2kfB3d6lv7+dcjIyiYzK4fMR9lYWfwVSW2fdcTVvgoZWTlkZGWTkZVDNStzAO4kF7zAZnJ6lvbnhQeiuZ2ku12Xxs6sGdocgP6fnCDhoe4tCfo0q82SIB8AWs0/RGxKBjn/mPeVnpXNwgPRErxCVHSF9awURaGblwupmY94mPmI1MxHPFXdCvuqFsTez+Cn6Hv//1w2DzW52/yndT3cnGz55Uo8C/ZH6Tz/IONRvmNnZSvsunCXKuYm1LS15H56FtWtLWhetzpvv9BQG6h54VqtSm74/ad1ff7TOv+VoaYmKp1zAbAyNyXkRQ/cnGy0bU3r2JP/Lip/KWjfeVztrYgpIHxr2/91D5dd49qQnpWN5lFuqGdm5egMY8wL9OZh5iMyH+WQmZVN5qMcnfo6N3bm0xM3Cjx+YcFfVBK8QhiB0P1RBX50fmvbed7adl6nfeXAZvRo4sqf6lSm/v/HXgBLMxNsLM14ydsFNydbLM1MsK9qwVPVq2JtmTt2uvGX6wUeXwVcer8bKtVfH7MDGtQgoEGNYp9LXk+wLHvvk7u6Fxjuk7u6ax87WP/7yjNdPf99Veb3e3lx6NK9AgPe1d6qgFcUnQSvEAaSkZXN5ydvcjj6Hnfv5/9onmdKN3dsLM2wtjDD2tIMnzr2APjVrc4vUztiY2FGVUtTzE11p+U3r+fA5tda6LR9fzGu0CD5e+iWVu9mtct0hkF5hDsULeBLQoJXiHKieZTDqWuJPMjI4kVvF8xNTVh5+AoO1hbYWJqSmpmd7zW17a0Y096twP1VMTfV+WhdFGUVJIZQ1uGedwzQf8BL8ApRhu6lZHA4+h4/Rt3j5z/ieajJ5pma1rzo7YKpiYpDbz9PdWuLfGO8UDaBWF49xSdJWQS8BK8QepSTo/Dbnft417ZDpVIRuj+a7Wdv42JXhZd9atOxkROt3f4aN63+/+OQ5RmI5dFTFP9OgleIIvi3qV7307M4elnN4ah7HLmsJuGhhgMT2+Fey5Y32zdgZNv6NKpl+9gxVAnEykOCV4jHKGiq19QdFwBwrlaFwetPkp2jYF/VnPYNa9KhkROu9lUAcHOyNVjdwnhJ8ArxGAVdJZWRlcPCA9EceKsdbzzfgI6NnPCpU13nqichCiPBK8RjFDZZ/k5yOjaWZkzu2qicKxIVndyPV4jHsDQr+L9JaSfRi8pLgleIAhz7Q6290OCdLu75wreizn0VxkGCV4i/uZWYxugtZxiy/hRrj14FYFS7BoT2bUJteytU5F7UMD/QW2YgiBKTMV4hyL18d/VPf/LJkT8xUamY3NWdEW3+ukmLTPUS+iTBKwSw5IfL/O/IVXo0cWHaSx4yfivKlNEPNWg0GmbMmIG/vz+tW7dm7dq1j31NcnIyrVu3lpWDxb+6ci+V6NgHALzetgGfjwpg5UBfCV1R5oy+x7tgwQLOnTvHxo0biY2NZcqUKbi6utK9e/dCXzNv3jzi4+PLsUpRkTzIyGLFj1fY8PM1Wj5Tgy0jAqhhY0krG0tDlyYqCaMO3rS0NLZt28Ynn3yCl5cXXl5ejBw5kq1btxYavEeOHOHChQs4ODiUc7XC2CmKws6IGObvi8pdwqZ5HSZ3k5kJovwZ9VBDVFQUGo0GPz8/bZufnx+RkZFkZ+e/hV5qaiqzZs1izpw5mJubl2epogL4Kvw2b287j6tdFb4Z25rQfk1wlF6uMACj7vGq1Wrs7OywtPzrP4ejoyNZWVkkJCTg5OSks/3ChQtp27Yt/v7+5V2qMFJJDzXcSkqjyVP29PJxxcLUhJebumIil/YKAzLq4E1PT8fCQnf5jrzHGo3uInWnTp3i8OHD7Nmzp0j7DgsLIywsDICkpCQ9VCuMSXaOwhenbvLR99HYVjHjp0kdsDQzlSlhwigYdfBaWlrmC9i8x1ZWf33znJGRwXvvvceMGTOwtS3a3aCCgoIICgoCIDAwUE8VC0P45y0b+/rV5tCle1y8k0JAfQdm9/KUm9cIo2LUwevs7ExKSgoajUbb01Wr1VhYWGBnZ6fd7sKFC9y4cYMpU6Zo29LT05k5cybnzp3j/fffL/faRfko6JaNyw9dwc7KjBWvNqNHExe9riUmhD4YdfB6eHhgbm5OREQEAQEBAISHh+Pp6YmZ2V+lN2nShO+//17ntYMGDWLYsGHSm33CFXTLRoCqFmb0bOpqgIqEeDyjDl4rKyt69+7N7Nmz+fDDD1Gr1WzYsIE5c+YAub1fW1tbqlSpQt26dXVea2JiQo0aNahRo/jLU4uKo7BbNsb+y6q9QhiaUU8nAwgJCcHb25thw4Yxc+ZMxo4dy0svvQRAmzZt2Lt3r4ErFIZUy65Kge1y9ZkwZkbd44XcXm9oaCihoaH5nouOji70dUePHi3LsoSRaOBozd1/9G7llo3C2Bl9j1eIwpy9mcTxqwk8/6yj3LJRVChG3+MVojAn/kzApVoVPh7sh42l/FMWFYf8axUV1tgObgxpWVdCV1Q4MtQgKpxbiWlcuJ0MQLUqck8OUfFI8IoKRVEU3vvmNwatPcmDjCxDlyNEiUjwigplT+RdjlxWM/GFhthKb1dUUBK8osK4n57F7N2/413bjuGt6hm6HCFKTL6VEBXGwgNRJKRmsmGYv9z0RlRo0uMVFYaLnRWjn38G76fsHr+xEEZMeryiwhjbwc3QJQihF9LjFUbvi1M32f9brKHLEEJvJHiFUbuVmMbs3RfZcfa2oUsRQm8keIXRypuza6pSMetlT0OXI4TeSPAKo5U3Z/edLu5ym0fxRJHgFUYpNfORds7uMJmzK54wMqtBGCVrC1Omv+SBm5ONzNkVTxwJXmF0FEVBpVLJPXXFE0uGGoRRycrOoe/q42w7c8vQpQhRZiR4hVFZd+waZ28mU72qhaFLEaLMSPAKo3EzIY1lhy7TzbMWLzR2NnQ5QpQZow9ejUbDjBkz8Pf3p3Xr1qxdu7bQbbdv384LL7xAkyZNGDBgABcuXCjHSkVpKIrCe9/+hpmJiczZFU88ow/eBQsWcO7cOTZu3Mjs2bNZvXo1e/bsybfdL7/8wuzZs3nrrbf47rvvaNq0KaNGjSI1NdUAVYviunD7Pkcvq5nUpWGhS7YL8aQw6uBNS0tj27ZthISE4OXlRefOnRk5ciRbt27Nt218fDzjx4/npZde4umnn2b8+PEkJydz+fJlA1QuiqtpHXu+HduaIS3rGboUIcqcUU8ni4qKQqPR4Ofnp23z8/Nj1apVZGdnY2pqqm3v1auX9ueMjAw2bdpEjRo1aNiwYbnWLIrvTnI6rvZWNK1jb+hShCgXRt3jVavV2NnZYWlpqW1zdHQkKyuLhISEAl9z7NgxfHx8WLlyJdOmTcPGxqa8yhUlEH4jkbYLDnPgotx9TFQeRt3jTU9Px8JCd1pR3mONRlPgaxo1asTOnTs5dOgQU6dO5amnnsLHx6esSxUlkJWdw7Qdv+Fsa0kbN0dDlyNEuTHq4LW0tMwXsHmPrawKvmlKzZo1qVmzJh4eHkRERPDll18WGLxhYWGEhYUBkJSUpN/CRZGsPXaV6LgHrBvaHGtLo/6nKIReGfVQg7OzMykpKTrhq1arsbCwwM5Od/mXiIgIoqKidNrc3NwKDdWgoCB27NjBjh07qF69uv6LF//qRsJDlv3wB908a9FZ5uyKSsaog9fDwwNzc3MiIiK0beHh4Xh6emJmpttD+uyzz1i6dKlO28WLF2nQoEF5lCqK6cLt+9hYmsmcXVEpGXXwWllZ0bt3b2bPns2FCxc4dOgQGzZsYOjQoUBu7zcjIwOAgQMHcvToUbZu3cr169dZsmQJFy9eZPjw4QY8A1GYnk1d+fndjjJnV1RKRh28ACEhIXh7ezNs2DBmzpzJ2LFjeemllwBo06YNe/fuBcDX15dly5bxxRdf0LNnT3755RfWr1+Ps7N8jDUm99Oy+P7/ZzBYWZg+ZmshnkwqRVEUQxdhaIGBgezYscPQZVQK03ZG8uWpm/z4TnvqOVobuhwhylRh2WL0PV7x5Ai/kcjnJ2/yWuv6ErqiUpPgFeVC8yiHkB2RuNpV4a0X5GpCUbnJ5ElRLtYeu8rluFSZsysEEryiDH0TEcPCA9HcSU7Hvqo5LRs4yJxdIZChBlFGvomIIWRHJDHJ6ShAUloW527d55uIGEOXJoTBSfCKMrHwQDTpWdk6belZ2Sw8EG2gioQwHhK8okzcSU4vVrsQlYkErygTrvYF38SosHYhKhMJXlEmJnd1x8xEpdNmZW7K5K7uBqpICOMhwSvKRC8fV+yrmmNhaoIKqG1vxfxAb3o3q23o0oQwOJlOJspESvojGtWqRu9mtenn95ShyxHCqEjwijJhV9WcrSMDDF2GEEZJhhqE3mVkZXMvJcPQZQhhtCR4hd4duBjLc/MPcfHOfUOXIoRRkuAVerf9bAwudlZ41Kpm6FKEMEoSvEKvYu9n8PMfagJ9a2Pyj+lkQohcErxCr3ZGxJCjQF9fmckgRGEkeIVefRMRg3+96nKjcyH+hUwnE3q16TV/Eh9qDF2GEEZNglfolYudFS52cj8GIf6NDDUIvcjIyuaNLeGE30g0dClCGD2jD16NRsOMGTPw9/endevWrF27ttBt9+7dS48ePfDx8eHll1/mxx9/LMdKK7dDl+6x/2IsDzOzH7+xEJWc0QfvggULOHfuHBs3bmT27NmsXr2aPXv25Nvu9OnTTJkyhaFDh/Ltt9/Sr18/xo8fz++//26Aqiuf7WdvU6taFVq7ORq6FCGMnlEHb1paGtu2bSMkJAQvLy86d+7MyJEj2bp1a75tv/nmG7p06UL//v2pW7cuQ4cOJSAggL179xqg8srl3oMMjlxW08e3NqYyd1eIxzLqL9eioqLQaDT4+flp2/z8/Fi1ahXZ2dmYmppq24cMGYKZme7pqFQqUlJSyq3eyurbiDtk5ygyd1eIIjLqHq9arcbOzg5LS0ttm6OjI1lZWSQkJOhs26hRI9zc3LSP//jjD06cOEGrVq3Krd7KysHagj7NauPmZGPoUoSoEIy6x5ueno6FhYVOW95jjabwuaIJCQmMGzcOPz8/unTpUuA2YWFhhIWFAZCUlKSniiunvn5P0VfuuStEkRl1j9fS0jJfwOY9trIqeK5obGwsQ4YMwcTEhOXLl2NiUvApBgUFsWPHDnbs2EH16tX1W3glEnn7PukamckgRHEYdfA6OzuTkpKiE75qtRoLCwvs7OzybX/r1i0GDhyISqViy5YtEqhlTPMoh6EbTjJ9Z6ShSxGiQjHq4PXw8MDc3JyIiAhtW3h4OJ6envm+SEtOTuY///kPtra2bNmyBUdHmdZU1n6MukdSWhY9fVwNXYoQFYpRB6+VlRW9e/dm9uzZXLhwgUOHDrFhwwaGDh0K5PZ+MzJyVzpYsmQJSUlJfPjhh2RnZ6NWq1Gr1Tx48MCQp/BE+zr8NjVtLWkrc3eFKBaj/nINICQkhFmzZjFs2DCsra0ZO3YsL730EgBt2rRh/vz5BAYGsn//flJTU+ndu7fO63v27MlHH31kgMqfbAmpmfwUfY8RbepjZmrUv7+FMDpGH7xWVlaEhoYSGhqa77no6GjtzydPnizPsiq9Q1H3eJSjyGwGIUrA6INXGKdX/J6i6VP2NHS2NXQpQlQ48hlRlIhKpcK9loSuECUhwSuKbfHBy0zfGYmiKIYuRYgKSYJXFEtWdg6fn7xBQqoGlUpuiCNESUjwimI5Eq0mPlVDP/lSTYgSk+AVxfJ1+G1qWFvwvHtNQ5ciRIUlwSuKLOmhhkNRcfRuVhtzmbsrRInJ/x5RZFk5OQwKqMsrzWWYQYjSKPU83pSUFI4fP46DgwONGzfGxkbuyfqkcrKtwqyXPQ1dhhAVXqmDd+TIkVhbW/Po0SMuXbqEo6MjXl5ecpnuE+ZWYhoxyem0qOeAiSzvI0SplDp4U1NT2bZtGwCKonD16lUiI+U2gU+arb/eYP3P1zg5rRM1bCwf/wIhRKFKHbxubm5kZmZiaWmJSqXimWee4ZlnntFHbcJIPMrOYUdEDO3dnSR0hdCDUn+5Zmtry4QJE7h69ao+6hFG6NiVeNQPMmXurhB6Uuoer7OzM/Hx8QwdOpScnBy8vb3x8vJi/Pjx+qhPGIGvw29Tvao5HRs5GboUIZ4IpQ7e4OBg7c9xcXH89ttvXLx4sbS7FUYiKzuHiBtJ9PKpjYWZzD4UQh9KHLxDhgxhy5YtrFixAi8vL7y8vHB2dsbZ2ZlOnTrps0ZhQOamJhyZ0oE0WdBSCL0pcfCuXr0ayJ3J8OWXX3Lx4kVUKhWenp54eXkxbtw4vRUpDEdRFMxNTbCzkt6uEPpS4uDNu1BChhqeXH+qUxm24RRLg3xoXs/B0OUI8cTQywoUN2/exMbGRoYanjDbw29z934GTztUNXQpQjxR9PLl2tmzZ8nKysLS0lI73jtmzBh91CcMJDtHYcfZGNo964hTtSqGLkeIJ0qpg/fSpUv89NNPmJmZERMTw8WLF2Wo4Qlw/M94YlMymNGjsaFLEeKJU+pvTJ555hlycnIAqF27Nl26dOGtt94qdWF5NBoNM2bMwN/fn9atW7N27drHvubMmTO0b99ebzVURl+H38bOypxOHjJ3Vwh9K3XwTpw4kZCQEG7duqWPevJZsGAB586dY+PGjcyePZvVq1ezZ8+eQrePjo5mwoQJ2l8GomT6NKtNyIuNqGJuauhShHjilHqoYcmSJURFRTFgwABMTU31OsablpbGtm3b+OSTT7T7HTlyJFu3bqV79+75tv/yyy8JDQ2lTp06JCcnl/r4lVl7d+npClFWSt3jvXr1Kj/++CO//PIL27Zto0+fPmRmZuqjNqKiotBoNPj5+Wnb/Pz8iIyMJDs7/4T+o0ePEhoayvDhw/Vy/Mrqs5M3uJHw0NBlCPHEKnXwurm5aUOwVq1avPDCC3ob41Wr1djZ2WFp+dcdsRwdHcnKyiIhISHf9qtWraJLly56OXZldT3+IdN3/sbeyFhDlyLEE6vUwWtpaUlwcDDXrl3TRz060tPTsbCw0GnLe6zRaEq177CwMAIDAwkMDCQpKalU+3qS7Dh7GxNV7hivEKJslHqMt0GDBly8eJEhQ4agKIp2LFYfdyeztLTMF7B5j62srEq176CgIIKCggAIDAws1b6eFDk5CtvPxtDazZFadjJ3V4iy8tjgVRQFlarwpV7K8pJhZ2dnUlJS0Gg02p6uWq3GwsICOzs7vRxD/OXXawnEJKczpZu7oUsR4on22KEGX19foqOji7SzvMuF/x7GpeHh4YG5uTkRERHatvDwcDw9PTEz08vVzuJvrtxLxdHGgq6etQxdihBPtMcGb3p6us4shZycHAIDA/PN283MzCQ1NVWvxVlZWdG7d29mz57NhQsXOHToEBs2bGDo0KFAbu83IyNDr8eszIa2rMcvUzvK3F0hylixv1xTFIXff/+dlJQUnfaoqChatGiht8LyhISE4O3tzbBhw5g5cyZjx47lpZdeAqBNmzbs3btX78esjDKycmemWJpJ6ApR1vT6eV1RFH3uDsjt9YaGhhIaGprvucKGQPJmK4iiG77xFM7VqrBsQDNDlyLEE0/ubi24lZjGr1cTedbJxtClCFEpSPAKtp+9jUoFfXxlFWEhykORhhqGDx/Os88+i7u7O25ubqhUKh49elTWtYlykDt39zatnqlBbfvSzY0WQhTNY4N3zpw5XLp0iUuXLvHdd9+RlpYGwKuvvkqdOnVo2LAh7u7umJrKlzIV0enridxKTOetzg0NXYoQlcZjg/eVV17ReXz9+nUuXbpEVFQUv//+OxERERw8eBDgXy+0EMapkUs1PujjRTcvmbsrRHl5bPCePXsWX19f7eN69epRr149XnzxRW1bQkICFy9eJCoqqmyqFHr3TUQMCw9Ecyc5HVd7K6wtzOgt92cQolw8NngHDRpEjRo16NChA507d6Zly5b5blxTo0YN2rVrR7t27cqsUKE/30TEELIjkvT/n7sbk5xOyI5IAAlfIcrBY2c1HD16lLFjx3L37l3GjRtHy5YtmTBhAt99953er1QT5WPhgWht6OZJz8pm4YGiXRouhCidx/Z4a9asyauvvsqrr75KamoqR44c4dChQ8yaNYuMjAxatGhB586d6dSpE87OzuVRsyilO8npxWoXQuhXsebx2tjY0L17dxYvXsyJEydYtWoVderUYfXq1bRv355+/frxv//9r6xqFXriWsi0scLahRD69djgLewyYHNzc9q1a8fs2bM5duwYX3zxBc899xzffvut3osU+jWqXf18bVbmpkzuKreDFKI86O22kD4+PkyaNEluWlMBtKhXg3o1quJczRIVUNveivmB3vLFmhDl5LFjvAXdFrJfv34sW7aMOnXqaNszMzPJysrCxkau9zd2jV2r8dPkDoYuQ4hKy+hvCyn0K+JmEokPS7denRCidPR6k5yyuC2k0J9H2TmM+zyC4C8iHr+xEKLMyN3JKpF9v8USk5zO0JZ1DV2KEJWaBG8loSgK645dpb6jNZ09ZL61EIYkt4WsJE5dS+T87fvM7e2FiYnczEgIQ5LbQlYSZ24kUcPagr5ys3MhDE5uC1lJjO3gxuDn6mJlIb8ghTC0Yi92Wd63hdRoNMyZM4f9+/djYWHB8OHDGTVqVIHbRkVFMXPmTKKionjmmWeYNWsWTZo00XtNFc39tCzsqppjZ2Vu6FKEEOjpy7W820K+/vrr+tidjgULFnDu3Dk2btzI7NmzWb16NXv27Mm3XVpaGiNHjqRp06bs2LEDPz8/Ro8eXenvoJaQmknLDw+x9dcbhi5FCPH/jHpWQ1paGtu2bSMkJAQvLy86d+7MyJEj2bp1a75t9+7di7m5OVOnTuWZZ55h2rRp2Nrasm/fPgNUbjy2/HqDNE02zzWoYehShBD/z6iDNyoqCo1Gg5+fn7bNz8+PyMhIsrN17yd7/vx5fH19MTHJPSWVSoWvry8REZX3YoGMrGw+PXGDTo2ccJOl24UwGkYdvGq1Gjs7OywtLbVtjo6OZGVlkZCQkG9bJycnnbYaNWoQFxdXLrUaox1nY0h8qGFk2waGLkUI8TfF/nKtPKWnp+dbZijvsUajKdK2/9wuT1hYGGFhYQAkJSXpq2Sj8umJ63jXtuO5Bg6GLkUI8TdGHbyWlpb5gjPvsZWVVZG2rVKlSoH7DgoKIigoCIDAwEB9lWxUPh3RgvgHGpnmJ4SRMergdXZ2JiUlBY1Go+3NqtVqLCwssLOzy7etWq3WaYuPj6dmzZrlVq+xcbKtgpNtwb94hBCGY9RjvB4eHpibm+t8QRYeHo6npydmZrq/M5o2bUpERIT2DmmKonD27Fl8fHzKs2SjcP5WMv3/d4Lr8Q8NXYoQogBGHbxWVlb07t2b2bNnc+HCBQ4dOsSGDRsYOnQokNv7zcjIAKBbt26kpaUxZ84crly5wvz583n48CEvvfSSIU/BINYeu8qlOynUsLF4/MZCiHJn1MELEBISgre3N8OGDWPmzJmMHTtWG6Zt2rTRLjVkY2PD//73PyIiIujTpw9nz55lzZo1lW5FjFuJaez7LZZXA57GtopcqSaEMTLqMV7I7fWGhoYSGhqa77l/rgXXpEkTdu7cWV6lGaWNv1xHBQxvVc/QpQghCmH0PV5RdPfTswg7fZMeTVxkqXYhjJjR93hF0VmYmvBOF3daPiOXBwthzCR4nyBWFqa81qa+ocsQQjyGDDU8IX6MiiPs9E0eZecYuhQhxGNIj/cJoCgKCw9c5lF2Dv2b1zF0OUKIx5Ae7xPglysJXLqbwqi2DeTyYCEqAAneJ8DaY1dxtLGkVzNXQ5cihCgCCd4KLjr2AUcuqxneqi6WZrKemhAVgQRvBZea+Qj/etUZFFDX0KUIIYpIvlyr4PzqVuerN1oZugwhRDFIj7cC+/VqAvfTsgxdhhCimCR4K6g0zSNGbwnnvW9/M3QpQohikuCtoL46c5v76VlyMxwhKiAJ3gooO0dh/c/X8H3aHr+61Q1djhCimCR4K6DvL8ZyMzGN19vJ6sFCVEQSvBVQxK1k6taoyguNaxm6FCFECch0sgpo2ksejO/ohqmJXB4sREUkPd4KJulh7hL2sqyPEBWXBG8Fcj3+IQHzDrH7/B1DlyKEKAUJ3gpk/c/XAAho4GDgSoQQpSHBW0EkPdTwVfgtejdzxcm2iqHLEUKUglEHr6IoLFmyhJYtW+Lv709oaCjZ2dmPfd2NGzdo0qQJjx49Kocqy8fWX2+QkZXDyLYyhUyIis6oZzVs2rSJnTt3snz5cnJycpg0aRLVq1fn9ddfL/Q1d+/eZfTo0WRmZpZjpWUrO0fh81M3ae9ek4bOtoYuRwhRSkbd4928eTPjx4/H39+fgIAAJk2axGeffVbo9j/88AOBgYFYWFiUY5Vlz9RExfY3W/Fe98aGLkUIoQdGG7xxcXHcvXuX5s2ba9v8/PyIjY3l7t27Bb7mp59+YsKECUyfPr28yiw3rvZWuDnZGLoMIYQeGG3wqtVqAJycnLRtjo6OAMTGxhb4mrlz5zJgwICyL64cHY6+x+B1J4lLyTB0KUIIPTHoGG9mZmahIZqRkRs0fx82yPtZo9GU+thhYWGEhYUBkJSUVOr9lZW1R69yVf0QB+sna/hEiMrMoMEbGRnJoEGDCnxu8uTJQG7Impuba38GsLKyKvWxg4KCCAoKAiAwMLDU+ysLv8Xc5/ifCYS82AhzU6P9cCKEKCaDBm/z5s2Jjo4u8Lm4uDgWLlxIfHw81tbWwF/DDzVr1iy3Gg1p7bGr2Fia8WrA04YuRQihR0bbjXJ2dsbV1ZXw8HBtW3h4OE5OTri4uBiwsrL3TUQMAfN+4NtzdwCFHy/dM3RJQgg9Mup5vK+++iqLFy/GxcUFU1NTFi9ezNChQ7XPJyYmYmlpqe0RPwm+iYghZEck6Vm5F4qkZmYTsiMSgN7NahuyNCGEnhh18I4YMYLExESCg4MxMTEhMDCQESNGaJ/v168fffr0Yfz48QasUr8WHojWhm6e9KxsFh6IluAV4glh1MFramrK1KlTmTp1aoHP//jjjwW2BwQEFDp2bOzuJKcXq10IUfEY7RhvZeViX/ANcFztSz+TQwhhHCR4jUynRk752qzMTZnc1d0A1QghyoJRDzVUNoqiEHErmZq2FpibmnA3OQNXeysmd3WX8V0hniASvEbk16uJ/BaTwrw+3gyUubtCPLFkqMGI5CgKLRvUINBXerdCPMmkx2tEWrs50trN0dBlCCHKmPR4jcTRy2oeZGQZugwhRDmQ4DUC8amZjPz0DAsPVMy5x0KI4pHgNQKfnriB5lEOw1rVM3QpQohyIMFrYBlZ2Wz99QadPZx4pqasMCFEZSDBa2Dbz94m8aGGUbJ6sBCVhgSvgV24dZ+mT9nRor6DoUsRQpQTmU5mYKH9mvAw8xEqlcrQpQghyon0eA0o8WHuUkbWlvL7T4jKRILXQM7fSiZg3g/8FC2rSwhR2UjwGsjaY1epYmaKX93qhi5FCFHOJHgN4FZiGvt+i2VgwNPYVjE3dDlCiHImwWsAG3+5jgoY3rqeoUsRQhiABG85y8jK5uvwW/Ro4oKLnawqIURlJF+nl7Mq5qbsCW5r6DKEEAZk1D1eRVFYsmQJLVu2xN/fn9DQULKzswvd/sSJE/Tt25dmzZrRtWtXvvrqq3KstujqOFSljkNVQ5chhDAQo+7xbtq0iZ07d7J8+XJycnKYNGkS1atX5/XXX8+37fXr1xk9ejRjxozhxRdf5Pz580yfPp0aNWrQsWNHA1Sf37fnYtgZEcPSIB/sq1oYuhwhhIEYdY938+bNjB8/Hn9/fwICApg0aRKfffZZgdvu3bsXDw8P3njjDerWrcvLL79M79692b17dzlXXTBFUfjfkavEJKVTTWYyCFGpGW2PNy4ujrt379K8eXNtm5+fH7Gxsdy9excXFxed7V988UXatWun06ZSqUhJSSmXeh/nxJ8J/H43hdC+3piYyOXBQlRmRtvjVavVADg5/bXcuaNj7rI4sbGx+bavX78+Xl5e2sfx8fHs2bOHVq1alXGlRbPm2FUcbSzo5SPrqQlR2Rm0x5uZmVlgiAJkZGQAYGHx11ho3s8ajeZf95uWlsa4ceNwcnJi4MCBeqq25C7HPeCnaDXvvNCQKuamhi5HCGFgBg3eyMhIBg0aVOBzkydPBnJD1tzcXPszgJVV4fNfHzx4wOjRo7l9+zaff/55oduGhYURFhYGQFJSUonPoSicbaswuas7r7aQJduFEAYO3ubNmxMdXfA6Y3FxcSxcuJD4+Hisra2Bv4YfatasWeBrEhMTGTFiBPHx8Xz66ac8/XThQRcUFERQUBAAgYGBpTmNx7Kras7YDm5legwhRMVhtGO8zs7OuLq6Eh4erm0LDw/Hyckp3xdrkNsbfuONN0hKSuKzzz6jQQPjWNHhy1M3+e7CHUOXIYQwIkY7qwHg1VdfZfHixbi4uGBqasrixYsZOnSo9vnExEQsLS2xtrZm06ZNXLx4kXXr1mFlZaXtHZubm2Nvb2+Q+tM0j/hwfxQt6jnQo4mrQWoQQhgfow7eESNGkJiYSHBwMCYmJgQGBjJixAjt8/369aNPnz6MHz+e/fv38+jRI4YPH66zD19fX7744otyrjzX9vDbJKdlMaqdcfS+hRDGQaUoimLoIgwtMDCQHTt26HWf2TkKHRf9RPWqFuwc00qW9hGiEiosW4x2jLeiO/h7HDcS0hjVtoGErhBChwRvGTE3VfF8w5p09XQ2dClCCCNj1GO8FVknD2c6eUjoCiHykx5vGTgcdY+HmY8MXYYQwkhJ8OrZrcQ0Rmw+zeqf/jR0KUIIIyXBq2frf76GqYmKwc/VNXQpQggjJcGrR/fTsth25hY9m7pSy66KocsRQhgpCV49+uzUDdI02YxsIxdMCCEKJ8GrRxdjUmj7rCONXasZuhQhhBGT6WR69PEgX9I0MptBCPHvpMerB4qikJCaCUBVC/ldJoT4dxK8evDzlXhafvgjZ64nGroUIUQFIMGrB2uOXsXOyhzvp+wMXYoQogKQ4C2lqNgUjv0Rz/BW9bA0k/XUhBCPJ8FbSuuOXcPK3JRBAbKemhCiaCR4S+F+eha7z9+hf/OnsK9q8fgXCCEEMp2sVOyszNk/sR1WsmS7EKIYJHhLqb6jtaFLEEJUMDLUUEJbTlxn1KdnSNdkG7oUIUQFI8FbAtk5CmuPXSMhNRMrCxlmEEIUjww1FMM3ETEsPBBNTHI6AJ08ahq4IiFERWTUPV5FUViyZAktW7bE39+f0NBQsrML/2h/+PBhevbsSZMmTejVqxdHjhzRWy3fRMQQsiNSG7oAX566xTcRMXo7hhCicjDq4N20aRM7d+5k+fLlrFy5ku+++47169cXuO2VK1cIDg4mKCiIPXv28PLLLzN27Fhu3bqll1oWHogmPUs39NOzclh4IFov+xdCVB5GHbybN29m/Pjx+Pv7ExAQwKRJk/jss88K3Pbu3bsMHjyYwYMHU6dOHUaMGEHVqlU5d+6cXmq587eeblHahRCiMEY7xhsXF8fdu3dp3ry5ts3Pz4/Y2Fju3r2Li4uLzvZt27albdu2AGRlZfHNN9+g0Wjw8fHRSz2u9lY6wwx/bxdCiOIw2h6vWq0GwMnJSdvm6OgIQGxsbKGv+/PPP2natCnvvfceY8aMoU6dOnqpZ3JX93wXSliZmzK5q7te9i+EqDwM2uPNzMwsNEQzMjIAsLD461LcvJ81Gk2h+6xZsyZff/01Z8+e5cMPP6Ru3bp07do133ZhYWGEhYUBkJSU9NhaezerDeSO9d5JTsfV3orJXd217UIIUVQGDd7IyEgGDRpU4HOTJ08GckPW3Nxc+zOAlVXhH++rVatG48aNady4MZcvX2br1q0FBm9QUBBBQUEABAYGFqne3s1qS9AKIUrNoMHbvHlzoqMLnhUQFxfHwoULiY+Px9o697LcvOGHmjXzz5+NiooiLS0NX19fbZubmxtnz54tg8qFEKLkjHaM19nZGVdXV8LDw7Vt4eHhODk55ftiDWDfvn3MmjVLp+3ixYs0aCAr/gohjIvRzmoAePXVV1m8eDEuLi6YmpqyePFihg4dqn0+MTERS0tLrK2t6devH5s3b2bJkiX06dOHo0ePsmfPHu04rhBCGAujDt4RI0aQmJhIcHAwJiYmBAYGMmLECO3z/fr1o0+fPowfP546deqwbt065s+fz8aNG6lTpw7Lly/H09PTgGcghBD5qRRFUQxdhKEFBgayY8cOQ5chhHjCFJYtRjvGK4QQTyoJXiGEKGcSvEIIUc6M+su18hITE1Pkiygg90q36tWrl2FF5UfOxfg8KecBci4xMYXcNlYRxdanTx9Dl6A3ci7G50k5D0WRcymMDDUIIUQ5k+AVQohyJsFbAnk313kSyLkYnyflPEDOpTByAYUQQpQz6fEKIUQ5k+AtBo1Gw4wZM/D396d169asXbvW0CWVyM2bN3njjTfw9/enXbt2fPjhh2RmZhq6rFJ77733GDJkiKHLKLGsrCzmz59PQEAAAQEBzJw5819v+m/M7t+/z6RJk2jRogVt27blo48++tcVwo2RRqOhR48eHD9+XNuWnJxMcHAwvr6+dOzYkZ07d5Zo3zKPtxgWLFjAuXPn2LhxI7GxsUyZMgVXV1e6d+9u6NKKTKPR8MYbb+Dm5saXX35JQkIC06ZNA2Dq1KkGrq7kTpw4wVdffUWLFi0MXUqJLViwgEOHDrFq1SpUKhWTJk3i448/5q233jJ0acU2e/Zs1Go1W7duJTExkUmTJmFvb8/IkSMNXVqRZGZm8s477/DHH3/otE+dOpW0tDS++OILIiMj+e9//0vdunV17gNeJHqbmPaEe/jwoeLt7a388ssv2raPP/5YGTBggAGrKr7Tp08rnp6eSmpqqrZt165dSqtWrQxYVek8fPhQ6dSpkzJgwABl8ODBhi6nRO7fv694enoqP//8s7Zt+/btyogRIwxYVcn5+voqBw8e1D6eP39+hTmXP/74Q3n55ZeVnj17Kg0bNtT+n79x44bSsGFD5fr169ptp02bprzzzjvFPoYMNRRRVFQUGo0GPz8/bZufnx+RkZEV6iNUgwYNWLNmjXZVDwCVSkVKSooBqyqdJUuW0KJFiwrd2w0PD8fKyopWrVpp2wIDA1m3bp0Bqyo5e3t7du3aRXp6OnFxcRw7dqzC3KL11KlTBAQE5LuX9/nz56lZsyZ169bVtvn5+XHu3LliH0OCt4jUajV2dnZYWlpq2xwdHcnKyiIhIcGAlRWPg4ODzn/unJwctm7dqtNWkURERLB//37effddQ5dSKjdv3sTV1ZXvvvuO7t2706FDB0JDQyvsGO/MmTM5deoUvr6+tGvXDkdHR8aPH2/osopk4MCBTJs2Ld/ajmq1WmfVc4AaNWr866rnhZHgLaL09HSdFY+haKseG7v58+dz6dIlJk2aZOhSik2j0TB9+nSmTZuGnZ2docsplYcPH3L79m22bt3K7NmzmTVrFgcOHGDhwoWGLq1Ebt68SePGjdm6dStr1qwhJiaG0NBQQ5dVKoVlQFZWFkoxZ+XKl2tFZGlpmS9gi7LqsbFSFIUPPviAL774gmXLlvHss88auqRi+/jjj6lbty4vvviioUspNTMzM1JTU1m4cCFPP/00AFOmTGHKlCmEhIRgYlJx+kg3b95k3rx5/Pjjj9SqVQvI/f/z2muvMXr0aBwdHQ1cYckUlgFVqlRBpVIVa18SvEXk7OxMSkoKGo1G+1tPrVZjYWFR4XpbOTk5TJ8+nd27d7NkyRI6d+5s6JJKZPfu3ajVapo1awbkTsfKzs6mWbNmREREGLi64nFycsLMzEwbugD169cnMzOTxMTEChVWv/32G7a2ttrQBfDy8iI7O5s7d+5UqHP5O2dnZ+Lj43Xa4uPjC1z1/HEkeIvIw8MDc3NzIiIiCAgIAHK/EPH09MTMrGK9jR9++CG7d+9mxYoVdOjQwdDllNiWLVt49OiR9vGmTZv47bff+OijjwxYVcn4+Pjw6NEjoqOjcXd3B+DPP//E2toae3t7wxZXTE5OTqSkpHDv3j3tmOiff/4JwFNPPWXI0krFx8eHuLg4bt++rT2P8PBwmjZtWux9VZzPLwZmZWVF7969mT17NhcuXODQoUNs2LBBZ9XjiuDcuXNs3ryZ4OBgvLy8UKvV2j8VTe3atalbt672T7Vq1ahSpYrOt84VRb169ejUqRMhISH89ttvnDlzho8++oj+/ftXuF/sPj4+NGzYkClTphAVFcW5c+eYMWMGvXr1wsHBwdDllVidOnVo06YN7777LlFRUWzfvp3du3czePDgYu9L7tVQDOnp6cyaNYvvv/8ea2trXnvtNV577TVDl1UsoaGhbNiwocDnLl68WOH+k//dkiVLOHv2LFu2bDF0KSWSmprKBx98wPfff4+ZmRm9e/fmnXfeyfeFTkUQFxfHvHnz+PXXXzE3N6dbt25MmjSJKlWqGLq0YnF3d2fjxo3aWT8JCQlMnz6d48eP4+joyIQJE+jVq1ex9yvBK4QQ5UyGGoQQopxJ8AohRDmT4BVCiHImwSuEEOVMglcIIcqZBK8ocxVh4oyx1FjedRjLeVc2ErxCx9GjRxkxYgQBAQE0bdqU7t27s3LlyhLdNjI2NpYRI0aQlJQEwO3bt3F3d2f//v0lrm/Hjh24u7uTmJhY4n3805kzZwgODi7TYxRk6tSp9OjRQ/t427ZtLF26tEyPmUej0TB37lwOHTqkbevYsSPvv/9+uRy/squ4s+WF3i1atIg1a9bQrVs35s6di42NDZGRkWzevJldu3axbt06nXsJPM7x48f5+eeftY+dnJwICwujXr16Ja6xffv2hIWFUa1atRLv45++/vprrl27VqbHKMiYMWNIS0vTPv7kk09o3759mR4zz71799iyZQvNmzfXtq1cubLMz1nkkuAVAOzbt481a9YQEhLC8OHDte0tW7akR48eDBgwgHfeeYcvv/wSU1PTEh3DwsICHx+fUtXp4OBQ5pedlscxgGL9EisPjRs3NnQJlUcpV8kQT4hevXopPXr0KPT57du3Kw0bNlSOHDmiKIqiLF++XOnevbvyzTffKO3bt1d8fHyU119/Xbl165bO9nl/li9frty6dUtp2LChsm/fPkVRFOXdd99Vxo8fr6xbt05p27at0rRpU2X8+PHKgwcPlBUrVigtW7ZUWrRoocyZM0fJzs7W2W9CQoLy66+/6hzjn8dTFEXRaDTKsmXLlC5duiienp5K8+bNlbFjxyp37tzR1vD31/366686x1AURcnJyVHCwsKUHj16KN7e3soLL7ygbNy4Uef9adiwobJ9+3Zl4sSJio+Pj9KiRQtl7ty5SlZWVqHv6bvvvqt0795dURRF6dChg04deSIjI5WhQ4cqTZo0UQICApT3339fSUtL0z4/ePBg5b333lNee+01xdvbW3n//fcVRVGU8+fPKyNHjlT8/PwUT09PpUuXLsoXX3yhKIqi/XvI+5O3XFKHDh2U2bNna/d969YtJTg4WHnuuecUHx8f5Y033lCuXbumfX758uVKnz59lN27dytdunRRvLy8lMDAQCU8PLzQcxa5ZIxXkJiYyKVLl2jXrl2h27zwwguoVCqOHDmibYuJiWHBggWMGzeO+fPnc/XqVYYPH45Go6F9+/a8+eabAKxbt45XXnmlwP3+/PPPHDx4kDlz5jB58mQOHjxI3759OX/+PKGhofTv358tW7awd+/efK/19PQkLCxM50+HDh2oWrUq3bp1A3Jv9L5161ZGjRrFhg0bmDhxIidOnGDevHlA7sf9559/njp16hAWFlbg8jSLFy9m1qxZdOzYkVWrVtGtWzdCQ0NZsmSJznbz5s3DwcGBVatWMWjQID799FO2bdv2mHc/18qVK6lZsyZdu3bVLjlz5coVBg8ejEqlYunSpUyaNIm9e/cyceJEndfu2LGD+vXrs2rVKnr16sWdO3cYOnQoVatWZdmyZXz88cfUr1+fmTNnEh0djZOTEytXrgTg7bffZubMmfnqiY2N5ZVXXuHGjRvMmjWL+fPnc/v2bQYOHEhcXJx2u+vXr7N8+XLGjRvHihUryMzMZMKECTp3jRP5yVCD4Pbt20Du3b4KY2tri52dHTExMdq2tLQ0li1bpg3sBg0a8PLLL7Nnzx769Omj/Sjt6emJg4OD9jh/l5aWxvLly7W3D9y1axdXrlxh+/bt2NjY0LZtW3bt2sX58+d1vogCsLGx0Rm62L9/Pz/99BMLFy7U3tg9MTGRKVOm0K9fPwBatGjBtWvX2L17N5D7cd/BwYE7d+4UOAySlJTExo0bGTFihHa13zZt2qAoCuvXr2fYsGHaYYlmzZoxY8YMIHeI5vDhwxw9epSBAwcW+r7mady4MRYWFjg6OmrrWLVqFY6OjqxZs0Z7o5x69eoxaNAgTp8+jb+/PwDW1tZMmzZNe7P0I0eO4OPjw0cffYS5uTmQe8ewFi1acPr0adzd3fHw8ACgbt26uLm55atn06ZNZGRksGHDBu35tWjRgs6dO7Nx40btitQPHz5k06ZNNGnSBIDs7GzGjBlDVFQUXl5ejz3vykqCV2g97s5k/3ze1tZWp5fcsGFD6tSpw5kzZ+jTp0+Rjuni4qKzjlWNGjXIzs7GxsZG22Zvb8+DBw/+dT+XL18mJCSEgQMH0rNnT2173iyBuLg4rl69ytWrVzl79myRl2s6f/48WVlZ2h50nu7du7NmzRrOnz+vvafxP+/L6uzsrPPlWXGdPHmSTp06YWJiou1B+vj4YGNjw4kTJ7TB+/TTT+usUPH888/z/PPPk5mZSVRUFNevX+fChQtA0ZepOn36NAEBATpj3Q4ODrRs2ZJTp05p28zMzHQCNu/m5+np6SU868pBglfg6uoKwJ07dwrdJi0tjaSkJFxcXLRtBd1538HBgfv37xf52H9f7ThPcZdSun//PmPHjuXZZ5/V9sTynD17llmzZhEdHY2trS0eHh46C5YWZd9AvlUTatSoAeTeyrGwuk1MTEo1TzY5OVk7hPJPf79/cl4tebKzs/nwww8JCwsjKyuLp59+Wjt7oaj1pKSkaHvFf1ejRg2uXLmifWxhYaET+nk/5+TkFOk4lZUEr8DR0RFvb28OHTrEhAkTClw/6vDhw2RnZ+tMd0pOTs63XUJCgnYFhfKQk5PD22+/zYMHD/j000917l374MED3njjDXx9fVmxYoX2BukLFiwgKiqqSPvPW/0hPj4eZ2dnbXveEjBluTqEjY0NnTp14tVXX833XPXq1Qt93erVq9m2bRuhoaE8//zzVK1alfT0dL7++usiH9vOzi7fMjeQe94VbUUMYyRfrgkg90umy5cvs3bt2nzPqdVqFi1ahKenJ61bt9a2JyYmaj/CAkRFRXHr1i2ee+45gHJZoHHRokUcP36cRYsW6fTGAa5evcr9+/cZNmyYNnRzcnI4fvy4Ts/v3+r09vbG3Nw830Ufe/fuxczMTDu2qQ//rMPPz4+rV6/i5eWFt7c33t7euLi4sGjRIv74449C93Pu3Dm8vLx48cUXqVq1KgDHjh0D/urxPm5KoJ+fHydPntS5iCQxMZETJ07g6+tbovMTf5EerwByr1oaN24cixYt4uLFi/Ts2ZNq1arx+++/s379eiwsLFi8eLHOOK9KpWLixInapeGXLFmCh4cHXbp0AdBOxj948KBOYOvLvn37WLduHUFBQdjb23Pu3DntczY2NjRo0ABra2tWrVpFTk4OGRkZfP7550RFRaFSqVAUBZVKRbVq1YiNjeWXX37J94WQg4MDQ4YMYf369ZiamuLv78/p06dZv349w4cP1+tCp9WqVePixYucOnUKf39/xowZw4ABA5gwYQJ9+/ZFo9GwatUq7t69+69zbr29vVm7di1bt26lYcOGREZG8vHHH6NSqcjIyAByx+ch9yKXevXq0ahRI519DB8+nJ07d/Laa69pZ6esXr0aCwsLhg0bprdzrqwkeIXW+PHjad68OZs3b2bmzJmkpqby1FNP0b9/f4YNG5bvqiYrKyvGjRvHvHnzyMjIoEOHDkybNk0bzi1btqRNmzbMmTOH/v37632ZpLypbQWNg7Zo0YItW7awYsUKFixYwJtvvkn16tVp3rw5y5YtIzg4mPPnz+Pj40NQUBCHDx9m9OjRLFiwIN9xJk+eTPXq1QkLC2PdunXUrl2bd999V+/r7Y0ePZqZM2cyatQoDhw4gJeXF5s3b2bp0qUEBwdjaWmJr68vCxYs0Bn2+KfXX38dtVrNypUryczMpF69evz3v/9l9+7d2tWXbWxsGDVqFFu3biUiIkI7yyOPi4sLn332GQsXLmTq1KmYmpoSEBDAkiVLdFYPFiUjS/+IElmxYgUbNmyocMuoC2EMZIxXCCHKmQSvEEKUMxlqEEKIciY9XiGEKGcSvEIIUc4keIUQopxJ8AohRDmT4BVCiHImwSuEEOXs/wDNj18ymEFcfQAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_function_values('HardwareGridProblem')" ] }, { "cell_type": "markdown", "metadata": { "id": "88db36c69085" }, "source": [ "### SK Model" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "id": "e6e6e2d4eda0" }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_optimization_path_in_landscape('SKProblem')" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "id": "a4f988e09b84" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWYAAAFYCAYAAABgVlbLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy86wFpkAAAACXBIWXMAAAsTAAALEwEAmpwYAABQUElEQVR4nO3deVxUVf/A8c+wioAoq+BuKiIQKOKea26pZWha7r/UTHOr0DSfUrM0NXfDHnNNy7BHMy21x6W00lwQ0VRUJHfZUdkHZu7vDx5uTYALAjPA9/168ZI598y93zM43zlz7rn3aBRFURBCCGEyzIwdgBBCCEOSmIUQwsRIYhZCCBMjiVkIIUyMJGYhhDAxkpjFA5WFSTtlIcbiVhHbXJFIYi5HDh8+zMiRI2nZsiV+fn706tWLlStXcv/+/cfeV0xMDCNHjiQ5ORmAmzdv4unpyd69e4sc3/bt2/H09CQpKanI+/inkydPMnHixBI9RmHmzZtH8+bNadasGWFhYSV+PACtVsuHH37IgQMH1LLOnTvzwQcflMrxn0Rx/B+qKCyMHYAoHosWLWL16tX06NGDDz/8EDs7O86ePcvGjRvZuXMna9asoXbt2o+8vyNHjvDrr7+qj11dXQkNDaVu3bpFjrFjx46EhoZSpUqVIu/jn/7zn//w559/lugxCnLx4kU2bNjA8OHD6dq1K15eXiV6vDxxcXFs2rSJ5s2bq2UrV64s8faK0iWJuRzYs2cPq1evZvr06YwYMUItb926Nb179+bll1/m7bff5uuvv8bc3LxIx7CyssLf3/+J4nR0dMTR0fGJ9mEKxwC4d+8eAL179+bpp58u8eM9SJMmTYx6fFH8ZCijHPj3v/9No0aNDJJyHg8PDyZPnsyZM2f47bffAFixYgW9e/fmu+++o1OnTjRt2pQxY8Zw8+ZNIHc4YPr06UBucl+xYkW+r6HTpk1j4sSJrF27lvbt2+Pv78/EiRNJTU1l5cqVtGnThpYtW/Lhhx+i1+vV/eYNMxw7dgxPT88Cf1asWAFAdnY2y5cvp3v37vj4+BAYGMj48eO5c+eOGsO3337L5cuX8fT05NixY/mGMhRFYevWrfTp04enn36abt26sWHDBoPXyNPTk+3bt/Pmm2/StGlTWrZsyUcffUROTk6Br/eKFSsYOnQoAC+99BJDhw4t9Gv6Cy+8wLRp0wDUNp88eZKXX34ZX19funTpwjfffGPwnFu3bjFp0iRatGhBixYtmDBhArdv3+bmzZt06dIFgEmTJqkx/HMo4+bNm0yaNInWrVvTtGlTxo4dy9WrVw3iDwoK4vvvv6d79+74+vrSr18/Tp06VWB7AYYOHcqrr75qUKbT6Wjbti1Lly4Fcnvz06dPp127dnh7e9OuXTs++ugjtFptoa9j06ZNDcouXLig/i3z/PHHHwwfPhw/Pz9atWrFnDlzyMjIULfHx8czadIkdQhv0KBBHD9+vNC2lAWSmMu4pKQkLly4QPv27Qut07VrVzQaDYcOHVLLbt26xYIFCxg/fjzz5s0jOjqaESNGoNVq6dixI2PHjgVgzZo1vPTSSwXu99dff2Xfvn3MmTOHKVOmsG/fPvr160dERATz589nwIABbNq0id27d+d7rre3N6GhoQY/nTp1onLlyvTo0QPIHcPdvHkzo0ePZt26dUyePJmjR48yd+5cAMaNG0eHDh2oVasWoaGheHt75zvO4sWLmTVrFp07dyYkJIQePXowf/58lixZYlBv7ty5ODo6EhISwuDBg/niiy/YunVrge1+6aWXeP/999UYZ86cWehrX5A333yT7t27s3r1apo0acK//vUvoqKiAEhNTWXQoEFcvHiRmTNn8vHHHxMdHc3o0aNxdXVl5cqVALz11lsFHjcmJoaXXnqJa9euMWvWLObNm8fNmzcZNGgQsbGxar2rV6+yfPlyxo8fz4oVK8jKymLSpEmFfhj17t2bY8eOqeccAI4fP05CQgJ9+vRBr9czatQozp8/z8yZM1mzZg0vvPACX3zxBaGhoY/1+vxdVFQUQ4YMQaPRsHTpUoKDg9m9ezeTJ09W60yZMoXr168zb948QkJCsLGxYcyYMdy9e7fIxzU2Gcoo4/J6uTVq1Ci0jr29PQ4ODty6dUstS09PZ9myZWpCr1+/Ps8//zw//PADL774ojoe7e3tjaOjo3qcv0tPT2f58uW4uroCsHPnTqKioti2bRt2dnY888wz7Ny5k4iICHr37m3wXDs7O4Ohkb179/Lzzz+zcOFCGjZsCOR+6EydOpX+/fsD0KJFC/7880927doFQO3atXF0dOT27dsFDrMkJyezfv16Ro4cyZtvvglAu3btUBSFtWvXMnz4cHXYo2nTprz33ntA7reEn376icOHDzNo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Y8eOJXrMPHFxcWzatInmzZurZStXrizxNou/SGIWD7Vnzx5Wr17N9OnTGTFihFreunVrevfuzcsvv8zbb7/N119/jbm5eZGOYWVlhb+//xPF6ejoWOKX9ZbGMYDH+pArDU2aNDF2CBXLE6yyIiqIF154Qendu3eh27dt26Y0atRIOXTokKIoirJ8+XKlV69eyo4dO5SOHTsq/v7+ymuvvabcuHHDoH7ez/Lly5UbN24ojRo1Uvbs2aMoiqK88847yoQJE5Q1a9YozzzzjOLn56dMmDBBSUlJUVasWKG0bt1aadGihTJnzhxFp9MZ7DcxMVH5/fffDY7xz+MpiqJotVpl2bJlSrdu3RRvb2+lefPmyhtvvKHcvn1bjeHvz/v9998NjqEoiqLX65XQ0FCld+/eiq+vr9K1a1dl/fr1Bq9Po0aNlG3btimTJ09W/P39lRYtWigffvihkp2dXehr+s477yi9evVSFEVROnXqZBBHnrNnzyrDhg1Tnn76aaVly5bKBx98oKSnp6vbhwwZovzrX/9SXn31VcXX11f54IMPFEVRlIiICGXUqFFKQECA4u3trXTr1k3ZsmWLoiiK+nfI+8lbiqtTp07K7Nmz1X3fuHFDmThxotKqVSvF399fef3115U///xT3b58+XLlxRdfVHbt2qV069ZN8fHxUYKCgpSwsLBC2yz+ImPM4oGSkpK4cOEC7du3L7RO165d0Wg0HDp0SC27desWCxYsYPz48cybN4/o6GhGjBiBVqulY8eOjB07FoA1a9bw0ksvFbjfX3/9lX379jFnzhymTJnCvn376NevHxEREcyfP58BAwawadMmdu/ene+53t7ehIaGGvx06tSJypUr06NHDyB3EYDNmzczevRo1q1bx+TJkzl69Chz584FcocTOnToQK1atQgNDS1w+aPFixcza9YsOnfuTEhICD169GD+/PksWbLEoN7cuXNxdHQkJCSEwYMH88UXX7B169aHvPq5Vq5ciYuLC927d1eXNIqKimLIkCFoNBqWLl1KcHAwu3fvZvLkyQbP3b59O/Xq1SMkJIQXXniB27dvM2zYMCpXrsyyZcv49NNPqVevHjNnzuTixYu4urqycuVKAN566y1mzpyZL56YmBheeuklrl27xqxZs5g3bx43b95k0KBBxMbGqvWuXr3K8uXLGT9+PCtWrCArK4tJ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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_function_values('SKProblem')" ] }, { "cell_type": "markdown", "metadata": { "id": "cc319d38bc0b" }, "source": [ "### 3 Regular MaxCut" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "id": "57aa2b72d90b" }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_optimization_path_in_landscape('ThreeRegularProblem')" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "id": "a313c5fd48ad" }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_function_values('ThreeRegularProblem')" ] } ], "metadata": { "colab": { "name": "optimization_analysis.ipynb", "toc_visible": true }, "kernelspec": { "display_name": "Python 3", "name": "python3" } }, "nbformat": 4, "nbformat_minor": 0 }