From a03a63492948534522f574c97fb4e8da0ed9d8e4 Mon Sep 17 00:00:00 2001 From: Roland de Putter Date: Mon, 13 Apr 2026 12:41:34 -0400 Subject: [PATCH 1/2] Implemented logical memory experiment for repetition code and restructured tutorial to match template format - Added Learning outcomes section with 3 key outcomes - Added Prerequisites section with platform content references - Changed Step 1-4 headers to subsections (###) - Added job tagging (TUT-RC) for hardware execution - Added Next steps section with recommendations further cleanup further cleanup final updates of original tutorial workflow implemented logical memory experiment for repetition code added more documentation/explanation update to text little fixes for IBM Style ./fix spelling fix links tox -e fix + some typo fixes Fix the lint issues and some minor grammar and typo fixes. Update . to : for step headers removed survey --- docs/tutorials/repetition-codes.ipynb | 731 ++++++++++++------ .../extracted-outputs/0e8ea0be-0.avif | Bin 0 -> 36935 bytes .../extracted-outputs/67acea4f-0.avif | Bin 0 -> 42125 bytes .../extracted-outputs/67b55eef-0.avif | Bin 12956 -> 0 bytes .../extracted-outputs/67b55eef-1.avif | Bin 12956 -> 0 bytes .../extracted-outputs/72ad282b-1.avif | Bin 0 -> 10698 bytes .../extracted-outputs/dbe02949-0.avif | Bin 9703 -> 0 bytes .../extracted-outputs/dbe02949-1.avif | Bin 9703 -> 0 bytes 8 files changed, 504 insertions(+), 227 deletions(-) create mode 100644 public/docs/images/tutorials/repetition-codes/extracted-outputs/0e8ea0be-0.avif create mode 100644 public/docs/images/tutorials/repetition-codes/extracted-outputs/67acea4f-0.avif delete mode 100644 public/docs/images/tutorials/repetition-codes/extracted-outputs/67b55eef-0.avif delete mode 100644 public/docs/images/tutorials/repetition-codes/extracted-outputs/67b55eef-1.avif create mode 100644 public/docs/images/tutorials/repetition-codes/extracted-outputs/72ad282b-1.avif delete mode 100644 public/docs/images/tutorials/repetition-codes/extracted-outputs/dbe02949-0.avif delete mode 100644 public/docs/images/tutorials/repetition-codes/extracted-outputs/dbe02949-1.avif diff --git a/docs/tutorials/repetition-codes.ipynb b/docs/tutorials/repetition-codes.ipynb index 0213808d271..8140f33c373 100644 --- a/docs/tutorials/repetition-codes.ipynb +++ b/docs/tutorials/repetition-codes.ipynb @@ -15,17 +15,56 @@ "description: This tutorial demonstrates how to build basic repetition codes using IBM dynamic circuits, an example of basic quantum error correction (QEC).\n", "---\n", "\n", + "{/* cspell:ignore pcov REPCODE creference qreference csyndrome qsyndrome qdata fontsize ytick labelsize xtick */}\n", "\n", "# Repetition codes\n", - "*Usage estimate: less than 1 minute on a Heron processor (NOTE: This is an estimate only. Your runtime might vary.)*\n", + "*Usage estimate: less than 10 seconds on a Heron processor (NOTE: This is an estimate only. Your runtime might vary.)*" + ] + }, + { + "cell_type": "markdown", + "id": "4048d4c9", + "metadata": {}, + "source": [ + "## Learning outcomes\n", + "\n", + "After completing this tutorial, you can expect to understand the following information:\n", "\n", + "- How to implement a bit-flip error correction code using dynamic circuits\n", + "- How to measure stabilizers to detect quantum errors without destroying encoded information\n", + "- How to evaluate the performance of quantum error correction by comparing corrected and uncorrected results" + ] + }, + { + "cell_type": "markdown", + "id": "9012c057", + "metadata": {}, + "source": [ + "## Prerequisites\n", + "\n", + "It is recommended that you familiarize yourself with these topics:\n", + "\n", + "- [Dynamic circuits](/docs/guides/classical-feedforward-and-control-flow)\n", + "- [Quantum error correction fundamentals](https://arxiv.org/abs/0905.2794)" + ] + }, + { + "cell_type": "markdown", + "id": "0d182acd", + "metadata": {}, + "source": [ "## Background\n", "\n", "To enable real-time quantum error correction (QEC), you need to be able to dynamically control quantum program flow during execution so that quantum gates can be conditioned on measurement results. This tutorial runs the bit-flip code, which is a very simple form of QEC. It demonstrates a dynamic quantum circuit that can protect an encoded qubit from a single bit-flip error, and then evaluates the bit-flip code performance.\n", "\n", "You can exploit additional ancilla qubits and entanglement to measure *stabilizers* that do not transform encoded quantum information, while still informing you of some classes of errors that might have occurred. A quantum stabilizer code encodes $k$ logical qubits into $n$ physical qubits. Stabilizer codes critically focus on correcting a discrete error set with support from the Pauli group $\\Pi^n$.\n", "\n", - "For more information about QEC, refer to [Quantum Error Correction for Beginners](https://arxiv.org/abs/0905.2794)." + "\n", + "In this tutorial, we demonstrate the bit-flip code using a simple quantum memory experiment. We will prepare the encoded qubit in the logical state $|\\bar{1}\\rangle \\equiv |111\\rangle$ and then implement multiple cycles of idle time (to accrue errors) followed by error detection and correction. We then quantify the probability of a logical error as a function of the number of cycles (time), where the logical error probability is the probability of finding the qubits in a state that doesn't recover the $|\\bar{1}\\rangle$ after final measurement (concretely, states corresponding to an error are $|000\\rangle$, $|001\\rangle$, $|010\\rangle$, and $|100\\rangle$).\n", + "\n", + "We will compare the error rate versus time to the error rates of individual, unencoded qubits, and also to use of the repetition code where we only detect and correct errors after final measurement, but not dynamically during the circuit.\n", + "\n", + "Note: the repetition code only allows for correction of bit-flip errors and therefore is not a complete error correction code. However, because of its simplicity, it is a good starting point to illustrate how to implement error correction on a quantum computer. The memory experiment below only tests for a single type of error (a $|\\bar{1}\\rangle$ decaying to $|\\bar{0}\\rangle$) and technically only demonstrates the protection of classical information." ] }, { @@ -49,6 +88,29 @@ "## Setup" ] }, + { + "cell_type": "code", + "execution_count": null, + "id": "71cb35d9", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import seaborn as sns\n", + "import matplotlib.pyplot as plt\n", + "from scipy.optimize import curve_fit\n", + "\n", + "sns.set()\n", + "plt.rc(\"xtick\", labelsize=20)\n", + "plt.rc(\"ytick\", labelsize=20)\n", + "plt.rc(\"lines\", linewidth=3)\n", + "plt.rc(\"font\", size=20)\n", + "plt.rc(\"legend\", fontsize=\"large\")\n", + "plt.rc(\"axes\", labelsize=20)\n", + "plt.rcParams[\"figure.figsize\"] = 15, 6\n", + "plt.rcParams[\"legend.title_fontsize\"] = 25" + ] + }, { "cell_type": "code", "execution_count": null, @@ -69,7 +131,6 @@ "\n", "# Qiskit Runtime\n", "from qiskit_ibm_runtime import QiskitRuntimeService, SamplerV2 as Sampler\n", - "\n", "from qiskit_ibm_runtime.circuit import MidCircuitMeasure\n", "\n", "service = QiskitRuntimeService()" @@ -77,20 +138,42 @@ }, { "cell_type": "markdown", - "id": "4d01e8d3", + "id": "8af23cd0", "metadata": {}, "source": [ - "## Step 1. Map classical inputs to a quantum problem" + "### Step 1: Map classical inputs to a quantum problem" ] }, { "cell_type": "markdown", - "id": "cdee0b18", + "id": "02427c7e", "metadata": {}, "source": [ - "### Build a bit-flip stabilizer circuit\n", - "\n", - "The bit-flip code is among the simplest examples of a stabilizer code. It protects the state against a single bit-flip (X) error on any of the encoding qubits. Consider the action of bit-flip error $X$, which maps $|0\\rangle \\rightarrow |1\\rangle$ and $|1\\rangle \\rightarrow |0\\rangle$ on any of our qubits, then we have $\\epsilon = \\{E_0, E_1, E_2 \\} = \\{IIX, IXI, XII\\}$. The code requires five qubits: three are used to encode the protected state, and the remaining two are used as stabilizer measurement ancillas." + "#### Choose a backend\n", + "To detect errors during the circuit, we need to choose a backend that has access to the `MidCircuitMeasure` method (see the [documentation](/docs/guides/execute-dynamic-circuits#mid-circuit-measurements))." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1512c805", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[,\n", + " ,\n", + " ]" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# You can see all backends that support mid-circuit measurements by running the following code.\n", + "service.backends(filters=lambda b: \"measure_2\" in b.supported_instructions)" ] }, { @@ -98,54 +181,91 @@ "execution_count": null, "id": "b588703a", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "ibm_boston\n" + ] + } + ], "source": [ - "# Choose the least busy backend that supports `measure_2`.\n", + "# Choose the least busy backend that supports mid-circuit measurements (`measure_2`).\n", "\n", "backend = service.least_busy(\n", " filters=lambda b: \"measure_2\" in b.supported_instructions,\n", " operational=True,\n", " simulator=False,\n", " dynamic_circuits=True,\n", - ")" + ")\n", + "# backend = service.backend(backend_name) # alternatively, you could choose a specific backend\n", + "print(backend.name)" ] }, { - "cell_type": "code", - "execution_count": null, - "id": "606dff18", + "cell_type": "markdown", + "id": "09b920c2", "metadata": {}, - "outputs": [], "source": [ - "qreg_data = QuantumRegister(3)\n", - "qreg_measure = QuantumRegister(2)\n", - "creg_data = ClassicalRegister(3, name=\"data\")\n", - "creg_syndrome = ClassicalRegister(2, name=\"syndrome\")\n", - "state_data = qreg_data[0]\n", - "ancillas_data = qreg_data[1:]\n", + "#### Build a sequence of bit-flip stabilizer circuits implementing multiple rounds of error detection and correction\n", "\n", + "The bit-flip code is among the simplest examples of a stabilizer code. It protects the state against a single bit-flip (X) error on any of the encoding qubits. Consider the action of bit-flip error $X$, which maps $|0\\rangle \\rightarrow |1\\rangle$ and $|1\\rangle \\rightarrow |0\\rangle$ on any of our qubits, then we have $\\epsilon = \\{E_0, E_1, E_2 \\} = \\{IIX, IXI, XII\\}$. The code requires five qubits: three are used to encode the protected state (the \"data qubits\"), and the remaining two are used as stabilizer measurement ancillas.\n", "\n", - "def build_qc():\n", + "Below you will build circuits that (1) prepare the data qubits in the logical $|\\bar{1} \\rangle$ state, then (2) run multiple cycles of a $5 \\mu s$ delay followed by error correction (including reset of the syndrome qubits), and (3) read out the state of the data qubits.\n", + "\n", + "We will also test the lifetime of the $|1\\rangle$ state without using error correction by including three reference qubits that we prepare in the $|1\\rangle$ state, leave idle, and then read out." + ] + }, + { + "cell_type": "code", + "execution_count": 194, + "id": "d36817e7", + "metadata": {}, + "outputs": [], + "source": [ + "def build_qc(\n", + " qreg_data,\n", + " qreg_syndrome,\n", + " creg_data,\n", + " creg_syndrome,\n", + " qreg_ref=None,\n", + " creg_ref=None,\n", + "):\n", " \"\"\"Build a typical error correction circuit\"\"\"\n", - " return QuantumCircuit(qreg_data, qreg_measure, creg_data, creg_syndrome)\n", + " if qreg_ref:\n", + " return QuantumCircuit(\n", + " qreg_data,\n", + " qreg_syndrome,\n", + " creg_data,\n", + " creg_syndrome,\n", + " qreg_ref,\n", + " creg_ref,\n", + " )\n", + " else:\n", + " return QuantumCircuit(\n", + " qreg_data, qreg_syndrome, creg_data, creg_syndrome\n", + " )\n", + "\n", + "\n", + "def encode_bit_flip(circuit, qreg_data, qreg_ref=None) -> QuantumCircuit:\n", + " \"\"\"Encode bit-flip. This is done by simply adding a cx\"\"\"\n", "\n", + " for q in qreg_data:\n", + " circuit.x(q)\n", "\n", - "def initialize_qubits(circuit: QuantumCircuit):\n", - " \"\"\"Initialize qubit to |1>\"\"\"\n", - " circuit.x(qreg_data[0])\n", - " circuit.barrier(qreg_data)\n", - " return circuit\n", + " if qreg_ref:\n", + " for q in qreg_ref:\n", + " circuit.x(q)\n", "\n", + " circuit.barrier()\n", "\n", - "def encode_bit_flip(circuit, state, ancillas) -> QuantumCircuit:\n", - " \"\"\"Encode bit-flip. This is done by simply adding a cx\"\"\"\n", - " for ancilla in ancillas:\n", - " circuit.cx(state, ancilla)\n", - " circuit.barrier(state, *ancillas)\n", " return circuit\n", "\n", "\n", - "def measure_syndrome_bit(circuit, qreg_data, qreg_measure, creg_measure):\n", + "def measure_syndrome_bit(\n", + " circuit, qreg_data, qreg_syndrome, creg_syndrome, qreg_ref=None\n", + "):\n", " \"\"\"\n", " Measure the syndrome by measuring the parity.\n", " We reset our ancilla qubits after measuring the stabilizer\n", @@ -155,19 +275,21 @@ " avoid another round of qubit measurement if we used\n", " the `reset` instruction.\n", " \"\"\"\n", - " circuit.cx(qreg_data[0], qreg_measure[0])\n", - " circuit.cx(qreg_data[1], qreg_measure[0])\n", - " circuit.cx(qreg_data[0], qreg_measure[1])\n", - " circuit.cx(qreg_data[2], qreg_measure[1])\n", - " circuit.barrier(*qreg_data, *qreg_measure)\n", - " circuit.append(MidCircuitMeasure(), [qreg_measure[0]], [creg_measure[0]])\n", - " circuit.append(MidCircuitMeasure(), [qreg_measure[1]], [creg_measure[1]])\n", - "\n", - " with circuit.if_test((creg_measure[0], 1)):\n", - " circuit.x(qreg_measure[0])\n", - " with circuit.if_test((creg_measure[1], 1)):\n", - " circuit.x(qreg_measure[1])\n", - " circuit.barrier(*qreg_data, *qreg_measure)\n", + " circuit.cx(qreg_data[0], qreg_syndrome[0])\n", + " circuit.cx(qreg_data[1], qreg_syndrome[0])\n", + " circuit.cx(qreg_data[0], qreg_syndrome[1])\n", + " circuit.cx(qreg_data[2], qreg_syndrome[1])\n", + " circuit.barrier()\n", + "\n", + " for q_measure, c_measure in zip(qreg_syndrome, creg_syndrome):\n", + " circuit.append(MidCircuitMeasure(), [q_measure], [c_measure])\n", + "\n", + " with circuit.if_test((creg_syndrome[0], 1)):\n", + " circuit.x(qreg_syndrome[0])\n", + " with circuit.if_test((creg_syndrome[1], 1)):\n", + " circuit.x(qreg_syndrome[1])\n", + "\n", + " circuit.barrier()\n", " return circuit\n", "\n", "\n", @@ -179,61 +301,105 @@ " circuit.x(qreg_data[1])\n", " with circuit.if_test((creg_syndrome, 2)):\n", " circuit.x(qreg_data[2])\n", - " circuit.barrier(qreg_data)\n", + " circuit.barrier()\n", " return circuit\n", "\n", "\n", - "def apply_final_readout(circuit, qreg_data, creg_data):\n", + "def apply_final_readout(\n", + " circuit, qreg_data, creg_data, qreg_ref=None, creg_ref=None\n", + "):\n", " \"\"\"Read out the final measurements\"\"\"\n", - " circuit.barrier(qreg_data)\n", + "\n", + " circuit.barrier()\n", + " if qreg_ref:\n", + " circuit.measure(qreg_ref, creg_ref)\n", " circuit.measure(qreg_data, creg_data)\n", + "\n", " return circuit" ] }, { "cell_type": "code", "execution_count": null, - "id": "dbe02949", + "id": "0e8ea0be", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "\"Output" + "\"Output" ] }, - "execution_count": 5, + "execution_count": 195, "metadata": {}, "output_type": "execute_result" - }, - { - "data": { - "text/plain": [ - "\"Output" - ] - }, - "metadata": {}, - "output_type": "display_data" } ], "source": [ - "def build_error_correction_sequence(apply_correction: bool) -> QuantumCircuit:\n", - " circuit = build_qc()\n", - " circuit = initialize_qubits(circuit)\n", - " circuit = encode_bit_flip(circuit, state_data, ancillas_data)\n", - " circuit = measure_syndrome_bit(\n", - " circuit, qreg_data, qreg_measure, creg_syndrome\n", + "def build_error_correction_sequence(\n", + " num_cycles, cycles_per_circuit, nq_ref=3, delay=None\n", + ") -> QuantumCircuit:\n", + " circuits = []\n", + " reps = []\n", + "\n", + " qreg_data = QuantumRegister(3, name=\"qdata\")\n", + " qreg_syndrome = QuantumRegister(2, name=\"qsyndrome\")\n", + " creg_data = ClassicalRegister(3, name=\"cdata\")\n", + " creg_syndrome = ClassicalRegister(2, name=\"csyndrome\")\n", + " qreg_ref = QuantumRegister(nq_ref, name=\"qreference\")\n", + " creg_ref = ClassicalRegister(nq_ref, name=\"creference\")\n", + "\n", + " circuit = build_qc(\n", + " qreg_data,\n", + " qreg_syndrome,\n", + " creg_data,\n", + " creg_syndrome,\n", + " qreg_ref=qreg_ref,\n", + " creg_ref=creg_ref,\n", " )\n", + " circuit = encode_bit_flip(circuit, qreg_data, qreg_ref=qreg_ref)\n", "\n", - " if apply_correction:\n", + " circuit_n = circuit.copy()\n", + " circuit_n = apply_final_readout(\n", + " circuit_n, qreg_data, creg_data, qreg_ref=qreg_ref, creg_ref=creg_ref\n", + " )\n", + " circuits.append(circuit_n)\n", + " reps.append(0)\n", + "\n", + " for i in range(1, num_cycles + 1):\n", + " if delay:\n", + " circuit.delay(delay, unit=\"us\")\n", + " circuit.barrier()\n", + " circuit = measure_syndrome_bit(\n", + " circuit,\n", + " qreg_data,\n", + " qreg_syndrome,\n", + " creg_syndrome,\n", + " qreg_ref=qreg_ref,\n", + " )\n", " circuit = apply_correction_bit(circuit, qreg_data, creg_syndrome)\n", - "\n", - " circuit = apply_final_readout(circuit, qreg_data, creg_data)\n", - " return circuit\n", - "\n", - "\n", - "circuit = build_error_correction_sequence(apply_correction=True)\n", - "circuit.draw(output=\"mpl\", style=\"iqp\", cregbundle=False)" + " circuit_n = circuit.copy()\n", + " if i % cycles_per_circuit == 0:\n", + " circuit_n = apply_final_readout(\n", + " circuit_n,\n", + " qreg_data,\n", + " creg_data,\n", + " qreg_ref=qreg_ref,\n", + " creg_ref=creg_ref,\n", + " )\n", + " circuits.append(circuit_n)\n", + " reps.append(i)\n", + "\n", + " return circuits, np.array(reps)\n", + "\n", + "\n", + "num_cycles = 40\n", + "cycles_per_circuit = 4\n", + "nq_ref = 3\n", + "circuits, rep_array = build_error_correction_sequence(\n", + " num_cycles, cycles_per_circuit, nq_ref=3, delay=5\n", + ")\n", + "circuits[1].draw(output=\"mpl\", cregbundle=False, fold=50)" ] }, { @@ -241,9 +407,9 @@ "id": "609c0c47", "metadata": {}, "source": [ - "## Step 2. Optimize the problem for quantum execution\n", + "### Step 2: Optimize the problem for quantum hardware execution\n", "\n", - "To reduce the total job execution time, Qiskit primitives only accept circuits and observables that conforms to the instructions and connectivity supported by the target system (referred to as instruction set architecture (ISA) circuits and observables). [Learn more about transpilation](/docs/guides/transpile)." + "To reduce the total job execution time, Qiskit primitives only accept circuits and observables that conform to the instructions and connectivity supported by the target system (referred to as instruction set architecture (ISA) circuits and observables). [Learn more about transpilation](/docs/guides/transpile)." ] }, { @@ -256,155 +422,223 @@ } }, "source": [ - "### Generate ISA circuits" + "#### Generate ISA circuits" + ] + }, + { + "cell_type": "markdown", + "id": "cc8f818f", + "metadata": {}, + "source": [ + "We will start by finding an initial layout (as in, a selection of physical qubits to map our circuits to) by transpiling the longest of our circuits using the preset pass manager with optimization level 3." ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 196, "id": "67b55eef", "metadata": { "slideshow": { "slide_type": "-" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "\"Output" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "text/plain": [ - "\"Output" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager\n", "\n", - "pm = generate_preset_pass_manager(backend=backend, optimization_level=1)\n", - "isa_circuit = pm.run(circuit)\n", - "\n", - "isa_circuit.draw(\"mpl\", style=\"iqp\", idle_wires=False)" + "pm = generate_preset_pass_manager(backend=backend, optimization_level=3)\n", + "isa_circuit_ref = pm.run(circuits[-1])" ] }, { "cell_type": "code", - "execution_count": 7, - "id": "67acea4f", + "execution_count": 197, + "id": "3e74193a", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[56, 44, 62, 43, 63, 22, 48, 67]\n" + ] + } + ], "source": [ - "no_correction_circuit = build_error_correction_sequence(\n", - " apply_correction=False\n", + "init_layout = isa_circuit_ref.layout.initial_index_layout(\n", + " filter_ancillas=True\n", ")\n", - "\n", - "isa_no_correction_circuit = pm.run(no_correction_circuit)" + "print(init_layout)" ] }, { "cell_type": "markdown", - "id": "bcd61a1f", + "id": "eaca173c", "metadata": {}, "source": [ - "## Step 3. Execute using Qiskit primitives" + "For the reference qubits that we will compare our logical quantum memory to, we will choose them to be the best available qubits in terms of amplitude damping coherence time ($T_1$)." ] }, { - "cell_type": "markdown", - "id": "e68d10d2", + "cell_type": "code", + "execution_count": null, + "id": "2aedd3cb", "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[56, 44, 62, 43, 63, 143, 131, 31]\n" + ] + } + ], "source": [ - "Run the version with correction applied and one without correction." + "# get all qubits ordered by T1\n", + "t1_data = []\n", + "for i in range(backend.num_qubits):\n", + " try:\n", + " t1_us = backend.properties().t1(i) * 1e6\n", + " except Exception:\n", + " t1_us = 0.0\n", + " t1_data.append((i, t1_us))\n", + "\n", + "t1_data_sorted = sorted(t1_data, key=lambda x: x[1], reverse=True)\n", + "\n", + "# exclude the qubits we have already mapped the error correcting code to\n", + "t1_data_sorted = [\n", + " t1_data for t1_data in t1_data_sorted if t1_data[0] not in init_layout[:5]\n", + "]\n", + "\n", + "# use the best qubits in terms of T1 for the reference qubits\n", + "init_layout = init_layout[:5] + [t1_data[0] for t1_data in t1_data_sorted[:3]]\n", + "print(init_layout)" ] }, { "cell_type": "code", "execution_count": null, - "id": "d53319ba", + "id": "d6a7766a", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Amplitude damping decoherence times code data qubits:\n", + "qubit 56: T1 = 322 mus\n", + "qubit 44: T1 = 263 mus\n", + "qubit 62: T1 = 290 mus\n", + "\n", + "Amplitude damping decoherence times reference qubits:\n", + "qubit 143: T1 = 442 mus\n", + "qubit 131: T1 = 410 mus\n", + "qubit 31: T1 = 401 mus\n" + ] + } + ], "source": [ - "sampler_no_correction = Sampler(backend)\n", - "job_no_correction = sampler_no_correction.run(\n", - " [isa_no_correction_circuit], shots=1000\n", - ")\n", - "result_no_correction = job_no_correction.result()[0]" + "# These are the resulting T1 times\n", + "properties = backend.properties()\n", + "print(\"Amplitude damping decoherence times for code data qubits:\")\n", + "for q in init_layout[:3]:\n", + " t1 = properties.t1(q)\n", + " print(f\"qubit {q}: T1 = {t1 * 1e6:.0f} mus\")\n", + "\n", + "print(\"\\nAmplitude damping decoherence times for reference qubits:\")\n", + "for q in init_layout[-3:]:\n", + " t1 = properties.t1(q)\n", + " print(f\"qubit {q}: T1 = {t1 * 1e6:.0f} mus\")" ] }, { "cell_type": "code", "execution_count": null, - "id": "df7421d0", - "metadata": { - "slideshow": { - "slide_type": "-" - } - }, + "id": "ee5da865", + "metadata": {}, "outputs": [], "source": [ - "sampler_with_correction = Sampler(backend)\n", - "\n", - "job_with_correction = sampler_with_correction.run([isa_circuit], shots=1000)\n", - "result_with_correction = job_with_correction.result()[0]" + "# now we transpile all circuits to this initial layout; this way each circuit is run on the same qubits and we can make a fair comparison\n", + "pm = generate_preset_pass_manager(\n", + " backend=backend,\n", + " optimization_level=3,\n", + " initial_layout=init_layout,\n", + ")\n", + "isa_circuits = pm.run(circuits)" ] }, { "cell_type": "code", - "execution_count": 10, - "id": "1cba37f5", + "execution_count": 180, + "id": "67acea4f", "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "Data (no correction):\n", - "{'111': 878, '011': 42, '110': 35, '101': 40, '100': 1, '001': 2, '000': 2}\n", - "Syndrome (no correction):\n", - "{'00': 942, '10': 33, '01': 22, '11': 3}\n" - ] + "data": { + "text/plain": [ + "\"Output" + ] + }, + "execution_count": 180, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ - "print(f\"Data (no correction):\\n{result_no_correction.data.data.get_counts()}\")\n", - "print(\n", - " f\"Syndrome (no correction):\\n{result_no_correction.data.syndrome.get_counts()}\"\n", - ")" + "isa_circuits[1].draw(\"mpl\", cregbundle=False, fold=50)" + ] + }, + { + "cell_type": "markdown", + "id": "bcd61a1f", + "metadata": {}, + "source": [ + "### Step 3: Execute using Qiskit primitives" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d53319ba", + "metadata": {}, + "outputs": [], + "source": [ + "sampler = Sampler(mode=backend)\n", + "\n", + "sampler.options.environment.job_tags = [\"TUT-REPCODE\"]\n", + "sampler.options.max_execution_time = 600 # this workload is expected to be under 10s, but it is generally a good habit to set a max execution time (here 600s = 10m)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "437397a5", + "metadata": {}, + "outputs": [], + "source": [ + "job = sampler.run(isa_circuits, shots=1000)\n", + "print(job.job_id())" ] }, { "cell_type": "code", - "execution_count": 11, - "id": "7b7697f2", + "execution_count": 201, + "id": "b1025c42", "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "Data (corrected):\n", - "{'111': 889, '110': 25, '000': 11, '011': 45, '101': 17, '010': 10, '001': 2, '100': 1}\n", - "Syndrome (corrected):\n", - "{'00': 929, '01': 39, '10': 20, '11': 12}\n" - ] + "data": { + "text/plain": [ + "'DONE'" + ] + }, + "execution_count": 201, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ - "print(f\"Data (corrected):\\n{result_with_correction.data.data.get_counts()}\")\n", - "print(\n", - " f\"Syndrome (corrected):\\n{result_with_correction.data.syndrome.get_counts()}\"\n", - ")" + "job.status()" ] }, { @@ -412,114 +646,157 @@ "id": "1b652319", "metadata": {}, "source": [ - "## Step 4. Post-process, return result in classical format\n", + "### Step 4: Post-process and return result in desired classical format\n", "\n", - "You can see that the bit flip code detected and corrected many errors, resulting in fewer errors overall." + "We will now compare the error rates vs. time between the logical memory using the 3-qubit repetition code on the one hand, and the individual unencoded reference qubits on the other hand." ] }, { "cell_type": "code", - "execution_count": 12, - "id": "fa59fb42", - "metadata": { - "slideshow": { - "slide_type": "-" - } - }, + "execution_count": 202, + "id": "ea871eb9", + "metadata": {}, "outputs": [], "source": [ - "def decode_result(data_counts, syndrome_counts):\n", - " shots = sum(data_counts.values())\n", - " success_trials = data_counts.get(\"000\", 0) + data_counts.get(\"111\", 0)\n", - " failed_trials = shots - success_trials\n", - " error_correction_events = shots - syndrome_counts.get(\"00\", 0)\n", - " print(\n", - " f\"Bit flip errors were detected/corrected on {error_correction_events}/{shots} trials.\"\n", - " )\n", - " print(\n", - " f\"A final parity error was detected on {failed_trials}/{shots} trials.\"\n", - " )" + "results = job.result()" ] }, { "cell_type": "code", - "execution_count": 13, - "id": "5b1ff3a3", + "execution_count": null, + "id": "f27099e5", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Completed bit code experiment data measurement counts (no correction): {'111': 878, '011': 42, '110': 35, '101': 40, '100': 1, '001': 2, '000': 2}\n", - "Completed bit code experiment syndrome measurement counts (no correction): {'00': 942, '10': 33, '01': 22, '11': 3}\n", - "Bit flip errors were detected/corrected on 58/1000 trials.\n", - "A final parity error was detected on 120/1000 trials.\n" - ] - } - ], + "outputs": [], "source": [ - "# non-corrected marginalized results\n", - "data_result = result_no_correction.data.data.get_counts()\n", - "marginalized_syndrome_result = result_no_correction.data.syndrome.get_counts()\n", + "def correct_counts(counts_dict):\n", + " \"\"\"\n", + " Corrects the measured logical qubit encoded in the repetition code using majority vote\n", + " \"\"\"\n", "\n", - "print(\n", - " f\"Completed bit code experiment data measurement counts (no correction): {data_result}\"\n", - ")\n", - "print(\n", - " f\"Completed bit code experiment syndrome measurement counts (no correction): {marginalized_syndrome_result}\"\n", - ")\n", - "decode_result(data_result, marginalized_syndrome_result)" + " result = {\"000\": 0, \"111\": 0}\n", + " for bitstring, count in counts_dict.items():\n", + " key = \"111\" if bitstring.count(\"1\") > 1 else \"000\"\n", + " result[key] += count\n", + " return result\n", + "\n", + "\n", + "accuracy = [] # logical qubit\n", + "accuracies_ref = np.zeros(\n", + " (len(results), nq_ref)\n", + ") # accuracies on individual reference qubits\n", + "\n", + "for n, pub_result in enumerate(results):\n", + " # logical accuracy (one minus error probability) for active error correction with repetition code\n", + " counts = pub_result.data.cdata.get_counts()\n", + " shots = sum(counts.values())\n", + " counts_corrected = correct_counts(counts)\n", + " accuracy.append(counts_corrected.get(\"111\", 0) / shots)\n", + "\n", + " # accuracy for individual physical reference qubits without any error correction\n", + " for i in range(nq_ref):\n", + " counts = pub_result.data.creference.slice_bits(i).get_counts()\n", + " accuracies_ref[n, i] = counts.get(\"1\", 0) / shots\n", + "\n", + "accuracy = np.array(accuracy)" ] }, { "cell_type": "code", - "execution_count": 14, - "id": "7f1c2d48", + "execution_count": null, + "id": "72ad282b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Completed bit code experiment data measurement counts (corrected): {'111': 889, '110': 25, '000': 11, '011': 45, '101': 17, '010': 10, '001': 2, '100': 1}\n", - "Completed bit code experiment syndrome measurement counts (corrected): {'00': 929, '01': 39, '10': 20, '11': 12}\n", - "Bit flip errors were detected/corrected on 71/1000 trials.\n", - "A final parity error was detected on 100/1000 trials.\n" + "Best-fit effective T1 = 1397 us\n" ] + }, + { + "data": { + "text/plain": [ + "\"Output" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ - "# corrected marginalized results\n", - "corrected_data_result = result_with_correction.data.data.get_counts()\n", - "corrected_syndrome_result = result_with_correction.data.syndrome.get_counts()\n", + "def error_proba_t1(N, t1):\n", + " \"\"\"\n", + " Exponential fitting function for amplitude damping vs. number of cycles\n", + " \"\"\"\n", + "\n", + " t_cycle = 7.3e-6 # approximate time per cycle = 5 mus delay + 2.3 mus for error correction\n", + " return 1 - np.exp(-t_cycle * N / t1)\n", "\n", - "print(\n", - " f\"Completed bit code experiment data measurement counts (corrected): {corrected_data_result}\"\n", + "\n", + "fig, ax = plt.subplots(1, 1, figsize=(15, 5))\n", + "ax.plot(\n", + " rep_array, (1.0 - accuracy) * 100.0, \"ko-\", linewidth=3, label=\"rep code\"\n", ")\n", - "print(\n", - " f\"Completed bit code experiment syndrome measurement counts (corrected): {corrected_syndrome_result}\"\n", + "\n", + "for i in range(nq_ref):\n", + " accuracy_1q = accuracies_ref[:, i]\n", + " if i == 0:\n", + " ax.plot(\n", + " rep_array,\n", + " (1.0 - accuracy_1q) * 100.0,\n", + " \"go-\",\n", + " linewidth=1,\n", + " label=\"1q reference\",\n", + " )\n", + " else:\n", + " ax.plot(rep_array, (1.0 - accuracy_1q) * 100.0, \"go-\", linewidth=1)\n", + "\n", + "params_bf, pcov = curve_fit(\n", + " error_proba_t1, rep_array, 1.0 - accuracy, bounds=([0, 5e-3])\n", ")\n", - "decode_result(corrected_data_result, corrected_syndrome_result)" + "t1_bf = params_bf[0]\n", + "print(f\"Best-fit effective T1 = {t1_bf * 1e6:.0f} us\")\n", + "error_prob_bf = error_proba_t1(\n", + " rep_array, t1_bf\n", + ") # np.array([1 - np.exp(-t_cycle * nt/t1) for nt in rep_array])\n", + "ax.plot(rep_array, error_prob_bf * 100.0, \"k--\", linewidth=1)\n", + "\n", + "ax.set_xlabel(\"error correction rounds\")\n", + "ax.set_ylabel(\"error [%]\")\n", + "ax.set_ylim(bottom=0)\n", + "ax.legend(fontsize=15);" ] }, { "cell_type": "markdown", - "id": "b66026c4", + "id": "49c2f443", "metadata": {}, "source": [ - "## Tutorial survey\n", + "We clearly see an improved lifetime of the $|\\bar{1}\\rangle$ state, even compared to the best (unencoded) physical qubits. However, keep in mind that this experiment just corrects one type of error, namely bit-flips. Can you improve the lifetime of the logical qubit? You might want to explore optimizing the delay time, scaling up the size of the repetition code beyond $n=3$, etc." + ] + }, + { + "cell_type": "markdown", + "id": "next_steps", + "metadata": {}, + "source": [ + "## Next steps\n", + "\n", + "If you found this work interesting, you might be interested in the following material:\n", + "\n", + "\n", "\n", - "Please take this short survey to provide feedback on this tutorial. Your insights will help us improve our content offerings and user experience.\n", + "- [Foundations of quantum error correction course](/learning/courses/foundations-of-quantum-error-correction) - learn more about quantum error correction\n", + "- [Low-overhead error detection with spacetime codes tutorial](/docs/tutorials/ghz-spacetime-codes) - learn how to use Pauli checks to detect errors and post-select samples\n", "\n", - "[Link to survey](https://your.feedback.ibm.com/jfe/form/SV_5onAlfA2Y7ac1FA)" + "" ] } ], "metadata": { "celltoolbar": "Slideshow", "kernelspec": { - "display_name": "Python 3", + "display_name": "qiskit_plus", "language": "python", "name": "python3" }, @@ -533,7 +810,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3" + "version": "3.12.9" } }, "nbformat": 4, diff --git a/public/docs/images/tutorials/repetition-codes/extracted-outputs/0e8ea0be-0.avif b/public/docs/images/tutorials/repetition-codes/extracted-outputs/0e8ea0be-0.avif new file mode 100644 index 0000000000000000000000000000000000000000..4926528d8da6d069e9d3f6e7c2fa1ae0dd1fc552 GIT binary patch literal 36935 zcmYJaQY2isT}{NsT3HYUyn|Iz;$p}DcOC;))T|MLIBokCjS8d z0I>h258?R_AlO^DTl_}>hJb+h=l;KZoc~Dwy7*rV@IMg_0~dGU|Hv+mwp=#$CT9N~ zgt&|>jO@9bJe-_OY@E3MmE1&2p9keBp3)Z z^q+ub;b`)|Hvc{DU$OOn7wBJ;v0XOC2F^$TP|(<1g4?0QrSDZe~7*bP&Cw}XHwWN%#vRCIC zdB+IJkAhKe4zlAYbc|k{$!zvvj+z6&j>6-#r#hcXP-f8r{1|R7@`hW8w~N68CGO(l5M)!XAVS-z z^<|H=mu(jX&ze0i*U?QRf-G&y5xXvVV|*u=`A0&#kSHwpu_!Io9Rugg z96#;gVF&H^M$k#4*Og8Yn+p?~>1@YE0Fs^LR_NQJ;s zlq`VW;Vu}yb`Jbb+9;tRhL)W2wi89Ks`YV3%Ah4hx3bw;Rb2HL3YZ>fm8 z`!>UZf}nqGcE`DUi+(rLYA?@YwYl*wkz9 z#P55k^Yn_G(tbl1KA5|{;N~iU@{u_NKbnd0*-W(z?~yNhax)1kNE&uptXu9zd1YpUD>uoXr z{q0b7B9UT-QFC4>;i04}5bO!yo|i$}Velxjd+y0m;}YQfmaO&}`voNDIajsZc928O zQ_X(eNNrNAWy0`lYCgx59dnso&;qb^)_&Jyw5cIdte|R>_DG&9D(RtfAIBF|c1KWW z`n@6!4rF51Y|9>gW&-WO4+Os0;Rnn)o#Z3}3eHO6R}F3bCAUAfS$F~D2BH!cv6mp1 zW>dytf!o1CQL67(hjP{VAF?#bGN6XxaUWx;K0uRXDtSiUPA`I23H&LF36@(O6g5Rb z7w5QTr~IA|es;Pz&}FQmn6Y0QLCI)>UIz8nDZ_kwx`=aVDfh2maS)Y@Qj z;2oER+anmY#&kPculh)P&nOayN;eQ<${Eb>MzV(&S*yydk9M6IO2IMrNuRm^@Bv#MIK;1lSx#5w&wV(U^AlBEj| ziEvnM1w|ESdWCEIk9S%EaRDd*q?(@oh&%BFC40F&*>qm$Gd>I&uQ7xz0w3Ym<7S(| z5}og_f{rH{LlG63c^x;reJe?m+wp8@$6KIUSFhNhFBnM}U5Eg4;jw;7-w{KhMga1~ zmPK0Z?9lXW>X552w`Q1nII6ZnO0SJR_uH!;T3(TwRcAOd>6O(ndYC56474jdw4+Gb z{F~w8zbXX=EZLOA%XZXci!)98P$+CYxkxNuo@gooocb_=YmjXTBJ(t^i?1jLPwM4S z5GU@9lfj;x*msVlpk;>Jg0bPA=OD^I+%W{*rSH=ePQt9TMH<&8_c&RoL}F!mxHDhp zK!fm{A%c_0{)>p3?bH&sSL`6mDs8Z0tpk#-2NyP3&lQxA`L%rwbRfC?rIi4NwLwb8 z?$LB&xr?*%zk*t#!4-bI18Z8Il(o|7KeQTyBrW>2GS2|W~eVk@gDApV5H5h)4W$Mk?u1=V6;FhA%7Zn>s z14FLVoT*_04Lz`nNDNNnodmA1sp}94BGAZ;kZochu3M6NYC>Sq;ZdImbx}Uiz5EFw zCR1N2@^=NiSdZS&Z!XTt0&g`vXCi1H%UdpP0`yYg*a)Rsv=mHLr= zhv=AH5ANVfjfU<&iM|=?N|ZUg`|#9@q#d(yr2t37lh(%rQrQIEI6|zH3Ua^<^&jd4 znc+W|8-2Ul%=46v{T;gXBXL{q9Ia1aI6`z$yLfQD6wG`8Jv$6aJ#lEz<$*{)Bwfbc z7^0-^iJwpT8dA0ppSB2JV2)}^kKf#mXT}VMD|Ce<6lUVoN}mjbMhUiWfrRsP*xYHa z_#Iibf;*u30vThFU9aZ!JkuT{%J=9doG=oi&1mz!pkimx zL7J0JJ-sH6G)G3XZJT>1G~|htFNP;IT+`J4mIGtDMbOv*iQ*UBo;+OtSl?TcNO|I4 zjz{UW`~6vtC&018hkjjW-JFizAma2SL3;pzPPwG^*%8$jHMb2d6-Jc5 zeZPBZA8M{hH4rM8=K)ky10K|7YTsHB!Tk#BuA58Hy5ZJ&#}Z{e#o#a;suP;~<-}~* z*@q1ZGM+(H?)(lU_>o9dGRt(38Q?n55&%QL;C*}UZsXVJ7{376yBux=1}9UOJLvT^ zeqjd0&u`CT73jTjOjP3|{!lU*DCe#d^s<5}GTC*Jzq-hGEp(tduRz&s#6% zVo|-4ctHWDM+oyb(qbRj&1!`zEOMyN@k&kM1*8R^wV^17OB<)q!T@o%w?!ygI#tTa zsJd(x}DRLH9mGjVI?u_?FP z8~0}kjyOb()!S(TvZu{Cc_$V zVi;mj8>h0#5j|ynjZR#@OV$#=n`-A!288=bVuvprwx5O_E!}}tTVOR~}+IDcI3&ZFb zEHB|Eft@WMLo#x_dK0KB3v1wHC?~gOi7LfE29%{t1cvR9ipF6of6fiD^GHbLL$OHn zFYqAKM%*a1Lzb%V>&v`6ic$Gu-x8Lbvc?Upy^ed}x5g#516-e3(*{K%ml=Js?V_%q zbyN03hXuykJ>Wj-_!H#Dls(l@>Uy`K;d07rgGUxO zI(rXVY$#nEe5Khm03PENGJtMkJ?)G1aSZS1p2N#1APR>y%9WjL2$sxDV2lQS7}UiZ zDV5=fMW(6M6_NHS!m2}Dp!IB(oh#oTpLw&`wSMdm@rZwWyFb!oDA)lTS0LTl85w52 zKMSMU*8UzDB0Ffj5bfMHL6Z`FuUPxTBpciFGGMm3FN#)pRH*9Vqjy7}R{C%zXiXMG%cEG}gP~W|uOf-Y2^{wrMNcVn8ZYu4*5SS=hkmI=k&N5V) zF9+i8PC;;V_T{2l0ENXQ7bXn$`eg;^DfQB)U}(hCAnx}8>%Rd~ix`PWNznrG4T$X} z_T39tQJ`HuU(!-THXSdP6jVnz@h#8y z!itb5Q?)|+gFNUpH)Ata$X`Kue3;I4w&`=1JAPu!#)9As@&O!=4_%GQ3gp6I;`Wt``>D=m%zC-L_04^iEa?e2yX z7$L{hcM9g6B_sY)#7Q48nFi?9c5AKQtd4jzs;)9W&c5N_GWDXov2OyEw*F4 z3qZ3>HbTu0IOUtS_sx$TC63l(k9C;_;*2(u@~El~kv+se*3F#l1!q!gjleJBv-)yw zoX%pH3H{Z06OJC}X_HGSq0dCT#iGNA_+Xxz)5%<6ER$-kObNuU6sZHo#eer8yX4gZ zgI@fwak<7@Y8{TSbQ{IkD0NN7A;+ZH`BRA9Ls^~em&HALsX-JO`S3OZ)M|goVS$3F z!aDr#TLAPl%YdF^`bOkB58ZI2PP7)h^$5xt#`QbkcRXNY@Xf@|;0T0%A|9vo#7+_G zp#}jk^AwI`2N_9M6xJpOyRDUotj|&7ph{bERnKU0uKDQD-C`sN9AipBRs4(CSE={H$^Ne8X4TpGmOJEqfwV)2 zY9wg|hZ<<((~l(3j@|An{7U%kg(=|5OKoOvF~Fl1EMKhQvOM6*z5J>0hz74WyBCjwGb%VqfHnBKcIuq z0{Qa#V(|%Wn<*2dUyJgL`0& z8#u>Z6=j1i|7K9F5xqg1EK<=GQl?akg^s9hT+pf9iD|UAogLL&0AMqG2WX+r>z_=E zv7@5O)F__Hx=<;N4fBV6q7cBM*PyjK$fC_s&Tr96aiD@XaESi ziYOBPNzs~R@tkV*Vu;xO=yh5`KCvXSQF!jlwlY`P5+QyKYZX;V_zcUaz6QXrKEIUA zMI_b@A94y!mdTU#(yqK~Tu`zlD3TyuA^mDL&K1_b+#`LaweKO&&zc_w^PNOVyyv7ilqoBGK4DJ9t!G2gB?3#up@r~s6%Lna-7I}EM7Hbu&h8_ zn)E<`toT+%9954)Ra}1Sw@h8PaB>PNB4><%IhZ9q2$(s3S$6h!CMIa(Ios|jO($bZ z>}tbG>Af)@$KjZKC$V3Kg}Xowe^ii*_{5f$VKU%w5-3@X;u`g&vHAU$1g{m~49(*d z?(<{k?#AjwFqNy)I-;?$+jgBpP<*JRd)W=M1TYyZk8ldvBCpC3pSk)cnj zbZxbF4PYq(d~v+LeHM>)L&@*R#XmPC!YHg`N9YZQELEgll?kbC7O#}C=gc4piy70~_*w&p;19IQCoL(MOGz7Bek?<}J!pCy<=YSD5hQdWZ5sEO}#B~0|c zQ2>7F$qNd2dffsoT(~Tk!Trn|n2PvDvV^KX2;#@`0iz+0cKo@>F7TM~1g^}U{bRUw zI{U043PhdlP!tc!2}>P$P8XsNz771IbmyI{+8F^o5k&Xftw6@6LWKN0hTT?Lb7HK{rVSl_H1%!6R1oM+>L0qT^79=*Ps# z_Ve|IfZQfH@KjkI#N|zwfZDCC==Z{SFsabDRA{mdT=0D zykG8uEd-jsJWP4Uap3TE6_7YT=+#4zLS0a57F?rK>6Q7t3iHGzdWS?rDDlSHU99NO9+Sto^>-QKK*Dj`lya(AaB-Zz{@p_(0vp zU92TnISY?VRMx1N$A@fi1unE{clH~)2O?2A4YpR_Hn)$EY2r- zj+eVB8;JYmZ|bVHeDAcJqbOU*WJ-xsfOkw-x$_W+i~)H2vEi+4X2L{-_m_d3Jn!O@ zVp%v69Gi)NNi`ZZlDqslC%d2{p`EWFbxnAtab9Wa{Y_qYZ0GlLn-dQ2@&&@cPwAcI z{)|F7hD{MHT-l$$?n+S+f z66>@RyK(G-wEpVFWi3IA9BEUjuH1HW3(w=e7p*^;*T3xo_q#X*eNNqPr32Y5x^TRh zV>JfF#G5B0|QdH`@kz+BU{Y906Ca6$TbRh!sS>{XQ@BN9f^Iy||)mmgj^X_iEf zfK*G&YDDNyHia?-)=VPy4;y?%4#?*go)Ll=%BF=H@VoF|0{+E`j`~B(x(BIC_6?va zmF5Pj`Z2^UMg*Qy(j-~BK1k~&Yd4ln$ox+xE>s@QR2qI{0lC7gGHI>hvBhtk)nW!q z9hqYvUY$?r{M2-(LJQ9 zS1FwVk9LO(Vt%-PFdnVcjv|>{l|z~|=tTzxC3M-?!Q?oT{78G&>8cmicz&FVwaZ6Nh(v4NnE}gkjOLFKKr|riJ z%4l+Nf0^=j3)2~ur50pf$@i@t!?d4|>Q#2$$R+zzXCcC8f`a2^x$e5f^opdulTnR& zdcOT0g_hxxLh&js^^M!z*fUZmzR&sg3=`6Q)x+@rZ4#8Ezp$C6wfI4#v_2bopU=25 zGp*&k9G#35*7cS!+FV=kiNrW*{Y;{1C<1J?*J+9wJdyH7!3Si3|N5VJ1UuNH_}X2B z+|5(nGPw03vVmo}je~mres3p!WM{MwqR5WfLZVI2++onMx$)azfIvE>j?sh}Nmd)_ zQg_t7KIR^=S#_SSy1&C z=hK)=@zPBUS1Bx*fvz}5Fd2b3~ z1$W>1GPzT( zT|?q*;S~_Pcs7>>xnz1b18C77^=)Z#`4R47 zVQknF)lqLJnp0Y$u2=FoAa+7WN`mLjDk%}N5za1?S4jJFiCY2zr4BJLGV&I0v!!1z z0vj6Xp;g0L&bWB9(8^Gd-?yhCJED-9hiOj5IzX{c?*85|+H&;TF>P?F&F)BP)XwNhDvVzSqvO|@sS@Pw+2i1#6DFDH*4W}k*Ve)F zv&cRz+82Qdr5BAh$v!6_VECt*-b0kfA6~oI*YG{7lw`?7wyhs*Zw~a3FShA}fUXa1 zt|-uZ&n_@D^@vaPweN=9VKO>$NIN9BgyAp@fVU3IOb~X=)nOQJznX3=nB%;oK04|Y zVcbIoSO>a--z%jVuy_uxiq+1Y0N0-c>*9m`SGd$kC%-vM?@_1{J`wkg`Hkt@(|$f` z)v_5f3(19^VSLQQun2}Wp^k&^JX3B8hEC`vy#!3IS|wPDC++~%VfvI^Y;}ham~1)p zTqLJ5u}D!y3}2%4wxSOma^way72yYeGvrX!KwV_o9<1X~eJN)G68SIk~N(KPknE@s~kQo8Y_S4D0VayKN zYlkGs+N7J?m8l%Ji<4H{+A&L@;6sePX}qXnsE(x@-YEry3GkNJ5sj$o!b(nn-#r@h zNYp{x?-!7}2+}QKG?p`c)QL~u4gwoi%1bnqR_mOhu#A|UE>a!#A04;me|QUpXpb2*qZf&AYrbZEsbsNVy+ z!Nc4gCPhf_4tg_PLn zZWulI0w|A69P>pf>*G6hSP?nSFx5jVQ}P!BrWP=VkEmJ%O~x|r!4;oJ*Dc6ZHhr)% z&A<2ML``T)ln*=v>KBvpXf%{?`Cf)#&aFsCl%iaZ-kfg4rOgVlf-h^>cCNf1SUlR~ zjfPVO-S4e0J7H$xt7n9Omy7SroK+8B?&VdU3|fn9vI*U0WW6# z@EQ3<(U;5kNWUg@0ao6w2@9q5=z!6i2x)UFMfN=`h7&l8jvYRD8rI*AIi;T0Fb6@g zbnz+i<46|qUA#@(;t6rhx0(s)-kG{cIFz7}<9_Sa8N;yis;Uf*Z<0VV8+{&j8dFi6 zHWvCRu3;n`Cw(EPY3Wa7QO7}zSX@Yas`a2nxS$8eV~E#T032NN(|tAl@c=T3WVa2$ z?_fF^3(ah)77WwNF5;@?d|P;*nMoG~ z%Zb54$+$S~w>M^k6qcn9=Vm0$_OUt6b%0B|S3^%AB)(n+jeVYznZO}3LKG*IAGd;! zpIPj%bQRl~rbqR%4gCtK`Yh`v-=X1MRM!BJC*}>((6~yZ#F1XGaY5CAnRaIiMjA)k z8B-}iQ*h9{1_ZJE7S=kHe;Z1BDa|akWfl`BJu3a~u9pUh-GIH0H-x3zCDj9@o1mmP zqBRh`dSyalxu;76k<%5Se;9+5_hcAo&Hk(%=9oS{f#|eXPGhnmY|0%XKFVLkY1Bhn z?^GehyBKMBb|gq5WStEYkEPu^@paH1p!d2fhmaXT(Negb-o=Bzp3b1#s|nY07aBx;K} zE{49uUeM$~zT(865 z*(bl-a49me`_Ac8_QCGaK!sULJU%9!n{!iI0zt4)EGjEpQXXAf-cVUTlB)v!-HUKJ zo|d^ic%nV^&CiwOe@IA@w2}A+VcG6~H+sCbHblmJH;IN@G!d?qoX()1m&=2MlQsmK+_X`9%xKz1+d&C6ks*>(dTWnpbjce z{ew;vbIVxjya8po=2b5e0fVh0qDUmdDy$ zW!s?c;?#+OsqKc|cH<2`+;23D*l&FB-Y~y)2xgu}jjHa-^j0o3s!Wm2A?8U1J_l&F zewa%C<+M%%AWF?|W)VL0KCu}CAm3xE#;%4Bf+_z+*dU?L$;>529Ao!3GgGcf6p$C{ z>10G6IE$>h=QyZ(+Q2j>01Nr@HDWr7;tHgA#h6wKdlIGc1-r1s=^&W9(hk8UEF(V} z+vy79aX5`QGx!#96RbUa>jme=a{ij2@NgQz!*-p$@dFnWpjltM9(qe_-vMebUc=#~ zKGt+noiBk)62>_$L;GVBhVdaX;4{n-+Dt;$k-WJQ6tW@vEG(_fyav;qcy;dOSpJ zP72>_Oi|h>W$2JX<;HI@cb5}x)AQ#7s(-P5x2c9l0IO$lPI3>=I*833qpMC9m+-iy zV#0%eCb(Vr_XOCgP8QKrIU~z09z9XC;qo_Jx2Z`9n}x4+sig8IKg0g2v3*qCx2S=r zX|b)Gv?2BEq&5kk$3_I^44#Tm!t7<%T1DcA5@bka^S6&m~veI(z>+mC~u7L+f@dDK2L zG1h21USvQ1l4eAu0qZ_P4s;`hpeVh{13aOJS+KC~vl3J+{~_W4q_}OR4TFd+=(WZQ zLGbv!qA&F|a&nbEc*Bp7-^TnSyuLA=^%l@!BGmFd@TsN`t+@DD4@&|?G}aB`Q41-# z^V!&IZYqA0VwiB5(c&GhJ5VjeD^lP&Vb-<}fRh$0;1SN2M-CV6dJApDe!lDPeAQ(^ zQx|-S9La*vF^&-^Z`UQ=m*`OW?-8))au(Ppmm%;+(>-E&b(5>gUmD_zr#X|5o#{P| zJ!g(rg)oVBWB&%|iQe+0?2OAsj{$dV!LGl12Bf{qMXn_Wsalc_vn>ch#EFr}ME(V@ zaX~!aJTAV1nTi1n!077B+w=%ENH6bjd>|gDNo&-DmGG~QnDPn4?AIsliJ8?kfnE!I ztyut=rOu)HU-u*eP0HCiPGZgp@^Hm%k*dSWukQZYKKd-2q+?91ZF#rHYE&UHx<{0H zm&ENgF3d$Pky97w*d&R2e;y%HydMoP~{D zk!}{**LYw%&8MHc-<>oBvDYgz9$w8cW_)k@#=pbhpqq-sTI;=a@h%EI0aD`41+aa` zb$&u!axJ;Mh`w>JAPHRBqPN?j4D)J{Hb_Cv-UL&n7ED!wrv2&Wqg+g*HL=KKk&0n2 zXV2R!4zD$)T!&e^T!V-P{`PT(-Ym>&rCQ?$Mt?m0?ChChhT zD;K@7Mu_}>U0Om6ou<&4Rr_s0engBSFd$;FschBcuVy=OLDI6#xw*kjaX=FrBY?pEHBKbD_tNYeZ#J>ZR8-d z(n?!m-o`Ms#0_7X_sdYBSW%pVuSpmB_ZROs*4aKDOcT+{s5eBlp%`7xT&cMK=AfKB zsW@;}`B44Fcvju9D_w$rW@GAdj%z%B;7deAHk)`$D;QsY`e9R&X;Zzlp zIJvtuB7??dY&+kK{W2l}>0H(6lYy`>{QI>j5}ntcfwstv`i;BPYQ5iiEuuP1C&c7A zrh8|l*i7WnJ6ZBW$&w|3QUgBzD~D%<2M`JB@M&oM}a?KLH&l*!!$3Lm?+_ zguaTb`~HV(vx?L7{8qH|FNbc`w-jlGrLA9}9@q&V@(Qiz4a@>?-r+6Dj+Mdaq{^c| zBRd?@_vR(AU*BS})e_gROUagdjA1)XE6K{YyANaS*mF$30S8ubB&ih0FMc_=k3vxY z3(S^0AHMat<~0)}59m@zOyFeU;@NdZl?2(>y+jK7key}=fIcIi@OgdZcH0?4t5f9; zFQ=s;I0okrJ=5mfj@r}gEGB#pggt-Y2WU*LHbH^56cBnDA3$ z<|wnk5cxJ40?v9*bZNXlhQNp6N&Ae`e=@a34sPx)iqhnJ2ECbL)`(ckGk+(HW@ zKDqoe&491J!f8#yb(03tkVL6|pd{2P@U$rPTuogaG%l#Y?ik>dkywS?a)Y0Yq(d(& zMbS)W!SCiK*l*ZnsaIv5+__GhfMzDbi))nKF}X$WQ}2VZ$c(xQNmaUEa-TX>3R~x+ zw{+zIwvmh8_MFOVrW!YfPu|Y4dDp;v>aM&z+@ZKLvy9%@@^5WO7t(7f~2aQ6phghKPJ(wh@kQ^u}s*7#R1G ztXat}&x5pc<5;PCfG-S@91~1+q4@D;lz$B=0~o-;O!4KZ!i(!I{^Xf!$*u&jI^Xhu zt$iV%4Iamu^lAbOPH@%4a_}t(R#ko0&~+aw0Evf%l`%kudpNt!mU;3QET}_5E@@*Q zZoWXh?n0+h=;tZvwReTAW)VD!FlU5IWfVAIpl~3F4srw8H8?^F7ZyhVP3)DE1OWdx))b0%zK7;Xoxt_$;tlZExwA=AAXu-+l^=$>4C_%w z`Il);F;#^V+WeL?k|o$DN+!a~aIkUnuqG>=%Bk|08|P+fg{=SzQe@q`hLwed3C9|@ z;9UK?;ohl62c*&(bi-XQ?Jjrz7iE1tfBWN-TkC1^Mx8Zr_+|Zq&d_+!!H+yfhR+TJ zIugeA4)_xI~m?8E3UD*y|meT;_km<)G_P756BH1?UjOZqC?z+g?vL5FA zAIce#NqF7;Y*@m0Ju80BUs%N z)HzdJyqvYxz@g#YvRU9dN%&o(5;a}GC9jo3eA4m-8NFc0ODQdQAqN=ar*c1W#Ne4> zni10}ZOeoi-o#vvDzD(u1v=vET!T{jV9~QR~BJ%iqe}{=F=<1CBNZO8i2}&nQ|VowH6+fnk1wke!#BCrPJP z4mv1Cg7K+AWT1Uyz&znRiym>Wr$ZcBo2rFi=M5u+sjpQGvO9;0; zrWK_Lk=_M&8+9SQ1}94U3Cq(FS!-`|V7($d(CM3N8^f|nwjC_1XaG>YakJI*FphL{ z-|P?~im&fqBC`)YkxquZv+gTCI|^nJ{xX}yB&V}ztKgilnx2|>OGow+W^=fsX)npk zzf@wkvg5m~b67{ODU)V(HcSYoX$#pjY{W0<22E}z zek$tCl@JClMvUQdY9b1zvAQokBCyI0}ml1N)jk0e2Dr8=S4O3LX*fnl$qP)3wr%~g+w zY`ZYlY=iNiBTa(Cz45<9Q^B?jUgs`;z6#ygJjpvKY}yLEUbd1;nY46u;mAc?2{#>A zz~Z4^>|5Sia$Kt|v4LSIHqgn;d2~O_+^DF#S(EjFv6NlMXAP5As2HQ@uPa-XP^cmB zRjmaE9{;L|U=}J~dX!J}2$sUW1ao-@OoW)#A=s!^c}Kq`)>76#iYTST&-=#PU4;}Y{OexkB8vrE?VqIgMd|PMdK%T z$GY2iqQkp8TIyVfs6g1q=R(7rfS$Tv+wiEpCv%Rd{aWG8NtmopgON2Hp)vSt(biJS zUVbTCK^Ozt0qnY~%WWU|xbGoTC$6)nyzjlwPd!fmwe9TK$1xKx4J~#ZA=$+@U_yB3 zh-5_OELGUw9Yl!8h55kIc$an*TJlXadLf4!}ArP!p=U}FquHK-PR55FfV|V zhWV3?Oeci3cpd33#Xo7=UxZ`PAe=6gID?TZ0?Q1Y^aRU)+Q6gi;fAiDC}+I zp<*3FAO}Zm@O#iGk}~TNk${KG9q8p5*x70Pp&}Q>A7j}PoMU4&(FAX#5<}DEpOQ*V zg8peGYw^U#{ z_@XAiWJb@br%c${;>opp8T0z2zgX!^KDEeIGI(THA97!tHe!L12uDY=cRH`0kkMIb z7|LA3ltm|3o?c%AmcD!3$yVv9&IFh1Z3C83M{A4j`wO1*O%2Vi-)gtr%7$(Z7_32VG{wkW}Ftb+~vWM5~rTe<1%qB(L(eM)V_ zwnHZBdUTU{EIqko^%s-KJ=_L}r%OT&(cUS=9ED0{@FL<*%hNcDL%FqS^TU1&H-p*P zx*y9`(P?5ah`s|BL^(vWzv9k#e<(g&!hOA$`V|6I>97ryG?$tppt1x)Fvd0bYl6Jc zhncMzc1q(cY7qvx^s6hA-1dEW@z>*l|Ng4rXUbU2DcEX2Z{D-@i>OT8S2;gx=032H zzT4az1;3jX^0c!7L*FQGK-|7>fXog9ma9((Y9b5UUdpC}YxsK(RwletDaX=QI9P+b zr(;XU)-8}q=z$YUL?}%-Ee*2oc3@BclF*eP_FQS|G)O&pxFGC5hsRISkx2gq1Mrv^ zLrDMjYVl%mB!z1_u8sb8UP6CaCsU~v!4v-4iMUJsh?fBO9XLg%NFiglE|1VIP9gNG zAHOV@Gfa9s{<*7PxNU|vETagnk9QIhLDc2&< zrptuEt6sGb0xbiPh4SyDeCORN_U2L88FYBfp!ZTozS_j8L$7JbuF2CddJL zUuUYO4K8uoXPlc;a5_6`t<@`yECZ(N4u(Fm zkx%NoFM3H_iR{mKF(%a&h-%*g#Q6QLhI4>J?vBMmofr2U_)CS01HO%kY;!jwq7R6S zYq#zrfY<4-8}G{tLBnEg6+hBxquYVYjly_6h1dUp=`R z*e5NyLc8)bwOte;uwW9htozvMFP;u%;76pa)q&VY#ln-CK@>$Th>h~E9z1^Lx?%dc@a56_v zgrc62uv`(|@IjQ$iy$AP#ylOiEY) zeTSWdND#eX&j1?Dw61#rACFJ?L|=AmspvxYa)~5a-v5Q*SE!oB zs{$^`i5TB^nkda@#O8vuG31$$ikTp36<#??*MxlOv}m12W?cw@7?mV-OD+G9z9 z>6qT|q_9jXM;At^eNn&o57sjBME1yUn<_;^iqYG$s19Q=YK<*~J#9eUY1;p%0^t@v zjoqBA4>iK)f+b)CgQXx2g0#%+-Q_&Viy6k1H&2~uUF^)qemCh%?75`GLzRS1X)?qG zt#e;h7R0%QyfxW80~(QGAA!7t#U4;Ebuv#AN|+#?2O5g5+Ie5C+{tYoI#du?f&C;2 zwJT4(NQscLUH8K35L0b{7E|)Gnfdy7H>XoltZ~BT%u_3X(0O=*OOj6YVDKgKyKr4( zqK)MxsQV%b`oPOQdk{-OJhbsl9rhGD4r$6ox<5P-`WZ4-KoL(h_|Mxq_^3SsWp@HS zi;vMCFjz*Lf4crB#GZ^$u6b0^=@nP*O|~9i2K(UI_YmzA_IAxM1_5)(^bU83jii1~ zj90x~1*5a-do4Nid<=kX()H5ij|d*i674F=oKi87u4-XYg!Tt7927H<11LNny@dI4 zJ`@-%cNdpyZ~qpb?S)$sy4A{PV*c z0fk?~7bQa(>F#B!?xH#D&v7@3-Pe3%VT6>bEg%w6x~9iza3Sxl=80ll6yc6(NtgT%CA+_oPqwn z+4`r;oGmEcq_t63RwGx4Xe30&R8wU{3h%o$*|XtoP!Mg$m0~a7fD#+@Ncn|q0`O}= z;mX{xrV=GwRr#Y2<=}dknEuhf^Sxs4x&hQELp6r-P zw+ks#0ML=`wYD#*x4Ps7GNB8MF!tVf0Z1Y>A!x4=KZ+c8Le7f(2Flme^6D10%#6|h zxx4p`r;_tVC#k%=&y-wGH7$IOvJW7b8tn?SavcTQO6pP6*2Z3|bEn&mVBcP8K|Xv1 zZ#l=yz-C7S!IwdE(|eD2#jWIqu#JbeFKgUq$VB#^SLbb}zC3@RHBGUDL6v9$*sK*D z)0)e}GOgsf03i=hLtim6Mu-f-f@_q-XW$01x-cSL&YAFNLY}q)^QX=ottA!zR+yUy zU-|)07kjG^k=ZH`seV=5DKb@E@!zzBZ=o9hOdSS2BUe&!+NfzXc^jjl1g+qEome(k zVAk{(VN5@?(I#l2zJeU0avW!0SP>0oUecKc*eA`dnX+lI+6b!QDm&sTV|tV4D5e+x zbsV>y;v+cAFNgF6wiUk9!VG(!v<#CSB!R6yPVI#rYgj@SIS<(Z==+L^g6`Altq8@8 zK2loXbQ)VOg`mGyUds$(=A%a}9R>4?o~D8!M>wm|;3lfTqlArFc?Y&Z57pVxkxs|$ zDwEiQ*ctl}6atDb7!Z(B#T%LpU(F02*W1^zDh6A-9nn=5Vl<IC7{9v8Yvu+lc-Lh?Fg<>=-Gv5KmUi5)v9Y`$S`hU>;e3ln?V_=@0M?MJ>d1EzHf((}6J`iQm)$Y>47g%~+6n!T9)K_Y4e(7M2Eg7W$%xlIC ziQgdrP5OOkyiQcyqSbuVx{#$mqi1SOx#(mX5 zoB+$zz*nN)aaT1LxK2OW+F5Ssdfta;i)C~tp)g^1Y7WqK5_40^s`^Q6yZ^~vC5xr@ zF|0qTKu5wfyt1xG91OE)5o#F4f2ga2Qo?~$f+3^t@tu$kumGk7LV_9&^qK=N{{L(Z zp`Fq0`NN5B6I!34FJDxz%E*sF?KMS;sDNSV+*o0^w)*W2ueis)Je?D(Bb!;}&xFv? z;T#y;Z0x!e^A|i}ge+-z`MvzU*xw$T;Bv37@oxWnH{Vl}r~LWQ}H)F9(S`n48s+kp6G*hqxPU0a5s z9y-^dnfefRo~1*O@9@`?)m6S6&z0iMDzA;>fXN}HUv~aKmvW(Z0 zpw0x~Xvqtm?mHcxps-|12S2B5=|wl;XeRVJ!ilcvXmoOq`>*Tdn5AEdgM(peA>4c< z?hxN{e~6)M`|6(S<3-uU4Ws6Jl2=71g9PJ9n!&U}1*^Zc(qxg$fEH+2plBx$z_$#h zaJG{vQjTOLI#Z+giTlwil|pkCz^?0spbAS5)>yb6VaAiKs!2=7d0rXzN$aO#+P6)h zjCV#y@HY5Pnf-aX6+W^n0gvRfm$~V01lc8jkvps1?ujW4l$(=TecGE|=Mton?d4_4 z^{%l51fkc~PW8{%n1H2ZF|fxW6;ZO(&2urok0oIV8^PRq{G>=yRdgN%SNb&|4|kbW zy5GB(76HmdWYGeTq9i4yu79yYX^<$v31dYO3D_0ZPSiRUu$Kg(?kEn2{72* zf;GNi&wD3JgPk{!{^$8L-jo>UY0}lXnC$5op3fzZKKL*J_7${NJ*-*T8gF`tfJdvZ zDJ-^W=Ukkb1spDok+G)Z_r5jF#fE3vqEO@ffz@0*webASjx9t%KKUk?mXzIVzf-a6_RhZKX!X0*flUlKzip!e+ zF~Oxw#?K(o(Ln7DMqmLDo-!O9CY|c zD=wNln{y+MVjlg>$SF~xWKIZcorfE^Yc8ugb4dAWbZX0gJ#q|8>;TOql;*83t}HRL zq$WRV@%D#o!SW6I7kEqOfRFi-uXci6Ipe2c0jpmj1`&`x_l3}TiKHzFl-J15dRE zO&5tHw*;0eY;jd!&1o;xR@tn4j{_>qxEvXi9Vn67zO~tIb1Yr@K!<}aRM*3X{j;=5 zK1yjHNfFPH$QVi6K+SAoxK@9ofk=0{FO71329vuk=f6u`2)U{9<%rBG1~=vu&|txq zigDRH)4t8% zwF28v>hW19Rf$eQoRD&h-A*Nga@DBNc*s&PglVq{2cw7D6UCx>zj7~qX{2`F5=NI< z!7ZopFF<}xuaiGeu)sgIKnZHq4BMxeYo4J~l)XcP_)e?%e4_`_0m(JYn4VoV5zuQj z&6(!#;;fXr;bdFmJknZ{Y2cO62*NvRkrfK1$*0q%!77Ahn8oCH_`y1Dg>EPO!fUB! z15Pd*Nm35dFJ-A;3t?fjSm!>8{_Y4bliawFMG`%kzNAZQXG>_{z+r#-+@!kPwUtJt zNN;}pj9pyF+Tcn6Ust3E06+d7g_ z;7J?TTp~q>g^%T2{#IYyx3R$1t*YPhJ|Cb^->S|=w09asx!v*m7ihjeaD<1v;s6>Q zm6bL8jIEk;L%w)x1vvs)8PWe##}I}%;;7;4 zrsSl_-4r)u>>nv>$BIEPQ2ZIs-^LYGjx#Ku$8?r>qB{#)G~l)=d58;~s+zIM-Pwli zmdB7qnKoL_REFd&AT~C=fmoA}GK(DNabxaW{ghqZuIB)2lxa0|O9*RhAx5C~qT8XB zp$7}oe+=@P$6s?gS&!%&{!jB_n8j9|W`Eg{y6s}2iNcqFYLRLJg4Aj! zqLA3>rRg=Ak?y40C=ehf9X!~yanIP6cYAQgfFhOUaewAhN(-vFryHRk}&;M2HQF_@dH9Qr|h86WQ7Y9KsAV&2}Mi?(3OUd!LQSB zMf0#%U)l@_+Bo`>defLLiN0XG?s(*MJ8$f&2p967R!}*vghsc~)0RATGoE-=)?nB^ zj=gS?<{x@aOyI^;-C7J0_fHj7La_%^gxDl%Znon$RwV$Z{!_M0bN!t! z7Ahl@15h~7wu?H>-1}4f51x2Z|IKYDIsot z_HN~RTA=^j#hrMaHd#;Joc5i8o(yLM?7IGp@-qJOwTeMIHBwi9V&$>yg%Z8s5lg_- zBOi+|l-Wst-oa!4?>L{Q^wC8AfV)Osr%pgU#F1$l{ct>2fbfAfqP~EkyjoM~r z8KIc9m(~4*jcYnN5fNJ&%t+qV_`l1=);>;ss+TzKK;D_Qu>2W7h$-_eqfZ$ zoAfQGS9T~2AH==Ju#(i*BnLEdHHCvqrFYBe3}JV=&aI^V_RAZOB6;q=*qq?hmMBUu z8qVgQLiM~tq-74!d>3xD2p>B0UW88=P;UNg^I3Wjf21 zyjKWv1cfa^xqd3@DZmTd!AC&SxPSp3uFZYklPe;z9VobiE_HtBQv#Bp9_th82iLdc zf+G)>gflZWMm#@(!HLi-V~|GLlu|BmZLrUsoUobaBVpYy`zXkwI&a2tUDeV5|K-)& zt`XiRiV1D*VgiELdX~(*eRPJjXffWqC3U_;{Av<-WH5!&m%EbeK$&q#;BP$o>b;0s zaWa|VD3-R+zYZFzvc3*cLo8Epnx$$Z?-B?G`ZX(I(7QxOo8lr|w93bcf|d2Q%mJ#U z6l@8c_7@tqgA%a~vC!4o!3IZx+FqTTu%Dk64$3i)x1loLWJ*lJ8Rg_sM8VdaRdBqO ziVIeyBU0mj_lvN@D5(d_8_Y^4@fb~I&@J%;^a8)aT#nu>{~ptFM78AQW<4@Uck(`( ze!`QVk(KxPZK;A2zya2|{Kd`3kQ!3~#6Ja86(jOWmsh8BJhFV*1Nx^uX+5JavCWo7bwCT_n+Lva(?+9;iUSMWjSf!Ar6)g=5Vd=Z?8NGCDI zdbTF}j4$iGtCY9T@>9i)kGek*>TJD01$osMsvT@|spi!$ zhYUIQCX3vN%TL-(9Kk$JfE4$l)%8F|@p>pU`Hd^o@m+OkgI7j6u_=C%I(VXmX2XoU z;IXn7kGaatS;P+$MXy~#wp192_bTJ?a}8-}NsBG*Y_c2+dgwpev1{VjC0L9TmokSH zmBQBQ-56&ql4LW}YnPOgCW1w?R7&T3LOaT%a3?y-cm^d1G*ITs;ND=Hoc4FK8^n zDPthlh_*3W;GfO#tPp4iBwuJB`a56V)6VJHlnfK9W=>20-5_)Wij%QO*gFV@VD!jBDnkI{PTxi#_ceV^x%W7yU7a5?G zw7Jr!YQ)f>gk2Kgv`;ZEdmVh}xFPAfxzQ8&^>aZN^#$O`BWGxwTVkRyikif2!# z4#Qu%vHPwPL>$Z2j$ZngI;+1;b)krDj=wR71W#O4vsMZbIa$%%+_k%MB+q$pZ`&?S zAr|`1>M0+%?F2ygZ=ZZY;eRUpF`Z7-8wnDLz(p0Bi9Mng(0!?wTn>=Kj=s2Bg6$lu zaAaQd8f?`OUx!N$`SUOeeb^yr+#C1k(PvB+~dB5(7tCjimewpv>D*YjZefUImQ?~74YcS)1( z&Q{QfGQMxEZ%_0jaf*u|AEyY+_W&gde|Ak2wyp2K9?6sPo{e?aSyTJaZ>7fz-bRn_ zH0?~8SF3V}rLKB!t9cq4sR$V1ik}TwfgS>-Uuh7w`fK1d4cJ3-o&h7|y)nJ`@?26H zU`n`s{c*;KdB3M3$QC{t`KxFOEx%k&13kQ_hZ0`;h3D@o7euCa?oxWNXSUGxmgwHyc!WaSiAS%DTnD>$OSlhU0kDBr+f164o=WhqGvKMzlU z49MjZ5!ZGxEg6m^bYKi-MzY`=F)L1wc%fy)iDs29PXi}XJCq{1`#Vaue-?K?EwboN z@kJI+3KImCEex`xV&ZI{{Lv(_29{2X``)do2M)gpVba~CVl=Tr$xNFeP47}$FxU+zddCocpiANDUz(>EVn1%)67VDP_ zs0))ttFmqIECJ|a?zUkK6l*0W0PPvbh7|)A3@#;@25W*N`G?s2sz`5h)W$&Fm22uA6S$8te#FJU8hp z?Q3`NPw@dU54m+%^Bo!b?z~fQtvWr^hIYQhGgwV{K>a$S+)d>!7(MB>yZ)s5L16B} zS~83m92prigLva`dfn-k%gKOm6T{oP3-Vt=tVrNa>7uUo`}3+C5g<(%oW#nv zz9@;dfH&-M%CRa92r@*O^0j%5zct0kKiO_RBnJTaaXDA3IiVuQwFA47Q&!70B(23L zp?`6ae6WqLxeTAP4mgd~A=1`C# zztL(wotydhBy@FqfEX&rV2@c55@Hzaz32Ud-Nfu^X_Sc0R_TP;<4GVAVFV-EcYT0V zME_696ymQ=kYDj@ugh|=`JjfN!E>#&4~5WWVKO=-B2`V^zNjJ75Oqoj>wWF6i)u*C zWB*olZbIN)vkg$8~aJt=XBC1t4Ww`2Wgc2WuDu$QAWW1GW;R-x5WmG4L8t* zN}a{%uF|UN^Gl})kBkGLePpV;!wrp{Y0{U5)up8+DNfC}|JKVq_}Xw;3UYD~G!+gT z3ZJ`6#y!WWf?2`!RMwr&e(GUAMLNI21-w4Di`S(@m~yL#X>6!tj}dch6?;PzPH2_V zt@Q(PpR69Z##r5K2v`mg+;Tzia8u81X5pK6bUL_;n8dZ7C6UAMpdk@=M{OC4|)@g2%^ zRn`eqk_K^cOX7%HBYx!G~>dJh#ZF?tm3!dE8y&0K5cstk7|ZE_4sy8Mw;J1c};_L`t2L zusQf)ggqMCZRRvefE!3I5SCn3@0YT!O5Rt2K!F@Eb$x@QNH2n$SzI4Y;;Bc{qa$Y# zI1G<_?|ul%mfkR~Fbcg!t|zgavJ+noL!y3du-uO?2Yf#_=T zOu%oW(EhzrhtR&!i7amP(Z(|F&I^eLyxh_R=Zl7SY|QQ>8h(SBwj~#aHjX!8MSn&E zq5gAuU2NAW=Rwn1!5IHXnzd&2Xq@Rj6vOyc(ZAa&J`Z($$0ZY{k~TG^Qar6mNo|C$ zYDYeU`V2j%3nWSdZN>Xo$AxCy`Fo!EWab{dW_!>d0;yoR?(*QC20!_ zjS$Tm#!_>^p@z*Dx2L^7_E%{w_{-+`8pNo5&P7H+q#YWv_aAbmuWd>2^=$ua+I)DMrlwy`eP%*KQ;8z$f=h8&SrxCRh=-}E^xz* zI9$mU7`i;baKU+yHh_OSaeJ^LC%Y=jvzTUuMKR78r7sbRxtoxYI=JI|&o zMc3CvaWKK1mkr1p0C~>C5Ka4!6Iifj5P(fwY%e2o%J0%<9^Nvkn%qU7e`G zLjao5UXun#GT zH5UGUHN&=~_-%^8>=?Rg_NP{QYy1oJhWT*&1SbY36;|5Ly#vx<#q}yqfj@Oka z9Fm7UH4xcH(+XQQ(DjJOgZ%)%6o;Mn+IZ*a1&kMe+9NF3vG$bU6VMaOrh7|HCcc|Q zU$8`JWN3J~26uOpriuYox%)~-I+W&uK16y4m1v0!09r~A zg#6i{{Vq+?zV9`w1-7gttGzkOu$ZZS{zv@26etJu+z4;vQA$l|D8`21iM0E+eEj@S zOW`-gVd=~#IjA#QW4o(2AHBa}g6qp@84CoV>0SA^^{+N*ueDh=RqAH|zbneA?dW1m z(4o}rDjEuUVw+pp4Z0;)h(()K5PTl?J#R0fzRHA$Pv5Y`9s7;DV^0anI3F>)jtp5a z$by!+W{N*P_ZdyKevIH?4(;@Xjw?tL`Xk|%Evm-^?NOE#6Rgk!`8|9XQu#xX#dqOs zVBZSLY9TUa|L;XODY`mvMNy*{6iu4U{ z4!4O!3)$uuX@A2oxYsjy?cZN=Ckm(4l+A|5h6h? zFb<)H(DDRra{^6(lbc~2RgB0NVL70YPNx0RwRP)lMU;0m=sf3N{Vs*QuHv|uJu62& zhQo(fE;qhDA(`r$z7rF_=v5iVS8KkL>Ha~KjG!I)1Y zmnO?9-4)DSSTxm3IX>o5#8EXy7@Wy5---m#*}aB@4v2FdMt}JDK;QCtb55dW?(64= zFU0n#Jvfq^Qu70}7&5dxL-=6k-uwO_$)bX#ZPMf)Z_0i%CS7q-|6iEgjDmIFGMFw} zw`e5X&_BzOtj}@F0`z{cK*(f5%aPPYu^rqK_yRq$0;BnVb?7hCz+a~&ybwoT{$Hsmo6H&^4uCk`7I6sR8#*Q_Wmn{# z6jPGKLNLf%cpt*ajvHHO-ud9$Z zZ%l4;rxcf((}fNOpDc50qdA+sK>=Jk;*MsTFNK%VYo|+wZ1GozphxC*dS0X5D4R90 zqv?3Hv5paR@#}vPwS~QJdNUN$MepLB61eOAwY@=iv-}$~vdh)`u$filihCg>K53?y z0ozZWi(2Up$Fb6Dey-H#6TM3Lx>?cU&OeH!2^f8r(z{$kncdKF zXIrPXG&{mdFKANZ)5S)Lp`RH7MU-h6QJ-u^2SCw>D)9b~>?Hn2-iw*L*V*sG=cZ?W zSe3i(Z;^oy^aC$NSRFSiDd5NoPpBzC>0$qvEx8 zSHOS0K(!=~-rnYsLIeeMYK=%w`m4c_b-QyiH!TmyXn+>UA)2JG(y}jx>`E4}S1_G8;pE(h^zK!n-N;Oy{sRh3Z@u5VeY=CP zk9eh12h%l`(ix<^-^`06IJ0JZj~~1LrBK*L9ChdhCM9qsaP|YI5a0yw55zfJl8w3= z<~k;4&JU%oLf%oqXDNW+(^vpd#0$d&BAs4^8P+5p z+|lC0M)X}~(`Hty!)zW;&&oJFa=lz>BHX(kUi4+)ZAOo}MkVtoZ8=Fq9_w=Zh#eI7 zWe?EHu&~GU+EMwR;btj30sEAasTP*2D+*qqk`!+t&y#d%e9vF|mTf#HxvZEpB)kbJ zAKT2AKEB?jYhi!SGP`LRKb*AEV! zDk&F}Tn8(x&On|;k*mdETw!vPl68>$En>;&XLoTwLc)OXP z!Xht9x!@aQHVLEfQWfdn;WE(8Sz^1{jnW~IAp93H-#+;aQhb$1!_(9tZO*Po^0063 z>!7}7pp7nXry5A6GW5Xxv?LO|o&7&Ypo2nB6b@G1o{|?LGaX&|9C1@Vr+7a@CkOq!6%)dg=7WhU{Yb?;_A?J4wml{u-K2E@dh5FH+I^yjh3wcW z)|g0VD%G}6LIiyCTjaJKp&#{U&+`#mB!&f}Ot`VP96tSRwa`6W3=-fFP!NAPXv;nD^foWKMj} zQNOx)NGsdIGx0k3$}KPd|2P%dU|KA@P41*FZoH^U{6H5@M=5B`2AYk?6yiEL@sfN% zT&wxSa89BgSHh$lxo4Mhae8ayth;FuAjPb;{4gwSqYF`uSNA6MV{`#u{+BRxhHI45bX{wX{iW7F?iJyUIG5ALd@zk?4nLgdwk26JG&dci*m!og zyvDuqqX&Q&QGB}=zmvheNz%-Px9^bO3kXuUHgjdtrO}`D);Grb5>NmAUoz;Zm9et@ z_0T@IWC78YTrINnR&OgPpvc~3BAovx-c;8fQ5 z%^({wTT-($uMV~nQ#-acHTUwt>k8iIplcU<9D|C5bbqh}Rb^z-u>zUSAtn|V^Tm3&f91bK~EF%v~wtR;xrXXV&X{>3`5&G+>* z*Xi!=w4%lK1ULxokcEoliSUgD(;%r^14;w!qlwjAN?p(V!)=_Gt#^(W}j6%W;D&^s{4P97!%C!#9+`m=<3##W<6j`+a-aA%>?LPv~^GC)txEE5vtv*98D%+T${fNHVO+nUM6QbLmoskU%k*7`RQ)SsXHe;PcNJ;J9KuIep&48u zW&wS;ou~01VVk&SWJ;Mo`CR_-B1o&jK(QAbe+lnh2%0eX#Ewxpxq~^Kd2&Cm!ja}#hxBQQ{(&Lp{h^@7L5w## z;;YY&lHkCl@uR6@$4j7Wdzh)%B+HQ7C>7}+Thw&o!Hya92oo8hmea_;_4CN{7()h3 z*p`VJv?S4Nv~&2)6cotZ3;x;RVcj^mvlwJWu@-NTZ&!}7)aG;(6PYe?JYP8@YUf{Q z=W}>nLSFhmmZ>q-&nv>r-<$n17chUcKz8>oXaf&xH=08Blpu^2^!ZFF zBAAibaFQ=feAtI8aBZ*(8jSa8psyX;{^&VGjhJ3>;-|$p5zIGL`o|DdJnLEO4a7Q5 z*eD=VYF1l%EZDLUfFFu{za5qac|?q5!6^zv)dBnj!-lGN^6-v3-dlMQ#EN&weQo^C z76LrnVgg^Bsv;Vu0~DKogH2%U+js0K#c9&(`)0wQ+;2D2{^F#qKcbzJL_(8O9p&i* z2FYu>#*oT=)6j92CRsZ8OHyX-A)<=MoX5>%80loa>2nd_3)l>`c;raHQlJ{sxwGe=ZnLV zwET3BVxaN=XiyYUL^4!R)j<7}#eHa|s6SDng zdFsSUL@@v2Kvx%wZ3^y9>GM3GePeRLt_y)_nEE658I~5 z!jPLpbiyn}fkSv!Y^4;LyJk`VFngq8i4J*smpbTby?+f-NIZRp&RP;b!+RVnIwWEkmFtDA-hAd z*x#1l3s><8$CQhUM%SV!B`P$|RYJ8K;Zpc~`_PVLQ-QY*&P<_W(+{`m*=I-RIL6ZC z+nM7IJbVzU@Wm|ye0FC4#D;P51gaiWSnqEUXTaXFxZD_n_pOGfZ_wR|76rnMD|t#U z`!Y>*N66Y2A2@pB3}o5^9F(qL8kVBfzKk8X0kjO;UE0@z6C06!=VLf1h~Rn=gOVRA z-8Cg_6^ak2VlyU*U`LWedxKzy)wZ-{sM`hAdn))>K^#tPNe{u}9sU&s?+t@Z3mz2q z)cFV1otEdH3K-r$+qa}=f=P`ig>;C8;QB^Ia><#~{u=A`^aBSc;{&ZC)kW3}y7N_6 zGj9FYR+mXR%3xk3RD@8^F*Vi>#I%tEZAXlJtJvK$H!MwD#Y5eG;nyQj2eJu>>Ck;btT3+C8ta>C@R7jLzw_+e@vd*$7WJwU>4 zt7pQ)$l))Ipfesxr%VL0tY1_@16!b!(V2T@=VktJN8>wJy58+w3ZD9IxCH=T4LN3i zkZk;F+h~yfNHF{#K-;h@Yv6&{jtK0J2?4uN4HWj+!9LE~9-5+8yXDrsQ~G5xLViU| ziUc_;miJn5(!6Va)1-7Rk+K^_naz>K+dcNWBN&8yY`9iywbdW_10cFz0BWbhph>0* zXLJ{Igsnms!UqIcX7*I26wAlO%oY96x2HtYjw)vo9hOBxae^3a#WVh|e zqlJqZ2C)3-qS4)071ku+t!NYB{!%2oC};lJ+MJEb6LdsU<{q~7|MvPP0~{+fM>)=P z>8?WNxi3&@Ohn_AWOLtwPkk^*XdBzQ*HW%@L@hmXVRR1 zsgYOn$)E|-7%&vfjQ$yJO6<>WA|HzlV>`m%D&VDrz^J^$WMd2JE3R;_nxkd5hdC5E z%fgGN@TYf)#zy!6im7v3UEXpSFLRC+i!G(-oh^t-Lur3<6gy$kzhpPcJ4}WhttzSq zOpfA(l}5N_U~yOBrtfb)mlxHs_FpRk5rHxaF;9nDT7^oHlf>q=ozTDjF`kT5mF60R zwjW4}=GehJyf}Rjmb!UJC#)%qGEmixT#;fxEI6XeIGSHQZQ?;a1(SaBr>=oF)UX$; ztlyC26V|Zcub%`!Qdcf)9Rbo9HWTgrl1k&zRvBSy6?uKzAyfY%VXKulDqwbivvB*HmE#h}gcKcVcBM9#A=o^S;8dxF)b0f37{ex-qHgzxL zG&0R?!C+&{6gkMNs}e&%Wh)X+Dkv)&H%rG}` zKMjhCF2Oud*+ML~VQa*{5_SL9Tx@B06C z=C>jCC0u&7g>`a|tocBZv;)`v((~;0J+}}MlmB}?;kD|19pn#8w*v(X608FV)m|GG zV&rl_=!jA6C#o^aCJS(~nzrIC5H9SxTURXf*kq|4!YbHBNSsE^HCxY2i!HJV-43Oq zcwN99v{m-&=C4)54OX~t_3c(mnck)Plt_nb0^X1bAR&vYGdXp^xnN@R`-2&7DbrQ# zea>TkvFH{iZ`+=rn~E;dki3i1VCuuM`o&;yIZ5{mLc(5q->k=i04RW;;^iw5zTaOO zyZAf|ji|O1YjgYu(r8>=;ih*=+K}K6dN*IDf22~*dKfrhe4o$!I%U4RV?Gz6h#>^L ze*I@h32YXHEf@o8@Gh{Rk%UQ38lqtPBbEpx6=xab?+6i4%Bli#n#F zq<#Hv5}VX`#~JLR_DI}8(s+8Jr5-pf9-&)B@5A^|)oU(l@g6j;I4=y}8%hX=;x*XN z|CyH>KNyG!C{{(_=e-USiZayD(CGEyIPX+kHF_y`gF~U}3zf>zN{0Ma?_*!GNRF0N z7xquuM*Or`l>Kt?Ax^c4Rw$eR(YXhpy`dzWn?dPcs|#;|OEPB3sLejzB;Of0@B!zO zl#Zq@)+=_ePKclVY;dvQW1Ljoo$QGOd9~9$^w=XYOlq+2WtKm>x(kY)f&^rLigjqf zlSiwmsM)YnEaD=CMuI`(+MiRgsHer~i#ZP1Upg`@>~3_}N~C3Bl|#G?b{w*cnoAVf z12jV%i#4_p4=GzVN~y`hssEP6^URBU1t>bt2Lk!dVN^-#e#rxt#mYW*t;}~s93vRx z5W}d#Pa6|IOAZdE-}X0EJG`gkpKqp7ij28F7#6Qypila{amR9TgTtSUdv~rt3~WHT z#Q*%9%Mop3g!Pn%NNZlH((tf~3Zt2lLggM;w$H;AbbB3H8cwDj z-cO!vn(buHhRJPS2k#myZ@E{9X1ft+&&qlNL252=4(upc;VwEXBz5&Z&s^W5$X0U< z!uqoXpqG07FzWKuc^FZT)lB&A@ST(;oC7B~QBH zouqx*AY$U%oJX`&;=#NV?#q=I9X#|y_K+UOvq#E875-a z#COZ7QZG^H%S!$mf|+{DYhc3${Reuz6l>f-5RpdbcY)Oq4sV%xjZDugyPW3oT+VcS-G zFw^>vA*amDrFC6$g0u*Xn}9!m4D;Jqv8XA2&!BeT8@Db@5Gfw2)8mRmmu{5JXsBm% zZzOWvN&8p~_MZbtn0@cuQ^RDi`KG8%n2^Z_u7%1#fYKbtr&H}uU0KfX z&jP%&jtb41OyNL$M|(LFW1>Se2W?m@&hy7GSF@uq%ZzG^?kz4mOgfYoYrh;u_bF2F zVa{tf!A*u$xSV`b-wSOYXmHpm$(p)d{P@9IYMdn^%HyE+lv ztnA>}64%TPZ{e`%N%=P!sis_YWC3B68&_-4VL7FMa1K%#gPvPbxgR^mY)ON znVkv2wF!~xA8r`Yr6-4$)PJ>e(;E5VuqwVuVm)%usGF@;TP2s|LBemjWxC7QWjiv@ z$aOSv0;632}Hhn1MqOJjKih{(=RSf zjJkNQXmh?z1bUVaT54Z+&s2i{4G|?{&h9bb5R%#+LGR_r?|z~FY&|y39tH(Wt57Pc zHWWC7hxh>+I-JTI+>42=WIPX%2WQiD-;oHIA>$$&MfJmX8OSDo-!C-U5y7-+eoDx) zERwLNgO z5ge;bNW#r6FF@5qn&=WyWubf{FI{^_NMqDiya4z)91aKyT0pdfO(X zwl8AGvDKuGEMyrHe6QVPgk14vB*m+CorZQPI+%(wW**JG7vWWeW8e<=*ddZVIKefs z(hf3q!zlTj2L1mtVl}3qQ>&;@=}>@_Hjgm=Q772wVjVsox+7IEif_k}0ap*G@BwgJ zg<9d+x*rCVmfYps4EtD56Lb%-kwI3pZf*dAr+BxtdxQX|MX_omrAON~k!)fqKo{N8 z9{IYi^00e@VWp=%er7pE;hu!(o-=^_s?p;c@x^okTNMAyKq(nGmth}|-|G$|MJPtb zs$mL$)kCjvXa;F2NtjRZNG1_jnRlDa-0?IDE2Pz+#%A`OfaO`;3I@Yt;Xo_)Dk2aN zOytBBY9K}lhv(}D3f2wcnj+wvuApqh9Of_Y2BAdL8~MO7oMktFN9DJVwI{3}u(LS9 zpU#=HaQAF=QZgRPRXkU2%}aQ1{{mEO!NirG^Mi>QkU0FIRxOi}fM?h)^KXM0 zHl73AmW>QubFaD%m6YaMMEl&v-Kif;#48nU8oqgv+BW`W8Yc!adLAV+f<8#LcW%sA z<7XgSpSc3fgSTnrGZYMb&3iZ$@`wncl1&_Q|61+nC_=M(95dHh8Loo8pk8&xCIOvB zWx$POlYoyZ+WsS5TMewtB*)OO1#geCEsHhG!bS*upkhBI;kXd^Vs{NJ@P-f&I+%qK zD)&}wsiXw^Cr#?ZB_HuVs(=L8^D(1zEKpgIsgCS&!JeQ|ZLKLD1`Y*D8d(j55VkR% z1@Tx7WqIt7lbmE$5P9B;VQxaz=2AKGfK}n?}H;wGix092<@?!$>AkG{GiRQfDXxx~_kEvvRpEvQshOF0f&v zG9X#t&ob?2mmtI}RPr`m`o)ZGQ3tDm%)N zoe5$()G-cj%;M*5@;d3T_=%${^U^k#AA=f8e?L4-aZs5cBD4HJ@~rL*Ks0TILZdlf z0%8M9_84}@pIF`lEgg*GjXL%oaTsU$D>?LF z(EKgNByvIZ_tJzQ<_&v$Fq?`0)PRBqWzjquEAyZw7?Pap23spppnI7o#0g!V1Gt3y zg42oCod#sq8;$BOKi>9gvES-9G^;{Wgh(6z1t8yW5G$#2NBbYdJyfsC%TLl%9MOUB1+Mh=~zfLPf@qAC}yIhh?@~0A}k^nOjW$DTG zHD%1?8&yCC3VhJl^rezrHk|j?pHgyS}0)Eaev6I;{ z7wa_2q*GrD*;e}@@NDo@O5XuG`WK+XRkX!zWY0d=6O(asYgjV*JJ=FonpR`pU%Ucl`YDWjWM6lopV{@PvD2rguoq{^h3AE(0+VvcS4)G$|W3AiM+r*oaQqs2}I9)`G z$5l_|Sr3Ot&|O{c6lh(e1Tdct>gT`NB{^0wpaC=?l^$MgXt)7tMT0B6fw6hNm9G>e zjfoGYWFE|;pnvOz^9qlhsE~3cSRdl8X)tIB!5u^Ivd$!OZ$muo@KNMHgW;X2l8f?I za%V5;j9XVTYNvc!trYKq1$EJb_&=p`QSj-+`B18qya*X*XyGhgk@dQMF;CbG! z8N{Bn1&5)BJ3JMtwEPXxBX~pYD=1_be%|DpKt@#@v(6F9E7&7n@(}|w=IUDO)$!5D z&spMNQvz+FaE9_0y8}G5^=^LBgTtR5CmW^QLWgN*!W-R(P-TpiVl_2Kd`~6) z$4V&XCC+^s_L|1&xn_V7_AfHrm5gNW$OPBJp{f8~ONu@2<0#6=fOF=|nfR$%;b@XD z7IvL+j<`wn`GMnJAN`vsY##sva)-3MqAK<8I1zL{)MpChyUQc}Sf_Ib>#zQZQxZgj zx^(O~PpNBwvg}N1MP1LQSkcyd4OXlvP6BN4XC0QAU}S+ZL8Ku(rl4rOn) z|2~8i&YXF4xPfrj50LoCR;bypL{ITziP#EROD_F7@{1~@GSC|`x+>QU2PDLw;;6b6 zDyv>i8 zQQJw=Igkjw0bD}7gIC5O5X%0<%Pc|Xv9o~=%iaFW~@35Uch!cl&3n}f!x-6NU7(T6=uwC z=)=?es+tzxcU<>M?m!D(wHF5WXCv^L=Mc~Zs&!p6J3`%(^*gMZ33v6 zKf{TdchJLkZ;yivq%_Bt(&uqm4$O7>hWIDCY%->~2JkeutWtSV*4PQ`8y$T`5&v}6 zLss|_MfRkn!#LZTs>?$^QZUh@b5aYio&Gc4Kn_ZYy}JoH!(k;>N`W##$y#k^L-_M! z-qKtQY+A&1{iwpmrkg#QfH4MGc47Z?d8{-cz z6YJ$JD^9F@&<2qLwQb~4MowN$dA3k5ab6G}jvuYkUp4c${>i;{)ra-;)2mcSKt5U|!YCjokdBB#c;O6PHfBq{N@kD ze3(qP4X-SKy+bf6{)~xw@3w&!u5+6#oBb4(;lPp6m@#|YDWG!~a$YCusvjDe&U(L| z0-(qw)~rpgv!txWXXAm6jlVkhR?%BE?+y;DPYb6YiL+Gpc`n_gbAOOX`?U%MnMx^o z0u%{%iRLb_ZkT?J2~QaPPq}v~<=!Bt6bHFbeC*NK8K*~c>vbE350WoZWm0$~hyiz;{6Zl9 zBKnr(PPA%pBnj4+>|bG1IS!0@BiCSDG-pP3F|w+<>1S*HU-5;BZHX)Q=30_=LNQfD zwv{xOo}7Ev>DNONFoVaFAD(zMaNZ4tQ=cE)NMq`d4r{P^TSoR~XvYd1y*H0fHDq%1 z7KKP|sRjHYUJ^!+SbmhyO}W4Txgwo6ML+js?2tgAc#_`wi#lgupqQHA&8+lZxPKO{ z9}{|HWFAP8JYDR#B8=n`idx*-D0~laSW$uG4duTgh>Ck7|7TGK~Fslb!crl*DXQh$shJ-L!i1 zupE4p2vA=NPHtmh*NlnEMS5=tQI~woU$i1cR|6{8oup|M54vRWzDCcWMK18#1um}@ zR;t|NB6&N3}Omr+|r9fZNhbQRa1!&hVJ zN|=d_WVI-#@OdNISnWl|i;piGG#!2$z#2z~$lF?ZNg%Gk`j_)E|B z3o~&@Gg^ycFb5TS+_I$B!atwtF+4eS$2s{C^2ZYIZS3b)LkV?|U#3~#9yBNZ5S%7 literal 0 HcmV?d00001 diff --git a/public/docs/images/tutorials/repetition-codes/extracted-outputs/67acea4f-0.avif b/public/docs/images/tutorials/repetition-codes/extracted-outputs/67acea4f-0.avif new file mode 100644 index 0000000000000000000000000000000000000000..55e35003927f02a47da0d0eba054d9adcdb907b9 GIT binary patch literal 42125 zcmYJZQ;=vu(ly$)ZQHhO+qP}nwvE%aZQJfXZQK8unft}fhsu>}Wk&6+i2YC*1pokm zW9H)NVCZIP2Jp{pEzKDJgKaGh|HXg~wx%wI|Ka}`p@oT!)Bhj%3@Is6l&EFFyP|9KcgH%8$=1epI6pjbLPnEnR< z0Km5Wla~Jh1P4nG%l|OI5D*am-2a!4^B?M87yr`$|D$jix_Suzhjw+cFi=^>&*2p$I`~q(8-g_(8j^yzvqQ(>0tX`@UQe=_rQTbzyLrXAwZyE z{|GEgC)5A6`ER>_#Ww#vpnpvk1KOGxx*!2SLF3T9Y_Yr%5Eje_Fx?CT$uIy203bNN zJ6@!x`A7*kbmc2nB9LM+6?r|~`-O?K!GD1DnN>orf`&={u1Zh zsN&Lix}(+{fqWrl`~Pus=yN%>{#D7g*K#V?-9Z`Xhno&T}R- zE1*_EB{eiNrs-3E)YJnC5wjh-Sh=_dLY9R*9w@j^>Dyvdvk>}4gfGn>jjN~664GgMs3TUTmE^Sb= z_sPWhXp=sM9>t9OTYL9@d9hN!`3pGsFZZP|I?5%xd41#Yg&XC;Rx`3*#Y4~I%FRHH zTB2)d&qvWKR&|<)=q--0Sl9>NnMjt$4r+!yS&p{CCuI-PXhZu_ab(F*xAjBXi0(Ob zHZSe7>&NEpO#@#tjWB1P%MEu!BreqI-!H;kiwZIW!n9*TZ|;#es5G!~;gbaFd^I2C zcIw)@;>77qG|<=Tj1sx*^wJo(dO%wnAw8pjT<4r;@{AEhM8;eCC)!k3bM)!qv%!E! zmXcd$~&`)<^ShpK(Wg6jgwJngvM%xfyTP7+LnpI^P^X2Zi)C z`{RHZT_QB`@a`j5w@+sT;|k-XO1_b`H)^id7HT!~ebF}#w?yV;cj$Wg15yNHv@+R> zAy%+bgX#~A_f?+L8kUdZ^330{Z$pdh9Z|ktq6vTK@N5*p7!=r~jS12#FGYZR>@rWX zy(_8aAa#bkmIdmzEalBpE0D0vjH>ke-w&)1U5{GV;yrcuDhYffO<@aFb;ToJpb)sW z%1j!vZC8_4#t02(5e1agyAu!7hAzu?^L|#O>&;Q2@O00H5j5YkyBZk4vii*00x*X6 zu|`^ZytS_5TNwhsOQ$aUQ8x^sdMmP%qdOIYSFJ?9VEweJWDMAYFkHN+g)qP%c&2Vf zaxbu}-NiNwx%?iC7Qj6TG^5#$tEua9a ze70cLe}ByFAfYED&}f@U#XgYsF#Bu4zG#FdO6Qmmf>8oR?OoywPRmnfI&N!)oFH4< z^vlT_IGlvnu|YEJH^b)?mYjnm3vniHx+cOT;$)-RYc7M?*rRd=Q+~ok3Gx*S?Bx@3<=1hAiMLH*6b}jkA)E z`lxxS$ZQXQDd!D~TA2NKc9NiuDE+WGq1>vkTa7SG<^$Q~xCQWqI@_4mwMOj|(pZ?Fc-u zhD;8J@X34av(>w1M^I>*L~9Y#JLCcXDSjL1u7@_K{F$2cBk=anM5gx?2EdY*^^`}? zxt(+wqmMkz_it->L&*dkTH!D1yjgZ0SInEs1rmz58g0SiXa4nvj>?HZ^marjRh4P} zrpn`KlTbaBu#vYV0b?*mMLpJTNF2fLZk+tPU8+!wZ-3~FxW9-6-ny7y5pHM*Jg^;D zj`8hvpI<^=IpaOl``DI40 zm4MTq00f+C0!NcM{J{l~aiqL>&a}5nSoxG+xk@v}%UbH+tAcpBt?wd@&?4*~A;2ih z8+Ykj3G-&ikxO=7A6Uv6;)(8a@v0`CfjRCp*8ZM36ORp-AK9Bx6S<Mv}j)1Ht1e&x((DXaB28W_iuYdkTcX%0AHVQ) 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 z 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 Qa7%AB$}Y%xCao>tKtd^Q#sB~S literal 0 HcmV?d00001 diff --git a/public/docs/images/tutorials/repetition-codes/extracted-outputs/67b55eef-0.avif b/public/docs/images/tutorials/repetition-codes/extracted-outputs/67b55eef-0.avif deleted file mode 100644 index 77e7c6d0c34f47272727cc3a440086abbcb16143..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12956 zcmYMbV~}RS(ly%Fv~Am*=Cp0wewxp;ZQHhO+qP|MTGPfi=bZb-%^$ULt;~$tSrI!b zA|na}1O(sQ$sK6q0x$>pXa7N4fH{jTz~~?ZOb+1bI4#};U2 z@!v(5#{^&kc8*+32_amtm zrcAQ={h>xjCGB=Nw^*y@bNMdYOxL;sh=s-UX#Q72>1O+J@bZOokd~e8S=bs^VI2h; z$Jd{5jP$n^+$UVXQe|`T1GGpx=2=!{j>823N`r*NA>3H*n5^c~FkhZ|HMiK7THp4C zCutU=i{7%;Az9IdQ2<5y51n~m-v)&|@6O`@Bi8`6?V62*w(oY6L2hAOgu+Fyjzr43 z7Pb^V2=jOLuJ}6fR5+76bPckC&!?Q#IAoY7ECJr3UtBBGe4(Hh@tAwhY>Ur@X@Xvn zq6hd$QQzamycB#@ol2hvfaJh%VPK)^w3vupJ2Ikx`w!-x zSJz7PJdr7Hhf?H}NZ`@E_w30W5b{mTWT)2!F2K?l}sOB@lVxk_D7P0eX!t z2?n!9bs?N;y17FzIKR5q<}u1Jbv=L)Gcy)u{8k1@)QaZ5fZrYV6}cs#=-){DBhNfc zlIxt@`r!jxRo1elrG^B)V6bVx!6)Lj`sH~Ii{qv) z1@4F8hUPK5C+@Es0vS_>aGf5~LsI@w_@gjdy-_rh^~SgbonVEi>4*H%#mosb%WI$M z5Of_dx6B-dXtk_U@#YR`o}Y3tt7$mR%E-<`rX++_>Oiml1 z_-ji%OF=Z#^s}HoN?{@6l|~ym@IyB0D8|cNwo7X_9&97D3rmc4+QLe|L;#g7mc&;S zt&1%lnEo0iPp?Q1wt?~*S3_&Gza*Xr!DuqU84Ov6C#pvr<}D-Vos*sX%?JOjp4A(P zc8z9UV4;YsC9a3$E*kq*l;ir#W5Y1!GH7Z_FmVW*INGh5<_h%duYHG+68OtadrZD^ zivUT0Gks5@Z%ZBE{ul|3dtpOzEmDcCFND1J>j$*ol2QZc7`Q@rX>Zf3N_*rfbirS5 zBk(`{v${7xHHWA3CM7i=NQ{7bszxQrO3(IAbVYrEwYi7T9A9-KO|`Wb8VSmTaHV5YNg<2rMFVb6L0zVPD6eu zf{8sWKuE3%%YCvULwJmnDM6ov1JN_n@(9LUl7_J#*1Wm?gmfhyeT^7t4GiJjdKa%- zWPqiir$J{VucNI-q#1(G2gkywhHpT*zAcq+tM+X`P{T-Hhwr_{Iq+=OCX8ntLo+!1 z=a2h+byO+=fo*}6+PzHo;tN0A<=LrOAI=BN8e$9!dsL10jkMpwufh{Qc)C&{h76jO zSZn`iu*MwnIAUDZTre4wO&$H*>2h{0MFfF55fGZOsHZ5}7aA)t7xCPbW7A$a)lQ(? zi#bu`Oc(ZuB3&g;$DoKcEziY^GT%+lWFLQL@o&rnC+KPrE8Xg|r-hp5WJ`mVp5lD} z9i;>lT)>Q#y#$$ZI?Si4k2CvTewvC1sajXntspu}P<|#KEiCwD*%;kGOUhND>Z~SXZ!uM+eS8zj@oSfmHjIW4ul)S3g=qWpJovx|F-Xl zFxtWwK_&PhV2(i*o^`%*)|LfVK=NC06!j*7Ai!^g1R|B6_NdVszAYJdp$R%YQv?^= zWc7s6QtqgbgL2*L0d8(BaeE|PY%FUeX8{vlr{d22{=HkCR6l@l*jw6XuFG1B6EW>@ z08#Y^JkdqXdN2F56L4&!-XiIcJamq+RXmtWdLa++$vS9}Jt!}TR6Owm;d~$Zsxz!Y z4;lHE7kvy0y{$qxJfr=|OwM^Y0}!cu89r=d5zc85k<%wR3C{aNJc(_Rob=M81mSu} zP|Cw{z>vTzaMZ6pS_o&z*mH5xT z$7d|i0|)A*{Cws2b~i>_$V@>brJxh42&m}DQH~^#63277pN9&|os10{>Tn50py9~S zo{K52>}2(lN7fD*GZWMec2fOI6WzO`RcfE#u5g&8%?9^4R687*6h29Qa)-ZyOqXbb z`sH=66EniQS5=}WeQ{ddK)j_2-Ygr^(JJKeT`LGN}yIFtA7*}xv9n_ zoRFD<{yXm7QkJBwk=LRtFw*t+ty=y>T+u%)gz*gD==s%_Foh83-i~ zgx#Lp6cFewQg@556;}4BDsJ}ZuZ=(Q@zZyQu&G?=1;@E0w^e0WJEXf45E49} z3{{Q{zNXe8w)n)VjUCPKv`f#$_pI@iGm6fkYeJ;KzZW^fpMH3IKQ}a=rJ_fCu(oB# z5pJeJt$YToY;$LXh0ENq+C0gR^S{TIt7n{U8|(?-&2e(RF~oY74J!ZCH2A_%Z{6~9 zwdjOIQbJ`f@w;{XAk`%I_yeSe$(T_v3d2B6#h)YI%*zi0Avg%=O)uQDPT|A(Im-z` znV`Y%Od)$5=8n8oVxo$EK_Q-*!@oXvl%rx{3YLf+8PTtGbc2TGsk9D@<+4zFe7Y}o z%0?KYc3}5yiSVH{-4pKGZjf$~s>L2187jucaSI*QU{3eO^h@vl03Duv;i5tR?iCe7 zD$jRr0*nRAA3zZ-6taXIgLw?6OmTON`M z7-y+ZuL_^BoDM>%urV11H;OC%0jZE9K1Y}!HaoBqqfg{_rzhnk&nwI+GD)CS@jOW; z!4*eYVu56x!oZ2RvuC*Df_jPQNJOZQE2;^kf7omJ0mE}-<_4y}sJ2|B!gcT&^S~?T z&Gfj0Z2()Jc9$HIy)Ll84c09~-CaI*`P)b+cb2H5D&}so9GQ5 zu2l4Lk#atGC=4$aYMAfUM$sWmg0MLV0>mN90{qRR+e_XsvLM+9Lti}G^uNTt@ z{f!JF3NJ*yR7LB0x%l)oNW+in2nv(-yP{sK`^a#NFGpirTvLGA&sxF0x`S1574y!? zQaNPO=LB;(ExbdN7_Lr(fL|B56Bgy0B04qmbHy}Q#t#+s8}EzE6V9Igr~}ihAZ#1d zvXD}P%#8y&)+(>D7gfykfh>hP(7~+!gUPXO7@#<&aUAIB(|y-U>hzlve?XA{Z=X%J z6QjWSFeo7qh3_qR^i9uPu)&k1-$g)u5ke!rNQ3I&7>VU?oLZH61H+f6Wo;m}c{M_X zW};fQ**WsdhE+#%B^DNX7^eyrw16T%OSFI7{^_LvX*w$^wLPXflDb+lAF0K13ymj; zxIA8%P{B|a#a=9AYpx_NXQ7X=5bWJL4aX^X9OnOA#@V?2lL^B?1Z?h)D_3ixhP@7qr0m@C@W6wk{;kXl_ z`?3g{BnaSuBdcek3Is+Zu7enq`ml8!;edru`5FI0@=mXG3&kORcK@_!xe*1`)YFW_s2liTzkORR?XoG8RS?nYAxE_1Sw!p@Td)t% z_?1c`tEIF~p_6z#+%6pgz0pL-u-5cZukiF@7j0L6kK1lk+(wIRA1r=j4G~T>*Gj3< zsiXRhXjf(#g8HBSE1`i8)cY`>;oYww)r%awc0ovM_>`MnF%^M9yP!UY^5$6=Vg(}7 z?&9uLpa!c_AlVH;FD*P`hg*W7x1O);s6tgC2H?Tu4SDN(^s(+)s88fEZ)xw%Ud;tR zTq#kUHymbtW!b9pv8|z5h9F$RFARz`8Wk+RqE>j*cX_n5PJL0}bAeW47AW1S-?06gqsLa4s1aDjQ?_24>ohxJ~03j0icdczz z7egFGN|7kqrJuDS?Ky^d3v90x{Dj53ZiW>^3_R0?)mfax`UsVe=V~Y%Y)Q3qamDbz zeoM37m)XG+Qqnv=GmsVgMJ2nLS0g`syiELuU^^i2WxHUD?jZs$>E~(Z=bxD^YIGet zBuh0RcoaxIs}hUUQ?Z}^zi@p_PI<1km1W%hcWE7r)<||d>&W-V);X6iW=*oqr213C z3zJ}%J!TGb;MgKMUkFe&hA|K5Ys^ROV66QdH;({+(Hsdah`O{yjCE3ksjV*+kV~}!@Lp-htR4d5Bw}9Ae1bRvZyZC zD%gqzwq@$?^z_h<93=iJe?iY%vf_d0*Tgs2P}oeJ*PAhG+ciiv|6vPJ<1NI_n%U#w z5U9whn?DjYe<>7>6y#1Mj3@tDdTCZhNXTZ@9m_Rso(g@`R#^}TVNw3Z6!b%p8f!v6 zYJJ zfq2L4v`Y4KNM41o)#okrpCRF7tT^m!Dou`9eZ<(&}>jSFC{}J?2Y2dLPK1TB~Xw zH(Gx_<{w|?kjArhvl~#PBWG1Jl!Xe?!9qtK_R^K;y;B!db+w4u6IF~@wcBN+s}Y%X z6r>sQpC%aZ##Nul`(<7sh(je<*0av`#D83LAobrD!(1cc0EPldv0B_@7?MsBdxcT3 zHiKlZsG0zumiGH8amCB3Bdh4t-E_L*p#*Fw${(;t6T!{xMZO8h;RZmpa&Zj0@Ba3}8M|^ZUPCotbs3iXebqtNI_l)d3rYZhk_W>d#9vXK<-Tj6Dtfwr|}`A7~W z2=?dP>59rjLs!VkR9Em2k9QhEC%>vI!Qj6j8N0qvM?Gn&==18;jiSZbf{=gt!GIiZ zQeb_fEtxP2MVL#G``JrRoA4wyAx0B#i7f!NQpTnfY!K6r^+bKO%@seb77dU#flPq$ zCIi|45_}lM#cdK;4JHePe7|9~5QE#6nVJ%3?86-LVAD^2gSOu~VhKA=Ws}Czm(z|% z7CkxFQm~PiDB_>n{K+c37iDGd-90eKGg1YV-(cXs3nhF!ImVMtMmXfkJ|?nb!fX!< zX4Qr7P~#~iW3?aZ{W6~%`7;83{9Hjh^B%<8)XN-7MgKY{Z$Xsgh2OW{^soBFFq?+& zT$WYdK}m{<6ZSm&k}H$qEec9{L6P{0(%Un9E*$~edW4+5JSm-DfWAd_bzs+NyYLr0 zZa(GTPx-==-k#l#6SeZ_uT9gJK^e*ihHmT0nqvzW?2Hvv+9PRc%MF+}ac0x@HBiS^Xbl4uVjtqABGB!q zO3ne(#lAXIk8utt=Oui(#{*5Fs18AkAh0~OWt=-O|-Z}~H=A+*n1`BUJJ z1QOY;>f@JOl4WSh+8x)D`reFp=;krkMf-HVgy_gJ!(F?EGez7V%ZzH0H5%hjZwE+$ z5_`Bz2AngY3d5Y`h`^#Vi^9`d(cd}4iyFLbA)|gh$teXk2oH=iBn?AMs9h{=0K3^+wB~*c2a0*Ks_ReQ5T+O|LESfdA=k5fweF%q?S%O(6$4fKr^kXia z^7`(vmp?x#rB&(b4j4#htjwLM&+Bhso(I9Ye&2DWH<1iUIIKuzZN z!{t)gB=mn*+|!q5(_bHP=4h-aF;43J&Zv`m2e?POp^ukwtj^t{ei>>QR|4r7Z)AF9 zdYoz|{>{$)^n{{S;yW1%0c5xn+#r*U_7RV6#SCvpz-@Hq=9?5SK^W2Zs(7erdql9h zqIFb)XN^3VM5ryJtQQO%6zUJa*L=L5$VgrNW)lL4YRKoF&UID%4UvUh{!8h{iI-jZ zHwg07JBm*|MvBhwTyNqqM}ZyN#9%z{v?7yGV5^Ah+81u|pl>{e=Xo;pZfr3)i0v(J zaQJ{iOJLy9ohlh={aDC21Vuy(RN3QRGm#tCWM#aXh+xuqA+SBg1Y1QgVRJT+uFwn5 zg&r{oCscle5~Dud6D&+-c`Dyuc zGE-Ar@i-K^oa>n2VFMKjjYSDPKDgv`lMl<>GwdpC2{9VIY&QqnAjs-~rPP_)$H?V@ zePrI@QX=?s5P!gG-v5ZpSKmf&L%{QIM8LPop_*h>x?C(3eCi*&NtOVFa4wFrTy@ie-M$4{K+zNJc+zpuBc5QZkqAY10gWT znA&k*pd3w+^Y;fL=5|i&kCHKkz*=h`&#_-{&A$5ubG0)}wp~Q8sm5_|DByrszDBsE z6~*<^64fZX6wR zyDcDtp1~}uf8j~RU5a2R;A-Hju0cNUbv_}cCM0~AMU^P;MtrRC%D$U{8)+6jA8y6D zZ6YuZa3hbLhL55e>-AB_jVQ zG!O39R9KA+(=u@dP&${ds5*ipc`lcnvAhGSXS(}dpjcGa=3M~--mRScy>--ZP+2|k zhQxNhQX$Mka+cn4Jp10u8S@%lCMw--dA+d6^vLCse4T4=+btm^%%ls%$o9TZI2J8y z33=DZ8T>B-d5nMazW%3QpyWN)QEn@A2UbS+9W`VdC5%)PZP$^+tfaVoyRepi*w>&c z%!${(T0aG80iip^wALJc0Gf42@gA1Q6rx4k*ZbaCe)P1JzS=O`NqHt4G1*s*pjWDO zk9%XRbLRodXQs%apiO_sfcNqSex`UH3>bM96D^@;gS)0twyzgd&RSJ-!iac^k$gny~SWmHFa)bk-EIblKPfIn8T`2R&KybJP7HETu+Q3>ATiK5yfYtyJ`%qk1-R?oKTdZ*Wc3R>^wju#4Of zJB0A}HX?|cFyy9ClX9IBnMp~lXIReIyVo7=ScRQhYtj!#Mq3mc&&nCMc zAdanQY7w5_8$X<&u&@6&7iAQ>^+;$UXe^LgqF|kXTqS8oF$7-no?7{2?N zM=WC}=ZiBLXYjTc%b)Q^*hh5m`fZ%gw0@BET(=tct{XyrH~$vYx>xx-PK*tf-TbYN*AV zx6qEI`S2|LKk7LW=zZbH0=N8^rD2-YH#F}Rd}TTB7`k)n$wpu}Tin6N3d3a^Bw1wd zAe&`%wO_PDX%sh)mIQ?zKgFyY>%tG0q<%qmJ)y%CX*W?e3tk9R*Y_Xm?Nk0lGJ<4G zZ;hOBtubX7#xr(*sfBB$mIIyr%jW62JzV9^Qcbat=c zwLeiG!{=SrY&A{|(Z%G+Ls|Edt9s85GpfZyFe4HE> z&tictSOv1bRg{rjG1~ok|05gBwA3>{KbHxY6wIc|DxDCyK^y*l-!jF_hFHeSz%BG_ zZrq+PPLKojZXUXJtJkVC#eD`C1o5%)je)UPEk_0*1TTF7EyzA%y@eVQIq6NJ!M?p% z4OLdZTSWYR>5f*n!BCkE@v`0B!l<7C1#oM)my+Mp_Xg)VBQSB%x&@Ex6^bznS zaf)yrRHOl8a%T&K;Bd*EL=0-`-q^?_5ati&r>PGV7Mom>o4-x@(0v@?!z`kQ-DxIf zTE3AS>xeMBpd1*yBBrp*k(|I2A&S`PDO#SxW`P2R67}E;$-FD~3EEt9BHr%Gv?u+r zaMhF|)RCHpj46JsNwq%C3`l;WGbQWF?`S77nC20MthKfMo|^eCyy~1=?PaNFq;USb z#-X&5Xt^D<^4)bsPSWN39sarM9V1_?T8%-lkV~$ND;Nyk(#rf4Rj5 znPPutBL1mqGR}{2TUceWxg{8~OdJB0Xjye8l~!KW2!Ts=k#G=ZzIbu8g^6*)+c6E; zuEJReC%uenSP!|buwVGz@{p7mwJT-wVUCdf*ESxu=I#V-ZEoY^8xTh?+HLq8w4umi z$ni|enqu!i;;BCkAvJwe1s`4%Oned9*GwuaQx-5eBs7=0kxQT+jS)UU&xDI`YbVOE?;A85+20wOPKTVmBaZX<|t~Pk>uOQuxVGb4+nneQTixQ z$}#g7lOe-432D$rD4hUebX{_>RbOq_%rqR+NtzAgZ55Y$jRZ30@e9ptme-rb)MRaRzZ z7+|DKc0|=3k10o7giVlu3pc063M`7EpQwjI#_y)!Pzp#-&Rh*Of zj$4u5oj-mJKQIq3`wZ6UcZaZ$ zE^1006|F!=>ROb!FxR~7Yk0}-YPx-CyH$)K7;f1(F(9R#=hIYQ7zW5J>!=RJA##iWT)64+PmD}KL-n)JKM z;v-;V4$AzV^-f!A!fZ`@6*UV~?vUbO+ttb3r6_HL)bTjaK_?C|Y5{QW&*jZ00C_K{ zB*uHiwkkk~IC*z{P9)MO<6^5|wR!9mI~JCXrP*7W<^98~`1E|s+_fL0*BaG1vdsq> z`CBVOd?7xvz>xcIFhPH{|4JOIuqyhvWJK@H*36cbX&5npAK9tEr3+9IO*m^+0e!5-6^ps_90i5N!&rX+A+M19837!7p5Zochj)VK>z@CWen zK$FK2`Qdh|9J4m&$GynxbxePA6I-jW&YD#yFOBN)WCS0B#_pAP6J}^-^*bWwf&0-^ zw9qX;az63K!O(p|#JwZ($Je#wu54Tw;HIGoT&kHeZ6PW9g^bzDAprOJU?g8SQm<9L zE#x;chtY;#ucRC zVN^mVyw@x;l%X{hIpXZvR)H|0y&w|QQ@*LvKxkh+LBryXi8E}Jd8g_+ z6^wPY*Fi>uh}LcI6(MvXD5NLjZTuS`>gr^ShXwU;mC_NO*d6@EBB~~VplALK9leAWjPc>Ne&Q2z3u^oKB*t8z zAr!xsF)!j8W+W2BssoPwA>@dPc_j@DUF^wJJ0!~I{!-@IEP9l>NK@+u^K%68bloQj zR8qLYrdfp!;t#y&EQnt^UQEUdGb8Psd7HEm{N;&}`5$rr(F=T*Rx19kKl_hij&b(6766+-=8!;4&{&baA+0B_74=v5mF;4(DBF00{}wYH-!Bt(KSPjf1i z;s#UiGIZ=Hn`-}SpJ z>1B-AQ0Ssf;w}nFrkJG53LfhWjvRPV$;7+_tfW;Sgp&U@T$w7=jpJ#aRir1b=_m{G zR9FV!<7~M&%x&_}S9CGTqR$joo4=z)FHozbY+9+SIo(UsbvO^|cc(btOVnkZ!zZg` zvsP*>Xd~36oktc3f7xd{y6g8G0V7QJ9^{w}yb{V)i8hI5XM&ht(FAxnAvrRwRCx>; zE-pwcb*W$JfYDzO+v)A33acGg`fk@I9ebE8>?V2jt>chHKTa_&4A+kk$tcuBb8Lo|>P+0g9PQk7$vyTl zy(w5Ud#HffapgK?K^_0zID@EfrAmVgMM_j?Qd=X)TfQKbb8*Lm)c`is@-;e;@PVRK zbEF3k#mk`144L41fuD6IGia^E?t$V%CzHz?#Wq^8Wz^rL^}l015MimTLrFI1lveGn z(mYkzZxLHVu@Q3N6CUOchZMHgy(mR44a?n=V+OEc;Abh_(j*Pm6KZFF9^KY-&@>^3 zE}kso5#|_2EtwY>YtNrJUR^j;?3x_-0>4^Ww@vAPUycB8vP@7H9W1oyEH)qG@b%Kb z%CIwQ$D%ZL2}*FUa)x%iA`#mlLj{hFCu#)m${pQn@L--?f2K!9EHj!K|A`A|>ByL2 z`KwuIW>7a>YrP>>z345vVo&B{f7V2nbHVlXt3lU${quN+8cK#NdhJ*8D^zvVeTQ2!cTWhNI>dwsChp;70RhDBZP;UI zn{gy%ht+Hp**bX5p(9)+ho?%)f77%yx-6YlrL*%D`x5*o0=@3Mp&A1>>Yt3kee2@L zvbVTo-7J+h$ljIujoIh$%CF&rt2IT0_FZ1?10wJvp|2U@00tRY_BAas5+=$LMtDWI zO6R~`W6MaW1u_lFcYl2d+=kDjnG69>r${iveAer*emK+w)^b^ea|qIdgKJ4#1HX9_5{IR@S)bzeGTTur{h;@@eW32i4C#dpPc z^=(;V3+{1NVG(V$<(uE7Hm`pYbyc-`EqSzPRgIev`_f3=LdWIcTgw}i zXEWlH5Zi3`O+jAxe(LV{r>bdup59Zo%}ng#sp>@n*zxGhVTeytr{xVok}MU36N>fl zHCxR@BTOsy3KI1>bKV=;GKoiz^5QWPC;_^+JlT&@-~+z7Kt5SVno9=j@yKzkNd8`O zrgRAq^AdOdT?&f? zy(IhA8VxoLrWQ{xPxh_OADqyq1U4Wg5r*u~*%Q+wWiK{v_J^pD9$pJm!9 zt7HqfSwdVtlE!Y#%fj}G-z3s`jx6$k9IZQ1?0JG$3?5VpR7WLUMaD)~KOq#L-n*%V zhY2YtLCS)XV+VXVl$BeHUGw17A+GHe;=2K?@B7QI8ROlExqr_Wp#S@PVIYr{?;oKS ze7r^8uA{QcR;(FY II7ra_e~EwCBLDyZ diff --git a/public/docs/images/tutorials/repetition-codes/extracted-outputs/67b55eef-1.avif b/public/docs/images/tutorials/repetition-codes/extracted-outputs/67b55eef-1.avif deleted file mode 100644 index 77e7c6d0c34f47272727cc3a440086abbcb16143..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12956 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 II7ra_e~EwCBLDyZ diff --git a/public/docs/images/tutorials/repetition-codes/extracted-outputs/72ad282b-1.avif b/public/docs/images/tutorials/repetition-codes/extracted-outputs/72ad282b-1.avif new file mode 100644 index 0000000000000000000000000000000000000000..bf79862f0ec3f2a7d011272f2bab82c0dde7241b GIT binary patch literal 10698 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 literal 0 HcmV?d00001 diff --git a/public/docs/images/tutorials/repetition-codes/extracted-outputs/dbe02949-0.avif b/public/docs/images/tutorials/repetition-codes/extracted-outputs/dbe02949-0.avif deleted file mode 100644 index 97c0600aabce2ddebd829fca7377488b6f912f3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9703 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 diff --git a/public/docs/images/tutorials/repetition-codes/extracted-outputs/dbe02949-1.avif b/public/docs/images/tutorials/repetition-codes/extracted-outputs/dbe02949-1.avif deleted file mode 100644 index 97c0600aabce2ddebd829fca7377488b6f912f3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9703 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 From 2fc7042eea09c4605597947531e48927b3dfd937 Mon Sep 17 00:00:00 2001 From: Henry Zou Date: Tue, 2 Jun 2026 15:11:29 -0400 Subject: [PATCH 2/2] tox -e fix --- docs/tutorials/repetition-codes.ipynb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/tutorials/repetition-codes.ipynb b/docs/tutorials/repetition-codes.ipynb index 8140f33c373..8a8425b025c 100644 --- a/docs/tutorials/repetition-codes.ipynb +++ b/docs/tutorials/repetition-codes.ipynb @@ -796,7 +796,7 @@ "metadata": { "celltoolbar": "Slideshow", "kernelspec": { - "display_name": "qiskit_plus", + "display_name": "Python 3", "language": "python", "name": "python3" }, @@ -810,7 +810,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.9" + "version": "3" } }, "nbformat": 4,