{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Specifying a measurement layout\n", "\n", "This document shows you how to deal with circuit layout in different cases." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%load_ext autoreload\n", "%autoreload 2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1. Transpiled Quantum Circuit\n", "\n", "Example of a quantum circuit without ancilla qubits before transpilation." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Define quantum circuit" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "<Figure size 287.294x200.667 with 1 Axes>" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from qiskit import QuantumCircuit\n", "\n", "qc = QuantumCircuit(2)\n", "qc.h(0)\n", "qc.cx(0, 1)\n", "qc.draw(\"mpl\", style=\"iqp\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Transpile circuit" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "<Figure size 583.515x451.5 with 1 Axes>" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager\n", "from qiskit_ibm_runtime.fake_provider import FakeManilaV2\n", "\n", "backend = FakeManilaV2()\n", "backend.set_options(seed_simulator=25)\n", "pm = generate_preset_pass_manager(optimization_level=2, backend=backend)\n", "\n", "# Transpile the circuit to an \"Instruction Set Architecture\" (ISA) circuit.\n", "# Note: the transpiler automatically adds \"ancilla\" qubits to make the transpiled\n", "# circuit match the size of the FakeManilaV2 backend.\n", "qc_isa = pm.run(qc)\n", "qc_isa.draw(\"mpl\", style=\"iqp\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Define measurement procedure\n", "\n", "No need to set a particular `measurement_layout`, because the `POVMSampler` will analyze the transpiled circuit and apply the `TranspileLayout` to the measurement circuit." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "from povm_toolbox.library import ClassicalShadows\n", "\n", "measurement = ClassicalShadows(2, measurement_layout=None, seed=13)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "More precisely, the measurement layout that will be automatically applied by the `POVMSampler` is extracted as :\n", "```python\n", "transpile_layout = transpiled_circuit.layout\n", "measurement_layout = transpile_layout.final_index_layout(filter_ancillas=True)\n", "```\n", "For the above circuit, we have:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[4, 3]\n" ] } ], "source": [ "print(qc_isa.layout.final_index_layout(filter_ancillas=True))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Run the job\n", "\n", "Initialize `Sampler` and `POVMSampler`. Then run the job." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "from povm_toolbox.sampler import POVMSampler\n", "from qiskit_ibm_runtime import SamplerV2 as RuntimeSampler\n", "\n", "# First define a standard sampler (that will be used under the hood).\n", "runtime_sampler = RuntimeSampler(mode=backend)\n", "# Then define the POVM sampler, which takes BaseSampler as an argument.\n", "povm_sampler = POVMSampler(runtime_sampler)\n", "# Submit the job by specifying which POVM to use, which circuit(s) to measure and the shot budget.\n", "job = povm_sampler.run([qc_isa], shots=4096, povm=measurement)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Look at the final composed circuit to check that the measurement was performed on the correct qubits." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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Q9ADABXQM888o8mTJ+u///2vGjVqpOTkZCUnJ+v8+fP2Lg0AAADXoB5d2ioosHqR549sVE8tGjco8vzPPvusNmzYoJdeeklxcXH64osvNH36dL344ovFKbfUhdTwV/cubYo8/5XeTFFF6s2UIzU1VTExMYqJiVFGRoaSk5MVExOjffv2FafkYjMZxj+HJAKAgq1YsUIrVqxQ165d1bVrV3uX45BM+fyH8uCDD2r27NnlWwwAAAAcwrETpzXjyx+UnW0ucD6fKl565uGB8vb0sGn9ixcv1pgxYxQXF6egoCA9/fTTeu6550pScqkym836eO4iJSQmFzrv3XfcZFPQJV35ntStW7dc06OiorRixQqb1lUSDMYMwGYrVqxQdHS0JBH0lBEyeAAAAJS24Br+6tGlrZasWF/gfANvi7I55JGk22+/XbffXnEHbnZyctJdt3fVu7MWKCMjM9/5ml1fT80j6tu8/q5du1aIz/FcugUA1zDDMLQ3IbFC/IcCAACAiq9L20iF1Q7Kt719y8ZqVC+0HCsqX9X9fHXHzR3ybfet4qW+PTrn28P+WkDQAwDXsLj9h/XZvJ/10dc/EfYAAACgUE5OTrqrdze5u7nmaguoVlW9ut5gh6rKV5vIRopoUDfPtoG3RcmrGL2ZKpJrOugxmUyWlO37779X586d5evrK19fX91000367bffClx+/vz56t69u/z9/eXu7q6wsDA98sgj2r9/v9V8ZrNZtWvXlslk0vLly/Nd33//+1+ZTCa1a9fOMm327NkymUx66KGHlJaWprFjx6pBgwby9PRUvXr19Oqrryo7O1uSdPnyZU2YMEHh4eHy8PBQ3bp1NXbsWGVm5t+lrChWrFghk8mkrl27ymw265133lGTJk3k5eWl0NBQPffcc7p48aJlX999911FRkbKy8tLwcHBevLJJ5WSkpLv+k+cOKGRI0eqSZMm8vb2lo+Pj9q2bavp06fnWXt2drZ+/PFHDRs2TE2bNlW1atXk6emphg0b6qmnnlJSUlKe28nKytL777+vDh06qGrVqnJzc1NQUJBat26t//znPzp06JDV/FcfH3l56KGHZDKZco13cvX0I0eO6JFHHlGdOnXk6uqqhx56yGreVatWadCgQQoJCZGbm5tq1Kihfv36ad26dXlus2vXrjKZTFqxYoV27typgQMHKjAwUD4+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WmJioq6//no5OTnpxIkT8vAo2nWOXbp00Zo1a3T06FEFBwdLkr755hvdc8896tevn77//vsirSfn+MjvEH/ooYf0xRdfaNasWVaXZOVMr1mzpvbt26cqVapYLZeZmanrrrtOSUlJWr16tTp37pxr3e+++66effbZXM9N165dtXLlSjVv3lxbtmyRk9PfV0+eO3dOwcHBSktLy7P97NmzCgkJUVpams6cOaNq1apJkk6dOqU6derIZDIpJiZGDRs2zFXPM888o2nTpum1117TSy+9ZJkeFhamQ4cO5Tpuc7Ro0UKxsbH64Ycf1LdvX8v0CRMmKDo6WuPHj9eECRPyfH5tceedd+qnn37S4MGD9c033xRpmZzX94knntCMGTNytf/888+6/fbb1bRpU23cuDHX8Zedna127dppy5YtWrNmjTp16iRJ+vTTT/XII48oLCxMcXFxcnd3t1pu7Nixeu211yRJBw8eVFhYmK27q+lffK+U1Ms2L3e1rOwsXbqcLkny8fbisi0AAAAUS2ZWlpycnOTsdE2P7FJshmEoMytLbq4V65I1nyqeeurB/oXPmAeHuL36U089lef0ESNG6Pfff9cvv/ximRYXF6eEhAQ5OzvnuZyzs7NGjBihZ555Rr/88otV0HPfffdpzJgxmjNnTq6gZ86cOZZ58tKiRYtcIY4ktWrVSvPmzSuw/dtvv9WBAwfyXK8tqlWrlivEydlGUdr/WcOCBQskSY899lie26tdu7batm2rFStWaPPmzZYv0jlWr16tH3/8UXv27NGFCxcsYxXt3btXkhQbG2sJekJDr1wnuX79eh0+fFh16tQp2k6XwMCBA3OFPJL0119/KSkpSU2aNMkz5JGkfv366dlnn7UaK+ZqDz/8sFWII0l+fn667rrrtHv37jzbq1WrZgkfDhw4oNatW0uSlixZosuXL+v222/PM+TJqWfatGlasWKFVdCTI7/X8IYbblBsbGyucatK0+XLly1jD7344os2L//PcZNy5ByfDz74YJ4ho7Ozs+68805t2bJFK1assByfS5culSTdf//9uUIeSRo2bJgl6CmulNTLupB6sUTrsFrfxUulti4AAACgMkpLz7B3CaXGIYKexo0bFzj92LFjunDhgnx9fRUfHy9JCgkJsfSI+KemTZtKkvbs2WM1/d5779VLL72kRYsW6fz586pataokaf/+/Vq/fr28vLysej1crX79+nlODwwMLLC9Ro0akqTU1NQ8221RmjVcvHjREvyMGDEiVyiRI+f5vnqA5czMTN1///369ttvC6z39OnTln936NBBHTt21Lp169SgQQN17dpVXbt2VZcuXdS+fXu5lkH6GhERkef0bdu2SZKSk5PzDXpyehHlN7B0Qa/F7t27C3wt4uLirF6LnHpiYmLyrSctLa3AevILiGrWrCmpdI6//Ozbt08ZGRny9PRU8+bNbV6+sNdp1qxZ+t///pfnPMePH5dk/bzkHLP51RIWFiZfX19duHDB5lpz+FTxLPayEr15AAAAAEdXku8MDhH05AQR/5TzJVWSUlJS5Ovra7l71NVt+S33zztN1a1bV507d9bq1au1YMECPfzww5Kkr7/+WpLUt2/fPHuASJK3t3ee03O+oBXWXhpX2JVmDefOnbP8+88//yx025cu/d3j4K233tK3336rmjVr6s0339SNN96o4OBgS6+LBx54QP/973+t7tjl5OSkn3/+Wa+++qr++9//6rfffrPcVc3f31/PP/+8Ro4cKWdn50JrKar8no+cfT99+rTWrl1b4DouX8778pyyeC2SkpLyDXJyXP06FKWenACvLK/wzAlMfH19ixVYFPY6/fNuXXm5+nnJCbV8fHzynd/Hx6dEQU9xu2BKV16LGV/+oEuX0xV1Q3PdVglufwkAAACg6Bwi6Dlx4oTl0p6r5fxaL/39pS3n76vb8lsury969913n1avXq05c+bkCnryu2zLEV0daF24cKHAL8X/9N///lfSlZ4Wt912W672q3vyXK1q1ap6++23NXnyZO3cuVOrV6/W4sWL9fPPP2vMmDHKzs7Wyy+/nGs5wzDyDBBybilvq5x979+/v+XyIHvKqee5557TlClT7FyN7Xx9fSVdOY7ye62KI+d5Wbhwoe644w6bl/tn0Hu1gtqKoiRj9Fzdm2fLjr3aunNfiWoBAAAAUPFU+jF6du3alWfQk/NLflBQkOXLZHh4uCTp6NGjOnv2bJ6Xb+3YsUOS1KhRo1xtd911l0aMGKEVK1bo6NGjSk5OVlxcnAIDA9WjR49S26eKrmrVqqpVq5aSkpK0Y8cOdejQocjLHjx4UJLyvMwoOztbmzZtKnB5k8mkpk2bqmnTpho+fLhmzpypJ554Qp988olV0OPt7a2LFy/q+PHjCgoKyrWenLGAbNWkSRNJfx8n9maPekrzUqGGDRvKzc1Nly9fVmxsrFq0aFEq623SpIliYmK0Y8cOm4Ke8PBwxcbGatu2bRo4cGCu9kOHDpWoN49UemP0MDYPAAAAgH9yiKDn/fff16233ppr+vTp0yVJPXv2tEy7/vrrFRYWpoSEBE2fPj3Pu27lLJdXb5Nq1arptttu048//qi5c+fq6NGjkq7cHcvFxSGeziIbOHCgpk2bpnfeeUffffddkZfz9PRURkaGkpOTc/UE+uqrr3TixAmb6sgZRPfYsWNW0xs0aKDY2FitX79effr0sWr7888/FRsba9N2cnTp0kU1a9ZUfHy8Fi1apN69exdrPaWld+/ecnd31x9//KHY2NhijXNjK0/PK9eL5ndpmi08PDws59TkyZMtA5uX1MCBAzVnzhx9/PHHeuqpp/K9rPKfbr31Vn333XeaM2eOXn75Zbm5uVm1z5o1q8S1Ffd6W8bmAQAAACqHEo3raZebupcSSYYkw9XV1XjzzTeNrKwswzAMIysry3j11Vctbdu3b7da7qOPPjIkGR4eHsaCBQss01NTU42hQ4cakozq1asbx48fz3O73377rSHJaN68uVGrVi1DkvHnn3/mOe+sWbMMScaDDz5YJu1FsXz5ckOSERUVVartx44dM2rUqGFIMoYNG5br+bp06ZKxcOFC46GHHrKa3rt3b0OS0bt3b+P8+fOW6f/73/8Mb29vw8PDw5BkzJo1y9L21VdfGRMmTDD27dtnta7z588b99xzjyHJuOGGG6zaxowZY0gymjZtahw5csQyfdu2bUbDhg0NV1fXXNsxDMN48MEH85x+tc8++8yQZPj6+hpffvml5djLceTIEeOdd94xPvjgA6vpUVFRhiRj+fLlea63uO1jx441JBkhISHGokWLDLPZbNUeHx9vvPLKK8b8+fOtptetW9eQZBw8eDDP7Y0fP96QZIwfP95q+vz58w1JRseOHY2MjIw8l7XF1q1bDTc3N0OSMWLECKvjwmw2G0uXLjW+++47q2Vyzv/8mM1my/PVoUOHXO8D2dnZxrp164zHHnvM2L9/v2V6amqqUbt2bUOScc899xgpKSmWtu+++85wd3e3HDv5PW9lwWw2G+/NXmCMmvSR8fPyv8ptuwAAAACuLXnfKuka89Zbb2nUqFEKDg5Wu3btFBQUpLFjx0qSpk6darmLVo5HH31UDz/8sNLS0jRgwADVrVtXbdu2VVBQkGbNmiVvb2998803+Q7yfMcdd8jX11exsbFKSkpS/fr11b59+zLfz4omKChIixcvVnBwsD777DMFBwercePG6tChg66//nr5+vrqzjvv1JIlS6yWe+WVV+Th4aFFixapVq1aat26terUqaO+ffuqffv2eV4uc/LkSU2YMEENGjSwvM7NmzdXUFCQ5s6dKx8fH7333ntWyzz//PMKDQ3Vjh07VK9ePTVr1kzXX3+9mjVrpjp16mjQoEHF3veHH35Yr732mlJSUvTAAw+oevXqatOmjdq2batatWopNDRUzz33nBISEoq9DVtMmDBBjz32mI4eParevXsrMDBQ7dq1U+vWrRUYGKjw8HCNGzdOJ0+eLJXtde/eXf7+/lq3bp1CQ0PVqVMnde3aVc8880yx1teiRQt99dVXcnd313vvvafAwEC1bNlSzZo1k6+vr3r06KE1a9bYtE6TyaT58+erY8eO+vPPPxUZGamwsDC1b99ezZs3l6+vrzp27KiPPvpIGRl/30rR29tbc+bMkaenp+bOnWs53sLCwjRo0CA99thjCgkJkaRSHfy7MHH7Dysp+ZTcXF3UpV2zctsuAAAAgGuLQwQ9zzzzjBYsWKDw8HDFxcUpLS1NXbt21S+//KInnngiz2U+++wzffvtt7rpppuUkpKi2NhYVa9eXcOGDVNMTIy6d++e7/Y8PDw0YMAAy+PKNAjzP7Vp00a7du3Sa6+9ptatWyspKUkbN27UqVOndMMNN+i1117T8uXLrZZp2bKl1qxZo9tuu00mk0m7d++Wr6+vXn/9dS1ZsiTPL88DBgzQW2+9pVtvvVXu7u7asWOH9uzZo9DQUD3++OPatm2b2rVrZ7VM9erVtXbtWt1///3y8/NTfHy8DMPQa6+9piVLlpT4luwvvfSSNm3apKFDh8rf3187duzQtm3b5OrqqgEDBujLL7/U6NGjS7SNonJyctKHH36oZcuWafDgwfL09FRsbKx2794tPz8/3X///VqwYIEeeOCBUtmer6+vli5dqt69eys7O1t//fWXVq5cqZiYmGKvc9CgQdq+fbsee+wxhYaGavfu3Tpy5IjCwsL07LPP6rHHHrN5nQEBAVq5cqVmz56t7t276+LFi9q0aZMOHjyoBg0a6Omnn9bKlSstY3fluPHGG7Vhwwb169dPrq6u2rFjh/z8/DRz5kxNmzbNMpB3zthfZc0wDP2+drMkqUOrJqriVbLbswMAAABwXCbDKMP7Jpex0rz1OAAUxalTpxQYGKhq1arpzJkz5bLNjIxM/fj7Wu2MT9B/Hh1M0AMAAAAgX5Vr9GAAKKHZs2dL+nsQ8PLg5uaqQb266o6bM+Th7lb4AgAAAAAqLYe4dAsAStOaNWv01VdfKS0tzTLNbDbrv//9r2X8r+HDh5d7XYQ8AAAAAApDj55rzFNPPaWtW7cWeX5bB7AFSqpz585Fnrdly5aaPn16GVZTPImJiRoyZIgeeeQRhYeHy93dXfv377dcqvXkk0+qV69edq4SAAAAAHIj6LnGbN++XWvXrrV3GUC+bDk+XVwq5ltQhw4d9Mwzz+iPP/5QYmKiLly4oKpVq6pHjx569NFHrQZjBwAAAICK5JoejBkAAAAAAAB/Y4weAAAAAAAAB0HQAwAAAAAA4CAIegAAAAAAABwEQQ8AAAAAAICDIOgBAAAAAABwEAQ9AAAAAAAADoKgBwAAAAAAwEEQ9AAAAAAAADgIgh4AAAAAAAAHQdADAAAAAADgIAh6AAAAAAAAHARBDwAAAAAAgIMg6AEAAAAAAHAQBD0AAAAAAAAOgqAHAAAAAADAQRD0AAAAAAAAOAiCHgAAAAAAAAdB0AMAAAAAAOAgCHoAAAAAAAAcBEEPAAAAAACAgyDoAQAAAAAAcBAEPQAAAAAAAA6CoAcAAAAAAMBBEPQAAAAAAAA4CIIeAPi/duxABgAAAGCQv/U9vsIIAABgQvQAAAAATIgeAAAAgAnRAwAAADAhegAAAAAmRA8AAADAhOgBAAAAmBA9AAAAABOiBwAAAGBC9AAAAABMiB4AAACACdEDAAAAMBHjw/SsT5UQZwAAAABJRU5ErkJggg==", "text/plain": [ "<Figure size 1463.35x535.111 with 1 Axes>" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pub_result = job.result()[0]\n", "pub_result.metadata.composed_circuit.draw(\"mpl\", style=\"iqp\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Define observable" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "from qiskit.quantum_info import SparsePauliOp\n", "\n", "observable = SparsePauliOp([\"XI\", \"XX\", \"YY\", \"ZX\"], coeffs=[1, 1, -1, 1])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Get the expected value\n", "\n", "The observable has to be specified in terms of virtual qubits. Therefore, there is no need to apply the layout that was used by the POVM on the physical qubits." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1.8845214843749996\n" ] } ], "source": [ "from povm_toolbox.post_processor import POVMPostProcessor\n", "\n", "post_processor = POVMPostProcessor(pub_result)\n", "exp_value, std = post_processor.get_expectation_value(observable)\n", "print(exp_value)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For reference, we can compare our estimated expectation value to the exact value.\n" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Exact value: 1.9999999999999996\n", "Estimated value: 1.8845214843749996\n" ] } ], "source": [ "import numpy as np\n", "from qiskit.quantum_info import Statevector\n", "\n", "isa_observable = observable.apply_layout(layout=qc_isa.layout, num_qubits=qc_isa.num_qubits)\n", "\n", "exact_expectation_value = np.real_if_close(Statevector(qc_isa).expectation_value(isa_observable))\n", "print(f\"Exact value: {exact_expectation_value}\")\n", "print(f\"Estimated value: {exp_value}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2. Quantum Circuit with ancilla qubits\n", "\n", "Example of an un-transpiled quantum circuit with ancilla qubits " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Define quantum circuit\n", "The circuit can contain some ancilla qubits that you might not want to measure." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "<Figure size 287.496x367.889 with 1 Axes>" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "qc_with_ancilla = QuantumCircuit(4)\n", "\n", "# Qubits (1,3):\n", "qc_with_ancilla.h(1)\n", "qc_with_ancilla.cx(1, 3)\n", "\n", "# Ancilla qubits (0,2):\n", "qc_with_ancilla.z(0)\n", "qc_with_ancilla.z(2)\n", "\n", "qc_with_ancilla.draw(\"mpl\", style=\"iqp\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Define measurement procedure\n", "\n", "The `measurement_layout` argument specifies which qubits to measure. It can be seen as a map from virtual to physical qubits indices. In this example, we only want to measure qubits 1 and 3." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "# The first local POVM will act on physical qubit 1 and the second local POVM will act on physical qubit 3.\n", "measurement = ClassicalShadows(num_qubits=2, measurement_layout=[1, 3], seed=14)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Run the job\n", "\n", "Initialize `Sampler` and `POVMSampler`. Then run the job." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "from numpy.random import default_rng\n", "from qiskit.primitives import StatevectorSampler\n", "\n", "rng = default_rng(26)\n", "\n", "sampler = StatevectorSampler(seed=rng)\n", "povm_sampler = POVMSampler(sampler=sampler)\n", "\n", "job = povm_sampler.run([qc_with_ancilla], shots=4096, povm=measurement)\n", "pub_result = job.result()[0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Look at the final composed circuit to check that the measurement was performed on the correct qubits." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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AiM1NVXNmjVTfHy8Ro4cqQ8//NB6Xi9fvlyjR4+WYRjKzs7WsWPHrG2WxruffKaUS+ll/G5dlpObo7T0TEmSr7cXw/YBAECZ5OXlKTcvT64ujjlPu2EYysrOkZurS5V7P+Xr46mn7rutTPuaIugPHjxYq1atKrS+f//++v7773X//ffr448/lnT5B9moUSPFxcXppZde0rRp0wrsk5ubq8jISB09elQzZszQ9OnTretatmypffv26bPPPtOtt95aYL93331X48aN00033aS1a9dal+cHfYvFol9++cUaoPPdeeedWrZsWZHrR44cqeXLl+vNN9/UM888U4bvUsHHPKxcudL6wUa+5557Tq+//nqR6ydPnqxZs2Zp3Lhxeuedd6zLJ02apNmzZ+vBBx+0Dmm+Unx8vJo1ayYnJyedPn1aHh4eJaq3Z8+e2rJlixITExUUdPm+mf/85z+66667dOutt+qzzz4rUTvXGvTr1aunw4cPW0NevuzsbDVs2FAJCQnavHmzNVRf6e2339YzzzxT6HuTH/TbtGmjXbt2ycnpf0ODzp8/r6CgIGVkZNhcf+7cOQUHBysjI0Nnz55VzZqX759KTk5WgwYNZLFYFB0dbf2g6EpPP/203nnnHb3yyiuaOnWqdXl+0P/reZuvbdu22r17tz7//HPdcsst1uXlHfSHDh2qr7/+WiNHjtR//vOfEu2T//N94oknNG/evELr16xZo8GDB6tly5basWNHofMvNzdXnTt31q5du7Rlyxbrh0cffvihHnroIYWHh+vAgQOFPtR78cUX9corr0hSmYP+zH8s0cVLqaXeDwAAAI7Dz8dbU54YVaZ9TfGxzVNPPWVz+bhx4/T9999r3bp11mUHDhxQXFycnJ2dbe7n7OyscePG6emnn9a6desKBP1Ro0ZpypQpWrJkSaGgv2TJEus2trRt27ZQiJek9u3ba9myZcWuX758uY4ePWqz3dKoWbNmoRCff4ySrP9rDStXrpQkPfLIIzaPFxISok6dOmnjxo369ddfC1yFl6TNmzfryy+/1MGDB3Xx4kXrXAWHDh2SdHm0QX7QDw0NlSRt375dJ06cUIMGDUr2RV+D22+/vVDIl6Sff/5ZCQkJioqKshnyJenWW2/VM888U+TzMh944IECIV6S/P391bBhQ8XExNhcX7NmTWv4PHr0qDp06CBJWrt2rdLT0zV48GCbIT+/nnfeeUcbN24sEPTzFfUzvO6667R79+5C81aUp/T0dOvcA88991yp9//rvAn58s/P++67z+aHTM7Ozho6dKh27dqljRs3Ws/Pb7/9VpJ0zz33FAr5kjR27Fhr0C8rXx/Pa9qfq/kAAADmdy3vGU0R9Fu0aFHs8lOnTunixYvy8/NTbGysJCk4ONh6RfSv8odaHzx4sMDyu+++W1OnTtWqVat04cIF69DiI0eOaPv27fLy8ipw1fNKjRs3trk8f0h4Uevzh1lfunTJ5vrSKM8aUlNTrcF/3LhxhUJpvvzv95UT7GVnZ+uee+7R8uXLi633zz//tP67a9eu6tatm7Zu3aqIiAj16dNHffr0Uc+ePdWlSxe5upb+OZdX07x5c5vLf//9d0lSUlJSkUE/fxRBURMLFveziImJKfZnceDAgQI/i/x6oqOji6wnIyOj2HqK+oCgXr3LjxYpj/OvKIcPH1ZWVpY8PT3Vpk2bUu9/tZ/TwoUL9cUXX9jc5o8//pBU8PuSf84WVUt4eLj8/Px08eLFUtear6xDsKTL59a8f32utPRM9b6ujQb2ua7MbQEAAMCcTBH0r7zn+Er5IUWSUlJS5OfnZ509/sp1Re3315nmw8LC1KNHD23evFkrV67UAw88IEn69NNPJUm33HKLzSvAkuTt7W1zef6VuKutL487LMqzhvPnz1v/vW3btqseOy0tzfrvWbNmafny5apXr55ef/119erVS0FBQdarrvfee68WL15cYMZ+JycnrVmzRi+//LIWL16s7777znoPf+3atTVhwgTrHA3lpajvR/7X/ueff+qnn34qto30dNv3YVfEzyIhIaHIIJ/vyp9DSerJ/wCnIu/wyQ/Mfn5+ZboyfbWf019n67flyu9L/ocavr6+RW7v6+t7TUH/Wu7Rv/Jq/q69h/TbvsNlrgMAAABV17Xco2+KoH/69Gnr0O4r5V+tk/73pj3/7yvXFbWfrTf6o0aN0ubNm7VkyZJCQb+oYftmdOUHGhcvXiw2FP3V4sWLJV2+0jpw4MBC66+8kn+lGjVqaM6cOZo9e7b27dunzZs3a/Xq1VqzZo2mTJmi3NxcvfDCC4X2MwzDZoDMf6RgaeV/7bfddpt1eLg95dfz7LPP6o033rBzNaWXP8nfxYsXi/xZlUX+9+Wrr77SzTffXOr9inukZHHrSiLlUnq53KOfkmr7gxsAAAA4NlME/f3799sM+vlX8gIDA61hIjIyUtLlmfHPnTtnc/j+3r17JUlNmzYttO6OO+7QuHHjtHHjRiUmJiopKUkHDhxQnTp1dOONN5bb11TV1ahRQ/Xr11dCQoL27t2rrl27lnjfY8eOSZLNYea5ubnauXNnsftbLBa1bNlSLVu21GOPPab58+friSee0D//+c8CQd/b21upqan6448/FBgYWKid/LkASiv/CQ7554m92aOe8rwnvEmTJnJzc1N6erp2796ttm3blku7UVFRio6O1t69e0sV9CMjI7V79279/vvvBWb5z3f8+PFrupovlf1+K+7NBwAAcBwOf4/+P/7xDw0YMKDQ8nfffVeSCjwSrlmzZgoPD1dcXJzeffddm7Pu5+9n62pzzZo1NXDgQH355ZdaunSpEhMTJV2eHd/FwR5Jcfvtt+udd97Rm2++qf/+978l3s/T01NZWVlKSkoqNBLg3//+t06fPl2qOvInUTt16lSB5REREdq9e7e2b9+uYcOGFVi3bds27d69u1THydezZ0/Vq1dPsbGxWrVqlYYMGVKmdsrLkCFD5O7urh9++EG7d+8u033upeXpefmXTlG3JpSGh4eHtU/Nnj3bOrHltbr99tu1ZMkSffDBB3rqqaeKvK3mrwYMGKD//ve/WrJkSYHHDeZbuHDhNddWliFY3JsPAACAkrI9g1o1s27dOs2aNcs6a3tubq5eeeUVfffdd3J1ddWECROs21osFj3//POSpFdffbXAo9pSU1P10EMP6ciRI6pVq5YeffRRm8fLH6K/ePFiLVu2rMAyR/Lcc8+pbt26WrFihR588MFCAT09PV1ff/217r///gLLe/bsKenyUPMrr4x++eWXeuKJJ2zOkL5kyRK99NJLhWZ/v3jxovXRgPlPB8g3ePBgSdILL7yg+Ph46/I9e/bovvvuK/MEfu7u7po5c6akyz/3xYsXW8+9fPHx8Xrrrbf0/vvvl+kYpREYGKhJkyYpNzdXgwYN0urVqwvdU3/o0CG9/PLL5XarQf5kgVu2bCkwl0JZzZgxQ25ubvr00081fvz4AueFYRj67rvvtGLFilK1OWzYMPXu3VtxcXG68cYbC414yMvL07Zt2/Too48WeKLEnXfeqZCQEB09elRjxowpMBHhihUr9Nprr1XI5I9Xc+DICSUkJcvN1UU9O7eu9OMDAACg+jBF0J81a5YmT56soKAgde7cWYGBgXrxxRclSW+99ZZ1Fv18Dz/8sB544AFlZGRo+PDhCgsLU6dOnRQYGKiFCxfK29tb//nPf4qc5O/mm2+Wn5+fdu/erYSEBDVu3FhdunSp8K+zqgkMDNTq1asVFBSkjz76SEFBQWrRooW6du2qZs2ayc/PT0OHDi30fPa//e1v8vDw0KpVq1S/fn116NBBDRo00C233KIuXbrYHC595swZzZgxQxEREdafc5s2bRQYGKilS5fK19dXc+fOLbDPhAkTFBoaqr1796pRo0Zq3bq1mjVrptatW6tBgwYaMWJEmb/2Bx54QK+88opSUlJ07733qlatWurYsaM6deqk+vXrKzQ0VM8++6zi4uLKfIzSmDFjhh555BElJiZqyJAhqlOnjjp37qwOHTqoTp06ioyM1LRp03TmzJlyOV7//v1Vu3Ztbd26VaGhoerevbv69Omjp59+ukzttW3bVv/+97/l7u6uuXPnqk6dOmrXrp1at24tPz8/3XjjjdqyZUup2rRYLFqxYoW6deumbdu2qVWrVgoPD1eXLl3Upk0b+fn5qVu3blqwYIGysrKs+3l7e2vJkiXy9PTU0qVLredbeHi4RowYoUceeUTBwcGSVK6TPxbHMAx9/9OvkqSu7aPk43Vtj+cDAACAuZki6D/99NNauXKlIiMjdeDAAWVkZKhPnz5at26dnnjiCZv7fPTRR1q+fLmuv/56paSkaPfu3apVq5bGjh2r6Oho9e/fv8jjeXh4aPjw4dbXjng1P1/Hjh21f/9+vfLKK+rQoYMSEhK0Y8cOJScn67rrrtMrr7yiDRs2FNinXbt22rJliwYOHCiLxaKYmBj5+fnp73//u9auXWszPA0fPlyzZs3SgAED5O7urr179+rgwYMKDQ3V448/rt9//12dO3cusE+tWrX0008/6Z577pG/v79iY2NlGIZeeeUVrV279pqvyk6dOlU7d+7U/fffr9q1a2vv3r36/fff5erqquHDh+tf//qXdfRIRXNyctL777+v9evXa+TIkfL09NTu3bsVExMjf39/3XPPPVq5cqXuvffecjmen5+fvv32Ww0ZMkS5ubn6+eeftWnTJkVHR5e5zREjRmjPnj165JFHFBoaqpiYGJ08eVLh4eF65pln9Mgjj5S6zYCAAG3atEmLFi1S//79lZqaqp07d+rYsWOKiIjQ+PHjtWnTJuvcHfl69eqlX375RbfeeqtcXV21d+9e+fv7a/78+XrnnXesEznmz/1R0bKzcxRYp5Y83N24mg8AAICrshgV+dysClaej54DgJJITk5WnTp1VLNmTZ09e7ZSj52RmSUPd7erbwgAAACHZoor+gBQWRYtWiTpf5NAViZCPgAAAEqCoA8Af7Flyxb9+9//VkZGhnVZXl6eFi9ebJ3/47HHHrNXeQAAAECxHOt5cCbw1FNP6bfffivx9qWdwAy4Vj169Cjxtu3atbM+zrIqiY+P1+jRo/XQQw8pMjJS7u7uOnLkiHWo/pNPPqlBgwbZuUoAAADANoJ+NbNnzx799NNP9i4DKFJpzk8Xl6r5K6hr1656+umn9cMPPyg+Pl4XL15UjRo1dOONN+rhhx8uMBknAAAAUNVU68n4AAAAAABAQdyjDwAAAACAiRD0AQAAAAAwEYI+AAAAAAAmQtAHAAAAAMBECPoAAAAAAJgIQR8AAAAAABMh6AMAAAAAYCIEfQAAAAAATISgDwAAAACAiRD0AQAAAAAwEYI+AAAAAAAmQtAHAAAAAMBECPoAAAAAAJgIQR8AAAAAABMh6AMAAAAAYCIEfQAAAAAATISgDwAAAACAiRD0AQAAAAAwEYI+AAAAAAAmQtAHAAAAAMBECPoAAAAAAJgIQR8AAAAAABMh6AMAAAAAYCIEfQAAAAAATISgDwAAAACAiRD0AQAAAAAwEYI+AAAAAAAmQtAHAAAAAMBECPoAAAAAAJgIQR8AAAAAABMh6AMAAAAAYCIEfQAAAAAATISgDwAAAACAiRD0AQAAAAAwEYI+AAAAAAAm8v8AfPQMbO/Xw+QAAAAASUVORK5CYII=", "text/plain": [ "<Figure size 1296.13x451.5 with 1 Axes>" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pub_result.metadata.composed_circuit.draw(\"mpl\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Get the expected value\n", "\n", "The observable has to be specified in terms of virtual qubits. Therefore, there is no need to apply the layout that was used by the POVM on the full register of qubits." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Exact value: 1.9999999999999996\n", "Estimated value: 2.0104980468749996\n" ] } ], "source": [ "post_processor = POVMPostProcessor(pub_result)\n", "\n", "print(f\"Exact value: {exact_expectation_value}\")\n", "\n", "exp_value, std = post_processor.get_expectation_value(observable)\n", "print(f\"Estimated value: {exp_value}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 3. Transpiled Quantum Circuit with ancilla qubits\n", "\n", "Example where the quantum circuit had ancilla qubits before transpilation." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Transpile circuit with ancilla qubits" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "<Figure size 582.708x451.5 with 1 Axes>" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Transpile the circuit to an \"Instruction Set Architecture\" (ISA) circuit\n", "qc_with_ancilla_isa = pm.run(qc_with_ancilla)\n", "qc_with_ancilla_isa.draw(\"mpl\", style=\"iqp\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Define measurement procedure\n", "\n", "The `measurement_layout` argument specifies which qubits to measure. This argument overrides the automatic detection of a possible `TranspileLayout` attribute of the supplied circuit. I.e., it specifies directly the (final) physical qubits on which the POVM will act. In this example, we want to measure physical qubits 4 and 3.\n", "\n", "If you want to specify the virtual qubits instead (here virtual qubits 1 and 3), you have to do the composition with the `TranspileLayout` manually as follows:" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Final measurement layout: [4, 3]\n" ] } ], "source": [ "# Measuring virtual qubits 1 and 3\n", "virtual_msmt_layout = [1, 3]\n", "# Get the transpilation layout\n", "transpile_layout = qc_with_ancilla_isa.layout.final_index_layout()\n", "# Compute the final measurement layout\n", "final_msmt_layout = [transpile_layout[idx] for idx in virtual_msmt_layout]\n", "print(\"Final measurement layout:\", final_msmt_layout)\n", "\n", "measurement = ClassicalShadows(2, measurement_layout=final_msmt_layout, seed=15)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Run the job\n", "\n", "Initialize `Sampler` and `POVMSampler`. Then run the job." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "# First define a standard sampler (that will be used under the hood).\n", "runtime_sampler = RuntimeSampler(mode=backend)\n", "# Then define the POVM sampler, which takes BaseSampler as an argument.\n", "povm_sampler = POVMSampler(runtime_sampler)\n", "# Submit the job by specifying which POVM to use, which circuit(s) to measure and the shot budget.\n", "job = povm_sampler.run([qc_with_ancilla_isa], shots=4096, povm=measurement)\n", "pub_result = job.result()[0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can check that measurement was performed on the correct physical qubits by looking at the final composed circuit." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABHoAAAG8CAYAAAChRsJ7AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAACBJElEQVR4nOzdd3gU5d7G8XvTCwmBJJCEkhggECD0XoQoqCCKNFEB61GPDax4RGkWFLGhiGID20EU9IgUQaWD0kOH0AIkECDUhPTsvH/wZmVN3bQNm+/nunLBzjwz89vsPJvsnWeeMRmGYQgAAAAAAABXPSd7FwAAAAAAAICyQdADAAAAAADgIAh6AAAAAAAAHARBDwAAAAAAgIMg6AEAAAAAAHAQBD0AAAAAAAAOgqAHAAAAAADAQRD0AAAAAAAAOAiCHgAAAAAAAAdB0AMAAAAAAOAgCHoAAAAAAAAcRLkFPT179tSTTz5Z7ttU1n0AAAAAAABUtBIFPYmJiRo1apQaNmwoDw8P1a5dW127dtVHH32k1NTUsq6xTN17770ymUwymUxyc3NTw4YN9fLLLys7O9vepdlswoQJlueS+9WkSZMS7eu+++7TSy+9lGf5G2+8IZPJRPAFAAAAAMBVwMXWDQ4dOqSuXbvKz89PkyZNUlRUlNzd3bVjxw598sknqlOnjm699dbyqLXM3HTTTZo5c6YyMjK0aNEiPfbYY3J1ddULL7xg79Js1qxZM/3++++Wxy4uNr+kysnJ0YIFC7Rw4UKr5Rs3btSMGTPUokWLUtcJAAAAAADKn80jeh599FG5uLho06ZNuv322xUZGanw8HD1799fCxcu1C233JLvdhkZGRo5cqRq1aolDw8PdevWTRs3bszTLjs7W48//riqV6+ugIAAjR07VoZhSJJ+/fVXdevWTX5+fvL391e/fv108OBBW5+C3N3dFRQUpNDQUD3yyCPq1auX5s+fb9XGbDZr9OjRqlmzpoKCgjRhwgTLuuLUMXfuXEVFRcnT01P+/v7q1auXLl26ZNn366+/rmuuuUaenp5q2bKl5s6da/PzkC4HO0FBQZavgIAAq/WRkZF5Rv3kfk2bNk2StG7dOrm6uqp9+/aW7VJSUjRs2DB9+umnqlGjRolqAwAAAAAAFcumoOfMmTNaunSpHnvsMXl7e+fbxmQy5bt89OjRmjdvnr788ktt2bJFDRs21I033qizZ89atfvyyy/l4uKiDRs2aOrUqXrnnXf02WefSZIuXbqkp59+Wps2bdIff/whJycnDRgwQGaz2ZankYenp6cyMzPz1OHt7a3169frzTff1Msvv6zffvutWHWcOHFCd955p+6//37t2bNHK1as0MCBAy2B1euvv66vvvpKH3/8sXbt2qWnnnpKw4cP18qVKy3HnzVrVoHfyyvt379fISEhCg8P17Bhw3T06FGr9fPmzZMk/fHHHzpx4oTi4uLk5OSkH374QQ8++KAkaf78+brlllusjvfYY4/p5ptvVq9evWz9dgIAAAAAADux6TqfAwcOyDAMNW7c2Gp5QECA0tPTJV0OCCZPnmy1/tKlS/roo480a9Ys9enTR5L06aef6rffftPnn3+u5557ztK2Xr16evfdd2UymdS4cWPt2LFD7777rh588EENGjTIar9ffPGFAgMDtXv3bjVv3tyWpyJJMgxDf/zxh5YsWaInnnjCal2LFi00fvx4SVKjRo00bdo0/fHHH+rdu3eRdZw4cULZ2dkaOHCgQkNDJUlRUVGSLo9smjRpkn7//Xd17txZkhQeHq41a9ZoxowZ6tGjhySpevXqeb7P/9SxY0fNmjVLjRs31okTJzRx4kR1795dO3fulI+PjyTp5MmTcnFxUdeuXeXu7q7NmzfLbDare/fucnd3lyT9/PPPevfddy37/e6777Rly5Z8R1wBAAAAAIDKq0zuurVhwwbFxMSoWbNmysjIyLP+4MGDysrKUteuXS3LXF1d1aFDB+3Zs8eqbadOnaxGlnTu3Fn79+9XTk6O9u/frzvvvFPh4eHy9fVVWFiYJOUZxVKUBQsWqFq1avLw8FCfPn00dOhQq0uzJOWZlyY4OFinTp2SpCLraNmypa6//npFRUVpyJAh+vTTT3Xu3DlJl8Oy1NRU9e7dW9WqVbN8ffXVV1aXfw0YMEB79+4t9Hn06dNHQ4YMUYsWLXTjjTdq0aJFOn/+vL7//ntLmx07digiIsIS6mzbtk21atVS7dq1JUl79uzR8ePHdf3110uSjh07plGjRunbb7+Vh4eHLd9WAAAAAABgZzaN6GnYsKFMJpP27dtntTw8PFzS5UugytMtt9yi0NBQffrppwoJCZHZbFbz5s3zXHZVlOjoaH300Udyc3NTSEhIvhMYu7q6Wj02mUyWS7OKqsPZ2Vm//fab1q1bp6VLl+qDDz7Qiy++qPXr1yslJUWStHDhQtWpU8fqGLlhTEn5+fkpIiJCBw4csCzbvn27ZTSRdDnoufLx/Pnz1bt3b0uos3nzZp06dUpt2rSxtMnJydGqVas0bdo0ZWRkyNnZuVR1AgAAAACA8mHTiB5/f3/17t1b06ZNs0wsXBwNGjSQm5ub1q5da1mWlZWljRs3qmnTplZt169fb/X4r7/+UqNGjXT+/Hnt27dPL730kq6//npFRkZaRsnYytvbWw0bNlT9+vVtvkvVmTNnilWHyWRS165dNXHiRG3dulVubm766aef1LRpU7m7u+vo0aNq2LCh1Ve9evVK9HxypaSk6ODBgwoODrYs2759u9XopG3btlk9/vnnn9W/f3/L4+uvv147duxQTEyM5atdu3YaNmyYYmJiCHkAAAAAAKjEbL4X9/Tp09W1a1e1a9dOEyZMUIsWLeTk5KSNGzdq7969atu2bZ5tvL299cgjj+i5555TzZo1Vb9+fb355ptKTU3VAw88YNX26NGjevrpp/Xwww9ry5Yt+uCDD/T222+rRo0a8vf31yeffKLg4GAdPXpU//nPf0r+zEuoOHWsX79ef/zxh2644QbVqlVL69ev1+nTpxUZGSkfHx89++yzeuqpp2Q2m9WtWzdduHBBa9eula+vr+655x5J0k8//aQXXnih0Mu3nn32WcvoouPHj2v8+PFydnbWnXfeKeny3b127dqlcePGWbY5ePCgBg4cKEk6deqUNm3aZHXHMR8fnzzzHXl7e8vf379E8yABAAAAAICKY3PQ06BBA23dulWTJk3SCy+8oPj4eLm7u6tp06Z69tln9eijj+a73RtvvCGz2awRI0YoOTlZ7dq105IlS/Lcuvvuu+9WWlqaOnToIGdnZ40aNUoPPfSQTCaTvvvuO40cOVLNmzdX48aN9f7776tnz54leuIl5eTkVGQdvr6+WrVqld577z1dvHhRoaGhevvtty0TUb/yyisKDAzU66+/rkOHDsnPz09t2rTRmDFjLPu4cOFCnkvk/ik+Pl533nmnzpw5o8DAQHXr1k1//fWXAgMDJV0OdVJTU61G8ERFRWn8+PFq27at9u7dqw4dOuS5JTsAAAAAALg6mYzce36jyrn11lvVrVs3jR492t6lAAAAAACAMlAmd93C1albt26Wy7wAAAAAAMDVjxE9AAAAAAAADoIRPQAAAAAAAA6CoAcAAAAAAMBBEPQAAAAAAAA4CIIeAAAAAAAAB0HQAwAAAAAA4CAIegAAAAAAABwEQQ8AAAAAAICDIOgBAAAAAABwEAQ9AAAAAAAADoKgBwAAAAAAwEEQ9AAAAAAAADgIgh4AAAAAAAAHQdADAAAAAADgIAh6AAAAAAAAHARBDwAAAAAAgIMg6AEAAAAAAHAQBD0AAAAAAAAOgqAHAAAAAADAQRD0AAAAAAAAOAiCHgAAAAAAAAdB0AMAAAAAAOAgCHoAAAAAAAAcBEEPAAAAAACAgyDoAQAAAAAAcBAEPQAAAAAAAA6CoAcAAAAAAMBBEPQAAAAAAAA4CIIeAAAAAAAAB0HQAwAAAAAA4CAIegAAAAAAABwEQQ8AAAAAAICDIOgBAAAAAABwEAQ9AAAAAAAADoKgBwAAAAAAwEEQ9AAAAAAAADgIgh4AAAAAAAAHQdADAAAAAADgIAh6AAdhGIaqV68uk8mk06dPWy339fWVyWRSUlJSnm0KWgcAAAAAuPoQ9AAO4siRI7p48aKCgoIUGBhoWX7w4EElJyerTp06CggIsNqmsHWQli5dqptuukn+/v7y8vJSVFSUXn/9dWVmZtq7NAAAAADIF0EP4CCOHj2qxo0b68Ybb7Ravm3bNklSq1at8mxT2Lqq7u2339aNN96oJUuWyMfHR40bN9bevXs1ZswYRUdHKy0tzd4lAgAAAEAeBD2Ag7j22mu1d+9ezZo1y2p5TEyMJKlly5Z5tilsXVW2YcMGPffcczKZTJo1a5bi4uK0detW7d27Vw0bNtS6dev0wgsv2LtMAAAAAMiDoAdwcIzosd0rr7wiwzB033336Z577rEsb9CggT7//HNJ0kcffaRTp07Zq0QAAAAAyBdBD1BMcXFxmjJlim666SY1aNBA3t7e8vLyUsuWLfXGG2/kO29LUFCQTCaT4uLiFBMToxEjRqhOnTry9vZWq1at9N133xV6TLPZrLlz5+q2225TSEiI3N3dFRISouuuu05Tp061OmZYWJhMJpP27t1rtY+SjOgpyXO1N8MwymQ/ycnJWrp0qSTpwQcfzLP+2muvVUREhDIzMzV//vwyOSYAAAAAlBWTUVafjgAH98ADD+iLL76Qt7e3QkJC5Ofnp1OnTunIkSOSpIEDB2revHmW9idPnlRQUJB8fX01ceJEPfvss/L391f9+vV16NAhnT17VpK0ZMkS3XDDDXmOd+rUKd1+++1auXKlJKl+/foKCgpSYmKijh49Kk9PTyUnJ8vZ2Vnnz59XjRo15OXlpeTkZDk5Xc5wz507p5o1a8rb21sXL160LC9qna3PtTz07NlTK1eu1OHDhxUWFlZo2+3bt+vuu+/W3Llz1bBhw1Idd9WqVerRo4fc3d2VkpIiFxeXPG1yvz8PPPCAPvvss1IdDwAAAADKEiN6gGK64YYbtHnzZiUnJys2NlYbNmxQXFycNm7cqNq1a+vHH3/Ujh07LO1zL4tKT0/XxIkT9e233yoxMVEbN25UQkKC+vXrJ0mWS4GudOnSJfXt21crV65Ujx49tG3bNh05ckTr16/XkSNHtHPnTv3nP/+Rs7OzpL9H5kRFRVkFNgUtL2qdrc/V3mbOnKlt27YpOjpahw4dKtW+YmNjJUmhoaH5hjzS5Uu4rmwLAAAAAJUFQQ9QTEOHDlWbNm1kMpmslrdr1069e/eWJO3atcuyPDfoycrK0n//+18NHTrUsq2Hh4ceeeQRSbKMkrnSM888o82bN6tbt25aunSpWrRoYbW+WbNmGjduXJ5j/XOunZLOz2Prc7W3t99+WyNGjFB8fLyio6MVFxdX4n2dO3dOklSjRo0C2+Suy20LAAAAAJVF/n+uBpBHRkaG5s+fb7mcKDk5WWazWdLfoYebm5ulfW6QMnjwYPXp0yfP/nLnufHz87NavnfvXn322Wdyd3fXt99+a7XPghQ0105J77hl63OVpMOHD2vUqFFavny5XFxcdMstt+jdd9+Vv79/kfUXJj4+vljtJkyYoISEBC1btkzR0dFauXKl6tevb/Px0tPTJeV9fldyd3eXpBLfYr1du3ZKTEws0bYAAAAAHF9QUJA2bdpUom0JeoBi+OOPP3Tffffp2LFjhbYLDw+3/D836Bk6dGi+bfft2ydJioiIsFr+3//+Vzk5Obr77ruLHVTkhjb/HJ1T0PLC1pXkuSYnJys6Olo1a9bU7NmzlZaWptGjR6tfv35au3ZtnkvDbNG9e3ebt4mLi9Pw4cO1atUqm7f18PCQpEInnM7IyJAkeXp62rx/SUpMTFRCQkKJtgUAAACAwhD0AEVYv369+vbtq6ysLD3wwAMaNmyYmjdvrho1asjFxUV79+5VZGSkXFxcFBkZKelyEJB796uePXvmu9+Cgpbff/9dktS3b99i1ZeVlaXdu3fLycnJ6hKvrKws7dmzJ8/ywtaV5LlK0ieffKKEhAStWrXKEk7VrVtXXbp00fz583XbbbcV67nkJyoqqlijmiTpzJkzlsu2rqzPFsW5LKs4l3cVJigoqETbAQAAAKgaSvOZgaAHKMILL7ygzMxMvfHGG3r++efzrF+4cKEkqWnTppZLenbv3q3s7GzVr1+/wEuXtm7dKilv0JM7kubKETOF2bNnjzIzM9WoUSN5e3tblu/evVuZmZmKiIiQl5eX1TYFrSvJc5WkBQsWqFu3blYjkDp37qzw8HD98ssvpQp65s+fX+Rdt6TLl3j16NFD0uVRVNOnTy/R8XJHWB05ckTZ2dn5Tsh88OBBq7a2KukQTAAAAAAoCpMxA4XIycmxXP5z33335VlvNpv17bffSpJat25tWZ572daVy6506dIl7d+/X66urmrevHmedVLx538paGSQrRMxl/S5SpeDo2bNmuXZplmzZtq9e3exnkdpJCQkWO64NXjwYH3zzTeWO5LZqnXr1nJzc1NGRkaBgcyaNWskSR07dixxzQAAAABQHgh6gEJcunRJOTk5kv6epPdKb7/9tmVkji1Bz/bt22U2mxUZGZnnsqR69epJktatW1esGgsKdGydiLmkz1W6fCnTPyeVlqSaNWvq7NmzxXoepTFx4kQdOHBAAwYM0OzZswu8LXpx+Pj4WO4s9umnn+ZZv2rVKsXGxsrNzU39+/cv8XEAAAAAoDwQ9ACF8PX1VZ06dSRJr732miUIyczM1JQpUzR27FhLqGBL0FNQYCJJAwYMsBxv6dKlVusSEhI0adIk7d+/37KsoEDH1hE9JX2u5aVHjx4aNGiQ1eVoBZk6daomTpyoOXPmlCrkyfXSSy/JZDJp5syZ+vLLLy3LDx48qAceeECS9PDDD6tWrVqlPhYAAAAAlCWTYRiGvYsAKrOPPvpIjz76qCSpdu3aqlevnvbv36/U1FR9+OGHeuSRR2Q2m3X+/Hn5+vpKkvz9/XX27FkdPXrUMkLnSg8++KA+++wzvfvuu3ryySet1qWkpKhHjx7asmWLpMuTcNWrV09nz57VoUOHZDKZdPHiRUsAEhAQoDNnzig+Pt4S1BS2vLB1JXmuuW2HDBmiadOmWR3n1ltv1enTp/Xnn3/a9D2vDN58803LPEWhoaGqUaOGdu7cqezsbHXs2FHLli3LM/cRAAAAANgbI3qAIjzyyCP65JNP1KhRI509e1bHjx9Xv379tHnzZnXo0EE5OTkKDw+3BB/x8fE6e/as/P398w15pIInYpakatWqafXq1Xr11VfVsmVLXbhwQTt37pTZbNZtt92mL7/80hLyxMfH68yZMwoICLAKbApaXtQ6W59rrsjIyHzn4tm9e3eJ735lb6NHj9avv/6q3r1768KFC9q7d68iIiL02muvaeXKlYQ8AAAAAColRvQAKLW33npLY8aM0aFDh1S3bl1Jl2/V3qlTJ/3444+Wy9EAAAAAAOWLoAdAqV28eFFRUVEKCAjQxIkTlZ6ertGjRyswMFB//vmnnJwYPAgAAAAAFYGgB0CZOHjwoEaNGqUVK1bIxcVF/fr107vvvqvAwEB7lwYAAAAAVQZBDwAAAAAAgIPgegoAAAAAAAAHQdADAAAAAADgIAh6AAAAAAAAHARBDwAAAAAAgIMg6AEAAAAAAHAQBD0AAAAAAAAOgqAHAAAAAADAQRD0AAAAAAAAOAiCHgAAAAAAAAdB0AMAAAAAAOAgCHoAAAAAAAAcBEEPAAAAAACAgyDoAQAAAAAAcBAEPQAAAAAAAA6CoAcAAAAAAMBBEPQAAAAAAAA4CIIeAAAAAAAAB0HQAwAAAAAA4CAIegAAAAAAABwEQQ8AAAAAAICDIOgBAAAAAABwEAQ9AAAAAAAADoKgBwAAAAAAwEEQ9AAAAAAAADgIgh4AAAAAAAAHQdADAAAAAADgIAh6AAAAAAAAHARBDwAAAAAAgIMg6AEAAAAAAHAQBD0AAAAAAAAOwsXeBQAAimYYUnqOvauwjYezZDLZuwoAAACgaiHoAYCrQHqO1H2Rvauwzeq+kic/ZQAAAIAKxaVbAAAAAAAADoKgBwAAAAAAwEEQ9AAAAAAAADgIgh4AAAAAAAAHQdADAAAAAADgIAh6AAAAAAAAHARBDwAAAAAAgINwsXcBAIDyk7xjhWJfirZa5uThLfeQCPn3HKFa/Z6QyZkfBQAAAICj4Ld7AKgCalx7p6q37SsZhrLOJerMiq8U/8XTSo/fo9DHPrF3eQAAAADKCEEPAFQBXuFt5N9zuOVxYN9HtevRJkr67TOFDH9NrtUD7VgdAAAAgLLCHD0AkI+4uDh9/vnn+ve//622bdvKzc1NJpNJ9957r71LKxPOHt7ybtxJMgxlJB60dzkAAAAAyggjegAgH++9956mTp1q7zLKVW7A41Ktpp0rAQAAAFBWCHoAIB8BAQHq27ev2rdvr3bt2mnx4sWaPn26vcsqMXNGqrIvJskwDGWfS9TpXz9W2qGt8mrUQR51IuxdHgAAAIAyQtADAPl46aWXrB7/9ddfdqqkbJyYPV4nZo+3WubXeaDqP/yhnSoCAAAAUB6YowdAgZKSkjR69Gg1bNhQHh4eqlevnkaNGqVLly7pgQcekMlk0rRp0+xdpoVhGPYuodIKuPEhNZr4mxqOW6Q690yWs09NZSbFy+TqYWmTvGu1tg6tludryyA3bR7gbMfqAQAAABQXI3oA5CsmJkZ9+vRRYmKivL291bRpUx0/flzvv/++Dh48qLNnz0qSWrVqVW419OzZUytXrtThw4cVFhZWaNvt27fr7rvv1ty5c9WwYcNyq+lq5R7cSL6tekmSqrfto2qR3bTvhW46+tG/Ff7cd5Ikn2bd1XpOitV2mWeOa+8z7RR48+MVXjMAAAAA2zGiB0AeSUlJuuWWW5SYmKhnnnlGJ06c0JYtW5SYmKjJkydr4cKF2rhxo0wmk1q0aGHvciVJM2fO1LZt2xQdHa1Dhw7Zu5xKr1pkF9XsOULn1sxRyp51+bYxZ2Xo0BsDVa1pNwUPGVPBFQIAAAAoCYIeAHmMHDlS8fHxevzxx/XWW2/Jx8fHsm706NFq2bKlsrOzFRYWJl9fXztW+re3335bI0aMUHx8vKKjoxUXF2fvkiq94KFjJSdnHf/vuHzXH53+b5mz0hU2albFFgYAAACgxAh6AFjZs2eP5syZo4CAAL3++uv5tmnbtq0kqWXLllbLDx8+rFtvvVU+Pj6qUaOG7r77bp05c6bUNcXHxysuLq7Qr6NHj2rChAm67rrrdPToUUVHR+vo0aOlPrYj8whuqJrd71Dy9j+UvGu11bpTv7yvC5sWqMEL/5OTu5edKgQAAABgK+boAWBl9uzZMpvNGjZsmKpVq5ZvG09PT0nWQU9ycrKio6NVs2ZNzZ49W2lpaRo9erT69euntWvXysmp5Lly9+7dbd4mLi5Ow4cP16pVq0p83KogaMiLOrt6to7/d5wav7ZckpS8fbniv3pejcYtlnvtMPsWCAAAAMAmBD0ArCxbtkySFB0dXWCb+Ph4SdZBzyeffKKEhAStWrVK9evXlyTVrVtXXbp00fz583XbbbeVuKaoqCi5ubkVq+2ZM2csl21FRkaW+JjlqV27dkpMTLRpG5Obp2q/t9/mY/lE9VTbnwu+G5lnvUi1/SnH8jjjZJwOTbldde+dIp+onjYf70oREY1kZKaVah8AAABAVRQUFKRNmzaVaFuCHgBWjhw5IkkKDQ3Nd312drbWrl0ryTroWbBggbp162YJeSSpc+fOCg8P1y+//FKqoGf+/PlF3nVLuhxA9ejRQ5I0dOhQTZ8+vcTHLE+JiYlKSEiwaRsndy/VLqd6cpkzUnXw9dtUvcOtqlUGd9k6fvy4zBmpZVAZAAAAgOIi6AFg5dKlS5KktLT8R2LMmTNHSUlJ8vHx0TXXXGNZvnv3bg0ZMiRP+2bNmmn37t3lU+wVEhISLHfcGjx4sL755hs5OzuX+3FLIigoyOZtTG6e5VCJtXPr5int8DalJ8Tq3Jo5edY3m7ZbboH189kyfyEhIYzoAQAAAEqgJJ8ZchH0ALASFBSkc+fOacuWLercubPVuhMnTui5556TJLVo0UImk8my7ty5c/Lz88uzv5o1a2rfvn3lWrMkTZw4UQcOHNCAAQM0e/ZsubhU3re3kgzBTMuWui8qh2Ku4B89Qv7RI8psf7Gx++VZeV8GAAAAwCFx1y0AVnr16iVJmjx5smJjYy3LN27cqOjoaCUlJUmSWrVqVe619OjRQ4MGDZK3t3eRbadOnaqJEydqzpw5lTrkAQAAAIDyZDIMo+BZOgFUOfHx8WrVqpXOnDkjFxcXNWnSROnp6Tpw4ID69Okjs9msJUuW6JNPPtGDDz5o2a527doaMmSIpk2bZrW/W2+9VadPn9aff/5Z0U+lVNauXav+/ftbHqempiotLU3u7u5WdyP7+eef1bVr13KvpyJG9JS11X3FiB4AAACggjGiB4CVunXravXq1br55pvl4eGhuLg41axZUzNmzNDChQsto3yunIhZunyHq/zm4tm9e3elvftVYbKysnTmzBnLV+6cRRkZGVbLs7Ky7FwpAAAAAPyNET0Aii0lJUW+vr4ymUxKTk6Wl5eXZd1bb72lMWPG6NChQ6pbt64kaf369erUqZN+/PFHDRgwwF5lOwRG9AAAAAAoDkb0ACi2Xbt2yTAMNWrUyCrkkaSHHnpIwcHB6t+/vxYsWKC5c+fqzjvvVIcOHawugQIAAAAAlB+CHgDFtmPHDkl5L9uSJF9fXy1btkzBwcG644479K9//UtdunTRggUL5OTEWw0AAAAAVAQG1QMotsKCHklq0KCBFixYUJElAQAAAACuQNADoNiKCnpw9chOOa/dI5vLnJkmt4B6MrIylJF4SDV7jlDYE5/ZuzwAAAAAJUTQA6DYli1bZu8SUEZcqvmp5rV3ydnTR8FDx+rCliVKnDuJkAcAAAC4yjFxBgBUUamHY+QZ3vry/w9ultf//x8AAADA1YugBwCqqLTDMZZwh6AHAAAAcAwEPQBQBWWeSZBkkpt/HUlSWtx2eYZG2bcoAAAAAKVG0AMAVVDqoa1WI3icvf10atF0O1YEAAAAoCyYDMMw7F0EAKBwadlS90X2rsI2q/tKnkz5DwAAAFQoRvQAAAAAAAA4CIIeAAAAAAAAB0HQAwAAAAAA4CAIegAAAAAAABwEQQ8AAAAAAICD4K5bAHAVMAwpPcfeVdjGw1kymexdBQAAAFC1EPQAAAAAAAA4CC7dAgAAAAAAcBAEPQAAAAAAAA6CoAcAAAAAAMBBEPQAAAAAAAA4CIIeAAAAAAAAB0HQAwAAAAAA4CAIegAAAAAAABwEQQ8AAAAAAICDIOgBAAAAAABwEAQ9AAAAAAAADoKgBwAAAAAAwEEQ9AAAAAAAADgIgh4AAAAAAAAHQdADAAAAAADgIAh6AAAAAAAAHARBDwAAAAAAgIMg6AEAAAAAAHAQLvYuAABQNMOQ0nPsXYVtPJwlk8neVQAAAABVC0EPAFwF0nOk7ovsXYVtVveVPPkpAwAAAFQoLt0CAAAAAABwEAQ9AAAAAAAADoKgBwAAAAAAwEEQ9AAAAAAAADgIgh4AAAAAAAAHQdADAAAAAADgIAh6AAAAAAAAHISLvQsAAJSf5B0rFPtStNUyJw9vuYdEyL/nCNXq94RMzvwoAAAAABwFv90DQBVQ49o7Vb1tX8kwlHUuUWdWfKX4L55WevwehT72ib3LAwAAAFBGCHoAoArwCm8j/57DLY8D+z6qXY82UdJvnylk+GtyrR5ox+oAAAAAlBXm6AGAKsjZw1vejTtJhqGMxIP2LgcAAABAGSHoAYB/MAxDa9eu1fPPP68uXbqoZs2acnV1Ve3atdWvXz/Nnz/f3iWWidyAx6VaTTtXAgAAAKCscOkWAPzDsmXL1KtXL0mSyWRSgwYNFB4ergMHDmjhwoVauHCh7r//fn322WcymUx2rrZ4zBmpyr6YJMMwlH0uUad//Vhph7bKq1EHedSJsHd5AAAAAMoIQQ8A/INhGAoPD9dTTz2lO+64QwEBAZKknJwcffDBB3r66af1xRdfqG3btnr00UftXG3xnJg9Xidmj7da5td5oOo//KGdKgIAAABQHgh6AOAfOnTooL1798rV1dVqubOzs5588knt3btXM2bM0CeffHLVBD0BNz6kGl2GyMjJUtqRHUr8cbIyk+JlcvWwtEnetVoHXu6TZ1sjO1OGOUdtf8qpyJIBAAAAlABz9AAoUFJSkkaPHq2GDRvKw8ND9erV06hRo3Tp0iU98MADMplMmjZtmr3LtDAMo0z24+vrmyfkudKNN94oSdq3b1+ZHK8iuAc3km+rXqreto+CBo5Wwxd/UeqBjTr60b8tbXyadVfrOSlWX82mx8rFJ0Ahd71ix+oBAAAAFBdBD4B8xcTEKCoqSlOmTFFiYqKaNm2qrKwsvf/++xo6dKj27NkjSWrVqlW51dCzZ0+ZTCbFxcUV2Xb79u1q3bq1Dhw4UG715EpPT5ckeXl5lfuxyku1yC6q2XOEzq2Zo5Q96/JtY87K0KE3Bqpa024KHjKmgisEAAAAUBIEPQDySEpK0i233KLExEQ988wzOnHihLZs2aLExERNnjxZCxcu1MaNG2UymdSiRQt7lytJmjlzprZt26bo6GgdOnSoXI81Z84cSVL37t3L9TjlLXjoWMnJWcf/Oy7f9Uen/1vmrHSFjZpVsYUBAAAAKDGCHgB5jBw5UvHx8Xr88cf11ltvycfHx7Ju9OjRatmypbKzsxUWFiZfX187Vvq3t99+WyNGjFB8fLyio6OLNQqoJBYtWqSff/5Z0uXvxdXMI7ihana/Q8nb/1DyrtVW60798r4ubFqgBi/8T07uV+/IJQAAAKCqIegBYGXPnj2aM2eOAgIC9Prrr+fbpm3btpKkli1bWpbNnTtXgwYNUmhoqLy8vNSkSRO9+OKLSklJKXVN8fHxiouLK/Tr6NGjmjBhgq677jodPXpU0dHROnr0aKmPfaWDBw9qxIgRki6HYV26dCnT/dtD0JAXJScnq1E9yduXK/6r5xU++ge51w6zX3EAAAAAbMZdtwBYmT17tsxms4YNG6Zq1arl28bT01OSddDz1ltvqX79+po0aZLq1q2rmJgYTZw4UStXrtSqVavk5FTyXLkkl0jFxcVp+PDhWrVqVYmPe6XExETddNNNOnv2rG644Qa99dZbJd5Xu3btlJiYaNM2JjdP1X5vv83H8onqqbY/FzxJtWe9SKu7aWWcjNOhKber7r1T5BPV0+bjXSkiopGMzLRS7QMAAACoioKCgrRp06YSbUvQA8DKsmXLJEnR0dEFtomPj5dkHfT88ssvCgwMtDzu0aOHAgMDNWzYMK1Zs0bXXnttiWuKioqSm5tbsdqeOXPGctlWZGRkiY95pdxw58CBA+ratat++umnQu/KVZTExEQlJCTYtI2Tu5dql/iIxWPOSNXB129T9Q63qtbNj5d6f8ePH5c5I7UMKgMAAABQXAQ9AKwcOXJEkhQaGprv+uzsbK1du1aSddBzZciTq127dpJkc6jxT/Pnz1dYWFiR7eLj49WjRw9J0tChQzV9+vRSHVeSLl68qJtuukk7duxQmzZttHDhwlLfbSsoKMjmbUxunqU6ZnGcWzdPaYe3KT0hVufWzMmzvtm03XILrF/s/YWEhDCiBwAAACiBknxmyEXQA8DKpUuXJElpafl/QJ8zZ46SkpLk4+Oja665ptB9LV++XFLZjawpTEJCguWOW4MHD9Y333wjZ2fnUu0zNTVV/fr108aNGxUZGaklS5aoevXqpa61JEMw07Kl7otKfehC+UePkH/0iDLbX2zsfnnyUwYAAACoUEzGDMBKbnK8ZcuWPOtOnDih5557TpLUokULmUymAveTkJCgsWPH6qabblKrVq3KpdYrTZw4UQcOHNCAAQM0e/ZsubiULmHIzMzUgAEDtHr1ajVo0EC///67AgICyqhaAAAAACgfBD0ArPTq1UuSNHnyZMXGxlqWb9y4UdHR0UpKSpKkQsOblJQU9e/fX25ubvriiy9KXEuPHj00aNAgeXt7F9l26tSpmjhxoubMmVPqkCcnJ0d33XWXli5dqrp16+r3339XSEhIqfYJAAAAABXBZBhGwbdjAVDlxMfHq1WrVjpz5oxcXFzUpEkTpaen68CBA+rTp4/MZrOWLFmiTz75RA8++GCe7dPS0tS3b19t375dq1evVtOmTe3wLEpn9uzZuuuuuyRJ4eHhCg4OLrDt3LlzS3X9bHFVxKVbZW11X3HpFgAAAFDB+BUcgJW6detq9erVeu6557Ry5UrFxcWpadOmmjFjhh588EE1aNBAkvVEzLmysrI0ePBgbdq0SX/88cdVGfJIUkZGhuX/hw4d0qFDhwpsm56eXhElAQAAAECxMKIHQLGlpKTI19dXJpNJycnJVnefMpvNuuOOOzR//nwtWrRI1113nR0rdTyM6AEAAABQHPwKDqDYdu3aJcMwFBERkecW44899ph++OEH/ec//5GXl5f++usvy7oGDRrke/t1AAAAAEDZYjJmAMW2Y8cOSflftrV48WJJ0htvvKHOnTtbfS1cuLBC6wQAAACAqooRPQCKrbCgJy4uroKrQWlkp5zX7pHNZc5Mk1tAPRlZGcpIPKSaPUco7InP7F0eAAAAgBIi6AFQbIUFPbi6uFTzU81r75Kzp4+Ch47VhS1LlDh3EiEPAAAAcJUj6AFQbMuWLbN3CShDqYdjVKvfyMv/P7hZXuGt7VwRAAAAgNJijh4AqKLSDsdYwh2CHgAAAMAxEPQAQBWUeSZBkklu/nUkSWlx2+UZGmXfogAAAACUGkEPAFRBqYe2Wo3gcfb206lF0+1YEQAAAICyYDIMw7B3EQCAwqVlS90X2bsK26zuK3kyExwAAABQoRjRAwAAAAAA4CAIegAAAAAAABwEQQ8AAAAAAICDIOgBAAAAAABwEAQ9AAAAAAAADoK7bgHAVcAwpPQce1dhGw9nyWSydxUAAABA1ULQAwAAAAAA4CC4dAsAAAAAAMBBEPQAAAAAAAA4CIIeAAAAAAAAB0HQAwAAAAAA4CAIegAAAAAAABwEQQ8AAAAAAICDIOgBAAAAAABwEAQ9AAAAAAAADoKgBwAAAAAAwEEQ9AAAAAAAADgIgh4AAAAAAAAHQdADAAAAAADgIAh6AAAAAAAAHARBDwAAAAAAgIMg6AEAAAAAAHAQBD0AAAAAAAAOgqAHAAAAAADAQRD0AAAAAAAAOAgXexcAAACAimMYUnqOvauo3DycJZPJ3lVYMwxD2WkZ9i7DJi6e7jJVom8k575t6AelV9n6wNXOMAzl5FxdndjZ2dku5wBBDwAAQBWSniN1X2TvKiq31X0lz0r2W3J2Woa+bTDc3mXYZNjBb+Tq5WHvMiw4921DPyi9ytYHrnY5OTmaN2+evcuwyaBBg+TiUvEdiUu3AAAAAAAAHARBDwAAAAAAgIMg6AEAAAAAAHAQBD0AAAAAAAAOopJNrwUAAFC+zGZDB45eVMy+Mzp3MVPZOWZ5uruoQT0ftW7iL99qbvYuEQAAoMQIegAAgMPLzjZr/oqj+nTePq3bdlIXU7IKbBsRWl2DeoXp4SGNFRriU4FVAgAAlB5BDwAAcFg5OWZ9+N0evTlzuxJOpRZrm9gjF/T659s0eeZ23dKjnqY83UGNQquXc6UAAABlg6AHAAA4pNi4C7pv3CqtizlVou3NZkM/Lz+qJesSNGlkO428q6mcnZne0BbJO1Yo9qVoq2VOHt5yD4mQf88RqtXvCZmc+XUUjo1+AKCi8Y4CAAAczs/Lj+iO0cuVnpFT6n2lZ+To6SnrtWRtvOa9c728vVzLoMKqpca1d6p6276SYSjrXKLOrPhK8V88rfT4PQp97BN7lwdUCPoBgIpC0AMAABzKvN8Oa+jo5crJMcp0v0vWJeimR5Zoycc3ycuTX6Fs4RXeRv49h1seB/Z9VLsebaKk3z5TyPDX5Fo90I7VVU33nphbZvuaFTy4zPblyOgHlQt9AI6M31IAIB/z58/X4sWLtXnzZiUkJCgpKUlubm5q0KCB+vbtq6effloBAQH2LhPAP6zdelJ3Pr+izEOeXGu2ntSdzy/X/6b2kslkKpdjVAXOHt7ybtxJ59fNVUbiQT7gVjDvOgHaMH6Wdn+ywN6lVGn0A/uhDyBXamqqUlJSZDab5erqKj8/Pzk7Oxd7+02bNql69epq1KhROVZpO4IeAMjHO++8o5UrV8rNzU0hISFq0aKFTp06pe3bt2vbtm367LPPtHTpUrVq1crepQL4f5dSs3TPSyuVlW0u9jYbZ9+qoAAvJSalqv2d84u1zfwVR/XFT7F6YGDjkpYKSRmJByVJLtVq2rmSqqde73Y6tnSTvcuA6Af2Qh+oulJSUrRmzRrt3btXhw4d0qlT1vP4ubm5KTQ0VNdcc43at2+v5s2bF/iHnU2bNundd9+Vm5ubxowZU6nCHoIeAMjH/fffr3Hjxqlbt25yc3OzLN+xY4fuuusu7dy5U3fddZd2795txyoBXGnM+5t08FiyTdsEBXipbm1vm4/19FvrdUOXOqoXVM3mbasic0aqsi8myTAMZZ9L1OlfP1baoa3yatRBHnUi7F1eleMbHqS9sxLtXUaVQz+oPOgDVU9CQoIWLFigtWvXKjMzs8B2mZmZ2r9/v/bv36+lS5cqJCREvXr1Uu/eveXq+vccfbkhT05OjtLS0rRq1SqCHgCo7O6+++58l0dFRenzzz9Xx44dtWfPHu3Zs0eRkZEVXB2Afzocn6wPZldc8HoxJUsvf7xVn07oXmHHvJqdmD1eJ2aPt1rm13mg6j/8oZ0qqrpcvDyUlZJu7zKqJPpB5UAfqFpycnL0yy+/aO7cucrOzrZalzt6JyAgQM7OzsrIyNCxY8eUmPh3CHj8+HF99dVXWrZsmR555BE1aNDAKuSRpG7duum+++6r0OdVFIIeAAVKSkrSm2++qR9//FHx8fEKDAzUwIEDNWnSJI0cOVJffPGFPvjgAz3++OP2LlWSZBhGhcyZcWWwk5qaWu7HA1C0GXP3yiifaXkK9O2ig5rydAf5+bpX7IGvQgE3PqQaXYbIyMlS2pEdSvxxsjKT4mVy9bC0Sd61Wgde7pNnWyM7U4Y5R21/Kv0d1CCF9GihhJXb7F1GlUQ/qBzoA1XH2bNn9fbbb+vgwYOWZZ6enurRo4d69Oih+vXr5zsfz6VLl7R9+3b9/vvv2rVrlyQpPj5eY8eOVefOnfXXX39ZhTyPPvqonJycKuZJFVPlqgZApRETE6OoqChNmTJFiYmJatq0qbKysvT+++9r6NCh2rNnjySV6xw1PXv2lMlkUlxcXJFtt2/frtatW+vAgQPlVk+utWvXSpK8vb3VuDFzdAD2lpGZo89/iq3w46al52jWz/sr/LhXI/fgRvJt1UvV2/ZR0MDRavjiL0o9sFFHP/q3pY1Ps+5qPSfF6qvZ9Fi5+AQo5K5X7Fi9Y6nVvolOb9xntazNC3fp3hNz1fCO6/Ld5qZ5EzUibrb8GteriBIdFv2gcqAPVA2nT5/WhAkTLCGPyWTSLbfcoo8++kj33nuvrrnmmgInXfb29lbnzp01duxYvfHGG7rmmmskSWazWWvXrq30IY9E0AMgH0lJSbrllluUmJioZ555RidOnNCWLVuUmJioyZMna+HChdq4caNMJpNatGhh73IlSTNnztS2bdsUHR2tQ4cOlfn+zWazTpw4oa+++kr33nuvJGnSpEmqVo35OQB7W7/9lJLO2WcY/sLVx+xy3KtdtcguqtlzhM6tmaOUPevybWPOytChNwaqWtNuCh4ypoIrdFAmk2SSDLP1hOUxb32vc3uOqMOEe+QVbD0pcNOH+imoSzPFvDVH5/dxvpcl+oEd0AeqhIsXL+q1116zTLQcGBiol19+WcOGDZOHh0cRW1sLCwvTK6+8oi5dulgtr1evXqUNeSSCHgD5GDlypOLj4/X444/rrbfeko+Pj2Xd6NGj1bJlS2VnZyssLEy+vr52rPRvb7/9tkaMGKH4+HhFR0cXaxRQcXz88ccymUxydnZWSEiI7rnnHtWtW1e//PKLRo4cWSbHAFA6m/ecsd+xd1+eWBW2Cx46VnJy1vH/jst3/dHp/5Y5K11ho2ZVbGEOLLB1QyVtzTvy1ZyVrdWjpsnFy11d33nUsty3QYja/OdOnd4cq53Ti3dXOtiGflCx6ANVw+eff26ZZyc4OFgTJ04s1UTJMTExWr9+vdWyY8eOWa5wqIwIegBY2bNnj+bMmaOAgAC9/vrr+bZp27atJKlly5aWZatXr1avXr0UHBwsd3d31a1b1+oSr9KIj49XXFxcoV9Hjx7VhAkTdN111+no0aOKjo7W0aNHS33s4OBgde3aVR07dlRISIhMJpO2b9+u//73v7pw4UKp9w+g9LbsSbLbsc9dzFRcQordjn818whuqJrd71Dy9j+UvGu11bpTv7yvC5sWqMEL/5OTu5edKry61e4UKZOz9a/6daJbK2F5TL7tz+44rO0f/KQ6PVspYngvmZyc1P39JyRJq0dNyzMCAmWDflB+6ANV059//mkJZXx8fPTiiy+qZs2aRWxVsH9OvBwWFmZZ9/HHHys9vXJO7E3QA8DK7NmzZTabNWzYsAIvS/L09JRkHfScO3dOUVFRev/997V06VJNnjxZu3btUufOnRUfH1+qmrp3765rrrmmyK8GDRpo2bJlkqS4uDgNHz68VMeVpP79+2vNmjX666+/lJCQoG3btqlTp06aPXu2br755lLvH0DpHT1xyb7HTyToKamgIS9KTk5WoxmSty9X/FfPK3z0D3KvHWa/4q5iYbd2Ua+vx6h2R+u7Qrr6eikrueCbCGx7d67O7jysduPuVsfX7ldgm0baMnm2Lh48Xt4lV2n0g7JHH6iaMjMzNXPmTMvj++67TwEBASXeX35313r11VctN2Y5ffq0fvrpp9IVXU646xYAK7lBSXR0dIFtcoObK4OeW2+9VbfeeqtVu/bt26tx48aaN2+eRo0aVeKaoqKi5ObmVqy2Z86csVy2VR63PY+KitLChQsVHh6utWvX6vfff1evXr1s2ke7du2sbtsIoHRO+f5Lcsl/gsyNs29VUEDBfwkPCvC0/HvstzsKPU5iUqra35l36P6gwXfII/tgPltUTiY3T9V+r2ImkfaJ6qm2Pxd8aZtnvUiruwhlnIzToSm3q+69U+QT1bMCKsxfREQjGZlpdjt+flwNJ41Xh2K1jZu/Tr7XBKneje2VuO7yHWO86wToUvzpQrczsnO0etQ09Vv8hprce5NOrt+j3Z8sLHHNEY0ilGWqPKMgKvLcvxL9oOwUtx/QBxyTm5tbgVccSJdH81y8eFHS5SsQOnfuXOJj5Rfy5M7J8/DDD+uZZ55RTk6Oli1bpkGDBhX4WSUiIkKZmZklqiEoKEibNm0q0bYEPQCsHDlyRJIUGhqa7/rs7GzLXaeuDHry4+/vL0lycSndW838+fOthkkWJD4+Xj169JAkDR06VNOnTy/VcQvi4+OjHj16aN68edq2bZvNQU9iYqISEhLKpTagSnJPK/A3mqAAL9Wt7V3kLlycnYrVLj9nkk5Kl66ePu3k7qXa9i4iH+aMVB18/TZV73Crat38uF1rOX78uMwZBf/V3x7cTM6y5YU7sniDrp/1vDaOnyVJqte7nY4tLfoDQ9bFVJkzs+Xs5qr4P7ZIpZiD6viJ48o0Ks/twCvruX8l+kHhbOkH9AHH4+7uXuj6pUuXWv7fv39/mUymEh2nsJBHuhzAdOrUSWvXrlVycrL++usvXXvttfnu6/jx48rIyChRHaVB0APAyqVLly+BSEvL/y84c+bMUVJSknx8fCy3GrxSTk6OzGazjhw5ohdeeEFBQUG6/fbby7VmSUpISLDccWvw4MH65ptvCrxlYlnIzs6WJMsPAFsEBQWVdTlAlXbGNVsFXSGfmFT4h5SgAE+5ODspO8esxKTC/3Jd0L5q+XvJ1a9OcUqtFExunvYuIV/n1s1T2uFtSk+I1bk1c/KsbzZtt9wC61dILSEhIZVyJINsGBhwITZeMiS/iLo6Hxsvn2uClDzrZJHbdX3vMTm5uuh87DG1eHKQ4uavU/KRorfLT0hwSKUazVBZz/0r0Q8KZ0s/oA84nsJG+J88edJyK/WwsLAST75cVMiT64YbbrD88Xvt2rUFBj0hISGlGtFTUgQ9AKwEBQXp3Llz2rJlS57hjidOnNBzzz0nSWrRokW+KXmPHj0sb3oNGzbUsmXLFBgYWO51T5w4UQcOHNCAAQM0e/bsUo8iKszZs2e1cuVKSVKrVq1s3r6kQzAB5O/VT7Zq7LQt+a7L71KrKx377Q7Vre2txKQ01ev9nc3H9vRwVsKWTXJxuXqmPUzLlrovsncVeflHj5B/9Ah7lyFJio3dL89K9ltyVmq6vm1g29xzx37bpHo3tldKfJKyUor+wB75QF8Fd22uza//V8d+3aBblk5R13cf1a8Dx5eo5tj9sXL1su1WxuWpsp77V6IfFM7WfkAfcCzZ2dmaN29evutyQx7p8jQJJRnNU9yQR7p8SZaPj4+Sk5N16NAhGYaR7zFjY2PL9XNJQa6e30oAVIjcy5AmT56s2NhYy/KNGzcqOjpaSUmX725TUMDx+eef66+//tLs2bPl6+urG264ocR3v+rRo4cGDRokb++iL6eYOnWqJk6cqDlz5pT6zXTTpk0aN26cDhzIe/vNrVu3qk+fPjp//ryioqJ0/fXXl+pYAEqvbWTJJ1osrVaN/a+qkAdVy7Glm1TvhnYK6dlSx1dtL7StzzVBajPmLp3eul87p/1P52PjFfP29wrq3EyRD/StoIqBskUfqDoOHz5s+X9+Vx0UxZaQR5JMJpPCw8MlScnJyTpz5kwJqi4//GYCwMro0aPl7++vY8eOqVmzZoqKilKjRo3UoUMHhYeH67rrrpNU8Pw8jRs3VseOHXXHHXfojz/+UHJyst58880S1TJx4kTNnTu3WCOCPD09NW7cOLm6upboWFdKSUnRK6+8okaNGql27dpq166dOnbsqDp16qhNmzbasGGDIiIi9L///a9cLw8DUDydWtaSu5t9+mJ0+2C7HBcojpPr98g3PFihfTro9MZ9BTc0mdTtvcfl5OSkNVfcRnrnhz8rKeaA2oy5Sz6hlX12GyAv+kDVcfz433dGK2iu0YLYGvLkd5zKNv8mQQ8AK3Xr1tXq1at18803y8PDQ3FxcapZs6ZmzJihhQsXWkb5FDURsyT5+fmpYcOG+Y6MqcxatmypqVOn6rbbbpOvr69iY2O1detW5eTkqFevXvrwww+1bds2S4oPwL5q+Lrrjpsqvj+aTNKDgxpX+HGB4jJyzEpYse3y/80FzxPS7N+3qHaHJto6ZY4u7P/7w4phNmvNqGlycnZW13cfLfd6gbJGH6g6vL295e/vL19fX1WrVq3Y223evLlEIY90+bOOn5+fatWqVaz2FamSXXUJoDKIjIzUggUL8ixPSUlRXFycnJyc1Lx58yL3c+rUKe3bt08dO3YsjzLLTY0aNTRy5EiNHDnS3qUAKKbH7ojUl/Mr9rbJ/a6tr7A6PhV6TMBWRxdvKPSuQdUb1VGb0Xfo1KZ92vXxL3nW516+0nbMMEU+0Fd7Pq/kk9wA/0AfqBoefbRkQVxQUJCqVaumCxcu2BTySFLfvn3Vt2/lvKyPoAdAse3atUuGYSgiIkJeXl5W64YPH66GDRuqVatW8vPz0/79+/Xuu+/KxcVFTz31lJ0qBlBVtG8eqL7d62rR6vgKOZ6Tk0kvPdSqQo4FlMaRBX8Wuv7C/gR9fc1dhbbZ8cFP2vHBT2VZFlBh6AMoTJ06dTRu3Dj9/vvvGjFiRKUbmVNSjvEsAFSIHTt2SMr/sq1OnTpp0aJFuu+++9SnTx9NmTJF3bt3V0xMjBo2bFjRpQKogmaM7abqPgXferUsPXtPc3WIKv87ClYmRz8ZqR0Phmlzf5NSD8UU2C79+H7tHd1FOx+J0J5n2ivt6C7LOuP//6p+fPYEZZyMszwuzOb+JmWnnM933e4nWyknNdnSbtfIKF3Y9Pdf2wured+L0YoZVlMn579XZA1ASR2fPUHmzHTL48LOZ1v2U5h/9gX6AVC4OnXq6J577nGYkEci6AFgg8KCnscff1wbNmzQuXPnlJaWptjYWM2YMcPmydAAoKTqBnlr6uhONm2TmJSq+JOXlJiUWuxtmjbw08RH29ha3lWvRtfBavz6GrnVKvx9/ej0hxVw40Nq/lGsggY+r7ip91rWnV83T/FfPq+cS+d1af8Gxb07QtkXS36nkqbvxcjZ6+/L5xpPWq3q7f4eRl9YzY1fWy6/DreW+NhAcZz4bmKxA5qy3M+VfYF+AFQ9XLoFoNgKC3oAoDK4p38j7T96Qa99uq1Y7dvfOd+m/det7a1FH94gD/eq9yuUT7Nri2yTdf6ULh3YpEYTl0qS/LoM0tFPHlf6iQPyCG6oGl0Hy61WqGLHXq/Uw9vUaPxiObl5aHN/k4KGvKgLmxbKnHFJwUPHy7/nMMt+Ty+ervPr/6fsC6cVPHScAnrdJ+nyyIWW356TSzW/EteMqi075bx2j2wuc2aa3ALqycjKUEbiIdXsOUJhT3xWqn0fmf5vSdK+Md1lcnJWowmX+0VB5/Ol/RuV8OXzykm9KMOco+AhY1Sj65B89xP/+VNKT9gnIztTrgH1FPbE53KtEZRvHfQDoOqper+lACixZcuW2bsEACjSK4+3lbOTk16esbVM93tNHR/9/ulNCg1hAuaCZCYdk2uNYJmcL/+KaTKZ5BZYX5mnj8ojuKHO/fmjLsWuV8D198k7squOfPiQ6j3wrv6/sZq+t1UZiYe055l2qhbZVe61wyRJTq7uinxrg9Lj92rPM+3lHz3CcgygNFyq+anmtXfJ2dNHwUPH6sKWJUqcO6nUIY8khT76sZKWzFDjSautwsj8zuectBQd+fAhNRq3SK41g5V9MUm7n2oj7yZd8t1P3X+9J9fqly8fTZz7ho7PnqDQRz8udc0AHAM/IQEAgEMxmUya+FgbRTWqoUdeW6ekc6W/bGLoTdfog/90VmBNzzKosPLZO7qz0o/nf9eypu9ulVtgvTI5jl+nAarReaCOz54g70YdVKPrEJlMJklSQO9/SZLcg8JVrdm1Stm1yhL01OxxeXSPR90mMjm7KOtcotwC6pZJTUDq4RjV6nf5TpupBzfLK7x1vu3Kqp/kdz6nxW1XxslD2v9yH6u26Qn75OZfJ88+zq76r84u/1rmrHQZmely8Q0o1rEBVA0EPQAAwCENvuEa9WgXpJFv/KU5Sw4VdnfdAoXU8tLU0Z00+IZryr7ASqTJm4Xflaa43ALqKevcCRk52TI5u8gwDGWePiq3wPqSZAl1Qu6cUPTO/r+tJJlcPf5e7uQsIye7TOoFJCntcIwl3Ek9uLnAOWvKqp/kfz4b8qzXTE3eXFfk9im71+jUgvfVZPKfcvWrpfPr5+v47HFlUhsAx8BkzAAAwGEF1vTU7DejdWDhEI2+L0r+fu7F2u66DsGa+/Z1ils81OFDnrLk6ldLXg3a6MyKbyRdnnzZzb+uPIKLvvvimT9mSpIyTsYpZfdqVWvavVxrBSQp80yCJJNl1Exa3HZ5hkaV2f6dPH2Uk3qhyHbeTboo49RhXYz53bIs9VCMzFmZefaTnXJOzp4+cvHxlzkrU6eXzCizegE4Bkb0AAAAhxde11eTn+qgSSPbae/hC9q8O0lb957RJ3P3KjU9R14ezhr379Zq2zRAbSIDVLN68QKhquTI9Id1YdNCZZ1L1P4JN8rZ00fNZxyQJMV98C/5dbhVfh1vVegjMxT3/r1KnDtJzp6+Chs5s1j7N8w52v1ka5kzLqnev963XLZVXjUDkpR6aKvVpVrO3n46tWh6mczRI0m1b3tG+8f3lpO7l2Uy5vy4VKuhRmMXKn7ms4qf+YyM7Cy5BdZXgzH/y2c/S+QR0li7Hm0sZx9/+bbspQtnEwrcN/0AqHpMhlGSgcwAAABXv7q9ZivhVKrq1PJS/O932rucCpGWLXVfZO8qrBV196zy2kfc1HvleU0r1b71Savlq/tKnpXsz6FZqen6tsFwe5dhk2EHv5Grl0fRDStIZTz3y4OtfYF+UH4qWx+42mVnZ2vevHn2LsMmgwYNkotLxXckLt0CAADAVc/Fr7ZiX+yhC5uK90l+34vRSt65Uk4e3uVcGVCxbOkL9APAMVWyjBYAAABVTdufSz/AvOWXiTa1b/za8lIfE6iMbOkL9APAMTGiBwAAAAAAwEEQ9AAAAAAAADgIgh4AAAAAAAAHwV23AABAlVUV77plGFJ6jr2rqNw8nCWTyd5VWDMMQ9lpGfYuwyYunu4yVaJvJOe+begHpVfZ+sDVzjAM5eSUXSeeMmOOki9dko+3t557eGiex2XB2dnZLucAkzEDAABUISZT5btlMopmMpm4TXMpce5f/egHVZvJZCrTW5UbkszG5X9dXFzyPL6acekWAAAAAACAgyDoAQAAAAAAcBAEPQAAAAAAAA6CoAcAAAAAAMBBEPQAAAAAAAA4CIIeAAAAAAAAB0HQAwAAAAAA4CAIegAAAAAAABwEQQ8AAAAAAICDIOgBAAAAAABwEAQ9AAAAAAAADoKgBwAAAAAAwEEQ9AAAAAAAADgIgh4AAAAAAAAHQdADAAAAAADgIAh6AAAAAAAAHARBDwAAAAAAgINwsXcBAICiGYaUnmPvKmzj4SyZTGW3P8MwlJ2WUXY7LGcunu4yleE3gHMAZeVqPJcqWmU8d6+290Cp7N8HS4tz3zb0g9Ir+98FDOXkXF0nsbOzc6V6H6gqCHoA4CqQniN1X2TvKmyzuq/kWYY/ZbLTMvRtg+Flt8NyNuzgN3L18iiz/XEOoKxcjedSRauM5+7V9h4olf37YGlx7tuGflB6Zd0HcnJyNG/evDLbX0UYNGiQXFwq2YlUBXDpFgAAAAAAgIMg6AEAAAAAAHAQBD0AAAAAAAAOgqAHAAAAAADAQRD0AAAAAAAAOAiCHgAAAAAAAAdB0AMAAAAAAOAguKE9ADiw5B0rFPtStNUyJw9vuYdEyL/nCNXq94RMzvwocFS8/rA3zkGAfgCg4vGOAgBVQI1r71T1tn0lw1DWuUSdWfGV4r94WunxexT62Cf2Lg/ljNcf9sY5CNAPAFQcgh4AqAK8wtvIv+dwy+PAvo9q16NNlPTbZwoZ/ppcqwfasTqUN15/2BvnIEA/AFBxCHoAoApy9vCWd+NOOr9urjISD1a5Xy7vPTG3zPY1K3hwme2rolT11x/2xzlof1X9fbAyoB/YF32gbJw+fVqBgZy7lQ1BDwAUw6effqqHHnpIktSjRw+tWLHCvgWVgYzEg5Ikl2o17VxJxfKuE6AN42dp9ycL7F2KXVXV1x+VB+eg/fA+WHnQD+yjKvcBwzB04sQJHTx4UIcOHdLx48eVkZEhk8kkT09P1atXTw0aNFCDBg3k7+9f6L42bdqk9957T/fcc4969+5dQc8AxUHQAwBFSExM1OjRo+1dRqmYM1KVfTFJhmEo+1yiTv/6sdIObZVXow7yqBNh7/IqVL3e7XRs6SZ7l1GheP1hb5yDlUtVfB+sDOgHlUdV7AMZGRlau3atfv/9dx06dKjAdlu2bLH8v0WLFurdu7fatGkjZ2dnq3abNm3Su+++q5ycHH3++ecKCgpSVFRUudUP2xD0AEARnnjiCV28eFH9+vXTggVX519+TswerxOzx1st8+s8UPUf/tBOFdmPb3iQ9s5KtHcZFYrXP39HjicrPSNHkpSRmaOsLLNcXZ3sXJVj4hysXKri+2BlQD+oPKpSHzAMQ3/++admzpyp5ORkm7bdvn27tm/frqCgIP373/9WkyZNJFmHPJLUvXt3NWvWrMxrR8kR9ABAIebPn6+5c+fqiSeeUM2aNa/aoCfgxodUo8sQGTlZSjuyQ4k/TlZmUrxMrh6WNsm7VuvAy33ybGtkZ8ow56jtTzkVWXK5cPHyUFZKur3LqHC8/n8zDEOL18Rr2uzd+nVtvAzj8vKk8xkKvWmOHhrUWI8OjVQtf0/7FupgOAcrj6r6PlgZ0A8qh6rUBy5evKjPPvtMGzZssFoeHh6u9u3bKzw8XKGhofL29pZhGLp48aIOHz6sgwcPat26dTp16pSky6PbJ06cqJtuukkRERGaNm2aVcjzyCOPyMmJP5RUJgQ9APKVlJSkN998Uz/++KPi4+MVGBiogQMHatKkSRo5cqS++OILffDBB3r88cftXaqkyx/eTCZTme4zOTlZjz32mEJCQvTqq6/qnXfeKdP9VyT34EbybdVLklS9bR9Vi+ymfS9009GP/q3w576TJPk0667Wc1Kstss8c1x7n2mnwJsrx+tcWiE9Wihh5TZ7l1HheP0vM5sNPfXmX3r/v7vzXX/idKomfrxVn/24T4un36ioCObMKCucg5VHVX0frAzoB5VDVekDp0+f1muvvabExL9HLrVv31633XabGjRokO82AQEBCggIUPv27XX77bdr27Ztmjdvng4cOHD5DyWLF2vx4sWW9oQ8lRevCIA8YmJiFBUVpSlTpigxMVFNmzZVVlaW3n//fQ0dOlR79uyRJLVq1arcaujZs6dMJpPi4uKKbLt9+3a1bt1aBw4cKNMaXnjhBcXHx+u9996Tr69vme7b3qpFdlHNniN0bs0cpexZl28bc1aGDr0xUNWadlPwkDEVXGH5qNW+iU5v3Ge1rM0Ld+neE3PV8I7r8t3mpnkTNSJutvwa16uIEitEVX39x7y/qcCQ50oJp1LV++FfFZdg2xB3FF9VPQcrA94HKw/6gX1UhT5w9uxZvfLKK5aQx8fHR08++aSeeeaZAkOef3JyclLr1q318ssva9iwYXnm6OnatSshTyXGqwLASlJSkm655RYlJibqmWee0YkTJ7RlyxYlJiZq8uTJWrhwoTZu3CiTyaQWLVrYu1xJ0syZM7Vt2zZFR0cXOrmcLf7880999NFH6tOnj4YMGVIm+6xsgoeOlZycdfy/4/Jdf3T6v2XOSlfYqFkVW1h5MZkkk2SYzVaLY976Xuf2HFGHCffIK9h6BEfTh/opqEszxbw1R+f3HavIastdVXv99x0+r8lfbC92+5Nn0jT2w83lWBGq2jlYKfA+WOnQDypYFegDOTk5evvtty2XXQUHB+v1119Xp06dSrQ/JycnBQcHy8i91vn/ubi4EPJUYrwyAKyMHDlS8fHxevzxx/XWW2/Jx8fHsm706NFq2bKlsrOzFRYWVmlGubz99tsaMWKE4uPjFR0dXaxRQIXJysrSgw8+KHd3d02bNq1siqyEPIIbqmb3O5S8/Q8l71ptte7UL+/rwqYFavDC/+Tk7mWnCstWYOuGStqad9SXOStbq0dNk4uXu7q+86hluW+DELX5z506vTlWO6fPr8hSK0RVe/0//mGvzdt8v+SwTp9NK4dqIFW9c7Ay4H2w8qEfVKyq0AcWLFiggwcPSpICAwM1duxYBQQElHh/uRMvm/8/HMsNd1auXKmtW7eWvmCUC4IeABZ79uzRnDlzFBAQoNdffz3fNm3btpUktWzZ0rIsNxjq0KGD3N3dy3SunPj4eMXFxRX6dfToUU2YMEHXXXedjh49qujoaB09erTEx3zjjTe0a9cuvfTSSwoPDy+z51IZBQ15UXJysvpLYvL25Yr/6nmFj/5B7rXD7FdcKdTuFCmTs/WPuDrRrZWwPCbf9md3HNb2D35SnZ6tFDG8l0xOTur+/hOSpNWjpuX5y5+jcNTX/58Mw9Csn/fbvF1mlllzlhwuh4qQq6qcg/bA++DVg35QPqpiHzh+/Lh++OEHSZLJZLLcTKSk8ru71n333WdZ/+mnnyotjT+IVEZMxgzAYvbs2TKbzRo2bJiqVauWbxtPz8t3orky6Dlw4IDmzZun9u3by83NTWvXri2zmrp3727zNnFxcRo+fLhWrVpl87b79u3Ta6+9psjISD333HM2b18c7dq1s5oYrzhMbp6q/Z7tH1R9onqq7c9Gges960Va3cEj42ScDk25XXXvnSKfqJ42H+9KERGNZGSW3Q9/V8NJ49WhyHZht3ZR17cf0R/3vKHEdbv+3t7XS1nJqQVut+3duap/Qzu1G3e3ajYLU2CbRtowYZYuHjxeonojGkUoy1R2vxSW5Byw5+svlf05UFJmuel8zRdLtO0L46bojed+K+OK7Kuk7yclYe9zsKQqy7l7peK+B0qO+z5YWhV57l+JflB2qvrvAm5ubgX+MVaSFi1apOzsbEnSzTffrIiIiBIfK7+Q55FHHpHJZNKGDRu0Y8cOnT17VqtXr9YNN9xQ4H4iIiKUmZlZ4jrK04D7npR3NV+dSDyhunXr5nlsb0FBQdq0aVOJtiXoAWCxbNkySVJ0dHSBbeLj4yVZBz3XXnutTpw4IUmaMGFCmQY9UVFRcnNzK1bbM2fOWC7bioyMLNHxHnnkEWVkZOjjjz+Wq6trifZRlMTERCUkJNi0jZO7l2qXSzV/M2ek6uDrt6l6h1tVqwzu7HH8+HGZMwr+ZcpWbiZnFeebEDd/nXyvCVK9G9tbfrnzrhOgS/GnC93OyM7R6lHT1G/xG2py7006uX6Pdn+ysMT1Hj9xXJlG2d0Gt7zPgbJ+/aWyPwdKzOQmlfAPminJyUo5aVt/rewq4v2kJMrjHCypSnPuXqG474GS474PllZlPfevRD8oXFX/XcDd3b3AdampqVq9+vLlfx4eHho4cGCJj1NQyJN72dbw4cP1/PPPS5J+++039e7du8AR/cePH1dGRkaJaylP5v9/fuacHCUkJOR5fDUj6AFgceTIEUlSaGhovuuzs7MtIc6VQU95TsQ2f/58hYWFFdkuPj5ePXr0kCQNHTpU06dPL9HxtmzZIicnJ91+++151qWkXL7d6bp16xQUFCRJio2NtXmuotxtbWFy87R5G1udWzdPaYe3KT0hVufWzMmzvtm03XILrF/s/YWEhJT5iB4V849iRxZv0PWzntfG8bMkSfV6t9OxpUX/RSTrYqrMmdlydnNV/B9bJKPgv8AWJSQ4pMxH9JSnsn79pbI/B0rKkHTCnCrDyfY5Lqp7m1WtTp2yL8qOKuL9pCTK4xwsqcpy7l7JlvdAyTHfB0ursp77V6IfFK6q/y5Q2B8/165dawlUunfvLi+vks3rVFTII13+rBAREaHY2FgdO3ZM+/fvL3D0UEhISKUd0eP0/3cSc3J2Vp06dfI8treSfGbIRdADwOLSpUuSVOC1tnPmzFFSUpJ8fHx0zTXXVGRphUpISLDccWvw4MH65ptv8twC0hZms1knT54scH1WVpZlvbkE12uXZAhmWrbUfZHNm9nEP3qE/KNHlNn+YmP3y7MMf8pkpabr2wbDi9X2Qmy8ZEh+EXV1PjZePtcEKXlWwa9prq7vPSYnVxedjz2mFk8OUtz8dUo+UvR2+YndHytXL48SbZuf8j4Hyvr1l8r+HCiNZ95ar3e+2mnTNu5uzjqw8r8KqFF2r2NlUBHvJyVRHudgSVWmczeXLe+BkmO+D5ZWZT33r0Q/KFxV/10gOztb8+bNy3fd3r1/33Qg94+ftipOyHPlMWJjYy3HLijoiY2NlYtLJTuR/t+kD7/VxZRLCg4KVnx8fJ7HVzMmYwZgkZsab9myJc+6EydOWOasadGiRZlOuFxaEydO1IEDBzRgwADNnj27VD9Mzp8/L8Mw8v0aP368pMs/2HKX+fn5ldGzQFk79tsm1buxvVy8PJSVUvRfJCMf6Kvgrs0V884PWvHg23JydlbXdx8tcjtcHf49pInN2wy98RqHC3lQtfA+iKquKvWBw4cv3zzAxcWlWKPh/8mWkEeSGjVqZPn/oUOHbC8Y5YqgB4BFr169JEmTJ0+2JPSStHHjRkVHRyspKUmS1KpVq3KvpUePHho0aJC8vb2LbDt16lRNnDhRc+bMqbR/MUDFO7Z0k+rd0E4hPVvq+Krthbb1uSZIbcbcpdNb92vntP/pfGy8Yt7+XkGdmynygb4VVDHKU6PQ6nrxwZZFN/x/IbW89OoTbcuxIqD88T6Iqq6q9IH09HTLfJn169e3+fdhW0MeSapTp47lUrLcOTJReRD0ALAYPXq0/P39dezYMTVr1kxRUVFq1KiROnTooPDwcF133XWSrOfnKS8TJ07U3LlzFRgYWGRbT09PjRs3rtwmT8bV6eT6PfIND1Zonw46vXFfwQ1NJnV773E5OTlpzRW3T9354c9KijmgNmPukk9oZZ++E8XxyuNt9ew9UUW2qx/srd9m3KR6QfnffRC4WvA+iKquqvSB1NRUGf8/l1BAQIBN25Yk5JEkZ2dn1ahRQ9Lf0z+g8iDoAWBRt25drV69WjfffLM8PDwUFxenmjVrasaMGVq4cKFllE9FBD1AaRk5ZiWs2Hb5/4XMpdTs37eodocm2jplji7s//sOC4bZrDWjpl1Vw7ZROJPJpCnPdNDSGTepf3R9OTlZX4JaL8hbrz3RVpu/u01NG9SwU5VA2eF9EFVdVekD1apV0/jx4/XCCy/otttuK/Z2hmFo4cKFNoc8uR566CGNGTPGMr0DKg+ucQBgJTIyUgsWLMizPCUlRXFxcXJyclLz5s3tUJn9TZgwQRMmTLB3GbDB0cUbCr1bRvVGddRm9B06tWmfdn38S571ucO2244ZpsgH+mrP55V8Fk8US+/OddS7cx3FJ17SvrgLSs/Mln91D7VrFiAXF/4GBsfC+yCquqrQB9zc3BQZGWnzdiaTSc8995xef/11BQUF2RTySFKzZs1sPiYqBkEPgGLZtWuXDMNQREREvrdrnDt3riRp9+7dVo/DwsLUrl27iisUuMKRBX8Wuv7C/gR9fc1dhbbZ8cFP2vHBT2VZFiqJukHeqhtU9DxguOzoJyN1YeN8ZZ46osh3t8orvFW+7dKP71fce/coOzlJzl7VFTZqljzrX/4wYBiGTCaTjs+eIP/r7pVbrdAiJ/ff3N+klt+ek0s1vzzrdj/ZSo0nrZazl4829zfJI7S56t49WdXb9S2yln0vRistbpuCh45T7VufLPH3pbLjfdC+js+eoKBB/5GT2+WJ3Qs7n23ZT2H+2Reqej+gDxTOy8tLL774otzc3GwKeVC58UoCKJYdO3ZIKviyrSFDhmjIkCH64YcfrB5PmzatwmpEyZxbO1dHPnpE5sx0HZh0m3Y+EqHdo1oqdlxvpZ84YO/yUAE4B1AcNboOVuPX18itVmih7Y5Of1gBNz6k5h/FKmjg84qbeq9l3fl18xT/5fPKuXRel/ZvUNy7I5R98UyJa2r6XoycvXwsjxtPWm0JeYqqpfFry+XX4dYSHxsojhPfTZQ5M73C93NlX6AfoCgeHh6EPA6GVxNAsRQV9BR0S/JZs2ZVYJUoifN//SS/jrdJkgJveEjNpu9T06nb5Nexv45M+5d9i0OF4BxAcfg0u1ZuAXULbZN1/pQuHdgk/57DJUl+XQYpM+mYJTCs0XWwanQZrKTfv9DpxR8p9PHP5OLrr839TUr45iXtfrK1dj4SoTMrvrXa7+nF07Xn2Q7a8eA1Svp9pmX55v4mZaecL1EtgCRlp5zX9vvrKma4v3Y/2Uq7HovUlkHuivug9O99R6b/W5K0b0x37X6ylbLOn5JU8Pl8af9Gxb50nfY83U67n2ytc2t/KHA/h98edrndyBba//LNyjqXmG8N9AOgauLSLQDFUlTQg8orO+W8do9sLnNmmtwC6snIylBG4iHV7DlCoY98pJS9axU2apZMLq5Wfwn3juikk/97y46Vo6xwDqCiZCYdk2uNYJmcL/+KaTKZ5BZYX5mnj8ojuKHO/fmjLsWuV8D198k7squOfPiQ6j3wrv6/sZq+t1UZiYe055l2qhbZVe61wyRJTq7uinxrg9Lj92rPM+3lHz3CcoyS1gJIkks1P9W89i45e/ooeOhYXdiyRIlzJynsic9Kve/QRz9W0pIZajxptdWlWvmdzzlpKTry4UNqNG6RXGsGK/tiknY/1UbeTbrku5+6/3pPrtUv35k0ce4bOj57gkIf/ThPDfQDoGoi6AFQLMuWLbN3CSihwn6Jvbh1qbybdJHJJe+t6U8tmCq/Dv3tUDHKGucAirJ3dGelH9+f77qm726VW2C9MjmOX6cBqtF5oI7PniDvRh1Uo+sQyxw9Ab0vj6BwDwpXtWbXKmXXKkvQU7PHMEmSR90mMjm7KOtcYpGji4DiSj0co1r9Rl7+/8HN8gpvnW+7suon+Z3PaXHblXHykPa/3MeqbXrCPrn518mzj7Or/quzy7+WOStdRma6XHxtu6U2AMdG0AMAVUBBv8SeX/8/1eg0IE/7Ez9MUsaJAwp95Y8KrRPlh3MAhWnyZuGTlRaXW0A9ZZ07ISMnWyZnFxmGoczTR+UWWF+SLKFOyJ0Tit7ZFZM0m1yvmIDWyVlGTnapawFypR2Osbwnph7cXOCcNWXVT/I/nw151mumJm+uK3L7lN1rdGrB+2oy+U+5+tXS+fXzdXz2uHzb0g+Aqok5egCgCvjnL7Fe4a1lGIYubF0i3zbWfz1M/Oktnf/zRzUct1hO7nnvsIarE+cAKoKrXy15NWijMyu+kXR58mU3/7rFukTkzB+X5yrJOBmnlN2rVa1pd7vVgqoj80yCJJNl1Exa3HZ5hkaV2f6dPH2Uk3qhyHbeTboo49RhXYz53bIs9VCMzFmZefaTnXJOzp4+cvHxlzkrU6eXzChwv/QDoGpiRA8AOLj8fokNHvKiUmM3yLNupJw9q1nanvz5HZ1bPVuNXv7d5lu/ovLiHEBZODL9YV3YtFBZ5xK1f8KNcvb0UfMZlyd0jfvgX/LrcKv8Ot6q0EdmKO79e5U4d5KcPX0VNnJmEXu+zDDnaPeTrWXOuKR6/3rfctlWaZS0FlQdqYe2Wl2q5eztp1OLppfJHD2SVPu2Z7R/fG85uXup0YSlBbZzqVZDjcYuVPzMZxU/8xkZ2VlyC6yvBmP+l89+lsgjpLF2PdpYzj7+8m3ZSxfOJhS4b/oBUPUQ9ACAgyvol1gX3wDLnZYkKTMpXvFfPCO3oHDFvhQtSTK5uCvyrfUVXTLKGOcAykLoowWPGrjyQ7FH3cYlusSldv9nVGfYK3mWt/3ZsHrc6pukAtf9U0lrQdXh176f/Nr3szyOfHtjme4/5I7xCrljvOVxYeezV4M2ing1/zkR/7mf8NFzrNbXGfFagTXQD4Cqh6AHABxcQb/E7nq8mWq/utyy3C2gbpEfmnB14hxAVeDiV1uxL/ZQnRGvW909riD7XoxW5qk4eUd2rYDqgIpjS1+gHwCOiaAHAKqoZtN22bsE2BnnACqLsggYW36ZaFP7xq8tL7oRcBWypS/QDwDHxGTMAAAAAAAADoKgBwAAAAAAwEEQ9AAAAAAAADgI5ugBgKuAh7O0uui5RSsVD+ey3Z+Lp7uGHfymbHdajlw83ct0f5wDKCtX47lU0SrjuXu1vQdKZf8+WFqc+7ahH5ReWfcBZ2dnDRo0qMz2N2XGHCVfuiQfb2899/DQPI/LgrNzJTyRqgCCHgC4CphMkmcVf8c2mUxy9fKwdxl2wzmAssK5dHWq6u+BZYFz/+pX1fuByWSSi0vZncSGJLNx+V8XF5c8j3H14tItAAAAAAAAB0HQAwAAAAAA4CAIegAAAAAAABwEQQ8AAAAAAICDIOgBAAAAAABwEAQ9AAAAAAAADoKgBwAAAAAAwEEQ9AAAAAAAADgIgh4AAAAAAAAHQdADAAAAAADgIAh6AAAAAAAAHARBDwAAAAAAgIMg6AEAAAAAAHAQBD0AAAAAAAAOgqAHAAAAAADAQRD0AAAAAAAAOAiCHgAAAAAAAAdB0AMAAAAAAOAgCHoAAAAAAAAcBEEPAAAAAACAgyDoAQAAAAAAcBAEPQBQCU2ZMkWdO3dWjRo15Ofnp27duunXX3+1d1kAAABAgRYtWqRWrVrJ3d1dYWFheuedd+xdUoVatWqV+vfvr9DQUJlMJr366qt2qYOgBwAqoWXLlun+++/X8uXLtWHDBnXp0kX9+vXT2rVr7V0aAAAAkMemTZvUv39/9enTRzExMZowYYLGjBmjjz/+2N6lVZiUlBQ1bdpUb775poKCguxWh4vdjgwAKNDixYutHr/55pv69ddf9eOPP6pr1652qgoAAADI3zvvvKP27dvr9ddflyRFRkZq165deuONN/Tvf//bztVVjL59+6pv376SpOeff95udTCiBwCuAmazWRcvXpS3t7e9SwEAAADyWLt2rW666SarZTfddJOOHDmi+Ph4O1VVNTGiBwCuApMmTdL58+f10EMP2bsUAAAAXEUuJl9SYtK5PMuzc3Is/8Yejs/z+EqhIbXk7u5W6HFOnDiR53Kl3McnTpxQ3bp1S/wcSsNsGDp4JEGGYb3clufv51tNtfz9KqLcMkHQAwCV3PTp0zVp0iTNnz/fbj8gAQAAcHVyc3PVT0tW69yF5HzXp6al64vvFxX4uEFoiB4YenO511lenEwm7T8cr1Ubtue7vqjn7+LirJH3DCz3OssSl24BQCX21ltv6bnnntP8+fPVq1cve5cDAACAq4yHu5uG3NxTppJu27ennExFbx0cHKzExESrZSdPnrSss6fe3dupdkCNEm3bp0dH1SrhtvZC0AMAldS4ceM0ceJELVq0iJAHAAAAJRZeL1jdO7Swebv+vbvKz7dasdp27dpVS5YssVr266+/KjQ01O6j0l1dXDT0luvk7GRbBNIwtI46t21WTlWVH4IeAKiEnnzySU2ZMkVff/21GjdurMTERCUmJurChQv2Lg0AAABXoRu6t1dQYM1it49qHK5WTRsWu/1TTz2lDRs26MUXX9TevXv15Zdf6oMPPtB//vOfkpRb5kJq+at393bFbn95NFOPYo1mypWSkqKYmBjFxMQoMzNTiYmJiomJ0YEDB0pScomZDOOfUxIBQOFWrFihFStWqGfPnurZs6e9y3FIpgJ+oNxzzz2aNWtWxRYDAAAAh3Di1BlN++on5eSYC23nU81LT94/WN6eHjbtf+HChRozZoz27t2roKAgjRo1Sk8//XRpSi5TZrNZn8xeoLj4xCLb3nHLdTYFXdLlz0nR0dF5lvfo0UMrVqywaV+lwWTMAGy2YsUKTZw4UZIIesoJGTwAAADKWnAtf93Qvb0Wr1hfaLvBfXrYHPJI0s0336ybb668Ezc7OTnp9pt76r2Z85SZmVVguxZNwtUysoHN++/Zs2el+D2eS7cA4CpmGIb2x8VXih8oAAAAqPy6t49SWN2gAtd3at1UjcPrVWBFFaumn69uub5zget9q3npthu6FTjC/mpA0AMAV7G9B4/q8zmLNOO/vxD2AAAAoEhOTk66vV+03N1c86wLqFFdfXt2tENVFatdVGNFNgzNd93gPj3kVYLRTJXJVR30mEwmS8r2448/qlu3bvL19ZWvr6+uu+46/fbbb4VuP3fuXPXu3Vv+/v5yd3dXWFiYHnzwQR08eNCqndlsVt26dWUymbR8+fIC9/f111/LZDKpQ4cOlmWzZs2SyWTSvffeq/T0dI0dO1YNGzaUp6enwsPD9corrygnJ0eSlJaWpgkTJigiIkIeHh4KDQ3V2LFjlZVV8JCy4lixYoVMJpN69uwps9msd955R82aNZOXl5fq1aunp59+WpcuXbI81/fee09RUVHy8vJScHCwHn/8cSUnJxe4/1OnTmn06NFq1qyZvL295ePjo/bt2+uDDz7It/acnBz9/PPPeuCBB9S8eXPVqFFDnp6eatSokZ544gklJCTke5zs7Gx9+OGH6ty5s6pXry43NzcFBQWpbdu2evbZZ3XkyBGr9leeH/m59957ZTKZ8sx3cuXyY8eO6cEHH1T9+vXl6uqqe++916rtqlWrNGTIEIWEhMjNzU21atXSgAEDtG7dunyP2bNnT5lMJq1YsUK7du3S4MGDFRgYKB8fH3Xr1k3Lli2ztN25c6duv/121a5dW56enurYsWOeWez/6eeff9bNN9+sWrVqyc3NTXXq1NHw4cO1a9eufNuHhYXJZDIpLi5OmzdvVv/+/RUQECBPT0+1bt1aM2fOzLONyWSyXLY1ceJEy/c59xwrjUOHDumJJ55QkyZN5OXlperVqysqKkpPPfWUdu/enaeO3Nf3l19+Ua9eveTv72/5/ubKyMjQ1KlT1aVLF/n5+cnDw0ONGzfWc889p6SkpAJr2blzpwYNGiR/f395e3urTZs2+vTTT/N83+zJMAz9vnazJCm0Tu2r+q8OAAAAqDg1q/voluu7WC1zMpl0e79oueUTADkak8mkQTddK28v60Cnc5uminCE0UzGVUySIcl49913DUlGQECA0a5dO8Pf39+y7qOPPsp32/vvv9/Spl69eka7du2MatWqGZIMb29v47fffrNq/+yzzxqSjH/9618F1nPjjTcakoypU6dals2cOdOQZNx5551G165dDScnJ6N58+ZGw4YNDZPJZEgyHnzwQSMtLc3o3Lmz4eTkZDRr1sxo1KiRZf39999fqu/T8uXLDUlGjx49jNtvv92QZDRu3NiIjIw0nJ2dDUnGDTfcYOTk5BgDBw40JBkRERFG06ZNLeuvv/76fPe9bt06y/fb3d3diIyMNBo2bGg4OTkZkozrrrvOSE9Pt9rm2LFjhiTDycnJCAoKMlq3bm00bdrU8PLyMiQZtWrVMmJjY/Mca8iQIZbXrH79+kb79u2N8PBww83NzZBkzJ4926p9btuC3HPPPYYkY+bMmfkuHzNmjFGzZk3D1dXVaNWqlREVFWX1WrzwwguWY9SsWdNo3bq1ERgYaHluM2bMyHPMHj16GJKMN9980/Dy8jJ8fX2Ntm3bWr6Hrq6uxooVK4zVq1cb1apVy7PexcXFWLZsWZ79ZmdnGyNGjLDUU6tWLaN169ZG9erVDUmGh4eH8csvv+TZLjQ01JBkTJ8+3XBzczOqV69utG3b1qhVq5ZlX1OmTLHapmvXrka9evUsfadr166Wr8cff7zA73dRvv/+e8PDw8OQZLi5uRktWrQwoqKiDG9vb0OSMWrUKKv2ufW99dZblv7fvn17o06dOsby5csNwzCMxMREo3Xr1pbXJDQ01IiKijLc3d0t59HBgwfz1LJy5UrD09PT8n7Qrl07o379+pY6cr9vhw8fLvHzLQu798cZz78xwxj79udG8qVUu9YCAACAq4vZbDa+nLfEeP6NGcbzb8wwlq7aaO+SKtyu2MOW5z/lk++MjMwse5dUJhwi6HF1dTUmTZpkZGdnG4Zx+UPvhAkTLOt27txptd3HH39s+fA7b948y/KUlBTj7rvvtnxwP3nypGXd1q1bDUmGn59fnuDCMAzj5MmThrOzs+Hs7Gy1XW7Q4+rqajRt2tTYv3+/Zd3vv/9uuLq6GiaTyejfv7/RtGlTq4Djt99+M1xdXQ1Jxp49e0r8fcoNelxdXY2QkBBj48a/O3BMTIxRs2ZNQ5IxYMCAPOu3bt1q1KhRw5BkLF682Gq/iYmJlmDj+eefN5KTky3rDh48aHTq1MmQZLzwwgtW250/f96YOXOmcfr0aavlKSkpxssvv2xIMnr16mW1bvPmzYYko3r16saaNWus1qWlpRnff/+9sXnzZqvlpQ16nJ2djb59+xqnTp2yrEtNvfxh+vPPPzckGcHBwcbPP/9stf2cOXOMatWqGa6ursaOHTus1uUGPa6ursYTTzxhpKWlGYZx+Zx98MEHDUlGmzZtjNDQ0DzrH3jgAUOS0bFjxzzPZezYsZYAb/Xq1ZblZrPZmDZtmuHs7GxUr17d6tw0jL+DHldXV2Ps2LFGRkaGZd2UKVMMSYaXl5dx4cIFq+3Gjx9vSDLGjx9f4PfXFlu2bLEEdo8++qhx/vx5q+ewZMkS44cffrDaJvf1dXNzM6ZNm2bk5ORY2qenpxtms9ny/b755putQpnk5GRL2Nu5c2er/aakpBh169Y1JBlDhw61Oq/nzJljuLm5WfqlPYMes9lsvD9rnvH8GzOMRcv/slsdAAAAuHolX0o1Xnn/K+ODWT8a2dk59i7HLn5YtMJ4YfInxtHjJ4tufJW4qm+vnnuZws0336wFCxbkWd+7d2/9/vvvuu+++/TFF19IunypQ3h4uOLi4jRx4kSNGzfOapucnBxFRETo0KFDmjBhgsaPH29Z17x5c+3atUs//vijBgwYYLXdBx98oJEjR+qmm27S4sWLLctnzZql++67TyaTSRs2bFC7du2strvjjjs0Z86cAtcPHTpU33//vd555x099dRTJfguWd/ibd68eRo4cKDV+v/85z+aPHlygeuff/55vfnmmxo5cqSmTp1qWT569GhNmTJF//rXvyyXtFwpPj5eTZo0kZOTk06dOiUPj+Jd59i9e3etWbNGx48fV3BwsCTpu+++05133qkBAwboxx9/LNZ+cs+Pgk7xe++9V19++aVmzpxpdUlW7vLatWvrwIEDqlatmtV2WVlZuuaaa5SQkKDVq1erW7duefb93nvv6amnnsrzvenZs6dWrlypli1basuWLXJy+vvqyfPnzys4OFjp6en5rj937pxCQkKUnp6us2fPqkaNGpKkpKQk1a9fXyaTSTExMWrUqFGeep588klNnTpVr776ql588UXL8rCwMB05ciTPeZurVatW2rZtm3766SfddtttluUTJkzQxIkTNX78eE2YMCHf768tbr31Vv3yyy8aOnSovvvuu2Jtk/v6PvbYY5o2bVqe9YsWLdLNN9+s5s2ba+PGjXnOv5ycHHXo0EFbtmzRmjVr1LVrV0nSZ599pgcffFBhYWHau3ev3N3drbYbO3asXn31VUnS4cOHFRYWZuvT1Qdf/qjklDSbt7tSdk62UtMyJEk+3l5ctgUAAIASycrOlpOTk5ydruqZXUrMMAxlZWfLzbVyXbLmU81TT9wzsOiG+XCI26s/8cQT+S4fOXKkfv/9d/3666+WZXv37lVcXJycnZ3z3c7Z2VkjR47Uk08+qV9//dUq6Bk2bJjGjBmjb7/9Nk/Q8+2331ra5KdVq1Z5QhxJatOmjebMmVPo+u+//16HDh3Kd7+2qFGjRp4QJ/cYxVn/zxrmzZsnSXr44YfzPV7dunXVvn17rVixQps3b7Z8kM61evVq/fzzz9q3b58uXrxomato//79kqRt27ZZgp569S5fJ7l+/XodPXpU9evXL96TLoXBgwfnCXkk6a+//lJCQoKaNWuWb8gjSQMGDNBTTz1lNVfMle6//36rEEeS/Pz8dM0112jPnj35rq9Ro4YlfDh06JDatm0rSVq8eLHS0tJ088035xvy5NYzdepUrVixwiroyVXQa9ixY0dt27Ytz7xVZSktLc0y99B//vMfm7f/57xJuXLPz3vuuSffkNHZ2Vm33nqr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Oi/MZrOxdOlS44cffrDaJrf/F8RsNlu+X507d87zPpCTk2OsW7fOePjhh42DBw9alqekpBh169Y1JBl33nmnkZycbFn3ww8/GO7u7pZzp6DvW3kwm83G+7PmGc+/McNYtPyvCjsuAAAAgKtL/rdKusq8+eabev755xUcHKwOHTooKChIY8eOlSS9++67lrto5XrooYd0//33Kz09XYMGDVJoaKjat2+voKAgzZw5U97e3vruu+8KnOT5lltuka+vr7Zt26aEhAQ1aNBAnTp1KvfnWdkEBQVp4cKFCg4O1ueff67g4GA1bdpUnTt3VpMmTeTr66tbb71Vixcvttru5ZdfloeHhxYsWKA6deqobdu2ql+/vm677TZ16tQp38tlTp8+rQkTJqhhw4aW17lly5YKCgrS7Nmz5ePjo/fff99qm2eeeUb16tXTzp07FR4erhYtWqhJkyZq0aKF6tevryFDhpT4ud9///169dVXlZycrLvvvls1a9ZUu3bt1L59e9WpU0f16tXT008/rbi4uBIfwxYTJkzQww8/rOPHj6tfv34KDAxUhw4d1LZtWwUGBioiIkLjxo3T6dOny+R4vXv3lr+/v9atW6d69eqpa9eu6tmzp5588skS7a9Vq1b65ptv5O7urvfff1+BgYFq3bq1WrRoIV9fX91www1as2aNTfs0mUyaO3euunTpoj///FNRUVEKCwtTp06d1LJlS/n6+qpLly6aMWOGMjP/vpWit7e3vv32W3l6emr27NmW8y0sLExDhgzRww8/rJCQEEkq08m/i7L34FElJCbJzdVF3Tu0qLDjAgAAALi6OETQ8+STT2revHmKiIjQ3r17lZ6erp49e+rXX3/VY489lu82n3/+ub7//ntdd911Sk5O1rZt21SzZk098MADiomJUe/evQs8noeHhwYNGmR5XJUmYf6ndu3aaffu3Xr11VfVtm1bJSQkaOPGjUpKSlLHjh316quvavny5VbbtG7dWmvWrFGfPn1kMpm0Z88e+fr66rXXXtPixYvz/fA8aNAgvfnmm7rxxhvl7u6unTt3at++fapXr54effRRbd++XR06dLDapmbNmlq7dq2GDx8uPz8/xcbGyjAMvfrqq1q8eHGpb8n+4osvatOmTbrvvvvk7++vnTt3avv27XJ1ddWgQYP01Vdf6YUXXijVMYrLyclJH3/8sZYtW6ahQ4fK09NT27Zt0549e+Tn56fhw4dr3rx5uvvuu8vkeL6+vlq6dKn69eunnJwc/fXXX1q5cqViYmJKvM8hQ4Zox44devjhh1WvXj3t2bNHx44dU1hYmJ566ik9/PDDNu8zICBAK1eu1KxZs9S7d29dunRJmzZt0uHDh9WwYUONGjVKK1eutMzdlevaa6/Vhg0bNGDAALm6umrnzp3y8/PT9OnTNXXqVMtE3rlzf5U3wzD0+9rNkqTObZqpmlfpbs8OAAAAwHGZDKMc75tczsry1uMAUBxJSUkKDAxUjRo1dPbs2Qo5ZmZmln7+fa12xcbp2YeGEvQAAAAAKFDVmj0YAEpp1qxZkv6eBLwiuLm5akjfnrrl+kx5uLsVvQEAAACAKsshLt0CgLK0Zs0affPNN0pPT7csM5vN+vrrry3zfz3yyCMVXhchDwAAAICiMKLnKvPEE09o69atxW5v6wS2QGl169at2G1bt26tDz74oByrKZn4+HiNGDFCDz74oCIiIuTu7q6DBw9aLtV6/PHH1bdvXztXCQAAAAB5EfRcZXbs2KG1a9fauwygQLacny4ulfMtqHPnznryySf1xx9/KD4+XhcvXlT16tV1ww036KGHHrKajB0AAAAAKpOrejJmAAAAAAAA/I05egAAAAAAABwEQQ8AAAAAAICDIOgBAAAAAABwEAQ9AAAAAAAADoKgBwAAAAAAwEEQ9AAAAAAAADgIgh4AAAAAAAAHQdADAAAAAADgIAh6AAAAAAAAHARBDwAAAAAAgIMg6AEAAAAAAHAQBD0AAAAAAAAOgqAHAAAA/9eOHcgAAAAADPK3vsdXGAEAE6IHAAAAYEL0AAAAAEyIHgAAAIAJ0QMAAAAwIXoAAAAAJkQPAAAAwIToAQAAAJgQPQAAAAATogcAAABgQvQAAAAATIgeAAAAgAnRAwAAADAhegAAAAAmRA8AAADAhOgBAAAAmBA9AAAAABOiBwAAAGBC9AAAAABMiB4AAACACdEDAAAAMCF6AAAAACZEDwAAAMCE6AEAAACYCIMKu2Co7xi4AAAAAElFTkSuQmCC", "text/plain": [ "<Figure size 1463.35x535.111 with 1 Axes>" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pub_result.metadata.composed_circuit.draw(\"mpl\", style=\"iqp\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Get the expected value\n", "\n", "The observable has to be specified in terms of virtual qubits. Therefore, there is no need to apply the layout that was used by the POVM on the physical qubits." ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Exact value: 1.9999999999999996\n", "Estimated value: 1.8706054687499996\n" ] } ], "source": [ "post_processor = POVMPostProcessor(pub_result)\n", "\n", "print(f\"Exact value: {exact_expectation_value}\")\n", "\n", "exp_value, std = post_processor.get_expectation_value(observable)\n", "print(f\"Estimated value: {exp_value}\")" ] } ], "metadata": { "kernelspec": { "display_name": ".venv", "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.12.2" } }, "nbformat": 4, "nbformat_minor": 2 }