{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# How do I make my custom QRenderer\n", "\n", "This notebook demonstrates how to create a user-defined QRenderer. These steps are needed when you intend to configure Qiskit Metal to interface with your favorite (and presently not supported) external tool/simulator.\n", "\n", "To execute all the steps in this notebook, you will be modifying the core code. Therefore, we assume that you have installed qiskit-metal from the github repository, using the README instructions, which will install qiskit-metal in 'editable' mode.\n", "\n", "### Preparations\n", "To get started, enable [automatic reloading of modules](https://ipython.readthedocs.io/en/stable/config/extensions/autoreload.html?highlight=autoreload). This will allow to modify the source code and immediately observe the effects of the changes in the notebook, without the need for reinitiating the kernel or reinstalling the package." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "tags": [] }, "outputs": [], "source": [ "%load_ext autoreload\n", "%autoreload 2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Pre-load all the Qiskit Metal libraries that are needed for the rest of this notebook." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import qiskit_metal as metal\n", "from qiskit_metal import designs, draw\n", "from qiskit_metal import MetalGUI, Dict, Headings\n", "\n", "from qiskit_metal.qlibrary.qubits.transmon_pocket import TransmonPocket\n", "from qiskit_metal.qlibrary.qubits.transmon_cross import TransmonCross\n", "\n", "from qiskit_metal.renderers.renderer_gds.gds_renderer import QGDSRenderer" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Integrating the user-defined renderer with the rest of Qiskit Metal\n", "### Architectural insights\n", "This section will give you the architectural overview of how Qiskit Metal manages renderers, and how you can add your own.\n", "\n", "We will refer to your custom renderer as the `skeleton` renderer, since we will not code tool-specific methods/classes, but only worry about how to bootstrap one without functionality.\n", "\n", "Note that all renderers (existing `gds`, `hfss` and `q3d` as well as the newly created `skeleton`) have to be identified in the config.py file. Therefore, you will be required to modify the `qiskit_metal/config.py` file.\n", "\n", "The following image describe how the QRenderer (superclass of all renderers) interacts with the rest of Qiskit Metal. The key take-away is that creating a QDesign class object initiates all the QRenderer subclass objects as well. Specifically, the `QDesign.__init__()` method reads the `renderers_to_load` dictionary from the config.py file, which enumerates which QRenderers subclasses need to be instantiated. After instantiating the renderer objects, the `QDesign.__init__()` registers them in the `QDesign._renderers` dictionary for later reference." ] }, { "attachments": { "68e1e214-00fe-404e-ad9c-869a18d226f8.jpg": { "image/jpeg": "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eD9MuNZ1jUNOaO3tLWMyzTPuHyoi5JPsK5fxL8Wvil8B/h78MLaw+E2seOtHbRLa31n+yAsmoadcQ20SqptGwXUneHO4bSuOc0AZv7IXw7/ZH0y71P4i/soa28mmalapa3ml2+pz3NpDJvEglktblnlhuDjBLEHaSNvNfc9fll+zh4D8T+Mv2udZ/aK8PfDG/wDhB4LfRP7OntNRgSwuNYvXfcJmtIiVCqMHf/ERk/NX6m0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAf//R/fyiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACkIyCPWlooA+cf2afgRcfALw94v0S51VdWPifxTqviJXSMxiJdRZCISCTkps5PfNfR1FFABRRRQAUUUUAFFFFAHI+LvAPgjx9BaW3jXQrLW47CZLi2+1wJMYJkYMrxlgSjZUcqRnGDxXXUUUAFFFFABRRRQAV8iftA/swat8U/HXh34wfDbxvdfD/x/wCGLWWxt7+GBLqCezmbe0E8L4BUsScjn26V9d0UAfnuf2Pfi18TNe0G9/aY+LcnjHQfDt7FqEWhafp8en2dxdW53RSXDhmdwh524wfav0HVVRQijCqMADsBS0UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB//9L9/KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//T/fyiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/NX4uftlfE3wH8UPE3gnQ9I0eax0S6SCKS4juGlcNBHKSxSZVzlyOAOBXnn/Devxj/6Amg/9+rr/wCSK8P/AGj/APk4H4gf9hGP/wBJLevGK/ofJuD8tq4SjUnRTbjFvfdr1Py3H59i4V5wjU0Tfbufa/8Aw3r8Y/8AoCaD/wB+rr/5Io/4b1+Mf/QE0H/v1df/ACRXxRRXp/6kZV/z4X3v/M5P9Ysb/wA/PyPtf/hvX4x/9ATQf+/V1/8AJFH/AA3r8Y/+gJoP/fq6/wDkiviiij/UjKv+fC+9/wCYf6xY3/n5+R9r/wDDevxj/wCgJoP/AH6uv/kij/hvX4x/9ATQf+/V1/8AJFfFFFH+pGVf8+F97/zD/WLG/wDPz8j7X/4b1+Mf/QE0H/v1df8AyRR/w3r8Y/8AoCaD/wB+rr/5Ir4ooo/1Iyr/AJ8L73/mH+sWN/5+fkfa/wDw3r8Y/wDoCaD/AN+rr/5Io/4b1+Mf/QE0H/v1df8AyRXxRRR/qRlX/Phfe/8AMP8AWLG/8/PyPtf/AIb1+Mf/AEBNB/79XX/yRR/w3r8Y/wDoCaD/AN+rr/5Ir4ooo/1Iyr/nwvvf+Yf6xY3/AJ+fkfa//Devxj/6Amg/9+rr/wCSKP8AhvX4x/8AQE0H/v1df/JFfFFFH+pGVf8APhfe/wDMP9Ysb/z8/I+1/wDhvX4x/wDQE0H/AL9XX/yRR/w3r8Y/+gJoP/fq6/8AkiviivG/GfxWutG8Ux+BfCGhyeItfMPnyxLKsMcEZAILs3cgg9hyOcnFcmN4WybDw56tFJXt9ptt9Eldt+hvh85zCrLlhP8AI/Tv/hvX4x/9ATQf+/V1/wDJFH/Devxj/wCgJoP/AH6uv/kivzD8F/FiXxPea14c1fR20PxHokRlktJpVZHXHDCQAALkrk8jDAgkdNnwz8Q7SbwbY+JvG93p2jy3bSL+7uo3gJR2UBH3MGOByATg1zUMhyKok40lZpvXmVrNJ3vazu9ma1MzzKF059uz31Vu5+kf/Devxj/6Amg/9+rr/wCSKP8AhvX4x/8AQE0H/v1df/JFfmT4q+JNxpXi7wRo+h/Zr3TvFMsyyTgl/kj8vaYmRtvO85yD0rR8ZfEAaXoUupeD59O1S4t7qO2mWa7jjjiLHDBm3qAw7LnPscYpy4fyNe0/dL3N9+ylprro1sCzPMXy+/8AF6d7a6aao/SX/hvX4x/9ATQf+/V1/wDJFH/Devxj/wCgJoP/AH6uv/kivzbsPiz4QvvG134EF1HHe2qKfMaWPypJSwUwxnOWkBP3cZ4NWPij4+/4Vv4WfxH9iN+wljiEW/y8lzjOcN0+lVLh3IlSnW9muWF7u70tv1JWa5k5xp8zvLbbqfo5/wAN6/GP/oCaD/36uv8A5Io/4b1+Mf8A0BNB/wC/V1/8kV+Z+g/FrSNY+Gtz8Rp7c2sdksvn25fLJLF/AGwMk5GOO9N+FXxUi+JGg6jrt3YjRk06bynEkoZduwPuLFVwMHv9azpZFkM506caabmuZfFqu/l8yp5lmcYyk5O0XZ7bn6Zf8N6/GP8A6Amg/wDfq6/+SKP+G9fjH/0BNB/79XX/AMkV+fkXjvwbc6ffanY61Z3VvpyGSdop422AdM88ZPAJ4JrE8HfFTwf4x0CTxBbX0NlFAW86O4mjR4VDFQ0g3fKGx8pPWuj/AFayPmUOSN2m1q9lv1M/7XzHlcuZ2Wm3/AP0e/4b1+Mf/QE0H/v1df8AyRR/w3r8Y/8AoCaD/wB+rr/5Ir88rjx1oN54b1rWvC+o2mqSaVaTzlYpRIA0UbOocKcgEr7Z7Gofhn4pvvGvgjS/E2pRRw3N8jM6xAhAQxXgMSe3rRDhjJZVFSjSTbTas3ayaW9+7CWcZgoOcptJO3T17H6J/wDDevxj/wCgJoP/AH6uv/kij/hvX4x/9ATQf+/V1/8AJFfFFFdv+pGVf8+F97/zOf8A1ixv/Pz8j7X/AOG9fjH/ANATQf8Av1df/JFH/Devxj/6Amg/9+rr/wCSK+KKKP8AUjKv+fC+9/5h/rFjf+fn5H2v/wAN6/GP/oCaD/36uv8A5Io/4b1+Mf8A0BNB/wC/V1/8kV8UUUf6kZV/z4X3v/MP9Ysb/wA/PyPtf/hvX4x/9ATQf+/V1/8AJFH/AA3r8Y/+gJoP/fq6/wDkiviiij/UjKv+fC+9/wCYf6xY3/n5+R9r/wDDevxj/wCgJoP/AH6uv/kij/hvX4x/9ATQf+/V1/8AJFfFFFH+pGVf8+F97/zD/WLG/wDPz8j7X/4b1+Mf/QE0H/v1df8AyRR/w3r8Y/8AoCaD/wB+rr/5Ir4ooo/1Iyr/AJ8L73/mH+sWN/5+fkfa/wDw3r8Y/wDoCaD/AN+rr/5Io/4b1+Mf/QE0H/v1df8AyRXxRRR/qRlX/Phfe/8AMP8AWLG/8/PyPtf/AIb1+Mf/AEBNB/79XX/yRR/w3r8Y/wDoCaD/AN+rr/5Ir4ooo/1Iyr/nwvvf+Yf6xY3/AJ+fkfa//Devxj/6Amg/9+rr/wCSK+uv2Wfj14t+OFv4mfxZY2NlJoktqkX2JZVDi4V2O4Su/I2cYxX43V+kn/BPX/UfED/rtpv/AKLmr5PjXhjAYXL51qFJKSa117+p7XD2cYmtio06k7rX8j9IKKKK/ET9DCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/U/fyiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/CL9o//AJOB+IH/AGEY/wD0kt68Yr2f9o//AJOB+IH/AGEY/wD0kt68Yr+reH/9wof4I/kj8WzT/ean+J/mFFFFeucAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAV8manr9p8K/jxrXiLxfHLBo3iG0iFveiNpEV0VAUO0E8FSMDJHynGDmvrOmSRxyqUlUOp6gjIry80y+WIUHTlyyhLmTtdbNaq60s+6O3BYpUnJSV1JWfT/PsfGnhXxNpPj74w+MfF2jTLHYxaK9rEshEcs52KN4jJ3FfkJ6cDbnGcV5nbLoUHwu8Eazc6zFpuraYupy2sN5atc2l0puHDIQFdQ/TGR39cGvuy+8B+EtR8Q2Xiu506P8AtbT/APVXCZR8bSuG2kBwAeA2cdq6l4IJFCyRqwU5AIBANfL/AOqVaal7aorty1s9eaUZXsmrNONkrvvfoex/blOLjyRdtOq6Jq2zve/ZfqfB/jZ9f8V6Z8Jzo1pH4c1W/j1FYIoUMUcTlowpReqK4+Yem7IzVHUdQ0WX9nyPRdPsxp2paPqkMGpQnO/7TvP7xieTvA79CpA4Ar9AdqkgkDI6e1J5ac/KOeTxWlTg5ylUn7bWceV+7/dirrXR3jd23Tt0TJjn6SjHk0i77+bdtvO34nyLBD4N8N/tIXsfiDT4YRqltA2nZt9wN7JIhEiYU7XJDZfjnOTXeftKf8k9i/6/7X/0MV780UbusjICy9CRyPpTioYYYZHvXqLILYevh1JJVG2nba/fXW3yOJ5p+9p1baxS672+Wn4nwTrnh7XLX4kz/CCwUrovii+tdTc8nbEoLSY9twJP0FTahp+qSfDL4lWegRPth19fMjiBJ+zIo3DA5IHy5HoK+8Nq53YGR3oCqM4A5615r4Mhef7x68yWmykmklrsm2/O9tDs/wBYH7vubW+bTWvzskfDvw70Pwn4m8SPNp+u2OrTy6PNFLp1ppT2sboFG0S5+QsHx6kkVz/hbxH4U0L4K6nb2uhWupa/ZXQW/juLZiqRtM5ikmYAb1TGAueCefQ/f0cEMRJijVCxycADJoEEI34jUeZ97gc/X1pQ4QcUuSaUrSTfK38VtVzSdmrd2tXotwlnqk3zRbV097bX7Jdz4E8E3ltdeMvGs2n3VpdW8/ha9bfYWrWdszLEAdsTddpyC3c5r6e+AX/JJPD/AP1yf/0Y1evrFGgCogUAY4Hb0pwAUYUYA9K78m4ceEqKo6l9JdLfE0+re1jmzDNlXhyKNtuvZNdl3Fooor6g8YKKKKACiiigAooooAKKKKACiiigAooooAKKKKACv0k/4J6/6j4gf9dtN/8ARc1fm3X6Sf8ABPX/AFHxA/67ab/6Lmr4jxE/5FVT1j+aPo+Ff99j6P8AI/SCiiiv5yP1UKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//V/fyiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/CL9o//AJOB+IH/AGEY/wD0kt68Yr2f9o//AJOB+IH/AGEY/wD0kt68Yr+reH/9wof4I/kj8WzT/ean+J/mFKOopKUdRXro4D9F/hD+xh8OPH/wu8K+NtY17XYb7XNNtrydIJrNYlkmjDMEDWrMFBPALE+5r0b/AIYC+E3/AEMfiL/v/Zf/ACHXu/7NP/Jvvw7/AOwHY/8Aola9vr+Z8dxVmMa84xrysm+vmfr2GybCunFumtl0Phn/AIYC+E3/AEMfiL/v/Zf/ACHR/wAMBfCb/oY/EX/f+y/+Q6+5qK5f9bcy/wCgiX3m39iYT/n0vuPhn/hgL4Tf9DH4i/7/ANl/8h0f8MBfCb/oY/EX/f8Asv8A5Dr7moo/1tzL/oIl94f2JhP+fS+4+Gf+GAvhN/0MfiL/AL/2X/yHR/wwF8Jv+hj8Rf8Af+y/+Q6+5qKP9bcy/wCgiX3h/YmE/wCfS+4+Gf8AhgL4Tf8AQx+Iv+/9l/8AIdH/AAwF8Jv+hj8Rf9/7L/5Dr7moo/1tzL/oIl94f2JhP+fS+4+Gf+GAvhN/0MfiL/v/AGX/AMh0f8MBfCb/AKGPxF/3/sv/AJDr7moo/wBbcy/6CJfeH9iYT/n0vuPhn/hgL4Tf9DH4i/7/ANl/8h0f8MBfCb/oY/EX/f8Asv8A5Dr7moo/1tzL/oIl94f2JhP+fS+4+Gf+GAvhN/0MfiL/AL/2X/yHR/wwF8Jv+hj8Rf8Af+y/+Q6+5qKP9bcy/wCgiX3h/YmE/wCfS+4+Gf8AhgL4Tf8AQx+Iv+/9l/8AIdH/AAwF8Jv+hj8Rf9/7L/5Dr7moo/1tzL/oIl94f2JhP+fS+4+Gf+GAvhN/0MfiL/v/AGX/AMh0f8MBfCb/AKGPxF/3/sv/AJDr7moo/wBbcy/6CJfeH9iYT/n0vuPhn/hgL4Tf9DH4i/7/ANl/8h0f8MBfCb/oY/EX/f8Asv8A5Dr7moo/1tzL/oIl94f2JhP+fS+4+Gf+GAvhN/0MfiL/AL/2X/yHR/wwF8Jv+hj8Rf8Af+y/+Q6+5qKP9bcy/wCgiX3h/YmE/wCfS+4+Gf8AhgL4Tf8AQx+Iv+/9l/8AIdH/AAwF8Jv+hj8Rf9/7L/5Dr7moo/1tzL/oIl94f2JhP+fS+4+Gf+GAvhN/0MfiL/v/AGX/AMh0f8MBfCb/AKGPxF/3/sv/AJDr7moo/wBbcy/6CJfeH9iYT/n0vuPhn/hgL4Tf9DH4i/7/ANl/8h0f8MBfCb/oY/EX/f8Asv8A5Dr7moo/1tzL/oIl94f2JhP+fS+4+Gf+GAvhN/0MfiL/AL/2X/yHR/wwF8Jv+hj8Rf8Af+y/+Q6+5qKP9bcy/wCgiX3h/YmE/wCfS+4+Gf8AhgL4Tf8AQx+Iv+/9l/8AIdH/AAwF8Jv+hj8Rf9/7L/5Dr7moo/1tzL/oIl94f2JhP+fS+4+Gf+GAvhN/0MfiL/v/AGX/AMh0f8MBfCb/AKGPxF/3/sv/AJDr7moo/wBbcy/6CJfeH9iYT/n0vuPhn/hgL4Tf9DH4i/7/ANl/8h0f8MBfCb/oY/EX/f8Asv8A5Dr7moo/1tzL/oIl94f2JhP+fS+4+Gf+GAvhN/0MfiL/AL/2X/yHXyF+1D8B/C3wL1PwrbeFtS1G/TXYdRecX7wPtNo1sE2eTDFjPnNuznPGMY5/aOvzJ/4KFf8AIa+Hf/XvrX/odjX03BvEWOr5lSpVq0nF3um/7rPIz7K8PTwk5wppNW/NH540UUV++H5kFfpJ/wAE9f8AUfED/rtpv/ouavzbr9JP+Cev+o+IH/XbTf8A0XNXxHiJ/wAiqp6x/NH0fCv++x9H+R+kFFFfnB+1V+0f8R/BHxB/4QbwLfLo8VhBFLNOsUc0srzLuA/eq6hQO23Oe/avwrI8krZhX+r0LXtfXa34n6NmOY08LT9rU28j9H6K/ED/AIau/aE/6HGX/wABLL/4xR/w1d+0J/0OMv8A4B2X/wAYr7T/AIhZj/8An5D75f8AyJ4P+uWF/ll+H+Z+39FfiB/w1d+0J/0OMv8A4B2X/wAYo/4at/aE/wChxl/8A7L/AOMUf8Qsx/8Az8h98v8A5EP9csL/ACy/D/M/b+ivxBX9qv8AaGb7vjCU454s7I8D/thSf8NW/tCf9DjL/wCAdl/8Ypf8Qsx//PyH3y/+RD/XLDfyy/D/ADP2/or8QP8Ahq39oT/ocZf/AADsv/jFH/DVv7Qn/Q4y/wDgHZf/ABin/wAQsx//AD8h98v/AJEP9csL/LL8P8z9v6K/ED/hq39oT/ocZf8AwDsv/jFH/DVv7Qn/AEOMv/gHZf8Axij/AIhZj/8An5D75f8AyIf65YX+WX4f5n7f0V+IH/DVv7Qn/Q4y/wDgHZf/ABij/hq39oT/AKHGX/wDsv8A4xR/xCzH/wDPyH3y/wDkQ/1ywv8ALL8P8z9v6K/ED/hq39oT/ocZf/AOy/8AjFfQf7NX7TfxP8TfE7TvBXje/XWrXW/MjR3iihkhkijaUEGFUUqVQggjOccjvyY/w3x2HozrucWopt2bvZb7pG2G4rw1WpGmk027dP8AM/Tyiiivz4+nCiiigD//1v38ooooAKKKKACiiigAorzv4m/FHwl8I/DieKfGcs0NhJcR2qmGF53MsoYqNqAnGFPNeDf8Nw/AX/n71H/wXXH/AMTXpYXJ8VXjz0aUpLuk2ctbHUab5ak0n5s+vaK+Qv8AhuH4C/8AP3qP/guuP/iaP+G4fgL/AM/eo/8AguuP/ia6f9W8w/58S/8AAWZf2rhv+fi+9H17RXyF/wANw/AX/n71H/wXXH/xNH/DcPwF/wCfvUf/AAXXH/xNH+reYf8APiX/AICw/tXDf8/F96Pr2ivkBv24/gGil3vNRVRySdOuMAf9819f1w4zLsRh7e3puN9rqxvQxVKrf2ck7dgoooriOg/CL9o//k4H4gf9hGP/ANJLevGK9n/aP/5OB+IH/YRj/wDSS3rxiv6t4f8A9wof4I/kj8WzT/ean+J/mFKOopKUdRXsI4D91P2af+Tffh3/ANgOx/8ARK17fXiH7NP/ACb78O/+wHY/+iVr2+v5HzH/AHip/if5n7jhf4UPRfkFFFFcRuFFFFABRXM+MvF+h+A/DOoeLfEkxg07TYzLKyqXc46KiDlmY8Ko5JOBXz//AMNg/CD+7q3/AILLj/4mlKUYpOTS9Wl+Zz1cXSpu05JH1NRXyz/w2F8H/TVv/BZcf/EUf8NhfB/01b/wWXH/AMRUe3p/zx/8CRl/aWH/AOfi+8+pqK+Wf+Gwvg/6at/4LLj/AOIo/wCGwvg/6at/4LLj/wCIo9vT/nj/AOBIP7Sw/wDz8X3n1NRXyz/w2F8H/TVv/BZcf/EUf8NhfB/01b/wWXH/AMRR7en/ADx/8CQf2lh/+fi+8+pqK+Wf+Gwvg/6at/4LLj/4ij/hsL4P+mrf+Cy4/wDiKPb0/wCeP/gSD+0sP/z8X3n1NRXyz/w2F8H/AE1b/wAFlx/8RR/w2F8H/TVv/BZcf/EUe3p/zx/8CQf2lh/+fi+8+pqK+Wf+Gwvg/wCmrf8AgsuP/iKP+Gwvg/6at/4LLj/4ij29P+eP/gSD+0sP/wA/F959TUV84eHf2pvhZ4o8Rab4X0z+0hfatMsEAl0+eNC7f3mZcKB3J4FfR9aLVKSd0/mdFGvCorwdwooooNQooooAKKKKACiiigAooooAKKKKACiiigAooooAK/Mn/goV/wAhr4d/9e+tf+h2NfptX5k/8FCv+Q18O/8Ar31r/wBDsa+v4D/5G1H5/wDpLPD4k/3Kp8vzR+eNFFFf0qfkYV+kn/BPX/UfED/rtpv/AKLmr826+/P2HPF2keFLLx0dQLy3V1cacttawIZbi4cRzfLGi8n3PQdzXxfH9KU8snGCu7x/NH0HDE1HGRbfR/kfqMzog3OwUepOK/HL9rWyTVP2k7nTXlEKXiaZCZOyCVFUt+Gc1+ifiD4c+I/iy+n3vje6k0DTrC5S4h02zlJlkVTyt1KjBTuHBRQQOu4mvza/bIjWL49arHGNqpZ2IUDsBCMV+f8Ah1h4QxzUZ3lySvbZaxtr1/I+o4qqylhtY6cyt56Pp0PXZbCabxfr3wq8FWPhLTLPQlksobDWLYSahqWyEu9wk2PMLNyVIZQv0Gaxjr2naFefCTwBP4T0jVNK8U6Ppy36PZJ9reS6kMTypcqBKrLw2cnofXNeK2n7R/xAtrWLzbTSrvVYLc2seqz2QbUViKbMecGAJCnAJU4HFRWP7Rfj/TdG03SrK00mO50ezWxtNRNkH1CCFQQNkzsQrYJ5C9zX2qyHF7OKf/bz1dmua9r72ff8D555nQ3Tf3dLrS34dj3TUNN0N/C+r/Dr4TLol3qfh2LUrfU7HUrNH1G8ETvm8tLk4LFY/mVVb5OOCTiuI/Z8tbVPAHjjVvP0PTr61uNNSK91+3jntolfzt6Dej7S+B0HOOeleY2Hx08X6X4f/sOxsNKhufsrWQ1NbJRqPkSDa488HlmXguV3Y755rgNP8X6xpnhbV/B9t5f9n63NbTXG5SZN9rv2bWyMD5zng546V308kxDo1KMnvKLvu3715X0+5P0ZzSzCkqkaiWya7Lay/wCD959saDpqHRbPWJpNNvJdQ0nxzum061ihgk8nYgaNkUF4yCTHkDapwOK5Dxh+zHoPhTwFqGo3OpzRa7pOmrqEk0ktt9jnk2h3tIohIbgOATtdl2sR2zXz9pHxe8YaJoWn+HbL7N9k0y11Szh3xEv5WrgfaNx3DJG0bDgbe4NXNZ+M3iLxB4fOia1pWkXlybVLI6nJZBtRMEYAQGYtjeAAofbuxxnvWMMnx9OqpUppRvr5rmbX4PX/AIBpLH4WcGpxu7aetlf8Uep/Ajxpcr4W8Z6Xc6RpF5F4a8PX2pWclxptvNMLiN0Kl5HUs4G88E9MDoBV7XvhHpHiK9vfiXqF2YPDWo6Ha6lDNawRQRtqU7La/Y0RAEXbMDnA6e/NfNnhnxjrPhKDW7bSPK2a/p82mXPmIWP2ecqW2YIw3yjB5+lel3PxUhT4SeFPhra3FxKljqkmo34cYRFVh5UMf95c7pD6NXTi8srwxDq4bTmaTt2tdvyd1p6mVDGU5UlCrryrT1vp+D/A9c1D9nbwBrniPXPAfgHV9QXXvDd9a291Jfxxi1liupFQmModwMe8Z3D5uwA5rmfjX8CPDXw88LHXtDvrhZ7O8FnLBeTW0jXIOR58It5HKDI5RxuAPtVL4oftJeIPEfiXV5vBMVro+nXN9DdJdQWvk31wLYhoftEm47trDOMDPGa8u8b/ABS1Px5amDUNE0bT5pJ/tE1xYWQguJ5SCCXfc3BzkgAAnmsMtwmac9KdWdo6Np2b2V77bu+mtvy0xdfBcs4wjr0fTd2/T1PMqKKK+0Pngr3/APZZ/wCTgvBn/Xe5/wDSSevAK9+/ZZ/5OC8Gf9d7n/0knrys9/3Gv/gl/wCks7ss/wB5pf4l+aP3Gooor+UD9qCiiigD/9f9/KKKKACiiigAooooA+Kv28/+SLWP/Ycsv/QJa/JCv1v/AG8/+SLWP/Ycsv8A0CWvyQr+gPDL/kXP/E/yR+Y8Yf70vRfqFFe7/ArwJ4b8XXXibW/FUEt9Y+FtMa/+xwvsa5fOFUtgkIMEtjtXvdx8HPCt7peq69eeHNOsov8AhGtR1CybSr+S7t3ltmTbJ84BDJkg8kH2xX0uN4io0KroyTurdt3rbV3emuh5GHyqpUhzpr8T4Nor7d8M/CDwFf8AwVtPFl5p27VZfDOtaiZd7DNxazokMmOnCk+xr4irsy/NaeJdRQT91tO/k2v0MMVgpUVFy+0rlTUP+PG4/wBxv5V/SfX82Gof8eNx/uN/Kv6T6/LPFj48P/29/wC2n2fBPw1fl+oUUVDcXFvaQSXN1KsMMQLO7sFVVHUkngCvyJI+5Pwo/aP/AOTgfiB/2EY//SS3rxivZv2jSG+P/j9lOQdRiIPqDaW9eM1/VnD/APuFD/BH8kfiuaf7zU/xP8wpR1FJSjqK9hHCfup+zT/yb78O/wDsB2P/AKJWvb68Q/Zp/wCTffh3/wBgOx/9ErXt9fyPmP8AvFT/ABP8z9xwv8KHovyCiiiuI3CiiigD4h/bM8WbNN8O/Du3fnVJ21C6XsbexKlAfTM7Rn3ANfDtejfGPxc/jn4seI9cDZtLKX+yrT08mxLK7fVp2k5HUBfSvGvFXiKy8I+GtU8U6krvaaVbyXMojGXKRjJ2j1r8T47xzxGYewhqoWj89387u3yPzrNK7rYiTXojforxvwn8bfDPiXUI9J1GzvPDt3PZ/wBoQLqKLFHPabQxljkDFSApBOSMDrXYn4jeAF02PWT4j08WMsnkpN9pj2NIOqg56j0r5KrgK0JcsoO5xTw84uzR2dFedW3xN8NL/a0mu3MGi2+mXzWKTXNzEEuGChtyYbIBB6Hnua1B8Q/ARmt7ceItP827KCFftMe6QyDKbRnncDx61MsHVX2WJ0Z9jsaK+fZv2i/CltrN7pNzpl/FDa3l3p8d40a/Zpby0RnaIMCSpYLwSMciu28LfFjwd4j0jQL651C20u+8Q20NzBYz3CefiYZVccZJ6DgZ7VtVyvEQjzSg7f1/kXLC1Iq7iemUVy8Hjbwbc6i2j2+uWUl8gkLQC4TzAISRJlc5G3ac56YJ6VUt/iL4AurKbUbbxHp8lrbyLDJKtzGUSR87VY5wC2Dj1wcVz/Vqn8r+4z9lLsdnRVWyvbPUrODUNPmS4tblFkiljO5HRhlWUjqCORVqsWraMzaCiimSSLFG8r8KgLH6DmhJt2QH0z+yZ4UXxB8Tb7xRcJut/C9rtj9rq8BUHpg4jDfQkV+lVfPP7L/g+Twp8JdOuryMpf6+zanODjjz8eUB7CIKcHoSa+hq/pbLcAsLhqeG/lVn67y/Fs/Rspw3sqEU93r94UUUV2npBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAV+ZP8AwUK/5DXw7/699a/9Dsa/TavzJ/4KFf8AIa+Hf/XvrX/odjX1/Af/ACNqPz/9JZ4fEn+5VPl+aPzxooor+lT8jCv0g/4J7wwuvjy4aNTLHJp6K5UblVklLKG64JAJHTivzfr9JP8Agnr/AKj4gf8AXbTf/Rc1fEeIbtlVT1j+aPouFl/tsfn+R+kFfM/xo/Zg8H/GTV4fEV1ez6TqiRiJ5oVDrKi/d3I2OR0Bz07V9MUV/P8AgMxr4Woq2Hlyy7n6dicLTrQ5Kquj8+f+GAPDX/Q33f8A4DR//F0f8MAeGv8Aob7v/wABo/8A4uv0Gor3/wDXnNf+f7+5f5Hmf6uYL/n3+L/zPz5/4YA8Nf8AQ33f/gNH/wDF0f8ADAHhr/ob7v8A8Bo//i6/Qaij/XnNf+f7+5f5B/q5gv8An3+L/wAz8+f+GAPDX/Q33f8A4DR//F0f8MAeGv8Aob7v/wABo/8A4uv0Goo/15zX/n+/uX+Qf6uYL/n3+L/zPz5/4YA8Nf8AQ33f/gNH/wDF0f8ADAHhr/ob7v8A8Bo//i6/Qaij/XnNf+f7+5f5B/q5gv8An3+L/wAz8+f+GAPDX/Q33f8A4DR//F0f8MAeGv8Aob7v/wABo/8A4uv0Goo/15zX/n+/uX+Qf6uYL/n3+L/zPz5/4YA8Nf8AQ33f/gNH/wDF0f8ADAHhr/ob7v8A8Bo//i6/Qaij/XnNf+f7+5f5B/q5gv8An3+L/wAz8+f+GAPDX/Q33f8A4DR//F16z8Hv2TPBvwm8S/8ACWnUZ9a1GFCts0yLGkG8Ydgqk5YjgHPAJ45r6torDFcX5lWpypVKzcXo9EvyRrRyLCU5KcKeq9f8wooor5o9YKKKKAP/0P38ooooAKKKKACiiigD4q/bz/5ItY/9hyy/9Alr8kK/X/8Abg0fWdb+Dtna6Hp11qdwms2chitIJLiQIqSgtsjVmwMjJxgV+VH/AAgnxB/6FDXP/BXd/wDxqv3jw3xdKnl7U5pPme7XZH5txZQnLFJxi3ov1JvBPjrxR8PNcXxD4SvDZ3gRomJUOkkb9UdGyrKcdDXpVx+0l8V59c0/X4762tpdMgmtYYYbSKO38mcgyI8QG1gxUE5HUV5f/wAIJ8Qf+hQ1z/wV3f8A8ao/4QT4g/8AQoa5/wCCu7/+NV9jXjl1WfPU5G7Wu7bHg03i4R5YcyXzPQNW/aA+J2tTX0l5fQLHqGmyaS8MdtGkKWkp3OkaAYQkj7w5rxeuo/4QT4g/9Chrn/gru/8A41R/wgnxB/6FDXP/AAV3f/xqtsNVwNFWpSjH0aRFaGJqO81J/ecZf/8AHjP/ALjfyr+gH/hTPwuzuHhy2BPoGH8jX4UXngH4hy2k0aeENcLMhA/4ld31I/65V/RLX5f4mZi+ah7Cp/Nez9Ox9hwhhNKntYdt16nmX/CnfhyP9Xo6R/7ryD/2asnX/gX4B17RL7RGgntUvomhZ4p5NyhxjIBJGfqK9jor8vhmmJi1JVHdebPsZYOk1ZwX3H4DfGjw7p3hL4weMPDGj+YLLTb2OKLzXaWTb9lhb5nbJJyT1+leaV7P+0f/AMnA/ED/ALCMf/pJb14xX9QZFUlLBUZSd24x/JH47mUUsRUS2u/zClHUUlKOor1kcR+6n7NP/Jvvw7/7Adj/AOiVr2+vEP2af+Tffh3/ANgOx/8ARK17fX8j5j/vFT/E/wAz9xwv8KHovyCiiiuI3CvM/jH40Pw++GXiDxVFg3NrbMtsrdHupsRwJ/wKRlH416ZXwd+2Z4rWe68MfD22kBw76teKp5CQjyrdWHo8js494vzwxWLjh6U8RPaKb9bbL5vT5nFmGJ9lRlM+JrG2NnZw2pcytEgVnY5Z2/iYk9SxySfU1yXxL8PX/i34e+I/C+lFBearYz20Jkbam+RSBuIBwM98Gu3rlH8b+GEkeI3hJjZkOIpCNynBwQuDg+lfz3l2Bx2MrOrhqUqkk+Z8sXLW97uy6s/Noz5WpHyl4k+BXxU+Imk6fF4mm0/RpvDeinTNOitJnmE8jIkbvPIVXapCdAOM1jXH7P3j7+y/tuk6XBZeImulmS5fVWmWJ1iERcoYdjowGCm3OMc19if8Jz4Y/wCfpv8AvzL/APE0f8Jz4Y/5+m/78y//ABNfWwwXEEUorBTsuns5/P1T87ndHNppWVrHwB8WvAHjLwzrckmpqpi1nUtUvvPto5JI2intoovKbZFJ5ckhVgo28dQwr0S3+B+s+LvD2s69p2h22lPrOl+H49Kgu3IuLNrDZ54dtmUJC8Hqe+K+uj448LEYN0xHvDL/APE0v/Cc+GP+ftv+/Mv/AMTW0sJn3s4Rjgaia68k9dU9reS/4Fy3nEuVJbr/ADueCeF/2eo4J/E+ueKVF1qt3falc6WguXa1i+1xlEkaLAUSc8nBIHevNrn4B/F6W28O6OWsGsdJg0XBSfyzHLYFTcbv3ZaUkjMZ3AAcYr7E/wCE58Mf8/Tf9+Zf/iaP+E58Mf8AP03/AH5l/wDia5qeXcQxk5PB1H6056W7aaGUc1qJ3umfMKfADxdaNa6npkWnQaxFrmt6g1wx3Zgv4JY7cP8AL8+GZd6HjGa5DTf2c/iXf3ouvFUVhLHcXOhvdRtc+Yssenyubj5REq4ZW+RMdDjPevs3/hOfDH/P03/fmX/4mj/hOfDH/P03/fmX/wCJq44HiFJ/7HU/8Fz737dylm1Rdv6dzp7e2t7O3jtLSJYYIVCIiAKqqvAAA6ACpqzdL1fT9at2u9NlMsSuYySrL8y4JGGAPetKvgMTh6lKpKnWi4yW6as0/NM8+4VseGvDM/jbxXongy2LA6xdxxSMpwywKd8zj/dQE1j19W/sgeEf7W8baz45uEzBocAsbckcG4ufmlIPqkYCn2evpuCcv+sZhBte7D3n8tvvlZHbl2H9rWjA/Q6CGK2hjt7dBHFEoRFUYCqowAB6AVLRRX7ufpZzfi7xd4f8DaBd+J/E92tlp9mu55G5OScBVA5JJ4AH8q+Wz+3N8FASPK1Y47i0X/47Tv25GZfgpHtJG7VbQHHcbZOK/ODwj8L9N1Xwo3jrxp4ji8MaJJcNaWrtbvdTXUyAGTy41ZcKmRuYnrxj1/TuFOFcDiMF9axjldyskv8AJJts+RzrOcTSxHsaCW19f+HSP0d/4bm+Cn/PHVv/AAET/wCO0f8ADc3wU/546t/4CJ/8dr4ST9n2G2vtXn1vxXb2fhzTtMttXh1WO2eZLqzu5PKjdYt6sp3cMCTg/nXM658CPHVp4uk8KeE7WTxSfssF9FcWcTIr2twu6N3WQjyy3I2sc5BxmvoafCGRSdlOW19XZdOrVr6q63XVHlTz3Moq7ivuv+F79D9E/wDhub4Kf88dW/8AARP/AI7R/wANzfBT/njq3/gIn/x2vzH0X4SfE7xF9q/sTwxfXf2GWWCfbFgxSwhWdHDEYZQw46nPGa2Php8G/GfxE120tbfSL1dIW/hs7+8ji4tQ8irITv8A4kByRg7f4hW9XgfJIRlOU3aO/vL+tehnDiPMJNRUd9tGfpB/w3N8FP8Anjq3/gIn/wAdo/4bm+Cn/PHVv/ARP/jtfmhd/CPx439u6hoWh3upaNod1cW8l5HEShFvIyFuOW6c7Qcd6rp8I/ifLpdnrUXhi+ksdRaJbeVItyymcZj245IYdDjHqapcC5Lb43/4Evu9fIT4jzD+X8Gfpv8A8NzfBT/njq3/AICJ/wDHaP8Ahub4Kf8APHVv/ARP/jtfmY/wd+KcfiBvCr+Fr4assXn/AGfy8sYshd4OdpGSASDwTzXEaxo+qeH9UutE1u1eyv7JzHNDIMPG45wa0peH+T1HaEm+ukk9O+2xE+J8dFXlFL5M/Wr/AIbm+Cn/ADx1b/wET/47R/w3N8FP+eOrf+Aif/Ha/IOiuj/iGmWf3vv/AOAZf63Yvy+4/Xz/AIbm+Cn/ADx1b/wET/47R/w3N8FP+eOrf+Aif/Ha/IOij/iGmWf3vv8A+AH+t2L8vuP2I0/9tz4I315DaSPqNmsrBTLPahY0yerFXY4HsDX1ra3Vve20V5aSLNBModHQhlZWGQQR1Br+cKv20+F2teL7j4UeBtC8KacPPfQtOebUrz/j1h3wIflRTvmk/wBn5VHUselfE8Z8G4fBQpzwzau2nd6ev9fI+hyDPquIlKNVbbWR7h4i8U6H4Vs1vNbuRCJTsijALzTP/cijXLO3soPqeK/MD9uLVvEGs6v4FvtZ0r+ybV4NW+xxSPuuigez3tOq5RCfl2qCSMHJOQB+k/h3wJpui3ja3qE0msa5KMSX91hpMddsagBYkz0VABXwD/wUK/5DXw7/AOvfWv8A0Oxry+B5Uo5pRhDV66/9uvZfq/uR2cRKbwdRy020+a3/AK+8/PGiiiv6KPyoK/ST/gnr/qPiB/1203/0XNX5t1+kn/BPX/UfED/rtpv/AKLmr4jxE/5FVT1j+aPo+Ff99j6P8j9IKKKK/nI/VQooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD//0f38ooooAKKKKAOC1X4qfDLQ9Rn0jWvFuk2F9akLLBPfQRSxsQGAZGcEHBB5HQ1n/wDC6vg9/wBDxon/AIMbf/4uvxu/aRVT+0F8QCQD/wATGL/0jt68X8tP7o/Kv13LvDOnXw9Ou6zXMk9u6v3Ph8VxdKnVlT9ns2t+x+/P/C6vg9/0PGif+DG3/wDi6P8AhdXwe/6HjRP/AAY2/wD8XX4DeWn90flR5af3R+Vdv/EKaX/P9/d/wTn/ANdZ/wDPv8T9+f8AhdXwe/6HjRP/AAY2/wD8XR/wur4Pf9Dxon/gxt//AIuvwG8tP7o/Kjy0/uj8qP8AiFNL/n+/u/4If66z/wCff4n78/8AC6vg9/0PGif+DG3/APi6P+F1fB7/AKHjRP8AwY2//wAXX4DeWn90flR5af3R+VH/ABCml/z/AH93/BD/AF1n/wA+/wAT9+f+F0/B7/oeNE/8GNv/APF16bX81t+iCxnIUfcbt7V/SlXxHF/C0csdNRnzc1+ltrf5n0ORZy8Yptxta343CiiivjD3z8Iv2j/+TgfiB/2EY/8A0kt68Yr2f9o//k4H4gf9hGP/ANJLevGK/q3h/wD3Ch/gj+SPxbNP95qf4n+YUo6ikpR1FewjgP3U/Zp/5N9+Hf8A2A7H/wBErXt9eIfs0/8AJvvw7/7Adj/6JWvb6/kfMf8AeKn+J/mfuOF/hQ9F+QUUVxfijxnbaBPDo2n2z6tr16pa2sISA5UHHmyuciKEH70jfRQzYU81KjKcuWK1NJ1FFXkRfEX4haF8MPC9x4t8RrK9nbsiFIAjTOznACK7JuPcgHOAT0Br8nvHPjo/FDxzrPxAWOSC31Bo4LSKXHmRWtquxUbHrKZX9t9ffHxZ+1+APhxr/wASPFF3Hqni2S2Nnp/y/wCi2dxfEQRR2sJydoZwZHOXdQSxCgBfzZtLWKxtIbKD/V26LGuTk4UYGTXxniTmFGjgIYSnrOctX05Y2drf4rO/W23f5DiHEzbjB6Le3+f+X9LnvF+sNpOkMtu2Lu7PlQ+xbq30UZNeQRRJDEsSfdQYFa+v6n/bOtTXKHNva7oIfQ4Pzt+LDA9h71Ttraa8uYrS2QvNO6oijqWY4A/Ov6P8EuDP7IyeNWsrVa1pS8l9lfJavzbPhMXU5pcqIKK+ntS/Zi1Wyg1TTrTxTpl/4p0S1F3e6NEJPOijwGIEpGxnAOSox9cc1D4h/Zm1nSdIvLvSvEdhq+p6ZYQ6ndaaiyRXMdrMu4Ou4FXwM5we30FfpUeIsE2kqm/k/LXbbVWez6M2eVYhX938v6v5bnzPRXpx+C3xaC6ax8JaiBq/Fr+5P7wkbuf7vHPzYrem+BHjWDQorg2d03iGXUm07+yBaOZAVj8zzPOBMfTt6c5rqlmuGVv3i187/l089jBYGs/sM8Tor13/AIUJ8Zvtp04eD783IVWKBBkKxYBid2ACVYZzjivL9S03UNG1C40rVbd7S8tHaKaGRSro6nBVgehBrehjKNV2pzT9GmZ1MPUgrzi16opVHJ5zbIbVd9xOyxxL6u5wM+3cnsMmpK6jwdpM9/fSaureUlmTFExXdukYfOwz/dB259Sw7V83xxxPSyjLauMqSSaVo3vZye2yb33strhQp80rHpWkaZDo2m2+mwHcsK4LHq7E5Zj7sxJP1rSrO+yXjffvpPoqxj/2XNH9nZ+/czt9JCv/AKDiv84cTRpVKkq1fEqUpNttKTbb1b1UT2LvsXJ5Ut4ZLiThI1LH6Cv1O/Z18IR+BPhFpEd6Fhu9VU6ndsRsPmXeHUNnGGSPYhz3WvzL8C+BLbxx4+8O+DSHlj1S7X7QGlkJ+ywAyz854JjUgH1Ir9Yovg98LYnEo8Lac8g/jkt0dvzYE1+s8AZVhaWFniFOT53Ze6lpH/t56N/+kn1PDmHn71VJdt/+AdBfeOfBOmZ/tLxBp9pjr5t3DHj/AL6YViP8WvhqP9R4js7v/r1kFzn6eTvrobLwf4U07H2DR7S3x02QIv8AIVuLa2qfchRfooFfd3w66SfzS/Rn1Nqvdf180fnn+1H8WfCXxO+DWpW/hhrgy6JrlpDcieB4gGKygFWIwc4PGQwHVRkV8r+H7/wP47+E+k/D/wASeJI/CmpeGb67uLea5t5Z7e5hvSrOD5ILK6MOMjBHfnj9JP2nvhhq3jz4SXeheCrKN76G8ivxAm2MzFN28AnA3HdnkjOPWvyYb4P/ABXRih8HauSpwcWUxH4EKQfwr9o4MrYSrgeSE+Rxm2rtNrS3VWad30/FHwOfwrwxPNKPNeNno7PXyfTTqfZGpfEHw78PfBR1XwN4qsNQFp4asdG0qUL5lxNeWt15k5mtJU/dqVkJXeCpA4OcVPb/ABr+GOv2WrSXOo6bBqviePTdSuV1a1urizhuYIfImtP3OHGwoJIyMphyvBr4u/4VD8Vv+hN1j/wBn/8AiKX/AIVD8Vv+hN1j/wAAZ/8A4ivV/wBXsA03Kt7173vG/TR/NX9b2tc4v7UxN9Kenazt1/zPpPxb8adH1OOCT/hIYZrz/hNrfU7hrGCe2geyt7W3iE4R9x25QjBYuSCSOa66P4lfDDXfFHh7XF8bL4ctvCXiXWL6WL7PcN/aNvfXv2iOSPy14DJ+7YOMgE8dj8ff8Kh+K3/Qm6x/4Az/APxFH/Cofit/0Jusf+AM/wD8RW0sjwHKoxrWtfrHqrdrbPsZrMcTdt0738n0d+/c+1LD45eBH0nT77R9Y0XS7/RZdVT/AImWn3dxcbbq4kkWW2MJVCJkcbg+0g5zxXA6F8bPCOn/ABP8Dapeal5mjaf4UttLnYxyvDZ3zRSJIWi+UsFJUOU6r90nFfNP/Cofit/0Jusf+AM//wARR/wqH4rf9CbrH/gDP/8AEVMMgy6Kmva/Emt49b/5u3/DjlmeKfK+Ta3R9Lf5H1brXxi8OWOlatpNp4i0kGPwzqdlpw0Szu7WOK6uZYnSMPNliz7SwOFVcckk18Hu7yMZJWLsepY5J+pNeh/8Kh+K3/Qm6x/4Az//ABFH/Cofit/0Jusf+AM//wARXrZXQweEUlCqnfe7X6WOLGVMRXa5oPTyZ51RXov/AAqH4rf9CbrH/gDP/wDEUf8ACofit/0Jusf+AM//AMRXq/2hQ/5+L70cX1Wr/I/uPOqK9F/4VD8Vv+hN1j/wBn/+Io/4VD8Vv+hN1j/wBn/+Io/tCh/z8X3oPqtX+R/cedV+6Pwb8U+GdI+Evw70nVNWtLS+vNF0xYLeWdEmlaSFFUJGTubJ4GAa/Hyy+Cvxd1C8hsbbwdqoluHCKZLSSJMscDc8gVVHqWIAr9ZfBXwu8A+NPAHgzT/FFjHqGqeBoItPdiGilhurWIQyI2MMBnDqM4PyupIwT+b+I2Jw1WjSjKd0m78tm1pp17n1fClKtCc2o62W+nU+ka/Mn/goV/yGvh3/ANe+tf8AodjX3QPAviHRvm8H+Kbu3ReRa6l/xMrf6FpCLgD0CzAe3Svzz/bnn8WSav4Dh8WWtnDLDBqwims5XdJwz2W4mN0BiK4HG987uvFfD8D4eKzSjKE01r5P4X0f6Nn0fEVV/U6ilG23puv61sfCtFFFf0WflIV+kn/BPX/UfED/AK7ab/6Lmr826/ST/gnr/qPiB/1203/0XNXxHiJ/yKqnrH80fR8K/wC+x9H+R+kFFFeFfFf9on4c/B69t9L8TS3F1qFyvmC2so1lkSPoGfeyKoPYbs98Y5r+fMHgq2IqKlQi5S7I/T6+IhSjz1HZHutFfFf/AA3f8Hf+gbrX/gPB/wDJFH/Dd/wd/wCgbrX/AIDwf/JFe1/qhmf/AD4kcH9uYT/n4j7Uor4r/wCG7/g7/wBA3Wv/AAHg/wDkij/hu/4O/wDQN1r/AMB4P/kij/VDM/8AnxIP7cwn/PxH2pRXxX/w3f8AB3/oG61/4Dwf/JFH/Dd/wd/6Butf+A8H/wAkUf6oZn/z4kH9uYT/AJ+I+1KK+K/+G7/g7/0Dda/8B4P/AJIo/wCG7/g7/wBA3Wv/AAHg/wDkij/VDM/+fEg/tzCf8/EfalFfFf8Aw3f8Hf8AoG61/wCA8H/yRR/w3f8AB3/oG61/4Dwf/JFH+qGZ/wDPiQf25hP+fiPtSiviv/hu/wCDv/QN1r/wHg/+SKP+G7/g7/0Dda/8B4P/AJIo/wBUMz/58SD+3MJ/z8R9qUV8V/8ADd/wd/6Butf+A8H/AMkV6h8Lv2mvhj8WdYbw/oEl1ZajsLxwXsSxtKq/e2FHdSR6Eg+g61hieGMwowdSpRkord2NKWb4aclCFRNs+hKKKK8I9EKKKKAP/9L9/KKKKACiiigD8I/2kP8Ak4L4gf8AYRi/9I7euo+CvwGh+L/hDxXrEGptZ6popijs4cL5dxLIjOEYnnJK4GPWuX/aQ/5OC+IH/YRi/wDSO3qn4G+Lep+AfCWp+HtGtit7falYajFeCXb5LWLE7PL2ncHzgncMehr+mcPDEyymgsI7T5Ya+Wl9/L/gH5FVlRWNqOurxvL9bfiel65+yz4tOrraeFpYmshbWRefUp4rUNeXUQk+zR5xufsBj8c1V1L9lbx5ZeH/AA7fW1zbXOt67dTWr6X5kaSwPETkbzIQ5UAmQBR5fQ5JruNa/a603xVqMtz4q8DJfWqXdpqFrCuoPE0N3aIFVi6xfOhIztIGOmTWJYftXXcM2laxqPhmK61rSNVvdRinW6eKIx6gSZoTFsPYgK+44wDjqD5tOtnvLG8Fdb/Dro+vN3tfReV9TrlDLbu0nr66a+nbbfzsM8Lfsta5dweJLbxJNbpc2+mRX2lXdvexGwlLTFJDJNgjaoU56Y9+K463/Ze+LU2p3+lz2tnZtYzx2wluLyKKG4nmjEscduxP7xmQggAex5BA9AvP2ptH1K51WDWPCd5q2k6zYiyntbzWpZWx5plLJJ5IKDkABQOgJJ6VLc/tZWGsXrP4l8ERX9lY6ha6lpUCX8kLWk1nEsUYdxGfNHyhjkLz2xjBCvnicn7Na/4dNtvf9b3suqfQJU8taS5tvXz3930t/TPK4P2bfizNotzq76fBbSwLdSLZTXMaXsyWbFZ3igJ3MqEY9+MZyM7fxt+Al58ODL4g0kMnhoLZxQyXkyefPcTwLJIIVAUuqEnJAwMEZJBx1kv7WE1/GNb1fwrDceLra3vrW01Jbp44oYr9mZs220hym7Ay4zXOfFf9oxfiz4Wbw1rHhtIGtJLeTTbkXO6S02RrHOhxEvmJNtLYJXaSOW2jHTQq5zLEwdWCULtO1tm1t72unXR6vTa+NWGAVKShJuXTf/L+tNdz5Z1D/jxuP9xv5V/ScCD0r+bG/wD+PGf/AHG/lX9BDfB34SMcnwVogPqNOtgfzCV8n4pRpudD2ja+LZX7eaPb4NcuWryrt19fJno9Vr29s9OtJb/UJ47W2gUvJLKwREUdWZmwAB6muA/4U78Kh9zwnpqf7ltGv/oIFZetfAv4Xa3pF5o8uhxWsV7E0TPb5jkUMMEqeQD6cGvyqFPDcy5pyt/hX/yR9pKVaztFff8A8A/Hz9ot0l+Pvj6SNg6PqERUg5BBs7fBBrxqvTfjX4d0jwl8YvGPhjQIPs2m6bexxQRbmfav2WFj8zksckk8nvXmVf1BkSj9So8r05Y/kvU/Hcyv9YqX3u/zClHUUlKOor1kcR+6n7NP/Jvvw7/7Adj/AOiVr2+vCP2c7q1sf2dPAN7ezJb28Gg2TySSMFRFWFSWZjwAB1Jra+2678Tv3ekST6L4Tb794MxXmor6W/RoYD/z14kcf6vaMOf5PxWGc8RVk3aKk7v5v735fpqftdGqo0oJauy0NHV/F2qa1qNx4W+HqpPeW7eXeajIN9nYHuvGPOuB2iU4XrIy8K3R+F/COl+FYJjatJdX14wku724O+5uZAMbpHwOB0VQAqD5VAGBWxpOkaZoOnQaRo1tHZ2dsuyOKJQqqPYD9T3PNaJIAya5auJXL7OkrR/F+v8AlsvXV7QpO/NPV/l6f5/8Mfn/APtkeK3vPEPhr4f27nyrKN9Yu1xwXfdb2nPUji4Yg8ZVTyQCPhLxlq76ZpJgtW23d6fJiI6rkZZ/+Arkj3wO9epeOfFX/CdePvEnjVZPMt9UvXFqQcr9jtgILdl9BIiCXHq5r5m1vU/7b1ma+U5t4MwW/oVU/O4/32HUdVANfK8LcN/6wcUqnNXo4e3N2917f9vTb/7dv2PzfOsbz1Z1F6IzIo0hjWKMYVAAB7CtPSNRl0jVbPVoAGks5o5lB6EowOP0rPor+4XFNcr2Pl1Jp3P0B8PfF74Dan448RePILrVPDvifxVYSwO1/Ek2m207xhSVMLeaQ23ALADucVhax+0V8MtI1G+8W+EdN1O+8UXel2ujk3nkxWCRW4Cu6BGeRvMA43AcYOByK+G6K+Yjwjhea8nJqyVm+i6d7aLS/wCbPZee1rWSSd77dX17XP0Uvv2sfAl1ew32nXOr6QtxJFLc28Om6e6b0i8tt8jPvnVhxztO3uMYrovhp8cfhB4h8WXOh6VZNoFi815exRXZgtraYPbpCYgWl2K8rbiIzhAP4q/MmiuarwRg3Bwg2tLf13+ZrDiKvzKUrP8Ar8D9EPi58YfDPhO91bS9N1ma/u9YGi3CJp/kGHT47GXMlo0kMxUnaoI2lgScE96+Nvi54u0vx58R9d8XaNHLFZancGWNZ1VZACB94KzAH6E15xRXq5Tw/RwlpRd5Wtf7un/bqOLHZpUr3T0X/D/5jGWeVo7a1G64uHEcY/2m7n2A5PsDXu+labBpGnW+m233IFC57serMcd2OSfc1534G0z7Xeza5MMxW26GDPd+kjj6fcH/AAKvVK/jn6QnGn17MlllGX7ujv5ze/8A4CtPW5phKXLG76hRRUNzOttbyXD8LGpY/hX8+06cpyUYq7Z1H2L+xx4Ta98QeI/H1wuYbBE0q1JwR5r7Zrg47EL5QB64Yjp1/QGvIvgT4Kl8A/CrQNBvIzHftD9quw2NwubomWRWxj7hbYPZRXrtf0zhMHHDUYYaO0El8+r+bu/mfpWW4b2VCMOoUUUV0HcFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABXl3izTr7wzq5+InhyBpyEWPV7OIZa7tU6TRqOtxAMlccyJlOTs2+o0Vvh67pyvuuq7r+vuepnVp8ysUtO1Gx1ewt9U0ydLm0u41liljO5XRxlWBHUEV+a3/AAUK/wCQ18O/+vfWv/Q7Gvtn/kmOv/3fCOu3H/AdNv52/wDHbe5c/RJT/dk+X4m/4KFf8hr4d/8AXvrX/odjX2PBdBQzahKOsXe3/gL0fmuv+TR4Wf1ObA1E91a/3o/PGiiiv6MPygK/Qb9g7xT4b8O/8Jpa6/qdvp0l/Pp4g+0SrEJCqSgqpYgbueBnJ7A1+fNfo5/wT/tLW+sPiHa3sKXEMkumhkkUOrAxzcEHINfF8fuP9mT59rx29UfQcMX+uR5ez/I/SZWV1DoQysMgjkEGvxk/bMZj8fNWUnIW0sse37oV+lvi/wCB2j6vpZsfBOo3Pgmdpo5WfTXkSEiNg5H2VZEgySPvbM/WvzS/ansYV/aBfTfEOoM0IttLiu7wphvL8tRJLsQHnblsKOvQV+feHFOjHHOdOd3yy0tZrWPqnf1ufUcVym8OoyjbVa306nAa/wDBbV/D/wAItH+LFxeI8epyDzLMJiSCCXd5ExbccrIFJ+6McDJrF1z4MfFTw3o41/W/DN5a6eXSPzSgYbpDhOFJbDEgA4wScA5r6H1v47/DjxPfeLfBl1pEWn+HNW0xtOtdTj+0tMwsVzYFoMlY1LD5tkYPPPc1HrHxg8Fah458e6jb6/Lb2Wt6fo9tY3Qt5nKzWc0DO6xMoOYtrOobaGxgHmv0KhmmZLSdLz1T2bjZe71V5b3do6o+Yq4PCP4Z+W/VJ669HZeWu58+eIPgz8U/CukS694h8NXdjp8Eccsk0gXaiStsXdgkg7sAg8jIyBkU6x+C3xV1PS31uw8MXk1ilsl55wUbTBIu9WXJyxK/NtGWxgkYIr6+0TxX8OfGnxE0jwzp9zBrt54yttTsfEl5YWk+n20sDxiWG5aG4O0XKNGXeRRjJPU4Fcyvxb+G3imbxSfHusQP4duLydrTRm06c3kMcFutvaS2N3CdkTuqIrrJhflOR8xNZRz/AB1rOlqld+7LZuySje93aTTbSta9inleG359Nt1va+9vNbX1ufC9FKcZOOlJX3B84FFFFABRRRQAUUUUAFfQH7LBI/aB8GgHAae5B9x9kmP8xXz/AF7/APss/wDJwXgz/rvc/wDpJPXlZ9/uNf8AwS/9JZ3ZZ/vNL/EvzR+4tFFFfygftQUUUUAf/9P9/KKKKACiiigD8I/2kP8Ak4L4gf8AYRi/9I7evF8iv3N8Tfs0fA/xh4hv/FPiTw0t3qmpyCW5m+1XUZkdUVAdqTKo+VQOAOlYf/DIn7On/Qop/wCBt7/8fr9nyzxJwtDDU6Mqcm4xS6dFbufAYzhKvUqzqKS1bfX/ACPxOyKMiv2x/wCGRP2dP+hRT/wNvf8A4/R/wyJ+zp/0KKf+Bt7/APH67v8AiKeD/wCfUvw/zOf/AFMr/wA6/H/I/E7IoyK/bH/hkT9nT/oUU/8AA29/+P0f8Mifs6f9Cin/AIG3v/x+j/iKeD/59S/D/MP9TK/86/H/ACPxOyKMiv2x/wCGRP2dP+hRT/wNvf8A4/R/wyJ+zp/0KKf+Bt7/APH6P+Ip4P8A59S/D/MP9TK/86/H/I/EK/I+w3H+438q/pQr5qP7IX7ObAq3hFCD2+23v/x+vpWvguNOKKOZuk6UWuW+9utu3ofS8P5PUwimptO9tvK4UUUV8OfRH4RftH/8nA/ED/sIx/8ApJb14xXs/wC0f/ycD8QP+wjH/wCklvXjFf1bw/8A7hQ/wR/JH4tmn+81P8T/ADClHUUlKOor10cB+tf7MtrH43+G3hDSPGcuIND0qxey0cgrFcQCMeTfTE/68PjKp9yNhhgXGR9sAY4FfL/wX8JR+JP2d/hpd2U50/WdO0Syksb1BlonMK5VhxvifAEiHgjkYYKw9o8IeLn1xrjRdagGneINN2i7tc5BB+7NCxxvhkxlW+qsAwIr+Wc6bq1ZzhtFu67a7+j7730fRv8AZsAuSEYy3aWvfT9P+G8u4rw39o3xlJ4L+EOuXVnL5Wo6og0yzYHDLPefu96+8SFpf+AV7lXwh+11B448SeJPDXhvQfDOq6rpWlwS6hJPZ2klxC13MTBEuYwcPFGJSQe0o/H5+rOpCnOpSi5Sim0lrd9Fb1t8jTMqsoUZOK1PiCWwhfTm0uFntojF5KtEdrouNo2nBwQOhrjI/hxpMUaxRXt4qIAAA0WAB0H+qr2T/hBviR/0JOvf+Cy5/wDiKP8AhBviR/0JOvf+Cy5/+Ir8hyf/AFny/n+pKrDmd3ZNXfmfnUsHUe8H9x49/wAK80z/AJ/73/vuL/41R/wrzTP+f+9/77i/+NV7D/wg3xI/6EnXv/BZc/8AxFH/AAg3xI/6EnXv/BZc/wDxFe3/AKx8a/8AP2t+IvqMv+ff4Hjp+HumAE/br047B4v/AI1WZpPgqzv7Zprm5vYWDsoG6LkA8f8ALP8AOvdR4G+JH/Qk69/4LLn/AOIrL0bwX8QZ7ASW3g/W54zJKN8enXDrlXIYZCYyCCD6EYr18PxLxesFWUpVnPmhZ+9dK0r26a6X+RDwMuZe5+B5l/wrzTP+f+9/77i/+NUf8K80z/n/AL3/AL7i/wDjVew/8IN8SP8AoSde/wDBZc//ABFH/CDfEj/oSde/8Flz/wDEV5H+sfGv/P2t+Jf1GX/Pv8DxDUfA9hY2rXUdzfT7CMqrxZx6j91zTrPwRo97CHTUL1Xx8yb4tyH0I8rrXtv/AAg3xI/6EnXv/BZc/wDxFVLj4c/EK5YSN4I19JV4EiabcBx+OzkexyK9jDcU8UyoKjWdeM7t86cnppZOL0su6s/J2sS8BO/wfh/wDmdN0+20qwg060BENugRc8scdyeMk9Se5q9WpH4J+KVsG+2eC9baFFLGb+zbhNqqMkuCmOncH8KTTPDfjXWrKPUdH8J61e2sv3JYdOuHRsehCV+dZhwZnHtHVnRlPmd+ZJu7ffS6b7NJ+RaoVL25Xf0Myu3+F/hBfH3xL8O+FJo/NtJLkXd4CpZTa2n711bGMCQhY8+rCsv/AIQb4kf9CTr3/gsuf/iK+wP2SPhxrej3/iHxz4p0i60m7kWPTrOO8heCYQjE07hHAO128sA46oeT29bhHhXF08dCviqMoxh72qtqvh/Gz9Ez0MtwE514qUXY+3aKKK/XD9DCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAKWo6dY6vYXGl6nAl1aXcbRTRSDcjo4wykehBr8n/21LHxHo2q+CfDmsl7yy0uDVRY38jbnnt5Ws9kcueTNDs2u38SlGzuZgP1tr8yf+ChX/Ia+Hf/AF761/6HY19rwBWazOlB7O/yfK9f0/pW+f4mp3wc5ddPzR+eNFFFf0efk4V+kn/BPX/UfED/AK7ab/6Lmr826/ST/gnr/qPiB/1203/0XNXxHiJ/yKqnrH80fR8K/wC+x9H+R+kFfkp+2n4A8VRfFOXxnFp80+lanbW6JPGhdEeFdhRiM4Y4yAe1frXRgHr2r8R4bz6eXYn6xGPNo01tp/SP0PNstjiqXspO2tz+cz+yNV/58p/+/bf4Uf2Rqv8Az5T/APftv8K/ozor9A/4ixL/AKB//Jv/ALU+X/1KX/P38P8Agn86VvZa/aSedaQXUEm1l3Rq6ttcbWGRg4IJBHccVD/ZGrf8+U//AH7b/Cv6M6KX/EV5b/V//Jv/ALUP9Sl/z9/D/gn85n9kar/z5T/9+2/wo/sjVf8Anyn/AO/bf4V/RnTWdUxuIGTgZPU+lP8A4ixL/oH/APJv/tQ/1KX/AD9/D/gn8539kar/AM+U/wD37b/Cj+yNV/58p/8Av23+Ff0VyXdrCMyzIgzj5mA59Oe9L9qtv3g81P3Qy/zD5R7+lH/EWJf9A/8A5N/9qH+pS/5+/h/wT+dP+yNV/wCfKf8A79t/hR/ZGq/8+U//AH7b/Cv6MUdJFDxsGVuQQcginUf8RYl/0D/+Tf8A2of6lL/n7+H/AAT+cz+yNV/58p/+/bf4Uf2Rqv8Az5T/APftv8K/ozoo/wCIsS/6B/8Ayb/7UP8AUpf8/fw/4J/OZ/ZGq/8APlP/AN+2/wAK+nv2RvAfijVfjNpHiKCwlTT9A82e5mdCqL5sLwqmTj5iXyB1wD9a/ZWiuLMvE2pXw86EaCXMmr8199HpZHRhOEI06sajqXs77dvmFFFFflp9kFFFFAH/1P38ooooAKKKKAPxB/aJ8V+LbX49eO7Oz8QanbW8F/EscUN/cRRov2SA4VEkVQMkngdTXjf/AAmPjX/oZtY/8GV3/wDHa9G/aQ/5OC+IH/YRi/8ASO3rxev6jyHA0XgaDcFflj0XZH45meIqLEVEpPd9fM928NeBP2g/GPhseLPDV3rl/pjGUK8eq3G5zCSHCp525iCOwrzq11z4k32oR6TZ63rs17NIsSQpf3hkaRjtVQvmZyTwK+m/Bnxs8PfDT4K+EH0+0tdZ8Vadfaq0UT3DI9j9oYhZnjUHeGB4DYBr2g/FDw3ongLwl8Z3ghsPEXjC60/T7+UwoEWGxmP2qaNSMD5TjI5wc+leDWx9alOSlhYuLk4w0S1Te++lle9l5LqenTwtOcVas00k5a97bba3dra/ofFN5ovxn0/w1f8AinUNX1q2tdM1EaVcRyaldrPHdeX5m0xGXdgL1OMVww8W+OWQyL4j1kovVhqN5gfU+ZX6N3/xq0PQ9R1Rk8W6PqS6v4ytZPl8qRU0WWBQxYFRgoBtd+SDnmqv/Ce/B2z0mdNJ1zRIPC8FvrEWpaWYka6vrqV2+zvD8u5geqEEADp2xhRzmaV6mETvtZeV7fDvfRd+tjSpl8W/drtW7vz9fv8A1PzubxX47Rd7+ItaVemTqN4Bn6+bTP8AhMfGv/Qzax/4Mrv/AOO19u/Fb4oeBfEfg7x74Ws9Q0qa0g07QX0dYUiEr3e8fa9jgbmdVADei8etfAFfS5O6eJpudTDqDT2suqT7LvZ+aZ5GPUqMlGNVy+fm138jZvPGnjiK0mkj8T6wGVCQf7Su+CB/11r+iuv5sNQ/48bj/cb+Vf0n1+a+KdCFOWH5IpfFsvQ+t4MqykqvM77fqFFFFfkx9sfhF+0f/wAnA/ED/sIx/wDpJb14xXs/7R//ACcD8QP+wjH/AOklvXjFf1bw/wD7hQ/wR/JH4tmn+81P8T/MKUdRSUo6ivYRwH7qfs0/8m+/Dv8A7Adj/wCiVrufGHhE6+LfVdJuP7O1/TMtZ3YGcZ+9FKv8cMmMOv0YYYA1w37NP/Jvvw7/AOwHY/8Aola9vr+S8ZWlTxVSUd+Z/mz9uoQUqMU+yOL8H+Lh4iS407Urf+ztd00hL2zY5KMfuyIf44n6o46jg4IIHaVw/i/wlLrT2+u6FOuneItNB+y3JGUdTy0E4HLwv3HVT8y8jmz4R8WReJYJ7e7t20/WNOYRX1lIQXhkxkEH+KNxyjjhh+VZ1qMZR9rS26rt/wADt22fRuqc2nyT36Pv/wAH+vTr6KKK4joCiiigArzP4Rf8iTCfW81D/wBK5a9MrzP4Q8+BLU+t1qH/AKWzV20/93n6x/KRzy/ix9H+h6ZRRRXEdAUUUUAFefaz8PbG5v5Nf8NXUnh7WpDue5tQDHO3/TzAfklz3Y4fHAcV6DRW1GvOm7wf9efcidOMlaR5WnjrV/CzrafEmxWziyFXVbXdJYP6eZn54Ce+8bc8K7V6db3Fvdwpc2sizRSDKuhDKwPcEcGpHRJEaORQysCCCMgg9QRXmNx8PrjQ531H4cXo0WVjuexcGTTpj3/dDmEn+9FgDqUY103o1d/df4f5r8V6GPvw81+P/B/rc9QorzXTviJFbXkei+OLNvDupSHbGZWDWlwf+mNwPlPrtbawHUV6BZXtnqNsl5YTJcQSZ2yRsGVsHBwRx1GK562GnT+JfPp8nsawqxlsy1RRRWBoFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAV+ZP/AAUK/wCQ18O/+vfWv/Q7Gv02r8yf+ChX/Ia+Hf8A1761/wCh2NfX8B/8jaj8/wD0lnh8Sf7lU+X5o/PGiiiv6VPyMK/ST/gnr/qPiB/1203/ANFzV+bdfpJ/wT1/1HxA/wCu2m/+i5q+I8RP+RVU9Y/mj6PhX/fY+j/I/SCiiiv5yP1UKKKKACiiigD57+Pmo/tH2DeDv+GetK0rUxNrEKa//akmzytMP33h+dPm65xuYcYRuceV/tuDx82hfCpPhrKsGuP4/wBDETTed9lGfOx9qEHzmDdjeOmK+2Kx9e8QaH4W0i51/wASahBpem2aF5rm5kWKKNR3ZmIAoA/Ciy+H3xi+JXxa0Xwl4ws7DxBqY8bePJr6G9udUtNFfybHRzG8TW/78IvzGAEYzuHc1Hq0Pge31P4peCYfFSvZ61LJeXPixxrmbN4tYhKaJrtr5oUW8jZgjntyji3U5UKxB/aif4zfCW28M2PjO48YaVHoWpSiC2vWu4hBNKf4Efdgt6jqO9aD/FD4cR+Ko/A8nibTl8QTIkiWBuoxcOkg3IVjzk7hyMdR0oA8n/ZF12LxD+z/AOGL238PHwxbxC6ghtFnuLqFo4biRFnt5bsm4aCYDzIhJ8yowXoBX0nRRQAUUUUAFFFFABRRRQAUUUUAf//V/fyiiigAooooA/CP9pD/AJOC+IH/AGEYv/SO3rxevaP2kP8Ak4L4gf8AYRi/9I7evF6/q3h//cKH+CP5I/Fs0/3mp/if5nZ+APAmufEjxTa+EvDwQXdyHfdK21ESMZZmPoBXVeJ/AfjddVg8FaVqB8ZQaZD5kI013uYIEY/MAuPkORyMCsX4Wa3pHh3xnaaxrWrX+iRW6uY7zTUWS4ilx8p2PwyHkMPSvsbXP2jfhL4kGs6G1xquiRahDZF9ZsLaOK8up7UksXjUgKDwByfpXm5tjcZSxK9lT5oW7bO9m/PTotfzOvA4ahOi+efLK/fddvv6vQ+SPCvwg8X+JDLPdWz6NYR2k10t5dxSLA/kp5gjVgD8zgHb24NZVn8LviHfXFnbweHrwfb54raF3hZY2kmxsBYjABBzk8AV9LL+0R4Yt77QoEvdSl0fTPCN1pE0TpnfqMqsiyFd2G4IBf8ASvYfiR8cfBXgWeeG21S/1XVtQsdDX7JGVaxt47V0nd45Fbh3XIYY+9XBVzzMY1VBUb82y10s7P8AB3d9OnU6oZdhHBy9ptv939I/PLxf4O8ReA9eufDXim0Nnf2rEMpOVYAkbkYcMpxwRwa5ivXvjl4q8N+NviNqXinwtfXl7ZakfO/0xPLeF3JJiQAt8i9q8hr63AVak6EJ1VaTSuttfmeFioRjUlGDur6FTUP+PG4/3G/lX9B+py/FRb+caNbaLJZbj5RuJ7lJSvbeEiZQfoa/nw1D/jxuP9xv5V/SfX5T4pVeSeHdk9Jb/wDbp9pwbDmjV1tt+p5n9p+MK/e0/Q2/3bq5/rDR/aPxaX72jaU3+7dy/wBYhXplFflP1tf8+4/j/mfa+wf8z/D/ACPwC+Mdzrl58XfGV14ngW11aTUn+0RJ9xCsaLGF9QYghz3zmvOK9n/aP/5OB+IH/YRj/wDSS3rxiv6jySalg6MkrXjHReiPxvMY2xFRXvq/zClHUUlKOor1UcZ+6n7NP/Jvvw7/AOwHY/8Aola9vrxD9mn/AJN9+Hf/AGA7H/0Ste31/I+Y/wC8VP8AE/zP3HC/woei/I808YfGT4W+AL9NK8ZeJ7HSbx13iGaUCTb6lRkgfWvmv4t/Fv4TeL4rLVfAPxS0rw9r9i2DclmP2i3zu+zyFRnZuAboSOcYyc/lDd6rf6/fXXiDVpmuL/VJXubiVjlpJZSWYk/U8eg4qsXVeGIGfWv2bK/DanS5Kvtnzeit9zvofAYziyU+aHs1b1dz9yov2oPgGY0MvjjTFcgbgJSQD3GcVJ/w0/8As/8A/Q86b/39P+FfhkWVRliAPegEEZHIqf8AiFWG/wCfsvuQ/wDXOt/IvxP3N/4af/Z//wCh503/AL+n/Cj/AIaf/Z//AOh503/v6f8ACvwzoo/4hVhf+f0vwH/rpW/kX4n7h3n7TvwJe0mSx8eaXHcFGEbPIWUPj5SRgZGevNeTfA39of4caF4Dj0/4geONHj1Fbq7dY4WKhY5JncE9c7ixI/2SK/JWiuiHhph1SlR9q7Np3sr6X/zMZcXVXNT5Fpfq+tv8j9zP+Gn/ANn/AP6HnTf+/p/wo/4af/Z//wCh503/AL+n/Cvwzorn/wCIVYX/AJ/S/A2/10rfyL8T9zP+Gn/2f/8AoedN/wC/p/wo/wCGn/2f/wDoedN/7+n/AAr8M6UdaP8AiFWF/wCf0vwD/XSt/IvxP6MdG1jS/EOkWWvaJcpeafqMMdxbzxnKSwyqGR1PcMpBFaVeO/s8f8kE+HP/AGLulf8ApLHXsVfimJpKFSUF0bR+gUp80VLuFFFFYmhj+INB03xPot5oGsRCazvo2ikUgHhhjI3AjI6g44NfHWs/HL4M/suwP8M/Dv8AaGv3Fm5d7OGVZvshkwdjSyFVUn72zOec96+ztVne20u8uYjh4oZHU+6qSK/nFi1C41aP+2b1y9zqJa6mYnJaSc+Y5J+rGv0LgXIVmHtKdab9nGzaXVu9vuPl+I8yeF5J04rnd9eyP1A/4eC+F/8AoS9T/wC/9v8A/FUf8PBfC3/Ql6n/AN/7f/4uvl/Xf2cb7Rfgba/Flr5nv2SO5uNP2r+6tJW2rL/e6YYk8YNcDe/Ab4t6f4dfxXdeHZl0tIY7gyh42JhlAKuEVixByO2a+yocKZBUTcZdXHWVtV0V9zwamdZnHRrpfa+h9vf8PBfC3/Ql6n/3/t//AIuj/h4L4W/6EvU/+/8Ab/8AxdfJHh79m74kXOs6DD4r0mfSNJ1i6itnuQ0bvD5wLIWQMSuQOMisDxB8DvHmmeKbXw/pWmS30Wr3Vzb6XKGT/Shak7zw2FIAyQ2KceEsglPkUul/i069duj+WonneZqPM4/gfa3/AA8F8Lf9CXqf/f8At/8A4uj/AIeC+Fv+hL1P/v8A2/8A8XXwze/A/wCK1h4aufFtz4elTTrWIzu++MsIRwZdgYsY8/xAY79K7nxJ+zd43XxXeaF4F0271W0so7YvPdeTARLcRLIIx8+0sd3ygHOOtEuEsgTs5d/t6aWvd/NAs7zNq/L/AOS97/5H1b/w8F8Lf9CXqf8A3/t//i6+gPgN+0RpHx4l16DTNFutHbQVtGf7Q8b+YLszBdvlk42+Sc59RX4o6lpt/o+oXOk6rA9reWcjRTRSDDxyIcMpHqCK/Qf/AIJ6f8hL4i/9ctF/9Cvq83izg3AYTL54nDp8ytbW+7SOvJM+xNfFRpVXpr08j9MKKKK/HD7wKKKKACiiigAooooAKKKKACvzJ/4KFf8AIa+Hf/XvrX/odjX6bV+ZP/BQr/kNfDv/AK99a/8AQ7Gvr+A/+RtR+f8A6Szw+JP9yqfL80fnjRRRX9Kn5GFfpJ/wT1/1HxA/67ab/wCi5q/Nuv0V/wCCfmqabb3XjfR5bhVvbtrGWOI5BZIklDEHocZ6ZzjnpXxPiFBvKqlu6/NH0PC0ksbG/n+R+l9FFFfzifq4UUUUAFFFFAHz18fPAvxx8bN4OPwW8cQ+CxpWsQ3WsebD5326wX78C/K2CeePlBz94Yrhf2xPCGu+JvDngHVtP8Mz+NNH8K+LtO1bWtFtkE0t7p8UU8R2254n8maSKbyjkN5fTivr+igD8IfFGiah4yf4zeDNC+HHiXwmvinVYdS0fTIfCsF5JZ2p0oWUs6wzYjthqE64eSI749gLgbq0bz4GfE26j8Y+BtQ+El5P4v8AFGmeB7fRdbjgU2ejXOladFFczDUid8Zt5E6KcuRjkV+5tFADI1ZUVXbcwABPqfWn0UUAFFFFABRRRQAUUUUAFFFFAH//1v38ooooAKKKKAPjD4g/sV+DviF441rx1e+JdUsrnW51nkhgFuYkZYkiwu+MtjCA8k81yH/DvrwL/wBDfrP/AHza/wDxqvv6ivoaPFeY04KnCs0lovQ8ueS4WUnKVNXZ8A/8O+vAv/Q36z/3za//ABqj/h314F/6G/Wf++bX/wCNV9/UVp/rjmf/AD/kT/YWD/59o+Af+HfXgX/ob9Z/75tf/jVB/wCCfngZjk+MNZP/AAG1/wDjVff1FH+uOZ/8/wBh/YWD/wCfaPgH/h314F/6G/Wf++bX/wCNUf8ADvrwL/0N+s/982v/AMar7+oo/wBccz/5/wAg/sLB/wDPtH5/Sf8ABPfwHLG0b+L9ZKsMH5bXof8AtjX6A0UV5mY5xicXyvEzcrbX8zrwuBo0b+yja4UUUV5p1n4RftH/APJwPxA/7CMf/pJb14xXs/7R/wDycD8QP+wjH/6SW9eMV/VvD/8AuFD/AAR/JH4tmn+81P8AE/zClHUUlKOor2EcB+6n7NP/ACb78O/+wHY/+iVr2+vEP2af+Tffh3/2A7H/ANErXt9fyPmP+8VP8T/M/ccL/Ch6L8j+bKy/49Iv90V+h1peaj8LPAPw6svhx4ItfEsviXTP7U1WaS1NzLPkp5kQIBKhN4HHI+XHfP542X/HpF/uivd/Av7RPxa+HWiJ4d8MawI7CEsYo5oY5/K3ncwjMikqCeSo4zzX9J51l1XEUaapJO2ri20no1uuz1PyXL8XClUnz3V+qSbWvn3Psz4leHPC3wD0Xxj468AeHrK/1GbW7eyC3EIni06CW1inYKhyFDO/0+ZR2FeP6n8PvDPjW48Q/Fj4o6FdeAtK0q005ptP02NWlupr1ii3Cq/CIx4I4PHPIOfLH/ae+KcfifUfFOlz2thPq8UCXkMduj287wKFEzRyBh5hAALDsABwAKxNM/aI+LmleJdT8WRa2Zr7WEjjulnijlhkWH/VjymBQbMnbgDGTjqa8HB5BmFOF3Je0sry5nzP4bx2aWzs9d72TueliMzws5Ws+XXSyt113v1Wmh9D3v7Lvw08LLqOp+K9b1SXTUn00WX2ZYlleLU2KRiZWXhlYHcRjjtTdS/Zg+Gg1KTR9E1zU5bnSNfsNI1EzLEqlL8rtMJC9UVxyR1zx0r5q1X46fE7W01CPVdWFyNTu7e9m3wxn99aEGHbx8iKR9xcL7c10vhX9oPxjZeMl1zxRci70/UNXstV1OOKCJHmksyuwoQBtwFHAwD361s8rzeMXN17tLZPf4fL/F87fKFjMA3yqnZf8P5+n4ntx/ZW8B+KJ5bXwFr2oI+j6yulakb+OMfe6tDtAyRnjPX0qTQP2ZvhP4wdtY8O65qyaHYPqVrfG4SJbgXGnhTuiwCChy2QeenSvFvHv7TPxN8W619osdVax0+yv2vbJIoo4ZFIY+V5pQDeVXj5s1Q1P9pj4w6texX11q0SvFBcW4SO1hSMpdgCUlAuCzAD5uo7daiOWZ04L98k/XbTr7uuvpbzHLF5epP93f5b/jp+vke7aF+y58O/FbaT4l0LW79PDN3pk1/KlwYUui8TFQqucIqnHJPT1AqnrX7Nvwt8Kr4n8Q674gv7nw/ollZX8f2JreW42XLtG0TkZQkMBggjg55r570D48fE7wzFo9vpGppFDoUEttbRmCJlMMxy6SAr+8BI/izjtVfX/jf8SPE9rr1jrGopLb+JIoILyMQRIpitm3RrHtUeWAeflxnvW8cpzb2tnX9z11tzf4d+Xr8vMzeNwPJpT978L29drn1b4l+DPwm+HXw5+JKTG7v7i0Wxe1u5EiM8S3UaSQIrYAAMhxJgZK4xzX58ivbJv2hfincprcVzqMMqeILWOzu1a1hKtFFGYl2jbhWCHG4c9D1ArxMdq9jIMDiqEZ/Wp8zbTve/2Un0VtUcGZ4mjUcfYxslfp5t9z94v2eP+SCfDn/sXdK/9JY69irx39nj/kgnw5/7F3Sv/SWOvYq/mbH/AMep6v8AM/XsP/Dj6IKKKK5DYyte/wCQHqP/AF7Tf+gGv51PBX9kh9COvNImmgWxuTEoeQRAKW2qSATjtkV/RXr3/ID1H/r2m/8AQDX85PhiCC6tdItrq4W0hljgR5mUssalVBYqOSB1wK/YPCte7if+3f8A24+F4z3o/P8AQ/QS5/az8Eav4l1fQNT8MxQ+C7+wbTVuYoSdRNuseIldDJs2hyeAeBXOH9oHwDFr+sybtRudIufDVno0EbRBGea3UK5ZRJhA2PvDJ56V8deIrCx0jV7/AE/StRTVrS1kZIruNGjSdR0dUf5lB9DX01afBPTYPiNa2up6Je/8I7daRHeWas0kSahe/ZElNvHOe7uzcK2eMCvq6+SZbhopvmScb772s7668z07fI8WlmOLqtrTR/nft0Pf4f2pPgnY6fDZ6dHqVvAlxZXK26WMQWLyMB18wSBnJ5O5s+gxUXhP4j/2J8H/ABn8RtShRIG1C/m8LSzOn2jdqB2PtjBJUq2WOe2a5Lw9+zx8N9fXUI7+1m0PUGttNuDaS3MjnTpJN0tzA5ySxMMbld+WX8K+WfjX4d0fwf8AErW/C3htZItJsZQLeKSR5NqlQerkk5zXkYHKcvxFR4ag5X0k+bXRW2afW9r63V+6Z3YnHYqlBValrapW7u/5WvbTofR3/DQ/w5uvgm/gfWor/VNT/shrCOCeGPZFcFSFlF0pDlFJBClT0xXd6Z+1X8MovE+t39xJqken37WLiI2sU0cv2a3SJ1MbPmNyV4dW5AX0r84KK+kqcGYOSknfVt792n28keTDiDEK1raW/C/+Z1vjzWdH8ReM9a13w/Zmw06/upZoIGOTHG7EgH/Dt0r7n/4J6f8AIS+Iv/XLRf8A0K+r866/RT/gnp/yEviL/wBctF/9Cvq4+PKahk9SC2XKv/Jkb8NTcsfGT63/ACZ+mFFFFfzmfqoUUUUAFFFFABRRRQAUUUUAFfmT/wAFCv8AkNfDv/r31r/0Oxr9Nq/Mn/goV/yGvh3/ANe+tf8AodjX1/Af/I2o/P8A9JZ4fEn+5VPl+aPzxooor+lT8jCvvb9ifwuPE+i+PUtpjZ6lZXWmXFldKPmhnSOfB91IJVl6FSRXwTX6Sf8ABPX/AFHxA/67ab/6Lmr4vj+rKGWTnHdOP5o+g4YgpYuKfZ/kfd3gzxS/iSymg1CEWWs6Y/kX9tn/AFcuMhlzyY5B8yN3HHUGuyrxP4p+HvHSX+l+L/hfHCNXt5Y4b5XYKbmwLgvGAwKs45KliMdjXC/Gz9qfw38HNYt/DjaTNrGqSRLNLEkqwrCr/dDOVbLHrgDGO9fhVLKKmKnFYNXcr+6nqrb3vsuzZ+kVMdGjFuu7Jde9/wBe59TUV+dX/DwTTf8AoSJv/A9f/jNH/DwTTf8AoSJv/A9f/jNep/qFm3/Pn/yaP+Zx/wCsmC/5+fg/8j9FaK/Or/h4Jpv/AEJE3/gev/xmj/h4Jpv/AEJE3/gev/xmj/ULNv8Anz/5NH/MP9ZMF/z8/B/5H6K0V+dX/DwTTf8AoSJv/A9f/jNH/DwTTf8AoSJv/A9f/jNH+oWbf8+f/Jo/5h/rJgv+fn4P/I/RWivzq/4eCab/ANCRN/4Hr/8AGaP+Hgmm/wDQkTf+B6//ABmj/ULNv+fP/k0f8w/1kwX/AD8/B/5H6K0V+dX/AA8E03/oSJv/AAPX/wCM0f8ADwTTf+hIm/8AA9f/AIzR/qFm3/Pn/wAmj/mH+smC/wCfn4P/ACP0Vor86v8Ah4Jpv/QkTf8Agev/AMZo/wCHgmm/9CRN/wCB6/8Axmj/AFCzb/nz/wCTR/zD/WTBf8/Pwf8AkforRX51f8PBNN/6Eib/AMD1/wDjNeufBv8Aa48NfFjxUng+fRpdDvrhGa3LzCdJWTJZMhEIO3kcHPPpXPiuDMzoU5ValG0Vq9U/yZpRz/CVJqEKmr8n/kfXNFFFfMHsBRRRQB//1/38ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAPwi/aP/wCTgfiB/wBhGP8A9JLevGK9n/aP/wCTgfiB/wBhGP8A9JLevGK/q3h//cKH+CP5I/Fs0/3mp/if5hSjqKSlHUV7COA/dT9mn/k334d/9gOx/wDRK17fXiH7NP8Ayb78O/8AsB2P/ola9vr+R8x/3ip/if5n7jhf4UPRfkfhbb/ssftFRQJE3gW4JUAf8fdj2/7eKm/4Zc/aJ/6EW5/8C7D/AOSK/cyivuY+J2YJWUYfc/8AM+bfB+FbveX3r/I/DP8A4Zc/aJ/6EW5/8C7D/wCSKP8Ahlz9on/oRbn/AMC7D/5Ir9zKKr/iKGYfyw+5/wCYf6nYXvL71/kfhn/wy5+0T/0Itz/4F2H/AMkUf8MuftE/9CLc/wDgXYf/ACRX7mUUf8RQzD+WH3P/ADD/AFOwveX3r/I/DP8A4Zc/aJ/6EW5/8C7D/wCSKP8Ahlz9on/oRbn/AMC7D/5Ir9zKKP8AiKGYfyw+5/5h/qdhe8vvX+R+Gf8Awy5+0T/0Itz/AOBdh/8AJFH/AAy5+0T/ANCLc/8AgXYf/JFfuZRR/wARQzD+WH3P/MP9TsL3l96/yPwz/wCGXP2if+hFuf8AwLsP/kitzw7+yF8fNf1SHTdR0AeHraVgJLy6ubeRIk7sqQSSM7AdF4BOMkDJr9sKKip4nZi4tJRXyf8AmOPCGFTvdv5r/I57wl4bsPBvhbR/COlbvsWi2kFlBu5by7dBGucd8KK6GiivzyUnJuT3Z9SkkrIKKKKkZla9/wAgPUf+vab/ANANfzk+GbK61K00nTrGMzXNzHBHGgwCzsoAHJA5Pqa/o217/kB6j/17Tf8AoBr+b/RSV0mwZTgiCEgj/cFfsXhTe2It/d/9uPhONf8Al1fz/Q6TXtF1Xwzqt7oWu2zWmoae7RTwsVJR16qSpIP4EivojxN+zt4q0nQtL1TSNbOq3N5Ck6Wbxm2k2m2W5Y25aV/O2KcHCqcjgV8yyM0pZpSXZ85JOSc+9eneG/ijq+k/EDTPiHrKHVb3SljESbvs6/uIhFED5YHAUAEYyw6nvX6Zj6eLajKjJXSd1b4nbRa7Lfr958hhp0LtVE9Wra7Lr6/cehTfAPW9M8GXXi7xHrclneQvPHJZxRJOVeDAxJK1zEQTnBCo5XnIrrb79lC/g1mx0yTxR5j3guS2+xKzH7NCsxMMZuD5qNu2hiycivFLj4yeOrvTrzSLqa1ubS8nubhluLG1uJEku2LSGOWWNpEJzwVYEdqw5PiN4wl8R3/iyS/3apqcE1vcS+VHhorhPLkATbtXK8ZUAjqDmvNWEzV3bqxW+yXyW3T5/M63XwS+w3t1+/r1LPxN8BP8NvFcvhaW/XUHiihlZxH5LoZkD+XJHvkCOucMNxwe9ef10fibxZr3jG8g1HxHci8ure3ithKURZGjhXanmMoBkYKANzZYjqa5yvfwkaqpRVZ3lbVrv+B5ddwc26asugV+in/BPT/kJfEX/rlov/oV9X51kgDJr9Q/2BPBuq6Z4W8S+PbxPLsvEstrBZ5IPmx6f5weYY/haSZkGecoTjGCfj/EStGOVzjJ6tq33p/kj3uFYN4yLS2T/I/QGiiiv50P1UKKKKACiiigAooooAKKKKACvzJ/4KFf8hr4d/8AXvrX/odjX6bV+ZP/AAUK/wCQ18O/+vfWv/Q7Gvr+A/8AkbUfn/6Szw+JP9yqfL80fnjRRRX9Kn5GFfpJ/wAE9f8AUfED/rtpv/ouavzbr9JP+Cev+o+IH/XbTf8A0XNXxHiJ/wAiqp6x/NH0fCv++x9H+R+kFfjR+2ClvJ+0RqEd5IYbd4NPErqNxSMxgMwHcgZIFfsvX40/tgSwwftE6hPcQi5iig093iYkLIqxglCVwQGHBIOfSvzfwy/5GEv8D/NH1nF/+6r/ABL8melJ8Lfh5bfEHwZpeneCVuvDOp6jEkOupqD3tpfQeS7PHPESypIWAO35cYIAbt5PB+zH4gu9Ture81e1097GM3eo28UM15Np0MshW3R4rZXZ5ZACfLTlAMscYq34b/aE8H+BHtIvAfgqTTbQ6hFf3sM+pyXQk8lGVY4S8f7ofNksQzHgZrQ0z9qbEdzLr2gSy6lq1utrqV/Y372N1cJbvutZA6Idssakq7c+YMDAAxX30KObU23STtZLVpt6vWzlJLR9Hvy6Wul8zKpgZ2U2t+idtlpok9/wv1sx8/7POraZ4U1XwkbW3v8AxNc6/pdtYXgVow1rd20kufnUOi4G6RSMgqeDgVoeGv2TopPFmj2niPxEJNDv5bm0klitLm0m+2wQtKII1uIxkFQ0glxsZUZeGIrkov2kp9KvZb3w9pVwsn9q2GpRPqGoSX8gW0t3t5IpJJFDN5oc8gqEzgDpi7c/tI6fF4r0HxRpOi6m50m8lupYNR1ue+idJ4XhaKFXQLFtWRtrkM3TPGQbnTzm0lHS6evu78vrprtbrfpYmMsBdN9H57X9NdO/kc3p3wBs9RS0uf8AhONMt7TXLqSz0KWSC5H9pyxFUchdmYUEjCPdJ/EDxjBN3S/2aNYu7HTRqniTT9K1rWpb+2sdNmWVpZrnTpnhljMiAoo3Jwx4OQADU2nfG/4fWltotjd+Bpbu28IXkt3oQbU3VoPOdZmS5Ii/fjzl3jhcD5emc5w/aCurjXvBHiLU9JE914UvtTvp9k2xbt9SujcsFGw+UFJ2j7/9K7JSzZ3Ubrffk6KXLt393mv1b5bLbBLAr4vLbm7q/wB2tvLfUxPg78MvDHxAg8Xv4p1z+w28P6XLeR5jd9rRnDSyBFbMcXG9B8zbht6Guts/2XPFF9oK6tb6tC11c28l9aWwtbrbPZIWKzG48vyY2kRd6RM24gjOCcV5n8OviHZeDdY1241jSzqumeJLC6068t45zbyeTdEMTHLtfawIHJU8enWvWrn9o7TdR8O2+jajo2qI1jatYW62euT2tsbVSRAJoUTDvHGQpbK78ZYdq1zH+04128PflbX8tlprvZ77/gzPC/U3TSq7q/fv5eW34k3h39mLZ4o0i28a+JLS00PWb23t9Nmg3PJq0c6eZutwoYx8YBaQYDHBri/Cvw38G3Xx8074eT69FqWiNfmJpxFMnmlGYfZiCoYOSNhbGzPOcV017+0ha3lzo0o8KQQxeEdQtLrQESbabO2gAWW3lYR5mEoGSx2kN82D0rzSH4g6BpfxcsfiV4e0OW1s7S+W/axlu/OZ5d5eQed5YwGJ4+Q496jD08ykqntm03BpW5bX6ed9vK9+liqs8HFx9naykr73t1+X42t1ufVF14A+HWsa/NqdnomkPYxp4itlawjnhhZ9Ntw0e63mO0SRM3Lr95uemK8On/Zl8Y2vg1/EUt5H/acFgNSk037NcAralQxP2op5BkCnJjDZxnnioNB+PSaLZSWbaIZhJca9OT9o2/8AIajCbceWf9VjOf4v9mtXX/2iU8T+ETpGr6dqQ1c2CWLS2+sTwWD+WoUStZIu0sVGCu/aTyQa5KGFzSjJRp3cdL3aeib7vaz1tZ7WN6lbB1E3Lf5rovLvsfMIORkV7/8Ass/8nBeDP+u9z/6ST14AOBivf/2Wf+TgvBn/AF3uf/SSevps9/3Gv/gl/wCks8jLP95pf4l+aP3Fooor+UD9qCiiigD/0P38ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAPwi/aP/wCTgfiB/wBhGP8A9JLevGK9n/aP/wCTgfiB/wBhGP8A9JLevGK/q3h//cKH+CP5I/Fs0/3mp/if5hSjqKSgcc165wH7q/s0/wDJvvw7/wCwHY/+iVr2+vwZ8OftAfGzwloOn+GPD3jC5tNM0uFLe2hFvaMI4oxtVdzQMxwOMkk1tf8ADUP7Qv8A0PF1/wCA1l/8j1+F4vw0x9SrOalGzbe76v0P0ijxbhowjFp6Lsv8z9zKK/DP/hqH9oX/AKHi6/8AAay/+R6P+Gof2hf+h4uv/Aay/wDkeuf/AIhfmH88fvf+Rr/rjhe0vuX+Z+5lFfhn/wANQ/tC/wDQ8XX/AIDWX/yPR/w1D+0L/wBDxdf+A1l/8j0f8QvzD+eP3v8AyD/XHC9pfcv8z9zKK/DP/hqH9oX/AKHi6/8AAay/+R6P+Gof2hf+h4uv/Aay/wDkej/iF+Yfzx+9/wCQf644XtL7l/mfuZRX4Z/8NQ/tC/8AQ8XX/gNZf/I9H/DUP7Qv/Q8XX/gNZf8AyPR/xC/MP54/e/8AIP8AXHC9pfcv8z9zKK/DP/hqH9oX/oeLr/wGsv8A5Ho/4ah/aF/6Hi6/8BrL/wCR6P8AiF+Yfzx+9/5B/rjhe0vuX+Z+5lFfhn/w1D+0L/0PF1/4DWX/AMj0f8NQ/tC/9Dxdf+A1l/8AI9H/ABC/MP54/e/8g/1xwvaX3L/M/cyivwz/AOGof2hf+h4uv/Aay/8Akej/AIah/aF/6Hi6/wDAay/+R6P+IX5h/PH73/kH+uOF7S+5f5n7mUV+Gf8Aw1D+0L/0PF1/4DWX/wAj0f8ADUP7Qv8A0PF1/wCA1l/8j0f8QvzD+eP3v/IP9ccL2l9y/wAz9x7iCK6gktp13RyqUYZxlWGCMjnpXzDF+xj+zfBEkMXhWRUjUKo/tLUOABgD/j4r81v+Gof2hf8AoeLr/wABrL/5Ho/4ah/aF/6Hi6/8BrL/AOR668N4fZvQv7Gso37SkvyRhW4owNS3tKbfqk/1P0t/4Y2/Zz/6FaT/AMGWof8AyRR/wxt+zn/0K0n/AIMtQ/8AkivzS/4ah/aF/wCh4uv/AAGsv/kej/hqH9oX/oeLr/wGsv8A5Hrq/wBTM9/6Cf8AyeX+Rj/rBlv/AD5/8lR+lv8Awxt+zn/0K0n/AIMtQ/8Akij/AIY2/Zz/AOhWk/8ABlqH/wAkV+aX/DUP7Qv/AEPF1/4DWX/yPR/w1D+0L/0PF1/4DWX/AMj0f6mZ7/0E/wDk8v8AIP8AWDLf+fP/AJKj9Lf+GNv2c/8AoVpP/BlqH/yRR/wxt+zn/wBCtJ/4MtQ/+SK/NL/hqH9oX/oeLr/wGsv/AJHo/wCGof2hf+h4uv8AwGsv/kej/UzPf+gn/wAnl/kH+sGW/wDPn/yVH6eaZ+yN+zzpV7Ff2/hGOaSIghbm6urqI45+aKeZ42HsykY46V9GRRRQRJBAgjjjAVVUYVQOgAHQCvw3/wCGof2hf+h4uv8AwGsv/kej/hqH9oX/AKHi6/8AAay/+R65MT4eZtWadaspW7yk/wA0b0uKcDT/AIcGvRJfqfuZRX4Z/wDDUP7Qv/Q8XX/gNZf/ACPR/wANQ/tC/wDQ8XX/AIDWX/yPXL/xC/MP54/e/wDI2/1xwvaX3L/M/cyivwz/AOGof2hf+h4uv/Aay/8Akej/AIah/aF/6Hi6/wDAay/+R6P+IX5h/PH73/kH+uOF7S+5f5n7mUV+Gf8Aw1D+0L/0PF1/4DWX/wAj0f8ADUP7Qv8A0PF1/wCA1l/8j0f8QvzD+eP3v/IP9ccL2l9y/wAz9zKK/DP/AIah/aF/6Hi6/wDAay/+R6P+Gof2hf8AoeLr/wABrL/5Ho/4hfmH88fvf+Qf644XtL7l/mfuZRX4Z/8ADUP7Qv8A0PF1/wCA1l/8j0f8NQ/tC/8AQ8XX/gNZf/I9H/EL8w/nj97/AMg/1xwvaX3L/M/cyvzJ/wCChX/Ia+Hf/XvrX/odjXzT/wANQ/tC/wDQ8XX/AIDWX/yPXnnjj4k+P/iVc2F1491ybWX0tJktvMjgjEYuDGZMeTHHnd5Sdc4xxXvcM8BYzB46niasouMb7N31TXbzPNzfiXD18POlBO7/AM/U4qiiiv14+ECv0k/4J6/6j4gf9dtN/wDRc1fm3X6Sf8E9f9R8QP8Artpv/ouaviPET/kVVPWP5o+j4V/32Po/yP0gr88v2o/2ZvHnj/xx/wAJ34GSLUTeQxQz2zSLDIjQjaGUuQhXHuD7HrX6G0V+E5JnVbAV/b0LXtbXax+j5hl9PE0/ZVNj8Uv+GQvj/wD9C2v/AIGWv/x2j/hkL4//APQtr/4GWv8A8dr9raK+y/4ijmH8kPuf/wAkeD/qdhf5pfev8j8Uv+GQvj//ANC2v/gZa/8Ax2j/AIZC+P8A/wBC2v8A4GWv/wAdr9raKP8AiKOYfyQ+5/8AyQf6nYX+aX3r/I/FL/hkL4//APQtr/4GWv8A8do/4ZC+P/8A0La/+Blr/wDHa/a2ij/iKOYfyQ+5/wDyQf6nYX+aX3r/ACPxS/4ZC+P/AP0La/8AgZa//HaP+GQvj/8A9C2v/gZa/wDx2v2too/4ijmH8kPuf/yQf6nYX+aX3r/I/FL/AIZC+P8A/wBC2v8A4GWv/wAdo/4ZC+P/AP0La/8AgZa//Ha/a2ij/iKOYfyQ+5//ACQf6nYX+aX3r/I/FL/hkL4//wDQtr/4GWv/AMdo/wCGQvj/AP8AQtr/AOBlr/8AHa/a2ij/AIijmH8kPuf/AMkH+p2F/ml96/yPxS/4ZC+P/wD0La/+Blr/APHa+gf2cP2WPiN4S+JGn+OvG8cWkwaJ5jxQrIk0k0ksbxY/dkqFCuSTuznAx1x+llFcmO8RsfXozoyUUpKzsnez33bN8NwrhqVSNRNtrXV/8AKKKK+BPpQooooA/9H9/KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD8Iv2j/8Ak4H4gf8AYRj/APSS3rxivZ/2j/8Ak4H4gf8AYRj/APSS3rxiv6t4f/3Ch/gj+SPxbNP95qf4n+YUUUV65wBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABX6Sf8E9f9R8QP+u2m/wDouavzbr9JP+Cev+o+IH/XbTf/AEXNXxHiJ/yKqnrH80fR8K/77H0f5H6QUUUV/OR+qhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH//0v38ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAPwi/aP/wCTgfiB/wBhGP8A9JLevGMiv3V8R/s3/BLxdr194n8ReFYL3VNScSXE7SzK0jhVQEhZAPuqBwO1Y3/DJ37PP/QmW3/f64/+O1+y5Z4lYWhhqdGVOTcYpdOit3PgcZwlWqVZ1FNatvqfiHkUZFft5/wyd+zz/wBCZbf9/rj/AOO0f8Mnfs8/9CZbf9/rj/47Xd/xFTCf8+pfh/mc/wDqZX/nX4n4h5FGRX7ef8Mnfs8/9CZbf9/rj/47R/wyd+zz/wBCZbf9/rj/AOO0f8RUwn/PqX4f5h/qZX/nX4n4h5FGRX7ef8Mnfs8/9CZbf9/rj/47R/wyd+zz/wBCZbf9/rj/AOO0f8RUwn/PqX4f5h/qZX/nX4n4h5FGRX7ef8Mnfs8/9CZbf9/rj/47R/wyd+zz/wBCZbf9/rj/AOO0f8RUwn/PqX4f5h/qZX/nX4n4h5FGRX7ef8Mnfs8/9CZbf9/rj/47R/wyd+zz/wBCZbf9/rj/AOO0f8RUwn/PqX4f5h/qZX/nX4n4h5FGRX7ef8Mnfs8/9CZbf9/rj/47R/wyd+zz/wBCZbf9/rj/AOO0f8RUwn/PqX4f5h/qZX/nX4n4h5FGRX7ef8Mnfs8/9CZbf9/rj/47R/wyd+zz/wBCZbf9/rj/AOO0f8RUwn/PqX4f5h/qZX/nX4n4h5FGRX7ef8Mnfs8/9CZbf9/rj/47R/wyd+zz/wBCZbf9/rj/AOO0f8RUwn/PqX4f5h/qZX/nX4n4h5FGRX7ef8Mnfs8/9CZbf9/rj/47R/wyd+zz/wBCZbf9/rj/AOO0f8RUwn/PqX4f5h/qZX/nX4n4h5FGRX7ef8Mnfs8/9CZbf9/rj/47R/wyd+zz/wBCZbf9/rj/AOO0f8RUwn/PqX4f5h/qZX/nX4n4h5FGRX7ef8Mnfs8/9CZbf9/rj/47R/wyd+zz/wBCZbf9/rj/AOO0f8RUwn/PqX4f5h/qZX/nX4n4h5FGRX7ef8Mnfs8/9CZbf9/rj/47R/wyd+zz/wBCZbf9/rj/AOO0f8RUwn/PqX4f5h/qZX/nX4n4h5FGRX7ef8Mnfs8/9CZbf9/rj/47R/wyd+zz/wBCZbf9/rj/AOO0f8RUwn/PqX4f5h/qZX/nX4n4h5FGRX7ef8Mnfs8/9CZbf9/rj/47R/wyd+zz/wBCZbf9/rj/AOO0f8RUwn/PqX4f5h/qZX/nX4n4h5FGRX7ef8Mnfs8/9CZbf9/rj/47R/wyd+zz/wBCZbf9/rj/AOO0f8RUwn/PqX4f5h/qZX/nX4n4h5FGRX7ef8Mnfs8/9CZbf9/rj/47R/wyd+zz/wBCZbf9/rj/AOO0f8RUwn/PqX4f5h/qZX/nX4n4h5FGRX7ef8Mnfs8/9CZbf9/rj/47R/wyd+zz/wBCZbf9/rj/AOO0f8RUwn/PqX4f5h/qZX/nX4n4h5FGRX7ef8Mnfs8/9CZbf9/rj/47R/wyd+zz/wBCZbf9/rj/AOO0f8RUwn/PqX4f5h/qZX/nX4n4h5FGRX7ef8Mnfs8/9CZbf9/rj/47R/wyd+zz/wBCZbf9/rj/AOO0f8RUwn/PqX4f5h/qZX/nX4n4h5FGRX7ef8Mnfs8/9CZbf9/rj/47R/wyd+zz/wBCZbf9/rj/AOO0f8RUwn/PqX4f5h/qZX/nX4n4h5FGRX7ef8Mnfs8/9CZbf9/rj/47R/wyd+zz/wBCZbf9/rj/AOO0f8RUwn/PqX4f5h/qZX/nX4n4h5FGRX7ef8Mnfs8/9CZbf9/rj/47R/wyd+zz/wBCZbf9/rj/AOO0f8RUwn/PqX4f5h/qZX/nX4n4h5FfpJ/wT1/49/iB/wBdtN/9FzV9Mf8ADJ37PP8A0Jlt/wB/rj/47Xo3gH4U/D74Xx30XgLRo9IXUmja4EbyP5hiBCE+YzdAx6etfP8AFHHmHx+DlhqdOSbtvbo79z1Mm4bq4auqspJpX7noVFFFflh9kFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAf/T/fyiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/1P38ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/9X9/KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//W/fyiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/2Q==" } }, "cell_type": "markdown", "metadata": {}, "source": [ "![QDesign Data Flow_skeleton_660.jpg](attachment:68e1e214-00fe-404e-ad9c-869a18d226f8.jpg)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### QRenderer inheritance and subclass management\n", "\n", "Presently, the config.py file references three QRenderers subclasses, which handle the `gds`, `hfss` and `q3d` interfaces. Explicitly, QGDSRenderer is a subclass of QRenderer. Both QHFSSRenderer and QQ3DRenderer subclass from QAnsysRenderer. The class QAnsysRenderer is a subclass of QRenderer.\n", "\n", "The `renderers_to_load` dictionary in the config.py file needs to be updated to inform Qiskit Metal about the new renderer `skeleton` you are going to create. `renderers_to_load` stores the explicit path and class name so that Qiskit Metal will load to memory by default only those specified renderers. This happens during the `QDesign.__init__()`.\n", "\n", "For this notebook, we created a sample class named QSkeletonRender in `tutorials/resources/skeleton_renderer`. This class is your skeleton to develop a new QRenderer subclass. Feel free to edit the class content at will. If you change the path to the file, please reflect that in the remainder of this notebook. Presently, you can find the production QRenderers subclasses in the package directory `qiskit_metal.renderers`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### TODO: Let's tell Qiskit Metal where to find your new custom renderer\n", "As the first step, please locate and open the file config.py in the qiskit-metal package and edit the `renderers_to_load` dictionary to add the new renderer `skeleton`, like so:\n", "\n", "`renderers_to_load = Dict(\n", " hfss=Dict(path_name='qiskit_metal.renderers.renderer_ansys.hfss_renderer',\n", " class_name='QHFSSRenderer'),\n", " q3d=Dict(path_name='qiskit_metal.renderers.renderer_ansys.q3d_renderer',\n", " class_name='QQ3DRenderer'),\n", " gds=Dict(path_name='qiskit_metal.renderers.renderer_gds.gds_renderer',\n", " class_name='QGDSRenderer'),\n", " skeleton=Dict(path_name='tutorials.resources.skeleton_renderer',\n", " class_name='QSkeletonRenderer'),\n", ")`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Confirm QDesign is able to load your renderer\n", "Create a QDesign instance." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "design = designs.DesignPlanar()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If you modified the config.py correctly, the previous command should have instantiated and registered the `skeleton` renderer. Verify that by inspecting the renderers dictionary property of the QDesign instance.\n", "\n", "If executing the next cell does not show the `skeleton` renderer in the list, please make sure you correctly updated the `setup.py` file, next you could try resetting the jupyter notebook kernel, or restarting jupyter notebook." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dict_keys(['hfss', 'q3d', 'gds', 'skeleton'])" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "design.renderers.keys()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For convenience, let's create a short-handle alias to refer to the renderer during the remainder of this notebook." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "a_skeleton = design.renderers.skeleton" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Interact with your new user-custom renderer\n", "\n", "### Verify and modify the options of your renderer\n", "\n", "In the QSkeletonRenderer class some sample `default_options` class parameter has been defined.
\n", "`default_options = Dict(\n", " number_of_bones='206')\n", "`\n", "\n", "The instance `a_skeleton` will contain a dictionary `options` that is initiated using the `default_options`. (This works similarly to `options` for QComponents, which has been introduced in the jupyter notebooks found in the folder: `tutorials/2 Front End User`.)\n", "\n", "You can access and modify the options in the QSkeletonRenderer class instance as follows. For example, let's update the skeleton from that of a human to that of a dog (319 bones)." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'number_of_bones': '319'}" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a_skeleton.options.number_of_bones = '319'\n", "a_skeleton.options" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Original values will continue being accessible like so:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'number_of_bones': '206'}" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a_skeleton.get_template_options(design)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Populate a sample QDesign to demonstrate interaction with the renderer\n", "This portion is described in notebooks within directory `tutorials/2 Front End User`. Some of the options have been made distinctly different to show what can be done, i.e. fillet value, fillet='25um', varies for each cpw. However, that may not be what user will implement for their design." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "gui = MetalGUI(design)\n", "design.overwrite_enabled = True\n", "\n", "from qiskit_metal.qlibrary.qubits.transmon_pocket import TransmonPocket\n", "from qiskit_metal.qlibrary.tlines.meandered import RouteMeander" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "## Custom options for all the transmons\n", "options = dict(\n", " pad_width = '425 um',\n", " pad_gap = '80 um',\n", " pocket_height = '650um',\n", " # Adding 4 connectors (see below for defaults)\n", " connection_pads=dict( \n", " a = dict(loc_W=+1,loc_H=+1), \n", " b = dict(loc_W=-1,loc_H=+1, pad_height='30um'),\n", " c = dict(loc_W=+1,loc_H=-1, pad_width='200um'),\n", " d = dict(loc_W=-1,loc_H=-1, pad_height='50um')\n", " )\n", ")\n", "\n", "## Create 4 TransmonPockets\n", "q1 = TransmonPocket(design, 'Q1', options = dict(\n", " pos_x='+2.55mm', pos_y='+0.0mm', gds_cell_name='FakeJunction_02', **options))\n", "q2 = TransmonPocket(design, 'Q2', options = dict(\n", " pos_x='+0.0mm', pos_y='-0.9mm', orientation = '90', gds_cell_name='FakeJunction_02', **options))\n", "q3 = TransmonPocket(design, 'Q3', options = dict(\n", " pos_x='-2.55mm', pos_y='+0.0mm', gds_cell_name='FakeJunction_01',**options))\n", "q4 = TransmonPocket(design, 'Q4', options = dict(\n", " pos_x='+0.0mm', pos_y='+0.9mm', orientation = '90', gds_cell_name='my_other_junction', **options))\n", "\n", "options = Dict(\n", " meander=Dict(\n", " lead_start='0.1mm',\n", " lead_end='0.1mm',\n", " asymmetry='0 um')\n", ")\n", "\n", "def connect(component_name: str, component1: str, pin1: str, component2: str, pin2: str,\n", " length: str, asymmetry='0 um', flip=False, fillet='50um'):\n", " \"\"\"Connect two pins with a CPW.\"\"\"\n", " myoptions = Dict(\n", " fillet=fillet,\n", " pin_inputs=Dict(\n", " start_pin=Dict(\n", " component=component1,\n", " pin=pin1),\n", " end_pin=Dict(\n", " component=component2,\n", " pin=pin2)),\n", " lead=Dict(\n", " start_straight='0.13mm',\n", " end_straight='0.13mm'\n", " ),\n", " total_length=length)\n", " myoptions.update(options)\n", " myoptions.meander.asymmetry = asymmetry\n", " myoptions.meander.lead_direction_inverted = 'true' if flip else 'false'\n", " return RouteMeander(design, component_name, myoptions)\n", "\n", "asym = 90\n", "cpw1 = connect('cpw1', 'Q1', 'd', 'Q2', 'c', '5.7 mm', f'+{asym}um', fillet='25um')\n", "cpw2 = connect('cpw2', 'Q3', 'c', 'Q2', 'a', '5.6 mm', f'-{asym}um', flip=True, fillet='100um')\n", "cpw3 = connect('cpw3', 'Q3', 'a', 'Q4', 'b', '5.5 mm', f'+{asym}um', fillet='75um')\n", "cpw4 = connect('cpw4', 'Q1', 'b', 'Q4', 'd', '5.8 mm', f'-{asym}um', flip=True)\n", "\n", "gui.rebuild()\n", "gui.autoscale()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Export list of the design QGeompetries to file using your custom QSkeletonRenderer\n", "The QSkeletonRenderer class contains several sample methods. Let's use one intended to print out the name of the QGeometry tables to a text file (Remember: QGeometry contains the list of the raw layout shapes that compose the design, which we have created in the previous cell)." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a_skeleton.write_qgeometry_table_names_to_file('./simple_output.txt')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here another example where we subselect a single QComponent instance (`cpw1`) of type RouteMeander. This will only export the name of tables containing shapes related to that instance, which in this case is only paths, and not junctions or poly." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a_skeleton.write_qgeometry_table_names_to_file('./simple_output_cpw1.txt',highlight_qcomponents=['cpw1'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## What if my new tool requires additional parameters that Qiskit Metal does not natively support?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### QRenderers can request special tool parameters from the user\n", "\n", "External tools, such as Ansys, might require special parameters to be able to render (interprete) correctly the QGeometries that Qiskit Metal wants to pass (render) to them. Every tool might need a different set of special parameters, thus we architected a solution that allows individual QRenderer's to communicate to qiskit-metal what additional parameters their associated tool requires.\n", "\n", "The implementation consists of enabling the QRenderer's to add new columns (parameters) and tables (geometry types) to the QGeometry table collection. The QRenderer should also specify what is the default values to use to populate those columns/tables. The user can then update them to a value different then default by editing them at run-time, which can happen thorugh the QComponent options (or directly, for advanced users). Note that older QComponents remain valid also for newer QRenderer's, thanks to the defaults provided by the QRenderer.\n", "\n", "Our QSkeletonRenderer class for example is designed to add a `a_column_name` column to the `junction` table, with default value `a_default_value`. This is implemented by creating the following class parameter: \n", "
`element_table_data = dict(junction=dict(a_column_name='a_default_value'))` \n", "\n", "Note that the final column name will be `skeleton_a_column_name` because the provided column name is prefixed with the renderer name (`QSkeletonRenderer.name`).\n", "\n", "The method that executes the magic described above is `QRenderer.load()`, which is called from the `QSkeletonRenderer.__init__()`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Let's observe and update the additional properties that our QSkeletonRenderer needs\n", "First, make sure that the registration of the QRenderer added the additional paramter as expected. Search for the column `skeleton_a_column_name` in the qgeometry table `junction`" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
componentnamegeometrylayersubtracthelperchipwidthhfss_inductancehfss_capacitancehfss_resistancehfss_mesh_kw_jjq3d_inductanceq3d_capacitanceq3d_resistanceq3d_mesh_kw_jjgds_cell_nameskeleton_a_column_name
01rect_jjLINESTRING (2.55000 -0.04000, 2.55000 0.04000)1FalseFalsemain0.0210nH000.00000710nH000.000007FakeJunction_02a_default_value
12rect_jjLINESTRING (0.04000 -0.90000, -0.04000 -0.90000)1FalseFalsemain0.0210nH000.00000710nH000.000007FakeJunction_02a_default_value
23rect_jjLINESTRING (-2.55000 -0.04000, -2.55000 0.04000)1FalseFalsemain0.0210nH000.00000710nH000.000007FakeJunction_01a_default_value
34rect_jjLINESTRING (0.04000 0.90000, -0.04000 0.90000)1FalseFalsemain0.0210nH000.00000710nH000.000007my_other_junctiona_default_value
\n", "
" ], "text/plain": [ " component name geometry layer \\\n", "0 1 rect_jj LINESTRING (2.55000 -0.04000, 2.55000 0.04000) 1 \n", "1 2 rect_jj LINESTRING (0.04000 -0.90000, -0.04000 -0.90000) 1 \n", "2 3 rect_jj LINESTRING (-2.55000 -0.04000, -2.55000 0.04000) 1 \n", "3 4 rect_jj LINESTRING (0.04000 0.90000, -0.04000 0.90000) 1 \n", "\n", " subtract helper chip width hfss_inductance hfss_capacitance \\\n", "0 False False main 0.02 10nH 0 \n", "1 False False main 0.02 10nH 0 \n", "2 False False main 0.02 10nH 0 \n", "3 False False main 0.02 10nH 0 \n", "\n", " hfss_resistance hfss_mesh_kw_jj q3d_inductance q3d_capacitance \\\n", "0 0 0.000007 10nH 0 \n", "1 0 0.000007 10nH 0 \n", "2 0 0.000007 10nH 0 \n", "3 0 0.000007 10nH 0 \n", "\n", " q3d_resistance q3d_mesh_kw_jj gds_cell_name skeleton_a_column_name \n", "0 0 0.000007 FakeJunction_02 a_default_value \n", "1 0 0.000007 FakeJunction_02 a_default_value \n", "2 0 0.000007 FakeJunction_01 a_default_value \n", "3 0 0.000007 my_other_junction a_default_value " ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "design.qgeometry.tables['junction']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If you cannot locate the new column (might need to scroll to the far right), then something must be amiss, so please start over this notebook and execute all of the cells.\n", "\n", "Once you can locate the new column, and observe the set default value, let's not try to update the value in the column by modifying the design of the correspondent QComponent. All we need to do is pass a different set of options to the component, like so:" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
componentnamegeometrylayersubtracthelperchipwidthhfss_inductancehfss_capacitancehfss_resistancehfss_mesh_kw_jjq3d_inductanceq3d_capacitanceq3d_resistanceq3d_mesh_kw_jjgds_cell_nameskeleton_a_column_name
01rect_jjLINESTRING (2.55000 -0.04000, 2.55000 0.04000)1FalseFalsemain0.0210nH000.00000710nH000.000007FakeJunction_02q1 skeleton
12rect_jjLINESTRING (0.04000 -0.90000, -0.04000 -0.90000)1FalseFalsemain0.0210nH000.00000710nH000.000007FakeJunction_02q2 skeleton
23rect_jjLINESTRING (-2.55000 -0.04000, -2.55000 0.04000)1FalseFalsemain0.0210nH000.00000710nH000.000007FakeJunction_01q3 skeleton
34rect_jjLINESTRING (0.04000 0.90000, -0.04000 0.90000)1FalseFalsemain0.0210nH000.00000710nH000.000007my_other_junctionq4 skeleton
\n", "
" ], "text/plain": [ " component name geometry layer \\\n", "0 1 rect_jj LINESTRING (2.55000 -0.04000, 2.55000 0.04000) 1 \n", "1 2 rect_jj LINESTRING (0.04000 -0.90000, -0.04000 -0.90000) 1 \n", "2 3 rect_jj LINESTRING (-2.55000 -0.04000, -2.55000 0.04000) 1 \n", "3 4 rect_jj LINESTRING (0.04000 0.90000, -0.04000 0.90000) 1 \n", "\n", " subtract helper chip width hfss_inductance hfss_capacitance \\\n", "0 False False main 0.02 10nH 0 \n", "1 False False main 0.02 10nH 0 \n", "2 False False main 0.02 10nH 0 \n", "3 False False main 0.02 10nH 0 \n", "\n", " hfss_resistance hfss_mesh_kw_jj q3d_inductance q3d_capacitance \\\n", "0 0 0.000007 10nH 0 \n", "1 0 0.000007 10nH 0 \n", "2 0 0.000007 10nH 0 \n", "3 0 0.000007 10nH 0 \n", "\n", " q3d_resistance q3d_mesh_kw_jj gds_cell_name skeleton_a_column_name \n", "0 0 0.000007 FakeJunction_02 q1 skeleton \n", "1 0 0.000007 FakeJunction_02 q2 skeleton \n", "2 0 0.000007 FakeJunction_01 q3 skeleton \n", "3 0 0.000007 my_other_junction q4 skeleton " ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "q1.options.skeleton_a_column_name = 'q1 skeleton'\n", "q2.options.skeleton_a_column_name = 'q2 skeleton'\n", "q3.options.skeleton_a_column_name = 'q3 skeleton'\n", "q4.options.skeleton_a_column_name = 'q4 skeleton'\n", "\n", "gui.rebuild()\n", "gui.autoscale()\n", "\n", "design.qgeometry.tables['junction']" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "tags": [ "nbsphinx-thumbnail" ] }, "outputs": [ { "data": { "image/png": "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ww8/fN99962l71NZlp94fu8q+Nporpq7ZiiK8sADDziO8+ijjzYajW3btu3evfsD3hohhLj//vvHxsZeffVVVVWvv/76hWvrfDAJIT796U9blvXUU0/Nzc3dd999H/A/EoRQrVY7evRoEARBEMA3d6xQKOTz+b179958882nz/bxAcQ5f/755ycmJuKeWXhNYgcPHnzttdcSiUS1Wl1jfdYIRjC1BcaYEBJX/wwODn7rW996/fXX2x1Um2GMOecHDhyIl0H+yle+0u6I2i/+O7Esa2Ji4jvf+Q7MhoIQ+trXvnb8+PFGo/Enf/InMKY6ViqVLMv6q7/6K9d12x3LisA537dvX09Pz0svvfT9739/MatGfxA4jtPd3U0p/cpXvhKvJ7+WrIJWmbUqk8nceuutxWLRNE34lkIIybL8yU9+EiF04sSJp59+ut3hrBR9fX333HPP448/3u5A2o8xduDAgT/90z/NZDK//du/Xa/XoekOIbR169atW7c+/PDD7Q5kpZAk6f777xdCaJr22GOPtTuclWLPnj21Wu3YsWNPPPFEvPDkWgKpzDIZHx//u7/7u2bKMjo6evfddx86dOi73/1upVLp6+trb3ht8bOf/ezll19u3v3oRz96zTXXhGH40EMPffjDH25jYG104MCBhx56qHl3+/btd911VxvjWVEcx2mu89Jc4QWAMyoUCj/4wQ++9KUvraW6kIsRhuHDDz/85JNP7t69e43VbCBIZZZNd3f33Xff3WzqNAxDluWdO3f+8R//8fe///1HH330i1/8YnsjXH6XX375hg0bmnc7OzvDMPyzP/uzjo6Oz33uc20MrI2GhoY++9nPNu/G67q1MZ4VxTCMeP1eRVGiKFq4hC8ATUKIubm5r371q/fcc8/OnTvbHc5KIcvyfffdd/fdd3/5y18+ceLEws/eNQBSmWViGMYpfzpvvfXWvn37TNN86aWXPvOZz7QrsDbK5/P5fL55N4qir3/96/v27bv33ntfeOGFG264oY2xtUsymTylmrVerz/11FOzs7OPPPLI1Vdf/cFswItRSi+55JK//du/NQxj69atUPYbm5+ff+GFF2ZnZ5988skbb7wRhu4zxn73d393586dnue9+eab27Ztg4YZhNDDDz8sy3KpVNJ1fe39kdDe0U0Xs78QIgyCL3zu7jOunwnOQggxOzvr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\n", "text/plain": [ "" ] }, "metadata": { "image/png": { "width": 500 } }, "output_type": "display_data" } ], "source": [ "gui.screenshot()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can also create the components by directly passing the options you know the renderer will require, like so:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
componentnamegeometrylayersubtracthelperchipwidthhfss_inductancehfss_capacitancehfss_resistancehfss_mesh_kw_jjq3d_inductanceq3d_capacitanceq3d_resistanceq3d_mesh_kw_jjgds_cell_nameskeleton_a_column_name
09rect_jjLINESTRING (2.55000 -0.01500, 2.55000 0.01500)1FalseFalsemain0.0210nH000.00000710nH000.000007FakeJunction_02q1 skeleton 2
110rect_jjLINESTRING (0.01500 -0.90000, -0.01500 -0.90000)1FalseFalsemain0.0210nH000.00000710nH000.000007FakeJunction_02q2 skeleton 2
211rect_jjLINESTRING (-2.55000 -0.01500, -2.55000 0.01500)1FalseFalsemain0.0210nH000.00000710nH000.000007FakeJunction_01q3 skeleton 2
312rect_jjLINESTRING (0.01500 0.90000, -0.01500 0.90000)1FalseFalsemain0.0210nH000.00000710nH000.000007my_other_junctionq4 skeleton 2
\n", "
" ], "text/plain": [ " component name geometry layer \\\n", "0 9 rect_jj LINESTRING (2.55000 -0.01500, 2.55000 0.01500) 1 \n", "1 10 rect_jj LINESTRING (0.01500 -0.90000, -0.01500 -0.90000) 1 \n", "2 11 rect_jj LINESTRING (-2.55000 -0.01500, -2.55000 0.01500) 1 \n", "3 12 rect_jj LINESTRING (0.01500 0.90000, -0.01500 0.90000) 1 \n", "\n", " subtract helper chip width hfss_inductance hfss_capacitance \\\n", "0 False False main 0.02 10nH 0 \n", "1 False False main 0.02 10nH 0 \n", "2 False False main 0.02 10nH 0 \n", "3 False False main 0.02 10nH 0 \n", "\n", " hfss_resistance hfss_mesh_kw_jj q3d_inductance q3d_capacitance \\\n", "0 0 0.000007 10nH 0 \n", "1 0 0.000007 10nH 0 \n", "2 0 0.000007 10nH 0 \n", "3 0 0.000007 10nH 0 \n", "\n", " q3d_resistance q3d_mesh_kw_jj gds_cell_name skeleton_a_column_name \n", "0 0 0.000007 FakeJunction_02 q1 skeleton 2 \n", "1 0 0.000007 FakeJunction_02 q2 skeleton 2 \n", "2 0 0.000007 FakeJunction_01 q3 skeleton 2 \n", "3 0 0.000007 my_other_junction q4 skeleton 2 " ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "q1.delete()\n", "q2.delete()\n", "q3.delete()\n", "q4.delete()\n", "\n", "q1 = TransmonPocket(design, 'Q1', options = dict(\n", " pos_x='+2.55mm', pos_y='+0.0mm', gds_cell_name='FakeJunction_02', skeleton_a_column_name='q1 skeleton 2', **options))\n", "q2 = TransmonPocket(design, 'Q2', options = dict(\n", " pos_x='+0.0mm', pos_y='-0.9mm', orientation = '90', gds_cell_name='FakeJunction_02', skeleton_a_column_name='q2 skeleton 2', **options))\n", "q3 = TransmonPocket(design, 'Q3', options = dict(\n", " pos_x='-2.55mm', pos_y='+0.0mm', gds_cell_name='FakeJunction_01', skeleton_a_column_name='q3 skeleton 2', **options))\n", "q4 = TransmonPocket(design, 'Q4', options = dict(\n", " pos_x='+0.0mm', pos_y='+0.9mm', orientation = '90', gds_cell_name='my_other_junction', skeleton_a_column_name='q4 skeleton 2', **options))\n", "\n", "design.qgeometry.tables['junction']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Can my user-defined renderer change/interact with the design?\n", "### Accessing information and methods\n", "It is possible that the resoult of a renderering action, or analysis requires a design update back to qiskit-metal. This can be achieved wthout the user intervetion by simply controlling the QDesign instance from within the QRenderer.\n", "\n", "Just as an example, the next three cells inspect the current design QComponent, QGeometry table, and QRenderer names." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['cpw1', 'cpw2', 'cpw3', 'cpw4', 'Q1', 'Q2', 'Q3', 'Q4']" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a_skeleton.design.components.keys()" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dict_keys(['path', 'poly', 'junction'])" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a_skeleton.design.qgeometry.tables.keys()" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dict_keys(['hfss', 'q3d', 'gds', 'skeleton'])" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a_skeleton.design.renderers.keys()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The base QRenderer class comes with useful methods to more easily access some of the information. You will find more method described in the QRenderer documentation. The example below for example returns the QComponent's IDs." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "([7, 5, 12, 8, 6, 9], 0)" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a_skeleton.get_unique_component_ids(highlight_qcomponents = ['Q1', 'Q1', 'Q4', 'cpw1', 'cpw2', 'cpw3', 'cpw4'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The following instead shows three ways to access the same QGeometry table." ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
componentnamegeometrylayersubtracthelperchipwidthhfss_inductancehfss_capacitancehfss_resistancehfss_mesh_kw_jjq3d_inductanceq3d_capacitanceq3d_resistanceq3d_mesh_kw_jjgds_cell_nameskeleton_a_column_name
09rect_jjLINESTRING (2.55000 -0.01500, 2.55000 0.01500)1FalseFalsemain0.0210nH000.00000710nH000.000007FakeJunction_02q1 skeleton 2
\n", "
" ], "text/plain": [ " component name geometry layer \\\n", "0 9 rect_jj LINESTRING (2.55000 -0.01500, 2.55000 0.01500) 1 \n", "\n", " subtract helper chip width hfss_inductance hfss_capacitance \\\n", "0 False False main 0.02 10nH 0 \n", "\n", " hfss_resistance hfss_mesh_kw_jj q3d_inductance q3d_capacitance \\\n", "0 0 0.000007 10nH 0 \n", "\n", " q3d_resistance q3d_mesh_kw_jj gds_cell_name skeleton_a_column_name \n", "0 0 0.000007 FakeJunction_02 q1 skeleton 2 " ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a_skeleton.design.components['Q1'].qgeometry_table('junction') # via QComonent name\n", "a_skeleton.design._components[9].qgeometry_table('junction') # via QComponent ID\n", "q1.qgeometry_table('junction') # via the QComponent instance" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The method `QSkeletonRenderer.get_qgeometry_tables_for_skeleton()` exemplifies how to iterate through chips and tables." ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "from tutorials.resources.skeleton_renderer import QSkeletonRenderer\n", "?QSkeletonRenderer.get_qgeometry_tables_for_skeleton" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Communicate state\n", "We can also interact with any other method of the QDesign instance, for example we can generate a warning into the logger as shown in the next cell. This is particularly useful to document problems with the user-defined QRenderer execution" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "12:36PM 34s WARNING []: Show a warning message for plugin developer.\n" ] } ], "source": [ "# Purposefully generates an warning message. \n", "a_skeleton.logger.warning('Show a warning message for plugin developer.')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Qiskit Metal Version" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Qiskit Metal 0.0.3\n", "\n", "Basic\n", "____________________________________\n", " Python 3.7.8 | packaged by conda-forge | (default, Nov 27 2020, 18:48:03) [MSC v.1916 64 bit (AMD64)]\n", " Platform Windows AMD64\n", " Installation path c:\\workspace\\qiskit-metal\\qiskit_metal\n", "\n", "Packages\n", "____________________________________\n", " Numpy 1.19.5\n", " Qutip 4.5.3\n", "\n", "Rendering\n", "____________________________________\n", " Matplotlib 3.3.4\n", "\n", "GUI\n", "____________________________________\n", " PySide2 version 5.13.2\n", " Qt version 5.9.7\n", " SIP version 4.19.8\n", "\n", "IBM Quantum Team\n" ] } ], "source": [ "metal.about();" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "# This command is below if the user wants to close the Metal GUI.\n", "# gui.main_window.close()" ] } ], "metadata": { "celltoolbar": "Tags", "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.8" } }, "nbformat": 4, "nbformat_minor": 4 }