Repository: sandialabs/pyGSTi (language: python)

Issue:
Faster unit tests/notebooks
**Is your feature request related to a problem? Please describe.**
The unit and notebook regression tests take too long.

**Describe the solution you'd like**
Faster unit tests. This could be achieved by using different inputs or options which don't affect coverage but do affect runtime. Simple examples for GST related tests include using lower germ lengths, smaller gate sets, etc. This was already done for the `test/test_packages/algorithms` tests in #372, but we should do this across the whole codebase.

**Task list**
Below are tasklists made by running pytest with `--durations 0` and taking the most expensive tests.

__Everything in `test/unit` around 5s or above__:

- [ ] 37.93s call     test/unit/algorithms/test_gaugeopt.py::LGSTGaugeOptAllPenaltyTester::test_gaugeopt_with_none_gauge_group                                                                                 
- [ ] 37.87s call     test/unit/algorithms/test_gaugeopt.py::LGSTGaugeOptAllPenaltyTester::test_gaugeopt                                                                                                                                                                                                                             
- [ ] 19.16s call     test/unit/algorithms/test_gaugeopt.py::LGSTGaugeOptSPAMPenaltyTester::test_gaugeopt_with_none_gauge_group                                                                                
- [ ] 19.09s call     test/unit/algorithms/test_gaugeopt.py::LGSTGaugeOptSPAMPenaltyTester::test_gaugeopt                                                                                                      
- [ ] 17.01s call     test/unit/algorithms/test_gaugeopt.py::LGSTGaugeOptAutoMethodTester::test_gaugeopt_gates_metrics                                                                                         
- [ ] 11.64s call     test/unit/algorithms/test_gaugeopt.py::CPTPGaugeOptSPAMPenaltyTester::test_gaugeopt                                                                                                      
- [ ] 11.05s call     test/unit/algorithms/test_gaugeopt.py::LGSTGaugeOptAllPenaltyTester::test_gaugeopt_no_target                                                                                             
- [ ] 8.91s call     test/unit/algorithms/test_gaugeopt.py::LGSTGaugeOptAutoMethodTester::test_gaugeopt_spam_metrics                                                                                           
- [ ] 8.47s call     test/unit/tools/test_optools.py::ProjectModelTester::test_logTiG_model_projection                                                                                                         
- [ ] 8.19s call     test/unit/tools/test_optools.py::ProjectModelTester::test_logGTi_model_projection                                                                                                         
- [ ] 8.08s call     test/unit/objects/test_fogi.py::FogiTester::test_crosstalk_free_fogi                                                                                                                      
- [ ] 7.68s call     test/unit/modelmembers/test_kraus_interface.py::KrausInterfaceStateVecSlowTester::test_depol_model_histogram                                                                              
- [ ] 7.53s call     test/unit/algorithms/test_gaugeopt.py::CPTPGaugeOptAllPenaltyTester::test_gaugeopt                                                                                                        
- [ ] 7.03s call     test/unit/modelmembers/test_kraus_interface.py::KrausInterfaceStateVecTester::test_depol_model_histogram                                                                                  
- [ ] 6.88s call     test/unit/tools/test_symplectic.py::SymplecticOddDimTester::test_fast_compose_cliffords                                                                                                   
- [ ] 5.58s call     test/unit/protocols/test_protocols.py::ExperimentDesignTester::test_map_edesign_sslbls                                                                                                    
- [ ] 5.43s call     test/unit/algorithms/test_gaugeopt.py::LGSTGaugeOptSPAMPenaltyTester::test_gaugeopt_no_target                                                                                             
- [ ] 5.19s call     test/unit/tools/test_edesigntools.py::ExperimentDesignTimeEstimationTester::test_time_estimation  

__Everything in `test/test_packages` around/over a minute__:

- [ ] 1114.06s call     test/test_packages/algorithms/test_fiducialpairreduction.py::FiducialPairReductionTestCase::test_FPR_test_pairs                                                                                     
- [ ] 1106.88s call     test/test_packages/drivers/test_nqubit.py::NQubitTestCase::test_2Q                                                                                                                                  
- [ ] 1036.52s call     test/test_packages/objects/test_hessian.py::TestHessianMethods::test_confidenceRegion                                                                                                               
- [ ] 761.97s call     test/test_packages/report/test_report.py::TestReport::test_reports_logL_TP_wCIs                                                                                                                      
- [ ] 560.06s call     test/test_packages/drivers/test_drivers.py::TestDriversMethods::test_longSequenceGST_fiducialPairReduction                                                                                           
- [ ] 537.51s call     test/test_packages/drivers/test_timedep.py::TimeDependentTestCase::test_time_dependent_gst_staticdata                                                                                                
- [ ] 436.46s call     test/test_packages/drivers/test_timedep.py::TimeDependentTestCase::test_time_dependent_gst                                                                                                           
- [ ] 401.77s call     test/test_packages/drivers/test_drivers.py::TestDriversMethods::test_longSequenceGST_randomReduction                                                                                                 
- [ ] 394.28s call     test/test_packages/drivers/test_calcmethods1Q.py::CalcMethods1QTestCase::test_stdgst_map                                                                                                             
- [ ] 368.58s call     test/test_packages/reportb/test_workspace.py::TestWorkspace::test_table_creation                                                                                                                     
- [ ] 328.44s call     test/test_packages/algorithms/test_fiducialpairreduction.py::FiducialPairReductionTestCase::test_memlimit                                                                                            
- [ ] 285.68s call     test/test_packages/algorithms/test_fiducialpairreduction.py::FiducialPairReductionTestCase::test_intelligentFiducialPairReduction                                                                    
- [ ] 280.79s call     test/test_packages/algorithmsb/test_germselection.py::GermSelectionTestCase::test_germsel_greedy                                                                                                     
- [ ] 168.63s call     test/test_packages/algorithmsb/test_germselection.py::GermSelectionTestCase::test_germsel_grasp                                                                                                      
- [ ] 149.78s call     test/test_packages/algorithms/test_fogi_gst.py::CrosstalkFreeFOGIGSTTester::test_fogi_gst                                                                                                            
- [ ] 135.69s call     test/test_packages/report/test_report.py::TestReport::test_reports_logL_TP_noCIs                                                                                                                     
- [ ] 124.78s call     test/test_packages/report/test_report.py::TestReport::test_reports_chi2_noCIs                                                                                                                        
- [ ] 91.54s call     test/test_packages/drivers/test_calcmethods1Q.py::CalcMethods1QTestCase::test_stdgst_matrix 
- [ ] 88.79s call     test/test_packages/iotest/test_niceserialization.py::NiceSerializationTester::test_nice_serialization
- [ ] 66.69s call     test/test_packages/drivers/test_drivers.py::TestDriversMethods::test_longSequenceGST_CPTP
- [ ] 59.41s call     test/test_packages/reportb/test_workspace.py::TestWorkspace::test_plot_creation

__Everything in jupyter_notebooks around/over a minute__:

- [ ] 1448.42s call     jupyter_notebooks/Examples/QutritGST.ipynb::Cell 8
- [ ] 1001.70s call     jupyter_notebooks/Tutorials/algorithms/DriftCharacterization.ipynb::Cell 2
- [ ] 635.88s call     jupyter_notebooks/Tutorials/algorithms/DriftCharacterization.ipynb::Cell 16
- [ ] 444.38s call     jupyter_notebooks/Tutorials/algorithms/advanced/Time-dependent-GST.ipynb::Cell 12
- [ ] 364.99s call     jupyter_notebooks/Tutorials/algorithms/advanced/GST-FiducialPairReduction.ipynb::Cell 2
- [ ] 351.95s call     jupyter_notebooks/Tutorials/algorithms/ModelTesting-functions.ipynb::Cell 7
- [ ] 337.69s call     jupyter_notebooks/Tutorials/algorithms/advanced/CliffordRB-Simulation-ImplicitModel.ipynb::Cell 1
- [ ] 303.87s call     jupyter_notebooks/Tutorials/algorithms/GST-Overview-functionbased.ipynb::Cell 1
- [ ] 299.93s call     jupyter_notebooks/Tutorials/algorithms/GST-Overview.ipynb::Cell 3
- [ ] 268.60s call     jupyter_notebooks/Tutorials/reporting/ReportGeneration.ipynb::Cell 8
- [ ] 263.79s call     jupyter_notebooks/Examples/BootstrappedErrorBars.ipynb::Cell 4
- [ ] 247.16s call     jupyter_notebooks/Tutorials/algorithms/ModelTesting.ipynb::Cell 6
- [ ] 246.86s call     jupyter_notebooks/Tutorials/00-Protocols.ipynb::Cell 1
- [ ] 218.24s call     jupyter_notebooks/Tutorials/algorithms/RB-Overview.ipynb::Cell 2
- [ ] 206.88s call     jupyter_notebooks/Tutorials/algorithms/RB-DirectRB.ipynb::Cell 6
- [ ] 199.03s call     jupyter_notebooks/Examples/CirqIntegration.ipynb::Cell 15
- [ ] 189.51s call     jupyter_notebooks/Examples/Leakage.ipynb::Cell 10
- [ ] 177.25s call     jupyter_notebooks/Tutorials/algorithms/GST-Driverfunctions.ipynb::Cell 6
- [ ] 174.92s call     jupyter_notebooks/Tutorials/algorithms/DriftCharacterization.ipynb::Cell 14
- [ ] 172.61s call     jupyter_notebooks/Tutorials/algorithms/GST-Driverfunctions.ipynb::Cell 8
- [ ] 157.32s call     jupyter_notebooks/Examples/BootstrappedErrorBars.ipynb::Cell 7
- [ ] 155.76s call     jupyter_notebooks/Tutorials/algorithms/GST-Protocols.ipynb::Cell 7
- [ ] 149.74s call     jupyter_notebooks/Tutorials/reporting/WorkspaceExamples.ipynb::Cell 22
- [ ] 138.51s call     jupyter_notebooks/Tutorials/algorithms/GST-Protocols.ipynb::Cell 9
- [ ] 130.57s call     jupyter_notebooks/Tutorials/algorithms/ModelTesting.ipynb::Cell 7
- [ ] 123.51s call     jupyter_notebooks/Tutorials/reporting/ReportGeneration.ipynb::Cell 5
- [ ] 118.61s call     jupyter_notebooks/Tutorials/objects/ExperimentDesign.ipynb::Cell 11
- [ ] 116.87s call     jupyter_notebooks/Examples/CirqIntegration.ipynb::Cell 17
- [ ] 114.81s call     jupyter_notebooks/Examples/Leakage.ipynb::Cell 13
- [ ] 112.85s call     jupyter_notebooks/Tutorials/algorithms/GST-Driverfunctions.ipynb::Cell 10
- [ ] 112.47s call     jupyter_notebooks/Tutorials/algorithms/GST-Protocols.ipynb::Cell 11
- [ ] 110.25s call     jupyter_notebooks/Examples/Leakage.ipynb::Cell 9
- [ ] 107.54s call     jupyter_notebooks/Tutorials/00-Protocols.ipynb::Cell 2
- [ ] 104.39s call     jupyter_notebooks/Tutorials/algorithms/ModelTesting-functions.ipynb::Cell 5
- [ ] 101.97s call     jupyter_notebooks/Tutorials/algorithms/ModelTesting.ipynb::Cell 4
- [ ] 81.98s call     jupyter_notebooks/Tutorials/00-Protocols.ipynb::Cell 5
- [ ] 80.34s call     jupyter_notebooks/Tutorials/algorithms/RB-MultiRBExperiments.ipynb::Cell 7
- [ ] 79.85s call     jupyter_notebooks/Tutorials/algorithms/advanced/GST-FiducialPairReduction.ipynb::Cell 7
- [ ] 76.19s call     jupyter_notebooks/Tutorials/algorithms/ModelTesting-functions.ipynb::Cell 8
- [ ] 71.77s call     jupyter_notebooks/Tutorials/algorithms/RB-MirrorRB-Universal-Gate-Sets.ipynb::Cell 4
- [ ] 68.32s call     jupyter_notebooks/Tutorials/algorithms/advanced/CliffordRB-Simulation-ExplicitModel.ipynb::Cell 1
- [ ] 65.20s call     jupyter_notebooks/Examples/BootstrappedErrorBars.ipynb::Cell 5
- [ ] 64.29s call     jupyter_notebooks/Tutorials/reporting/ReportGeneration.ipynb::Cell 10
- [ ] 64.03s call     jupyter_notebooks/Tutorials/algorithms/MirrorCircuitBenchmarks.ipynb::Cell 5
- [ ] 63.42s call     jupyter_notebooks/Tutorials/reporting/ReportGeneration.ipynb::Cell 9
- [ ] 63.10s call     jupyter_notebooks/Tutorials/algorithms/advanced/GST-FiducialPairReduction.ipynb::Cell 8
- [ ] 58.42s call     jupyter_notebooks/Tutorials/algorithms/GST-Protocols.ipynb::Cell 19


Discussion / hints:
Thanks for compiling this, @sserita! Regarding the contents of test packages, I anticipate a few of these being addressed as part of #373. The changes on that branch broke some of the unit tests in that module, so I decided that since I was in the code already fixing them to also streamline some of them at the same time.
Great! Whenever #373 is ready, I'll go through and check off whichever ones you've already gotten to.
Question regarding the runtimes above. What system and pyGSTi version were these timings collected on? I.e. was this done locally on your system (presumably an apple silicon macbook) or on the github runners? I ask because I noticed some of the runtimes were significantly longer than I had recalled seeing on my system (windows laptop with xeon W-10855M processor) following the updates in #372. 

For example, looking at the second test in the `test/unit` (test_gaugeopt.py::LGSTGaugeOptSPAMPenaltyTester::test_gaugeopt_no_target) this takes just 8.14s on my system, so ~16x faster (it is indeed still one of the longer tests, so that is still consistent). The M-series macbooks are pretty spiffy, so while I wouldn't expect exactly the same behavior (I actually would've expected it to be faster than my system), 16x seems a bit larger than I would have expected. 

I am running this on the bugfix-stricter-line-label-enforcement branch, but as far as I recall haven't made any changes to the tests in question since #372.
The `test/unit` was run on my MacBook Pro, the other two were run on Dynobird. I did run them with the `--dist loadscope` flag, so that could be a potential difference in the timings if you are just running them serially but with more cores per test?

Edit: I just ran this without `--dist loadscope` and got 4.6s for that test instead. Maybe I will rerun these without distributed flag for more consistent timings, and update the tasks.
I was running these on a single thread so didn't have any dist flags set. But we do use that flag on the runners (and probably should based on what I understand about it) so maybe I should? If I recall correctly I think I had previously decided that flag is probably more relevant when doing multi-threaded notebook regressions than the standard unit tests. The notebook regression tests really need to have all of the cells in a notebook run on a single worker, whereas typically the standard unit tests should be generally more robust in this regard.

Edit: I just re-ran the tests on my machine with multiple threads and the `--dist loadscope` flag set and it did not meaningfully change the timings. Maybe there is something weird going on with pytest xdist on macs?
Yea agreed something seems wonky - or maybe I was running something else at the same time in the background. Timings are updated - do those seem more reasonable across the board? This was no `--dist loadscope` and on Dynobird now.
I just spot checked a few of the updated timings and these seem much more reasonable.
One thing that might be worth looking into in the course of trying to speed up the testing process is our current list of dependencies installed using the testing flag. A good chunk of the overall time is setting up the runners and installing packages, so removing any unneeded dependencies would be helpful here.

Fix patch:
diff --git a/jupyter_notebooks/Examples/BootstrappedErrorBars.ipynb b/jupyter_notebooks/Examples/BootstrappedErrorBars.ipynb
index ddf48e4b4..b2e386abf 100644
--- a/jupyter_notebooks/Examples/BootstrappedErrorBars.ipynb
+++ b/jupyter_notebooks/Examples/BootstrappedErrorBars.ipynb
@@ -17,11 +17,10 @@
     "import sys\n",
     "import time\n",
     "import json\n",
-    "\n",
+    "import numpy as np\n",
     "import pygsti\n",
-    "from pygsti.modelpacks.legacy import std1Q_XYI\n",
-    "\n",
-    "%pylab inline"
+    "from pygsti.modelpacks import smq1Q_XY\n",
+    "import matplotlib.pyplot as plt"
    ]
   },
   {
@@ -33,12 +32,13 @@
     "#Get a GST estimate (similar to Tutorial 0)\n",
     "\n",
     "# 1) get the target Model\n",
-    "target_model = std1Q_XYI.target_model()\n",
+    "target_model = smq1Q_XY.target_model('full TP')\n",
     "\n",
     "# 2) get the building blocks needed to specify which operation sequences are needed\n",
-    "prep_fiducials, meas_fiducials = std1Q_XYI.prepStrs, std1Q_XYI.effectStrs\n",
-    "germs = std1Q_XYI.germs\n",
-    "maxLengths = [1,2,4,8,16]\n",
+    "prep_fiducials = smq1Q_XY.prep_fiducials()[0:4]\n",
+    "meas_fiducials = smq1Q_XY.meas_fiducials()[0:3]\n",
+    "germs = smq1Q_XY.germs()\n",
+    "maxLengths = [1,2,4,8]\n",
     "\n",
     "# 3) generate \"fake\" data from a depolarized version of target_model\n",
     "mdl_datagen = target_model.depolarize(op_noise=0.1, spam_noise=0.001)\n",
@@ -53,24 +53,6 @@
     "estimated_model = results.estimates['full TP'].models['stdgaugeopt']"
    ]
   },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "print(target_model)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "estimated_model.operations"
-   ]
-  },
   {
    "cell_type": "markdown",
    "metadata": {},
@@ -85,7 +67,8 @@
    "cell_type": "code",
    "execution_count": null,
    "metadata": {
-    "scrolled": true
+    "scrolled": true,
+    "tags": []
    },
    "outputs": [],
    "source": [
@@ -103,13 +86,24 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "metadata": {},
+   "metadata": {
+    "tags": []
+   },
    "outputs": [],
    "source": [
     "gauge_opt_pboot_models = pygsti.drivers.gauge_optimize_models(param_boot_models, estimated_model,\n",
     "                                                                 plot=False) #plotting support removed w/matplotlib"
    ]
   },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "print(gauge_opt_pboot_models[0])"
+   ]
+  },
   {
    "cell_type": "code",
    "execution_count": null,
@@ -125,12 +119,10 @@
     "print(pboot_std['rho0'].to_vector(), end='\\n\\n')\n",
     "print(\"Error in effect vecs:\")\n",
     "print(pboot_std['Mdefault'].to_vector(), end='\\n\\n')\n",
-    "print(\"Error in Gi:\")\n",
-    "print(pboot_std['Gi'].to_vector(), end='\\n\\n')\n",
-    "print(\"Error in Gx:\")\n",
-    "print(pboot_std['Gx'].to_vector(), end='\\n\\n')\n",
-    "print(\"Error in Gy:\")\n",
-    "print(pboot_std['Gy'].to_vector())"
+    "print(\"Error in Gxpi2:\")\n",
+    "print(pboot_std['Gxpi2',0].to_vector(), end='\\n\\n')\n",
+    "print(\"Error in Gypi2:\")\n",
+    "print(pboot_std['Gypi2',0].to_vector())"
    ]
   },
   {
@@ -187,12 +179,10 @@
     "print(npboot_std['rho0'].to_vector(), end='\\n\\n')\n",
     "print(\"Error in effect vecs:\")\n",
     "print(npboot_std['Mdefault'].to_vector(), end='\\n\\n')\n",
-    "print(\"Error in Gi:\")\n",
-    "print(npboot_std['Gi'].to_vector(), end='\\n\\n')\n",
-    "print(\"Error in Gx:\")\n",
-    "print(npboot_std['Gx'].to_vector(), end='\\n\\n')\n",
-    "print(\"Error in Gy:\")\n",
-    "print(npboot_std['Gy'].to_vector())"
+    "print(\"Error in Gxpi2:\")\n",
+    "print(npboot_std['Gxpi2',0].to_vector(), end='\\n\\n')\n",
+    "print(\"Error in Gypi2:\")\n",
+    "print(npboot_std['Gypi2',0].to_vector())"
    ]
   },
   {
@@ -203,12 +193,13 @@
    },
    "outputs": [],
    "source": [
-    "loglog(npboot_std.to_vector(),pboot_std.to_vector(),'.')\n",
-    "loglog(np.logspace(-4,-2,10),np.logspace(-4,-2,10),'--')\n",
-    "xlabel('Non-parametric')\n",
-    "ylabel('Parametric')\n",
-    "xlim((1e-4,1e-2)); ylim((1e-4,1e-2))\n",
-    "title('Scatter plot comparing param vs. non-param bootstrapping error bars.')"
+    "plt.loglog(npboot_std.to_vector(),pboot_std.to_vector(),'.')\n",
+    "plt.loglog(np.logspace(-4,-2,10),np.logspace(-4,-2,10),'--')\n",
+    "plt.xlabel('Non-parametric')\n",
+    "plt.ylabel('Parametric')\n",
+    "plt.xlim((1e-4,1e-2)); plt.ylim((1e-4,1e-2))\n",
+    "plt.title('Scatter plot comparing param vs. non-param bootstrapping error bars.')\n",
+    "plt.show()"
    ]
   },
   {
@@ -221,9 +212,9 @@
  ],
  "metadata": {
   "kernelspec": {
-   "display_name": "Python 3 (ipykernel)",
+   "display_name": "api_updates",
    "language": "python",
-   "name": "python3"
+   "name": "api_updates"
   },
   "language_info": {
    "codemirror_mode": {
diff --git a/jupyter_notebooks/Examples/QutritGST.ipynb b/jupyter_notebooks/Examples/QutritGST.ipynb
index f9498fc82..29a2ccc71 100644
--- a/jupyter_notebooks/Examples/QutritGST.ipynb
+++ b/jupyter_notebooks/Examples/QutritGST.ipynb
@@ -16,6 +16,8 @@
    "source": [
     "import pygsti\n",
     "from pygsti.models import qutrit\n",
+    "from pygsti.algorithms.fiducialselection import find_fiducials\n",
+    "from pygsti.algorithms.germselection import find_germs\n",
     "\n",
     "from numpy import pi, array\n",
     "import pickle\n",
@@ -27,88 +29,40 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "First, we construct the target model.  This functionality is built into pyGSTi, so we just need to specify the single-qubit and M-S angles."
+    "First, we construct the target model.  This functionality is built into pyGSTi, so we just need to specify the single-qubit and M-S angles.\n",
+    "Note there are alternative approaches for building a qutrit model in pygsti using processor specification objects, but for this particular class of qutrit models in this example notebook there exist helper functions for creating the relevant models."
    ]
   },
   {
    "cell_type": "code",
    "execution_count": null,
-   "metadata": {},
+   "metadata": {
+    "tags": []
+   },
    "outputs": [],
    "source": [
     "target_model = qutrit.create_qutrit_model(error_scale=0, x_angle=pi/2, y_angle=pi/2, ms_global=pi/2, ms_local=0, basis=\"qt\")\n",
-    "#print(target_model)"
+    "#change the forward simulator for the purposes of experiment design code\n",
+    "target_model.sim = 'matrix'"
    ]
   },
   {
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "Now construct the operation sequences needed by GST.  These fiducials and germs have been computed ahead of time and the results are used to construct the operation sequence lists below.  Then we construct an empty dataset containing all of the necessary experimental sequences which can serve as a template for the actual experimental results."
+    "Now construct the operation sequences needed by GST. Then we construct an empty dataset containing all of the necessary experimental sequences which can serve as a template for the actual experimental results."
    ]
   },
   {
    "cell_type": "code",
    "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "fiducialPrep = pygsti.circuits.to_circuits(\n",
-    "    [(),('Gy',),('Gx',),('Gm',),\n",
-    "    ('Gx','Gx'), ('Gm','Gy'),('Gm','Gx'),\n",
-    "    ('Gy','Gy','Gy'),('Gx','Gx','Gx')])\n",
-    "\n",
-    "fiducialMeasure = pygsti.circuits.to_circuits(\n",
-    "    [(),('Gy',),('Gx',),('Gm',),\n",
-    "    ('Gy','Gm'),('Gx','Gm')])\n",
-    "\n",
-    "maxLengths = [1,2,4]\n",
-    "\n",
-    "germs = pygsti.circuits.to_circuits(\n",
-    "[('Gi',),\n",
-    " ('Gy',),\n",
-    " ('Gx',),\n",
-    " ('Gm',),\n",
-    " ('Gi', 'Gy'),\n",
-    " ('Gi', 'Gx'),\n",
-    " ('Gi', 'Gm'),\n",
-    " ('Gy', 'Gx'),\n",
-    " ('Gy', 'Gm'),\n",
-    " ('Gx', 'Gm'),\n",
-    " ('Gi', 'Gi', 'Gy'),\n",
-    " ('Gi', 'Gi', 'Gx'),\n",
-    " ('Gi', 'Gi', 'Gm'),\n",
-    " ('Gi', 'Gy', 'Gy'),\n",
-    " ('Gi', 'Gy', 'Gx'),\n",
-    " ('Gi', 'Gy', 'Gm'),\n",
-    " ('Gi', 'Gx', 'Gy'),\n",
-    " ('Gi', 'Gx', 'Gx'),\n",
-    " ('Gi', 'Gx', 'Gm'),\n",
-    " ('Gi', 'Gm', 'Gy'),\n",
-    " ('Gi', 'Gm', 'Gx'),\n",
-    " ('Gi', 'Gm', 'Gm'),\n",
-    " ('Gy', 'Gy', 'Gx'),\n",
-    " ('Gy', 'Gy', 'Gm'),\n",
-    " ('Gy', 'Gx', 'Gx'),\n",
-    " ('Gy', 'Gx', 'Gm'),\n",
-    " ('Gy', 'Gm', 'Gx'),\n",
-    " ('Gy', 'Gm', 'Gm'),\n",
-    " ('Gx', 'Gx', 'Gm'),\n",
-    " ('Gx', 'Gm', 'Gm')])"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
+   "metadata": {
+    "tags": []
+   },
    "outputs": [],
    "source": [
-    "#Note above construction is now a \"standard\" qutrit model\n",
-    "from pygsti.modelpacks.legacy import stdQT_XYIMS\n",
-    "target_model = stdQT_XYIMS.target_model()\n",
-    "fiducialPrep = stdQT_XYIMS.prepStrs\n",
-    "fiducialMeasure = stdQT_XYIMS.effectStrs\n",
-    "germs = stdQT_XYIMS.germs_lite\n",
+    "fiducialPrep, fiducialMeasure = find_fiducials(target_model, candidate_fid_counts={4: 'all upto'}, algorithm= 'greedy')\n",
+    "germs = find_germs(target_model, randomize=False, candidate_germ_counts={4: 'all upto'}, mode= 'compactEVD', assume_real=True, float_type=np.double)\n",
     "maxLengths = [1,2,4]"
    ]
   },
@@ -147,8 +101,8 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "mdl_datagen = target_model.depolarize(op_noise=0.05)\n",
-    "DS = pygsti.data.simulate_data(mdl_datagen, expList, 500, sample_error='multinomial', seed=2018)"
+    "mdl_datagen = target_model.depolarize(op_noise=0.05, spam_noise = .01)\n",
+    "DS = pygsti.data.simulate_data(mdl_datagen, expList, 1000, sample_error='multinomial', seed=2018)"
    ]
   },
   {
@@ -170,9 +124,11 @@
    "source": [
     "#Run qutrit GST... which could take a while on a single CPU.  Please adjust memLimit to machine specs \n",
     "# (now 3GB; usually set to slightly less than the total machine memory)\n",
+    "#Setting max_iterations lower than default for the sake of the example running faster. \n",
     "target_model.sim = \"matrix\"\n",
-    "result = pygsti.run_stdpractice_gst(DS,target_model,fiducialPrep,fiducialMeasure,germs,maxLengths,\n",
-    "                                     verbosity=4, comm=None, mem_limit=3*(1024)**3, modes=\"CPTPLND\")"
+    "result = pygsti.run_stdpractice_gst(DS, target_model, fiducialPrep, fiducialMeasure, germs, maxLengths,\n",
+    "                                    verbosity=3, comm=None, mem_limit=3*(1024)**3, modes=\"CPTPLND\",\n",
+    "                                    advanced_options= {'max_iterations':50})"
    ]
   },
   {
@@ -186,20 +142,13 @@
     "    result, \"Example Qutrit Report\", verbosity=3\n",
     ").write_html('example_files/sampleQutritReport', auto_open=False, verbosity=3)"
    ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
   }
  ],
  "metadata": {
   "kernelspec": {
-   "display_name": "New_FPR",
+   "display_name": "api_updates",
    "language": "python",
-   "name": "new_fpr"
+   "name": "api_updates"
   },
   "language_info": {
    "codemirror_mode": {
diff --git a/jupyter_notebooks/Examples/example_files/dataTemplate_qutrit_maxL=4.txt b/jupyter_notebooks/Examples/example_files/dataTemplate_qutrit_maxL=4.txt
index 89f5d6ff5..e1c822bce 100644
--- a/jupyter_notebooks/Examples/example_files/dataTemplate_qutrit_maxL=4.txt
+++ b/jupyter_notebooks/Examples/example_files/dataTemplate_qutrit_maxL=4.txt
@@ -1,2018 +1,775 @@
 ## Columns = 0bright count, 1bright count, 2bright count
-{}  0  0  0
-Gx  0  0  0
-Gy  0  0  0
-Gm  0  0  0
-GxGx  0  0  0
-GyGm  0  0  0
-GxGm  0  0  0
-GmGx  0  0  0
-GmGy  0  0  0
-GyGyGy  0  0  0
-GxGxGx  0  0  0
-GxGy  0  0  0
-GxGyGm  0  0  0
-GxGxGm  0  0  0
-GyGx  0  0  0
-GyGy  0  0  0
-GyGxGx  0  0  0
-GyGyGm  0  0  0
-GyGxGm  0  0  0
-GmGm  0  0  0
-GmGxGx  0  0  0
-GmGyGm  0  0  0
-GmGxGm  0  0  0
-GxGxGy  0  0  0
-GxGxGxGx  0  0  0
-GxGxGyGm  0  0  0
-GxGxGxGm  0  0  0
-GmGxGy  0  0  0
-GmGxGxGx  0  0  0
-GmGxGyGm  0  0  0
-GmGxGxGm  0  0  0
-GmGyGx  0  0  0
-GmGyGy  0  0  0
-GmGyGxGx  0  0  0
-GmGyGyGm  0  0  0
-GmGyGxGm  0  0  0
-GyGyGyGx  0  0  0
-GyGyGyGy  0  0  0
-GyGyGyGm  0  0  0
-GyGyGyGxGx  0  0  0
-GyGyGyGyGm  0  0  0
-GyGyGyGxGm  0  0  0
-GxGxGxGy  0  0  0
-GxGxGxGxGx  0  0  0
-GxGxGxGyGm  0  0  0
-GxGxGxGxGm  0  0  0
-(Gi)  0  0  0
-(Gi)Gx  0  0  0
-(Gi)Gy  0  0  0
-(Gi)Gm  0  0  0
-(Gi)GxGx  0  0  0
-(Gi)GyGm  0  0  0
-(Gi)GxGm  0  0  0
-Gx(Gi)  0  0  0
-Gx(Gi)Gx  0  0  0
-Gx(Gi)Gy  0  0  0
-Gx(Gi)Gm  0  0  0
-Gx(Gi)GxGx  0  0  0
-Gx(Gi)GyGm  0  0  0
-Gx(Gi)GxGm  0  0  0
-Gy(Gi)  0  0  0
-Gy(Gi)Gx  0  0  0
-Gy(Gi)Gy  0  0  0
-Gy(Gi)Gm  0  0  0
-Gy(Gi)GxGx  0  0  0
-Gy(Gi)GyGm  0  0  0
-Gy(Gi)GxGm  0  0  0
-Gm(Gi)  0  0  0
-Gm(Gi)Gx  0  0  0
-Gm(Gi)Gy  0  0  0
-Gm(Gi)Gm  0  0  0
-Gm(Gi)GxGx  0  0  0
-Gm(Gi)GyGm  0  0  0
-Gm(Gi)GxGm  0  0  0
-GxGx(Gi)  0  0  0
-GxGx(Gi)Gx  0  0  0
-GxGx(Gi)Gy  0  0  0
-GxGx(Gi)Gm  0  0  0
-GxGx(Gi)GxGx  0  0  0
-GxGx(Gi)GyGm  0  0  0
-GxGx(Gi)GxGm  0  0  0
-GmGx(Gi)  0  0  0
-GmGx(Gi)Gx  0  0  0
-GmGx(Gi)Gy  0  0  0
-GmGx(Gi)Gm  0  0  0
-GmGx(Gi)GxGx  0  0  0
-GmGx(Gi)GyGm  0  0  0
-GmGx(Gi)GxGm  0  0  0
-GmGy(Gi)  0  0  0
-GmGy(Gi)Gx  0  0  0
-GmGy(Gi)Gy  0  0  0
-GmGy(Gi)Gm  0  0  0
-GmGy(Gi)GxGx  0  0  0
-GmGy(Gi)GyGm  0  0  0
-GmGy(Gi)GxGm  0  0  0
-GyGyGy(Gi)  0  0  0
-GyGyGy(Gi)Gx  0  0  0
-GyGyGy(Gi)Gy  0  0  0
-GyGyGy(Gi)Gm  0  0  0
-GyGyGy(Gi)GxGx  0  0  0
-GyGyGy(Gi)GyGm  0  0  0
-GyGyGy(Gi)GxGm  0  0  0
-GxGxGx(Gi)  0  0  0
-GxGxGx(Gi)Gx  0  0  0
-GxGxGx(Gi)Gy  0  0  0
-GxGxGx(Gi)Gm  0  0  0
-GxGxGx(Gi)GxGx  0  0  0
-GxGxGx(Gi)GyGm  0  0  0
-GxGxGx(Gi)GxGm  0  0  0
-Gy(Gx)Gy  0  0  0
-Gy(Gx)GxGx  0  0  0
-Gy(Gx)GyGm  0  0  0
-Gy(Gx)GxGm  0  0  0
-GmGx(Gx)Gy  0  0  0
-GmGx(Gx)GxGx  0  0  0
-GmGx(Gx)GyGm  0  0  0
-GmGx(Gx)GxGm  0  0  0
-GmGy(Gx)Gy  0  0  0
-GmGy(Gx)GxGx  0  0  0
-GmGy(Gx)GyGm  0  0  0
-GmGy(Gx)GxGm  0  0  0
-GyGyGy(Gx)Gy  0  0  0
-GyGyGy(Gx)GxGx  0  0  0
-GyGyGy(Gx)GyGm  0  0  0
-GyGyGy(Gx)GxGm  0  0  0
-GxGxGx(Gx)Gy  0  0  0
-GxGxGx(Gx)GxGx  0  0  0
-GxGxGx(Gx)GyGm  0  0  0
-GxGxGx(Gx)GxGm  0  0  0
-Gx(Gy)Gx  0  0  0
-Gx(Gy)Gy  0  0  0
-Gx(Gy)GxGx  0  0  0
-Gx(Gy)GyGm  0  0  0
-Gx(Gy)GxGm  0  0  0
-Gy(Gy)Gx  0  0  0
-Gy(Gy)GxGx  0  0  0
-Gy(Gy)GxGm  0  0  0
-GxGx(Gy)Gx  0  0  0
-GxGx(Gy)Gy  0  0  0
-GxGx(Gy)GxGx  0  0  0
-GxGx(Gy)GyGm  0  0  0
-GxGx(Gy)GxGm  0  0  0
-GmGx(Gy)Gx  0  0  0
-GmGx(Gy)Gy  0  0  0
-GmGx(Gy)GxGx  0  0  0
-GmGx(Gy)GyGm  0  0  0
-GmGx(Gy)GxGm  0  0  0
-GmGy(Gy)Gx  0  0  0
-GmGy(Gy)Gy  0  0  0
-GmGy(Gy)GxGx  0  0  0
-GmGy(Gy)GyGm  0  0  0
-GmGy(Gy)GxGm  0  0  0
-GyGyGy(Gy)Gx  0  0  0
-GyGyGy(Gy)Gy  0  0  0
-GyGyGy(Gy)GxGx  0  0  0
-GyGyGy(Gy)GyGm  0  0  0
-GyGyGy(Gy)GxGm  0  0  0
-GxGxGx(Gy)Gx  0  0  0
-GxGxGx(Gy)Gy  0  0  0
-GxGxGx(Gy)GxGx  0  0  0
-GxGxGx(Gy)GyGm  0  0  0
-GxGxGx(Gy)GxGm  0  0  0
-Gx(Gm)Gx  0  0  0
-Gx(Gm)Gy  0  0  0
-Gx(Gm)Gm  0  0  0
-Gx(Gm)GxGx  0  0  0
-Gx(Gm)GyGm  0  0  0
-Gx(Gm)GxGm  0  0  0
-Gy(Gm)Gx  0  0  0
-Gy(Gm)Gy  0  0  0
-Gy(Gm)Gm  0  0  0
-Gy(Gm)GxGx  0  0  0
-Gy(Gm)GyGm  0  0  0
-Gy(Gm)GxGm  0  0  0
-Gm(Gm)Gx  0  0  0
-Gm(Gm)Gy  0  0  0
-Gm(Gm)Gm  0  0  0
-Gm(Gm)GxGx  0  0  0
-Gm(Gm)GyGm  0  0  0
-Gm(Gm)GxGm  0  0  0
-GxGx(Gm)Gx  0  0  0
-GxGx(Gm)Gy  0  0  0
-GxGx(Gm)Gm  0  0  0
-GxGx(Gm)GxGx  0  0  0
-GxGx(Gm)GyGm  0  0  0
-GxGx(Gm)GxGm  0  0  0
-GmGx(Gm)Gx  0  0  0
-GmGx(Gm)Gy  0  0  0
-GmGx(Gm)Gm  0  0  0
-GmGx(Gm)GxGx  0  0  0
-GmGx(Gm)GyGm  0  0  0
-GmGx(Gm)GxGm  0  0  0
-GmGy(Gm)Gx  0  0  0
-GmGy(Gm)Gy  0  0  0
-GmGy(Gm)Gm  0  0  0
-GmGy(Gm)GxGx  0  0  0
-GmGy(Gm)GyGm  0  0  0
-GmGy(Gm)GxGm  0  0  0
-GyGyGy(Gm)Gx  0  0  0
-GyGyGy(Gm)Gy  0  0  0
-GyGyGy(Gm)Gm  0  0  0
-GyGyGy(Gm)GxGx  0  0  0
-GyGyGy(Gm)GyGm  0  0  0
-GyGyGy(Gm)GxGm  0  0  0
-GxGxGx(Gm)Gx  0  0  0
-GxGxGx(Gm)Gy  0  0  0
-GxGxGx(Gm)Gm  0  0  0
-GxGxGx(Gm)GxGx  0  0  0
-GxGxGx(Gm)GyGm  0  0  0
-GxGxGx(Gm)GxGm  0  0  0
-(Gi)^2  0  0  0
-(Gi)^2Gx  0  0  0
-(Gi)^2Gy  0  0  0
-(Gi)^2Gm  0  0  0
-(Gi)^2GxGx  0  0  0
-(Gi)^2GyGm  0  0  0
-(Gi)^2GxGm  0  0  0
-Gx(Gi)^2  0  0  0
-Gx(Gi)^2Gx  0  0  0
-Gx(Gi)^2Gy  0  0  0
-Gx(Gi)^2Gm  0  0  0
-Gx(Gi)^2GxGx  0  0  0
-Gx(Gi)^2GyGm  0  0  0
-Gx(Gi)^2GxGm  0  0  0
-Gy(Gi)^2  0  0  0
-Gy(Gi)^2Gx  0  0  0
-Gy(Gi)^2Gy  0  0  0
-Gy(Gi)^2Gm  0  0  0
-Gy(Gi)^2GxGx  0  0  0
-Gy(Gi)^2GyGm  0  0  0
-Gy(Gi)^2GxGm  0  0  0
-Gm(Gi)^2  0  0  0
-Gm(Gi)^2Gx  0  0  0
-Gm(Gi)^2Gy  0  0  0
-Gm(Gi)^2Gm  0  0  0
-Gm(Gi)^2GxGx  0  0  0
-Gm(Gi)^2GyGm  0  0  0
-Gm(Gi)^2GxGm  0  0  0
-GxGx(Gi)^2  0  0  0
-GxGx(Gi)^2Gx  0  0  0
-GxGx(Gi)^2Gy  0  0  0
-GxGx(Gi)^2Gm  0  0  0
-GxGx(Gi)^2GxGx  0  0  0
-GxGx(Gi)^2GyGm  0  0  0
-GxGx(Gi)^2GxGm  0  0  0
-GmGx(Gi)^2  0  0  0
-GmGx(Gi)^2Gx  0  0  0
-GmGx(Gi)^2Gy  0  0  0
-GmGx(Gi)^2Gm  0  0  0
-GmGx(Gi)^2GxGx  0  0  0
-GmGx(Gi)^2GyGm  0  0  0
-GmGx(Gi)^2GxGm  0  0  0
-GmGy(Gi)^2  0  0  0
-GmGy(Gi)^2Gx  0  0  0
-GmGy(Gi)^2Gy  0  0  0
-GmGy(Gi)^2Gm  0  0  0
-GmGy(Gi)^2GxGx  0  0  0
-GmGy(Gi)^2GyGm  0  0  0
-GmGy(Gi)^2GxGm  0  0  0
-GyGyGy(Gi)^2  0  0  0
-GyGyGy(Gi)^2Gx  0  0  0
-GyGyGy(Gi)^2Gy  0  0  0
-GyGyGy(Gi)^2Gm  0  0  0
-GyGyGy(Gi)^2GxGx  0  0  0
-GyGyGy(Gi)^2GyGm  0  0  0
-GyGyGy(Gi)^2GxGm  0  0  0
-GxGxGx(Gi)^2  0  0  0
-GxGxGx(Gi)^2Gx  0  0  0
-GxGxGx(Gi)^2Gy  0  0  0
-GxGxGx(Gi)^2Gm  0  0  0
-GxGxGx(Gi)^2GxGx  0  0  0
-GxGxGx(Gi)^2GyGm  0  0  0
-GxGxGx(Gi)^2GxGm  0  0  0
-Gx(Gy)^2Gx  0  0  0
-Gx(Gy)^2Gy  0  0  0
-Gx(Gy)^2GxGx  0  0  0
-Gx(Gy)^2GyGm  0  0  0
-Gx(Gy)^2GxGm  0  0  0
-GxGx(Gy)^2Gx  0  0  0
-GxGx(Gy)^2Gy  0  0  0
-GxGx(Gy)^2GxGx  0  0  0
-GxGx(Gy)^2GyGm  0  0  0
-GxGx(Gy)^2GxGm  0  0  0
-GmGx(Gy)^2Gx  0  0  0
-GmGx(Gy)^2Gy  0  0  0
-GmGx(Gy)^2GxGx  0  0  0
-GmGx(Gy)^2GyGm  0  0  0
-GmGx(Gy)^2GxGm  0  0  0
-GmGy(Gy)^2Gx  0  0  0
-GmGy(Gy)^2Gy  0  0  0
-GmGy(Gy)^2GxGx  0  0  0
-GmGy(Gy)^2GyGm  0  0  0
-GmGy(Gy)^2GxGm  0  0  0
-GyGyGy(Gy)^2Gx  0  0  0
-GyGyGy(Gy)^2Gy  0  0  0
-GyGyGy(Gy)^2GxGx  0  0  0
-GyGyGy(Gy)^2GyGm  0  0  0
-GyGyGy(Gy)^2GxGm  0  0  0
-GxGxGx(Gy)^2Gx  0  0  0
-GxGxGx(Gy)^2Gy  0  0  0
-GxGxGx(Gy)^2GxGx  0  0  0
-GxGxGx(Gy)^2GyGm  0  0  0
-GxGxGx(Gy)^2GxGm  0  0  0
-Gy(Gx)^2Gy  0  0  0
-Gy(Gx)^2GxGx  0  0  0
-Gy(Gx)^2GyGm  0  0  0
-Gy(Gx)^2GxGm  0  0  0
-GmGx(Gx)^2Gy  0  0  0
-GmGx(Gx)^2GxGx  0  0  0
-GmGx(Gx)^2GyGm  0  0  0
-GmGx(Gx)^2GxGm  0  0  0
-GmGy(Gx)^2Gy  0  0  0
-GmGy(Gx)^2GxGx  0  0  0
-GmGy(Gx)^2GyGm  0  0  0
-GmGy(Gx)^2GxGm  0  0  0
-GyGyGy(Gx)^2Gy  0  0  0
-GyGyGy(Gx)^2GxGx  0  0  0
-GyGyGy(Gx)^2GyGm  0  0  0
-GyGyGy(Gx)^2GxGm  0  0  0
-GxGxGx(Gx)^2Gy  0  0  0
-GxGxGx(Gx)^2GxGx  0  0  0
-GxGxGx(Gx)^2GyGm  0  0  0
-GxGxGx(Gx)^2GxGm  0  0  0
-Gx(Gm)^2Gx  0  0  0
-Gx(Gm)^2Gy  0  0  0
-Gx(Gm)^2Gm  0  0  0
-Gx(Gm)^2GxGx  0  0  0
-Gx(Gm)^2GyGm  0  0  0
-Gx(Gm)^2GxGm  0  0  0
-Gy(Gm)^2Gx  0  0  0
-Gy(Gm)^2Gy  0  0  0
-Gy(Gm)^2Gm  0  0  0
-Gy(Gm)^2GxGx  0  0  0
-Gy(Gm)^2GyGm  0  0  0
-Gy(Gm)^2GxGm  0  0  0
-Gm(Gm)^2Gx  0  0  0
-Gm(Gm)^2Gy  0  0  0
-Gm(Gm)^2Gm  0  0  0
-Gm(Gm)^2GxGx  0  0  0
-Gm(Gm)^2GyGm  0  0  0
-Gm(Gm)^2GxGm  0  0  0
-GxGx(Gm)^2Gx  0  0  0
-GxGx(Gm)^2Gy  0  0  0
-GxGx(Gm)^2Gm  0  0  0
-GxGx(Gm)^2GxGx  0  0  0
-GxGx(Gm)^2GyGm  0  0  0
-GxGx(Gm)^2GxGm  0  0  0
-GmGx(Gm)^2Gx  0  0  0
-GmGx(Gm)^2Gy  0  0  0
-GmGx(Gm)^2Gm  0  0  0
-GmGx(Gm)^2GxGx  0  0  0
-GmGx(Gm)^2GyGm  0  0  0
-GmGx(Gm)^2GxGm  0  0  0
-GmGy(Gm)^2Gx  0  0  0
-GmGy(Gm)^2Gy  0  0  0
-GmGy(Gm)^2Gm  0  0  0
-GmGy(Gm)^2GxGx  0  0  0
-GmGy(Gm)^2GyGm  0  0  0
-GmGy(Gm)^2GxGm  0  0  0
-GyGyGy(Gm)^2Gx  0  0  0
-GyGyGy(Gm)^2Gy  0  0  0
-GyGyGy(Gm)^2Gm  0  0  0
-GyGyGy(Gm)^2GxGx  0  0  0
-GyGyGy(Gm)^2GyGm  0  0  0
-GyGyGy(Gm)^2GxGm  0  0  0
-GxGxGx(Gm)^2Gx  0  0  0
-GxGxGx(Gm)^2Gy  0  0  0
-GxGxGx(Gm)^2Gm  0  0  0
-GxGxGx(Gm)^2GxGx  0  0  0
-GxGxGx(Gm)^2GyGm  0  0  0
-GxGxGx(Gm)^2GxGm  0  0  0
-(GiGy)Gx  0  0  0
-(GiGy)Gy  0  0  0
-(GiGy)GxGx  0  0  0
-(GiGy)GyGm  0  0  0
-(GiGy)GxGm  0  0  0
-Gx(GiGy)Gx  0  0  0
-Gx(GiGy)Gy  0  0  0
-Gx(GiGy)GxGx  0  0  0
-Gx(GiGy)GyGm  0  0  0
-Gx(GiGy)GxGm  0  0  0
-Gy(GiGy)Gx  0  0  0
-Gy(GiGy)Gy  0  0  0
-Gy(GiGy)GxGx  0  0  0
-Gy(GiGy)GyGm  0  0  0
-Gy(GiGy)GxGm  0  0  0
-Gm(GiGy)Gx  0  0  0
-Gm(GiGy)Gy  0  0  0
-Gm(GiGy)GxGx  0  0  0
-Gm(GiGy)GyGm  0  0  0
-Gm(GiGy)GxGm  0  0  0
-GxGx(GiGy)Gx  0  0  0
-GxGx(GiGy)Gy  0  0  0
-GxGx(GiGy)GxGx  0  0  0
-GxGx(GiGy)GyGm  0  0  0
-GxGx(GiGy)GxGm  0  0  0
-GmGx(GiGy)Gx  0  0  0
-GmGx(GiGy)Gy  0  0  0
-GmGx(GiGy)GxGx  0  0  0
-GmGx(GiGy)GyGm  0  0  0
-GmGx(GiGy)GxGm  0  0  0
-GmGy(GiGy)Gx  0  0  0
-GmGy(GiGy)Gy  0  0  0
-GmGy(GiGy)GxGx  0  0  0
-GmGy(GiGy)GyGm  0  0  0
-GmGy(GiGy)GxGm  0  0  0
-GyGyGy(GiGy)Gx  0  0  0
-GyGyGy(GiGy)Gy  0  0  0
-GyGyGy(GiGy)GxGx  0  0  0
-GyGyGy(GiGy)GyGm  0  0  0
-GyGyGy(GiGy)GxGm  0  0  0
-GxGxGx(GiGy)Gx  0  0  0
-GxGxGx(GiGy)Gy  0  0  0
-GxGxGx(GiGy)GxGx  0  0  0
-GxGxGx(GiGy)GyGm  0  0  0
-GxGxGx(GiGy)GxGm  0  0  0
-(GiGx)Gy  0  0  0
-(GiGx)GxGx  0  0  0
-(GiGx)GyGm  0  0  0
-(GiGx)GxGm  0  0  0
-Gx(GiGx)Gy  0  0  0
-Gx(GiGx)GxGx  0  0  0
-Gx(GiGx)GyGm  0  0  0
-Gx(GiGx)GxGm  0  0  0
-Gy(GiGx)Gy  0  0  0
-Gy(GiGx)GxGx  0  0  0
-Gy(GiGx)GyGm  0  0  0
-Gy(GiGx)GxGm  0  0  0
-Gm(GiGx)Gy  0  0  0
-Gm(GiGx)GxGx  0  0  0
-Gm(GiGx)GyGm  0  0  0
-Gm(GiGx)GxGm  0  0  0
-GxGx(GiGx)Gy  0  0  0
-GxGx(GiGx)GxGx  0  0  0
-GxGx(GiGx)GyGm  0  0  0
-GxGx(GiGx)GxGm  0  0  0
-GmGx(GiGx)Gy  0  0  0
-GmGx(GiGx)GxGx  0  0  0
-GmGx(GiGx)GyGm  0  0  0
-GmGx(GiGx)GxGm  0  0  0
-GmGy(GiGx)Gy  0  0  0
-GmGy(GiGx)GxGx  0  0  0
-GmGy(GiGx)GyGm  0  0  0
-GmGy(GiGx)GxGm  0  0  0
-GyGyGy(GiGx)Gy  0  0  0
-GyGyGy(GiGx)GxGx  0  0  0
-GyGyGy(GiGx)GyGm  0  0  0
-GyGyGy(GiGx)GxGm  0  0  0
-GxGxGx(GiGx)Gy  0  0  0
-GxGxGx(GiGx)GxGx  0  0  0
-GxGxGx(GiGx)GyGm  0  0  0
-GxGxGx(GiGx)GxGm  0  0  0
-(GiGm)Gx  0  0  0
-(GiGm)Gy  0  0  0
-(GiGm)Gm  0  0  0
-(GiGm)GxGx  0  0  0
-(GiGm)GyGm  0  0  0
-(GiGm)GxGm  0  0  0
-Gx(GiGm)Gx  0  0  0
-Gx(GiGm)Gy  0  0  0
-Gx(GiGm)Gm  0  0  0
-Gx(GiGm)GxGx  0  0  0
-Gx(GiGm)GyGm  0  0  0
-Gx(GiGm)GxGm  0  0  0
-Gy(GiGm)Gx  0  0  0
-Gy(GiGm)Gy  0  0  0
-Gy(GiGm)Gm  0  0  0
-Gy(GiGm)GxGx  0  0  0
-Gy(GiGm)GyGm  0  0  0
-Gy(GiGm)GxGm  0  0  0
-Gm(GiGm)Gx  0  0  0
-Gm(GiGm)Gy  0  0  0
-Gm(GiGm)Gm  0  0  0
-Gm(GiGm)GxGx  0  0  0
-Gm(GiGm)GyGm  0  0  0
-Gm(GiGm)GxGm  0  0  0
-GxGx(GiGm)Gx  0  0  0
-GxGx(GiGm)Gy  0  0  0
-GxGx(GiGm)Gm  0  0  0
-GxGx(GiGm)GxGx  0  0  0
-GxGx(GiGm)GyGm  0  0  0
-GxGx(GiGm)GxGm  0  0  0
-GmGx(GiGm)Gx  0  0  0
-GmGx(GiGm)Gy  0  0  0
-GmGx(GiGm)Gm  0  0  0
-GmGx(GiGm)GxGx  0  0  0
-GmGx(GiGm)GyGm  0  0  0
-GmGx(GiGm)GxGm  0  0  0
-GmGy(GiGm)Gx  0  0  0
-GmGy(GiGm)Gy  0  0  0
-GmGy(GiGm)Gm  0  0  0
-GmGy(GiGm)GxGx  0  0  0
-GmGy(GiGm)GyGm  0  0  0
-GmGy(GiGm)GxGm  0  0  0
-GyGyGy(GiGm)Gx  0  0  0
-GyGyGy(GiGm)Gy  0  0  0
-GyGyGy(GiGm)Gm  0  0  0
-GyGyGy(GiGm)GxGx  0  0  0
-GyGyGy(GiGm)GyGm  0  0  0
-GyGyGy(GiGm)GxGm  0  0  0
-GxGxGx(GiGm)Gx  0  0  0
-GxGxGx(GiGm)Gy  0  0  0
-GxGxGx(GiGm)Gm  0  0  0
-GxGxGx(GiGm)GxGx  0  0  0
-GxGxGx(GiGm)GyGm  0  0  0
-GxGxGx(GiGm)GxGm  0  0  0
-Gy(GxGy)Gx  0  0  0
-Gy(GxGy)Gy  0  0  0
-Gy(GxGy)GxGx  0  0  0
-Gy(GxGy)GyGm  0  0  0
-Gy(GxGy)GxGm  0  0  0
-GmGx(GxGy)Gx  0  0  0
-GmGx(GxGy)Gy  0  0  0
-GmGx(GxGy)GxGx  0  0  0
-GmGx(GxGy)GyGm  0  0  0
-GmGx(GxGy)GxGm  0  0  0
-GmGy(GxGy)Gx  0  0  0
-GmGy(GxGy)Gy  0  0  0
-GmGy(GxGy)GxGx  0  0  0
-GmGy(GxGy)GyGm  0  0  0
-GmGy(GxGy)GxGm  0  0  0
-GyGyGy(GxGy)Gx  0  0  0
-GyGyGy(GxGy)Gy  0  0  0
-GyGyGy(GxGy)GxGx  0  0  0
-GyGyGy(GxGy)GyGm  0  0  0
-GyGyGy(GxGy)GxGm  0  0  0
-GxGxGx(GxGy)Gx  0  0  0
-GxGxGx(GxGy)Gy  0  0  0
-GxGxGx(GxGy)GxGx  0  0  0
-GxGxGx(GxGy)GyGm  0  0  0
-GxGxGx(GxGy)GxGm  0  0  0
-Gx(GyGm)Gx  0  0  0
-Gx(GyGm)Gy  0  0  0
-Gx(GyGm)Gm  0  0  0
-Gx(GyGm)GxGx  0  0  0
-Gx(GyGm)GyGm  0  0  0
-Gx(GyGm)GxGm  0  0  0
-Gy(GyGm)Gx  0  0  0
-Gy(GyGm)Gy  0  0  0
-Gy(GyGm)Gm  0  0  0
-Gy(GyGm)GxGx  0  0  0
-Gy(GyGm)GyGm  0  0  0
-Gy(GyGm)GxGm  0  0  0
-GxGx(GyGm)Gx  0  0  0
-GxGx(GyGm)Gy  0  0  0
-GxGx(GyGm)Gm  0  0  0
-GxGx(GyGm)GxGx  0  0  0
-GxGx(GyGm)GyGm  0  0  0
-GxGx(GyGm)GxGm  0  0  0
-GmGx(GyGm)Gx  0  0  0
-GmGx(GyGm)Gy  0  0  0
-GmGx(GyGm)Gm  0  0  0
-GmGx(GyGm)GxGx  0  0  0
-GmGx(GyGm)GyGm  0  0  0
-GmGx(GyGm)GxGm  0  0  0
-GmGy(GyGm)Gx  0  0  0
-GmGy(GyGm)Gy  0  0  0
-GmGy(GyGm)Gm  0  0  0
-GmGy(GyGm)GxGx  0  0  0
-GmGy(GyGm)GyGm  0  0  0
-GmGy(GyGm)GxGm  0  0  0
-GyGyGy(GyGm)Gx  0  0  0
-GyGyGy(GyGm)Gy  0  0  0
-GyGyGy(GyGm)Gm  0  0  0
-GyGyGy(GyGm)GxGx  0  0  0
-GyGyGy(GyGm)GyGm  0  0  0
-GyGyGy(GyGm)GxGm  0  0  0
-GxGxGx(GyGm)Gx  0  0  0
-GxGxGx(GyGm)Gy  0  0  0
-GxGxGx(GyGm)Gm  0  0  0
-GxGxGx(GyGm)GxGx  0  0  0
-GxGxGx(GyGm)GyGm  0  0  0
-GxGxGx(GyGm)GxGm  0  0  0
-Gy(GxGm)Gx  0  0  0
-Gy(GxGm)Gy  0  0  0
-Gy(GxGm)Gm  0  0  0
-Gy(GxGm)GxGx  0  0  0
-Gy(GxGm)GyGm  0  0  0
-Gy(GxGm)GxGm  0  0  0
-GmGx(GxGm)Gx  0  0  0
-GmGx(GxGm)Gy  0  0  0
-GmGx(GxGm)Gm  0  0  0
-GmGx(GxGm)GxGx  0  0  0
-GmGx(GxGm)GyGm  0  0  0
-GmGx(GxGm)GxGm  0  0  0
-GmGy(GxGm)Gx  0  0  0
-GmGy(GxGm)Gy  0  0  0
-GmGy(GxGm)Gm  0  0  0
-GmGy(GxGm)GxGx  0  0  0
-GmGy(GxGm)GyGm  0  0  0
-GmGy(GxGm)GxGm  0  0  0
-GyGyGy(GxGm)Gx  0  0  0
-GyGyGy(GxGm)Gy  0  0  0
-GyGyGy(GxGm)Gm  0  0  0
-GyGyGy(GxGm)GxGx  0  0  0
-GyGyGy(GxGm)GyGm  0  0  0
-GyGyGy(GxGm)GxGm  0  0  0
-GxGxGx(GxGm)Gx  0  0  0
-GxGxGx(GxGm)Gy  0  0  0
-GxGxGx(GxGm)Gm  0  0  0
-GxGxGx(GxGm)GxGx  0  0  0
-GxGxGx(GxGm)GyGm  0  0  0
-GxGxGx(GxGm)GxGm  0  0  0
-(Gi)^4  0  0  0
-(Gi)^4Gx  0  0  0
-(Gi)^4Gy  0  0  0
-(Gi)^4Gm  0  0  0
-(Gi)^4GxGx  0  0  0
-(Gi)^4GyGm  0  0  0
-(Gi)^4GxGm  0  0  0
-Gx(Gi)^4  0  0  0
-Gx(Gi)^4Gx  0  0  0
-Gx(Gi)^4Gy  0  0  0
-Gx(Gi)^4Gm  0  0  0
-Gx(Gi)^4GxGx  0  0  0
-Gx(Gi)^4GyGm  0  0  0
-Gx(Gi)^4GxGm  0  0  0
-Gy(Gi)^4  0  0  0
-Gy(Gi)^4Gx  0  0  0
-Gy(Gi)^4Gy  0  0  0
-Gy(Gi)^4Gm  0  0  0
-Gy(Gi)^4GxGx  0  0  0
-Gy(Gi)^4GyGm  0  0  0
-Gy(Gi)^4GxGm  0  0  0
-Gm(Gi)^4  0  0  0
-Gm(Gi)^4Gx  0  0  0
-Gm(Gi)^4Gy  0  0  0
-Gm(Gi)^4Gm  0  0  0
-Gm(Gi)^4GxGx  0  0  0
-Gm(Gi)^4GyGm  0  0  0
-Gm(Gi)^4GxGm  0  0  0
-GxGx(Gi)^4  0  0  0
-GxGx(Gi)^4Gx  0  0  0
-GxGx(Gi)^4Gy  0  0  0
-GxGx(Gi)^4Gm  0  0  0
-GxGx(Gi)^4GxGx  0  0  0
-GxGx(Gi)^4GyGm  0  0  0
-GxGx(Gi)^4GxGm  0  0  0
-GmGx(Gi)^4  0  0  0
-GmGx(Gi)^4Gx  0  0  0
-GmGx(Gi)^4Gy  0  0  0
-GmGx(Gi)^4Gm  0  0  0
-GmGx(Gi)^4GxGx  0  0  0
-GmGx(Gi)^4GyGm  0  0  0
-GmGx(Gi)^4GxGm  0  0  0
-GmGy(Gi)^4  0  0  0
-GmGy(Gi)^4Gx  0  0  0
-GmGy(Gi)^4Gy  0  0  0
-GmGy(Gi)^4Gm  0  0  0
-GmGy(Gi)^4GxGx  0  0  0
-GmGy(Gi)^4GyGm  0  0  0
-GmGy(Gi)^4GxGm  0  0  0
-GyGyGy(Gi)^4  0  0  0
-GyGyGy(Gi)^4Gx  0  0  0
-GyGyGy(Gi)^4Gy  0  0  0
-GyGyGy(Gi)^4Gm  0  0  0
-GyGyGy(Gi)^4GxGx  0  0  0
-GyGyGy(Gi)^4GyGm  0  0  0
-GyGyGy(Gi)^4GxGm  0  0  0
-GxGxGx(Gi)^4  0  0  0
-GxGxGx(Gi)^4Gx  0  0  0
-GxGxGx(Gi)^4Gy  0  0  0
-GxGxGx(Gi)^4Gm  0  0  0
-GxGxGx(Gi)^4GxGx  0  0  0
-GxGxGx(Gi)^4GyGm  0  0  0
-GxGxGx(Gi)^4GxGm  0  0  0
-Gx(Gy)^4  0  0  0
-Gx(Gy)^4Gx  0  0  0
-Gx(Gy)^4Gy  0  0  0
-Gx(Gy)^4Gm  0  0  0
-Gx(Gy)^4GxGx  0  0  0
-Gx(Gy)^4GyGm  0  0  0
-Gx(Gy)^4GxGm  0  0  0
-Gm(Gy)^4Gx  0  0  0
-Gm(Gy)^4Gy  0  0  0
-Gm(Gy)^4GxGx  0  0  0
-Gm(Gy)^4GyGm  0  0  0
-Gm(Gy)^4GxGm  0  0  0
-GxGx(Gy)^4  0  0  0
-GxGx(Gy)^4Gx  0  0  0
-GxGx(Gy)^4Gy  0  0  0
-GxGx(Gy)^4Gm  0  0  0
-GxGx(Gy)^4GxGx  0  0  0
-GxGx(Gy)^4GyGm  0  0  0
-GxGx(Gy)^4GxGm  0  0  0
-GmGx(Gy)^4  0  0  0
-GmGx(Gy)^4Gx  0  0  0
-GmGx(Gy)^4Gy  0  0  0
-GmGx(Gy)^4Gm  0  0  0
-GmGx(Gy)^4GxGx  0  0  0
-GmGx(Gy)^4GyGm  0  0  0
-GmGx(Gy)^4GxGm  0  0  0
-GmGy(Gy)^4Gx  0  0  0
-GmGy(Gy)^4Gy  0  0  0
-GmGy(Gy)^4GxGx  0  0  0
-GmGy(Gy)^4GyGm  0  0  0
-GmGy(Gy)^4GxGm  0  0  0
-GyGyGy(Gy)^4  0  0  0
-GyGyGy(Gy)^4Gx  0  0  0
-GyGyGy(Gy)^4Gy  0  0  0
-GyGyGy(Gy)^4Gm  0  0  0
-GyGyGy(Gy)^4GxGx  0  0  0
-GyGyGy(Gy)^4GyGm  0  0  0
-GyGyGy(Gy)^4GxGm  0  0  0
-GxGxGx(Gy)^4  0  0  0
-GxGxGx(Gy)^4Gx  0  0  0
-GxGxGx(Gy)^4Gy  0  0  0
-GxGxGx(Gy)^4Gm  0  0  0
-GxGxGx(Gy)^4GxGx  0  0  0
-GxGxGx(Gy)^4GyGm  0  0  0
-GxGxGx(Gy)^4GxGm  0  0  0
-Gy(Gx)^4Gx  0  0  0
-Gy(Gx)^4Gy  0  0  0
-Gy(Gx)^4Gm  0  0  0
-Gy(Gx)^4GxGx  0  0  0
-Gy(Gx)^4GyGm  0  0  0
-Gy(Gx)^4GxGm  0  0  0
-Gm(Gx)^4Gy  0  0  0
-Gm(Gx)^4GxGx  0  0  0
-Gm(Gx)^4GyGm  0  0  0
-Gm(Gx)^4GxGm  0  0  0
-GxGx(Gx)^4Gy  0  0  0
-GxGx(Gx)^4GxGx  0  0  0
-GxGx(Gx)^4GyGm  0  0  0
-GxGx(Gx)^4GxGm  0  0  0
-GmGx(Gx)^4Gy  0  0  0
-GmGx(Gx)^4GxGx  0  0  0
-GmGx(Gx)^4GyGm  0  0  0
-GmGx(Gx)^4GxGm  0  0  0
-GmGy(Gx)^4Gx  0  0  0
-GmGy(Gx)^4Gy  0  0  0
-GmGy(Gx)^4Gm  0  0  0
-GmGy(Gx)^4GxGx  0  0  0
-GmGy(Gx)^4GyGm  0  0  0
-GmGy(Gx)^4GxGm  0  0  0
-GyGyGy(Gx)^4Gx  0  0  0
-GyGyGy(Gx)^4Gy  0  0  0
-GyGyGy(Gx)^4Gm  0  0  0
-GyGyGy(Gx)^4GxGx  0  0  0
-GyGyGy(Gx)^4GyGm  0  0  0
-GyGyGy(Gx)^4GxGm  0  0  0
-GxGxGx(Gx)^4Gy  0  0  0
-GxGxGx(Gx)^4GxGx  0  0  0
-GxGxGx(Gx)^4GyGm  0  0  0
-GxGxGx(Gx)^4GxGm  0  0  0
-(Gm)^4Gx  0  0  0
-(Gm)^4Gy  0  0  0
-(Gm)^4Gm  0  0  0
-(Gm)^4GxGx  0  0  0
-(Gm)^4GyGm  0  0  0
-(Gm)^4GxGm  0  0  0
-Gx(Gm)^4  0  0  0
-Gx(Gm)^4Gx  0  0  0
-Gx(Gm)^4Gy  0  0  0
-Gx(Gm)^4Gm  0  0  0
-Gx(Gm)^4GxGx  0  0  0
-Gx(Gm)^4GyGm  0  0  0
-Gx(Gm)^4GxGm  0  0  0
-Gy(Gm)^4  0  0  0
-Gy(Gm)^4Gx  0  0  0
-Gy(Gm)^4Gy  0  0  0
-Gy(Gm)^4Gm  0  0  0
-Gy(Gm)^4GxGx  0  0  0
-Gy(Gm)^4GyGm  0  0  0
-Gy(Gm)^4GxGm  0  0  0
-Gm(Gm)^4Gx  0  0  0
-Gm(Gm)^4Gy  0  0  0
-Gm(Gm)^4Gm  0  0  0
-Gm(Gm)^4GxGx  0  0  0
-Gm(Gm)^4GyGm  0  0  0
-Gm(Gm)^4GxGm  0  0  0
-GxGx(Gm)^4  0  0  0
-GxGx(Gm)^4Gx  0  0  0
-GxGx(Gm)^4Gy  0  0  0
-GxGx(Gm)^4Gm  0  0  0
-GxGx(Gm)^4GxGx  0  0  0
-GxGx(Gm)^4GyGm  0  0  0
-GxGx(Gm)^4GxGm  0  0  0
-GmGx(Gm)^4  0  0  0
-GmGx(Gm)^4Gx  0  0  0
-GmGx(Gm)^4Gy  0  0  0
-GmGx(Gm)^4Gm  0  0  0
-GmGx(Gm)^4GxGx  0  0  0
-GmGx(Gm)^4GyGm  0  0  0
-GmGx(Gm)^4GxGm  0  0  0
-GmGy(Gm)^4  0  0  0
-GmGy(Gm)^4Gx  0  0  0
-GmGy(Gm)^4Gy  0  0  0
-GmGy(Gm)^4Gm  0  0  0
-GmGy(Gm)^4GxGx  0  0  0
-GmGy(Gm)^4GyGm  0  0  0
-GmGy(Gm)^4GxGm  0  0  0
-GyGyGy(Gm)^4  0  0  0
-GyGyGy(Gm)^4Gx  0  0  0
-GyGyGy(Gm)^4Gy  0  0  0
-GyGyGy(Gm)^4Gm  0  0  0
-GyGyGy(Gm)^4GxGx  0  0  0
-GyGyGy(Gm)^4GyGm  0  0  0
-GyGyGy(Gm)^4GxGm  0  0  0
-GxGxGx(Gm)^4  0  0  0
-GxGxGx(Gm)^4Gx  0  0  0
-GxGxGx(Gm)^4Gy  0  0  0
-GxGxGx(Gm)^4Gm  0  0  0
-GxGxGx(Gm)^4GxGx  0  0  0
-GxGxGx(Gm)^4GyGm  0  0  0
-GxGxGx(Gm)^4GxGm  0  0  0
-(GiGy)^2  0  0  0
-(GiGy)^2Gx  0  0  0
-(GiGy)^2Gy  0  0  0
-(GiGy)^2Gm  0  0  0
-(GiGy)^2GxGx  0  0  0
-(GiGy)^2GyGm  0  0  0
-(GiGy)^2GxGm  0  0  0
-Gx(GiGy)^2  0  0  0
-Gx(GiGy)^2Gx  0  0  0
-Gx(GiGy)^2Gy  0  0  0
-Gx(GiGy)^2Gm  0  0  0
-Gx(GiGy)^2GxGx  0  0  0
-Gx(GiGy)^2GyGm  0  0  0
-Gx(GiGy)^2GxGm  0  0  0
-Gy(GiGy)^2  0  0  0
-Gy(GiGy)^2Gx  0  0  0
-Gy(GiGy)^2Gy  0  0  0
-Gy(GiGy)^2Gm  0  0  0
-Gy(GiGy)^2GxGx  0  0  0
-Gy(GiGy)^2GyGm  0  0  0
-Gy(GiGy)^2GxGm  0  0  0
-Gm(GiGy)^2  0  0  0
-Gm(GiGy)^2Gx  0  0  0
-Gm(GiGy)^2Gy  0  0  0
-Gm(GiGy)^2Gm  0  0  0
-Gm(GiGy)^2GxGx  0  0  0
-Gm(GiGy)^2GyGm  0  0  0
-Gm(GiGy)^2GxGm  0  0  0
-GxGx(GiGy)^2  0  0  0
-GxGx(GiGy)^2Gx  0  0  0
-GxGx(GiGy)^2Gy  0  0  0
-GxGx(GiGy)^2Gm  0  0  0
-GxGx(GiGy)^2GxGx  0  0  0
-GxGx(GiGy)^2GyGm  0  0  0
-GxGx(GiGy)^2GxGm  0  0  0
-GmGx(GiGy)^2  0  0  0
-GmGx(GiGy)^2Gx  0  0  0
-GmGx(GiGy)^2Gy  0  0  0
-GmGx(GiGy)^2Gm  0  0  0
-GmGx(GiGy)^2GxGx  0  0  0
-GmGx(GiGy)^2GyGm  0  0  0
-GmGx(GiGy)^2GxGm  0  0  0
-GmGy(GiGy)^2  0  0  0
-GmGy(GiGy)^2Gx  0  0  0
-GmGy(GiGy)^2Gy  0  0  0
-GmGy(GiGy)^2Gm  0  0  0
-GmGy(GiGy)^2GxGx  0  0  0
-GmGy(GiGy)^2GyGm  0  0  0
-GmGy(GiGy)^2GxGm  0  0  0
-GyGyGy(GiGy)^2  0  0  0
-GyGyGy(GiGy)^2Gx  0  0  0
-GyGyGy(GiGy)^2Gy  0  0  0
-GyGyGy(GiGy)^2Gm  0  0  0
-GyGyGy(GiGy)^2GxGx  0  0  0
-GyGyGy(GiGy)^2GyGm  0  0  0
-GyGyGy(GiGy)^2GxGm  0  0  0
-GxGxGx(GiGy)^2  0  0  0
-GxGxGx(GiGy)^2Gx  0  0  0
-GxGxGx(GiGy)^2Gy  0  0  0
-GxGxGx(GiGy)^2Gm  0  0  0
-GxGxGx(GiGy)^2GxGx  0  0  0
-GxGxGx(GiGy)^2GyGm  0  0  0
-GxGxGx(GiGy)^2GxGm  0  0  0
-(GiGx)^2  0  0  0
-(GiGx)^2Gx  0  0  0
-(GiGx)^2Gy  0  0  0
-(GiGx)^2Gm  0  0  0
-(GiGx)^2GxGx  0  0  0
-(GiGx)^2GyGm  0  0  0
-(GiGx)^2GxGm  0  0  0
-Gx(GiGx)^2  0  0  0
-Gx(GiGx)^2Gx  0  0  0
-Gx(GiGx)^2Gy  0  0  0
-Gx(GiGx)^2Gm  0  0  0
-Gx(GiGx)^2GxGx  0  0  0
-Gx(GiGx)^2GyGm  0  0  0
-Gx(GiGx)^2GxGm  0  0  0
-Gy(GiGx)^2  0  0  0
-Gy(GiGx)^2Gx  0  0  0
-Gy(GiGx)^2Gy  0  0  0
-Gy(GiGx)^2Gm  0  0  0
-Gy(GiGx)^2GxGx  0  0  0
-Gy(GiGx)^2GyGm  0  0  0
-Gy(GiGx)^2GxGm  0  0  0
-Gm(GiGx)^2  0  0  0
-Gm(GiGx)^2Gx  0  0  0
-Gm(GiGx)^2Gy  0  0  0
-Gm(GiGx)^2Gm  0  0  0
-Gm(GiGx)^2GxGx  0  0  0
-Gm(GiGx)^2GyGm  0  0  0
-Gm(GiGx)^2GxGm  0  0  0
-GxGx(GiGx)^2  0  0  0
-GxGx(GiGx)^2Gx  0  0  0
-GxGx(GiGx)^2Gy  0  0  0
-GxGx(GiGx)^2Gm  0  0  0
-GxGx(GiGx)^2GxGx  0  0  0
-GxGx(GiGx)^2GyGm  0  0  0
-GxGx(GiGx)^2GxGm  0  0  0
-GmGx(GiGx)^2  0  0  0
-GmGx(GiGx)^2Gx  0  0  0
-GmGx(GiGx)^2Gy  0  0  0
-GmGx(GiGx)^2Gm  0  0  0
-GmGx(GiGx)^2GxGx  0  0  0
-GmGx(GiGx)^2GyGm  0  0  0
-GmGx(GiGx)^2GxGm  0  0  0
-GmGy(GiGx)^2  0  0  0
-GmGy(GiGx)^2Gx  0  0  0
-GmGy(GiGx)^2Gy  0  0  0
-GmGy(GiGx)^2Gm  0  0  0
-GmGy(GiGx)^2GxGx  0  0  0
-GmGy(GiGx)^2GyGm  0  0  0
-GmGy(GiGx)^2GxGm  0  0  0
-GyGyGy(GiGx)^2  0  0  0
-GyGyGy(GiGx)^2Gx  0  0  0
-GyGyGy(GiGx)^2Gy  0  0  0
-GyGyGy(GiGx)^2Gm  0  0  0
-GyGyGy(GiGx)^2GxGx  0  0  0
-GyGyGy(GiGx)^2GyGm  0  0  0
-GyGyGy(GiGx)^2GxGm  0  0  0
-GxGxGx(GiGx)^2  0  0  0
-GxGxGx(GiGx)^2Gx  0  0  0
-GxGxGx(GiGx)^2Gy  0  0  0
-GxGxGx(GiGx)^2Gm  0  0  0
-GxGxGx(GiGx)^2GxGx  0  0  0
-GxGxGx(GiGx)^2GyGm  0  0  0
-GxGxGx(GiGx)^2GxGm  0  0  0
-(GiGm)^2  0  0  0
-(GiGm)^2Gx  0  0  0
-(GiGm)^2Gy  0  0  0
-(GiGm)^2Gm  0  0  0
-(GiGm)^2GxGx  0  0  0
-(GiGm)^2GyGm  0  0  0
-(GiGm)^2GxGm  0  0  0
-Gx(GiGm)^2  0  0  0
-Gx(GiGm)^2Gx  0  0  0
-Gx(GiGm)^2Gy  0  0  0
-Gx(GiGm)^2Gm  0  0  0
-Gx(GiGm)^2GxGx  0  0  0
-Gx(GiGm)^2GyGm  0  0  0
-Gx(GiGm)^2GxGm  0  0  0
-Gy(GiGm)^2  0  0  0
-Gy(GiGm)^2Gx  0  0  0
-Gy(GiGm)^2Gy  0  0  0
-Gy(GiGm)^2Gm  0  0  0
-Gy(GiGm)^2GxGx  0  0  0
-Gy(GiGm)^2GyGm  0  0  0
-Gy(GiGm)^2GxGm  0  0  0
-Gm(GiGm)^2  0  0  0
-Gm(GiGm)^2Gx  0  0  0
-Gm(GiGm)^2Gy  0  0  0
-Gm(GiGm)^2Gm  0  0  0
-Gm(GiGm)^2GxGx  0  0  0
-Gm(GiGm)^2GyGm  0  0  0
-Gm(GiGm)^2GxGm  0  0  0
-GxGx(GiGm)^2  0  0  0
-GxGx(GiGm)^2Gx  0  0  0
-GxGx(GiGm)^2Gy  0  0  0
-GxGx(GiGm)^2Gm  0  0  0
-GxGx(GiGm)^2GxGx  0  0  0
-GxGx(GiGm)^2GyGm  0  0  0
-GxGx(GiGm)^2GxGm  0  0  0
-GmGx(GiGm)^2  0  0  0
-GmGx(GiGm)^2Gx  0  0  0
-GmGx(GiGm)^2Gy  0  0  0
-GmGx(GiGm)^2Gm  0  0  0
-GmGx(GiGm)^2GxGx  0  0  0
-GmGx(GiGm)^2GyGm  0  0  0
-GmGx(GiGm)^2GxGm  0  0  0
-GmGy(GiGm)^2  0  0  0
-GmGy(GiGm)^2Gx  0  0  0
-GmGy(GiGm)^2Gy  0  0  0
-GmGy(GiGm)^2Gm  0  0  0
-GmGy(GiGm)^2GxGx  0  0  0
-GmGy(GiGm)^2GyGm  0  0  0
-GmGy(GiGm)^2GxGm  0  0  0
-GyGyGy(GiGm)^2  0  0  0
-GyGyGy(GiGm)^2Gx  0  0  0
-GyGyGy(GiGm)^2Gy  0  0  0
-GyGyGy(GiGm)^2Gm  0  0  0
-GyGyGy(GiGm)^2GxGx  0  0  0
-GyGyGy(GiGm)^2GyGm  0  0  0
-GyGyGy(GiGm)^2GxGm  0  0  0
-GxGxGx(GiGm)^2  0  0  0
-GxGxGx(GiGm)^2Gx  0  0  0
-GxGxGx(GiGm)^2Gy  0  0  0
-GxGxGx(GiGm)^2Gm  0  0  0
-GxGxGx(GiGm)^2GxGx  0  0  0
-GxGxGx(GiGm)^2GyGm  0  0  0
-GxGxGx(GiGm)^2GxGm  0  0  0
-(GxGy)^2  0  0  0
-(GxGy)^2Gx  0  0  0
-(GxGy)^2Gy  0  0  0
-(GxGy)^2Gm  0  0  0
-(GxGy)^2GxGx  0  0  0
-(GxGy)^2GyGm  0  0  0
-(GxGy)^2GxGm  0  0  0
-Gx(GxGy)^2  0  0  0
-Gx(GxGy)^2Gx  0  0  0
-Gx(GxGy)^2Gy  0  0  0
-Gx(GxGy)^2Gm  0  0  0
-Gx(GxGy)^2GxGx  0  0  0
-Gx(GxGy)^2GyGm  0  0  0
-Gx(GxGy)^2GxGm  0  0  0
-Gy(GxGy)^2  0  0  0
-Gy(GxGy)^2Gx  0  0  0
-Gy(GxGy)^2Gy  0  0  0
-Gy(GxGy)^2Gm  0  0  0
-Gy(GxGy)^2GxGx  0  0  0
-Gy(GxGy)^2GyGm  0  0  0
-Gy(GxGy)^2GxGm  0  0  0
-Gm(GxGy)^2  0  0  0
-Gm(GxGy)^2Gx  0  0  0
-Gm(GxGy)^2Gy  0  0  0
-Gm(GxGy)^2Gm  0  0  0
-Gm(GxGy)^2GxGx  0  0  0
-Gm(GxGy)^2GyGm  0  0  0
-Gm(GxGy)^2GxGm  0  0  0
-GxGx(GxGy)^2  0  0  0
-GxGx(GxGy)^2Gx  0  0  0
-GxGx(GxGy)^2Gy  0  0  0
-GxGx(GxGy)^2Gm  0  0  0
-GxGx(GxGy)^2GxGx  0  0  0
-GxGx(GxGy)^2GyGm  0  0  0
-GxGx(GxGy)^2GxGm  0  0  0
-GmGx(GxGy)^2  0  0  0
-GmGx(GxGy)^2Gx  0  0  0
-GmGx(GxGy)^2Gy  0  0  0
-GmGx(GxGy)^2Gm  0  0  0
-GmGx(GxGy)^2GxGx  0  0  0
-GmGx(GxGy)^2GyGm  0  0  0
-GmGx(GxGy)^2GxGm  0  0  0
-GmGy(GxGy)^2  0  0  0
-GmGy(GxGy)^2Gx  0  0  0
-GmGy(GxGy)^2Gy  0  0  0
-GmGy(GxGy)^2Gm  0  0  0
-GmGy(GxGy)^2GxGx  0  0  0
-GmGy(GxGy)^2GyGm  0  0  0
-GmGy(GxGy)^2GxGm  0  0  0
-GyGyGy(GxGy)^2  0  0  0
-GyGyGy(GxGy)^2Gx  0  0  0
-GyGyGy(GxGy)^2Gy  0  0  0
-GyGyGy(GxGy)^2Gm  0  0  0
-GyGyGy(GxGy)^2GxGx  0  0  0
-GyGyGy(GxGy)^2GyGm  0  0  0
-GyGyGy(GxGy)^2GxGm  0  0  0
-GxGxGx(GxGy)^2  0  0  0
-GxGxGx(GxGy)^2Gx  0  0  0
-GxGxGx(GxGy)^2Gy  0  0  0
-GxGxGx(GxGy)^2Gm  0  0  0
-GxGxGx(GxGy)^2GxGx  0  0  0
-GxGxGx(GxGy)^2GyGm  0  0  0
-GxGxGx(GxGy)^2GxGm  0  0  0
-(GyGm)^2Gx  0  0  0
-(GyGm)^2Gy  0  0  0
-(GyGm)^2Gm  0  0  0
-(GyGm)^2GxGx  0  0  0
-(GyGm)^2GyGm  0  0  0
-(GyGm)^2GxGm  0  0  0
-Gx(GyGm)^2Gx  0  0  0
-Gx(GyGm)^2Gy  0  0  0
-Gx(GyGm)^2Gm  0  0  0
-Gx(GyGm)^2GxGx  0  0  0
-Gx(GyGm)^2GyGm  0  0  0
-Gx(GyGm)^2GxGm  0  0  0
-Gy(GyGm)^2Gx  0  0  0
-Gy(GyGm)^2Gy  0  0  0
-Gy(GyGm)^2Gm  0  0  0
-Gy(GyGm)^2GxGx  0  0  0
-Gy(GyGm)^2GyGm  0  0  0
-Gy(GyGm)^2GxGm  0  0  0
-Gm(GyGm)^2Gx  0  0  0
-Gm(GyGm)^2Gy  0  0  0
-Gm(GyGm)^2Gm  0  0  0
-Gm(GyGm)^2GxGx  0  0  0
-Gm(GyGm)^2GyGm  0  0  0
-Gm(GyGm)^2GxGm  0  0  0
-GxGx(GyGm)^2Gx  0  0  0
-GxGx(GyGm)^2Gy  0  0  0
-GxGx(GyGm)^2Gm  0  0  0
-GxGx(GyGm)^2GxGx  0  0  0
-GxGx(GyGm)^2GyGm  0  0  0
-GxGx(GyGm)^2GxGm  0  0  0
-GmGx(GyGm)^2Gx  0  0  0
-GmGx(GyGm)^2Gy  0  0  0
-GmGx(GyGm)^2Gm  0  0  0
-GmGx(GyGm)^2GxGx  0  0  0
-GmGx(GyGm)^2GyGm  0  0  0
-GmGx(GyGm)^2GxGm  0  0  0
-GmGy(GyGm)^2Gx  0  0  0
-GmGy(GyGm)^2Gy  0  0  0
-GmGy(GyGm)^2Gm  0  0  0
-GmGy(GyGm)^2GxGx  0  0  0
-GmGy(GyGm)^2GyGm  0  0  0
-GmGy(GyGm)^2GxGm  0  0  0
-GyGyGy(GyGm)^2Gx  0  0  0
-GyGyGy(GyGm)^2Gy  0  0  0
-GyGyGy(GyGm)^2Gm  0  0  0
-GyGyGy(GyGm)^2GxGx  0  0  0
-GyGyGy(GyGm)^2GyGm  0  0  0
-GyGyGy(GyGm)^2GxGm  0  0  0
-GxGxGx(GyGm)^2Gx  0  0  0
-GxGxGx(GyGm)^2Gy  0  0  0
-GxGxGx(GyGm)^2Gm  0  0  0
-GxGxGx(GyGm)^2GxGx  0  0  0
-GxGxGx(GyGm)^2GyGm  0  0  0
-GxGxGx(GyGm)^2GxGm  0  0  0
-(GxGm)^2Gx  0  0  0
-(GxGm)^2Gy  0  0  0
-(GxGm)^2Gm  0  0  0
-(GxGm)^2GxGx  0  0  0
-(GxGm)^2GyGm  0  0  0
-(GxGm)^2GxGm  0  0  0
-Gx(GxGm)^2Gx  0  0  0
-Gx(GxGm)^2Gy  0  0  0
-Gx(GxGm)^2Gm  0  0  0
-Gx(GxGm)^2GxGx  0  0  0
-Gx(GxGm)^2GyGm  0  0  0
-Gx(GxGm)^2GxGm  0  0  0
-Gy(GxGm)^2Gx  0  0  0
-Gy(GxGm)^2Gy  0  0  0
-Gy(GxGm)^2Gm  0  0  0
-Gy(GxGm)^2GxGx  0  0  0
-Gy(GxGm)^2GyGm  0  0  0
-Gy(GxGm)^2GxGm  0  0  0
-Gm(GxGm)^2Gx  0  0  0
-Gm(GxGm)^2Gy  0  0  0
-Gm(GxGm)^2Gm  0  0  0
-Gm(GxGm)^2GxGx  0  0  0
-Gm(GxGm)^2GyGm  0  0  0
-Gm(GxGm)^2GxGm  0  0  0
-GxGx(GxGm)^2Gx  0  0  0
-GxGx(GxGm)^2Gy  0  0  0
-GxGx(GxGm)^2Gm  0  0  0
-GxGx(GxGm)^2GxGx  0  0  0
-GxGx(GxGm)^2GyGm  0  0  0
-GxGx(GxGm)^2GxGm  0  0  0
-GmGx(GxGm)^2Gx  0  0  0
-GmGx(GxGm)^2Gy  0  0  0
-GmGx(GxGm)^2Gm  0  0  0
-GmGx(GxGm)^2GxGx  0  0  0
-GmGx(GxGm)^2GyGm  0  0  0
-GmGx(GxGm)^2GxGm  0  0  0
-GmGy(GxGm)^2Gx  0  0  0
-GmGy(GxGm)^2Gy  0  0  0
-GmGy(GxGm)^2Gm  0  0  0
-GmGy(GxGm)^2GxGx  0  0  0
-GmGy(GxGm)^2GyGm  0  0  0
-GmGy(GxGm)^2GxGm  0  0  0
-GyGyGy(GxGm)^2Gx  0  0  0
-GyGyGy(GxGm)^2Gy  0  0  0
-GyGyGy(GxGm)^2Gm  0  0  0
-GyGyGy(GxGm)^2GxGx  0  0  0
-GyGyGy(GxGm)^2GyGm  0  0  0
-GyGyGy(GxGm)^2GxGm  0  0  0
-GxGxGx(GxGm)^2Gx  0  0  0
-GxGxGx(GxGm)^2Gy  0  0  0
-GxGxGx(GxGm)^2Gm  0  0  0
-GxGxGx(GxGm)^2GxGx  0  0  0
-GxGxGx(GxGm)^2GyGm  0  0  0
-GxGxGx(GxGm)^2GxGm  0  0  0
-(GiGiGy)Gx  0  0  0
-(GiGiGy)Gy  0  0  0
-(GiGiGy)GxGx  0  0  0
-(GiGiGy)GyGm  0  0  0
-(GiGiGy)GxGm  0  0  0
-Gx(GiGiGy)Gx  0  0  0
-Gx(GiGiGy)Gy  0  0  0
-Gx(GiGiGy)GxGx  0  0  0
-Gx(GiGiGy)GyGm  0  0  0
-Gx(GiGiGy)GxGm  0  0  0
-Gy(GiGiGy)Gx  0  0  0
-Gy(GiGiGy)Gy  0  0  0
-Gy(GiGiGy)GxGx  0  0  0
-Gy(GiGiGy)GyGm  0  0  0
-Gy(GiGiGy)GxGm  0  0  0
-Gm(GiGiGy)Gx  0  0  0
-Gm(GiGiGy)Gy  0  0  0
-Gm(GiGiGy)GxGx  0  0  0
-Gm(GiGiGy)GyGm  0  0  0
-Gm(GiGiGy)GxGm  0  0  0
-GxGx(GiGiGy)Gx  0  0  0
-GxGx(GiGiGy)Gy  0  0  0
-GxGx(GiGiGy)GxGx  0  0  0
-GxGx(GiGiGy)GyGm  0  0  0
-GxGx(GiGiGy)GxGm  0  0  0
-GmGx(GiGiGy)Gx  0  0  0
-GmGx(GiGiGy)Gy  0  0  0
-GmGx(GiGiGy)GxGx  0  0  0
-GmGx(GiGiGy)GyGm  0  0  0
-GmGx(GiGiGy)GxGm  0  0  0
-GmGy(GiGiGy)Gx  0  0  0
-GmGy(GiGiGy)Gy  0  0  0
-GmGy(GiGiGy)GxGx  0  0  0
-GmGy(GiGiGy)GyGm  0  0  0
-GmGy(GiGiGy)GxGm  0  0  0
-GyGyGy(GiGiGy)Gx  0  0  0
-GyGyGy(GiGiGy)Gy  0  0  0
-GyGyGy(GiGiGy)GxGx  0  0  0
-GyGyGy(GiGiGy)GyGm  0  0  0
-GyGyGy(GiGiGy)GxGm  0  0  0
-GxGxGx(GiGiGy)Gx  0  0  0
-GxGxGx(GiGiGy)Gy  0  0  0
-GxGxGx(GiGiGy)GxGx  0  0  0
-GxGxGx(GiGiGy)GyGm  0  0  0
-GxGxGx(GiGiGy)GxGm  0  0  0
-(GiGiGx)Gy  0  0  0
-(GiGiGx)GxGx  0  0  0
-(GiGiGx)GyGm  0  0  0
-(GiGiGx)GxGm  0  0  0
-Gx(GiGiGx)Gy  0  0  0
-Gx(GiGiGx)GxGx  0  0  0
-Gx(GiGiGx)GyGm  0  0  0
-Gx(GiGiGx)GxGm  0  0  0
-Gy(GiGiGx)Gy  0  0  0
-Gy(GiGiGx)GxGx  0  0  0
-Gy(GiGiGx)GyGm  0  0  0
-Gy(GiGiGx)GxGm  0  0  0
-Gm(GiGiGx)Gy  0  0  0
-Gm(GiGiGx)GxGx  0  0  0
-Gm(GiGiGx)GyGm  0  0  0
-Gm(GiGiGx)GxGm  0  0  0
-GxGx(GiGiGx)Gy  0  0  0
-GxGx(GiGiGx)GxGx  0  0  0
-GxGx(GiGiGx)GyGm  0  0  0
-GxGx(GiGiGx)GxGm  0  0  0
-GmGx(GiGiGx)Gy  0  0  0
-GmGx(GiGiGx)GxGx  0  0  0
-GmGx(GiGiGx)GyGm  0  0  0
-GmGx(GiGiGx)GxGm  0  0  0
-GmGy(GiGiGx)Gy  0  0  0
-GmGy(GiGiGx)GxGx  0  0  0
-GmGy(GiGiGx)GyGm  0  0  0
-GmGy(GiGiGx)GxGm  0  0  0
-GyGyGy(GiGiGx)Gy  0  0  0
-GyGyGy(GiGiGx)GxGx  0  0  0
-GyGyGy(GiGiGx)GyGm  0  0  0
-GyGyGy(GiGiGx)GxGm  0  0  0
-GxGxGx(GiGiGx)Gy  0  0  0
-GxGxGx(GiGiGx)GxGx  0  0  0
-GxGxGx(GiGiGx)GyGm  0  0  0
-GxGxGx(GiGiGx)GxGm  0  0  0
-Gy(GxGxGy)Gx  0  0  0
-Gy(GxGxGy)Gy  0  0  0
-Gy(GxGxGy)GxGx  0  0  0
-Gy(GxGxGy)GyGm  0  0  0
-Gy(GxGxGy)GxGm  0  0  0
-GmGx(GxGxGy)Gx  0  0  0
-GmGx(GxGxGy)Gy  0  0  0
-GmGx(GxGxGy)GxGx  0  0  0
-GmGx(GxGxGy)GyGm  0  0  0
-GmGx(GxGxGy)GxGm  0  0  0
-GmGy(GxGxGy)Gx  0  0  0
-GmGy(GxGxGy)Gy  0  0  0
-GmGy(GxGxGy)GxGx  0  0  0
-GmGy(GxGxGy)GyGm  0  0  0
-GmGy(GxGxGy)GxGm  0  0  0
-GyGyGy(GxGxGy)Gx  0  0  0
-GyGyGy(GxGxGy)Gy  0  0  0
-GyGyGy(GxGxGy)GxGx  0  0  0
-GyGyGy(GxGxGy)GyGm  0  0  0
-GyGyGy(GxGxGy)GxGm  0  0  0
-GxGxGx(GxGxGy)Gx  0  0  0
-GxGxGx(GxGxGy)Gy  0  0  0
-GxGxGx(GxGxGy)GxGx  0  0  0
-GxGxGx(GxGxGy)GyGm  0  0  0
-GxGxGx(GxGxGy)GxGm  0  0  0
-(GiGiGm)Gx  0  0  0
-(GiGiGm)Gy  0  0  0
-(GiGiGm)Gm  0  0  0
-(GiGiGm)GxGx  0  0  0
-(GiGiGm)GyGm  0  0  0
-(GiGiGm)GxGm  0  0  0
-Gx(GiGiGm)Gx  0  0  0
-Gx(GiGiGm)Gy  0  0  0
-Gx(GiGiGm)Gm  0  0  0
-Gx(GiGiGm)GxGx  0  0  0
-Gx(GiGiGm)GyGm  0  0  0
-Gx(GiGiGm)GxGm  0  0  0
-Gy(GiGiGm)Gx  0  0  0
-Gy(GiGiGm)Gy  0  0  0
-Gy(GiGiGm)Gm  0  0  0
-Gy(GiGiGm)GxGx  0  0  0
-Gy(GiGiGm)GyGm  0  0  0
-Gy(GiGiGm)GxGm  0  0  0
-Gm(GiGiGm)Gx  0  0  0
-Gm(GiGiGm)Gy  0  0  0
-Gm(GiGiGm)Gm  0  0  0
-Gm(GiGiGm)GxGx  0  0  0
-Gm(GiGiGm)GyGm  0  0  0
-Gm(GiGiGm)GxGm  0  0  0
-GxGx(GiGiGm)Gx  0  0  0
-GxGx(GiGiGm)Gy  0  0  0
-GxGx(GiGiGm)Gm  0  0  0
-GxGx(GiGiGm)GxGx  0  0  0
-GxGx(GiGiGm)GyGm  0  0  0
-GxGx(GiGiGm)GxGm  0  0  0
-GmGx(GiGiGm)Gx  0  0  0
-GmGx(GiGiGm)Gy  0  0  0
-GmGx(GiGiGm)Gm  0  0  0
-GmGx(GiGiGm)GxGx  0  0  0
-GmGx(GiGiGm)GyGm  0  0  0
-GmGx(GiGiGm)GxGm  0  0  0
-GmGy(GiGiGm)Gx  0  0  0
-GmGy(GiGiGm)Gy  0  0  0
-GmGy(GiGiGm)Gm  0  0  0
-GmGy(GiGiGm)GxGx  0  0  0
-GmGy(GiGiGm)GyGm  0  0  0
-GmGy(GiGiGm)GxGm  0  0  0
-GyGyGy(GiGiGm)Gx  0  0  0
-GyGyGy(GiGiGm)Gy  0  0  0
-GyGyGy(GiGiGm)Gm  0  0  0
-GyGyGy(GiGiGm)GxGx  0  0  0
-GyGyGy(GiGiGm)GyGm  0  0  0
-GyGyGy(GiGiGm)GxGm  0  0  0
-GxGxGx(GiGiGm)Gx  0  0  0
-GxGxGx(GiGiGm)Gy  0  0  0
-GxGxGx(GiGiGm)Gm  0  0  0
-GxGxGx(GiGiGm)GxGx  0  0  0
-GxGxGx(GiGiGm)GyGm  0  0  0
-GxGxGx(GiGiGm)GxGm  0  0  0
-(GiGyGy)Gx  0  0  0
-(GiGyGy)Gy  0  0  0
-(GiGyGy)GxGx  0  0  0
-(GiGyGy)GyGm  0  0  0
-(GiGyGy)GxGm  0  0  0
-Gx(GiGyGy)Gx  0  0  0
-Gx(GiGyGy)Gy  0  0  0
-Gx(GiGyGy)GxGx  0  0  0
-Gx(GiGyGy)GyGm  0  0  0
-Gx(GiGyGy)GxGm  0  0  0
-Gy(GiGyGy)Gx  0  0  0
-Gy(GiGyGy)Gy  0  0  0
-Gy(GiGyGy)GxGx  0  0  0
-Gy(GiGyGy)GyGm  0  0  0
-Gy(GiGyGy)GxGm  0  0  0
-Gm(GiGyGy)Gx  0  0  0
-Gm(GiGyGy)Gy  0  0  0
-Gm(GiGyGy)GxGx  0  0  0
-Gm(GiGyGy)GyGm  0  0  0
-Gm(GiGyGy)GxGm  0  0  0
-GxGx(GiGyGy)Gx  0  0  0
-GxGx(GiGyGy)Gy  0  0  0
-GxGx(GiGyGy)GxGx  0  0  0
-GxGx(GiGyGy)GyGm  0  0  0
-GxGx(GiGyGy)GxGm  0  0  0
-GmGx(GiGyGy)Gx  0  0  0
-GmGx(GiGyGy)Gy  0  0  0
-GmGx(GiGyGy)GxGx  0  0  0
-GmGx(GiGyGy)GyGm  0  0  0
-GmGx(GiGyGy)GxGm  0  0  0
-GmGy(GiGyGy)Gx  0  0  0
-GmGy(GiGyGy)Gy  0  0  0
-GmGy(GiGyGy)GxGx  0  0  0
-GmGy(GiGyGy)GyGm  0  0  0
-GmGy(GiGyGy)GxGm  0  0  0
-GyGyGy(GiGyGy)Gx  0  0  0
-GyGyGy(GiGyGy)Gy  0  0  0
-GyGyGy(GiGyGy)GxGx  0  0  0
-GyGyGy(GiGyGy)GyGm  0  0  0
-GyGyGy(GiGyGy)GxGm  0  0  0
-GxGxGx(GiGyGy)Gx  0  0  0
-GxGxGx(GiGyGy)Gy  0  0  0
-GxGxGx(GiGyGy)GxGx  0  0  0
-GxGxGx(GiGyGy)GyGm  0  0  0
-GxGxGx(GiGyGy)GxGm  0  0  0
-(GiGyGx)Gy  0  0  0
-(GiGyGx)GxGx  0  0  0
-(GiGyGx)GyGm  0  0  0
-(GiGyGx)GxGm  0  0  0
-Gx(GiGyGx)Gy  0  0  0
-Gx(GiGyGx)GxGx  0  0  0
-Gx(GiGyGx)GyGm  0  0  0
-Gx(GiGyGx)GxGm  0  0  0
-Gy(GiGyGx)Gy  0  0  0
-Gy(GiGyGx)GxGx  0  0  0
-Gy(GiGyGx)GyGm  0  0  0
-Gy(GiGyGx)GxGm  0  0  0
-Gm(GiGyGx)Gy  0  0  0
-Gm(GiGyGx)GxGx  0  0  0
-Gm(GiGyGx)GyGm  0  0  0
-Gm(GiGyGx)GxGm  0  0  0
-GxGx(GiGyGx)Gy  0  0  0
-GxGx(GiGyGx)GxGx  0  0  0
-GxGx(GiGyGx)GyGm  0  0  0
-GxGx(GiGyGx)GxGm  0  0  0
-GmGx(GiGyGx)Gy  0  0  0
-GmGx(GiGyGx)GxGx  0  0  0
-GmGx(GiGyGx)GyGm  0  0  0
-GmGx(GiGyGx)GxGm  0  0  0
-GmGy(GiGyGx)Gy  0  0  0
-GmGy(GiGyGx)GxGx  0  0  0
-GmGy(GiGyGx)GyGm  0  0  0
-GmGy(GiGyGx)GxGm  0  0  0
-GyGyGy(GiGyGx)Gy  0  0  0
-GyGyGy(GiGyGx)GxGx  0  0  0
-GyGyGy(GiGyGx)GyGm  0  0  0
-GyGyGy(GiGyGx)GxGm  0  0  0
-GxGxGx(GiGyGx)Gy  0  0  0
-GxGxGx(GiGyGx)GxGx  0  0  0
-GxGxGx(GiGyGx)GyGm  0  0  0
-GxGxGx(GiGyGx)GxGm  0  0  0
-(GiGyGm)Gx  0  0  0
-(GiGyGm)Gy  0  0  0
-(GiGyGm)Gm  0  0  0
-(GiGyGm)GxGx  0  0  0
-(GiGyGm)GyGm  0  0  0
-(GiGyGm)GxGm  0  0  0
-Gx(GiGyGm)Gx  0  0  0
-Gx(GiGyGm)Gy  0  0  0
-Gx(GiGyGm)Gm  0  0  0
-Gx(GiGyGm)GxGx  0  0  0
-Gx(GiGyGm)GyGm  0  0  0
-Gx(GiGyGm)GxGm  0  0  0
-Gy(GiGyGm)Gx  0  0  0
-Gy(GiGyGm)Gy  0  0  0
-Gy(GiGyGm)Gm  0  0  0
-Gy(GiGyGm)GxGx  0  0  0
-Gy(GiGyGm)GyGm  0  0  0
-Gy(GiGyGm)GxGm  0  0  0
-Gm(GiGyGm)Gx  0  0  0
-Gm(GiGyGm)Gy  0  0  0
-Gm(GiGyGm)Gm  0  0  0
-Gm(GiGyGm)GxGx  0  0  0
-Gm(GiGyGm)GyGm  0  0  0
-Gm(GiGyGm)GxGm  0  0  0
-GxGx(GiGyGm)Gx  0  0  0
-GxGx(GiGyGm)Gy  0  0  0
-GxGx(GiGyGm)Gm  0  0  0
-GxGx(GiGyGm)GxGx  0  0  0
-GxGx(GiGyGm)GyGm  0  0  0
-GxGx(GiGyGm)GxGm  0  0  0
-GmGx(GiGyGm)Gx  0  0  0
-GmGx(GiGyGm)Gy  0  0  0
-GmGx(GiGyGm)Gm  0  0  0
-GmGx(GiGyGm)GxGx  0  0  0
-GmGx(GiGyGm)GyGm  0  0  0
-GmGx(GiGyGm)GxGm  0  0  0
-GmGy(GiGyGm)Gx  0  0  0
-GmGy(GiGyGm)Gy  0  0  0
-GmGy(GiGyGm)Gm  0  0  0
-GmGy(GiGyGm)GxGx  0  0  0
-GmGy(GiGyGm)GyGm  0  0  0
-GmGy(GiGyGm)GxGm  0  0  0
-GyGyGy(GiGyGm)Gx  0  0  0
-GyGyGy(GiGyGm)Gy  0  0  0
-GyGyGy(GiGyGm)Gm  0  0  0
-GyGyGy(GiGyGm)GxGx  0  0  0
-GyGyGy(GiGyGm)GyGm  0  0  0
-GyGyGy(GiGyGm)GxGm  0  0  0
-GxGxGx(GiGyGm)Gx  0  0  0
-GxGxGx(GiGyGm)Gy  0  0  0
-GxGxGx(GiGyGm)Gm  0  0  0
-GxGxGx(GiGyGm)GxGx  0  0  0
-GxGxGx(GiGyGm)GyGm  0  0  0
-GxGxGx(GiGyGm)GxGm  0  0  0
-(GiGxGy)Gx  0  0  0
-(GiGxGy)Gy  0  0  0
-(GiGxGy)GxGx  0  0  0
-(GiGxGy)GyGm  0  0  0
-(GiGxGy)GxGm  0  0  0
-Gx(GiGxGy)Gx  0  0  0
-Gx(GiGxGy)Gy  0  0  0
-Gx(GiGxGy)GxGx  0  0  0
-Gx(GiGxGy)GyGm  0  0  0
-Gx(GiGxGy)GxGm  0  0  0
-Gy(GiGxGy)Gx  0  0  0
-Gy(GiGxGy)Gy  0  0  0
-Gy(GiGxGy)GxGx  0  0  0
-Gy(GiGxGy)GyGm  0  0  0
-Gy(GiGxGy)GxGm  0  0  0
-Gm(GiGxGy)Gx  0  0  0
-Gm(GiGxGy)Gy  0  0  0
-Gm(GiGxGy)GxGx  0  0  0
-Gm(GiGxGy)GyGm  0  0  0
-Gm(GiGxGy)GxGm  0  0  0
-GxGx(GiGxGy)Gx  0  0  0
-GxGx(GiGxGy)Gy  0  0  0
-GxGx(GiGxGy)GxGx  0  0  0
-GxGx(GiGxGy)GyGm  0  0  0
-GxGx(GiGxGy)GxGm  0  0  0
-GmGx(GiGxGy)Gx  0  0  0
-GmGx(GiGxGy)Gy  0  0  0
-GmGx(GiGxGy)GxGx  0  0  0
-GmGx(GiGxGy)GyGm  0  0  0
-GmGx(GiGxGy)GxGm  0  0  0
-GmGy(GiGxGy)Gx  0  0  0
-GmGy(GiGxGy)Gy  0  0  0
-GmGy(GiGxGy)GxGx  0  0  0
-GmGy(GiGxGy)GyGm  0  0  0
-GmGy(GiGxGy)GxGm  0  0  0
-GyGyGy(GiGxGy)Gx  0  0  0
-GyGyGy(GiGxGy)Gy  0  0  0
-GyGyGy(GiGxGy)GxGx  0  0  0
-GyGyGy(GiGxGy)GyGm  0  0  0
-GyGyGy(GiGxGy)GxGm  0  0  0
-GxGxGx(GiGxGy)Gx  0  0  0
-GxGxGx(GiGxGy)Gy  0  0  0
-GxGxGx(GiGxGy)GxGx  0  0  0
-GxGxGx(GiGxGy)GyGm  0  0  0
-GxGxGx(GiGxGy)GxGm  0  0  0
-(GiGxGx)Gy  0  0  0
-(GiGxGx)GxGx  0  0  0
-(GiGxGx)GyGm  0  0  0
-(GiGxGx)GxGm  0  0  0
-Gx(GiGxGx)Gy  0  0  0
-Gx(GiGxGx)GxGx  0  0  0
-Gx(GiGxGx)GyGm  0  0  0
-Gx(GiGxGx)GxGm  0  0  0
-Gy(GiGxGx)Gy  0  0  0
-Gy(GiGxGx)GxGx  0  0  0
-Gy(GiGxGx)GyGm  0  0  0
-Gy(GiGxGx)GxGm  0  0  0
-Gm(GiGxGx)Gy  0  0  0
-Gm(GiGxGx)GxGx  0  0  0
-Gm(GiGxGx)GyGm  0  0  0
-Gm(GiGxGx)GxGm  0  0  0
-GxGx(GiGxGx)Gy  0  0  0
-GxGx(GiGxGx)GxGx  0  0  0
-GxGx(GiGxGx)GyGm  0  0  0
-GxGx(GiGxGx)GxGm  0  0  0
-GmGx(GiGxGx)Gy  0  0  0
-GmGx(GiGxGx)GxGx  0  0  0
-GmGx(GiGxGx)GyGm  0  0  0
-GmGx(GiGxGx)GxGm  0  0  0
-GmGy(GiGxGx)Gy  0  0  0
-GmGy(GiGxGx)GxGx  0  0  0
-GmGy(GiGxGx)GyGm  0  0  0
-GmGy(GiGxGx)GxGm  0  0  0
-GyGyGy(GiGxGx)Gy  0  0  0
-GyGyGy(GiGxGx)GxGx  0  0  0
-GyGyGy(GiGxGx)GyGm  0  0  0
-GyGyGy(GiGxGx)GxGm  0  0  0
-GxGxGx(GiGxGx)Gy  0  0  0
-GxGxGx(GiGxGx)GxGx  0  0  0
-GxGxGx(GiGxGx)GyGm  0  0  0
-GxGxGx(GiGxGx)GxGm  0  0  0
-(GiGxGm)Gx  0  0  0
-(GiGxGm)Gy  0  0  0
-(GiGxGm)Gm  0  0  0
-(GiGxGm)GxGx  0  0  0
-(GiGxGm)GyGm  0  0  0
-(GiGxGm)GxGm  0  0  0
-Gx(GiGxGm)Gx  0  0  0
-Gx(GiGxGm)Gy  0  0  0
-Gx(GiGxGm)Gm  0  0  0
-Gx(GiGxGm)GxGx  0  0  0
-Gx(GiGxGm)GyGm  0  0  0
-Gx(GiGxGm)GxGm  0  0  0
-Gy(GiGxGm)Gx  0  0  0
-Gy(GiGxGm)Gy  0  0  0
-Gy(GiGxGm)Gm  0  0  0
-Gy(GiGxGm)GxGx  0  0  0
-Gy(GiGxGm)GyGm  0  0  0
-Gy(GiGxGm)GxGm  0  0  0
-Gm(GiGxGm)Gx  0  0  0
-Gm(GiGxGm)Gy  0  0  0
-Gm(GiGxGm)Gm  0  0  0
-Gm(GiGxGm)GxGx  0  0  0
-Gm(GiGxGm)GyGm  0  0  0
-Gm(GiGxGm)GxGm  0  0  0
-GxGx(GiGxGm)Gx  0  0  0
-GxGx(GiGxGm)Gy  0  0  0
-GxGx(GiGxGm)Gm  0  0  0
-GxGx(GiGxGm)GxGx  0  0  0
-GxGx(GiGxGm)GyGm  0  0  0
-GxGx(GiGxGm)GxGm  0  0  0
-GmGx(GiGxGm)Gx  0  0  0
-GmGx(GiGxGm)Gy  0  0  0
-GmGx(GiGxGm)Gm  0  0  0
-GmGx(GiGxGm)GxGx  0  0  0
-GmGx(GiGxGm)GyGm  0  0  0
-GmGx(GiGxGm)GxGm  0  0  0
-GmGy(GiGxGm)Gx  0  0  0
-GmGy(GiGxGm)Gy  0  0  0
-GmGy(GiGxGm)Gm  0  0  0
-GmGy(GiGxGm)GxGx  0  0  0
-GmGy(GiGxGm)GyGm  0  0  0
-GmGy(GiGxGm)GxGm  0  0  0
-GyGyGy(GiGxGm)Gx  0  0  0
-GyGyGy(GiGxGm)Gy  0  0  0
-GyGyGy(GiGxGm)Gm  0  0  0
-GyGyGy(GiGxGm)GxGx  0  0  0
-GyGyGy(GiGxGm)GyGm  0  0  0
-GyGyGy(GiGxGm)GxGm  0  0  0
-GxGxGx(GiGxGm)Gx  0  0  0
-GxGxGx(GiGxGm)Gy  0  0  0
-GxGxGx(GiGxGm)Gm  0  0  0
-GxGxGx(GiGxGm)GxGx  0  0  0
-GxGxGx(GiGxGm)GyGm  0  0  0
-GxGxGx(GiGxGm)GxGm  0  0  0
-(GiGmGy)Gx  0  0  0
-(GiGmGy)Gy  0  0  0
-(GiGmGy)GxGx  0  0  0
-(GiGmGy)GyGm  0  0  0
-(GiGmGy)GxGm  0  0  0
-Gx(GiGmGy)Gx  0  0  0
-Gx(GiGmGy)Gy  0  0  0
-Gx(GiGmGy)GxGx  0  0  0
-Gx(GiGmGy)GyGm  0  0  0
-Gx(GiGmGy)GxGm  0  0  0
-Gy(GiGmGy)Gx  0  0  0
-Gy(GiGmGy)Gy  0  0  0
-Gy(GiGmGy)GxGx  0  0  0
-Gy(GiGmGy)GyGm  0  0  0
-Gy(GiGmGy)GxGm  0  0  0
-Gm(GiGmGy)Gx  0  0  0
-Gm(GiGmGy)Gy  0  0  0
-Gm(GiGmGy)GxGx  0  0  0
-Gm(GiGmGy)GyGm  0  0  0
-Gm(GiGmGy)GxGm  0  0  0
-GxGx(GiGmGy)Gx  0  0  0
-GxGx(GiGmGy)Gy  0  0  0
-GxGx(GiGmGy)GxGx  0  0  0
-GxGx(GiGmGy)GyGm  0  0  0
-GxGx(GiGmGy)GxGm  0  0  0
-GmGx(GiGmGy)Gx  0  0  0
-GmGx(GiGmGy)Gy  0  0  0
-GmGx(GiGmGy)GxGx  0  0  0
-GmGx(GiGmGy)GyGm  0  0  0
-GmGx(GiGmGy)GxGm  0  0  0
-GmGy(GiGmGy)Gx  0  0  0
-GmGy(GiGmGy)Gy  0  0  0
-GmGy(GiGmGy)GxGx  0  0  0
-GmGy(GiGmGy)GyGm  0  0  0
-GmGy(GiGmGy)GxGm  0  0  0
-GyGyGy(GiGmGy)Gx  0  0  0
-GyGyGy(GiGmGy)Gy  0  0  0
-GyGyGy(GiGmGy)GxGx  0  0  0
-GyGyGy(GiGmGy)GyGm  0  0  0
-GyGyGy(GiGmGy)GxGm  0  0  0
-GxGxGx(GiGmGy)Gx  0  0  0
-GxGxGx(GiGmGy)Gy  0  0  0
-GxGxGx(GiGmGy)GxGx  0  0  0
-GxGxGx(GiGmGy)GyGm  0  0  0
-GxGxGx(GiGmGy)GxGm  0  0  0
-(GiGmGx)Gy  0  0  0
-(GiGmGx)GxGx  0  0  0
-(GiGmGx)GyGm  0  0  0
-(GiGmGx)GxGm  0  0  0
-Gx(GiGmGx)Gy  0  0  0
-Gx(GiGmGx)GxGx  0  0  0
-Gx(GiGmGx)GyGm  0  0  0
-Gx(GiGmGx)GxGm  0  0  0
-Gy(GiGmGx)Gy  0  0  0
-Gy(GiGmGx)GxGx  0  0  0
-Gy(GiGmGx)GyGm  0  0  0
-Gy(GiGmGx)GxGm  0  0  0
-Gm(GiGmGx)Gy  0  0  0
-Gm(GiGmGx)GxGx  0  0  0
-Gm(GiGmGx)GyGm  0  0  0
-Gm(GiGmGx)GxGm  0  0  0
-GxGx(GiGmGx)Gy  0  0  0
-GxGx(GiGmGx)GxGx  0  0  0
-GxGx(GiGmGx)GyGm  0  0  0
-GxGx(GiGmGx)GxGm  0  0  0
-GmGx(GiGmGx)Gy  0  0  0
-GmGx(GiGmGx)GxGx  0  0  0
-GmGx(GiGmGx)GyGm  0  0  0
-GmGx(GiGmGx)GxGm  0  0  0
-GmGy(GiGmGx)Gy  0  0  0
-GmGy(GiGmGx)GxGx  0  0  0
-GmGy(GiGmGx)GyGm  0  0  0
-GmGy(GiGmGx)GxGm  0  0  0
-GyGyGy(GiGmGx)Gy  0  0  0
-GyGyGy(GiGmGx)GxGx  0  0  0
-GyGyGy(GiGmGx)GyGm  0  0  0
-GyGyGy(GiGmGx)GxGm  0  0  0
-GxGxGx(GiGmGx)Gy  0  0  0
-GxGxGx(GiGmGx)GxGx  0  0  0
-GxGxGx(GiGmGx)GyGm  0  0  0
-GxGxGx(GiGmGx)GxGm  0  0  0
-(GiGmGm)Gx  0  0  0
-(GiGmGm)Gy  0  0  0
-(GiGmGm)Gm  0  0  0
-(GiGmGm)GxGx  0  0  0
-(GiGmGm)GyGm  0  0  0
-(GiGmGm)GxGm  0  0  0
-Gx(GiGmGm)Gx  0  0  0
-Gx(GiGmGm)Gy  0  0  0
-Gx(GiGmGm)Gm  0  0  0
-Gx(GiGmGm)GxGx  0  0  0
-Gx(GiGmGm)GyGm  0  0  0
-Gx(GiGmGm)GxGm  0  0  0
-Gy(GiGmGm)Gx  0  0  0
-Gy(GiGmGm)Gy  0  0  0
-Gy(GiGmGm)Gm  0  0  0
-Gy(GiGmGm)GxGx  0  0  0
-Gy(GiGmGm)GyGm  0  0  0
-Gy(GiGmGm)GxGm  0  0  0
-Gm(GiGmGm)Gx  0  0  0
-Gm(GiGmGm)Gy  0  0  0
-Gm(GiGmGm)Gm  0  0  0
-Gm(GiGmGm)GxGx  0  0  0
-Gm(GiGmGm)GyGm  0  0  0
-Gm(GiGmGm)GxGm  0  0  0
-GxGx(GiGmGm)Gx  0  0  0
-GxGx(GiGmGm)Gy  0  0  0
-GxGx(GiGmGm)Gm  0  0  0
-GxGx(GiGmGm)GxGx  0  0  0
-GxGx(GiGmGm)GyGm  0  0  0
-GxGx(GiGmGm)GxGm  0  0  0
-GmGx(GiGmGm)Gx  0  0  0
-GmGx(GiGmGm)Gy  0  0  0
-GmGx(GiGmGm)Gm  0  0  0
-GmGx(GiGmGm)GxGx  0  0  0
-GmGx(GiGmGm)GyGm  0  0  0
-GmGx(GiGmGm)GxGm  0  0  0
-GmGy(GiGmGm)Gx  0  0  0
-GmGy(GiGmGm)Gy  0  0  0
-GmGy(GiGmGm)Gm  0  0  0
-GmGy(GiGmGm)GxGx  0  0  0
-GmGy(GiGmGm)GyGm  0  0  0
-GmGy(GiGmGm)GxGm  0  0  0
-GyGyGy(GiGmGm)Gx  0  0  0
-GyGyGy(GiGmGm)Gy  0  0  0
-GyGyGy(GiGmGm)Gm  0  0  0
-GyGyGy(GiGmGm)GxGx  0  0  0
-GyGyGy(GiGmGm)GyGm  0  0  0
-GyGyGy(GiGmGm)GxGm  0  0  0
-GxGxGx(GiGmGm)Gx  0  0  0
-GxGxGx(GiGmGm)Gy  0  0  0
-GxGxGx(GiGmGm)Gm  0  0  0
-GxGxGx(GiGmGm)GxGx  0  0  0
-GxGxGx(GiGmGm)GyGm  0  0  0
-GxGxGx(GiGmGm)GxGm  0  0  0
-(GyGyGx)Gy  0  0  0
-(GyGyGx)GxGx  0  0  0
-(GyGyGx)GyGm  0  0  0
-(GyGyGx)GxGm  0  0  0
-Gx(GyGyGx)Gy  0  0  0
-Gx(GyGyGx)GxGx  0  0  0
-Gx(GyGyGx)GyGm  0  0  0
-Gx(GyGyGx)GxGm  0  0  0
-Gm(GyGyGx)Gy  0  0  0
-Gm(GyGyGx)GxGx  0  0  0
-Gm(GyGyGx)GyGm  0  0  0
-Gm(GyGyGx)GxGm  0  0  0
-GxGx(GyGyGx)Gy  0  0  0
-GxGx(GyGyGx)GxGx  0  0  0
-GxGx(GyGyGx)GyGm  0  0  0
-GxGx(GyGyGx)GxGm  0  0  0
-GmGx(GyGyGx)Gy  0  0  0
-GmGx(GyGyGx)GxGx  0  0  0
-GmGx(GyGyGx)GyGm  0  0  0
-GmGx(GyGyGx)GxGm  0  0  0
-GmGy(GyGyGx)Gy  0  0  0
-GmGy(GyGyGx)GxGx  0  0  0
-GmGy(GyGyGx)GyGm  0  0  0
-GmGy(GyGyGx)GxGm  0  0  0
-GyGyGy(GyGyGx)Gy  0  0  0
-GyGyGy(GyGyGx)GxGx  0  0  0
-GyGyGy(GyGyGx)GyGm  0  0  0
-GyGyGy(GyGyGx)GxGm  0  0  0
-GxGxGx(GyGyGx)Gy  0  0  0
-GxGxGx(GyGyGx)GxGx  0  0  0
-GxGxGx(GyGyGx)GyGm  0  0  0
-GxGxGx(GyGyGx)GxGm  0  0  0
-Gx(GyGyGm)Gx  0  0  0
-Gx(GyGyGm)Gy  0  0  0
-Gx(GyGyGm)Gm  0  0  0
-Gx(GyGyGm)GxGx  0  0  0
-Gx(GyGyGm)GyGm  0  0  0
-Gx(GyGyGm)GxGm  0  0  0
-GxGx(GyGyGm)Gx  0  0  0
-GxGx(GyGyGm)Gy  0  0  0
-GxGx(GyGyGm)Gm  0  0  0
-GxGx(GyGyGm)GxGx  0  0  0
-GxGx(GyGyGm)GyGm  0  0  0
-GxGx(GyGyGm)GxGm  0  0  0
-GmGx(GyGyGm)Gx  0  0  0
-GmGx(GyGyGm)Gy  0  0  0
-GmGx(GyGyGm)Gm  0  0  0
-GmGx(GyGyGm)GxGx  0  0  0
-GmGx(GyGyGm)GyGm  0  0  0
-GmGx(GyGyGm)GxGm  0  0  0
-GmGy(GyGyGm)Gx  0  0  0
-GmGy(GyGyGm)Gy  0  0  0
-GmGy(GyGyGm)Gm  0  0  0
-GmGy(GyGyGm)GxGx  0  0  0
-GmGy(GyGyGm)GyGm  0  0  0
-GmGy(GyGyGm)GxGm  0  0  0
-GyGyGy(GyGyGm)Gx  0  0  0
-GyGyGy(GyGyGm)Gy  0  0  0
-GyGyGy(GyGyGm)Gm  0  0  0
-GyGyGy(GyGyGm)GxGx  0  0  0
-GyGyGy(GyGyGm)GyGm  0  0  0
-GyGyGy(GyGyGm)GxGm  0  0  0
-GxGxGx(GyGyGm)Gx  0  0  0
-GxGxGx(GyGyGm)Gy  0  0  0
-GxGxGx(GyGyGm)Gm  0  0  0
-GxGxGx(GyGyGm)GxGx  0  0  0
-GxGxGx(GyGyGm)GyGm  0  0  0
-GxGxGx(GyGyGm)GxGm  0  0  0
-Gx(GyGxGx)Gx  0  0  0
-Gx(GyGxGx)Gy  0  0  0
-Gx(GyGxGx)Gm  0  0  0
-Gx(GyGxGx)GxGx  0  0  0
-Gx(GyGxGx)GyGm  0  0  0
-Gx(GyGxGx)GxGm  0  0  0
-Gy(GyGxGx)Gy  0  0  0
-Gy(GyGxGx)GxGx  0  0  0
-Gy(GyGxGx)GyGm  0  0  0
-Gy(GyGxGx)GxGm  0  0  0
-GxGx(GyGxGx)Gx  0  0  0
-GxGx(GyGxGx)Gy  0  0  0
-GxGx(GyGxGx)Gm  0  0  0
-GxGx(GyGxGx)GxGx  0  0  0
-GxGx(GyGxGx)GyGm  0  0  0
-GxGx(GyGxGx)GxGm  0  0  0
-GmGx(GyGxGx)Gx  0  0  0
-GmGx(GyGxGx)Gy  0  0  0
-GmGx(GyGxGx)Gm  0  0  0
-GmGx(GyGxGx)GxGx  0  0  0
-GmGx(GyGxGx)GyGm  0  0  0
-GmGx(GyGxGx)GxGm  0  0  0
-GmGy(GyGxGx)Gy  0  0  0
-GmGy(GyGxGx)GxGx  0  0  0
-GmGy(GyGxGx)GyGm  0  0  0
-GmGy(GyGxGx)GxGm  0  0  0
-GyGyGy(GyGxGx)Gx  0  0  0
-GyGyGy(GyGxGx)Gy  0  0  0
-GyGyGy(GyGxGx)Gm  0  0  0
-GyGyGy(GyGxGx)GxGx  0  0  0
-GyGyGy(GyGxGx)GyGm  0  0  0
-GyGyGy(GyGxGx)GxGm  0  0  0
-GxGxGx(GyGxGx)Gx  0  0  0
-GxGxGx(GyGxGx)Gy  0  0  0
-GxGxGx(GyGxGx)Gm  0  0  0
-GxGxGx(GyGxGx)GxGx  0  0  0
-GxGxGx(GyGxGx)GyGm  0  0  0
-GxGxGx(GyGxGx)GxGm  0  0  0
-Gx(GyGxGm)Gx  0  0  0
-Gx(GyGxGm)Gy  0  0  0
-Gx(GyGxGm)Gm  0  0  0
-Gx(GyGxGm)GxGx  0  0  0
-Gx(GyGxGm)GyGm  0  0  0
-Gx(GyGxGm)GxGm  0  0  0
-Gy(GyGxGm)Gx  0  0  0
-Gy(GyGxGm)Gy  0  0  0
-Gy(GyGxGm)Gm  0  0  0
-Gy(GyGxGm)GxGx  0  0  0
-Gy(GyGxGm)GyGm  0  0  0
-Gy(GyGxGm)GxGm  0  0  0
-GxGx(GyGxGm)Gx  0  0  0
-GxGx(GyGxGm)Gy  0  0  0
-GxGx(GyGxGm)Gm  0  0  0
-GxGx(GyGxGm)GxGx  0  0  0
-GxGx(GyGxGm)GyGm  0  0  0
-GxGx(GyGxGm)GxGm  0  0  0
-GmGx(GyGxGm)Gx  0  0  0
-GmGx(GyGxGm)Gy  0  0  0
-GmGx(GyGxGm)Gm  0  0  0
-GmGx(GyGxGm)GxGx  0  0  0
-GmGx(GyGxGm)GyGm  0  0  0
-GmGx(GyGxGm)GxGm  0  0  0
-GmGy(GyGxGm)Gx  0  0  0
-GmGy(GyGxGm)Gy  0  0  0
-GmGy(GyGxGm)Gm  0  0  0
-GmGy(GyGxGm)GxGx  0  0  0
-GmGy(GyGxGm)GyGm  0  0  0
-GmGy(GyGxGm)GxGm  0  0  0
-GyGyGy(GyGxGm)Gx  0  0  0
-GyGyGy(GyGxGm)Gy  0  0  0
-GyGyGy(GyGxGm)Gm  0  0  0
-GyGyGy(GyGxGm)GxGx  0  0  0
-GyGyGy(GyGxGm)GyGm  0  0  0
-GyGyGy(GyGxGm)GxGm  0  0  0
-GxGxGx(GyGxGm)Gx  0  0  0
-GxGxGx(GyGxGm)Gy  0  0  0
-GxGxGx(GyGxGm)Gm  0  0  0
-GxGxGx(GyGxGm)GxGx  0  0  0
-GxGxGx(GyGxGm)GyGm  0  0  0
-GxGxGx(GyGxGm)GxGm  0  0  0
-(GyGmGx)Gy  0  0  0
-(GyGmGx)GxGx  0  0  0
-(GyGmGx)GyGm  0  0  0
-(GyGmGx)GxGm  0  0  0
-Gx(GyGmGx)Gy  0  0  0
-Gx(GyGmGx)GxGx  0  0  0
-Gx(GyGmGx)GyGm  0  0  0
-Gx(GyGmGx)GxGm  0  0  0
-Gy(GyGmGx)Gy  0  0  0
-Gy(GyGmGx)GxGx  0  0  0
-Gy(GyGmGx)GyGm  0  0  0
-Gy(GyGmGx)GxGm  0  0  0
-Gm(GyGmGx)Gy  0  0  0
-Gm(GyGmGx)GxGx  0  0  0
-Gm(GyGmGx)GyGm  0  0  0
-Gm(GyGmGx)GxGm  0  0  0
-GxGx(GyGmGx)Gy  0  0  0
-GxGx(GyGmGx)GxGx  0  0  0
-GxGx(GyGmGx)GyGm  0  0  0
-GxGx(GyGmGx)GxGm  0  0  0
-GmGx(GyGmGx)Gy  0  0  0
-GmGx(GyGmGx)GxGx  0  0  0
-GmGx(GyGmGx)GyGm  0  0  0
-GmGx(GyGmGx)GxGm  0  0  0
-GmGy(GyGmGx)Gy  0  0  0
-GmGy(GyGmGx)GxGx  0  0  0
-GmGy(GyGmGx)GyGm  0  0  0
-GmGy(GyGmGx)GxGm  0  0  0
-GyGyGy(GyGmGx)Gy  0  0  0
-GyGyGy(GyGmGx)GxGx  0  0  0
-GyGyGy(GyGmGx)GyGm  0  0  0
-GyGyGy(GyGmGx)GxGm  0  0  0
-GxGxGx(GyGmGx)Gy  0  0  0
-GxGxGx(GyGmGx)GxGx  0  0  0
-GxGxGx(GyGmGx)GyGm  0  0  0
-GxGxGx(GyGmGx)GxGm  0  0  0
-Gx(GyGmGm)Gx  0  0  0
-Gx(GyGmGm)Gy  0  0  0
-Gx(GyGmGm)Gm  0  0  0
-Gx(GyGmGm)GxGx  0  0  0
-Gx(GyGmGm)GyGm  0  0  0
-Gx(GyGmGm)GxGm  0  0  0
-Gy(GyGmGm)Gx  0  0  0
-Gy(GyGmGm)Gy  0  0  0
-Gy(GyGmGm)Gm  0  0  0
-Gy(GyGmGm)GxGx  0  0  0
-Gy(GyGmGm)GyGm  0  0  0
-Gy(GyGmGm)GxGm  0  0  0
-GxGx(GyGmGm)Gx  0  0  0
-GxGx(GyGmGm)Gy  0  0  0
-GxGx(GyGmGm)Gm  0  0  0
-GxGx(GyGmGm)GxGx  0  0  0
-GxGx(GyGmGm)GyGm  0  0  0
-GxGx(GyGmGm)GxGm  0  0  0
-GmGx(GyGmGm)Gx  0  0  0
-GmGx(GyGmGm)Gy  0  0  0
-GmGx(GyGmGm)Gm  0  0  0
-GmGx(GyGmGm)GxGx  0  0  0
-GmGx(GyGmGm)GyGm  0  0  0
-GmGx(GyGmGm)GxGm  0  0  0
-GmGy(GyGmGm)Gx  0  0  0
-GmGy(GyGmGm)Gy  0  0  0
-GmGy(GyGmGm)Gm  0  0  0
-GmGy(GyGmGm)GxGx  0  0  0
-GmGy(GyGmGm)GyGm  0  0  0
-GmGy(GyGmGm)GxGm  0  0  0
-GyGyGy(GyGmGm)Gx  0  0  0
-GyGyGy(GyGmGm)Gy  0  0  0
-GyGyGy(GyGmGm)Gm  0  0  0
-GyGyGy(GyGmGm)GxGx  0  0  0
-GyGyGy(GyGmGm)GyGm  0  0  0
-GyGyGy(GyGmGm)GxGm  0  0  0
-GxGxGx(GyGmGm)Gx  0  0  0
-GxGxGx(GyGmGm)Gy  0  0  0
-GxGxGx(GyGmGm)Gm  0  0  0
-GxGxGx(GyGmGm)GxGx  0  0  0
-GxGxGx(GyGmGm)GyGm  0  0  0
-GxGxGx(GyGmGm)GxGm  0  0  0
-Gy(GxGxGm)Gx  0  0  0
-Gy(GxGxGm)Gy  0  0  0
-Gy(GxGxGm)Gm  0  0  0
-Gy(GxGxGm)GxGx  0  0  0
-Gy(GxGxGm)GyGm  0  0  0
-Gy(GxGxGm)GxGm  0  0  0
-GmGx(GxGxGm)Gx  0  0  0
-GmGx(GxGxGm)Gy  0  0  0
-GmGx(GxGxGm)Gm  0  0  0
-GmGx(GxGxGm)GxGx  0  0  0
-GmGx(GxGxGm)GyGm  0  0  0
-GmGx(GxGxGm)GxGm  0  0  0
-GmGy(GxGxGm)Gx  0  0  0
-GmGy(GxGxGm)Gy  0  0  0
-GmGy(GxGxGm)Gm  0  0  0
-GmGy(GxGxGm)GxGx  0  0  0
-GmGy(GxGxGm)GyGm  0  0  0
-GmGy(GxGxGm)GxGm  0  0  0
-GyGyGy(GxGxGm)Gx  0  0  0
-GyGyGy(GxGxGm)Gy  0  0  0
-GyGyGy(GxGxGm)Gm  0  0  0
-GyGyGy(GxGxGm)GxGx  0  0  0
-GyGyGy(GxGxGm)GyGm  0  0  0
-GyGyGy(GxGxGm)GxGm  0  0  0
-GxGxGx(GxGxGm)Gx  0  0  0
-GxGxGx(GxGxGm)Gy  0  0  0
-GxGxGx(GxGxGm)Gm  0  0  0
-GxGxGx(GxGxGm)GxGx  0  0  0
-GxGxGx(GxGxGm)GyGm  0  0  0
-GxGxGx(GxGxGm)GxGm  0  0  0
-Gy(GxGmGm)Gx  0  0  0
-Gy(GxGmGm)Gy  0  0  0
-Gy(GxGmGm)Gm  0  0  0
-Gy(GxGmGm)GxGx  0  0  0
-Gy(GxGmGm)GyGm  0  0  0
-Gy(GxGmGm)GxGm  0  0  0
-GmGx(GxGmGm)Gx  0  0  0
-GmGx(GxGmGm)Gy  0  0  0
-GmGx(GxGmGm)Gm  0  0  0
-GmGx(GxGmGm)GxGx  0  0  0
-GmGx(GxGmGm)GyGm  0  0  0
-GmGx(GxGmGm)GxGm  0  0  0
-GmGy(GxGmGm)Gx  0  0  0
-GmGy(GxGmGm)Gy  0  0  0
-GmGy(GxGmGm)Gm  0  0  0
-GmGy(GxGmGm)GxGx  0  0  0
-GmGy(GxGmGm)GyGm  0  0  0
-GmGy(GxGmGm)GxGm  0  0  0
-GyGyGy(GxGmGm)Gx  0  0  0
-GyGyGy(GxGmGm)Gy  0  0  0
-GyGyGy(GxGmGm)Gm  0  0  0
-GyGyGy(GxGmGm)GxGx  0  0  0
-GyGyGy(GxGmGm)GyGm  0  0  0
-GyGyGy(GxGmGm)GxGm  0  0  0
-GxGxGx(GxGmGm)Gx  0  0  0
-GxGxGx(GxGmGm)Gy  0  0  0
-GxGxGx(GxGmGm)Gm  0  0  0
-GxGxGx(GxGmGm)GxGx  0  0  0
-GxGxGx(GxGmGm)GyGm  0  0  0
-GxGxGx(GxGmGm)GxGm  0  0  0
+{}@(QT)  0  0  0
+Gx:QT@(QT)  0  0  0
+Gy:QT@(QT)  0  0  0
+Gm:QT@(QT)  0  0  0
+Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT@(QT)  0  0  0
+Gm:QTGy:QT@(QT)  0  0  0
+Gm:QTGm:QTGx:QT@(QT)  0  0  0
+Gm:QTGm:QTGy:QT@(QT)  0  0  0
+Gm:QTGm:QTGm:QT@(QT)  0  0  0
+Gm:QTGm:QTGy:QTGm:QT@(QT)  0  0  0
+Gm:QTGm:QTGm:QTGx:QT@(QT)  0  0  0
+Gx:QTGx:QT@(QT)  0  0  0
+Gx:QTGy:QT@(QT)  0  0  0
+Gx:QTGm:QT@(QT)  0  0  0
+Gx:QTGy:QTGm:QT@(QT)  0  0  0
+Gx:QTGm:QTGx:QT@(QT)  0  0  0
+Gy:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QT@(QT)  0  0  0
+Gy:QTGy:QTGm:QT@(QT)  0  0  0
+Gy:QTGm:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QTGy:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QTGy:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QTGm:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QTGy:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QTGy:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QTGm:QTGx:QT@(QT)  0  0  0
+Gm:QTGy:QTGm:QT@(QT)  0  0  0
+Gm:QTGx:QTGx:QT@(QT)  0  0  0
+Gm:QTGx:QTGy:QT@(QT)  0  0  0
+Gm:QTGx:QTGm:QT@(QT)  0  0  0
+Gm:QTGx:QTGy:QTGm:QT@(QT)  0  0  0
+Gm:QTGx:QTGm:QTGx:QT@(QT)  0  0  0
+Gm:QTGy:QTGx:QT@(QT)  0  0  0
+Gm:QTGy:QTGy:QT@(QT)  0  0  0
+Gm:QTGy:QTGy:QTGm:QT@(QT)  0  0  0
+Gm:QTGy:QTGm:QTGx:QT@(QT)  0  0  0
+(Gi:QT)@(QT)  0  0  0
+(Gi:QT)Gx:QT@(QT)  0  0  0
+(Gi:QT)Gy:QT@(QT)  0  0  0
+(Gi:QT)Gm:QT@(QT)  0  0  0
+(Gi:QT)Gy:QTGm:QT@(QT)  0  0  0
+(Gi:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gi:QT)@(QT)  0  0  0
+Gm:QTGm:QT(Gi:QT)Gx:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gi:QT)Gy:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gi:QT)Gm:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gi:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gi:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gx:QT(Gi:QT)@(QT)  0  0  0
+Gx:QT(Gi:QT)Gx:QT@(QT)  0  0  0
+Gx:QT(Gi:QT)Gy:QT@(QT)  0  0  0
+Gx:QT(Gi:QT)Gm:QT@(QT)  0  0  0
+Gx:QT(Gi:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gx:QT(Gi:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gy:QT(Gi:QT)@(QT)  0  0  0
+Gy:QT(Gi:QT)Gx:QT@(QT)  0  0  0
+Gy:QT(Gi:QT)Gy:QT@(QT)  0  0  0
+Gy:QT(Gi:QT)Gm:QT@(QT)  0  0  0
+Gy:QT(Gi:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gy:QT(Gi:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gi:QT)@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gi:QT)Gx:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gi:QT)Gy:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gi:QT)Gm:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gi:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gi:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gi:QT)@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gi:QT)Gx:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gi:QT)Gy:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gi:QT)Gm:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gi:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gi:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gm:QT(Gi:QT)@(QT)  0  0  0
+Gm:QT(Gi:QT)Gx:QT@(QT)  0  0  0
+Gm:QT(Gi:QT)Gy:QT@(QT)  0  0  0
+Gm:QT(Gi:QT)Gm:QT@(QT)  0  0  0
+Gm:QT(Gi:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gm:QT(Gi:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gi:QT)@(QT)  0  0  0
+Gm:QTGx:QT(Gi:QT)Gx:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gi:QT)Gy:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gi:QT)Gm:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gi:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gi:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gi:QT)@(QT)  0  0  0
+Gm:QTGy:QT(Gi:QT)Gx:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gi:QT)Gy:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gi:QT)Gm:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gi:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gi:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gx:QT)Gx:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gx:QT)Gy:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gx:QT)Gm:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gx:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gx:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gx:QT(Gx:QT)Gx:QT@(QT)  0  0  0
+Gx:QT(Gx:QT)Gy:QT@(QT)  0  0  0
+Gx:QT(Gx:QT)Gm:QT@(QT)  0  0  0
+Gx:QT(Gx:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gx:QT(Gx:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gy:QT(Gx:QT)Gx:QT@(QT)  0  0  0
+Gy:QT(Gx:QT)Gy:QT@(QT)  0  0  0
+Gy:QT(Gx:QT)Gm:QT@(QT)  0  0  0
+Gy:QT(Gx:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gy:QT(Gx:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gx:QT)Gx:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gx:QT)Gy:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gx:QT)Gm:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gx:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gx:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gx:QT)Gx:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gx:QT)Gy:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gx:QT)Gm:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gx:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gx:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gx:QT)Gx:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gx:QT)Gy:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gx:QT)Gm:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gx:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gx:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gx:QT)Gx:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gx:QT)Gy:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gx:QT)Gm:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gx:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gx:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gy:QT)Gx:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gy:QT)Gy:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gy:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gy:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gx:QT(Gy:QT)Gx:QT@(QT)  0  0  0
+Gx:QT(Gy:QT)Gy:QT@(QT)  0  0  0
+Gx:QT(Gy:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gx:QT(Gy:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gy:QT(Gy:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gy:QT)Gx:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gy:QT)Gy:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gy:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gy:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gy:QT)Gx:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gy:QT)Gy:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gy:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gy:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gy:QT)Gx:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gy:QT)Gy:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gy:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gy:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gy:QT)Gx:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gy:QT)Gy:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gy:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gy:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gm:QT)Gy:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gm:QT)Gm:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gm:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gm:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gx:QT(Gm:QT)Gy:QT@(QT)  0  0  0
+Gx:QT(Gm:QT)Gm:QT@(QT)  0  0  0
+Gx:QT(Gm:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gx:QT(Gm:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gy:QT(Gm:QT)Gy:QT@(QT)  0  0  0
+Gy:QT(Gm:QT)Gm:QT@(QT)  0  0  0
+Gy:QT(Gm:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gy:QT(Gm:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gm:QT)Gy:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gm:QT)Gm:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gm:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gm:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gm:QT)Gy:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gm:QT)Gm:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gm:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gm:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gm:QT)Gy:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gm:QT)Gm:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gm:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gm:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gm:QT)Gy:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gm:QT)Gm:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gm:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gm:QT)Gm:QTGx:QT@(QT)  0  0  0
+(Gi:QT)^2@(QT)  0  0  0
+(Gi:QT)^2Gx:QT@(QT)  0  0  0
+(Gi:QT)^2Gy:QT@(QT)  0  0  0
+(Gi:QT)^2Gm:QT@(QT)  0  0  0
+(Gi:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+(Gi:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gi:QT)^2@(QT)  0  0  0
+Gm:QTGm:QT(Gi:QT)^2Gx:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gi:QT)^2Gy:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gi:QT)^2Gm:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gi:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gi:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gx:QT(Gi:QT)^2@(QT)  0  0  0
+Gx:QT(Gi:QT)^2Gx:QT@(QT)  0  0  0
+Gx:QT(Gi:QT)^2Gy:QT@(QT)  0  0  0
+Gx:QT(Gi:QT)^2Gm:QT@(QT)  0  0  0
+Gx:QT(Gi:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gx:QT(Gi:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gy:QT(Gi:QT)^2@(QT)  0  0  0
+Gy:QT(Gi:QT)^2Gx:QT@(QT)  0  0  0
+Gy:QT(Gi:QT)^2Gy:QT@(QT)  0  0  0
+Gy:QT(Gi:QT)^2Gm:QT@(QT)  0  0  0
+Gy:QT(Gi:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gy:QT(Gi:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gi:QT)^2@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gi:QT)^2Gx:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gi:QT)^2Gy:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gi:QT)^2Gm:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gi:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gi:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gi:QT)^2@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gi:QT)^2Gx:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gi:QT)^2Gy:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gi:QT)^2Gm:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gi:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gi:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gm:QT(Gi:QT)^2@(QT)  0  0  0
+Gm:QT(Gi:QT)^2Gx:QT@(QT)  0  0  0
+Gm:QT(Gi:QT)^2Gy:QT@(QT)  0  0  0
+Gm:QT(Gi:QT)^2Gm:QT@(QT)  0  0  0
+Gm:QT(Gi:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gm:QT(Gi:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gi:QT)^2@(QT)  0  0  0
+Gm:QTGx:QT(Gi:QT)^2Gx:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gi:QT)^2Gy:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gi:QT)^2Gm:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gi:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gi:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gi:QT)^2@(QT)  0  0  0
+Gm:QTGy:QT(Gi:QT)^2Gx:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gi:QT)^2Gy:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gi:QT)^2Gm:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gi:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gi:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gx:QT)^2Gx:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gx:QT)^2Gy:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gx:QT)^2Gm:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gx:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gx:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gx:QT(Gx:QT)^2Gx:QT@(QT)  0  0  0
+Gx:QT(Gx:QT)^2Gy:QT@(QT)  0  0  0
+Gx:QT(Gx:QT)^2Gm:QT@(QT)  0  0  0
+Gx:QT(Gx:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gx:QT(Gx:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gy:QT(Gx:QT)^2Gx:QT@(QT)  0  0  0
+Gy:QT(Gx:QT)^2Gy:QT@(QT)  0  0  0
+Gy:QT(Gx:QT)^2Gm:QT@(QT)  0  0  0
+Gy:QT(Gx:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gy:QT(Gx:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gx:QT)^2Gx:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gx:QT)^2Gy:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gx:QT)^2Gm:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gx:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gx:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gx:QT)^2Gx:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gx:QT)^2Gy:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gx:QT)^2Gm:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gx:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gx:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gx:QT)^2Gx:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gx:QT)^2Gy:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gx:QT)^2Gm:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gx:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gx:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gx:QT)^2Gx:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gx:QT)^2Gy:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gx:QT)^2Gm:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gx:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gx:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gy:QT)^2Gx:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gy:QT)^2Gy:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gy:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gy:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gx:QT(Gy:QT)^2Gx:QT@(QT)  0  0  0
+Gx:QT(Gy:QT)^2Gy:QT@(QT)  0  0  0
+Gx:QT(Gy:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gx:QT(Gy:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gy:QT)^2Gx:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gy:QT)^2Gy:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gy:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gy:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gy:QT)^2Gx:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gy:QT)^2Gy:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gy:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gy:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gy:QT)^2Gx:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gy:QT)^2Gy:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gy:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gy:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gy:QT)^2Gx:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gy:QT)^2Gy:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gy:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gy:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gm:QT)^2Gy:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gm:QT)^2Gm:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gm:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gm:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gx:QT(Gm:QT)^2Gy:QT@(QT)  0  0  0
+Gx:QT(Gm:QT)^2Gm:QT@(QT)  0  0  0
+Gx:QT(Gm:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gx:QT(Gm:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gy:QT(Gm:QT)^2Gy:QT@(QT)  0  0  0
+Gy:QT(Gm:QT)^2Gm:QT@(QT)  0  0  0
+Gy:QT(Gm:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gy:QT(Gm:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gm:QT)^2Gy:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gm:QT)^2Gm:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gm:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gm:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gm:QT)^2Gy:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gm:QT)^2Gm:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gm:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gm:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gm:QT)^2Gy:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gm:QT)^2Gm:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gm:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gm:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gm:QT)^2Gy:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gm:QT)^2Gm:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gm:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gm:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gx:QTGm:QT)Gy:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gx:QTGm:QT)Gm:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gx:QTGm:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gx:QTGm:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gx:QT(Gx:QTGm:QT)Gy:QT@(QT)  0  0  0
+Gx:QT(Gx:QTGm:QT)Gm:QT@(QT)  0  0  0
+Gx:QT(Gx:QTGm:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gx:QT(Gx:QTGm:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gy:QT(Gx:QTGm:QT)Gy:QT@(QT)  0  0  0
+Gy:QT(Gx:QTGm:QT)Gm:QT@(QT)  0  0  0
+Gy:QT(Gx:QTGm:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gy:QT(Gx:QTGm:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gx:QTGm:QT)Gy:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gx:QTGm:QT)Gm:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gx:QTGm:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gx:QTGm:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gx:QTGm:QT)Gy:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gx:QTGm:QT)Gm:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gx:QTGm:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gx:QTGm:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gx:QTGm:QT)Gy:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gx:QTGm:QT)Gm:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gx:QTGm:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gx:QTGm:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gx:QTGm:QT)Gy:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gx:QTGm:QT)Gm:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gx:QTGm:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gx:QTGm:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gy:QTGm:QT)Gy:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gy:QTGm:QT)Gm:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gy:QTGm:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gy:QTGm:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gx:QT(Gy:QTGm:QT)Gy:QT@(QT)  0  0  0
+Gx:QT(Gy:QTGm:QT)Gm:QT@(QT)  0  0  0
+Gx:QT(Gy:QTGm:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gx:QT(Gy:QTGm:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gy:QT(Gy:QTGm:QT)Gy:QT@(QT)  0  0  0
+Gy:QT(Gy:QTGm:QT)Gm:QT@(QT)  0  0  0
+Gy:QT(Gy:QTGm:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gy:QT(Gy:QTGm:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gy:QTGm:QT)Gy:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gy:QTGm:QT)Gm:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gy:QTGm:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gy:QTGm:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gy:QTGm:QT)Gy:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gy:QTGm:QT)Gm:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gy:QTGm:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gy:QTGm:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gy:QTGm:QT)Gy:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gy:QTGm:QT)Gm:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gy:QTGm:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gy:QTGm:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gy:QTGm:QT)Gy:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gy:QTGm:QT)Gm:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gy:QTGm:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gy:QTGm:QT)Gm:QTGx:QT@(QT)  0  0  0
+(Gi:QT)^4@(QT)  0  0  0
+(Gi:QT)^4Gx:QT@(QT)  0  0  0
+(Gi:QT)^4Gy:QT@(QT)  0  0  0
+(Gi:QT)^4Gm:QT@(QT)  0  0  0
+(Gi:QT)^4Gy:QTGm:QT@(QT)  0  0  0
+(Gi:QT)^4Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gi:QT)^4@(QT)  0  0  0
+Gm:QTGm:QT(Gi:QT)^4Gx:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gi:QT)^4Gy:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gi:QT)^4Gm:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gi:QT)^4Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gi:QT)^4Gm:QTGx:QT@(QT)  0  0  0
+Gx:QT(Gi:QT)^4@(QT)  0  0  0
+Gx:QT(Gi:QT)^4Gx:QT@(QT)  0  0  0
+Gx:QT(Gi:QT)^4Gy:QT@(QT)  0  0  0
+Gx:QT(Gi:QT)^4Gm:QT@(QT)  0  0  0
+Gx:QT(Gi:QT)^4Gy:QTGm:QT@(QT)  0  0  0
+Gx:QT(Gi:QT)^4Gm:QTGx:QT@(QT)  0  0  0
+Gy:QT(Gi:QT)^4@(QT)  0  0  0
+Gy:QT(Gi:QT)^4Gx:QT@(QT)  0  0  0
+Gy:QT(Gi:QT)^4Gy:QT@(QT)  0  0  0
+Gy:QT(Gi:QT)^4Gm:QT@(QT)  0  0  0
+Gy:QT(Gi:QT)^4Gy:QTGm:QT@(QT)  0  0  0
+Gy:QT(Gi:QT)^4Gm:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gi:QT)^4@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gi:QT)^4Gx:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gi:QT)^4Gy:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gi:QT)^4Gm:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gi:QT)^4Gy:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gi:QT)^4Gm:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gi:QT)^4@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gi:QT)^4Gx:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gi:QT)^4Gy:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gi:QT)^4Gm:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gi:QT)^4Gy:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gi:QT)^4Gm:QTGx:QT@(QT)  0  0  0
+Gm:QT(Gi:QT)^4@(QT)  0  0  0
+Gm:QT(Gi:QT)^4Gx:QT@(QT)  0  0  0
+Gm:QT(Gi:QT)^4Gy:QT@(QT)  0  0  0
+Gm:QT(Gi:QT)^4Gm:QT@(QT)  0  0  0
+Gm:QT(Gi:QT)^4Gy:QTGm:QT@(QT)  0  0  0
+Gm:QT(Gi:QT)^4Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gi:QT)^4@(QT)  0  0  0
+Gm:QTGx:QT(Gi:QT)^4Gx:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gi:QT)^4Gy:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gi:QT)^4Gm:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gi:QT)^4Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gi:QT)^4Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gi:QT)^4@(QT)  0  0  0
+Gm:QTGy:QT(Gi:QT)^4Gx:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gi:QT)^4Gy:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gi:QT)^4Gm:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gi:QT)^4Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gi:QT)^4Gm:QTGx:QT@(QT)  0  0  0
+(Gx:QT)^4Gx:QT@(QT)  0  0  0
+(Gx:QT)^4Gy:QT@(QT)  0  0  0
+(Gx:QT)^4Gm:QT@(QT)  0  0  0
+(Gx:QT)^4Gy:QTGm:QT@(QT)  0  0  0
+(Gx:QT)^4Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gx:QT)^4@(QT)  0  0  0
+Gm:QTGm:QT(Gx:QT)^4Gx:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gx:QT)^4Gy:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gx:QT)^4Gm:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gx:QT)^4Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gx:QT)^4Gm:QTGx:QT@(QT)  0  0  0
+Gx:QT(Gx:QT)^4Gx:QT@(QT)  0  0  0
+Gx:QT(Gx:QT)^4Gy:QT@(QT)  0  0  0
+Gx:QT(Gx:QT)^4Gm:QT@(QT)  0  0  0
+Gx:QT(Gx:QT)^4Gy:QTGm:QT@(QT)  0  0  0
+Gx:QT(Gx:QT)^4Gm:QTGx:QT@(QT)  0  0  0
+Gy:QT(Gx:QT)^4@(QT)  0  0  0
+Gy:QT(Gx:QT)^4Gx:QT@(QT)  0  0  0
+Gy:QT(Gx:QT)^4Gy:QT@(QT)  0  0  0
+Gy:QT(Gx:QT)^4Gm:QT@(QT)  0  0  0
+Gy:QT(Gx:QT)^4Gy:QTGm:QT@(QT)  0  0  0
+Gy:QT(Gx:QT)^4Gm:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gx:QT)^4@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gx:QT)^4Gx:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gx:QT)^4Gy:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gx:QT)^4Gm:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gx:QT)^4Gy:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gx:QT)^4Gm:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gx:QT)^4@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gx:QT)^4Gx:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gx:QT)^4Gy:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gx:QT)^4Gm:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gx:QT)^4Gy:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gx:QT)^4Gm:QTGx:QT@(QT)  0  0  0
+Gm:QT(Gx:QT)^4Gx:QT@(QT)  0  0  0
+Gm:QT(Gx:QT)^4Gy:QT@(QT)  0  0  0
+Gm:QT(Gx:QT)^4Gm:QT@(QT)  0  0  0
+Gm:QT(Gx:QT)^4Gy:QTGm:QT@(QT)  0  0  0
+Gm:QT(Gx:QT)^4Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gx:QT)^4Gx:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gx:QT)^4Gy:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gx:QT)^4Gm:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gx:QT)^4Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gx:QT)^4Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gx:QT)^4@(QT)  0  0  0
+Gm:QTGy:QT(Gx:QT)^4Gx:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gx:QT)^4Gy:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gx:QT)^4Gm:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gx:QT)^4Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gx:QT)^4Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gy:QT)^4@(QT)  0  0  0
+Gm:QTGm:QT(Gy:QT)^4Gx:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gy:QT)^4Gy:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gy:QT)^4Gm:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gy:QT)^4Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gy:QT)^4Gm:QTGx:QT@(QT)  0  0  0
+Gx:QT(Gy:QT)^4@(QT)  0  0  0
+Gx:QT(Gy:QT)^4Gx:QT@(QT)  0  0  0
+Gx:QT(Gy:QT)^4Gy:QT@(QT)  0  0  0
+Gx:QT(Gy:QT)^4Gm:QT@(QT)  0  0  0
+Gx:QT(Gy:QT)^4Gy:QTGm:QT@(QT)  0  0  0
+Gx:QT(Gy:QT)^4Gm:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gy:QT)^4@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gy:QT)^4Gx:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gy:QT)^4Gy:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gy:QT)^4Gm:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gy:QT)^4Gy:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gy:QT)^4Gm:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gy:QT)^4@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gy:QT)^4Gx:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gy:QT)^4Gy:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gy:QT)^4Gm:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gy:QT)^4Gy:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gy:QT)^4Gm:QTGx:QT@(QT)  0  0  0
+Gm:QT(Gy:QT)^4Gx:QT@(QT)  0  0  0
+Gm:QT(Gy:QT)^4Gy:QT@(QT)  0  0  0
+Gm:QT(Gy:QT)^4Gy:QTGm:QT@(QT)  0  0  0
+Gm:QT(Gy:QT)^4Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gy:QT)^4@(QT)  0  0  0
+Gm:QTGx:QT(Gy:QT)^4Gx:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gy:QT)^4Gy:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gy:QT)^4Gm:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gy:QT)^4Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gy:QT)^4Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gy:QT)^4Gx:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gy:QT)^4Gy:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gy:QT)^4Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gy:QT)^4Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gm:QT)^4@(QT)  0  0  0
+Gm:QTGm:QT(Gm:QT)^4Gx:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gm:QT)^4Gy:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gm:QT)^4Gm:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gm:QT)^4Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gm:QT)^4Gm:QTGx:QT@(QT)  0  0  0
+Gx:QT(Gm:QT)^4@(QT)  0  0  0
+Gx:QT(Gm:QT)^4Gx:QT@(QT)  0  0  0
+Gx:QT(Gm:QT)^4Gy:QT@(QT)  0  0  0
+Gx:QT(Gm:QT)^4Gm:QT@(QT)  0  0  0
+Gx:QT(Gm:QT)^4Gy:QTGm:QT@(QT)  0  0  0
+Gx:QT(Gm:QT)^4Gm:QTGx:QT@(QT)  0  0  0
+Gy:QT(Gm:QT)^4@(QT)  0  0  0
+Gy:QT(Gm:QT)^4Gx:QT@(QT)  0  0  0
+Gy:QT(Gm:QT)^4Gy:QT@(QT)  0  0  0
+Gy:QT(Gm:QT)^4Gm:QT@(QT)  0  0  0
+Gy:QT(Gm:QT)^4Gy:QTGm:QT@(QT)  0  0  0
+Gy:QT(Gm:QT)^4Gm:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gm:QT)^4@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gm:QT)^4Gx:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gm:QT)^4Gy:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gm:QT)^4Gm:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gm:QT)^4Gy:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gm:QT)^4Gm:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gm:QT)^4@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gm:QT)^4Gx:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gm:QT)^4Gy:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gm:QT)^4Gm:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gm:QT)^4Gy:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gm:QT)^4Gm:QTGx:QT@(QT)  0  0  0
+Gm:QT(Gm:QT)^4Gy:QT@(QT)  0  0  0
+Gm:QT(Gm:QT)^4Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gm:QT)^4@(QT)  0  0  0
+Gm:QTGx:QT(Gm:QT)^4Gx:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gm:QT)^4Gy:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gm:QT)^4Gm:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gm:QT)^4Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gm:QT)^4Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gm:QT)^4@(QT)  0  0  0
+Gm:QTGy:QT(Gm:QT)^4Gx:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gm:QT)^4Gy:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gm:QT)^4Gm:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gm:QT)^4Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gm:QT)^4Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gx:QTGy:QTGy:QT)@(QT)  0  0  0
+Gm:QTGm:QT(Gx:QTGy:QTGy:QT)Gx:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gx:QTGy:QTGy:QT)Gy:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gx:QTGy:QTGy:QT)Gm:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gx:QTGy:QTGy:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gx:QTGy:QTGy:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gx:QT(Gx:QTGy:QTGy:QT)@(QT)  0  0  0
+Gx:QT(Gx:QTGy:QTGy:QT)Gx:QT@(QT)  0  0  0
+Gx:QT(Gx:QTGy:QTGy:QT)Gy:QT@(QT)  0  0  0
+Gx:QT(Gx:QTGy:QTGy:QT)Gm:QT@(QT)  0  0  0
+Gx:QT(Gx:QTGy:QTGy:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gx:QT(Gx:QTGy:QTGy:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gy:QT(Gx:QTGy:QTGy:QT)@(QT)  0  0  0
+Gy:QT(Gx:QTGy:QTGy:QT)Gx:QT@(QT)  0  0  0
+Gy:QT(Gx:QTGy:QTGy:QT)Gy:QT@(QT)  0  0  0
+Gy:QT(Gx:QTGy:QTGy:QT)Gm:QT@(QT)  0  0  0
+Gy:QT(Gx:QTGy:QTGy:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gy:QT(Gx:QTGy:QTGy:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gx:QTGy:QTGy:QT)@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gx:QTGy:QTGy:QT)Gx:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gx:QTGy:QTGy:QT)Gy:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gx:QTGy:QTGy:QT)Gm:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gx:QTGy:QTGy:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gx:QTGy:QTGy:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gx:QTGy:QTGy:QT)@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gx:QTGy:QTGy:QT)Gx:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gx:QTGy:QTGy:QT)Gy:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gx:QTGy:QTGy:QT)Gm:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gx:QTGy:QTGy:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gx:QTGy:QTGy:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gx:QTGy:QTGy:QT)@(QT)  0  0  0
+Gm:QTGx:QT(Gx:QTGy:QTGy:QT)Gx:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gx:QTGy:QTGy:QT)Gy:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gx:QTGy:QTGy:QT)Gm:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gx:QTGy:QTGy:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gx:QTGy:QTGy:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gx:QTGy:QTGy:QT)@(QT)  0  0  0
+Gm:QTGy:QT(Gx:QTGy:QTGy:QT)Gx:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gx:QTGy:QTGy:QT)Gy:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gx:QTGy:QTGy:QT)Gm:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gx:QTGy:QTGy:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gx:QTGy:QTGy:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gy:QTGm:QTGm:QT)Gy:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gy:QTGm:QTGm:QT)Gm:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gy:QTGm:QTGm:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gy:QTGm:QTGm:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gx:QT(Gy:QTGm:QTGm:QT)Gy:QT@(QT)  0  0  0
+Gx:QT(Gy:QTGm:QTGm:QT)Gm:QT@(QT)  0  0  0
+Gx:QT(Gy:QTGm:QTGm:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gx:QT(Gy:QTGm:QTGm:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gy:QT(Gy:QTGm:QTGm:QT)Gy:QT@(QT)  0  0  0
+Gy:QT(Gy:QTGm:QTGm:QT)Gm:QT@(QT)  0  0  0
+Gy:QT(Gy:QTGm:QTGm:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gy:QT(Gy:QTGm:QTGm:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gy:QTGm:QTGm:QT)Gy:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gy:QTGm:QTGm:QT)Gm:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gy:QTGm:QTGm:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gy:QTGm:QTGm:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gy:QTGm:QTGm:QT)Gy:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gy:QTGm:QTGm:QT)Gm:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gy:QTGm:QTGm:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gy:QTGm:QTGm:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gy:QTGm:QTGm:QT)Gy:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gy:QTGm:QTGm:QT)Gm:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gy:QTGm:QTGm:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gy:QTGm:QTGm:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gy:QTGm:QTGm:QT)Gy:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gy:QTGm:QTGm:QT)Gm:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gy:QTGm:QTGm:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gy:QTGm:QTGm:QT)Gm:QTGx:QT@(QT)  0  0  0
+(Gx:QTGm:QT)^2@(QT)  0  0  0
+(Gx:QTGm:QT)^2Gx:QT@(QT)  0  0  0
+(Gx:QTGm:QT)^2Gy:QT@(QT)  0  0  0
+(Gx:QTGm:QT)^2Gm:QT@(QT)  0  0  0
+(Gx:QTGm:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+(Gx:QTGm:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gx:QTGm:QT)^2@(QT)  0  0  0
+Gm:QTGm:QT(Gx:QTGm:QT)^2Gx:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gx:QTGm:QT)^2Gy:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gx:QTGm:QT)^2Gm:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gx:QTGm:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gx:QTGm:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gx:QT(Gx:QTGm:QT)^2@(QT)  0  0  0
+Gx:QT(Gx:QTGm:QT)^2Gx:QT@(QT)  0  0  0
+Gx:QT(Gx:QTGm:QT)^2Gy:QT@(QT)  0  0  0
+Gx:QT(Gx:QTGm:QT)^2Gm:QT@(QT)  0  0  0
+Gx:QT(Gx:QTGm:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gx:QT(Gx:QTGm:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gy:QT(Gx:QTGm:QT)^2@(QT)  0  0  0
+Gy:QT(Gx:QTGm:QT)^2Gx:QT@(QT)  0  0  0
+Gy:QT(Gx:QTGm:QT)^2Gy:QT@(QT)  0  0  0
+Gy:QT(Gx:QTGm:QT)^2Gm:QT@(QT)  0  0  0
+Gy:QT(Gx:QTGm:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gy:QT(Gx:QTGm:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gx:QTGm:QT)^2@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gx:QTGm:QT)^2Gx:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gx:QTGm:QT)^2Gy:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gx:QTGm:QT)^2Gm:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gx:QTGm:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gx:QTGm:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gx:QTGm:QT)^2@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gx:QTGm:QT)^2Gx:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gx:QTGm:QT)^2Gy:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gx:QTGm:QT)^2Gm:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gx:QTGm:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gx:QTGm:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gm:QT(Gx:QTGm:QT)^2@(QT)  0  0  0
+Gm:QT(Gx:QTGm:QT)^2Gx:QT@(QT)  0  0  0
+Gm:QT(Gx:QTGm:QT)^2Gy:QT@(QT)  0  0  0
+Gm:QT(Gx:QTGm:QT)^2Gm:QT@(QT)  0  0  0
+Gm:QT(Gx:QTGm:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gm:QT(Gx:QTGm:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gx:QTGm:QT)^2@(QT)  0  0  0
+Gm:QTGx:QT(Gx:QTGm:QT)^2Gx:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gx:QTGm:QT)^2Gy:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gx:QTGm:QT)^2Gm:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gx:QTGm:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gx:QTGm:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gx:QTGm:QT)^2@(QT)  0  0  0
+Gm:QTGy:QT(Gx:QTGm:QT)^2Gx:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gx:QTGm:QT)^2Gy:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gx:QTGm:QT)^2Gm:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gx:QTGm:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gx:QTGm:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+(Gx:QTGm:QTGy:QT)Gx:QT@(QT)  0  0  0
+(Gx:QTGm:QTGy:QT)Gy:QT@(QT)  0  0  0
+(Gx:QTGm:QTGy:QT)Gy:QTGm:QT@(QT)  0  0  0
+(Gx:QTGm:QTGy:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gx:QTGm:QTGy:QT)Gx:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gx:QTGm:QTGy:QT)Gy:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gx:QTGm:QTGy:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gx:QTGm:QTGy:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gx:QT(Gx:QTGm:QTGy:QT)Gx:QT@(QT)  0  0  0
+Gx:QT(Gx:QTGm:QTGy:QT)Gy:QT@(QT)  0  0  0
+Gx:QT(Gx:QTGm:QTGy:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gx:QT(Gx:QTGm:QTGy:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gy:QT(Gx:QTGm:QTGy:QT)Gx:QT@(QT)  0  0  0
+Gy:QT(Gx:QTGm:QTGy:QT)Gy:QT@(QT)  0  0  0
+Gy:QT(Gx:QTGm:QTGy:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gy:QT(Gx:QTGm:QTGy:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gx:QTGm:QTGy:QT)Gx:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gx:QTGm:QTGy:QT)Gy:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gx:QTGm:QTGy:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gx:QTGm:QTGy:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gx:QTGm:QTGy:QT)Gx:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gx:QTGm:QTGy:QT)Gy:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gx:QTGm:QTGy:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gx:QTGm:QTGy:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gm:QT(Gx:QTGm:QTGy:QT)Gx:QT@(QT)  0  0  0
+Gm:QT(Gx:QTGm:QTGy:QT)Gy:QT@(QT)  0  0  0
+Gm:QT(Gx:QTGm:QTGy:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gm:QT(Gx:QTGm:QTGy:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gx:QTGm:QTGy:QT)Gx:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gx:QTGm:QTGy:QT)Gy:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gx:QTGm:QTGy:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gx:QTGm:QTGy:QT)Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gx:QTGm:QTGy:QT)Gx:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gx:QTGm:QTGy:QT)Gy:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gx:QTGm:QTGy:QT)Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gx:QTGm:QTGy:QT)Gm:QTGx:QT@(QT)  0  0  0
+(Gy:QTGm:QT)^2Gx:QT@(QT)  0  0  0
+(Gy:QTGm:QT)^2Gy:QT@(QT)  0  0  0
+(Gy:QTGm:QT)^2Gm:QT@(QT)  0  0  0
+(Gy:QTGm:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+(Gy:QTGm:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gy:QTGm:QT)^2Gx:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gy:QTGm:QT)^2Gy:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gy:QTGm:QT)^2Gm:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gy:QTGm:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGm:QT(Gy:QTGm:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gx:QT(Gy:QTGm:QT)^2Gx:QT@(QT)  0  0  0
+Gx:QT(Gy:QTGm:QT)^2Gy:QT@(QT)  0  0  0
+Gx:QT(Gy:QTGm:QT)^2Gm:QT@(QT)  0  0  0
+Gx:QT(Gy:QTGm:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gx:QT(Gy:QTGm:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gy:QT(Gy:QTGm:QT)^2Gx:QT@(QT)  0  0  0
+Gy:QT(Gy:QTGm:QT)^2Gy:QT@(QT)  0  0  0
+Gy:QT(Gy:QTGm:QT)^2Gm:QT@(QT)  0  0  0
+Gy:QT(Gy:QTGm:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gy:QT(Gy:QTGm:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gy:QTGm:QT)^2Gx:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gy:QTGm:QT)^2Gy:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gy:QTGm:QT)^2Gm:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gy:QTGm:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGx:QT(Gy:QTGm:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gy:QTGm:QT)^2Gx:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gy:QTGm:QT)^2Gy:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gy:QTGm:QT)^2Gm:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gy:QTGm:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gy:QTGy:QTGy:QT(Gy:QTGm:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gm:QT(Gy:QTGm:QT)^2Gx:QT@(QT)  0  0  0
+Gm:QT(Gy:QTGm:QT)^2Gy:QT@(QT)  0  0  0
+Gm:QT(Gy:QTGm:QT)^2Gm:QT@(QT)  0  0  0
+Gm:QT(Gy:QTGm:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gm:QT(Gy:QTGm:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gy:QTGm:QT)^2Gx:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gy:QTGm:QT)^2Gy:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gy:QTGm:QT)^2Gm:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gy:QTGm:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGx:QT(Gy:QTGm:QT)^2Gm:QTGx:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gy:QTGm:QT)^2Gx:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gy:QTGm:QT)^2Gy:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gy:QTGm:QT)^2Gm:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gy:QTGm:QT)^2Gy:QTGm:QT@(QT)  0  0  0
+Gm:QTGy:QT(Gy:QTGm:QT)^2Gm:QTGx:QT@(QT)  0  0  0
diff --git a/jupyter_notebooks/Tutorials/00-Protocols.ipynb b/jupyter_notebooks/Tutorials/00-Protocols.ipynb
index 933473faf..a6be34b77 100644
--- a/jupyter_notebooks/Tutorials/00-Protocols.ipynb
+++ b/jupyter_notebooks/Tutorials/00-Protocols.ipynb
@@ -67,10 +67,10 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "from pygsti.modelpacks import smq1Q_XYI\n",
+    "from pygsti.modelpacks import smq1Q_XY\n",
     "\n",
     "# get experiment design\n",
-    "exp_design = smq1Q_XYI.create_gst_experiment_design(max_max_length=32)  \n",
+    "exp_design = smq1Q_XY.create_gst_experiment_design(max_max_length=316)  \n",
     "\n",
     "# write an empty data object (creates a template to fill in)\n",
     "pygsti.io.write_empty_protocol_data('tutorial_files/test_gst_dir', exp_design, clobber_ok=True)\n",
@@ -78,7 +78,7 @@
     "# fill in the template with simulated data (you would run the experiment and use actual data)\n",
     "pygsti.io.fill_in_empty_dataset_with_fake_data(\n",
     "    \"tutorial_files/test_gst_dir/data/dataset.txt\",\n",
-    "    smq1Q_XYI.target_model().depolarize(op_noise=0.01, spam_noise=0.001),\n",
+    "    smq1Q_XY.target_model().depolarize(op_noise=0.01, spam_noise=0.001),\n",
     "    num_samples=1000, seed=1234)\n",
     "\n",
     "# load the data object back in, now with the experimental data\n",
@@ -230,7 +230,7 @@
    "outputs": [],
    "source": [
     "# An experiment design\n",
-    "from pygsti.modelpacks import smq1Q_Xpi2_rpe, smq1Q_XYI\n",
+    "from pygsti.modelpacks import smq1Q_Xpi2_rpe, smq1Q_XY\n",
     "exp_design = smq1Q_Xpi2_rpe.create_rpe_experiment_design(max_max_length=64)\n",
     "\n",
     "# write an empty data object (creates a template to fill in)\n",
@@ -239,7 +239,7 @@
     "# fill in the template with simulated data (you would run the experiment and use actual data)\n",
     "pygsti.io.fill_in_empty_dataset_with_fake_data(\n",
     "    \"tutorial_files/test_rpe_dir/data/dataset.txt\",\n",
-    "    smq1Q_XYI.target_model().depolarize(op_noise=0.01, spam_noise=0.1),\n",
+    "    smq1Q_XY.target_model().depolarize(op_noise=0.01, spam_noise=0.1),\n",
     "    num_samples=1000, seed=1234)\n",
     "\n",
     "# read the data object back in, now with the experimental data\n",
@@ -273,12 +273,12 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "from pygsti.modelpacks import smq1Q_XYI\n",
-    "exp_design = smq1Q_XYI.create_gst_experiment_design(max_max_length=4)\n",
+    "from pygsti.modelpacks import smq1Q_XY\n",
+    "exp_design = smq1Q_XY.create_gst_experiment_design(max_max_length=4)\n",
     "pygsti.io.write_empty_protocol_data('tutorial_files/test_drift_dir', exp_design, clobber_ok=True)\n",
     "\n",
     "# Simulate time dependent data (right now, this just uses a time-independent model so this is uninteresting)                                                       \n",
-    "datagen_model = smq1Q_XYI.target_model().depolarize(op_noise=0.05, spam_noise=0.1)\n",
+    "datagen_model = smq1Q_XY.target_model().depolarize(op_noise=0.05, spam_noise=0.1)\n",
     "datagen_model.sim = \"map\" # only map-type can generate time-dep data\n",
     "                          # can also construct this as target_model(simulator=\"map\") above\n",
     "pygsti.io.fill_in_empty_dataset_with_fake_data('tutorial_files/test_drift_dir/data/dataset.txt',\n",
@@ -318,7 +318,7 @@
  ],
  "metadata": {
   "kernelspec": {
-   "display_name": "Python 3",
+   "display_name": "Python 3 (ipykernel)",
    "language": "python",
    "name": "python3"
   },
@@ -332,9 +332,9 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.10.10"
+   "version": "3.9.13"
   }
  },
  "nbformat": 4,
- "nbformat_minor": 2
+ "nbformat_minor": 4
 }
diff --git a/jupyter_notebooks/Tutorials/algorithms/DriftCharacterization.ipynb b/jupyter_notebooks/Tutorials/algorithms/DriftCharacterization.ipynb
index 7054552d4..d91c2d464 100644
--- a/jupyter_notebooks/Tutorials/algorithms/DriftCharacterization.ipynb
+++ b/jupyter_notebooks/Tutorials/algorithms/DriftCharacterization.ipynb
@@ -31,7 +31,7 @@
    "metadata": {},
    "source": [
     "## Quick and Easy Analysis\n",
-    "First we import some *time-stamped* data. For more information on the mechanics of using time-stamped `DataSets` see the [TimestampedDataSets](../objects/advanced/TimestampedDataSets.ipynb) tutorial. The data we are importing is from long-sequence GST on $G_i$, $G_x$, and $G_y$ with time-dependent coherent errors on the gates.\n",
+    "First we import some *time-stamped* data. For more information on the mechanics of using time-stamped `DataSets` see the [TimestampedDataSets](../objects/advanced/TimestampedDataSets.ipynb) tutorial. The data we are importing is from long-sequence GST on $G_x$, and $G_y$ with time-dependent coherent errors on the gates.\n",
     "\n",
     "We load the time-dependent data from the `timestamped_dataset.txt` file included with pyGSTi, and then build a `ProtocolData` object out of it so it can be used as input for `Protocol` objects.  We can pass `None` as the experiment design when constructing `data` because the stability analysis doesn't require any special structure to the circuits - it just requires the data to have timestamps."
    ]
@@ -46,21 +46,25 @@
     "\n",
     "# Construct a basic ExplicitModel for the experiment design\n",
     "model = pygsti.models.create_explicit_model_from_expressions(\n",
-    "    ['Q0'], ['Gi','Gx','Gy'],\n",
-    "    [ \"I(Q0)\",\"X(pi/2,Q0)\", \"Y(pi/2,Q0)\"] )\n",
+    "    ['Q0'], ['Gx','Gy'],\n",
+    "    [ \"X(pi/2,Q0)\", \"Y(pi/2,Q0)\"] )\n",
     "\n",
     "# This manually specifies the germ and fiducial structure for the imported data.\n",
-    "fiducial_strs = ['{}','Gx','Gy','GxGx','GxGxGx','GyGyGy']\n",
-    "germ_strs = ['Gi','Gx','Gy','GxGy','GxGyGi','GxGiGy','GxGiGi','GyGiGi','GxGxGiGy','GxGyGyGi','GxGxGyGxGyGy']\n",
-    "log2maxL = 9 # log2 of the maximum germ power\n",
+    "prep_fiducials = ['{}','Gx','Gy','GxGx']\n",
+    "meas_fiducials = ['{}','Gx','Gy']\n",
+    "\n",
+    "germ_strs = ['Gx','Gy','GxGy','GxGxGyGxGyGy']\n",
+    "log2maxL = 7 # log2 of the maximum germ power\n",
     "\n",
     "# Below we use the maxlength, germ and fiducial lists to create the GST structures needed for box plots.\n",
-    "fiducials = [pygsti.circuits.Circuit(fs) for fs in fiducial_strs]\n",
+    "prep_fiducials = [pygsti.circuits.Circuit(fs) for fs in prep_fiducials]\n",
+    "meas_fiducials = [pygsti.circuits.Circuit(fs) for fs in meas_fiducials]\n",
     "germs = [pygsti.circuits.Circuit(g) for g in germ_strs]\n",
-    "max_lengths = [2**i for i in range(0,log2maxL)]\n",
-    "exp_design = pygsti.protocols.StandardGSTDesign(model, fiducials, fiducials, germs, max_lengths)\n",
+    "max_lengths = [2**i for i in range(0,log2maxL+1)]\n",
+    "exp_design = pygsti.protocols.StandardGSTDesign(model, prep_fiducials, meas_fiducials, germs, max_lengths)\n",
     "\n",
     "ds = pygsti.io.load_dataset(\"../tutorial_files/timestamped_dataset.txt\")  # a DataSet\n",
+    "ds = ds.truncate(list(exp_design.all_circuits_needing_data))\n",
     "data = pygsti.protocols.ProtocolData(exp_design, ds)"
    ]
   },
@@ -77,6 +81,7 @@
    "metadata": {},
    "outputs": [],
    "source": [
+    "%%time\n",
     "protocol = pygsti.protocols.StabilityAnalysis()\n",
     "results = protocol.run(data)"
    ]
@@ -106,6 +111,13 @@
     "print(results.stabilityanalyzer)"
    ]
   },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "NOTE: In notebook display of report figures does not work in jupyterlab due to restrictions on running javascript. Please use classic jupyter notebook if this is desired."
+   ]
+  },
   {
    "cell_type": "code",
    "execution_count": null,
@@ -166,7 +178,7 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "spectrumlabel = {'circuit':pygsti.circuits.Circuit('Gx(Gi)^128')}\n",
+    "spectrumlabel = {'circuit':pygsti.circuits.Circuit('(Gx)^128')}\n",
     "print(\"significant frequencies: \", results.instability_frequencies(spectrumlabel))\n",
     "w.PowerSpectraPlot(results, spectrumlabel)"
    ]
@@ -205,7 +217,7 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "circuits = {L: pygsti.circuits.Circuit(None,stringrep='Gx(Gi)^'+str(L)+'Gx') for L in [1,2,4,16,64,128,256]}\n",
+    "circuits = {L: pygsti.circuits.Circuit(None,stringrep='Gx(Gx)^'+str(L)+'Gx') for L in [1,2,4,16,64,128]}\n",
     "w.PowerSpectraPlot(results, {'circuit':circuits}, showlegend=True)"
    ]
   },
@@ -221,12 +233,10 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "metadata": {
-    "scrolled": false
-   },
+   "metadata": {},
    "outputs": [],
    "source": [
-    "circuit = pygsti.circuits.Circuit(None, stringrep= 'Gx(Gi)^256GxGxGx')\n",
+    "circuit = pygsti.circuits.Circuit(None, stringrep= 'Gx(Gx)^128Gx')\n",
     "w.ProbTrajectoriesPlot(results.stabilityanalyzer, circuit, ('1',))"
    ]
   },
@@ -281,8 +291,8 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "w.GermFiducialPowerSpectraPlot(results, 'Gy', 'Gi', 'Gx', showlegend=True)\n",
-    "w.GermFiducialProbTrajectoriesPlot(results, 'Gy', 'Gi', 'Gx', ('0',), showlegend=True)"
+    "w.GermFiducialPowerSpectraPlot(results, 'Gy', 'Gx', 'Gx', showlegend=True)\n",
+    "w.GermFiducialProbTrajectoriesPlot(results, 'Gy', 'Gx', 'Gx', ('0',), showlegend=True)"
    ]
   },
   {
@@ -298,8 +308,8 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "circuits256 = exp_design.circuit_lists[-1] # Pull out circuits up to max L (256)\n",
-    "w.ColorBoxPlot('driftdetector', circuits256, None, None, stabilityanalyzer=results.stabilityanalyzer)"
+    "circuits128 = exp_design.circuit_lists[-1] # Pull out circuits up to max L\n",
+    "w.ColorBoxPlot('driftdetector', circuits128, None, None, stabilityanalyzer=results.stabilityanalyzer)"
    ]
   },
   {
@@ -318,7 +328,7 @@
    "outputs": [],
    "source": [
     "# Create a boxplot of the maximum power in the power spectra for each sequence.\n",
-    "w.ColorBoxPlot('driftsize', circuits256, None, None, stabilityanalyzer=results.stabilityanalyzer)"
+    "w.ColorBoxPlot('driftsize', circuits128, None, None, stabilityanalyzer=results.stabilityanalyzer)"
    ]
   },
   {
@@ -348,9 +358,9 @@
  ],
  "metadata": {
   "kernelspec": {
-   "display_name": "Python 3",
+   "display_name": "api_updates",
    "language": "python",
-   "name": "python3"
+   "name": "api_updates"
   },
   "language_info": {
    "codemirror_mode": {
@@ -362,9 +372,9 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.8.5"
+   "version": "3.9.13"
   }
  },
  "nbformat": 4,
- "nbformat_minor": 2
+ "nbformat_minor": 4
 }
diff --git a/jupyter_notebooks/Tutorials/algorithms/GST-Driverfunctions.ipynb b/jupyter_notebooks/Tutorials/algorithms/GST-Driverfunctions.ipynb
index 337b37600..59a91563c 100644
--- a/jupyter_notebooks/Tutorials/algorithms/GST-Driverfunctions.ipynb
+++ b/jupyter_notebooks/Tutorials/algorithms/GST-Driverfunctions.ipynb
@@ -37,7 +37,7 @@
    "metadata": {},
    "source": [
     "### Setup\n",
-    "First, we set our desired *target model* to be the standard $I$, $X(\\pi/2)$, $Y(\\pi/2)$ model that we've been using in many of these tutorials, and use the standard fiducial and germ sequences needed to generate the GST operation sequences (see the [standard module tutorial](../objects/advanced/StandardModules.ipynb)).  We also specify a list of maximum lengths.  We'll analyze the simulated data generated in the [DataSet tutorial](../objects/DataSet.ipynb), so you'll need to run that tutorial if you haven't already."
+    "First, we set our desired *target model* to be the standard $X(\\pi/2)$, $Y(\\pi/2)$ model that we've been using in many of these tutorials, and use the standard fiducial and germ sequences needed to generate the GST operation sequences (see the [standard module tutorial](../objects/advanced/StandardModules.ipynb)).  We also specify a list of maximum lengths.  We'll analyze the simulated data generated in the [DataSet tutorial](../objects/DataSet.ipynb), so you'll need to run that tutorial if you haven't already."
    ]
   },
   {
@@ -64,12 +64,12 @@
     }
    ],
    "source": [
-    "from pygsti.modelpacks import smq1Q_XYI\n",
-    "target_model = smq1Q_XYI.target_model()\n",
-    "prep_fiducials, meas_fiducials = smq1Q_XYI.prep_fiducials(), smq1Q_XYI.meas_fiducials()\n",
-    "germs = smq1Q_XYI.germs()\n",
+    "from pygsti.modelpacks import smq1Q_XY\n",
+    "target_model = smq1Q_XY.target_model()\n",
+    "prep_fiducials, meas_fiducials = smq1Q_XY.prep_fiducials(), smq1Q_XY.meas_fiducials()\n",
+    "germs = smq1Q_XY.germs()\n",
     "\n",
-    "maxLengths = [1,2,4,8,16,32]\n",
+    "maxLengths = [1,2,4,8,16]\n",
     "\n",
     "ds = pygsti.io.load_dataset(\"../tutorial_files/Example_Dataset.txt\", cache=True)"
    ]
@@ -258,7 +258,7 @@
    "outputs": [],
    "source": [
     "my_goparams = { 'item_weights': {'gates': 1.0, 'spam': 0.001} }\n",
-    "my_gaugeOptTarget= smq1Q_XYI.target_model('full TP')\n",
+    "my_gaugeOptTarget= smq1Q_XY.target_model('full TP')\n",
     "my_gaugeOptTarget = my_gaugeOptTarget.depolarize(op_noise=0.005, spam_noise=0.01) # a guess at what estimate should be\n",
     "results_stdprac_customgo = pygsti.run_stdpractice_gst(\n",
     "    ds, target_model, prep_fiducials, meas_fiducials, germs, maxLengths,\n",
diff --git a/jupyter_notebooks/Tutorials/algorithms/GST-Overview-functionbased.ipynb b/jupyter_notebooks/Tutorials/algorithms/GST-Overview-functionbased.ipynb
index fd8ef5b49..c96a89922 100644
--- a/jupyter_notebooks/Tutorials/algorithms/GST-Overview-functionbased.ipynb
+++ b/jupyter_notebooks/Tutorials/algorithms/GST-Overview-functionbased.ipynb
@@ -15,7 +15,7 @@
     "\n",
     "To run GST, we need three inputs:\n",
     "1. a \"**target model**\" which describes the desired, or ideal, operations we want our experimental hardware to perform.  In the example below, we use one of pyGSTi's build-in \"model packs\" (see the [tutorial on model packs](objects/advanced/ModelPacks.ipynb)) - which acts on a single qubit with the following operations:\n",
-    "    - three gates: the identity, and $\\pi/2$ rotations around the $x$- and $y$-axes.\n",
+    "    - two gates: $\\pi/2$ rotations around the $x$- and $y$-axes.\n",
     "    - a single state preparation in the $|0\\rangle$ state.\n",
     "    - a 2-outcome measurement with the label \"0\" associated with measuring $|0\\rangle$ and \"1\" with measuring $|1\\rangle$.\n",
     "    \n",
@@ -26,21 +26,21 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 1,
+   "execution_count": null,
    "metadata": {},
    "outputs": [],
    "source": [
     "#Import the pygsti module (always do this) and the XYI model pack\n",
     "import pygsti\n",
-    "from pygsti.modelpacks import smq1Q_XYI\n",
+    "from pygsti.modelpacks import smq1Q_XY\n",
     "\n",
     "# 1) get the target Model\n",
-    "target_model = smq1Q_XYI.target_model()\n",
+    "target_model = smq1Q_XY.target_model()\n",
     "\n",
     "# 2) get the building blocks needed to specify which operation sequences are needed\n",
-    "prep_fiducials, meas_fiducials = smq1Q_XYI.prep_fiducials(), smq1Q_XYI.meas_fiducials()\n",
-    "germs = smq1Q_XYI.germs()\n",
-    "maxLengths = [1,2,4,8,16,32] # roughly gives the length of the sequences used by GST\n",
+    "prep_fiducials, meas_fiducials = smq1Q_XY.prep_fiducials(), smq1Q_XY.meas_fiducials()\n",
+    "germs = smq1Q_XY.germs()\n",
+    "maxLengths = [1,2,4,8,16] # roughly gives the length of the sequences used by GST\n",
     "\n",
     "# 3) generate \"fake\" data from a depolarized version of target_model\n",
     "mdl_datagen = target_model.depolarize(op_noise=0.01, spam_noise=0.001)\n",
@@ -68,217 +68,11 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 2,
+   "execution_count": null,
    "metadata": {
     "scrolled": true
    },
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "--- Circuit Creation ---\n",
-      "   784 circuits created\n",
-      "   Dataset has 784 entries: 784 utilized, 0 requested circuits were missing\n",
-      "-- Std Practice:  Iter 1 of 3  (full TP) --: \n",
-      "  --- Iterative GST: Iter 1 of 6  92 circuits ---: \n",
-      "    MatrixLayout: 1 processors divided into 1 x 1 (= 1) grid along circuit and parameter directions.\n",
-      "       1 atoms, parameter block size limits (None,)\n",
-      "    *** Distributing 1 atoms to 1 atom-processing groups (1 cores) ***\n",
-      "        More atom-processors than hosts: each host gets ~1 atom-processors\n",
-      "        Atom-processors already occupy a single node, dividing atom-processor into 1 param-processors.\n",
-      "    *** Divided 1-host atom-processor (~1 procs) into 1 param-processing groups ***\n",
-      "    --- chi2 GST ---\n",
-      "    Sum of Chi^2 = 80.4914 (92 data params - 43 (approx) model params = expected mean of 49; p-value = 0.00305059)\n",
-      "    Completed in 0.3s\n",
-      "    Iteration 1 took 0.3s\n",
-      "    \n",
-      "  --- Iterative GST: Iter 2 of 6  168 circuits ---: \n",
-      "    MatrixLayout: 1 processors divided into 1 x 1 (= 1) grid along circuit and parameter directions.\n",
-      "       1 atoms, parameter block size limits (None,)\n",
-      "    *** Distributing 1 atoms to 1 atom-processing groups (1 cores) ***\n",
-      "        More atom-processors than hosts: each host gets ~1 atom-processors\n",
-      "        Atom-processors already occupy a single node, dividing atom-processor into 1 param-processors.\n",
-      "    *** Divided 1-host atom-processor (~1 procs) into 1 param-processing groups ***\n",
-      "    --- chi2 GST ---\n",
-      "    Sum of Chi^2 = 147.984 (168 data params - 43 (approx) model params = expected mean of 125; p-value = 0.0785975)\n",
-      "    Completed in 0.2s\n",
-      "    Iteration 2 took 0.3s\n",
-      "    \n",
-      "  --- Iterative GST: Iter 3 of 6  285 circuits ---: \n",
-      "    MatrixLayout: 1 processors divided into 1 x 1 (= 1) grid along circuit and parameter directions.\n",
-      "       1 atoms, parameter block size limits (None,)\n",
-      "    *** Distributing 1 atoms to 1 atom-processing groups (1 cores) ***\n",
-      "        More atom-processors than hosts: each host gets ~1 atom-processors\n",
-      "        Atom-processors already occupy a single node, dividing atom-processor into 1 param-processors.\n",
-      "    *** Divided 1-host atom-processor (~1 procs) into 1 param-processing groups ***\n",
-      "    --- chi2 GST ---\n",
-      "    Sum of Chi^2 = 263.377 (285 data params - 43 (approx) model params = expected mean of 242; p-value = 0.16489)\n",
-      "    Completed in 0.3s\n",
-      "    Iteration 3 took 0.4s\n",
-      "    \n",
-      "  --- Iterative GST: Iter 4 of 6  448 circuits ---: \n",
-      "    MatrixLayout: 1 processors divided into 1 x 1 (= 1) grid along circuit and parameter directions.\n",
-      "       1 atoms, parameter block size limits (None,)\n",
-      "    *** Distributing 1 atoms to 1 atom-processing groups (1 cores) ***\n",
-      "        More atom-processors than hosts: each host gets ~1 atom-processors\n",
-      "        Atom-processors already occupy a single node, dividing atom-processor into 1 param-processors.\n",
-      "    *** Divided 1-host atom-processor (~1 procs) into 1 param-processing groups ***\n",
-      "    --- chi2 GST ---\n",
-      "    Sum of Chi^2 = 402.715 (448 data params - 43 (approx) model params = expected mean of 405; p-value = 0.522733)\n",
-      "    Completed in 0.3s\n",
-      "    Iteration 4 took 0.5s\n",
-      "    \n",
-      "  --- Iterative GST: Iter 5 of 6  616 circuits ---: \n",
-      "    MatrixLayout: 1 processors divided into 1 x 1 (= 1) grid along circuit and parameter directions.\n",
-      "       1 atoms, parameter block size limits (None,)\n",
-      "    *** Distributing 1 atoms to 1 atom-processing groups (1 cores) ***\n",
-      "        More atom-processors than hosts: each host gets ~1 atom-processors\n",
-      "        Atom-processors already occupy a single node, dividing atom-processor into 1 param-processors.\n",
-      "    *** Divided 1-host atom-processor (~1 procs) into 1 param-processing groups ***\n",
-      "    --- chi2 GST ---\n",
-      "    Sum of Chi^2 = 574.5 (616 data params - 43 (approx) model params = expected mean of 573; p-value = 0.474504)\n",
-      "    Completed in 0.4s\n",
-      "    Iteration 5 took 0.7s\n",
-      "    \n",
-      "  --- Iterative GST: Iter 6 of 6  784 circuits ---: \n",
-      "    MatrixLayout: 1 processors divided into 1 x 1 (= 1) grid along circuit and parameter directions.\n",
-      "       1 atoms, parameter block size limits (None,)\n",
-      "    *** Distributing 1 atoms to 1 atom-processing groups (1 cores) ***\n",
-      "        More atom-processors than hosts: each host gets ~1 atom-processors\n",
-      "        Atom-processors already occupy a single node, dividing atom-processor into 1 param-processors.\n",
-      "    *** Divided 1-host atom-processor (~1 procs) into 1 param-processing groups ***\n",
-      "    --- chi2 GST ---\n",
-      "    Sum of Chi^2 = 731.437 (784 data params - 43 (approx) model params = expected mean of 741; p-value = 0.591788)\n",
-      "    Completed in 0.5s\n",
-      "    Iteration 6 took 0.9s\n",
-      "    \n",
-      "    Last iteration:\n",
-      "    --- dlogl GST ---\n",
-      "    2*Delta(log(L)) = 733.924 (784 data params - 43 (approx) model params = expected mean of 741; p-value = 0.566338)\n",
-      "    Completed in 1.5s\n",
-      "    Final optimization took 1.6s\n",
-      "    \n",
-      "  Iterative GST Total Time: 4.7s\n",
-      "-- Std Practice:  Iter 2 of 3  (CPTP) --: \n",
-      "  --- Iterative GST: Iter 1 of 6  92 circuits ---: \n",
-      "    MatrixLayout: 1 processors divided into 1 x 1 (= 1) grid along circuit and parameter directions.\n",
-      "       1 atoms, parameter block size limits (None,)\n",
-      "    *** Distributing 1 atoms to 1 atom-processing groups (1 cores) ***\n",
-      "        More atom-processors than hosts: each host gets ~1 atom-processors\n",
-      "        Atom-processors already occupy a single node, dividing atom-processor into 1 param-processors.\n",
-      "    *** Divided 1-host atom-processor (~1 procs) into 1 param-processing groups ***\n",
-      "    --- chi2 GST ---\n",
-      "    Sum of Chi^2 = 83.4926 (92 data params - 60 (approx) model params = expected mean of 32; p-value = 1.76926e-06)\n",
-      "    Completed in 7.2s\n",
-      "    Iteration 1 took 7.2s\n",
-      "    \n",
-      "  --- Iterative GST: Iter 2 of 6  168 circuits ---: \n",
-      "    MatrixLayout: 1 processors divided into 1 x 1 (= 1) grid along circuit and parameter directions.\n",
-      "       1 atoms, parameter block size limits (None,)\n",
-      "    *** Distributing 1 atoms to 1 atom-processing groups (1 cores) ***\n",
-      "        More atom-processors than hosts: each host gets ~1 atom-processors\n",
-      "        Atom-processors already occupy a single node, dividing atom-processor into 1 param-processors.\n",
-      "    *** Divided 1-host atom-processor (~1 procs) into 1 param-processing groups ***\n",
-      "    --- chi2 GST ---\n",
-      "    Sum of Chi^2 = 148.066 (168 data params - 60 (approx) model params = expected mean of 108; p-value = 0.00636252)\n",
-      "    Completed in 6.1s\n",
-      "    Iteration 2 took 6.2s\n",
-      "    \n",
-      "  --- Iterative GST: Iter 3 of 6  285 circuits ---: \n",
-      "    MatrixLayout: 1 processors divided into 1 x 1 (= 1) grid along circuit and parameter directions.\n",
-      "       1 atoms, parameter block size limits (None,)\n",
-      "    *** Distributing 1 atoms to 1 atom-processing groups (1 cores) ***\n",
-      "        More atom-processors than hosts: each host gets ~1 atom-processors\n",
-      "        Atom-processors already occupy a single node, dividing atom-processor into 1 param-processors.\n",
-      "    *** Divided 1-host atom-processor (~1 procs) into 1 param-processing groups ***\n",
-      "    --- chi2 GST ---\n",
-      "    Sum of Chi^2 = 263.563 (285 data params - 60 (approx) model params = expected mean of 225; p-value = 0.0396886)\n",
-      "    Completed in 3.0s\n",
-      "    Iteration 3 took 3.1s\n",
-      "    \n",
-      "  --- Iterative GST: Iter 4 of 6  448 circuits ---: \n",
-      "    MatrixLayout: 1 processors divided into 1 x 1 (= 1) grid along circuit and parameter directions.\n",
-      "       1 atoms, parameter block size limits (None,)\n",
-      "    *** Distributing 1 atoms to 1 atom-processing groups (1 cores) ***\n",
-      "        More atom-processors than hosts: each host gets ~1 atom-processors\n",
-      "        Atom-processors already occupy a single node, dividing atom-processor into 1 param-processors.\n",
-      "    *** Divided 1-host atom-processor (~1 procs) into 1 param-processing groups ***\n",
-      "    --- chi2 GST ---\n",
-      "    Sum of Chi^2 = 405.54 (448 data params - 60 (approx) model params = expected mean of 388; p-value = 0.25971)\n",
-      "    Completed in 2.5s\n",
-      "    Iteration 4 took 2.7s\n",
-      "    \n",
-      "  --- Iterative GST: Iter 5 of 6  616 circuits ---: \n",
-      "    MatrixLayout: 1 processors divided into 1 x 1 (= 1) grid along circuit and parameter directions.\n",
-      "       1 atoms, parameter block size limits (None,)\n",
-      "    *** Distributing 1 atoms to 1 atom-processing groups (1 cores) ***\n",
-      "        More atom-processors than hosts: each host gets ~1 atom-processors\n",
-      "        Atom-processors already occupy a single node, dividing atom-processor into 1 param-processors.\n"
-     ]
-    },
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "    *** Divided 1-host atom-processor (~1 procs) into 1 param-processing groups ***\n",
-      "    --- chi2 GST ---\n",
-      "    Sum of Chi^2 = 616.91 (616 data params - 60 (approx) model params = expected mean of 556; p-value = 0.0372415)\n",
-      "    Completed in 6.6s\n",
-      "    Iteration 5 took 6.8s\n",
-      "    \n",
-      "  --- Iterative GST: Iter 6 of 6  784 circuits ---: \n",
-      "    MatrixLayout: 1 processors divided into 1 x 1 (= 1) grid along circuit and parameter directions.\n",
-      "       1 atoms, parameter block size limits (None,)\n",
-      "    *** Distributing 1 atoms to 1 atom-processing groups (1 cores) ***\n",
-      "        More atom-processors than hosts: each host gets ~1 atom-processors\n",
-      "        Atom-processors already occupy a single node, dividing atom-processor into 1 param-processors.\n",
-      "    *** Divided 1-host atom-processor (~1 procs) into 1 param-processing groups ***\n",
-      "    --- chi2 GST ---\n",
-      "    Sum of Chi^2 = 835.363 (784 data params - 60 (approx) model params = expected mean of 724; p-value = 0.00250815)\n",
-      "    Completed in 8.6s\n",
-      "    Iteration 6 took 8.8s\n",
-      "    \n",
-      "    Last iteration:\n",
-      "    --- dlogl GST ---\n",
-      "    2*Delta(log(L)) = 837.281 (784 data params - 60 (approx) model params = expected mean of 724; p-value = 0.00217365)\n",
-      "    Completed in 1.1s\n",
-      "    Final optimization took 1.1s\n",
-      "    \n",
-      "  Iterative GST Total Time: 36.0s\n",
-      "-- Std Practice:  Iter 3 of 3  (Target) --: \n",
-      "    MatrixLayout: 1 processors divided into 1 (= 1) grid along circuit and parameter directions.\n",
-      "       1 atoms, parameter block size limits ()\n",
-      "    *** Distributing 1 atoms to 1 atom-processing groups (1 cores) ***\n",
-      "        More atom-processors than hosts: each host gets ~1 atom-processors\n",
-      "    MatrixLayout: 1 processors divided into 1 (= 1) grid along circuit and parameter directions.\n",
-      "       1 atoms, parameter block size limits ()\n",
-      "    *** Distributing 1 atoms to 1 atom-processing groups (1 cores) ***\n",
-      "        More atom-processors than hosts: each host gets ~1 atom-processors\n",
-      "    MatrixLayout: 1 processors divided into 1 (= 1) grid along circuit and parameter directions.\n",
-      "       1 atoms, parameter block size limits ()\n",
-      "    *** Distributing 1 atoms to 1 atom-processing groups (1 cores) ***\n",
-      "        More atom-processors than hosts: each host gets ~1 atom-processors\n",
-      "    MatrixLayout: 1 processors divided into 1 (= 1) grid along circuit and parameter directions.\n",
-      "       1 atoms, parameter block size limits ()\n",
-      "    *** Distributing 1 atoms to 1 atom-processing groups (1 cores) ***\n",
-      "        More atom-processors than hosts: each host gets ~1 atom-processors\n",
-      "    MatrixLayout: 1 processors divided into 1 (= 1) grid along circuit and parameter directions.\n",
-      "       1 atoms, parameter block size limits ()\n",
-      "    *** Distributing 1 atoms to 1 atom-processing groups (1 cores) ***\n",
-      "        More atom-processors than hosts: each host gets ~1 atom-processors\n",
-      "    MatrixLayout: 1 processors divided into 1 (= 1) grid along circuit and parameter directions.\n",
-      "       1 atoms, parameter block size limits ()\n",
-      "    *** Distributing 1 atoms to 1 atom-processing groups (1 cores) ***\n",
-      "        More atom-processors than hosts: each host gets ~1 atom-processors\n",
-      "Running idle tomography\n",
-      "Computing switchable properties\n",
-      "Found standard clifford compilation from smq1Q_XYI\n",
-      "Found standard clifford compilation from smq1Q_XYI\n",
-      "Found standard clifford compilation from smq1Q_XYI\n"
-     ]
-    }
-   ],
+   "outputs": [],
    "source": [
     "#Run GST and create a report\n",
     "results = pygsti.run_stdpractice_gst(ds, target_model, prep_fiducials, meas_fiducials, \n",
@@ -308,7 +102,7 @@
  ],
  "metadata": {
   "kernelspec": {
-   "display_name": "Python 3",
+   "display_name": "Python 3 (ipykernel)",
    "language": "python",
    "name": "python3"
   },
@@ -322,9 +116,9 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.8.5"
+   "version": "3.9.13"
   }
  },
  "nbformat": 4,
- "nbformat_minor": 1
+ "nbformat_minor": 4
 }
diff --git a/jupyter_notebooks/Tutorials/algorithms/GST-Overview.ipynb b/jupyter_notebooks/Tutorials/algorithms/GST-Overview.ipynb
index 932b5fd88..c2397edcc 100644
--- a/jupyter_notebooks/Tutorials/algorithms/GST-Overview.ipynb
+++ b/jupyter_notebooks/Tutorials/algorithms/GST-Overview.ipynb
@@ -20,7 +20,7 @@
     "\n",
     "To run GST, we need the following three inputs:\n",
     "1. a \"**target model**\" which describes the desired, or ideal, operations we want our experimental hardware to perform.  In the example below, we use the target model from one of pyGSTi's build-in \"model packs\" (see the [tutorial on model packs](objects/advanced/ModelPacks.ipynb)) - which acts on a single qubit with the following operations:\n",
-    "    - three gates: the identity, and $\\pi/2$ rotations around the $x$- and $y$-axes.\n",
+    "    - two gates: $\\pi/2$ rotations around the $x$- and $y$-axes.\n",
     "    - a single state preparation in the $|0\\rangle$ state.\n",
     "    - a 2-outcome measurement with the label \"0\" associated with measuring $|0\\rangle$ and \"1\" with measuring $|1\\rangle$.\n",
     "    \n",
@@ -35,19 +35,19 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 1,
+   "execution_count": null,
    "metadata": {},
    "outputs": [],
    "source": [
     "import pygsti\n",
-    "from pygsti.modelpacks import smq1Q_XYI\n",
+    "from pygsti.modelpacks import smq1Q_XY\n",
     "\n",
     "#Step 1: create an \"experiment design\" for doing GST on the std1Q_XYI gate set\n",
-    "target_model = smq1Q_XYI.target_model()      # a Model object\n",
-    "prep_fiducials = smq1Q_XYI.prep_fiducials()  # a list of Circuit objects\n",
-    "meas_fiducials = smq1Q_XYI.meas_fiducials()  # a list of Circuit objects\n",
-    "germs = smq1Q_XYI.germs()                    # a list of Circuit objects\n",
-    "maxLengths = [1,2,4,8,16,32]\n",
+    "target_model = smq1Q_XY.target_model()      # a Model object\n",
+    "prep_fiducials = smq1Q_XY.prep_fiducials()  # a list of Circuit objects\n",
+    "meas_fiducials = smq1Q_XY.meas_fiducials()  # a list of Circuit objects\n",
+    "germs = smq1Q_XY.germs()                    # a list of Circuit objects\n",
+    "maxLengths = [1,2,4,8,16]\n",
     "exp_design = pygsti.protocols.StandardGSTDesign(target_model, prep_fiducials, meas_fiducials,\n",
     "                                                germs, maxLengths)"
    ]
@@ -67,19 +67,19 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 2,
+   "execution_count": null,
    "metadata": {},
    "outputs": [],
    "source": [
     "def simulate_taking_data(data_template_filename):\n",
     "    \"\"\"Simulate taking 1-qubit data and filling the results into a template dataset.txt file\"\"\"\n",
-    "    datagen_model = smq1Q_XYI.target_model().depolarize(op_noise=0.01, spam_noise=0.001)\n",
+    "    datagen_model = smq1Q_XY.target_model().depolarize(op_noise=0.01, spam_noise=0.001)\n",
     "    pygsti.io.fill_in_empty_dataset_with_fake_data(data_template_filename, datagen_model, num_samples=1000, seed=1234)"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 3,
+   "execution_count": null,
    "metadata": {},
    "outputs": [],
    "source": [
diff --git a/jupyter_notebooks/Tutorials/algorithms/ModelTesting-functions.ipynb b/jupyter_notebooks/Tutorials/algorithms/ModelTesting-functions.ipynb
index f4b7f0d23..fa45805b5 100644
--- a/jupyter_notebooks/Tutorials/algorithms/ModelTesting-functions.ipynb
+++ b/jupyter_notebooks/Tutorials/algorithms/ModelTesting-functions.ipynb
@@ -31,9 +31,10 @@
    "outputs": [],
    "source": [
     "datagen_model = smq1Q_XYI.target_model().depolarize(op_noise=0.05, spam_noise=0.1).rotate((0.05,0,0.03))\n",
+    "max_lens = [1,2,4,8]\n",
     "exp_list = pygsti.circuits.create_lsgst_circuits(\n",
     "    smq1Q_XYI.target_model(), smq1Q_XYI.prep_fiducials(), smq1Q_XYI.meas_fiducials(),\n",
-    "    smq1Q_XYI.germs(), [1,2,4,8,16,32,64])\n",
+    "    smq1Q_XYI.germs(), max_lens)\n",
     "ds = pygsti.data.simulate_data(datagen_model, exp_list, num_samples=1000,\n",
     "                                             sample_error='binomial', seed=100)"
    ]
@@ -80,17 +81,17 @@
     "# creates a Results object with a \"default\" estimate\n",
     "results = pygsti.run_model_test(test_model1, ds, target_model, \n",
     "                               smq1Q_XYI.prep_fiducials(), smq1Q_XYI.meas_fiducials(), smq1Q_XYI.germs(),\n",
-    "                               [1,2,4,8,16,32,64]) \n",
+    "                               max_lens) \n",
     "\n",
     "# creates a Results object with a \"default2\" estimate\n",
     "results2 = pygsti.run_model_test(test_model2, ds, target_model, \n",
     "                               smq1Q_XYI.prep_fiducials(), smq1Q_XYI.meas_fiducials(), smq1Q_XYI.germs(),\n",
-    "                               [1,2,4,8,16,32,64], advanced_options={'estimate_label': 'default2'}) \n",
+    "                               max_lens, advanced_options={'estimate_label': 'default2'}) \n",
     "\n",
     "# creates a Results object with a \"default3\" estimate\n",
     "results3 = pygsti.run_model_test(test_model3, ds, target_model, \n",
     "                               smq1Q_XYI.prep_fiducials(), smq1Q_XYI.meas_fiducials(), smq1Q_XYI.germs(),\n",
-    "                               [1,2,4,8,16,32,64], advanced_options={'estimate_label': 'default3'})"
+    "                               max_lens, advanced_options={'estimate_label': 'default3'})"
    ]
   },
   {
@@ -149,7 +150,7 @@
     "#Create some GST results using run_stdpractice_gst\n",
     "gst_results = pygsti.run_stdpractice_gst(ds, target_model, \n",
     "                                        smq1Q_XYI.prep_fiducials(), smq1Q_XYI.meas_fiducials(), smq1Q_XYI.germs(),\n",
-    "                                        [1,2,4,8,16,32,64])\n",
+    "                                        max_lens)\n",
     "\n",
     "#Add a model to test\n",
     "gst_results.add_model_test(target_model, test_model3, estimate_key='MyModel3')\n",
@@ -179,7 +180,7 @@
    "outputs": [],
    "source": [
     "gst_results = pygsti.run_stdpractice_gst(ds, target_model, smq1Q_XYI.prep_fiducials(), smq1Q_XYI.meas_fiducials(), smq1Q_XYI.germs(),\n",
-    "                                       [1,2,4,8,16,32,64], modes=\"full TP,Test2,Test3,Target\", # You MUST \n",
+    "                                       max_lens, modes=\"full TP,Test2,Test3,Target\", # You MUST \n",
     "                                       models_to_test={'Test2': test_model2, 'Test3': test_model3})\n",
     "\n",
     "pygsti.report.construct_standard_report(\n",
@@ -197,9 +198,9 @@
  ],
  "metadata": {
   "kernelspec": {
-   "display_name": "Python 3 (ipykernel)",
+   "display_name": "api_updates",
    "language": "python",
-   "name": "python3"
+   "name": "api_updates"
   },
   "language_info": {
    "codemirror_mode": {
diff --git a/jupyter_notebooks/Tutorials/algorithms/ModelTesting.ipynb b/jupyter_notebooks/Tutorials/algorithms/ModelTesting.ipynb
index 11530f8bc..49e56f0f1 100644
--- a/jupyter_notebooks/Tutorials/algorithms/ModelTesting.ipynb
+++ b/jupyter_notebooks/Tutorials/algorithms/ModelTesting.ipynb
@@ -21,7 +21,7 @@
     "import numpy as np\n",
     "import scipy\n",
     "from scipy import stats\n",
-    "from pygsti.modelpacks import smq1Q_XYI"
+    "from pygsti.modelpacks import smq1Q_XY"
    ]
   },
   {
@@ -30,8 +30,8 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "datagen_model = smq1Q_XYI.target_model().depolarize(op_noise=0.05, spam_noise=0.1).rotate((0.05,0,0.03))\n",
-    "exp_design = smq1Q_XYI.create_gst_experiment_design(max_max_length=64)\n",
+    "datagen_model = smq1Q_XY.target_model().depolarize(op_noise=0.05, spam_noise=0.1).rotate((0.05,0,0.03))\n",
+    "exp_design = smq1Q_XY.create_gst_experiment_design(max_max_length=16)\n",
     "ds = pygsti.data.simulate_data(datagen_model, exp_design.all_circuits_needing_data,\n",
     "                                            num_samples=1000, sample_error='binomial', seed=100)\n",
     "data = pygsti.protocols.ProtocolData(exp_design, ds)"
@@ -51,7 +51,7 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "target_model = smq1Q_XYI.target_model()\n",
+    "target_model = smq1Q_XY.target_model()\n",
     "test_model1 = target_model.copy()\n",
     "test_model2 = target_model.depolarize(op_noise=0.07, spam_noise=0.07)\n",
     "test_model3 = target_model.depolarize(op_noise=0.07, spam_noise=0.07).rotate( (0.02,0.02,0.02) )"
diff --git a/jupyter_notebooks/Tutorials/algorithms/advanced/CliffordRB-Simulation-ImplicitModel.ipynb b/jupyter_notebooks/Tutorials/algorithms/advanced/CliffordRB-Simulation-ImplicitModel.ipynb
index 8954f94cb..4031d8910 100644
--- a/jupyter_notebooks/Tutorials/algorithms/advanced/CliffordRB-Simulation-ImplicitModel.ipynb
+++ b/jupyter_notebooks/Tutorials/algorithms/advanced/CliffordRB-Simulation-ImplicitModel.ipynb
@@ -11,7 +11,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 1,
+   "execution_count": null,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -33,25 +33,12 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 2,
+   "execution_count": null,
    "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "- Sampling 10 circuits at CRB length 0 (1 of 6 depths) with seed 784558\n",
-      "- Sampling 10 circuits at CRB length 1 (2 of 6 depths) with seed 784568\n",
-      "- Sampling 10 circuits at CRB length 2 (3 of 6 depths) with seed 784578\n",
-      "- Sampling 10 circuits at CRB length 4 (4 of 6 depths) with seed 784588\n",
-      "- Sampling 10 circuits at CRB length 8 (5 of 6 depths) with seed 784598\n",
-      "- Sampling 10 circuits at CRB length 16 (6 of 6 depths) with seed 784608\n"
-     ]
-    }
-   ],
+   "outputs": [],
    "source": [
     "#Specify the device to be benchmarked - in this case 2 qubits\n",
-    "n_qubits = 3\n",
+    "n_qubits = 2\n",
     "qubit_labels = list(range(n_qubits)) \n",
     "gate_names = ['Gxpi2', 'Gypi2','Gcphase'] \n",
     "availability = {'Gcphase':[(i,i+1) for i in range(n_qubits-1)]}\n",
@@ -62,8 +49,8 @@
     "                'paulieq': CCR.create_standard(pspec, 'paulieq', ('1Qcliffords', 'allcnots'), verbosity=0)}\n",
     "\n",
     "#Specify RB parameters (k = number of repetitions at each length)\n",
-    "lengths = [0,1,2,4,8,16]\n",
-    "k = 10\n",
+    "lengths = [0,1,2,4,8]\n",
+    "k = 8\n",
     "subsetQs = qubit_labels\n",
     "randomizeout = False # ==> all circuits have the *same* ideal outcome (the all-zeros bitstring)\n",
     "\n",
@@ -91,11 +78,12 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 6,
+   "execution_count": null,
    "metadata": {},
    "outputs": [],
    "source": [
-    "myModel = pygsti.models.create_crosstalk_free_model(pspec, ideal_gate_type='full')"
+    "myModel = pygsti.models.create_crosstalk_free_model(pspec, ideal_gate_type='full')\n",
+    "myModel.sim = 'map'"
    ]
   },
   {
@@ -110,7 +98,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 7,
+   "execution_count": null,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -130,7 +118,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 8,
+   "execution_count": null,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -148,46 +136,9 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 9,
+   "execution_count": null,
    "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "FullArbitraryOp with shape (4, 4)\n",
-      " 1.00   0   0   0\n",
-      "   0 0.99   0   0\n",
-      "   0   0   0-0.99\n",
-      "   0   0 0.99   0\n",
-      "\n",
-      "FullArbitraryOp with shape (4, 4)\n",
-      " 1.00   0   0   0\n",
-      "   0   0   0 0.99\n",
-      "   0   0 0.99   0\n",
-      "   0-0.99   0   0\n",
-      "\n",
-      "FullArbitraryOp with shape (16, 16)\n",
-      " 1.00   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0\n",
-      "   0   0   0   0   0   0   0   0   0   0   0   0   0 0.99   0   0\n",
-      "   0   0   0   0   0   0   0   0   0   0   0   0   0   0 0.99   0\n",
-      "   0   0   0 0.99   0   0   0   0   0   0   0   0   0   0   0   0\n",
-      "   0   0   0   0   0   0   0 0.99   0   0   0   0   0   0   0   0\n",
-      "   0   0   0   0   0   0   0   0   0   0 0.98   0   0   0   0   0\n",
-      "   0   0   0   0   0   0   0   0   0-0.98   0   0   0   0   0   0\n",
-      "   0   0   0   0 0.98   0   0   0   0   0   0   0   0   0   0   0\n",
-      "   0   0   0   0   0   0   0   0   0   0   0 0.99   0   0   0   0\n",
-      "   0   0   0   0   0   0-0.98   0   0   0   0   0   0   0   0   0\n",
-      "   0   0   0   0   0 0.98   0   0   0   0   0   0   0   0   0   0\n",
-      "   0   0   0   0   0   0   0   0 0.98   0   0   0   0   0   0   0\n",
-      "   0   0   0   0   0   0   0   0   0   0   0   0 0.99   0   0   0\n",
-      "   0 0.98   0   0   0   0   0   0   0   0   0   0   0   0   0   0\n",
-      "   0   0 0.98   0   0   0   0   0   0   0   0   0   0   0   0   0\n",
-      "   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0 0.98\n",
-      "\n"
-     ]
-    }
-   ],
+   "outputs": [],
    "source": [
     "print(myModel.operation_blks['gates'][\"Gxpi2\"])\n",
     "print(myModel.operation_blks['gates'][\"Gypi2\"])\n",
@@ -203,7 +154,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 10,
+   "execution_count": null,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -220,7 +171,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 11,
+   "execution_count": null,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -230,22 +181,9 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 12,
+   "execution_count": null,
    "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAe4AAAFACAYAAAB6AZ/IAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAABNPUlEQVR4nO3dd5xU1d348c+9U7bD0otUKUdQQSyhhFhjREyiwYa9hmD0yaOkiP6MJYkae4wdy2Mi0TyiaHxiNEYwGkGNKCoWDkIERPrCLmyZdu/9/XFn19ndKXd3Z3Z3dr9vXvOamdvmzM6y3zntewzHcRBCCCFEfjA7ugBCCCGE8E4CtxBCCJFHJHALIYQQeUQCtxBCCJFHJHALIYQQeUQCtxBCCJFH/B1dAC8mT57s7LPPPh1dDCGEEKJdfPLJJzu11v2S7cuLwL3PPvuwePHiji6GEEII0S6UUhtS7ZOmciGEECKPSOAWQggh8ogEbiGEECKP5EUftxBCtEU0GmXTpk2EQqGOLooQjRQWFjJkyBACgYDncyRwCyG6vE2bNlFWVsaIESMwDKOjiyMEAI7jUFFRwaZNmxg5cqTn86SpXAjR5YVCIfr06SNBW3QqhmHQp0+fFrcESeAWQnQLErRFZ9Sa30sJ3EII0Y4efvhhpk+fTjgc7uiidHnnnHMO69at83Ts/PnzeeONNxpt27FjB9dffz0ARx99NOFwmAULFvDRRx8RDodZtGgRAIsXL2bJkiVZLXs6EriFEKKJ51d+xTd/u5SR81/km79dyvMrv8ratV944QVmzpzJiy++mLVritzo169fQ+CuN2fOHCZMmMCOHTsaAvesWbM45phj2q1cMjhNCCESPL/yK65avIq6qAXAV5V1XLV4FQAnTWpb6uV33nmHYcOGMXv2bH7+858zfvx4brzxRp544gkAfvSjH/Hf//3fVFdXc9ddd+Hz+Rg6dCi/+tWv+L//+z+effZZbNvmJz/5CevWreOVV16hrq6OXr16ce+992LbNr/4xS/Yvn07gwYN4t133+XNN99Ea81vfvMbAMrLy7npppsoKytrKNd7773HLbfcgt/vp6ioiLvvvptXXnmF//znP/zsZz8jHA5z/PHHs3TpUj788ENuuukmbNtmwIAB3H777Witm23bsGFDs9eMRqNcfvnlOI5DOBzmhhtuYN999214z3V1dVxxxRVMnz690c/swQcfxDRNduzYwemnn85ZZ53FOeecQ+/evamqqmLBggVcffXVbNq0CcuyuOCCC5g5cyYAv//979m9ezfBYJBbb72Vnj17cu2117J161a2b9/O0UcfzRVXXAHAk08+yaOPPoplWdx44434fD7mzZvH008/3VCe+fPnM3PmTF555RXWrl3Lvffei+M49O3blzPOOIM77riDFStWYNs2559/Pscffzx/+tOfeP755zFNkwMPPJBrrrmmTb9HErhTiFpRYnYs6b4CfwGmIY0VQnRFt/1dNwTtenVRi9v+rtscuBctWsSpp57KvvvuSzAYJBwOE4lE+OqrrwgEAuzevZtx48YxY8YMnnzySfr06cPvfvc7nnvuOfx+Pz169OCBBx7Atm3ee+89Hn/8cUzT5KKLLmLVqlV8/PHHDBkyhN///vesW7eO7373uwD88pe/5KabbmL06NEsWrSIRx55pCFYAbz66qscf/zxnHfeeSxdupQ9e/akfA/XXnstd955J6NGjWLRokWsW7cu6bYbbrih2WtOmjSJ8vJybr31VtauXUttbS0bN26ksrKSRx55hIqKCtavX9/sNbdt28bzzz+Pbdt873vfY8aMGQB897vf5dhjj2XhwoX07t2b22+/nerqambNmsWUKVMA+M53vsMJJ5zAn/70Jx566CHOOeccDjroIE499VTC4TCHH354w8/i4IMPZs6cObz++uvcdtttzJ8/P+XPYe7cuaxZs4bLLruMe+65B4DXX3+dTZs28dRTTxEOhznttNP45je/yeLFi7nuuuuYMGECTz75JLFYDL+/9eFXAncK22q3sXHvxmbb/YafA/oeQHGguANKJYTItc2VdS3a7lVVVRVvvPEGu3bt4oknnqC6upqFCxdyyimn8PzzzxMMBpk1axa7du1i+/btXH755YA7In7atGkMHz68YcqQaZoEAgHmzZtHcXExW7duJRaLsW7dOg4//HAARo0aRe/evQEaAim4c9pHjBjRqGxz587lwQcf5LzzzmPAgAFMmDCh0X7HcRoe79y5k1GjRgFw6qmnptyW7DUPP/xw1q9fz49//GP8fj+XXHIJY8aM4fTTT2fevHnEYjHOOeecZj+7SZMmEQwGARgzZgwbN7p/m+t/HuvWrWPatGkAlJaWMmrUKL788ksADj30UMANyq+//jrl5eWsWrWKt99+m9LSUiKRSMPr1B87adIkbr311tQfZgpr1qzhk08+aXgPsViMr776iptvvpnHHnuMW2+9lYMOOqjRz7M1JHCnELWjRKxIs+22aaesiQsh8t/g8iK+ShKkB5cXtem6L7zwAieffDJXXnklAHV1dRxzzDHMmzePn/zkJ5imyaOPPkpxcTEDBw7k/vvvp6ysjCVLllBcXMyWLVswTbelb/Xq1bz66qssWrSIuro6Zs2aheM4jB07lpUrV/Ltb3+bjRs3snv3bsANcLfccguDBw/mvffeY8eOHc3K9oMf/IArr7yShx56iKeffpqRI0c2HPfJJ580HNu/f3/Wr1/PiBEjWLBgASNHjky6LdlrvvPOO/Tv35/HHnuMlStXcuedd3LNNddQU1PDggUL2L59O7Nnz+aoo45qVL7PPvsMy7KIRCKsXbuW4cOHA1+PyB41ahQrVqzg2GOPpbq6mjVr1jBkyBAAVq1axYABA1ixYgVjxoxh8eLFlJWV8atf/YoNGzbw9NNPNwTSjz76iIMPPrjh2HRM08S27Ubb9t13XyZPnsyvf/1rbNvm/vvvZ+jQofzud7/jhhtuoKCggIsuuoiVK1fyjW98w+NvTnMSuFNIFZwdx5HALUQX9vPjVKM+boCigI+fH6fadN1FixY1qsUVFRXxne98h7/85S/st99+xGIxSktLAfh//+//MWfOHBzHoaSkhFtvvZUtW7Y0nDt8+HCKioqYPXs24A6i2r59O6eccgrz58/nrLPOYvDgwRQUFABw/fXXc+WVVxKLxTAMgxtvvLFR2SZMmMA111xDUVERpmnyq1/9ip49e/LUU09xxhlnsP/++1NSUgLADTfcwNVXX41pmvTr14/zzz+fAQMGNNs2aNCgZq9ZXl7OvHnzeOqpp4jFYlx66aWMGDGC++67j5deeqmh/76pWCzGD3/4QyorK7nkkksaWhLqnXbaafzyl7/kjDPOIBwOc9lll9GnTx/A7Qb4wx/+QElJCbfccgvbt2/npz/9KR988AHBYJDhw4ezfft2AD788EPOPfdcDMPgpptuSlsz7tOnD9FolNtuu43CwkLAHXn+73//mzPPPJPa2lq+/e1vU1pailKKM888k5KSEgYMGMDEiRM9/MakZrS1yt4eZs2a5bT3sp6f7vyU7XXbm203MBjfZzz9ipMukyqE6IQ+++wzxo0b5/n451d+xW1/12yurGNweRE/P061uX+7Pbz//vvU1tYyffp01q9fz8UXX8yrr77a0cVqk3feeYc///nP3HXXXR1dlJxJ9vuplHpPa31osuNzUuNWSpnA/cBEIAxcrLVeG993EPC7hMOnACdprV/ORVlaK2I3byYHcHCwHCvpPiFE13DSpH3yIlA3NXToUObNm8e9995LLBbj2muv7egiiRzIVVP5SUCh1nqqUmoKcAdwIoDW+gPgSACl1KnAV50taIPbx52KNJULITqjfv36NUwt6yomT57M5MmTO7oYnUqu5jRNB14G0Fq/DTSr7iulSoAbgP/OURlaLWbHsOzUtWoJ3EIIITpKrmrcPYCqhOeWUsqvtU6MeBcBi7TWO5NdQCk1B5gDMHjw4BwVM7mYHcMhdd9/utq4EEIIkUu5Ctx7gLKE52aToA1wFnBKqgtorRcAC8AdnJb1EqZhORa2Y6fcH7UkcAshhOgYuWoqXwbMBIj3ca9K3KmU6gkUaK2/zNHrt0nMjqWdBpBq4JoQQgiRa7mqcT8HHKuUWg4YwAVKqXnAWq31C8BYYH2OXrvNLNvCJk2NW5rKhRBCdJCcBG6ttQ3MbbJ5dcL+d3FHnndKlmOlrXFbtkXMjuE3JX+NECKzTZs28f3vf5/999+/YdvkyZM55phjWLJkCZdddhn/+Mc/mDBhAgMGDMj663/wwQcNi2ZMnz6dyy67rNH+7du38/Of/5xoNErPnj257bbbqKurY968eQ3HfPbZZ/z0pz/ljDPO8PSav/nNbzjvvPMYOnRo0v1Lly7lvvvuw+/3c/LJJ3Paaac12r9hwwbmz5+PYRiMGTOG6667DtM0ueSSS9i9ezeBQICCggIeeeSRFv408p9EniQyDU5zcCRwCyFaZPTo0UmnatUn3vjjH//I9ddfn5PAfd1113HPPfcwdOhQ5syZw6effsr48eMb9j/88MP84Ac/4KSTTuKee+7hmWee4fzzz28o78qVK7nrrruaBdd0Nm3alDJoR6NRbr75Zp555hmKioo444wzOProo+nbt2/DMTfffDOXX345kydP5tprr2XJkiUce+yxbNiwgRdffLEh3Wl3JJEniUxN4bYj+cqFyFsfPAUrF2b3mpPOhoO81UQT1WcFO/HEE/nss8+48sorefLJJxsW1Eg0f/58Kisrqays5KGHHqJnz54ALFy4kL///e+Njq3PEQ5QXV1NJBJh2LBhAEyfPp3ly5c3CtxXX301juNg2zZbtmxpNJPHcRx+/etfc/vtt+Pz+ZK+j6OPPpqXXnqpIcXq2rVr2XfffVO+73Xr1jFs2LCG93DIIYfw7rvvcvzxxzcc88knnzTk8z788MNZtmwZkyZNYs+ePcydO5c9e/YwZ86cZnnNuwMJ3ElkGnxmOzYxRwK3EMK7tWvXNlr56vbbb294fOSRRzJu3Diuv/76pEG73pQpUzj//PMbbTv77LM5++yzU55TXV3dkAMdoKSkpGHlrHqGYRCLxTjxxBMJh8NceumlDfuWLl3KmDFjkgbiq666ik2bNrFjxw4uvPBC/H4/f/jDH3jttdfSBtTq6upG64GXlJRQXV3d6BjHcRpq1SUlJezdu5doNMqFF17IueeeS1VVFWeccQYTJkxoyEveXUjgTiLTdC/HcdImaBFCdGIHndGq2nFbJWsqT7b2dDr1y1gmylTjLi0tpaampmFfTU0NPXr0aHadQCDA3/72N5YvX86VV17JwoVuq8QLL7zAueeem7Q8N998M+DWuB977LGGGvfKlSu58MILefnll/nTn/4EwJVXXskBBxyQskyJgRxoWAktscx9+/Zl9uzZ+P1++vTpw7hx4/jiiy8kcAsIW+G0+22kqVwIkV2GYWRcpzlZv26mGndpaSmBQICNGzcydOhQ3nzzzWaD066//npmzJjBlClTKCkpafQ6H3/8MQcffLDn91FVVUVpaSk+n48ZM2YwY8aMZseMGjWKDRs2UFlZSXFxMStWrOCiiy5qdMz48eN55513mDx5Mm+88QZTpkxh+fLlLFy4kIcffpiamho+//zztE3yXVWu5nHnLcdxkq7D3ZTM5RZCZNOkSZP4xS9+QWVlJVdccUWzNbPb4oYbbuBnP/sZp5xyCuPHj2fixIlUVlY2BPBzzjmH++67j3POOYc777yT66+/HoBdu3ZRWlqacSDY0qVLG2rbb7zxBt/61rfSHh8IBJg/fz4XXXQRs2fP5uSTT2bAgAGsXbu24bWvvPJK7rnnHk4//XSi0SjHHXccRxxxBCNGjOC0007joosuYt68ec2W+OwOZFnPJqJWlPe2vUfICqU9bljZMPYt737f9ITIRy1d1rOj3XnnncydO5fi4uKOLopoBy1d1lNq3E1E7WjadKf1pMYthMiV2bNnS9AWKUngbiJmx9JmTavnpTldCCFao70XVhL5RQJ3EzE75q3GLYFbiLySD92Covtpze+lBO4mMqU7rRezYzKyXIg8UVhYSEVFhQRv0ak4jkNFRQWFhYUtOk+mgzWRKd1pPRubqBWVtKdC5IEhQ4Y0JAoRojMpLCxkyJAhLTpHok4TXpvAHcfBciQJixD5IBAIJE1eIkQ+kqbyJryOFrcdW/q5hRBCtDsJ3E3URGsyH4TbFy75yoUQQrQ3CdwJLNvKmO40USiWPkmLEEIIkW0SuBNE7EiL+q3rYnU5LI0QQgjRnATuBGErjG1nnsNdry4qgVsIIUT7ksCdIGpFW1TjDtthmcsthBCiXUngThC2wp7mcNezbEtGlgshhGhXErgTZFoRrCnLkcAthBCifUngTtDSPmvbsYna0RyVRgghhGhOAnec7dgtHiXu4MiUMCGEEO1KAndcOBZuVQrTljavCyGEEG0hgTsuardsRHm92mhtDkojhBBCJCeBOy5iR7Ds1tW4vazfLYQQQmSDBO64UCzUoqlg9Szbkn5uIYQQ7UYCd1xrm7wtxyIc857fXAghhGgLCdxx1dHqVp1nOZYMUBNCCNFuJHDjjihvyapgTdXGZICaEEKI9uHPxUWVUiZwPzARCAMXa63XJuw/HrgOMID3gEu11i3vYM6SkBVq1cC0ensje7NYGiGEECK1XNW4TwIKtdZTgfnAHfU7lFJlwG3Ad7XWk4H1QN8clcOTsNW6Odz1QrGQZFATQgjRLnIVuKcDLwNord8GDk3YNw1YBdyhlPoXsE1rvSNH5fCkLlrXqhHl9SzHIhSVfm4hhBC5l5OmcqAHUJXw3FJK+bXWMdza9VHAQUA18C+l1Fta6zWJF1BKzQHmAAwePDhHxXTVRGvadH7MjhGyQpRRlqUSCSGEEMnlKnDvgUZRzIwHbYAK4F2t9VYApdQbuEG8UeDWWi8AFgDMmjUrZ/3ftmO3ekR5PclZLoQQor3kqql8GTATQCk1BbdpvN77wAFKqb5KKT8wBfg0R+XIKBQLEbNjmQ/MQEaWCyGEaA+5qnE/BxyrlFqOO3L8AqXUPGCt1voFpdRVwN/jxz6ttf44R+XIqLWLizRVHanGcRwMw8hCqYQQQojkchK4tdY2MLfJ5tUJ+/8M/DkXr91SISuUlcAdsSOErTCF/sIslEoIIYRIrtsnYMlWE7dlSwY1IYQQuSeBO0vLclqORdSSudxCCCFyq1sHbtuxqYvVZeVaMrJcCCFEe+jWgTscCxNz2j6ivF62vgQIIYQQqXTvwG2HsW07a9fLVrO7EEIIkUq3DtxRK5qVEeX1QlZ25oQLIYQQqXTrwB2KhdqUo7wp27HbtDyoEEIIkUn3DtxZnr5lORbhmARuIYQQudOtA3dbFxdpynIsWd5TCCFETnXbwB2zYzlp1paR5UIIIXKp2wbusBXGsrM3MK2eBG4hhBC51H0Dd5YWF2lKpoQJIYTIpW4buKN2dqeCJV5XUp8KIYTIlW4buCNWJCfXtRyLiJ2bawshhBC5Wo+70/NS216+Jsqzb0WpqHboU2pw8tQA08YG0p7j4OSk71wIIYSAbhy4bSd9qtPla6I8/lqESDwRWkW1w+OvuTXptMHbAZvspVEVQgghEnXbpvJMNe5n34o2BO16kZi7PR0HB8fJXjY2IYQQIpEE7hQqqpMH31Tb6zk4GWvzQgghRGt128CdaVWwPqVGi7bXcxwJ3EIIIXKn2wbuTOtwnzw1QNAPfahipvk24BD0u9vTceL/hBBCiFzovoPTMtS46weg7V32KTfb93C677dMnDY646hyyDzwTQghhGitbhu4vUwHmzY2QGDooThPmdxy4PusHzvO07UzfSkQQgghWksCdwbRonIqBx5A/y+Wsf7gM8FI38ft9dpfVH1BZaiy2Xaf6WNc73EEfJlr9kIIIbqfbtnHbdlWi/qht+/7TYqrvqJk9wZPx3tpKg/FQlRFqprdaqI1xOz0/e9CCCG6r24ZuG3HbtFc653Dp+AYJv2+WObt+h4SsKQKzo7jSAIXIYQQKXXfwN2CGndiczkeAr6XlKepjrGxpY9cCCFESt0ycJuGiUHmvupELWkuN43MP9aokzwDm+M4WEiucyGEEMl1y8DtN/0YHgaZJWpJc3nATD+wzHbslP3gDo7UuIUQQqTULQO3YRgZg2tT0aJyKgd5ay73m+kH61u2lbKP3XGcnKwTLoQQomvoloEbMteKk9k+MnNzuYGRMXDH7FjKPnbJvCaEECKdjPO4lVKHaq1XtOSiSikTuB+YCISBi7XWaxP23w1MB/bGN52ota5qyWu0VWvmSe8cPoWxyx+i3xfLqOk9IukxhmHgM3xpr2OTflS7rOcthBAiFS8JWH6mlBoBLAQWaq0rPZxzElCotZ6qlJoC3AGcmLD/EOA4rfXOlhU3e1pT4/66ufzNlMlYTExMM31DhmVbaad8yTxuIYQQqWRsKtdazwaOBxxgkVLqT0qpIzOcNh14OX7+28Ch9TvitfExwAKl1DKl1IWtLHubtCZwA2zb93CKqzZTtnNt0v2GYeA30n8fyljjlj5uIYQQKXjt4x4ADAP6AjuBU5RSC9Mc3wNIbPq2lFL10awEuAc4G5gB/FgpNaHpBZRSc5RSK5RSK3bv3u2xmN61NnDvHDEV2xdgwLrXk+43DTNzU7mdfh65BG4hhBCpZAzcSql3gAeAD4EpWuv/1lpfBvRLc9oeoCzxdbTW9e2/tcDdWutarfVeYCluX3gjWusFWutDtdaH9urVy+Pb8c5npg+uqcQKStk59DD6r3sDI0lftIGB35e+xu3gkG78mawuJoQQIhUvNe7LtNZHaa2f1FqHlVJHAGitj0tzzjJgJkC8j3tVwr6xwDKllE8pFcBtVn+/dcVvPZ/h85QoJZlto48kGKqi11cfNNtnGqanedxS4xZCCNEaKauGSqlvAeOBK5RSd8Y3+4BLgQMyXPc54Fil1HLAAC5QSs0D1mqtX1BKPQG8DUSBP2qtP2nj+2gxn+lrcfa0eruGHEy0oIwB6/7JrqGHNNoXNIMZz8805UsSsAghhEglXZvubmAgUAAMim+zgV9kuqjW2gbmNtm8OmH/bcBtLSpplvkNP6Zhtqp26/gCbB/5TQZ+vhRfpBYrWNywz8s0s0xN4VLjFkIIkUrKwK21/hj4WCm1QGu9pR3L1C7a0lQObnP5Pqtfpu+Gd9g25qiG7UFf5hp3phq1BG4hhBCppIxcSqln4g/fV0ptjt+2KKU2t1PZcqrAX5Bx9Hc6e/rvR13ZAAas+2ej7YW+woznZlpERAanCSGESCVdjfuU+P2gVMfkM9MwKfIXURurbd0FDINto45g+IfPEKzdRaS4NwYGhf7MgTvTWuBS4xZCCJFKusFpT5Fi0pLW+syclagdlQRKqAhVtPr8baOOYMQHT9P/P/9i0wEn4jN8nvq4MwVm23ETtLR0BTMhhBBdX7rBaQ+2Wyk6SJG/qE3n15UPYU/fMQz8fCmb9v8+Pp+PArMg43lemsJtx25TU74QQoiuKd3orDKt9euASnLrEoK+YJsGqAFsHXsMpbvWU7ZzLX7T76mpPFPgdhxH+rmFEEIklS5q9YnfD4rfBiY87hIKfG0boAawbdThWL4gA9e8SrG/2FPzdqamcgcJ3EIIIZJLGbi11n+I39+Am9msBng7/rxLyEbgtoIl7Bg5jQHr3qDEY0KXTMt2Oo6TdvUwIYQQ3ZeXXOX3AWcBMeBipdStOS9VOwn4Ap7mXWeyZex38EdrKU+x8EhTUTuadr+DI2tyCyGESMrLetwTtdbT44/vjqcx7TKKA8Xsiexp0zWqBo6ntsdgSj5eDJMvyXi8lxp3zJE1uYUQQjTnZWTWRqXUEACl1ADgy9wWqX0V+4szH5SJYbBdHUfgy39DinW663kJyja25CsXQgiRVLrMafVZ0mYAnyulNPAfYEp7Fa49eBkF7kWF+g6O4YOVT6Q9LubEMiZgkT5uIYQQqaTLnNZlRo+nUz9Ara3ZysyyQRhjj4MPnoSjr4EUiVgs20q7MhjIqHIhhBCpZezjjq+nfQEQwF2ic3CGtbjzStAM4jN9WFbbAndpsBQOPhf03+DzV2C/E5IeZzlWxho3ZO4HF0II0T156eN+APgn0BPYAOzMZYHaW6G/0NMa2pkU+4th9LFQOhBWPJbyOMu2PDWDx2wZnCaEEKI5L4F7p9b6KWCP1vp6YEhui9S+DMNwa8ttYBqm21fu88OhF8DaV6FiXdJj6/OQZyKjyoUQQiTjJXDbSqn9gWKllAJ657hM7a7EX9Km8/1GQqrTQ84H05+y1m07dsY+bpCmciGEEMl5CdzzgP2B3wNPAqnbgfNUUaAIw2PWs2T8pv/rdbjLBsK477mjyyPNlwz12sctNW4hhBDJZAzcWutPgM9wc5WfpbW+K+elameFvkL8ppdcNMmVBErwmQmpU78xB0JVsGpRs2NjTsxTjTtiRVpdHiGEEF2Xl5Sn1+AOUJsOPKqUujzXhWpvhf62Be7SQJM+8mFTof/+8O7D0KR2HYl5C8hhK+ypZi6EEKJ78dJUfgJwuNb6CuAIYHZui9T+/Ka/1WtzGxgUBZqcaxjwjYth6yr48t+NdoWskKfrxuyY1LqFEEI04yVwbwPq84IGgR25K07HKQuWteo8n+mjwFfQfMeBp0FBD/j3gkab62J1nq5rO3bGxUiEEEJ0Pynbh5VSbwEO0B835emHwHigop3K1q5am7Pcb6SorReUwkFnwbuPQPXNUNof27EJW2FP17UcS2rcQgghmknXsdu0SdyBNgy97uQK/K1LfVrgK0i9NOhhF8M7D8C7j8JRVxGOhT2nMpUatxBCiGRSNpVrrTdorTcAFnA78BLwO7po8G7tyPKygjRN7H1Hw9gZ7iC1aB1RO9qiLwZS4xZCCNGUl0j1MO6o8jeAI4FHgWNyWKYOUegvpGdBzxYHy2Yjypua9l/w+Anw4VNE9z+xRct1eh3IJoQQovvwErgLtdYvxB8/r5Sal8sCdaTxfcZn/6LDvwmDJ8Fb9xHZ77gWLdfpdSCbEEKI7sPLqHK/UupAgPi9TC5uCcOAqZdBxVrMNf9o0amhWEjmcgshhGjES+D+L+AxpdQm3Gbyn+S2SF3Q+JOg51DKVvxPi06TkeVCCCGa8tJU/m2t9WE5L0lX5vPDlB9T/PerKNuu2dtfeTrNdmwiVoQCf5J54kIIIbolLzXumUopX+bDvqaUMpVSDyql3lJK/VMpNTrFMS8ppea25Nr5KjpxNrFgCUM//ovnc2J2jLDtbd63EEKI7sFL4O4HbFZKvR0PxMs9nHMS7qC2qcB84I4kx/wG6OW5pHmuzudny7jj6bf+LQr3bPF0joNDXVQGqAkhhPial8D9XeAbwOm4SVnO8HDOdOBlAK3128ChiTuVUqcAdv0x3UHYCrNp3Ak4hsmwjxZ7Pq8mVpPDUgkhhMg3XgJ3Ae5a3C+TvOacTA+gKuG5pZTyAyilDgDOBK5NdwGl1Byl1Aql1Irdu3d7fNnOqzZWS7ikN1vGHsvAz5dSUO0t5Xt1pFpGlgshhGjgJXD/EXgQmAL8D/C4h3P2AIkpxUytdSz++FxgH2ApcD4wTyk1o+kFtNYLtNaHaq0P7dUr/1vUa6JuzXnjhFngOJ5r3RE7QigmiViEEEK4vIwqr9FavxR//KLHBCzLgO8BTyulpgCr6ndorX9R/1gpdT2wVWvdpZvMbcduCNzhsv5sG3MUg9b8gw0HnUqkuHfacy3boi5W13zpUCGEEN2Sl8D9pVLqGtwa8iFAWCn1HQCt9SspznkOODY+kM0ALogH/LUJWdi6jVAsRNT6esGQDRNPYeDnSxn60XOsm3JR2nMtx/K8opgQQoiuz0vgdoBR8Ru463OfEd+eNHBrrW2g6TSv1UmOu95rQfNZKBYi5sS+ft5jENtGHc7g1S+zceLJRIvK055fG6vNcQmFEELki4yBW2t9QXsUpCsLxULNlvPcOPFUBqx9nSEfv8AXh52b9vy9kb25LJ4QQog84mVwmmijZFO6asuHsGPkN9nnsxcJhPakPb9pU7sQQojuSwJ3O6iOVCfdvn7S6fiiYYZ9+Gza82NOTFYKE0IIAXhoKldKleBmOIsCc4A/aq035LpgXUXEiqRcV7u21zC2jT6SfT57kU0HfI9wSd+kx1m2DFATQgjh8lLjfgZ3NPltuMF7QU5L1MXUxmqxbCvl/vUHnwGOw/CVT6c8xsGRAWpCCCEAb4G7GHgBGKK1/i3QogVHuruwFW40orypUNkANu93HIPW/IOiqs0pj6uJSOpTIYQQ3gJ3EPhv4D2l1HigJLdF6lq8LBKyceKp2L4AI95/MuUx1dHqZiPThRBCdD9eAvfPgMHAjcDRuEFceORlKlekuBeb9v8eA/7zL0or/pP0mJgtA9SEEEJ4CNxa62W4QTuGu3DI57kuVFcRs2Np+6aXr4ny0z/Ucv59NZz38XHU+UsYuWJh8ms5McIxGaAmhBDdXcbArZT6M27e8VuBbwKP5bpQXUUoFiJmJ+/fXr4myuOvRaiodlf+Wl9Twj3h79Nn03v0+uqDZsfbji01biGEEJ6aygdrrRcC47TWc2m86pdII2yFU44of/atKJEmMf3R6HF8RT9GvfMYJDkvXe3dcRwqw5UtvqUb8S6EEKLz8ZKrPKiUmgV8qpTqiwRuz2pjtdgkH1BWX9NOFCbIbyJn8sDuuxm05lW27Hdco/3p+strojWsrlidsoafjGma7N9nf3oW9PR8jhBCiI7lpcZ9K3A6cDPwE+DXOS1RF1K/lGcyfUqNpNv/XTSZygHjGfnen/A1mQIWtsIp+7n3RvcSstzFTLzeIlaEPZH06VaFEEJ0Ll4Gpy0GfglMwE2+8mKuC9UVOI6TMtUpwMlTAwSbtHcE/XDytCBrp1xEILSH4R8802i/ZVvUWcn7uStDla0q5666Xa06TwghRMfwMjjtMuAB3JHlJwP35LpQXUEoFiJqp14YZNrYAOcfFWyoefcpNTj/qCDTxgao7juabWOOYsgnL1C4Z2vDOfW15KYiVoSqcFWrylkTq6E2KlnZhBAiX3jp454NHA4s0VrfrZR6N8dl6hJidixjwpRpYwNMGxtIuu8/h5xNvy+WMerf/8Mn376qYXuynOXV0WoidvOA7kXUilIdraY4UNyq84UQQrQvL33cJuDEbwAymdiDqB1tU6azSEkfNkw8lX4b3qb3l+99fd0ky3vuCe9p9Ws5OK2urQshhGh/XgL3k8AbwGil1N+A53Naoi7Ccqw2pyj98sCTqOk5hDFvLcCMD0prWrO2HZuKuoo2vc7u0O60zfpCCCE6Dy+D0+4FfgT8FLhSa317zkvVBcTsGA7Np3y1hOML8Pm0H1G0dyvDPnQHqoVijZcIrY3Wplw21KuwFZZFTIQQIk94GZz2Q+ACrfUi4A6l1Dm5L1b+SzaIrDUqB09g6+gjGfbRYooqNxGxIjjO118IaqI1ba4tW45FdTT1CHghhBCdh5em8kuA+tFRJwA/zl1xuo7WDhZLZt03LsDyFzB2+UPYttUoyUq25mFLP7cQQuQHL4Hb0lrHALTWUWhj+283ka0aN0C0qJwvDj2HXls+ovfaJQ01bMu2qAxXZuU19kb2ZrXMQgghcsPLdLC/KKX+BfwbOBh4IbdF6hqSTdtqi837HceAz19j5PKHCB14JvTel5poTdaCbdSOUhOpIVgUzMr1hBBC5IaXwWm/Af4LN3D/Qmv925yXKs9ZtpX9UdqGiT78v/DF6ij4+9WAmzwlW68j/dxCCJEfvA5OO0tr/b/AjTI4LbO2zuFOpbZ8KOsnzSaoX4JPnmNPOLt5xrPV7C6EECJ3ZHBaDnjJmtZaXx74AyIDDsB58WfUVG7I6rWro9UpFzERQgjROcjgtDzjmD52z7gRQlUMXXZvVq8ds2PUxZIvYiKEEKJzkMFpOeAzfRgkX7YzG5z++1H3zf+i37/upO/wKewcOS0r17UcK6vT2IQQQmRfSwenXS6D0zLzGT4MIzeB28DAZ/ioPOR89vQdjVp2P8GatqU8TSQrhQkhROfmZXDatcD3AQWcGH8u0jANM2c17vrAXetE+ezIn2JaUca9/jvIUp+6BG4hhOjcvDSVb4vfG7hN5V6CvQncD0zEXU3sYq312oT9lwLn4/aX3661frplxe7c/KYf0/AyfKDlDMMN3NXRaup6DubzqT9kv3/dw9BVz/PlhFltvn5NrAbHcXLWYiCEEKJtMgZurfVDic+VUi95uO5JQKHWeqpSagpwB3Bi/Py+uCPVJwGFwKdKqUVa6y416M1vevlO1HL1AbV+sZGtY46h95fvMXLFQnYPnkB139Ftun7MjhGKhSgKFLW5rEIIIbLPS+15bMLtCGC4h+tOB14G0Fq/DRxav0NrvRM4KD5CfSAQ6mpBG3IYuDGI2BEsx4pvMFgz/VIixeWM/+cd+KJtGxUes2OEbZkSJoQQnZWX9tyHEm7zcZf3zKQHkLhqhaWUaohkWuuYUuoy4G1gYbILKKXmKKVWKKVW7N6928NLdi65rHFbtvV14AZiBaWsPuIKiqq2MHbZ/eC0/nuQ7dhELVmbWwghOisvo8qP0lofBfwAOE1r7aWpfA9Qlvg69XPBE657LzAIOFwpdVSS112gtT5Ua31or169PLxk5xIwAzm5romZtP+8ctCBfHHImQxY9waDP/PyESXX1jXEhRBC5FbKwK2UOlgptVIpFVBK/QBYA6xQSn3Pw3WXATPj15kCrEq4rlJKLVZKGUAUd/BabtKMdSCf4cvJdQ3DSDlPfOPEU6gYeiij33mUsh1rWnf9HM4/F0II0Xbpaty3AefF+6JvBI4HDsNtLs/kOSCklFoO3AVcoZSap5T6vtZaAx8CbwHLgbe11q+35U10RrlqKjcNM/WXAsPksyMuJ1zcm/2X3EIg1Lpc5jKiXAghOq900cWntf5IKTUYKNFavweglMpYO9Za28DcJptXJ+y/AbihFeXNG7lqKi/wFZCuUhwrKOOTY67k4P+7knH/vJOPvvNLML3X/o34v45QHalmR90OHA999H7Tz7Aew9qhVEII0bmkC9z1I5RmAK8CKKUCNO67FikU+YvwGb5Gg8iyoUewR8bgWt13NJ9P/RFq2X1sePwxrqs7kz6lBidPDTBtbIYvFEbHNZfXRGvYsMfbwimFvkIGlQ7K2RckIYTorNIF7leVUsuAocD3lVKjgHuB/22XkuW54kAxftOPZWUvcBsYlARK3MBqkHa5l2fNoxhmr+E886+s8u3DM9VH8Phrbh7ydMG7I/u4W7LAieVYhGNhAkEJ3EKI7iVlH7fW+hbgYmCK1vqD+OYFWuub26Ng+S7oC1Lkz24SE7/pp8hf5Cml6rNvRbkuci7/sg7gJv8jHGqsJhJzt2eSq6xvmdTGvKdbtRyLsCXzzYUQ3U/av9Ba68+01pvjj9dprZ9rn2J1DT0Lemb1egEz0NAEnym4VlQ7WPi4NPoTNjn9eCh4F0OMHVRUp+8/Ng0zZwPr0nEch5pojefjbceWtcOFEN1Sx1StuomGZu0sKQ2W4jN9FAWKKPKlr833KXVfdw+lXBz9GX4sHgnczvCS9LXaoC9IcaA4a2X2KhQLEbNjmQ9MUGfJ2uFCiO5HAncOFfoKs1p7LQt+PS6wvLA87bEnTw0QjL/0f5zBXBK9nH2Nzfyx9E7MWOo1t8sLyjukqTxsh7Hslo0HqI5U56g0QgjReUngzqH6AWrZYBomJf6ShueZavPTxgY4/6hgQ81bFx/I3/a7jOFVn7Lf63dBiiBZGizNSnlbKmbHWjwCP2yFPU0dE0KIrqT9OzO7Eb/ppyxQ1qLR0umulbhiV3GgmIAZIGKnrj1PG9t0+tfRrO25l9H/fozIO4+ydsoPISHZit/0U+xv/2ZycPusW5pu1XZsLMfCb8ivsRCi+5Aad44lNm+3RYFZQKGvsOF5sb+YoC/Y4utsOvBEvjzgJIZ8+iLDPnq20b6AGeiQ/m2gxc3k4OZVb815QgiRz6SqkmPFgWJMw8R22paOvUdBj0apSA3DoGdBT6qjLe/nXfeN8wjW7WbfFU9g+Qv4an83/XxZsKzDEpq0dGAauCPRs53gRgghOjsJ3DlWEihhcOngtMlSvOhV2HyFtLJgGQZGy1f0MkxWH/4TTCvCmLcfwfYF2LLfDHoEe7StkG0Qc1oRuKXGLYTohiRw51ihv5DR5aNzcu36GnK6fu5UHNPPp0f+lAOW/Ba17AEMfyGl0w7KfiE9ak2N23ZsLCRwCyG6F+njzmMlgRJKAiWZD0zB8QX45Ogr2TX4IMa8cTc9Vr+cxdK1TKuaynGw7S63IqwQQqQlgTvP9S3q26bzbX+Qj4+9mtA+B2M+NxfefyJLJWsZ6eMWQghvJHDnuR7BHm0eUGYEigmd9gSMOhpeuAzeeShLpfMuamfOod6UgwRuIUT3I4E7z5UES9q8mEmhv5DS0n5wxlOw33fhpV/Av+7MUgkzcxynVYEbWjeNTAgh8pkE7jxnGmabm8t7F/Z2a+3+Ajj1cTjwVFhyA/zjWmiHPuSYHWt1BrTWBnwhhMhXMqq8C+hZ0BO/4W/VlCrTMCkvKP96gy8AP3gICnrAsrthzxY48T7wtzzZi1cxO4ZN674gtOY9CyFEPpPA3QWUBkoJ+oLEYi0PYkEz2Dy7m+mDE+6AnvvAkl9B9VY4fSEUZneZ0nqWY7W+xm1JjVsI0b1IU3kX4DN99ChoXfKU4kCK1KmGAd/6qVv73rAcHjseqja1saTJxRxpKhdCCK8kcHcRPQKtC9w9gxlq0RNnw1mLoHIjLDgKNr7TqtdJJ2JFWj06vC5W16qpZEIIka8kcHcRRYEifIavReeYmN4WFRl1NFz8KgRL4A/fhZULW1nK5GqjtS1P2xoXs2OEYqGslkcIITozCdxdREmgpMVrf/tNv/fVwPrvBz9cCsOmwl8uhZevAis7Nd2aaE2rz43ZMUKWBG4hRPchgbuLCPqCLV5Lu8XnFPeGsxfD5Lnw9v3wh++5o87bwLKtVq1wVs/BoS7a9vXOhRAiX0jg7kJ6FrRs1HfPgp6Nlgr1xOeH42+BWQ/Dlg/gwemw7rWWXSNBNvqoa2Ktr7ELIUS+kcDdhZQESjDwHohLg6Wtf7EJp8EPX4PiPvDED+Cft0ArspiFrFCbs5/tjext9ah0IYTINxK4u5ACXwE+09sANdMwKTAL2vaC9f3eE06Df94E/zMTdq9v0SXqonWtTr5SL2pFqYtJc7kQonuQwN2FBHwBTI8fqWmYLR7MllRBqTvXe9bDsP1TeGA6fPhn8FgD3h3e3eYiRO1omwa4CSFEPpHA3YX4TT+m4T1wt3VVsQaG4da6574JAw+E534Ei86H6h1pTwvFQlkJuA4OVZGqNl9HCCHygaQ87UICZsBtKvfQZWxiEvBlKXDX6zUczv+rm+P8nzfDF2/A8bfCgae4wb2J6mh12pSly9dEefatKBXVDn1KDU6eGmDa2ORl3h3aje3Ynr+4CCFEvspJ4FZKmcD9wEQgDFystV6bsP8KYHb86d+01jfkohzdUYGvwFMt1m/6s9NU3pTpg2/NAzXTXdt78cXw8TNwwp1u7vMEeyN7U/ZvL18T5fHXIkTiA84rqh0efy0CkDR4R6wI1ZHqVqd+FUKIfJGr6slJQKHWeiowH7ijfodSal/gLGAaMAX4jlJqQo7K0e0U+LwNOPN6XKv13w8u/DscdzP853W49zBY9nuI17Adx2FX3a6Upz/7VrQhaNeLxNztyUg/txCiu8hV4J4OvAygtX4bODRh35fADK21pbV2gAAgqa+yJOmCIUkU+gtzXBLc2vfUH8Olb8PIb8E/fgkPfgvWv0lNtCZtxrOK6uSD21JtB6gMV7a1xEII0enlqo+7B5A4WshSSvm11jGtdRTYqZQygNuAlVrrNU0voJSaA8wBGDx4cI6K2fV4neKVtYFpXvQaAWf+L+iX4KVfwOMn4Fcz8U84iWiPAUlP6VNqJA3SfUpTz1PfE9lDzI7lpgugi7Mdm511Oz0fX+gvpEdQuiWE6Ai5+gu3B0hc5NnUWjc0fCqlCoHHgL3Aj5NdQGu9AFgAMGvWLMmu4ZHf5+0jbdfAXU8dDyOPgGV3E1z2Ow77/BW+GjeTDQedSqywcRA4eWqgUR83QNDvbk+lfsGRNiWW6aaqQlWs2bWGmOMti13vwt4c2PfAlmfeE0K0Wa6aypcBMwGUUlOAVfU74jXtvwAfaq1/pLVuW9os0YjP8Hmay531EeVeBYvhqKv4/Oz/Zevooxjy6V+ZvGguQz9ajBmLNBw2bWyA848KNtSw+5QanH9UMOWocnDznsuCI62ztXar56ANsCe8R7omhOgguapxPwccq5RaDhjABUqpecBawAccARQopY6PH3+V1vqtHJWlW/EZPrcWlKaNwsRs8RKg2WTZFlUFxWz51mV8tf/32PfdPzDq3T+wz2cvseGgU9k6+igcnzv1K12gbsrGlgxqrbA3vJfdoZYlwok5MbbVbqNXYa8clUoIkUpOArfW2gbmNtm8OuFxO4yM6p7qk7BYTuqGDMMwOjRwh6wQUdsdHV7TezirjruW8s0fsu+7T6DevI/hK59m48ST2TL22zgtbBmQkeUttzO0k4gdyXxgE7vqdlEdqZauCSHamWSr6GIaatxpmEbH1rhDsVCzLxaVgyfy/vdv46PjriNc0puxyx9kytM/Yp9P/g8zFvZ87epItSw40gKhWIhtNdtadW7EjrRoQJsQIjtk+G0X4zf9Gfu4DYwOHXldF6vDdpIkXjEMdg05mF37TKJ8y0eMeP/PjHn7EYZ/sIivxs1k87gZRIvK0147YkcIxUIUBYpyU/guZlfdrjaNC9has5WBJQPbZ3qhEAKQwN3l+E0/AV8AJ00nd8AMdGjgThq0ExkGlYMn8sHgifTc8jHDPlrMyJVPMfzDRWwbdQSb9v8eNX1GJj3VcZw2rzbWXcTsGFtqtrTpGmErzO7QbgaVDspSqYQQmUjg7mIMw2D/PvtnPK4jA3dLphBVDTqAVYMOoKhyE0M+/SsDP1/KoM+XsHvQgXw1/gQqhh2Gk/BeDAzPK6R1d5XhSmpibRsT4OCwpWYL/Yv7e15SVgjRNhK4u6DO3mzpo+V/4OvKh/D5tLl8ccjZDNKvsM+nL3LAkt8SLurFtjFHsWXssdT1HIxhGLLQiEfba7dnbv3woCZaQ1W4it5FvbNQKiFEJhK4RbszzdYH1lhBKV9OmMWmA06k96b3GaT/wdBVzzPso8VUDjyAneNmYvYeD/4c52LPc62ZApaK5Vhsq90mgVuIdiKBW7S7bNSIHdNHxbDDqBh2GMHaXW4Tuv4Ho1+7FWfZ/e7qZAeeAqOOho5KNtOJVYQqGqbkZcPu0G5qojWUBEqydk0hRHISuEW7M+L/0g2ga4lIcW82TjyFjRNm0X/HWsZ99TF8+hdY9TQU9YLxJ8IBp8Dwae7CJ92c4zjsCqVema01onaU6ki1BG4h2oEEbtHuTMPEMIzsz7c2TGr3ORjjkDkw83ZYtwRWPQMfPQ3vPQ7FfUHNAHUCjDoKuumUsZpoDaFYdlPDOjhURaoYUJJ80RghRPZI4BbtriRQQsAMELa8J1bxqryw3H3gD7qLmqjjIVIDa/4Oq1+ET/8PVi6EQLHbjK5mwuhjoGxg1svSWdVEa7LaTF6vMlQpq7MJ0Q7kf5hod4X+QkoCJVkP3AYGPYM9m+8IlsABs9xbLAIb3oTVf3MD+eq/uscMOMAN5KOPgWFTu/TgtqpIVda6KRJFrAg10Rp6FiT5DITIE6FYiIjVOAVwj4LOtYStBG7RIXoV9Mp6P2vADGTuY/UH3QA96miYeRtsXeU2qa9dAm8/AMt/79bGh0+L374Jgyd1mUAes2NUhipzc20nRnWkWgK3yGs763ayfs/6hudBM8ikAZM6ZinkFCRwiw5RGizFZ/jSLobSUsX+YooDxd5PMAwYNMG9Tb8CwtWw/k03kH/xL1jyK/c4fyEMOezrQD7kMHd50jwUtaItWr6zpeosWZ1N5LeIFSFmf/1/xMQkakUlcAtRGiglYAawrOwF7jbPIy4ojQ9em+E+r6mAjW/BhmXu7Y3bwLkFTL/btL7PIbDPwe5937EyYh23u0KIfNa0C892bCJ2hGI6z5d1CdyiQwR8AcoLy9laszUr1/MZPkoDWV5esqQPjPuuewMIVcGX/3aD+FfvuaPVVzzq7guWwqCJbiAffDAMPBB67yvBXIg84jgOtdHaRtssxyJqZX8wZ1tI4BYdpldBL7bVbMvKQKmgL0hZsCwLpUqjsCeMOda9Adg2VKx1g/jm9937dx6C+oEt/kLot59bOx+wPwwY7z4u6ZvbcgohWiUUCzVbm97BoTZWm+KMjiGBW3SYXoW9KPQVZqVfdEDxAALtnSHNNKHfWPd20BnutlgEtn/q3rZ94t4+fwU+WPj1ecV9oe8Y6DPavfUdA33GQK8R7uA5IUSHCFmhRv3b9WoibVuMJ9skcIsOE/QF6V/Snw17NrTpOgEzQO/CTpIn2x+EwQe5t0TV278O5Ds17FwLa16Gmh1fH2P4oNfweECPB/LyYV/fCtreFWAapqd+6OVrojz7VpSKaoc+pQYnTw0wbWzmL0aywIvIZ3XRuqQDZquj1UTtzjNATQK36FC9C3uzuXpzmxKC9Czomftm8rYq7e/eRh3VeHtdJVSsg4rPYefnbtN7xVp3VHusSUtEUe/Ggbx8OPQcAj0GQdlgtwk+Q596gb+AIn9R2jn0y9dEefy1CJF4xaOi2uHx19zmw3TB28DI/jgDIdqJ7dhsr9uedF/IClEVrqJvUefo5pLALTpUj2APyoJlrZ7TbWIyoGhAi9b47lSKymHIIe4tkW27tfHKjVC5wb2v+tK937HabX5vmrbU8EHpgHggr78NdO9LB7iD7Ur60ctfTGW4MmWRnn0r2hC060Vi7vZ0gTtgBlo2HU+ITmRvZC/V0eqk+2zHZkftDgncQgAYhsGA4gHsDu1u1SC1okDR12lOuxLThLIB7m3oYc33O048sH8Je7ck3La69xXr3DnpSZKtDAf2CRQRLexJtLAHkaKeXz8uLOfw2gKqzBL2OMVUUUqVU0IVJVRUp+9/L/QXUuyXwC3y067QrqT92/V2h3dTG63tFF9OJXCLDtersBclgZJWNZf3L+7f/oPSOgPD+Lr5PZ1onRvIq3dA7U6o2Ul07xZ27FyNr66CQN0eCqt3UrZzHYHQHkw7xl0p4nOYAMaTJUSDpcQKSogl3EcLSulRNhijx0p3alxBqZtqNliW8LjUvfnkz47oXGqjtRmnpkasCNtrtzOi54j2KVQa8j9IdLigL8iBfQ/EduwWn+uXIJBeoMidT9573683ATu2f8ju8O7GxzoO/kgNq1bv4tW3Kym2a+hJDT2MWnqbNXxzeB3DS+rwR2rwh6sJhioprvrKfR6pwfD6+fkLvw7kBWXxxyXgL4JAYcJ9oVv+RvfFTY5pcu8rcNdf9wXdNLWm3/2SI0Qam2s2e1o7YXPNZvoW9aU02LFjOeSvnugUCrpILvB80buod/PAbRjECkoZN7GU3UWDmo0qD48NsCbF9QrMAAeVK4psCyLV7i1c3eRxTfLn4b3urXqHOyAvGr/FQu59W+f5+4JJbgE3sNcH+ab76gO/L+AG/4abzx1L0HRbo+dmk+dNjjF8Sc6Jn2f4wDCb38wk2xpuPvfLSdLzEq8nX2CS2RPZw7aabZ6OjVgRNtdsZmxwbI5LlZ4EbiG6oZ7BngTMQMruiWljvU3/arheYS+KGhLLZHFNbsdxE9o0BPJaiIbiAT7xPh7krQhYUbDCCY/j97Gm2xJvUffaoUp3Ln7iPtsCO5ZwH79lMc9+u2kW8M3GgT3xOcSDvZHmnsbPPZ2T7Bq08BwjxTlpXr/hZb4+18HBjNaynxVu9MXGwaC6776sP/jMZj/CHbU76FfUj16FvVr+888SCdxCdEOlwVKK/EVEI21P5Whg0KewTxZKlezihlvz7YwtMo7jBnMnMaA3Ce7Ntlnpj3Hslt1syy1H0v1W/D7JfttKeN50f/yaOEnuSbG9vlUk1b4kx9Y/T3zs9b7hnIRzbTtD2Wh2bsyO4MRCBBNbdeIPI7XJA3PUjrJhzwZKg6UdNq9bArcQ3ZBpmPQt6sueyJ42XyvoC3bPpTwNIz7Qzg90wi8WIq1QLMRHOz9qlpvci6pwFVurtzK0x9AclCwzCdxCdFM9CnrgN/1pp8B4uk6wB4X+wiyVSoj2sWnvpqRB20vWQAeHL6u/pLygnLKC9k/+JPkJheimegR7UOhre8Bt83KqQrSzirqKpNO/6rMGVlS77eX1WQOXr2nepRSxImzYu6FVs2HaSgK3EN2UaZhtbuL2m35JuiLyStRy+6hjTvOWpnRZA5PZFdrF9trkaVJzKSdN5UopE7gfmAiEgYu11mubHNMPWAZM0FqHml9FCJFrbc3xLmlORb7ZXLOZvZG9SffV17S9brcdm417NlJeUN6u3UW5qnGfBBRqracC84E7EncqpY4DXgEG5uj1hRAeFPuL8Zut//5eFijrNCsmCZFJKBZic/XmlOmV+5Qmn+ueajtAbay23WvduQrc04GXAbTWbwOHNtlvA98GWreyhBAiK4oCRW0KvB0xMEeI1qoMVxKxIin3nzw1QLDJ99ig392ezvba7Vh2+83rz9Wo8h5AVcJzSynl11rHALTW/wBQSqW8gFJqDjAHYPDgwTkqphDdW8AMUBYso67pEqIemIZJib8kB6USIjd21O1Iu5hR/ejxlq5FXxeroypc1W4DNXMVuPcAiV/Fzfqg7ZXWegGwAGDWrFltzHkohEiltcHXb/hlGpjIG+FYmOpI8mU7E7U0ayCA5VhUR6vbLXDnqql8GTATQCk1BViVo9cRQrRRa/PEm4ZJ0Jd+qU8hOougL0jQzM3vq4FBkb8oJ9dOJleB+zkgpJRaDtwFXKGUmqeU+n6OXk8I0UpBM4hptPxPQYGvoE0D24RoT4Zh0LMwNxn+/Ka/XQN3Tv7Xaa1tYG6TzauTHDciF68vhPAu6AviM3wtTiRRFGi/P1RCZENZoAwTE5vsJk0p8BW067RIScAiRDcX9LWuxp2NrGtCtKe+RX3pX9w/q9cMmkFGlY9q1f+h1pLALUQ3FzADrZoSJmuoi3zjM32M7DmS8oLy7FzP8DGyfGS7L/EpHVRCdHOGYVDsL6Y6mnnEbT3TMCkwJXCL/FPgL2B0+WhW71pNxE49pzsTA4OBJQMZWNz+ecQkcAsh3P65Fkzl9ht+qXGLvFUaLGVCvwltTpoS9AUxjNRZ1XJFArcQosXzsX2mjwKfBG6Rv4K+IPg6uhStI33cQggKfAX4DO9/xWQqmBAdR/7nCSEo8BVQGij1PCWsR7BHjkskhEhFArcQguJAMZMGTOroYgghPJCmciGEECKPSOAWQggh8ogEbiGEECKPSOAWQggh8ogEbiGEECKPSOAWQggh8ogEbiGEECKPSOAWQggh8ogEbiGEECKPSOAWQggh8ogEbiGEECKP5EWu8k8++WSnUmpDBxahL7CzA1+/vcn77bq603sFeb9dWVd/r8NT7TAcx2nPguQlpdQKrfWhHV2O9iLvt+vqTu8V5P12Zd3pvTYlTeVCCCFEHpHALYQQQuQRCdzeLOjoArQzeb9dV3d6ryDvtyvrTu+1EenjFkIIIfKI1LiFEEKIPJIX08Hai1LKBO4HJgJh4GKt9dqE/T8EfgTEgN9orf/aIQXNAqVUAHgMGAEU4L6fFxL2XwFcDOyIb/qR1lq3dzmzSSn1PrAn/vQLrfUFCfu6zGcLoJQ6Hzg//rQQOAgYqLWujO+/G5gO7I0fc6LWuqpdC5kFSqnJwC1a6yOVUqOBxwEH+Bi4VGttJxxbBCwE+uO+7/O01juaX7XzavJ+DwLuASzcv1fnaq23NTk+5e98PmjyficBfwU+j+9+QGv9vwnH5v3n65UE7sZOAgq11lOVUlOAO4ATAZRSA4GfAIfi/iF8Uyn1D611uKMK20ZnAxVa63OUUr2BD4AXEvYfgvuH4L2OKFy2KaUKAUNrfWSSfV3ts0Vr/ThuEEMpdR/wWH3QjjsEOE5rnbfzYJVSvwDOAWrim+4ErtFa/1Mp9SDu/93nEk65BFiltb5eKTUbuAb47/Ysc1skeb93A/+ltf5AKfUj4EpgXsLxKX/n80GS93sIcKfW+o4Up+T159sS0lTe2HTgZQCt9du4f8jrfQNYprUOx2sma4EJ7V/ErFkE/DL+2MCtaSY6BLhKKfWmUuqqdi1ZbkwEipVSryillsa/mNXrap9tA6XUocD+WusFCdtMYAywQCm1TCl1YYcVsG3WAbMSnh8CvB5//BLw7SbHN/z/TrG/s2v6fmdrrT+IP/YDoSbHp/udzwfJPt8TlFJvKKUeVUqVNTk+3z9fzyRwN9YDSGwutJRS/hT79gI926tg2aa1rtZa743/8j+D++000Z+BucDRwHSl1Hfbu4xZVgvcDhyH+77+1FU/2yauBm5osq0Et4n1bGAG8GOlVN59UdFaPwtEEzYZWuv60bbJPsPEzznvPuOm71drvQVAKTUNuAy4q8kp6X7nO70kn++/gZ9rrQ8H/gNc1+SUvP58W0ICd2N7gMRvcabWOpZiXxlQ2U7lygml1FDgNeAJrfWTCdsN4Hda651a6wjwIjCpg4qZLWuAhVprR2u9BqgABsX3dbnPFkApVQ4orfVrTXbVAndrrWu11nuBpbi1s3xnJzxO9hkmfs5d5TM+HXgQOCFJf2663/l89FxC191zNP+b1OU+31QkcDe2DJgJEG9WWpWw79/At5RShUqpnsA43AEweUkpNQB4BbhSa/1Yk909gI+VUqXxIH40kO993RfijllAKTUY9z1uie/rUp9tgsOBJUm2jwWWKaV88UGK04H327VkubFSKXVk/PHxwL+a7G/4/51if15RSp2NW9M+Umv9nySHpPudz0d/V0p9I/74GJr/TepSn286edNs0k6eA45VSi3H7fe9QCk1D1irtX5BKfV73F8GE/h/WuumfUr55GqgF/BLpVR9X/fDQInWeoFS6mrc2ngYWKK1/lsHlTNbHgUeV0q9iTvq+ELgJ0qprvjZ1lO4TYruk8a/y08Ab+M2Rf5Ra/1JB5Uxm34KPKyUCgKf4XYBoZR6Bfgu8ADwh/jvQAQ4s6MK2lZKKR/we2AjsFgpBfC61vo6pdQfcbu+mv3OJ7Qg5qNLgHuUUlFgKzAHuubnm4kkYBFCCCHyiDSVCyGEEHlEArcQQgiRRyRwCyGEEHlEArcQQgiRRyRwCyGEEHlEArcQQgiRRyRwCyGEEHlEErAIIXIivsziy8DRWmvL4zlB4NX4OfmcLESInJHALUQeiKfyfBr4FDcLVg/crGhnAdMS9hm466tforVemeJahcBqrfWIFpahEDhba/1IfL3v/bTW89OcciGw2GvQBtBaR5RSS4DTgT+1pHxCdBcSuIXIH0u11rPrnyilngS+D+xM3KeU+g7wa9w0kNk0ELgYeMTj8WeRkHZSKbUI2AYcBAyN7/8RMBn4l9b6ovihzwM3I4FbiKQkcAuRh+JNyoOA3Ul29wK2Nzm+FDcQ9sJdb7x+ewB3dakxuGNergFGACfhrrDUF/hVfInF/weMV0pdi5sje0o8T3Q/4IEma34HgX211usTinEg8JbW+rJ4LvxHgSOBHcAmpVSB1jqMu8DLYS3+oQjRTcjgNCHyx9FKqX8qpT7FXc3rOa31kib73gL+B3c99URzgY/jaxk/lLD9YmBnfPuJwH3x7SXAscB3gDvj6zjfCHyqtf5V/Jgo7lrPPwAub/J6fUlYVjHezF4O/C6+yQEe1VpvifdlW7gLQxBvWo/E14oXQjQhgVuI/LFUa30k8C3cIPdF031a66m46xT/OT44rN5Y3OVL0Vq/gxt0wa0Fz1RK/RN4FrcVri/uSlO21nobbq2+X5LyvK+1dnBXaipusq8OKEx4vn/8+Po1sycC7wAopYYAm+PXqlcAdIUV2oTIOgncQuQZrXUFcDbwiFJqUJJDtiXZ9ikwFUApNQkIxLevBp6KfyE4HlgE7AIOiR87AHcg3HbApvHfjJRLC2qtdwO+eE0b3C8IHyYcMgH4KP54YsJjlFJ9cFsBogghmpHALUQe0lp/irse8+/jm+qbypcArwDztNZ1Cac8COwbX6v4Utx11sFtNt9PKfU6sBzYgBugB8av9SLw43jz9XYgqJS6xWMxXwGmxx8fCHwADc3mRfHgDo2DOMBR8dcVQiQh63ELIRrxONXLy3UOBq7QWp/TwvMWA/O11mva8vpCdFVS4xZC5ITW+n3gNaWUz+s58dHoz0vQFiI1qXELIYQQeURq3EIIIUQekcAthBBC5BEJ3EIIIUQekcAthBBC5BEJ3EIIIUQekcAthBBC5BEJ3EIIIUQekcAthBBC5JH/Dx+Z4+aLLUHTAAAAAElFTkSuQmCC\n",
-      "text/plain": [
-       "<Figure size 576x360 with 1 Axes>"
-      ]
-     },
-     "metadata": {
-      "needs_background": "light"
-     },
-     "output_type": "display_data"
-    }
-   ],
+   "outputs": [],
    "source": [
     "%matplotlib inline\n",
     "results.plot()"
@@ -261,9 +199,9 @@
  ],
  "metadata": {
   "kernelspec": {
-   "display_name": "Python 3 (ipykernel)",
+   "display_name": "api_updates",
    "language": "python",
-   "name": "python3"
+   "name": "api_updates"
   },
   "language_info": {
    "codemirror_mode": {
@@ -275,9 +213,9 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.8.11"
+   "version": "3.9.13"
   }
  },
  "nbformat": 4,
- "nbformat_minor": 1
+ "nbformat_minor": 4
 }
diff --git a/jupyter_notebooks/Tutorials/algorithms/advanced/Time-dependent-GST.ipynb b/jupyter_notebooks/Tutorials/algorithms/advanced/Time-dependent-GST.ipynb
index 82a282774..72468f428 100644
--- a/jupyter_notebooks/Tutorials/algorithms/advanced/Time-dependent-GST.ipynb
+++ b/jupyter_notebooks/Tutorials/algorithms/advanced/Time-dependent-GST.ipynb
@@ -12,7 +12,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 1,
+   "execution_count": null,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -31,7 +31,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 2,
+   "execution_count": null,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -82,20 +82,9 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 3,
+   "execution_count": null,
    "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "[[1.  0.  0.  0. ]\n",
-      " [0.  0.9 0.  0. ]\n",
-      " [0.  0.  0.9 0. ]\n",
-      " [0.  0.  0.  0.9]]\n"
-     ]
-    }
-   ],
+   "outputs": [],
    "source": [
     "t = 0.1\n",
     "Gi_at_t = MyTimeDependentIdle(1.0)\n",
@@ -113,7 +102,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 4,
+   "execution_count": null,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -130,20 +119,9 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 5,
+   "execution_count": null,
    "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "OutcomeLabelDict([(('0',), 0.9050000000000002), (('1',), 0.09499999999999997)])"
-      ]
-     },
-     "execution_count": 5,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
+   "outputs": [],
    "source": [
     "mdl.probabilities( ('Gi','Gi'), time=0.1)"
    ]
@@ -157,17 +135,9 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 6,
+   "execution_count": null,
    "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "[[0.905]]\n"
-     ]
-    }
-   ],
+   "outputs": [],
    "source": [
     "E = mdl['Mdefault']['0']\n",
     "rho = mdl['rho0']\n",
@@ -184,20 +154,9 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 7,
+   "execution_count": null,
    "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "OutcomeLabelDict([(('0',), 0.8600000000000002), (('1',), 0.14)])"
-      ]
-     },
-     "execution_count": 7,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
+   "outputs": [],
    "source": [
     "Gi_with_duration = pygsti.baseobjs.Label('Gi',time=0.1)\n",
     "mdl.probabilities( (Gi_with_duration, Gi_with_duration), time=0.1)"
@@ -212,17 +171,9 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 8,
+   "execution_count": null,
    "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "[[0.86]]\n"
-     ]
-    }
-   ],
+   "outputs": [],
    "source": [
     "Gi_at_t.set_time(0.1)\n",
     "Gi_matrix_at_t1 = Gi_at_t.to_dense().copy()  # .copy() is needed because copies of the internal dense rep are not made by default (for performance)\n",
@@ -240,20 +191,9 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 9,
+   "execution_count": null,
    "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "OutcomeLabelDict([(('0',), 0.8600000000000002), (('1',), 0.14)])"
-      ]
-     },
-     "execution_count": 9,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
+   "outputs": [],
    "source": [
     "mdl.probabilities( (('Gi','!0.1'),('Gi','!0.1')), time=0.1)"
    ]
@@ -270,34 +210,14 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 10,
+   "execution_count": null,
    "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Dataset outcomes: OrderedDict([(('0',), 0), (('1',), 1)])\n",
-      "Gi :\n",
-      "Outcome Label Indices = [0 1 0 1 0 1]\n",
-      "Time stamps = [0.  0.  0.1 0.1 0.2 0.2]\n",
-      "Repetitions = [100.   0.  95.   5.  90.  10.]\n",
-      "\n",
-      "GiGi :\n",
-      "Outcome Label Indices = [0 1 0 1 0 1]\n",
-      "Time stamps = [0.  0.  0.1 0.1 0.2 0.2]\n",
-      "Repetitions = [100.    0.   90.5   9.5  82.   18. ]\n",
-      "\n",
-      "\n",
-      "\n"
-     ]
-    }
-   ],
+   "outputs": [],
    "source": [
     "circuits = pygsti.circuits.to_circuits([ ('Gi',), ('Gi','Gi')]) # just pick some circuits\n",
     "\n",
     "ds = pygsti.data.simulate_data(mdl, circuits, num_samples=100,\n",
-    "                                       sample_error='none', seed=1234, times=[0,0.1,0.2])\n",
+    "                                       sample_error='none', seed=1234, times=[0,0.2])\n",
     "print(ds)"
    ]
   },
@@ -312,34 +232,14 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 11,
+   "execution_count": null,
    "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Dataset outcomes: OrderedDict([(('0',), 0), (('1',), 1)])\n",
-      "Gi!0.05 :\n",
-      "Outcome Label Indices = [0 1 0 1 0 1]\n",
-      "Time stamps = [0.  0.  0.1 0.1 0.2 0.2]\n",
-      "Repetitions = [100.   0.  95.   5.  90.  10.]\n",
-      "\n",
-      "Gi!0.05Gi!0.05 :\n",
-      "Outcome Label Indices = [0 1 0 1 0 1]\n",
-      "Time stamps = [0.  0.  0.1 0.1 0.2 0.2]\n",
-      "Repetitions = [97.5   2.5  88.25 11.75 80.   20.  ]\n",
-      "\n",
-      "\n",
-      "\n"
-     ]
-    }
-   ],
+   "outputs": [],
    "source": [
     "circuits = pygsti.circuits.to_circuits([ (('Gi','!0.05'),), (('Gi','!0.05'),('Gi','!0.05'))])\n",
     "\n",
     "ds = pygsti.data.simulate_data(mdl, circuits, num_samples=100,\n",
-    "                                       sample_error='none', seed=1234, times=[0,0.1,0.2])\n",
+    "                                       sample_error='none', seed=1234, times=[0,0.2])\n",
     "print(ds)"
    ]
   },
@@ -353,11 +253,12 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 12,
+   "execution_count": null,
    "metadata": {},
    "outputs": [],
    "source": [
-    "prep_fiducials, meas_fiducials = smq1Q_XYI.prep_fiducials(), smq1Q_XYI.meas_fiducials()\n",
+    "#taking just the 4/3 prep/meas fiducials below to produce a minimally informationally complete set.\n",
+    "prep_fiducials, meas_fiducials = smq1Q_XYI.prep_fiducials()[0:4], smq1Q_XYI.meas_fiducials()[0:3]\n",
     "germs = smq1Q_XYI.germs()\n",
     "maxLengths = [1, 2]\n",
     "idle_gate_label = () # the smq1Q_XYI model labels an idle circuit layer by an empty tuple, not 'Gi'\n",
@@ -371,7 +272,7 @@
     "\n",
     "#Data for initial non-sparse mode\n",
     "ds = pygsti.data.simulate_data(mdl_datagen, edesign.all_circuits_needing_data, num_samples=10,\n",
-    "                                       sample_error=\"binomial\", seed=1234, times=np.linspace(0,0.3,10))"
+    "                                       sample_error=\"binomial\", seed=1234, times=np.linspace(0,0.3,5))"
    ]
   },
   {
@@ -387,265 +288,11 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 13,
+   "execution_count": null,
    "metadata": {
     "scrolled": true
    },
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "--- Iterative GST: Iter 1 of 2  92 circuits ---: \n",
-      "  MapLayout: 1 processors divided into 1 x 1 (= 1) grid along circuit and parameter directions.\n",
-      "     8 atoms, parameter block size limits (None,)\n",
-      "  *** Distributing 8 atoms to 1 atom-processing groups (1 cores) ***\n",
-      "      More atom-processors than hosts: each host gets ~1 atom-processors\n",
-      "      Atom-processors already occupy a single node, dividing atom-processor into 1 param-processors.\n",
-      "  *** Divided 1-host atom-processor (~1 procs) into 1 param-processing groups ***\n",
-      "  --- TimeDependentPoissonPicLogLFunction GST ---\n",
-      "    --- Outer Iter 0: norm_f = 1458.18, mu=1, |x|=2.73861, |J|=84056.2\n",
-      "        - Inner Loop: mu=1124.47, norm_dx=1.45626e-06\n",
-      "            (cont): norm_new_f=955.104, dL=1111.98, dF=503.078, reldL=0.762583, reldF=0.345003\n",
-      "            Accepted! gain ratio=0.452414  mu * 1.00086 => 1125.44\n",
-      "    --- Outer Iter 1: norm_f = 955.104, mu=1125.44, |x|=2.73835, |J|=7225.05\n",
-      "        - Inner Loop: mu=1125.44, norm_dx=2.64525e-05\n",
-      "            (cont): norm_new_f=661.735, dL=561.942, dF=293.369, reldL=0.588357, reldF=0.307159\n",
-      "            Accepted! gain ratio=0.522062  mu * 0.999914 => 1125.34\n",
-      "    --- Outer Iter 2: norm_f = 661.735, mu=1125.34, |x|=2.73558, |J|=1000.98\n",
-      "        - Inner Loop: mu=1125.34, norm_dx=5.29004e-05\n",
-      "            (cont): norm_new_f=566.661, dL=86.3544, dF=95.0744, reldL=0.130497, reldF=0.143674\n",
-      "            Accepted! gain ratio=1.10098  mu * 0.333333 => 375.113\n",
-      "    --- Outer Iter 3: norm_f = 566.661, mu=375.113, |x|=2.73022, |J|=444.999\n",
-      "        - Inner Loop: mu=375.113, norm_dx=6.84181e-05\n",
-      "            (cont): norm_new_f=529.67, dL=28.4205, dF=36.9905, reldL=0.0501543, reldF=0.065278\n",
-      "            Accepted! gain ratio=1.30154  mu * 0.333333 => 125.038\n",
-      "    --- Outer Iter 4: norm_f = 529.67, mu=125.038, |x|=2.72428, |J|=293.629\n",
-      "        - Inner Loop: mu=125.038, norm_dx=0.000193623\n",
-      "            (cont): norm_new_f=512.191, dL=13.9916, dF=17.4796, reldL=0.0264158, reldF=0.033001\n",
-      "            Accepted! gain ratio=1.24929  mu * 0.333333 => 41.6792\n",
-      "    --- Outer Iter 5: norm_f = 512.191, mu=41.6792, |x|=2.72059, |J|=222.497\n",
-      "        - Inner Loop: mu=41.6792, norm_dx=0.00119679\n",
-      "            (cont): norm_new_f=502.974, dL=6.6629, dF=9.2165, reldL=0.0130086, reldF=0.0179943\n",
-      "            Accepted! gain ratio=1.38326  mu * 0.333333 => 13.8931\n",
-      "    --- Outer Iter 6: norm_f = 502.974, mu=13.8931, |x|=2.72329, |J|=192.593\n",
-      "        - Inner Loop: mu=13.8931, norm_dx=0.0105899\n",
-      "            (cont): norm_new_f=487.572, dL=9.83005, dF=15.4024, reldL=0.0195439, reldF=0.0306226\n",
-      "            Accepted! gain ratio=1.56686  mu * 0.333333 => 4.63102\n",
-      "    --- Outer Iter 7: norm_f = 487.572, mu=4.63102, |x|=2.74577, |J|=186.93\n",
-      "        - Inner Loop: mu=4.63102, norm_dx=0.0686085\n",
-      "            (cont): norm_new_f=59020.7, dL=16.8328, dF=-58533.1, reldL=0.0345237, reldF=-120.05\n",
-      "            Rejected!  mu => mu*nu = 9.26205, nu => 2*nu = 4\n",
-      "        - Inner Loop: mu=9.26205, norm_dx=0.0200332\n",
-      "            (cont): norm_new_f=482.056, dL=9.25978, dF=5.51554, reldL=0.0189916, reldF=0.0113123\n",
-      "            Accepted! gain ratio=0.595644  mu * 0.993 => 9.19722\n",
-      "    --- Outer Iter 8: norm_f = 482.056, mu=9.19722, |x|=2.77247, |J|=2495.51\n",
-      "        - Inner Loop: mu=9.19722, norm_dx=0.031166\n",
-      "            (cont): norm_new_f=1014.24, dL=19.8836, dF=-532.186, reldL=0.0412474, reldF=-1.10399\n",
-      "            Rejected!  mu => mu*nu = 18.3944, nu => 2*nu = 4\n",
-      "        - Inner Loop: mu=18.3944, norm_dx=0.00854571\n",
-      "            (cont): norm_new_f=471.562, dL=15.5032, dF=10.4943, reldL=0.0321606, reldF=0.0217698\n",
-      "            Accepted! gain ratio=0.676908  mu * 0.955708 => 17.5797\n",
-      "    --- Outer Iter 9: norm_f = 471.562, mu=17.5797, |x|=2.78264, |J|=337.615\n",
-      "        - Inner Loop: mu=17.5797, norm_dx=0.00998894\n",
-      "            (cont): norm_new_f=466.6, dL=8.15748, dF=4.96203, reldL=0.0172989, reldF=0.0105225\n",
-      "            Accepted! gain ratio=0.608279  mu * 0.989844 => 17.4012\n",
-      "    --- Outer Iter 10: norm_f = 466.6, mu=17.4012, |x|=2.79289, |J|=153.455\n",
-      "        - Inner Loop: mu=17.4012, norm_dx=0.0198957\n",
-      "            (cont): norm_new_f=30022, dL=10.548, dF=-29555.4, reldL=0.0226062, reldF=-63.3421\n",
-      "            Rejected!  mu => mu*nu = 34.8023, nu => 2*nu = 4\n",
-      "        - Inner Loop: mu=34.8023, norm_dx=0.00513341\n",
-      "            (cont): norm_new_f=468.493, dL=6.14822, dF=-1.89275, reldL=0.0131766, reldF=-0.00405647\n",
-      "            Rejected!  mu => mu*nu = 139.209, nu => 2*nu = 8\n",
-      "        - Inner Loop: mu=139.209, norm_dx=0.000326693\n",
-      "            (cont): norm_new_f=463.733, dL=1.78423, dF=2.86706, reldL=0.00382389, reldF=0.00614458\n",
-      "            Accepted! gain ratio=1.60689  mu * 0.333333 => 46.4031\n",
-      "    --- Outer Iter 11: norm_f = 463.733, mu=46.4031, |x|=2.79745, |J|=171.024\n",
-      "        - Inner Loop: mu=46.4031, norm_dx=0.002531\n",
-      "            (cont): norm_new_f=460.641, dL=2.14449, dF=3.09156, reldL=0.00462441, reldF=0.00666668\n",
-      "            Accepted! gain ratio=1.44163  mu * 0.333333 => 15.4677\n",
-      "    --- Outer Iter 12: norm_f = 460.641, mu=15.4677, |x|=2.80591, |J|=225.884\n",
-      "        - Inner Loop: mu=15.4677, norm_dx=0.0191469\n",
-      "            (cont): norm_new_f=456.758, dL=4.19681, dF=3.88328, reldL=0.00911079, reldF=0.00843017\n",
-      "            Accepted! gain ratio=0.925295  mu * 0.384596 => 5.94882\n",
-      "    --- Outer Iter 13: norm_f = 456.758, mu=5.94882, |x|=2.82807, |J|=163.779\n",
-      "        - Inner Loop: mu=5.94882, norm_dx=0.148192\n",
-      "            (cont): norm_new_f=168561, dL=16.0542, dF=-168104, reldL=0.0351481, reldF=-368.038\n",
-      "            Rejected!  mu => mu*nu = 11.8976, nu => 2*nu = 4\n",
-      "        - Inner Loop: mu=11.8976, norm_dx=0.0421518\n",
-      "            (cont): norm_new_f=34961.4, dL=10.6471, dF=-34504.7, reldL=0.02331, reldF=-75.5426\n",
-      "            Rejected!  mu => mu*nu = 47.5905, nu => 2*nu = 8\n",
-      "        - Inner Loop: mu=47.5905, norm_dx=0.00288744\n",
-      "            (cont): norm_new_f=454.566, dL=3.83053, dF=2.19244, reldL=0.00838633, reldF=0.0048\n",
-      "            Accepted! gain ratio=0.57236  mu * 0.996969 => 47.4463\n",
-      "    --- Outer Iter 14: norm_f = 454.566, mu=47.4463, |x|=2.84365, |J|=339.313\n",
-      "        - Inner Loop: mu=47.4463, norm_dx=0.0025276\n",
-      "            (cont): norm_new_f=453.491, dL=5.17926, dF=1.07441, reldL=0.0113939, reldF=0.0023636\n",
-      "            Accepted! gain ratio=0.207445  mu * 1.20031 => 56.9505\n",
-      "    --- Outer Iter 15: norm_f = 453.491, mu=56.9505, |x|=2.85093, |J|=166.683\n",
-      "        - Inner Loop: mu=56.9505, norm_dx=0.00139499\n",
-      "            (cont): norm_new_f=451.007, dL=3.11484, dF=2.48409, reldL=0.00686857, reldF=0.0054777\n",
-      "            Accepted! gain ratio=0.797502  mu * 0.78935 => 44.9539\n",
-      "    --- Outer Iter 16: norm_f = 451.007, mu=44.9539, |x|=2.86291, |J|=283.801\n",
-      "        - Inner Loop: mu=44.9539, norm_dx=0.00253741\n",
-      "            (cont): norm_new_f=450.42, dL=2.52299, dF=0.586996, reldL=0.00559413, reldF=0.00130152\n",
-      "            Accepted! gain ratio=0.232659  mu * 1.15286 => 51.8254\n",
-      "    --- Outer Iter 17: norm_f = 450.42, mu=51.8254, |x|=2.87294, |J|=176.225\n",
-      "        - Inner Loop: mu=51.8254, norm_dx=0.000732501\n",
-      "            (cont): norm_new_f=448.586, dL=2.33779, dF=1.834, reldL=0.00519024, reldF=0.00407176\n",
-      "            Accepted! gain ratio=0.784504  mu * 0.815772 => 42.2778\n",
-      "    --- Outer Iter 18: norm_f = 448.586, mu=42.2778, |x|=2.88153, |J|=280.724\n",
-      "        - Inner Loop: mu=42.2778, norm_dx=0.00193976\n",
-      "            (cont): norm_new_f=448.262, dL=2.19893, dF=0.324334, reldL=0.00490191, reldF=0.000723014\n",
-      "            Accepted! gain ratio=0.147497  mu * 1.35041 => 57.0924\n",
-      "    --- Outer Iter 19: norm_f = 448.262, mu=57.0924, |x|=2.89063, |J|=181.224\n",
-      "        - Inner Loop: mu=57.0924, norm_dx=0.000131988\n",
-      "            (cont): norm_new_f=446.529, dL=2.02353, dF=1.73283, reldL=0.00451417, reldF=0.00386565\n",
-      "            Accepted! gain ratio=0.856337  mu * 0.63803 => 36.4267\n",
-      "    --- Outer Iter 20: norm_f = 446.529, mu=36.4267, |x|=2.89406, |J|=268.07\n",
-      "        - Inner Loop: mu=36.4267, norm_dx=0.00150081\n",
-      "            (cont): norm_new_f=446.253, dL=1.60088, dF=0.275977, reldL=0.00358515, reldF=0.000618049\n",
-      "            Accepted! gain ratio=0.172391  mu * 1.28129 => 46.6732\n",
-      "    --- Outer Iter 21: norm_f = 446.253, mu=46.6732, |x|=2.90213, |J|=188.515\n",
-      "        - Inner Loop: mu=46.6732, norm_dx=8.69969e-05\n",
-      "            (cont): norm_new_f=444.948, dL=2.00524, dF=1.3049, reldL=0.00449352, reldF=0.00292412\n",
-      "            Accepted! gain ratio=0.650743  mu * 0.972597 => 45.3942\n",
-      "    --- Outer Iter 22: norm_f = 444.948, mu=45.3942, |x|=2.90282, |J|=289.967\n",
-      "        - Inner Loop: mu=45.3942, norm_dx=0.000791168\n",
-      "            (cont): norm_new_f=444.607, dL=1.98129, dF=0.340962, reldL=0.00445285, reldF=0.000766296\n",
-      "            Accepted! gain ratio=0.172091  mu * 1.28207 => 58.1983\n",
-      "    --- Outer Iter 23: norm_f = 444.607, mu=58.1983, |x|=2.90774, |J|=194.431\n",
-      "        - Inner Loop: mu=58.1983, norm_dx=6.16469e-05\n",
-      "            (cont): norm_new_f=443.268, dL=1.52392, dF=1.33878, reldL=0.00342757, reldF=0.00301115\n",
-      "            Accepted! gain ratio=0.878509  mu * 0.566172 => 32.9503\n",
-      "    --- Outer Iter 24: norm_f = 443.268, mu=32.9503, |x|=2.90751, |J|=266.845\n",
-      "        - Inner Loop: mu=32.9503, norm_dx=0.000863667\n",
-      "            (cont): norm_new_f=442.886, dL=1.16281, dF=0.382834, reldL=0.00262326, reldF=0.000863661\n",
-      "            Accepted! gain ratio=0.329232  mu * 1.03984 => 34.263\n",
-      "    --- Outer Iter 25: norm_f = 442.886, mu=34.263, |x|=2.91267, |J|=204.106\n",
-      "        - Inner Loop: mu=34.263, norm_dx=0.000149476\n",
-      "            (cont): norm_new_f=442.357, dL=1.75881, dF=0.528371, reldL=0.00397124, reldF=0.00119302\n",
-      "            Accepted! gain ratio=0.300415  mu * 1.0636 => 36.4422\n",
-      "    --- Outer Iter 26: norm_f = 442.357, mu=36.4422, |x|=2.91114, |J|=323.905\n",
-      "        - Inner Loop: mu=36.4422, norm_dx=0.00119255\n",
-      "            (cont): norm_new_f=442.133, dL=2.95282, dF=0.224572, reldL=0.00667519, reldF=0.00050767\n",
-      "            Accepted! gain ratio=0.0760533  mu * 1.60957 => 58.6563\n",
-      "    --- Outer Iter 27: norm_f = 442.133, mu=58.6563, |x|=2.91727, |J|=201.683\n",
-      "        - Inner Loop: mu=58.6563, norm_dx=0.000175305\n",
-      "            (cont): norm_new_f=441.013, dL=1.8638, dF=1.1196, reldL=0.00421547, reldF=0.00253228\n",
-      "            Accepted! gain ratio=0.600711  mu * 0.991828 => 58.1769\n",
-      "    --- Outer Iter 28: norm_f = 441.013, mu=58.1769, |x|=2.91593, |J|=293.874\n",
-      "        - Inner Loop: mu=58.1769, norm_dx=0.000228422\n",
-      "            (cont): norm_new_f=440.567, dL=0.995595, dF=0.446361, reldL=0.00225752, reldF=0.00101213\n",
-      "            Accepted! gain ratio=0.448336  mu * 1.0011 => 58.2411\n",
-      "    --- Outer Iter 29: norm_f = 440.567, mu=58.2411, |x|=2.91763, |J|=223.88\n",
-      "        - Inner Loop: mu=58.2411, norm_dx=2.53496e-05\n",
-      "            (cont): norm_new_f=440.077, dL=0.513235, dF=0.48971, reldL=0.00116494, reldF=0.00111155\n",
-      "            Accepted! gain ratio=0.954165  mu * 0.333333 => 19.4137\n",
-      "    --- Outer Iter 30: norm_f = 440.077, mu=19.4137, |x|=2.91721, |J|=267.943\n",
-      "        - Inner Loop: mu=19.4137, norm_dx=0.000934976\n",
-      "            (cont): norm_new_f=439.911, dL=0.656759, dF=0.165392, reldL=0.00149237, reldF=0.000375825\n",
-      "            Accepted! gain ratio=0.25183  mu * 1.12227 => 21.7875\n",
-      "    --- Outer Iter 31: norm_f = 439.911, mu=21.7875, |x|=2.92094, |J|=230.855\n",
-      "        - Inner Loop: mu=21.7875, norm_dx=0.00040805\n",
-      "            (cont): norm_new_f=442.032, dL=1.40753, dF=-2.12064, reldL=0.00319957, reldF=-0.00482061\n",
-      "            Rejected!  mu => mu*nu = 43.575, nu => 2*nu = 4\n",
-      "        - Inner Loop: mu=43.575, norm_dx=0.00011802\n",
-      "            (cont): norm_new_f=439.922, dL=0.92053, dF=-0.0103703, reldL=0.00209253, reldF=-2.35737e-05\n",
-      "            Rejected!  mu => mu*nu = 174.3, nu => 2*nu = 8\n",
-      "        - Inner Loop: mu=174.3, norm_dx=8.75887e-06\n",
-      "            (cont): norm_new_f=439.477, dL=0.310421, dF=0.434333, reldL=0.000705643, reldF=0.000987319\n",
-      "            Accepted! gain ratio=1.39918  mu * 0.333333 => 58.1\n",
-      "    --- Outer Iter 32: norm_f = 439.477, mu=58.1, |x|=2.92112, |J|=253.926\n",
-      "        - Inner Loop: mu=58.1, norm_dx=1.08758e-05\n",
-      "            (cont): norm_new_f=439.331, dL=0.13707, dF=0.146481, reldL=0.000311893, reldF=0.000333308\n",
-      "            Accepted! gain ratio=1.06866  mu * 0.333333 => 19.3667\n",
-      "    --- Outer Iter 33: norm_f = 439.331, mu=19.3667, |x|=2.92104, |J|=276.992\n",
-      "        - Inner Loop: mu=19.3667, norm_dx=0.00027269\n",
-      "            (cont): norm_new_f=439.229, dL=0.213563, dF=0.101246, reldL=0.000486111, reldF=0.000230456\n",
-      "            Accepted! gain ratio=0.474081  mu * 1.00014 => 19.3694\n",
-      "    --- Outer Iter 34: norm_f = 439.229, mu=19.3694, |x|=2.92229, |J|=253.165\n",
-      "        - Inner Loop: mu=19.3694, norm_dx=0.000127176\n",
-      "            (cont): norm_new_f=439.982, dL=0.473574, dF=-0.752607, reldL=0.00107819, reldF=-0.00171347\n",
-      "            Rejected!  mu => mu*nu = 38.7387, nu => 2*nu = 4\n",
-      "        - Inner Loop: mu=38.7387, norm_dx=3.78867e-05\n",
-      "            (cont): norm_new_f=439.301, dL=0.312058, dF=-0.0714881, reldL=0.000710466, reldF=-0.000162758\n",
-      "            Rejected!  mu => mu*nu = 154.955, nu => 2*nu = 8\n",
-      "        - Inner Loop: mu=154.955, norm_dx=2.94044e-06\n",
-      "            (cont): norm_new_f=439.093, dL=0.108602, dF=0.136294, reldL=0.000247256, reldF=0.000310303\n",
-      "            Accepted! gain ratio=1.25499  mu * 0.333333 => 51.6517\n",
-      "    --- Outer Iter 35: norm_f = 439.093, mu=51.6517, |x|=2.92267, |J|=270.518\n",
-      "        - Inner Loop: mu=51.6517, norm_dx=4.04036e-06\n",
-      "            (cont): norm_new_f=439.049, dL=0.0313524, dF=0.044587, reldL=7.14026e-05, reldF=0.000101543\n",
-      "            Accepted! gain ratio=1.42213  mu * 0.333333 => 17.2172\n",
-      "    --- Outer Iter 36: norm_f = 439.049, mu=17.2172, |x|=2.92308, |J|=277.647\n",
-      "        - Inner Loop: mu=17.2172, norm_dx=9.05697e-05\n",
-      "            (cont): norm_new_f=438.995, dL=0.0597676, dF=0.0537429, reldL=0.00013613, reldF=0.000122408\n",
-      "            Accepted! gain ratio=0.899197  mu * 0.491078 => 8.455\n",
-      "    --- Outer Iter 37: norm_f = 438.995, mu=8.455, |x|=2.92443, |J|=266.351\n",
-      "        - Inner Loop: mu=8.455, norm_dx=0.00010186\n",
-      "            (cont): norm_new_f=439.442, dL=0.154612, dF=-0.446773, reldL=0.000352196, reldF=-0.00101772\n",
-      "            Rejected!  mu => mu*nu = 16.91, nu => 2*nu = 4\n",
-      "        - Inner Loop: mu=16.91, norm_dx=3.22811e-05\n",
-      "            (cont): norm_new_f=439.143, dL=0.107451, dF=-0.148432, reldL=0.000244767, reldF=-0.000338118\n",
-      "            Rejected!  mu => mu*nu = 67.64, nu => 2*nu = 8\n",
-      "        - Inner Loop: mu=67.64, norm_dx=2.77282e-06\n",
-      "            (cont): norm_new_f=438.969, dL=0.0429126, dF=0.0254165, reldL=9.77519e-05, reldF=5.7897e-05\n",
-      "    Least squares message = Both actual and predicted relative reductions in the sum of squares are at most 0.0001\n",
-      "  _objfn = 877.99 (920 data params - 32 (approx) model params = expected mean of 888; p-value = 0.588076)\n",
-      "  Completed in 64.9s\n",
-      "  Iteration 1 took 64.9s\n",
-      "  \n",
-      "--- Iterative GST: Iter 2 of 2  168 circuits ---: \n",
-      "  MapLayout: 1 processors divided into 1 x 1 (= 1) grid along circuit and parameter directions.\n",
-      "     8 atoms, parameter block size limits (None,)\n",
-      "  *** Distributing 8 atoms to 1 atom-processing groups (1 cores) ***\n",
-      "      More atom-processors than hosts: each host gets ~1 atom-processors\n",
-      "      Atom-processors already occupy a single node, dividing atom-processor into 1 param-processors.\n",
-      "  *** Divided 1-host atom-processor (~1 procs) into 1 param-processing groups ***\n",
-      "  --- TimeDependentPoissonPicLogLFunction GST ---\n",
-      "    --- Outer Iter 0: norm_f = 873.935, mu=1, |x|=2.92443, |J|=316.589\n",
-      "        - Inner Loop: mu=71.329, norm_dx=0.000511043\n",
-      "            (cont): norm_new_f=871.645, dL=1.94724, dF=2.2898, reldL=0.00222813, reldF=0.0026201\n",
-      "            Accepted! gain ratio=1.17592  mu * 0.333333 => 23.7763\n",
-      "    --- Outer Iter 1: norm_f = 871.645, mu=23.7763, |x|=2.91513, |J|=279.853\n",
-      "        - Inner Loop: mu=23.7763, norm_dx=0.0033612\n",
-      "            (cont): norm_new_f=870.886, dL=2.39524, dF=0.759757, reldL=0.00274795, reldF=0.000871636\n",
-      "            Accepted! gain ratio=0.317195  mu * 1.04887 => 24.9383\n",
-      "    --- Outer Iter 2: norm_f = 870.886, mu=24.9383, |x|=2.89746, |J|=513.822\n",
-      "        - Inner Loop: mu=24.9383, norm_dx=0.000214322\n",
-      "            (cont): norm_new_f=872.646, dL=6.20726, dF=-1.7608, reldL=0.00712753, reldF=-0.00202185\n",
-      "            Rejected!  mu => mu*nu = 49.8766, nu => 2*nu = 4\n",
-      "        - Inner Loop: mu=49.8766, norm_dx=7.46315e-05\n",
-      "            (cont): norm_new_f=870.551, dL=4.7519, dF=0.3343, reldL=0.0054564, reldF=0.000383863\n",
-      "            Accepted! gain ratio=0.0703508  mu * 1.6345 => 81.5233\n",
-      "    --- Outer Iter 3: norm_f = 870.551, mu=81.5233, |x|=2.89086, |J|=286.137\n",
-      "        - Inner Loop: mu=81.5233, norm_dx=0.000119945\n",
-      "            (cont): norm_new_f=870.267, dL=2.28393, dF=0.283909, reldL=0.00262355, reldF=0.000326125\n",
-      "            Accepted! gain ratio=0.124307  mu * 1.42422 => 116.107\n",
-      "    --- Outer Iter 4: norm_f = 870.267, mu=116.107, |x|=2.89107, |J|=3462.56\n",
-      "        - Inner Loop: mu=116.107, norm_dx=5.75778e-06\n",
-      "            (cont): norm_new_f=868.803, dL=1.76057, dF=1.46469, reldL=0.00202302, reldF=0.00168303\n",
-      "            Accepted! gain ratio=0.83194  mu * 0.707404 => 82.1346\n",
-      "    --- Outer Iter 5: norm_f = 868.803, mu=82.1346, |x|=2.88919, |J|=441.327\n",
-      "        - Inner Loop: mu=82.1346, norm_dx=1.45812e-05\n",
-      "            (cont): norm_new_f=868.666, dL=0.197728, dF=0.136299, reldL=0.000227587, reldF=0.000156881\n",
-      "            Accepted! gain ratio=0.689324  mu * 0.945711 => 77.6756\n",
-      "    --- Outer Iter 6: norm_f = 868.666, mu=77.6756, |x|=2.88799, |J|=365.993\n",
-      "        - Inner Loop: mu=77.6756, norm_dx=1.15541e-05\n",
-      "            (cont): norm_new_f=868.592, dL=0.050525, dF=0.0742624, reldL=5.81639e-05, reldF=8.54901e-05\n",
-      "    Least squares message = Both actual and predicted relative reductions in the sum of squares are at most 0.0001\n",
-      "  _objfn = 1737.33 (1680 data params - 32 (approx) model params = expected mean of 1648; p-value = 0.0617401)\n",
-      "  Completed in 23.6s\n",
-      "  Iteration 2 took 23.7s\n",
-      "  \n",
-      "  Last iteration:\n",
-      "  Final optimization took 0.0s\n",
-      "  \n",
-      "Iterative GST Total Time: 88.7s\n"
-     ]
-    }
-   ],
+   "outputs": [],
    "source": [
     "target_model = smq1Q_XYI.target_model(\"full TP\", simulator=\"map\") # TP-constraints on the non-Gi gates\n",
     "target_model[idle_gate_label] = MyTimeDependentIdle(0.0)\n",
@@ -654,7 +301,7 @@
     "builders = pygsti.protocols.GSTObjFnBuilders([pygsti.objectivefns.TimeDependentPoissonPicLogLFunction.builder()],[])\n",
     "custom_opt = {'tol': 1e-4, 'damping_mode': 'JTJ', 'damping_clip': (1.0, 1000.0)} # tweak optimizer parameters for better performance (expert-level)\n",
     "gst = pygsti.protocols.GateSetTomography(target_model, gaugeopt_suite=None,\n",
-    "                                         objfn_builders=builders, optimizer=custom_opt, verbosity=4)\n",
+    "                                         objfn_builders=builders, optimizer=custom_opt, verbosity=3)\n",
     "data = pygsti.protocols.ProtocolData(edesign, ds)\n",
     "results = gst.run(data)"
    ]
@@ -668,17 +315,9 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 14,
+   "execution_count": null,
    "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Time-dependent idle parameters =  [0.989367]\n"
-     ]
-    }
-   ],
+   "outputs": [],
    "source": [
     "final_mdl = results.estimates['GateSetTomography'].models['final iteration estimate']\n",
     "print(\"Time-dependent idle parameters = \",final_mdl[idle_gate_label].to_vector())"
@@ -686,18 +325,9 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 15,
+   "execution_count": null,
    "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Objective function at data-generating model =  880.9619775626477\n",
-      "Objective function at best-fit (GST) model (should be lower) =  868.6663676923431\n"
-     ]
-    }
-   ],
+   "outputs": [],
    "source": [
     "# Check that GST model fits the data *better* than the data-generating model\n",
     "builder = pygsti.objectivefns.TimeDependentPoissonPicLogLFunction.builder()\n",
@@ -718,9 +348,9 @@
  ],
  "metadata": {
   "kernelspec": {
-   "display_name": "random_pygsti_debugging",
+   "display_name": "api_updates",
    "language": "python",
-   "name": "random_pygsti_debugging"
+   "name": "api_updates"
   },
   "language_info": {
    "codemirror_mode": {
diff --git a/pygsti/drivers/longsequence.py b/pygsti/drivers/longsequence.py
index 49df91487..19a30feae 100644
--- a/pygsti/drivers/longsequence.py
+++ b/pygsti/drivers/longsequence.py
@@ -930,7 +930,7 @@ def _get_optimizer(advanced_options, model_being_optimized):
     from pygsti.forwardsims.matrixforwardsim import MatrixForwardSimulator as _MatrixFSim
     advanced_options = advanced_options or {}
     default_fditer = 1 if isinstance(model_being_optimized.sim, _MatrixFSim) else 0
-    optimizer = {'maxiter': advanced_options.get('max_iterations', 100000),
+    optimizer = {'maxiter': advanced_options.get('max_iterations', 100),
                  'tol': advanced_options.get('tolerance', 1e-6),
                  'fditer': advanced_options.get('finitediff_iterations', default_fditer)}
     optimizer.update(advanced_options.get('extra_lm_opts', {}))
diff --git a/pygsti/models/qutrit.py b/pygsti/models/qutrit.py
index 7edef3adc..804c3a4cb 100644
--- a/pygsti/models/qutrit.py
+++ b/pygsti/models/qutrit.py
@@ -14,9 +14,10 @@
 from scipy import linalg as _linalg
 
 from pygsti.baseobjs import Basis as _Basis, statespace as _statespace
-from pygsti.models.gaugegroup import FullGaugeGroup as _FullGaugeGroup
-from pygsti.modelmembers.operations import FullArbitraryOp as _FullArbitraryOp
-from pygsti.modelmembers.povms import UnconstrainedPOVM as _UnconstrainedPOVM
+from pygsti.models.gaugegroup import TPGaugeGroup as _TPGaugeGroup
+from pygsti.modelmembers.operations import FullTPOp as _FullTPOp
+from pygsti.modelmembers.povms import TPPOVM as _TPPOVM
+from pygsti.modelmembers.states import TPState as _TPState
 from pygsti.models import ExplicitOpModel as _ExplicitOpModel
 from pygsti.tools import unitary_to_superop, change_basis
 
@@ -282,14 +283,14 @@ def create_qutrit_model(error_scale, x_angle=_np.pi / 2, y_angle=_np.pi / 2,
 
     state_space = _statespace.ExplicitStateSpace(['QT'], [3])
     qutritMDL = _ExplicitOpModel(state_space, _Basis.cast(basis, 9), evotype=evotype)
-    qutritMDL.preps['rho0'] = rho0final
-    qutritMDL.povms['Mdefault'] = _UnconstrainedPOVM([('0bright', E0final),
-                                                      ('1bright', E1final),
-                                                      ('2bright', E2final)], evotype=evotype)
-    qutritMDL.operations['Gi'] = _FullArbitraryOp(arrType(gateISOfinal), basis, evotype, state_space)
-    qutritMDL.operations['Gx'] = _FullArbitraryOp(arrType(gateXSOfinal), basis, evotype, state_space)
-    qutritMDL.operations['Gy'] = _FullArbitraryOp(arrType(gateYSOfinal), basis, evotype, state_space)
-    qutritMDL.operations['Gm'] = _FullArbitraryOp(arrType(gateMSOfinal), basis, evotype, state_space)
-    qutritMDL.default_gauge_group = _FullGaugeGroup(state_space, qutritMDL.basis, evotype)
+    qutritMDL.preps['rho0'] = _TPState(rho0final, evotype=evotype)
+    qutritMDL.povms['Mdefault'] = _TPPOVM([('0bright', E0final),
+                                           ('1bright', E1final),
+                                           ('2bright', E2final)], evotype=evotype)
+    qutritMDL.operations['Gi', 'QT'] = _FullTPOp(arrType(gateISOfinal), basis, evotype, state_space)
+    qutritMDL.operations['Gx', 'QT'] = _FullTPOp(arrType(gateXSOfinal), basis, evotype, state_space)
+    qutritMDL.operations['Gy', 'QT'] = _FullTPOp(arrType(gateYSOfinal), basis, evotype, state_space)
+    qutritMDL.operations['Gm', 'QT'] = _FullTPOp(arrType(gateMSOfinal), basis, evotype, state_space)
+    qutritMDL.default_gauge_group = _TPGaugeGroup(state_space, qutritMDL.basis, evotype)
 
     return qutritMDL
diff --git a/pygsti/protocols/gst.py b/pygsti/protocols/gst.py
index 79f0b142f..c013fe641 100644
--- a/pygsti/protocols/gst.py
+++ b/pygsti/protocols/gst.py
@@ -1864,7 +1864,7 @@ def run(self, data, memlimit=None, comm=None, checkpoint=None, checkpoint_path=N
 
                     #Try to interpret `mode` as a parameterization
                     parameterization = mode  # for now, 1-1 correspondence
-                    initial_model = target_model
+                    initial_model = target_model.copy()
 
                     try:
                         initial_model.set_all_parameterizations(parameterization)


Test patch:
diff --git a/test/test_packages/algorithms/test_fogi_gst.py b/test/test_packages/algorithms/test_fogi_gst.py
index ec9856d85..389865d74 100644
--- a/test/test_packages/algorithms/test_fogi_gst.py
+++ b/test/test_packages/algorithms/test_fogi_gst.py
@@ -164,7 +164,7 @@ def test_fogi_gst(self):
         ar = 0.001 * np.random.rand(len(ar))
         mdl_datagen.set_fogi_errorgen_components_array(ar, include_fogv=False, normalized_elem_gens=True)
         
-        ds = pygsti.data.simulate_data(mdl_datagen, edesign, 1000, seed=2022) #, sample_error='none')
+        ds = pygsti.data.simulate_data(mdl_datagen, edesign, 10000, seed=2022) #, sample_error='none')
         data = pygsti.protocols.ProtocolData(edesign, ds)
         
         datagen_2dlogl = pygsti.tools.two_delta_logl(mdl_datagen, ds)
@@ -175,7 +175,7 @@ def test_fogi_gst(self):
         gst_mdl = self.create_model()
         print("Before FOGI reparam, Np = ", gst_mdl.num_params)
         gst_mdl.sim = sim_type
-        proto = pygsti.protocols.GST(gst_mdl, gaugeopt_suite=None, optimizer={'maxiter': 100, 'tol': 1e-7}, verbosity=3)
+        proto = pygsti.protocols.GST(gst_mdl, gaugeopt_suite=None, optimizer={'maxiter': 10, 'tol': 1e-7}, verbosity=3)
         results_before = proto.run(data)
 
         #Run GST *with* FOGI setup
@@ -187,7 +187,7 @@ def test_fogi_gst(self):
                            dependent_fogi_action='drop', include_spam=True)
         print("After FOGI reparam, Np = ", gst_mdl.num_params)
         gst_mdl.sim = sim_type
-        proto = pygsti.protocols.GST(gst_mdl, gaugeopt_suite=None, optimizer={'maxiter': 100, 'tol': 1e-7}, verbosity=3)
+        proto = pygsti.protocols.GST(gst_mdl, gaugeopt_suite=None, optimizer={'maxiter': 10, 'tol': 1e-7}, verbosity=3)
         results_after = proto.run(data)
 
         #Compute hessian at MLE point for both estimates
@@ -261,8 +261,9 @@ def create_pspec(self):
         nQubits = 2
         #pspec = pygsti.processors.QubitProcessorSpec(nQubits, ['Gxpi2', 'Gypi2', 'Gi'], geometry='line')
         #availability={'Gcnot': [(0,1)]},  # to match smq2Q_XYCNOT
-        pspec = pygsti.processors.QubitProcessorSpec(nQubits, ['Gxpi2', 'Gypi2', 'Gcnot'],
-                                                     availability={'Gcnot': [(0,1)]}, geometry='line')
+        #pspec = pygsti.processors.QubitProcessorSpec(nQubits, ['Gxpi2', 'Gypi2', 'Gcnot'],
+        #                                             availability={'Gcnot': [(0,1)]}, geometry='line')
+        pspec = pygsti.processors.QubitProcessorSpec(nQubits, ['Gxpi2', 'Gypi2'], geometry='line')
         return pspec
     
     def create_model(self):
diff --git a/test/test_packages/drivers/test_drivers.py b/test/test_packages/drivers/test_drivers.py
index d6f88ed42..9542971ee 100644
--- a/test/test_packages/drivers/test_drivers.py
+++ b/test/test_packages/drivers/test_drivers.py
@@ -14,9 +14,9 @@ def setUp(self):
         self.model = std.target_model()
 
         self.germs = std.germs(lite=True)
-        self.prep_fiducials = std.prep_fiducials()
-        self.meas_fiducials = std.meas_fiducials()
-        self.maxLens = [1,2,4]
+        self.prep_fiducials = std.prep_fiducials()[0:4]
+        self.meas_fiducials = std.meas_fiducials()[0:3]
+        self.maxLens = [1,2]
         self.op_labels = list(self.model.operations.keys())
 
         self.lsgstStrings = pygsti.circuits.create_lsgst_circuit_lists(
@@ -38,7 +38,7 @@ def test_longSequenceGST_fiducialPairReduction(self):
             self.model, self.prep_fiducials, self.meas_fiducials, self.germs, self.maxLens)
 
         lens = [ len(strct) for strct in fullStructs ]
-        self.assertEqual(lens, [56, 96, 177])
+        self.assertEqual(lens, [19, 33])
 
         #Global FPR
         fidPairs = pygsti.alg.find_sufficient_fiducial_pairs(
@@ -61,7 +61,8 @@ def test_longSequenceGST_fiducialPairReduction(self):
             fid_pairs=fidPairs)
 
         result = pygsti.run_long_sequence_gst_base(ds, self.model, gfprStructs, verbosity=0,
-                                                   disable_checkpointing = True)
+                                                   disable_checkpointing = True,
+                                                   advanced_options= {'max_iterations':3})
         pygsti.report.construct_standard_report(result, title ="GFPR report", verbosity=0).write_html(temp_files + "/full_report_GFPR")
 
         #Per-germ FPR
@@ -86,7 +87,8 @@ def test_longSequenceGST_fiducialPairReduction(self):
             fid_pairs=fidPairsDict)
 
         result = pygsti.run_long_sequence_gst_base(ds, self.model, pfprStructs, verbosity=0,
-                                                   disable_checkpointing = True)
+                                                   disable_checkpointing = True,
+                                                   advanced_options= {'max_iterations':3})
         pygsti.report.construct_standard_report(result, title="PFPR report", verbosity=0).write_html(temp_files + "/full_report_PFPR")
 
     def test_longSequenceGST_randomReduction(self):
@@ -116,7 +118,8 @@ def test_longSequenceGST_CPTP(self):
         maxLens = self.maxLens
         result = self.runSilent(pygsti.run_long_sequence_gst,
                                 ds, target_model, self.prep_fiducials, self.meas_fiducials,
-                                self.germs, maxLens, disable_checkpointing=True)
+                                self.germs, maxLens, disable_checkpointing=True, 
+                                advanced_options= {'max_iterations':3})
 
         #create a report...
         pygsti.report.construct_standard_report(result, title="CPTP Gates report", verbosity=0).write_html(temp_files + "/full_report_CPTPGates")
@@ -131,7 +134,7 @@ def test_longSequenceGST_Sonly(self):
         maxLens = self.maxLens
         result = self.runSilent(pygsti.run_long_sequence_gst,
                                 ds, target_model, self.prep_fiducials, self.meas_fiducials,
-                                self.germs, maxLens, disable_checkpointing=True)
+                                self.germs, maxLens, disable_checkpointing=True, advanced_options= {'max_iterations':3})
 
         #create a report...
         pygsti.report.construct_standard_report(result, title="SGates report", verbosity=0).write_html(temp_files + "/full_report_SGates")
@@ -153,7 +156,7 @@ def test_longSequenceGST_GLND(self):
         maxLens = self.maxLens
         result = self.runSilent(pygsti.run_long_sequence_gst,
                                 ds, target_model, self.prep_fiducials, self.meas_fiducials,
-                                self.germs, maxLens, disable_checkpointing=True)
+                                self.germs, maxLens, disable_checkpointing=True, advanced_options= {'max_iterations':3})
 
         #create a report...
         pygsti.report.construct_standard_report(result, title="GLND report", verbosity=0).write_html( temp_files + "/full_report_GLND")
@@ -168,7 +171,7 @@ def test_longSequenceGST_HplusS(self):
         maxLens = self.maxLens
         result = self.runSilent(pygsti.run_long_sequence_gst,
                                 ds, target_model, self.prep_fiducials, self.meas_fiducials,
-                                self.germs, maxLens, disable_checkpointing=True)
+                                self.germs, maxLens, disable_checkpointing=True, advanced_options= {'max_iterations':3})
 
         #create a report...
         pygsti.report.construct_standard_report(result, title= "HpS report", verbosity=0).write_html(temp_files + "/full_report_HplusSGates")
@@ -180,7 +183,7 @@ def test_longSequenceGST_badfit(self):
         maxLens = self.maxLens
         result = self.runSilent(pygsti.run_long_sequence_gst,
                                 ds, self.model.copy(), self.prep_fiducials, self.meas_fiducials,
-                                self.germs, maxLens, advanced_options={'bad_fit_threshold': -100},
+                                self.germs, maxLens, advanced_options={'bad_fit_threshold': -100, 'max_iterations':3},
                                 disable_checkpointing=True)
 
         pygsti.report.construct_standard_report(result, title="badfit report", verbosity=0).write_html(temp_files + "/full_report_badfit")
@@ -197,7 +200,7 @@ def test_stdpracticeGST(self):
                                 self.germs, maxLens, modes=['CPTPLND','Test','Target'],
                                 models_to_test = {"Test": mdl_guess},
                                 comm=None, mem_limit=None, verbosity=0,
-                                disable_checkpointing=True)
+                                disable_checkpointing=True, advanced_options= {'max_iterations':3})
         pygsti.report.construct_standard_report(result, title= "Std Practice Test Report", verbosity=2).write_html(temp_files + "/full_report_stdpractice")
 
     def test_bootstrap(self):
@@ -233,7 +236,8 @@ def test_GST_checkpointing(self):
         #Test GateSetTomographyCheckpoint:
         #First run from scratch:
         result_gst = pygsti.run_long_sequence_gst_base(ds, target_model.copy(), fullStructs, verbosity=0, 
-                                                   checkpoint_path= temp_files + '/checkpoint_testing/GateSetTomography')
+                                                   checkpoint_path= temp_files + '/checkpoint_testing/GateSetTomography',
+                                                   advanced_options= {'max_iterations':3})
                                                    
         #double check that we can read in this checkpoint object correctly:
         gst_checkpoint = pygsti.protocols.GateSetTomographyCheckpoint.read(temp_files + '/checkpoint_testing/GateSetTomography_iteration_0.json')
@@ -241,7 +245,8 @@ def test_GST_checkpointing(self):
         #run GST using this checkpoint
         result_gst_warmstart = pygsti.run_long_sequence_gst_base(ds, target_model.copy(), fullStructs, verbosity=0,
                                                                  checkpoint = gst_checkpoint,
-                                                                 checkpoint_path= temp_files + '/checkpoint_testing/GateSetTomography')
+                                                                 checkpoint_path= temp_files + '/checkpoint_testing/GateSetTomography',
+                                                                 advanced_options= {'max_iterations':3})
         
         diff = norm(result_gst.estimates['GateSetTomography'].models['final iteration estimate'].to_vector()-
                          result_gst_warmstart.estimates['GateSetTomography'].models['final iteration estimate'].to_vector())
@@ -291,7 +296,8 @@ def test_StandardGST_checkpointing(self):
                                                         self.germs, maxLens, modes=['full TP','CPTPLND','Test','Target'],
                                                         models_to_test = {"Test": mdl_guess},
                                                         comm=None, mem_limit=None, verbosity=0,
-                                                        checkpoint_path= temp_files + '/checkpoint_testing/StandardGST')
+                                                        checkpoint_path= temp_files + '/checkpoint_testing/StandardGST',
+                                                        advanced_options= {'max_iterations':3})
                                                    
         #double check that we can read in this checkpoint object correctly:
         standardgst_checkpoint = pygsti.protocols.StandardGSTCheckpoint.read(temp_files + '/checkpoint_testing/StandardGST_CPTPLND_iteration_1.json')
@@ -302,7 +308,8 @@ def test_StandardGST_checkpointing(self):
                                                                   models_to_test = {"Test": mdl_guess},
                                                                   comm=None, mem_limit=None, verbosity=0,
                                                                   checkpoint = standardgst_checkpoint,
-                                                                  checkpoint_path= temp_files + '/checkpoint_testing/StandardGST')
+                                                                  checkpoint_path= temp_files + '/checkpoint_testing/StandardGST',
+                                                                  advanced_options= {'max_iterations':3})
 
         #Assert that this gives the same result as before:
         #diff = norm(result_standardgst.estimates['CPTPLND'].models['final iteration estimate'].to_vector()- 
diff --git a/test/test_packages/drivers/test_timedep.py b/test/test_packages/drivers/test_timedep.py
index 2460a4bda..73e7e78be 100644
--- a/test/test_packages/drivers/test_timedep.py
+++ b/test/test_packages/drivers/test_timedep.py
@@ -108,7 +108,8 @@ def test_time_dependent_gst_staticdata(self):
         
         builders = pygsti.protocols.GSTObjFnBuilders([pygsti.objectivefns.TimeDependentPoissonPicLogLFunction.builder()], [])
         gst = pygsti.protocols.GateSetTomography(target_model, gaugeopt_suite=None,
-                                                 objfn_builders=builders)
+                                                 objfn_builders=builders,
+                                                 optimizer={'maxiter':2,'tol': 1e-4})
         results = gst.run(data)
 
         # Normal GST used as a check - should get same answer since data is time-independent
@@ -151,16 +152,16 @@ def test_time_dependent_gst(self):
 
         # *sparse*, time-independent data
         ds = pygsti.data.simulate_data(mdl_datagen, edesign.all_circuits_needing_data, num_samples=2000,
-                                       sample_error="binomial", seed=1234, times=[0, 0.1, 0.2],
+                                       sample_error="binomial", seed=1234, times=[0, 0.2],
                                        record_zero_counts=False)
-        self.assertEqual(ds.degrees_of_freedom(aggregate_times=False), 171)
+        self.assertEqual(ds.degrees_of_freedom(aggregate_times=False), 114)
 
         target_model.operations['Gi',0] = MyTimeDependentIdle(0)  # start assuming no time dependent decay
         target_model.sim = pygsti.forwardsims.MapForwardSimulator(max_cache_size=0)  # No caching allowed for time-dependent calcs
 
         builders = pygsti.protocols.GSTObjFnBuilders([pygsti.objectivefns.TimeDependentPoissonPicLogLFunction.builder()], [])
         gst = pygsti.protocols.GateSetTomography(target_model, gaugeopt_suite=None,
-                                                 objfn_builders=builders, optimizer={'tol': 1e-4})
+                                                 objfn_builders=builders, optimizer={'maxiter':10,'tol': 1e-4})
         data = pygsti.protocols.ProtocolData(edesign, ds)
         results = gst.run(data)
 
diff --git a/test/test_packages/objects/test_hessian.py b/test/test_packages/objects/test_hessian.py
index 0bdb48f7f..2a1f3bcfc 100644
--- a/test/test_packages/objects/test_hessian.py
+++ b/test/test_packages/objects/test_hessian.py
@@ -6,8 +6,8 @@
 
 import pygsti
 from pygsti import protocols as proto
-from pygsti.modelpacks.legacy import std1Q_XY as stdxy
-from pygsti.modelpacks.legacy import std1Q_XYI as stdxyi
+from pygsti.modelpacks import smq1Q_XY
+from pygsti.modelpacks import smq1Q_XYI
 from pygsti.baseobjs import Label as L
 from pygsti.report import modelfunction as gsf
 from ..testutils import BaseTestCase, compare_files
@@ -18,27 +18,34 @@ class TestHessianMethods(BaseTestCase):
     def setUp(self):
         super(TestHessianMethods, self).setUp()
 
-        self.model = pygsti.io.load_model(compare_files + "/analysis.model")
-        self.ds = pygsti.data.DataSet(file_to_load_from=compare_files + "/analysis.dataset")
+        self.model = smq1Q_XY.target_model()
+        self.model = self.model.depolarize(spam_noise = .01, op_noise = .001)
+        self.model = self.model.rotate(max_rotate=.005, seed=1234)
 
-
-        fiducials = stdxyi.fiducials
-        germs = stdxyi.germs
+        prep_fiducials = smq1Q_XY.prep_fiducials()
+        meas_fiducials = smq1Q_XY.meas_fiducials()
+        germs = smq1Q_XY.germs()
         op_labels = list(self.model.operations.keys()) # also == std.gates
-        self.maxLengthList = [1,2]
-        self.gss = pygsti.circuits.make_lsgst_structs(op_labels, fiducials, fiducials, germs, self.maxLengthList)
+        self.maxLengthList = [1]
+        #circuits for XY model.
+        self.gss = pygsti.circuits.make_lsgst_structs(op_labels, prep_fiducials[0:4], 
+                                                          meas_fiducials[0:3], smq1Q_XY.germs(), self.maxLengthList)
+
+        self.edesign =  proto.CircuitListsDesign([pygsti.circuits.CircuitList(circuit_struct) for circuit_struct in self.gss])
+
+        self.ds = pygsti.data.simulate_data(self.model, self.edesign.all_circuits_needing_data, 1000, seed = 1234)
 
 
     def test_parameter_counting(self):
         #XY Model: SPAM=True
-        n = stdxy.target_model().num_params
+        n = smq1Q_XY.target_model().num_params
         self.assertEqual(n,44) # 2*16 + 3*4 = 44
 
-        n = stdxy.target_model().num_nongauge_params
+        n = smq1Q_XY.target_model().num_nongauge_params
         self.assertEqual(n,28) # full 16 gauge params
 
         #XY Model: SPAM=False
-        tst = stdxy.target_model()
+        tst = smq1Q_XY.target_model()
         del tst.preps['rho0']
         del tst.povms['Mdefault']
         n = tst.num_params
@@ -49,14 +56,14 @@ def test_parameter_counting(self):
 
 
         #XYI Model: SPAM=True
-        n = stdxyi.target_model().num_params
+        n = smq1Q_XYI.target_model().num_params
         self.assertEqual(n,60) # 3*16 + 3*4 = 60
 
-        n = stdxyi.target_model().num_nongauge_params
+        n = smq1Q_XYI.target_model().num_nongauge_params
         self.assertEqual(n,44) # full 16 gauge params: SPAM gate + 3 others
 
         #XYI Model: SPAM=False
-        tst = stdxyi.target_model()
+        tst = smq1Q_XYI.target_model()
         del tst.preps['rho0']
         del tst.povms['Mdefault']
         n = tst.num_params
@@ -66,7 +73,7 @@ def test_parameter_counting(self):
         self.assertEqual(n,34) # gates are all unital & TP => only 14 gauge params (2 casimirs)
 
         #XYI Model: SP0=False
-        tst = stdxyi.target_model()
+        tst = smq1Q_XYI.target_model()
         tst.preps['rho0'] = pygsti.modelmembers.states.TPState(tst.preps['rho0'])
         n = tst.num_params
         self.assertEqual(n,59) # 3*16 + 2*4 + 3 = 59
@@ -75,9 +82,9 @@ def test_parameter_counting(self):
         self.assertEqual(n,44) # 15 gauge params (minus one b/c can't change rho?)
 
         #XYI Model: G0=SP0=False
-        tst.operations['Gi'] = pygsti.modelmembers.operations.FullTPOp(tst.operations['Gi'])
-        tst.operations['Gx'] = pygsti.modelmembers.operations.FullTPOp(tst.operations['Gx'])
-        tst.operations['Gy'] = pygsti.modelmembers.operations.FullTPOp(tst.operations['Gy'])
+        tst.operations[L(())] = pygsti.modelmembers.operations.FullTPOp(tst.operations[L(())])
+        tst.operations['Gxpi2',0] = pygsti.modelmembers.operations.FullTPOp(tst.operations['Gxpi2',0])
+        tst.operations['Gypi2',0] = pygsti.modelmembers.operations.FullTPOp(tst.operations['Gypi2',0])
         n = tst.num_params
         self.assertEqual(n,47) # 3*12 + 2*4 + 3 = 47
 
@@ -88,36 +95,27 @@ def test_hessian_projection(self):
         chi2Hessian = pygsti.chi2_hessian(self.model, self.ds)
 
         proj_non_gauge = self.model.compute_nongauge_projector()
-        projectedHessian = np.dot(proj_non_gauge,
-                                  np.dot(chi2Hessian, proj_non_gauge))
+        projectedHessian = proj_non_gauge@chi2Hessian@proj_non_gauge
 
-        print(self.model.num_params)
-        print(proj_non_gauge.shape)
-        self.assertEqual( projectedHessian.shape, (60,60) )
-        #print("Evals = ")
-        #print("\n".join( [ "%d: %g" % (i,ev) for i,ev in enumerate(np.linalg.eigvals(projectedHessian))] ))
-        self.assertEqual( np.linalg.matrix_rank(proj_non_gauge), 44)
-        self.assertEqual( np.linalg.matrix_rank(projectedHessian), 44)
+        self.assertEqual( projectedHessian.shape, (44,44) )
+        self.assertEqual( np.linalg.matrix_rank(proj_non_gauge), 28)
+        self.assertEqual( np.linalg.matrix_rank(projectedHessian), 28)
 
         eigvals = np.sort(abs(np.linalg.eigvals(projectedHessian)))
 
         print("eigvals = ",eigvals)
 
-        eigvals_chk = np.array([2.51663034e-10, 2.51663034e-10, 6.81452335e-10, 7.72039792e-10,
-                                8.76915081e-10, 8.76915081e-10, 1.31455011e-09, 3.03808236e-09,
-                                3.03808236e-09, 3.13457752e-09, 3.21805358e-09, 3.21805358e-09,
-                                4.78549720e-09, 7.83389490e-09, 1.82493106e-08, 1.82493106e-08,
-                                9.23087831e+05, 1.05783101e+06, 1.16457705e+06, 1.39492929e+06,
-                                1.84015484e+06, 2.10613947e+06, 2.37963392e+06, 2.47192689e+06,
-                                2.64566761e+06, 2.68722871e+06, 2.82383377e+06, 2.86584033e+06,
-                                2.94590436e+06, 2.96180212e+06, 3.08322015e+06, 3.29389050e+06,
-                                3.66581786e+06, 3.76266448e+06, 3.81921738e+06, 3.86624688e+06,
-                                3.89045873e+06, 4.72831630e+06, 4.96416855e+06, 6.53286834e+06,
-                                1.01424911e+07, 1.11347312e+07, 1.26152967e+07, 1.30081040e+07,
-                                1.36647082e+07, 1.49293583e+07, 1.58234599e+07, 1.80999182e+07,
-                                2.09155048e+07, 2.17444267e+07, 2.46870311e+07, 2.64427393e+07,
-                                2.72410297e+07, 3.34988002e+07, 3.45005948e+07, 3.69040745e+07,
-                                5.08647137e+07, 9.43153151e+07, 1.36088308e+08, 6.30304807e+08])
+        eigvals_chk = np.array([ 5.45537035e-13, 5.45537035e-13, 1.47513013e-12, 1.47513013e-12,
+                                 1.57813273e-12, 4.87695508e-12, 1.22061302e-11, 3.75982961e-11,
+                                 5.49796401e-11, 5.62019047e-11, 5.62019047e-11, 7.06418308e-11,
+                                 1.44881858e-10, 1.48934891e-10, 1.48934891e-10, 2.06194475e-10,
+                                 1.91727543e+01, 2.26401298e+02, 5.23331036e+02, 1.16447879e+03,
+                                 1.45737904e+03, 1.93375238e+03, 2.02017169e+03, 3.55570313e+03,
+                                 3.95986905e+03, 5.52173250e+03, 8.20436174e+03, 9.93573257e+03,
+                                 1.36092721e+04, 1.87334336e+04, 2.07723720e+04, 2.17070806e+04,
+                                 2.72168569e+04, 3.31886655e+04, 3.72430633e+04, 4.64233389e+04,
+                                 6.35672652e+04, 8.61196820e+04, 1.08248150e+05, 1.65647618e+05,
+                                 5.72597674e+05, 9.44823397e+05, 1.45785061e+06, 6.85705713e+06])
 
         TOL = 1e-7
         for val,chk in zip(eigvals,eigvals_chk):
@@ -128,16 +126,14 @@ def test_hessian_projection(self):
 
     def test_confidenceRegion(self):
 
-        edesign = proto.CircuitListsDesign([pygsti.circuits.CircuitList(circuit_struct)
-                                            for circuit_struct in self.gss])
-        data = proto.ProtocolData(edesign, self.ds)
+        data = proto.ProtocolData(self.edesign, self.ds)
         res = proto.ModelEstimateResults(data, proto.StandardGST(modes="full TP"))
 
         #Add estimate for hessian-based CI --------------------------------------------------
         builder = pygsti.objectivefns.PoissonPicDeltaLogLFunction.builder()
         res.add_estimate(
             proto.estimate.Estimate.create_gst_estimate(
-                res, stdxyi.target_model(), stdxyi.target_model(),
+                res, smq1Q_XY.target_model(), smq1Q_XY.target_model(),
                 [self.model] * len(self.maxLengthList), parameters={'final_objfn_builder': builder}),
             estimate_key="default"
         )
@@ -181,7 +177,7 @@ def test_confidenceRegion(self):
         #Add estimate for linresponse-based CI --------------------------------------------------
         res.add_estimate(
             proto.estimate.Estimate.create_gst_estimate(
-                res, stdxyi.target_model(), stdxyi.target_model(),
+                res, smq1Q_XY.target_model(), smq1Q_XY.target_model(),
                 [self.model]*len(self.maxLengthList), parameters={'final_objfn_builder': builder}),
             estimate_key="linresponse"
         )
@@ -215,7 +211,7 @@ def __init__(self):
         
         res.add_estimate(
             proto.estimate.Estimate.create_gst_estimate(
-                res, stdxyi.target_model(), stdxyi.target_model(),
+                res, smq1Q_XY.target_model(), smq1Q_XY.target_model(),
                 [self.model]*len(self.maxLengthList), parameters={'final_objfn_builder': FooBar()}),
             estimate_key="foo"
         )
@@ -225,8 +221,6 @@ def __init__(self):
         with self.assertRaises(ValueError): # bad objective
             est.create_confidence_region_factory('final iteration estimate', 'final').compute_hessian()
 
-
-
         # Now test each of the views we created above ------------------------------------------------
         for ci_cur in (ci_std, ci_noproj, ci_opt, ci_intrinsic, ci_linresponse):
 
@@ -235,7 +229,7 @@ def __init__(self):
 
             #linear response CI doesn't support profile likelihood intervals
             if ci_cur is not ci_linresponse: # (profile likelihoods not implemented in this case)
-                ar_of_intervals_Gx = ci_cur.retrieve_profile_likelihood_confidence_intervals(L("Gx"))
+                ar_of_intervals_Gx = ci_cur.retrieve_profile_likelihood_confidence_intervals(L("Gxpi2", 0))
                 ar_of_intervals_rho0 = ci_cur.retrieve_profile_likelihood_confidence_intervals(L("rho0"))
                 ar_of_intervals_M0 = ci_cur.retrieve_profile_likelihood_confidence_intervals(L("Mdefault"))
                 ar_of_intervals = ci_cur.retrieve_profile_likelihood_confidence_intervals()
@@ -265,7 +259,7 @@ def fnOfGate_3D(mx,b):
 
             for fnOfOp in fns:
                 FnClass = gsf.opfn_factory(fnOfOp)
-                FnObj = FnClass(self.model, 'Gx')
+                FnObj = FnClass(self.model, L('Gxpi2',0))
                 if fnOfOp is fnOfGate_3D:
                     with self.assertRaises(ValueError):
                         df = ci_cur.compute_confidence_interval(FnObj, verbosity=0)
@@ -339,13 +333,13 @@ def fnOfSpam_3D(rhoVecs, povms):
 
 
             def fnOfGateSet_float(mdl):
-                return float( mdl.operations['Gx'][0,0] )
+                return float( mdl.operations['Gxpi2',0][0,0] )
             def fnOfGateSet_0D(mdl):
-                return np.array( mdl.operations['Gx'][0,0]  )
+                return np.array( mdl.operations['Gxpi2',0][0,0]  )
             def fnOfGateSet_1D(mdl):
-                return np.array( mdl.operations['Gx'][0,:] )
+                return np.array( mdl.operations['Gxpi2',0][0,:] )
             def fnOfGateSet_2D(mdl):
-                return np.array( mdl.operations['Gx'] )
+                return np.array( mdl.operations['Gxpi2',0] )
             def fnOfGateSet_3D(mdl):
                 return np.zeros( (2,2,2), 'd') #just to test for error
 
@@ -363,14 +357,13 @@ def fnOfGateSet_3D(mdl):
         #TODO: assert values of df & f0 ??
 
     def test_pickle_ConfidenceRegion(self):
-        edesign = proto.CircuitListsDesign([pygsti.circuits.CircuitList(circuit_struct)
-                                            for circuit_struct in self.gss])
-        data = proto.ProtocolData(edesign, self.ds)
+
+        data = proto.ProtocolData(self.edesign, self.ds)
         res = proto.ModelEstimateResults(data, proto.StandardGST(modes="full TP"))
 
         res.add_estimate(
             proto.estimate.Estimate.create_gst_estimate(
-                res, stdxyi.target_model(), stdxyi.target_model(),
+                res, smq1Q_XY.target_model(), smq1Q_XY.target_model(),
                 [self.model]*len(self.maxLengthList), parameters={'objective': 'logl'}),
             estimate_key="default"
         )
diff --git a/test/test_packages/tools/test_logl.py b/test/test_packages/tools/test_logl.py
index a4e75251d..8e73a9f1a 100644
--- a/test/test_packages/tools/test_logl.py
+++ b/test/test_packages/tools/test_logl.py
@@ -2,20 +2,36 @@
 import psutil
 
 import pygsti
+from pygsti.modelpacks import smq1Q_XY
+import pygsti.protocols as proto
 from ..testutils import BaseTestCase, compare_files
 
 
 class LogLTestCase(BaseTestCase):
     def test_memory(self):
 
+        model = smq1Q_XY.target_model()
+        model = model.depolarize(spam_noise = .01, op_noise = .001)
+        model = model.rotate(max_rotate=.005, seed=1234)
+
+        prep_fiducials = smq1Q_XY.prep_fiducials()
+        meas_fiducials = smq1Q_XY.meas_fiducials()
+        germs = smq1Q_XY.germs()
+        op_labels = list(model.operations.keys()) # also == std.gates
+        maxLengthList = [1]
+        #circuits for XY model.
+        gss = pygsti.circuits.make_lsgst_structs(op_labels, prep_fiducials[0:4], 
+                                                          meas_fiducials[0:3], smq1Q_XY.germs(), maxLengthList)
+
+        edesign =  proto.CircuitListsDesign([pygsti.circuits.CircuitList(circuit_struct) for circuit_struct in gss])
+
+        ds = pygsti.data.simulate_data(model, edesign.all_circuits_needing_data, 1000, seed = 1234)
+
         def musage(prefix):
             p = psutil.Process(os.getpid())
             print(prefix, p.memory_info()[0])
         current_mem = pygsti.baseobjs.profiler._get_mem_usage
 
-        musage("Initial")
-        ds = pygsti.data.DataSet(file_to_load_from=compare_files + "/analysis.dataset")
-        model = pygsti.io.load_model(compare_files + "/analysis.model")
         musage("Pt1")
         
         with self.assertRaises(MemoryError):
diff --git a/test/unit/construction/test_qutrit.py b/test/unit/construction/test_qutrit.py
index abd51b7ed..166695be8 100644
--- a/test/unit/construction/test_qutrit.py
+++ b/test/unit/construction/test_qutrit.py
@@ -11,7 +11,7 @@ def test_ideal_qutrit(self):
     def test_noisy_qutrit(self):
         mdl_sim = qutrit.create_qutrit_model(error_scale=0.1, similarity=True, seed=1234, basis='qt')
         mdl_ideal = qutrit.create_qutrit_model(error_scale=0.1, similarity=True, seed=1234, basis='qt')
-        self.assertArraysAlmostEqual(mdl_sim['Gi'], mdl_ideal['Gi'])
+        self.assertArraysAlmostEqual(mdl_sim['Gi', 'QT'], mdl_ideal['Gi', 'QT'])
 
         #just test building a gate in the qutrit basis
         # Can't do this b/c need a 'T*' triplet space designator for "triplet space" and it doesn't seem
diff --git a/test/unit/tools/test_edesigntools.py b/test/unit/tools/test_edesigntools.py
index 660c615e4..05084643f 100644
--- a/test/unit/tools/test_edesigntools.py
+++ b/test/unit/tools/test_edesigntools.py
@@ -12,7 +12,7 @@
 class ExperimentDesignTimeEstimationTester(BaseCase):
 
     def test_time_estimation(self):
-        edesign = smq2Q_XYICNOT.create_gst_experiment_design(256)
+        edesign = smq2Q_XYICNOT.create_gst_experiment_design(8)
         
         # Dummy test: No time
         time0 = et.calculate_edesign_estimated_runtime(