From f9dbffcb6ecef4910669aa86cffa67e1633126fc Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Thu, 5 Dec 2024 10:39:43 +0100 Subject: [PATCH 01/11] documentation: added moenchzmq conda info in installation page (#1066) --- docs/src/installation.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/src/installation.rst b/docs/src/installation.rst index c63098425..f49579748 100644 --- a/docs/src/installation.rst +++ b/docs/src/installation.rst @@ -55,6 +55,8 @@ We have three different packages available: conda search slsdet # gui conda search slsdetgui + # moench + conda search moenchzmq From e47d3d4d1545fb7077e4ac92af5672485962cbda Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Thu, 5 Dec 2024 10:50:52 +0100 Subject: [PATCH 02/11] documentation for moenchzmq conda --- docs/src/installation.rst | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/docs/src/installation.rst b/docs/src/installation.rst index f49579748..2f1dca474 100644 --- a/docs/src/installation.rst +++ b/docs/src/installation.rst @@ -23,11 +23,15 @@ Conda is not only useful to manage python environments but can also be used as a user space package manager. Dates in the tag (for eg. 2020.07.23.dev0) are from the developer branch. Please use released tags for stability. -We have three different packages available: - - * **slsdetlib** shared libraries and command line utilities - * **slsdetgui** GUI - * **slsdet** Python bindings +We have four different packages available: + ============== ============================================= + Package Description + ============== ============================================= + slsdetlib shared libraries and command line utilities + slsdetgui GUI + slsdet Python bindings + moenchzmq moench + ============== ============================================= .. code-block:: bash @@ -43,7 +47,7 @@ We have three different packages available: #ready to use sls_detector_get exptime - etc ... + ... .. code-block:: bash From ec3d3e38a6c4f089969a7c978276237030f9670c Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Mon, 13 Jan 2025 14:44:28 +0100 Subject: [PATCH 03/11] minor to test --- RELEASE.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE.txt b/RELEASE.txt index 497e1d568..dd5d6280c 100644 --- a/RELEASE.txt +++ b/RELEASE.txt @@ -28,7 +28,7 @@ This document describes the differences between vx.x.x and vx.0.2 ===================================== - + 2 On-board Detector Server Compatibility From ed6686d4a7665ad19a930bddbae6149ebc2561d5 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Mon, 13 Jan 2025 16:07:34 +0100 Subject: [PATCH 04/11] Dev/workflow build fix png and tiff (#1071) * installing png on github workflow actions for the build fail on github due to latest ubuntu * installing tiff on github workflow --- .github/workflows/cmake.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 107e1c436..9826f4b13 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -17,7 +17,7 @@ jobs: - uses: actions/checkout@v3 - uses: awalsh128/cache-apt-pkgs-action@latest with: - packages: libhdf5-dev qtbase5-dev qt5-qmake libqt5svg5-dev + packages: libhdf5-dev qtbase5-dev qt5-qmake libqt5svg5-dev libpng-dev libtiff-dev version: 1.0 - name: Configure CMake From 0771461c01293bd580a3b6aaa8ba4656e7d3ca02 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Mon, 13 Jan 2025 16:46:01 +0100 Subject: [PATCH 05/11] CLI: added empty dbit list option 'none' (#1069) * cli: added 'none' to the rx_dbitlist command to be able to set the dbit list to an empty list --- slsDetectorSoftware/include/sls/Detector.h | 3 ++- slsDetectorSoftware/src/CallerSpecial.cpp | 18 +++++++++++++----- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/slsDetectorSoftware/include/sls/Detector.h b/slsDetectorSoftware/include/sls/Detector.h index 04abc8dba..565967345 100644 --- a/slsDetectorSoftware/include/sls/Detector.h +++ b/slsDetectorSoftware/include/sls/Detector.h @@ -1749,7 +1749,8 @@ class Detector { Result> getRxDbitList(Positions pos = {}) const; /** [CTB] list contains the set of digital signal bits (0-63) to save, must - * be non repetitive */ + * be non repetitive. Note: data will be rearranged according to signal bits + */ void setRxDbitList(const std::vector &list, Positions pos = {}); /** [CTB] */ diff --git a/slsDetectorSoftware/src/CallerSpecial.cpp b/slsDetectorSoftware/src/CallerSpecial.cpp index fc0a2bfa3..341980859 100644 --- a/slsDetectorSoftware/src/CallerSpecial.cpp +++ b/slsDetectorSoftware/src/CallerSpecial.cpp @@ -1020,10 +1020,16 @@ std::string Caller::slowadc(int action) { std::string Caller::rx_dbitlist(int action) { std::ostringstream os; if (action == defs::HELP_ACTION) { - os << "[all] or [i0] [i1] [i2]... \n\t[Ctb] List of digital signal " - "bits read out. If all is used instead of a list, all digital " - "bits (64) enabled. Each element in list can be 0 - 63 and must " - "be non repetitive." + os << "[all] or [none] or [i0] [i1] [i2]... \n\t[Ctb] List of digital " + "signal bits enabled and rearranged according to the signals " + "(all samples of each signal is put together). If 'all' is used " + "instead of a list, all digital bits (64) enabled. Each element " + "in list can be 0 - 63 and must be non repetitive. The option " + "'none' will still spit out all data as is from the detector, " + "but without rearranging it. Please note that when using the " + "receiver list, the data size will be bigger if the number of " + "samples is not divisible by 8 as every signal bit is padded to " + "the next byte when combining all the samples in the receiver." << '\n'; } else if (action == defs::GET_ACTION) { if (!args.empty()) { @@ -1041,7 +1047,9 @@ std::string Caller::rx_dbitlist(int action) { for (unsigned int i = 0; i < 64; ++i) { t[i] = i; } - } else { + } + // 'none' option already covered as t is empty by default + else if (args[0] != "none") { unsigned int ntrim = args.size(); t.resize(ntrim); for (unsigned int i = 0; i < ntrim; ++i) { From fcc9b6ad5417ebdb72fdcc41655969bebf6add86 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Tue, 14 Jan 2025 15:43:11 +0100 Subject: [PATCH 06/11] added sls_detector_acquire_zmq binary in conda (#1074) --- conda-recipe/copy_lib.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/conda-recipe/copy_lib.sh b/conda-recipe/copy_lib.sh index da40a721a..5836146f6 100755 --- a/conda-recipe/copy_lib.sh +++ b/conda-recipe/copy_lib.sh @@ -11,6 +11,7 @@ cp build/install/lib/* $PREFIX/lib/ #Binaries cp build/install/bin/sls_detector_acquire $PREFIX/bin/. +cp build/install/bin/sls_detector_acquire_zmq $PREFIX/bin/. cp build/install/bin/sls_detector_get $PREFIX/bin/. cp build/install/bin/sls_detector_put $PREFIX/bin/. cp build/install/bin/sls_detector_help $PREFIX/bin/. From e6e260d8cabed67e8df0cabb5b8c504483460df8 Mon Sep 17 00:00:00 2001 From: Martin Mueller <72937414+mmarti04@users.noreply.github.com> Date: Thu, 30 Jan 2025 09:44:36 +0100 Subject: [PATCH 07/11] remove cross-compiler option in the case of compiling the detector server on the detector module CPU (#1078) Co-authored-by: Martin Mueller --- slsDetectorServers/xilinx_ctbDetectorServer/Makefile | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/slsDetectorServers/xilinx_ctbDetectorServer/Makefile b/slsDetectorServers/xilinx_ctbDetectorServer/Makefile index 06a4d986d..c271efdfe 100755 --- a/slsDetectorServers/xilinx_ctbDetectorServer/Makefile +++ b/slsDetectorServers/xilinx_ctbDetectorServer/Makefile @@ -7,7 +7,12 @@ support_lib = ../../slsSupportLib/include/ det_lib = ../../slsDetectorSoftware/include/sls/ md5_dir = ../../slsSupportLib/src/ -CROSS = aarch64-none-linux-gnu- +ifeq ($(shell uname -m),aarch64) + # no cross compilation needed when on aarch64 + CROSS = +else + CROSS = aarch64-none-linux-gnu- +endif CC = $(CROSS)gcc #TODO: allow these warnings and fix code CFLAGS += -Wall -std=gnu99 -Wno-format-overflow -Wno-format-truncation -DXILINX_CHIPTESTBOARDD -DARMPROCESSOR -DSTOP_SERVER -I$(main_inc) -I$(support_lib) -I$(det_lib) -I$(current_dir) #-DDEBUG1 #-DVERBOSEI #-DVERBOSE From 0e45ae189db4d7c95538a55c60c40d4146e7a740 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Fri, 31 Jan 2025 12:24:05 +0100 Subject: [PATCH 08/11] allowing pyctbgui to work for xilinx ctb (#1079) * allowing pyctbgui to work for xilinx ctb * slowadc and adc enable (only 10g) allowed for xilinx ctb --- pyctbgui/pyctbgui/services/ADC.py | 55 ++++++--- pyctbgui/pyctbgui/services/Acquisition.py | 106 ++++++++++++------ pyctbgui/pyctbgui/services/DACs.py | 31 +++-- pyctbgui/pyctbgui/services/PowerSupplies.py | 24 +++- pyctbgui/pyctbgui/services/SlowADCs.py | 8 +- pyctbgui/pyctbgui/ui/Dacs.ui | 2 +- pyctbgui/pyctbgui/ui/acquisition.ui | 14 +-- pyctbgui/pyctbgui/ui/adc.ui | 6 +- pyctbgui/pyctbgui/ui/slowAdcs.ui | 2 +- .../slsDetectorFunctionList.c | 2 +- 10 files changed, 166 insertions(+), 84 deletions(-) diff --git a/pyctbgui/pyctbgui/services/ADC.py b/pyctbgui/pyctbgui/services/ADC.py index f470fc917..d9fabaccd 100644 --- a/pyctbgui/pyctbgui/services/ADC.py +++ b/pyctbgui/pyctbgui/services/ADC.py @@ -14,6 +14,8 @@ from pyctbgui.utils.defines import Defines import pyctbgui.utils.pixelmap as pm from pyctbgui.utils.recordOrApplyPedestal import recordOrApplyPedestal +from slsdet import detectorType + if typing.TYPE_CHECKING: from pyctbgui.services import AcquisitionTab, PlotTab @@ -30,6 +32,7 @@ class AdcTab(QtWidgets.QWidget): self.acquisitionTab: AcquisitionTab | None = None self.legend: LegendItem | None = None self.logger = logging.getLogger('AdcTab') + self.tengiga = True def setup_ui(self): self.plotTab = self.mainWindow.plotTab @@ -42,6 +45,12 @@ class AdcTab(QtWidgets.QWidget): self.legend.clear() # subscribe to toggle legend self.plotTab.subscribeToggleLegend(self.updateLegend) + + if self.det.type == detectorType.XILINX_CHIPTESTBOARD: + self.view.checkBoxADC0_15Inv.setDisabled(True) + self.view.checkBoxADC16_31Inv.setDisabled(True) + self.view.lineEditADCInversion.setDisabled(True) + self.view.labelADCInversion.setDisabled(True) def initializeAllAnalogPlots(self): self.mainWindow.plotAnalogWaveform = pg.plot() @@ -67,7 +76,8 @@ class AdcTab(QtWidgets.QWidget): def connect_ui(self): for i in range(Defines.adc.count): - getattr(self.view, f"checkBoxADC{i}Inv").stateChanged.connect(partial(self.setADCInv, i)) + if self.det.type == detectorType.CHIPTESTBOARD: + getattr(self.view, f"checkBoxADC{i}Inv").stateChanged.connect(partial(self.setADCInv, i)) getattr(self.view, f"checkBoxADC{i}En").stateChanged.connect(partial(self.setADCEnable, i)) getattr(self.view, f"checkBoxADC{i}Plot").stateChanged.connect(partial(self.setADCEnablePlot, i)) getattr(self.view, f"pushButtonADC{i}").clicked.connect(partial(self.selectADCColor, i)) @@ -77,15 +87,17 @@ class AdcTab(QtWidgets.QWidget): self.view.checkBoxADC0_15Plot.stateChanged.connect(partial(self.setADCEnablePlotRange, 0, Defines.adc.half)) self.view.checkBoxADC16_31Plot.stateChanged.connect( partial(self.setADCEnablePlotRange, Defines.adc.half, Defines.adc.count)) - self.view.checkBoxADC0_15Inv.stateChanged.connect(partial(self.setADCInvRange, 0, Defines.adc.half)) - self.view.checkBoxADC16_31Inv.stateChanged.connect( - partial(self.setADCInvRange, Defines.adc.half, Defines.adc.count)) - self.view.lineEditADCInversion.editingFinished.connect(self.setADCInvReg) self.view.lineEditADCEnable.editingFinished.connect(self.setADCEnableReg) + if self.det.type == detectorType.CHIPTESTBOARD: + self.view.checkBoxADC0_15Inv.stateChanged.connect(partial(self.setADCInvRange, 0, Defines.adc.half)) + self.view.checkBoxADC16_31Inv.stateChanged.connect( + partial(self.setADCInvRange, Defines.adc.half, Defines.adc.count)) + self.view.lineEditADCInversion.editingFinished.connect(self.setADCInvReg) def refresh(self): self.updateADCNames() - self.updateADCInv() + if self.det.type == detectorType.CHIPTESTBOARD: + self.updateADCInv() self.updateADCEnable() # ADCs Tab functions @@ -196,9 +208,11 @@ class AdcTab(QtWidgets.QWidget): return decoder.decode(analog_array, pm.moench04_analog()) def getADCEnableReg(self): - retval = self.det.adcenable - if self.det.tengiga: - retval = self.det.adcenable10g + if self.det.type == detectorType.CHIPTESTBOARD: + self.tengiga = self.det.tengiga + retval = self.det.adcenable10g + if not self.tengiga: + retval = self.det.adcenable self.view.lineEditADCEnable.editingFinished.disconnect() self.view.lineEditADCEnable.setText("0x{:08x}".format(retval)) self.view.lineEditADCEnable.editingFinished.connect(self.setADCEnableReg) @@ -207,8 +221,8 @@ class AdcTab(QtWidgets.QWidget): def setADCEnableReg(self): self.view.lineEditADCEnable.editingFinished.disconnect() try: - mask = int(self.mainWindow.lineEditADCEnable.text(), 16) - if self.det.tengiga: + mask = int(self.view.lineEditADCEnable.text(), 16) + if self.tengiga: self.det.adcenable10g = mask else: self.det.adcenable = mask @@ -239,7 +253,7 @@ class AdcTab(QtWidgets.QWidget): def setADCEnable(self, i): checkBox = getattr(self.view, f"checkBoxADC{i}En") try: - if self.det.tengiga: + if self.tengiga: enableMask = manipulate_bit(checkBox.isChecked(), self.det.adcenable10g, i) self.det.adcenable10g = enableMask else: @@ -265,7 +279,7 @@ class AdcTab(QtWidgets.QWidget): for i in range(start_nr, end_nr): mask = manipulate_bit(checkBox.isChecked(), mask, i) try: - if self.det.tengiga: + if self.tengiga: self.det.adcenable10g = mask else: self.det.adcenable = mask @@ -344,7 +358,7 @@ class AdcTab(QtWidgets.QWidget): def setADCInvReg(self): self.view.lineEditADCInversion.editingFinished.disconnect() try: - self.det.adcinvert = int(self.mainWindow.lineEditADCInversion.text(), 16) + self.det.adcinvert = int(self.view.lineEditADCInversion.text(), 16) except Exception as e: QtWidgets.QMessageBox.warning(self.mainWindow, "ADC Inversion Fail", str(e), QtWidgets.QMessageBox.Ok) pass @@ -395,7 +409,12 @@ class AdcTab(QtWidgets.QWidget): self.updateADCInv() def saveParameters(self) -> list[str]: - return [ - f"adcenable {self.view.lineEditADCEnable.text()}", - f"adcinvert {self.view.lineEditADCInversion.text()}", - ] + if self.det.type == detectorType.CHIPTESTBOARD: + return [ + f"adcenable {self.view.lineEditADCEnable.text()}", + f"adcinvert {self.view.lineEditADCInversion.text()}", + ] + else: + return [ + f"adcenable {self.view.lineEditADCEnable.text()}" + ] diff --git a/pyctbgui/pyctbgui/services/Acquisition.py b/pyctbgui/pyctbgui/services/Acquisition.py index d87cad767..e931a1835 100644 --- a/pyctbgui/pyctbgui/services/Acquisition.py +++ b/pyctbgui/pyctbgui/services/Acquisition.py @@ -7,7 +7,7 @@ import zmq from PyQt5 import QtWidgets, uic import logging -from slsdet import readoutMode, runStatus +from slsdet import readoutMode, runStatus, detectorType from pyctbgui.utils.defines import Defines from pyctbgui.utils.numpyWriter.npy_writer import NumpyFileManager from pyctbgui.utils.numpyWriter.npz_writer import NpzFileWriter @@ -49,20 +49,37 @@ class AcquisitionTab(QtWidgets.QWidget): self.adcTab = self.mainWindow.adcTab self.plotTab = self.mainWindow.plotTab self.toggleStartButton(False) + if self.det.type == detectorType.XILINX_CHIPTESTBOARD: + self.view.labelRunF.setDisabled(True) + self.view.labelADCF.setDisabled(True) + self.view.labelADCPhase.setDisabled(True) + self.view.labelADCPipeline.setDisabled(True) + self.view.labelDBITF.setDisabled(True) + self.view.labelDBITPhase.setDisabled(True) + self.view.labelDBITPipeline.setDisabled(True) + self.view.spinBoxRunF.setDisabled(True) + self.view.spinBoxADCF.setDisabled(True) + self.view.spinBoxADCPhase.setDisabled(True) + self.view.spinBoxADCPipeline.setDisabled(True) + self.view.spinBoxDBITF.setDisabled(True) + self.view.spinBoxDBITPhase.setDisabled(True) + self.view.spinBoxDBITPipeline.setDisabled(True) def connect_ui(self): # For Acquistions Tab self.view.comboBoxROMode.currentIndexChanged.connect(self.setReadOut) - self.view.spinBoxRunF.editingFinished.connect(self.setRunFrequency) self.view.spinBoxTransceiver.editingFinished.connect(self.setTransceiver) self.view.spinBoxAnalog.editingFinished.connect(self.setAnalog) self.view.spinBoxDigital.editingFinished.connect(self.setDigital) - self.view.spinBoxADCF.editingFinished.connect(self.setADCFrequency) - self.view.spinBoxADCPhase.editingFinished.connect(self.setADCPhase) - self.view.spinBoxADCPipeline.editingFinished.connect(self.setADCPipeline) - self.view.spinBoxDBITF.editingFinished.connect(self.setDBITFrequency) - self.view.spinBoxDBITPhase.editingFinished.connect(self.setDBITPhase) - self.view.spinBoxDBITPipeline.editingFinished.connect(self.setDBITPipeline) + + if self.det.type == detectorType.CHIPTESTBOARD: + self.view.spinBoxRunF.editingFinished.connect(self.setRunFrequency) + self.view.spinBoxADCF.editingFinished.connect(self.setADCFrequency) + self.view.spinBoxADCPhase.editingFinished.connect(self.setADCPhase) + self.view.spinBoxADCPipeline.editingFinished.connect(self.setADCPipeline) + self.view.spinBoxDBITF.editingFinished.connect(self.setDBITFrequency) + self.view.spinBoxDBITPhase.editingFinished.connect(self.setDBITPhase) + self.view.spinBoxDBITPipeline.editingFinished.connect(self.setDBITPipeline) self.view.checkBoxFileWriteRaw.stateChanged.connect(self.setFileWrite) self.view.checkBoxFileWriteNumpy.stateChanged.connect(self.setFileWriteNumpy) @@ -77,16 +94,19 @@ class AcquisitionTab(QtWidgets.QWidget): def refresh(self): self.getReadout() - self.getRunFrequency() self.getTransceiver() self.getAnalog() self.getDigital() - self.getADCFrequency() - self.getADCPhase() - self.getADCPipeline() - self.getDBITFrequency() - self.getDBITPhase() - self.getDBITPipeline() + + if self.det.type == detectorType.CHIPTESTBOARD: + self.getRunFrequency() + self.getADCFrequency() + self.getADCPhase() + self.getADCPipeline() + self.getDBITFrequency() + self.getDBITPhase() + self.getDBITPipeline() + self.getFileWrite() self.getFileName() self.getFilePath() @@ -697,23 +717,39 @@ class AcquisitionTab(QtWidgets.QWidget): self.socket.subscribe("") def saveParameters(self) -> list[str]: - return [ - f'romode {self.view.comboBoxROMode.currentText().lower()}', - f'runclk {self.view.spinBoxRunF.value()}', - f'adcclk {self.view.spinBoxADCF.value()}', - f'adcphase {self.view.spinBoxADCPhase.value()}', - f'adcpipeline {self.view.spinBoxADCPipeline.value()}', - f'dbitclk {self.view.spinBoxDBITF.value()}', - f'dbitphase {self.view.spinBoxDBITPhase.value()}', - f'dbitpipeline {self.view.spinBoxDBITPipeline.value()}', - f'fwrite {int(self.view.checkBoxFileWriteRaw.isChecked())}', - f'fname {self.view.lineEditFileName.text()}', - f'fpath {self.view.lineEditFilePath.text()}', - f'findex {self.view.spinBoxAcquisitionIndex.value()}', - f'frames {self.view.spinBoxFrames.value()}', - f'triggers {self.view.spinBoxTriggers.value()}', - f'period {self.view.spinBoxPeriod.value()} {self.view.comboBoxPeriod.currentText().lower()}', - f'asamples {self.view.spinBoxAnalog.value()}', - f'dsamples {self.view.spinBoxDigital.value()}', - f'tsamples {self.view.spinBoxTransceiver.value()}', - ] + if self.det.type == detectorType.CHIPTESTBOARD: + return [ + f'romode {self.view.comboBoxROMode.currentText().lower()}', + f'runclk {self.view.spinBoxRunF.value()}', + f'adcclk {self.view.spinBoxADCF.value()}', + f'adcphase {self.view.spinBoxADCPhase.value()}', + f'adcpipeline {self.view.spinBoxADCPipeline.value()}', + f'dbitclk {self.view.spinBoxDBITF.value()}', + f'dbitphase {self.view.spinBoxDBITPhase.value()}', + f'dbitpipeline {self.view.spinBoxDBITPipeline.value()}', + f'fwrite {int(self.view.checkBoxFileWriteRaw.isChecked())}', + f'fname {self.view.lineEditFileName.text()}', + f'fpath {self.view.lineEditFilePath.text()}', + f'findex {self.view.spinBoxAcquisitionIndex.value()}', + f'frames {self.view.spinBoxFrames.value()}', + f'triggers {self.view.spinBoxTriggers.value()}', + f'period {self.view.spinBoxPeriod.value()} {self.view.comboBoxPeriod.currentText().lower()}', + f'asamples {self.view.spinBoxAnalog.value()}', + f'dsamples {self.view.spinBoxDigital.value()}', + f'tsamples {self.view.spinBoxTransceiver.value()}', + ] + else: + return [ + f'romode {self.view.comboBoxROMode.currentText().lower()}', + f'fwrite {int(self.view.checkBoxFileWriteRaw.isChecked())}', + f'fname {self.view.lineEditFileName.text()}', + f'fpath {self.view.lineEditFilePath.text()}', + f'findex {self.view.spinBoxAcquisitionIndex.value()}', + f'frames {self.view.spinBoxFrames.value()}', + f'triggers {self.view.spinBoxTriggers.value()}', + f'period {self.view.spinBoxPeriod.value()} {self.view.comboBoxPeriod.currentText().lower()}', + f'asamples {self.view.spinBoxAnalog.value()}', + f'dsamples {self.view.spinBoxDigital.value()}', + f'tsamples {self.view.spinBoxTransceiver.value()}', + ] + diff --git a/pyctbgui/pyctbgui/services/DACs.py b/pyctbgui/pyctbgui/services/DACs.py index 1bd7ab721..c626a8613 100644 --- a/pyctbgui/pyctbgui/services/DACs.py +++ b/pyctbgui/pyctbgui/services/DACs.py @@ -4,7 +4,7 @@ from pathlib import Path from PyQt5 import QtWidgets, uic from pyctbgui.utils.defines import Defines -from slsdet import dacIndex +from slsdet import dacIndex, detectorType class DacTab(QtWidgets.QWidget): @@ -19,7 +19,14 @@ class DacTab(QtWidgets.QWidget): dac = getattr(dacIndex, f"DAC_{i}") getattr(self.view, f"spinBoxDAC{i}").setValue(self.det.getDAC(dac)[0]) - if self.det.highvoltage == 0: + if self.det.type == detectorType.XILINX_CHIPTESTBOARD: + self.view.checkBoxHighVoltage.setDisabled(True) + self.view.spinBoxHighVoltage.setDisabled(True) + self.view.labelHighVoltage.setDisabled(True) + self.view.labelADCVppDacName.setDisabled(True) + self.view.labelADCVpp.setDisabled(True) + self.view.comboBoxADCVpp.setDisabled(True) + elif self.det.highvoltage == 0: self.view.spinBoxHighVoltage.setDisabled(True) self.view.checkBoxHighVoltage.setChecked(False) @@ -30,9 +37,11 @@ class DacTab(QtWidgets.QWidget): getattr(self.view, f"checkBoxDAC{i}").stateChanged.connect(partial(self.setDACTristate, i)) getattr(self.view, f"checkBoxDAC{i}mV").stateChanged.connect(partial(self.getDAC, i)) - self.view.comboBoxADCVpp.currentIndexChanged.connect(self.setADCVpp) - self.view.spinBoxHighVoltage.editingFinished.connect(self.setHighVoltage) - self.view.checkBoxHighVoltage.stateChanged.connect(self.setHighVoltage) + if self.view.comboBoxADCVpp.isEnabled(): + self.view.comboBoxADCVpp.currentIndexChanged.connect(self.setADCVpp) + if self.view.checkBoxHighVoltage.isEnabled(): + self.view.spinBoxHighVoltage.editingFinished.connect(self.setHighVoltage) + self.view.checkBoxHighVoltage.stateChanged.connect(self.setHighVoltage) def refresh(self): self.updateDACNames() @@ -40,8 +49,10 @@ class DacTab(QtWidgets.QWidget): self.getDACTristate(i) self.getDAC(i) - self.getADCVpp() - self.getHighVoltage() + if self.view.comboBoxADCVpp.isEnabled(): + self.getADCVpp() + if self.view.checkBoxHighVoltage.isEnabled(): + self.getHighVoltage() def updateDACNames(self): for i, name in enumerate(self.det.getDacNames()): @@ -165,6 +176,8 @@ class DacTab(QtWidgets.QWidget): unit = " mV" if inMV else "" commands.append(f"dac {i} {value}{unit}") - commands.append(f"adcvpp {self.view.comboBoxADCVpp.currentText()} mV") - commands.append(f"highvoltage {self.view.spinBoxHighVoltage.value()}") + if self.view.comboBoxADCVpp.isEnabled(): + commands.append(f"adcvpp {self.view.comboBoxADCVpp.currentText()} mV") + if self.view.checkBoxHighVoltage.isEnabled(): + commands.append(f"highvoltage {self.view.spinBoxHighVoltage.value()}") return commands diff --git a/pyctbgui/pyctbgui/services/PowerSupplies.py b/pyctbgui/pyctbgui/services/PowerSupplies.py index ec8d2f5dd..e5b402101 100644 --- a/pyctbgui/pyctbgui/services/PowerSupplies.py +++ b/pyctbgui/pyctbgui/services/PowerSupplies.py @@ -4,7 +4,7 @@ from pathlib import Path from PyQt5 import QtWidgets, uic from pyctbgui.utils.defines import Defines -from slsdet import dacIndex +from slsdet import dacIndex, detectorType class PowerSuppliesTab(QtWidgets.QWidget): @@ -18,7 +18,8 @@ class PowerSuppliesTab(QtWidgets.QWidget): self.updateVoltageNames() for i in Defines.powerSupplies: self.getVoltage(i) - self.getCurrent(i) + if self.det.type == detectorType.CHIPTESTBOARD: + self.getCurrent(i) def connect_ui(self): for i in Defines.powerSupplies: @@ -38,6 +39,12 @@ class PowerSuppliesTab(QtWidgets.QWidget): if retval == 0: checkBox.setChecked(False) spinBox.setDisabled(True) + if self.det.type == detectorType.XILINX_CHIPTESTBOARD: + label = getattr(self.view, f"labelI{i}") + label.setDisabled(True) + if self.det.type == detectorType.XILINX_CHIPTESTBOARD: + self.view.spinBoxVChip.setDisabled(True) + def updateVoltageNames(self): retval = self.det.getPowerNames() @@ -56,7 +63,10 @@ class PowerSuppliesTab(QtWidgets.QWidget): spinBox.editingFinished.disconnect() checkBox.stateChanged.disconnect() - retval = self.det.getMeasuredPower(voltageIndex)[0] + if self.det.type == detectorType.XILINX_CHIPTESTBOARD: + retval = self.det.getPower(voltageIndex)[0] + else: + retval = self.det.getMeasuredPower(voltageIndex)[0] # spinBox.setValue(retval) if retval > 1: checkBox.setChecked(True) @@ -68,8 +78,9 @@ class PowerSuppliesTab(QtWidgets.QWidget): spinBox.editingFinished.connect(partial(self.setVoltage, i)) checkBox.stateChanged.connect(partial(self.setVoltage, i)) - - self.getVChip() + + if self.det.type == detectorType.CHIPTESTBOARD: + self.getVChip() # TODO: handle multiple events when pressing enter (twice) @@ -91,7 +102,8 @@ class PowerSuppliesTab(QtWidgets.QWidget): # TODO: (properly) disconnecting and connecting to handle multiple events (out of focus and pressing enter). spinBox.editingFinished.connect(partial(self.setVoltage, i)) self.getVoltage(i) - self.getCurrent(i) + if self.det.type == detectorType.CHIPTESTBOARD: + self.getCurrent(i) def getCurrent(self, i): label = getattr(self.view, f"labelI{i}") diff --git a/pyctbgui/pyctbgui/services/SlowADCs.py b/pyctbgui/pyctbgui/services/SlowADCs.py index 4b73b18f0..92876286e 100644 --- a/pyctbgui/pyctbgui/services/SlowADCs.py +++ b/pyctbgui/pyctbgui/services/SlowADCs.py @@ -4,7 +4,7 @@ from pathlib import Path from PyQt5 import uic, QtWidgets from pyctbgui.utils.defines import Defines -from slsdet import dacIndex +from slsdet import dacIndex, detectorType class SlowAdcTab(QtWidgets.QWidget): @@ -17,7 +17,8 @@ class SlowAdcTab(QtWidgets.QWidget): self.det = None def setup_ui(self): - pass + if self.det.type == detectorType.XILINX_CHIPTESTBOARD: + self.view.pushButtonTemp.setDisabled(True) def connect_ui(self): for i in range(Defines.slowAdc.count): @@ -28,7 +29,8 @@ class SlowAdcTab(QtWidgets.QWidget): self.updateSlowAdcNames() for i in range(Defines.slowAdc.count): self.updateSlowAdc(i) - self.updateTemperature() + if self.det.type == detectorType.CHIPTESTBOARD: + self.updateTemperature() def updateSlowAdcNames(self): for i, name in enumerate(self.mainWindow.det.getSlowADCNames()): diff --git a/pyctbgui/pyctbgui/ui/Dacs.ui b/pyctbgui/pyctbgui/ui/Dacs.ui index 940f93c7d..64cfd4b57 100644 --- a/pyctbgui/pyctbgui/ui/Dacs.ui +++ b/pyctbgui/pyctbgui/ui/Dacs.ui @@ -817,7 +817,7 @@ Only pressing enter on spinbox will set DAC (with this condition). - + ADC_VPP diff --git a/pyctbgui/pyctbgui/ui/acquisition.ui b/pyctbgui/pyctbgui/ui/acquisition.ui index 5b9fa58fd..c2d15dff6 100644 --- a/pyctbgui/pyctbgui/ui/acquisition.ui +++ b/pyctbgui/pyctbgui/ui/acquisition.ui @@ -118,7 +118,7 @@ - + Run Clock Frequency (MHz): @@ -218,7 +218,7 @@ - + 200 @@ -231,7 +231,7 @@ - + 0 @@ -278,7 +278,7 @@ - + DBIT Pipeline: @@ -338,21 +338,21 @@ - + ADC Pipeline: - + ADC Clock Phase (a.u.): - + DBIT Clock Phase (a.u.): diff --git a/pyctbgui/pyctbgui/ui/adc.ui b/pyctbgui/pyctbgui/ui/adc.ui index c1fabe266..2a03d9c16 100644 --- a/pyctbgui/pyctbgui/ui/adc.ui +++ b/pyctbgui/pyctbgui/ui/adc.ui @@ -19,7 +19,7 @@ Form - + 0 @@ -3142,7 +3142,7 @@ - + 10 @@ -3188,7 +3188,7 @@ - + 10 diff --git a/pyctbgui/pyctbgui/ui/slowAdcs.ui b/pyctbgui/pyctbgui/ui/slowAdcs.ui index 546a30e53..a5aef5b31 100644 --- a/pyctbgui/pyctbgui/ui/slowAdcs.ui +++ b/pyctbgui/pyctbgui/ui/slowAdcs.ui @@ -19,7 +19,7 @@ Form - + 0 diff --git a/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorFunctionList.c index 1b10b088e..8353f70c9 100644 --- a/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorFunctionList.c @@ -1056,7 +1056,7 @@ int getPower(enum DACINDEX ind) { // dac powered off if (dacValues[ind] == LTC2620_D_GetPowerDownValue()) { - LOG(logWARNING, ("Power V%s powered down\n", powerNames[pwrIndex])); + LOG(logWARNING, ("Power V%s is powered down\n", powerNames[pwrIndex])); return LTC2620_D_GetPowerDownValue(); } From e92578f89da65b2111a273f7d6fac3512d0f18e4 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Fri, 31 Jan 2025 12:27:35 +0100 Subject: [PATCH 09/11] formatting --- slsDetectorGui/include/qDefs.h | 4 +- .../eigerDetectorServer/9mhvserial_bf.c | 2 +- .../eigerDetectorServer/FebRegisterDefs.h | 9 +- .../eigerDetectorServer/xfs_types.h | 2 +- .../eigerDetectorServer/xparameters.h | 2 +- .../gotthardDetectorServer/RegisterDefs.h | 40 ++-- .../mythen3DetectorServer/mythen3.c | 4 +- .../mythen3DetectorServer/mythen3.h | 4 +- .../slsDetectorServer/src/I2C.c | 6 +- .../src/communication_funcs.c | 2 +- .../src/slsDetectorServer_funcs.c | 180 +++++++++--------- slsDetectorSoftware/src/DetectorImpl.h | 4 +- slsSupportLib/include/sls/md5.h | 2 +- 13 files changed, 135 insertions(+), 126 deletions(-) diff --git a/slsDetectorGui/include/qDefs.h b/slsDetectorGui/include/qDefs.h index 491fc38e0..375d62d6c 100644 --- a/slsDetectorGui/include/qDefs.h +++ b/slsDetectorGui/include/qDefs.h @@ -61,7 +61,9 @@ class qDefs : public QWidget { } } - template struct NonDeduced { using type = CT; }; + template struct NonDeduced { + using type = CT; + }; template static void HandleExceptions(const std::string emsg, const std::string src, S *s, RT (S::*somefunc)(CT...), diff --git a/slsDetectorServers/eigerDetectorServer/9mhvserial_bf.c b/slsDetectorServers/eigerDetectorServer/9mhvserial_bf.c index d5651ec7b..f67a46dbf 100644 --- a/slsDetectorServers/eigerDetectorServer/9mhvserial_bf.c +++ b/slsDetectorServers/eigerDetectorServer/9mhvserial_bf.c @@ -17,7 +17,7 @@ #define BUFFERSIZE 16 #define I2C_DEVICE_FILE "/dev/i2c-0" #define I2C_DEVICE_ADDRESS 0x4C -//#define I2C_DEVICE_ADDRESS 0x48 +// #define I2C_DEVICE_ADDRESS 0x48 #define I2C_REGISTER_ADDRESS 0x40 int i2c_open(const char *file, unsigned int addr) { diff --git a/slsDetectorServers/eigerDetectorServer/FebRegisterDefs.h b/slsDetectorServers/eigerDetectorServer/FebRegisterDefs.h index b1246db33..785a854af 100644 --- a/slsDetectorServers/eigerDetectorServer/FebRegisterDefs.h +++ b/slsDetectorServers/eigerDetectorServer/FebRegisterDefs.h @@ -98,8 +98,8 @@ // everything at ~200 kHz (200 kHz MHz ddr readout) #define DAQ_CHIP_CONTROLLER_SUPER_SLOW_SPEED 0x000c0000 -//#define DAQ_FIFO_ENABLE 0x00100000 commented out as it -// is not used anywhere +// #define DAQ_FIFO_ENABLE 0x00100000 commented out as it +// is not used anywhere #define DAQ_REG_CHIP_CMDS_INT_TRIGGER 0x00100000 // direct chip commands to the DAQ_REG_CHIP_CMDS register @@ -131,8 +131,9 @@ #define DAQ_NEXPOSURERS_ACTIVATE_AUTO_SUBIMAGING 0x20000000 #define DAQ_NEXPOSURERS_ACTIVATE_RATE_CORRECTION 0x40000000 -//#define DAQ_MASTER_HALF_MODULE 0x80000000 currently not -// used +// #define DAQ_MASTER_HALF_MODULE 0x80000000 currently +// not +// used // chips static bits #define DAQ_STATIC_BIT_PROGRAM 0x00000001 diff --git a/slsDetectorServers/eigerDetectorServer/xfs_types.h b/slsDetectorServers/eigerDetectorServer/xfs_types.h index 1c998bdc4..68d5321f6 100644 --- a/slsDetectorServers/eigerDetectorServer/xfs_types.h +++ b/slsDetectorServers/eigerDetectorServer/xfs_types.h @@ -2,7 +2,7 @@ // Copyright (C) 2021 Contributors to the SLS Detector Package #pragma once -//#include "types.h" +// #include "types.h" #include /******************************************************************************/ /* types */ diff --git a/slsDetectorServers/eigerDetectorServer/xparameters.h b/slsDetectorServers/eigerDetectorServer/xparameters.h index 4b3bf1312..66a4a4396 100644 --- a/slsDetectorServers/eigerDetectorServer/xparameters.h +++ b/slsDetectorServers/eigerDetectorServer/xparameters.h @@ -92,7 +92,7 @@ XPAR_PLB_LL_FIFO_AURORA_DUAL_CTRL_FEB_LEFT_BASEADDR #define XPAR_PLB_LL_FIFO_AURORA_DUAL_CTRL_FEB_LEFT_HIGHADDR 0xC410FFFF /* Definitions for a new memory */ -//#define XPAR_PLB_LL_NEW_MEMORY 0xD1000000//0xD1000084//0xC4200000 +// #define XPAR_PLB_LL_NEW_MEMORY 0xD1000000//0xD1000084//0xC4200000 /* Definitions for peripheral PLB_LL_FIFO_AURORA_DUAL_CTRL_FEB_RIGHT */ #define XPAR_PLB_LL_FIFO_AURORA_DUAL_CTRL_FEB_RIGHT_BASEADDR 0xC4110000 diff --git a/slsDetectorServers/gotthardDetectorServer/RegisterDefs.h b/slsDetectorServers/gotthardDetectorServer/RegisterDefs.h index d04e80346..f1ecbf613 100644 --- a/slsDetectorServers/gotthardDetectorServer/RegisterDefs.h +++ b/slsDetectorServers/gotthardDetectorServer/RegisterDefs.h @@ -22,13 +22,13 @@ ((0x1 << GAIN_CONFGAIN_OFST) & GAIN_CONFGAIN_MSK) /** Flow Control register */ -//#define FLOW_CONTROL_REG (0x11 << MEM_MAP_SHIFT) +// #define FLOW_CONTROL_REG (0x11 << MEM_MAP_SHIFT) /** Flow Status register */ -//#define FLOW_STATUS_REG (0x12 << MEM_MAP_SHIFT) +// #define FLOW_STATUS_REG (0x12 << MEM_MAP_SHIFT) /** Frame register */ -//#define FRAME_REG (0x13 << MEM_MAP_SHIFT) +// #define FRAME_REG (0x13 << MEM_MAP_SHIFT) /** Multi Purpose register */ #define MULTI_PURPOSE_REG (0x14 << MEM_MAP_SHIFT) @@ -79,7 +79,7 @@ ((0x0007f << DAQ_PCKT_LNGTH_OFST) & DAQ_PCKT_LNGTH_MSK) /** Time From Start register */ -//#define TIME_FROM_START_REG (0x16 << MEM_MAP_SHIFT) +// #define TIME_FROM_START_REG (0x16 << MEM_MAP_SHIFT) /** DAC Control register */ #define SPI_REG (0x17 << MEM_MAP_SHIFT) @@ -139,7 +139,7 @@ ((0x1b << ADC_SYNC_ENET_DELAY_OFST) & ADC_SYNC_ENET_DELAY_MSK) /** Time From Start register */ -//#define MU_TIME_REG (0x1a << MEM_MAP_SHIFT) +// #define MU_TIME_REG (0x1a << MEM_MAP_SHIFT) /** Temperatre SPI In register */ #define TEMP_SPI_IN_REG (0x1b << MEM_MAP_SHIFT) @@ -171,7 +171,7 @@ #define ENET_CONF_REG (0x1e << MEM_MAP_SHIFT) /** Write TSE Shadow register */ -//#define WRITE_TSE_SHADOW_REG (0x1f << MEM_MAP_SHIFT) +// #define WRITE_TSE_SHADOW_REG (0x1f << MEM_MAP_SHIFT) /** High Voltage register */ #define HV_REG (0x20 << MEM_MAP_SHIFT) @@ -288,10 +288,10 @@ ((0x4 << EXT_SIGNAL_OFST) & EXT_SIGNAL_MSK) /** Look at me register */ -//#define LOOK_AT_ME_REG (0x28 << MEM_MAP_SHIFT) +// #define LOOK_AT_ME_REG (0x28 << MEM_MAP_SHIFT) /** FPGA SVN register */ -//#define FPGA_SVN_REG (0x29 << MEM_MAP_SHIFT) +// #define FPGA_SVN_REG (0x29 << MEM_MAP_SHIFT) /** Chip of Interest register */ #define CHIP_OF_INTRST_REG (0x2a << MEM_MAP_SHIFT) @@ -303,7 +303,7 @@ (0x0000FFFF << CHIP_OF_INTRST_NUM_CHNNLS_OFST) /** Out MUX register */ -//#define OUT_MUX_REG (0x2b << MEM_MAP_SHIFT) +// #define OUT_MUX_REG (0x2b << MEM_MAP_SHIFT) /** Board Version register */ #define BOARD_REVISION_REG (0x2c << MEM_MAP_SHIFT) @@ -312,29 +312,29 @@ #define BOARD_REVISION_MSK (0x0000FFFF << BOARD_REVISION_OFST) #define DETECTOR_TYPE_OFST (16) #define DETECTOR_TYPE_MSK (0x0000000F << DETECTOR_TYPE_OFST) -//#define DETECTOR_TYPE_GOTTHARD_VAL (??) +// #define DETECTOR_TYPE_GOTTHARD_VAL (??) #define DETECTOR_TYPE_MOENCH_VAL (2) /** Memory Test register */ -//#define MEMORY_TEST_REG (0x2d << MEM_MAP_SHIFT) +// #define MEMORY_TEST_REG (0x2d << MEM_MAP_SHIFT) /** Hit Threshold register */ -//#define HIT_THRESHOLD_REG (0x2e << MEM_MAP_SHIFT) +// #define HIT_THRESHOLD_REG (0x2e << MEM_MAP_SHIFT) /** Hit Count register */ -//#define HIT_COUNT_REG (0x2f << MEM_MAP_SHIFT) +// #define HIT_COUNT_REG (0x2f << MEM_MAP_SHIFT) /* 16 bit Fifo Data register */ #define FIFO_DATA_REG (0x50 << MEM_MAP_SHIFT) // Not used in FW and SW (16bit) /** Dacs Set 1 register */ -//#define DACS_SET_1_REG (0x65 << MEM_MAP_SHIFT) +// #define DACS_SET_1_REG (0x65 << MEM_MAP_SHIFT) /** Dacs Set 2 register */ -//#define DACS_SET_2_REG (0x66 << MEM_MAP_SHIFT) +// #define DACS_SET_2_REG (0x66 << MEM_MAP_SHIFT) /** Dacs Set 3 register */ -//#define DACS_SET_3_REG (0x67 << MEM_MAP_SHIFT) +// #define DACS_SET_3_REG (0x67 << MEM_MAP_SHIFT) /* Set Delay 64 bit register */ #define SET_DELAY_LSB_REG (0x68 << MEM_MAP_SHIFT) @@ -377,12 +377,12 @@ #define GET_EXPTIME_MSB_REG (0x7b << MEM_MAP_SHIFT) /* Set Gates 64 bit register */ -//#define SET_GATES_LSB_REG (0x7c << MEM_MAP_SHIFT) -//#define SET_GATES_MSB_REG (0x7d << MEM_MAP_SHIFT) +// #define SET_GATES_LSB_REG (0x7c << MEM_MAP_SHIFT) +// #define SET_GATES_MSB_REG (0x7d << MEM_MAP_SHIFT) /* Set Gates 64 bit register */ -//#define GET_GATES_LSB_REG (0x7e << MEM_MAP_SHIFT) -//#define GET_GATES_MSB_REG (0x7f << MEM_MAP_SHIFT) +// #define GET_GATES_LSB_REG (0x7e << MEM_MAP_SHIFT) +// #define GET_GATES_MSB_REG (0x7f << MEM_MAP_SHIFT) /* Dark Image starting address */ #define DARK_IMAGE_REG (0x81 << MEM_MAP_SHIFT) diff --git a/slsDetectorServers/mythen3DetectorServer/mythen3.c b/slsDetectorServers/mythen3DetectorServer/mythen3.c index 96bf73902..f4dc01871 100644 --- a/slsDetectorServers/mythen3DetectorServer/mythen3.c +++ b/slsDetectorServers/mythen3DetectorServer/mythen3.c @@ -39,8 +39,8 @@ patternParameters *setChipStatusRegisterPattern(int csr) { patword = clearBit(SIGNAL_resCounter, patword); for (int i = 0; i < 8; i++) pat->word[iaddr++] = patword; - //#This version of the serializer pushes in the MSB first (compatible with - // the CSR bit numbering) + // #This version of the serializer pushes in the MSB first (compatible with + // the CSR bit numbering) for (int ib = nbits - 1; ib >= 0; ib--) { if (csr & (1 << ib)) patword = setBit(SIGNAL_serialIN, patword); diff --git a/slsDetectorServers/mythen3DetectorServer/mythen3.h b/slsDetectorServers/mythen3DetectorServer/mythen3.h index 1ac9aad21..f7a62e346 100644 --- a/slsDetectorServers/mythen3DetectorServer/mythen3.h +++ b/slsDetectorServers/mythen3DetectorServer/mythen3.h @@ -38,11 +38,11 @@ #define CSR_invpol 4 #define CSR_dpulse 5 #define CSR_interp 6 -#define _CSR_C10pre 7 //#default, negative polarity +#define _CSR_C10pre 7 // #default, negative polarity #define CSR_pumprobe 8 #define CSR_apulse 9 #define CSR_C15sh 10 -#define CSR_C30sh 11 //#default +#define CSR_C30sh 11 // #default #define CSR_C50sh 12 #define CSR_C225ACsh \ 13 // Connects 225fF SHAPER AC cap (1: 225 to shaper, 225 to GND. 0: 450 to diff --git a/slsDetectorServers/slsDetectorServer/src/I2C.c b/slsDetectorServers/slsDetectorServer/src/I2C.c index 31efc129a..5c60311ac 100644 --- a/slsDetectorServers/slsDetectorServer/src/I2C.c +++ b/slsDetectorServers/slsDetectorServer/src/I2C.c @@ -106,9 +106,9 @@ (0x0000FFFF << I2C_SDA_HOLD_COUNT_PERIOD_OFST) /** Receive Data Fifo Level register */ -//#define I2C_RX_DATA_FIFO_LVL_OFST (0) -//#define I2C_RX_DATA_FIFO_LVL_MSK (0x000000FF << -// I2C_RX_DATA_FIFO_LVL_OFST) +// #define I2C_RX_DATA_FIFO_LVL_OFST (0) +// #define I2C_RX_DATA_FIFO_LVL_MSK (0x000000FF << +// I2C_RX_DATA_FIFO_LVL_OFST) // defines in the fpga uint32_t I2C_Control_Reg = 0x0; diff --git a/slsDetectorServers/slsDetectorServer/src/communication_funcs.c b/slsDetectorServers/slsDetectorServer/src/communication_funcs.c index bcec87fdc..b53fe078b 100644 --- a/slsDetectorServers/slsDetectorServer/src/communication_funcs.c +++ b/slsDetectorServers/slsDetectorServer/src/communication_funcs.c @@ -622,7 +622,7 @@ void getIpAddressinString(char *cip, uint32_t ip) { inet_ntop(AF_INET, &ip, cip, INET_ADDRSTRLEN); #else sprintf(cip, "%d.%d.%d.%d", (ip >> 24) & 0xff, (ip >> 16) & 0xff, - (ip >> 8) & 0xff, (ip)&0xff); + (ip >> 8) & 0xff, (ip) & 0xff); #endif } diff --git a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c index 5255a22fd..0984eb968 100644 --- a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c +++ b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c @@ -2013,102 +2013,106 @@ int acquire(int blocking, int file_des) { #if defined(JUNGFRAUD) // chipv1.1 has to be configured before acquisition if (getChipVersion() == 11 && !isChipConfigured()) { - ret = FAIL; - strcpy(mess, "Could not start acquisition. Chip is not configured. " - "Power it on to configure it.\n"); - LOG(logERROR, (mess)); - } else + ret = FAIL; + strcpy(mess, + "Could not start acquisition. Chip is not configured. " + "Power it on to configure it.\n"); + LOG(logERROR, (mess)); + } else #endif #if defined(CHIPTESTBOARDD) || defined(XILINX_CHIPTESTBOARDD) - if ((getReadoutMode() == ANALOG_AND_DIGITAL || - getReadoutMode() == ANALOG_ONLY) && - (getNumAnalogSamples() <= 0)) { - ret = FAIL; - sprintf(mess, - "Could not start acquisition. Invalid number of analog " - "samples: %d.\n", - getNumAnalogSamples()); - LOG(logERROR, (mess)); - } else if ((getReadoutMode() == ANALOG_AND_DIGITAL || - getReadoutMode() == DIGITAL_ONLY || - getReadoutMode() == DIGITAL_AND_TRANSCEIVER) && - (getNumDigitalSamples() <= 0)) { - ret = FAIL; - sprintf(mess, + if ((getReadoutMode() == ANALOG_AND_DIGITAL || + getReadoutMode() == ANALOG_ONLY) && + (getNumAnalogSamples() <= 0)) { + ret = FAIL; + sprintf(mess, + "Could not start acquisition. Invalid number of analog " + "samples: %d.\n", + getNumAnalogSamples()); + LOG(logERROR, (mess)); + } else if ((getReadoutMode() == ANALOG_AND_DIGITAL || + getReadoutMode() == DIGITAL_ONLY || + getReadoutMode() == DIGITAL_AND_TRANSCEIVER) && + (getNumDigitalSamples() <= 0)) { + ret = FAIL; + sprintf( + mess, "Could not start acquisition. Invalid number of digital " "samples: %d.\n", getNumDigitalSamples()); - LOG(logERROR, (mess)); - } else if ((getReadoutMode() == TRANSCEIVER_ONLY || - getReadoutMode() == DIGITAL_AND_TRANSCEIVER) && - (getNumTransceiverSamples() <= 0)) { - ret = FAIL; - sprintf(mess, - "Could not start acquisition. Invalid number of " - "transceiver " - "samples: %d.\n", - getNumTransceiverSamples()); - LOG(logERROR, (mess)); - } else + LOG(logERROR, (mess)); + } else if ((getReadoutMode() == TRANSCEIVER_ONLY || + getReadoutMode() == DIGITAL_AND_TRANSCEIVER) && + (getNumTransceiverSamples() <= 0)) { + ret = FAIL; + sprintf(mess, + "Could not start acquisition. Invalid number of " + "transceiver " + "samples: %d.\n", + getNumTransceiverSamples()); + LOG(logERROR, (mess)); + } else #endif #ifdef EIGERD - // check for hardware mac and hardware ip - if (udpDetails[0].srcmac != getDetectorMAC()) { - ret = FAIL; - uint64_t sourcemac = getDetectorMAC(); - char src_mac[MAC_ADDRESS_SIZE]; - getMacAddressinString(src_mac, MAC_ADDRESS_SIZE, sourcemac); - sprintf(mess, - "Invalid udp source mac address for this detector. " - "Must be " - "same as hardware detector mac address %s\n", - src_mac); - LOG(logERROR, (mess)); - } else if (!enableTenGigabitEthernet(GET_FLAG) && - (udpDetails[0].srcip != getDetectorIP())) { - ret = FAIL; - uint32_t sourceip = getDetectorIP(); - char src_ip[INET_ADDRSTRLEN]; - getIpAddressinString(src_ip, sourceip); - sprintf(mess, - "Invalid udp source ip address for this detector. Must " - "be " - "same as hardware detector ip address %s in 1G readout " - "mode \n", - src_ip); - LOG(logERROR, (mess)); - } else -#endif - if (configured == FAIL) { - ret = FAIL; - strcpy(mess, "Could not start acquisition because "); - strcat(mess, configureMessage); - LOG(logERROR, (mess)); - } else if (sharedMemory_getScanStatus() == RUNNING) { - ret = FAIL; - strcpy(mess, "Could not start acquisition because a scan is " - "already running!\n"); - LOG(logERROR, (mess)); - } else { - memset(scanErrMessage, 0, MAX_STR_LENGTH); - sharedMemory_setScanStop(0); - sharedMemory_setScanStatus(IDLE); // if it was error - if (pthread_create(&pthread_tid, NULL, &start_state_machine, - &blocking)) { - ret = FAIL; - strcpy(mess, "Could not start acquisition thread!\n"); - LOG(logERROR, (mess)); - } else { - // wait for blocking always (scan or not) - // non blocking-no scan also wait (for error message) - // non blcoking-scan dont wait (there is - // scanErrorMessage) - if (blocking || !scan) { - pthread_join(pthread_tid, NULL); + // check for hardware mac and hardware ip + if (udpDetails[0].srcmac != getDetectorMAC()) { + ret = FAIL; + uint64_t sourcemac = getDetectorMAC(); + char src_mac[MAC_ADDRESS_SIZE]; + getMacAddressinString(src_mac, MAC_ADDRESS_SIZE, sourcemac); + sprintf(mess, + "Invalid udp source mac address for this detector. " + "Must be " + "same as hardware detector mac address %s\n", + src_mac); + LOG(logERROR, (mess)); + } else if (!enableTenGigabitEthernet(GET_FLAG) && + (udpDetails[0].srcip != getDetectorIP())) { + ret = FAIL; + uint32_t sourceip = getDetectorIP(); + char src_ip[INET_ADDRSTRLEN]; + getIpAddressinString(src_ip, sourceip); + sprintf( + mess, + "Invalid udp source ip address for this detector. Must " + "be " + "same as hardware detector ip address %s in 1G readout " + "mode \n", + src_ip); + LOG(logERROR, (mess)); } else - pthread_detach(pthread_tid); - } - } +#endif + if (configured == FAIL) { + ret = FAIL; + strcpy(mess, "Could not start acquisition because "); + strcat(mess, configureMessage); + LOG(logERROR, (mess)); + } else if (sharedMemory_getScanStatus() == RUNNING) { + ret = FAIL; + strcpy(mess, + "Could not start acquisition because a scan is " + "already running!\n"); + LOG(logERROR, (mess)); + } else { + memset(scanErrMessage, 0, MAX_STR_LENGTH); + sharedMemory_setScanStop(0); + sharedMemory_setScanStatus(IDLE); // if it was error + if (pthread_create(&pthread_tid, NULL, &start_state_machine, + &blocking)) { + ret = FAIL; + strcpy(mess, "Could not start acquisition thread!\n"); + LOG(logERROR, (mess)); + } else { + // wait for blocking always (scan or not) + // non blocking-no scan also wait (for error message) + // non blcoking-scan dont wait (there is + // scanErrorMessage) + if (blocking || !scan) { + pthread_join(pthread_tid, NULL); + } else + pthread_detach(pthread_tid); + } + } } return Server_SendResult(file_des, INT32, NULL, 0); } diff --git a/slsDetectorSoftware/src/DetectorImpl.h b/slsDetectorSoftware/src/DetectorImpl.h index 424330043..da56e5a22 100644 --- a/slsDetectorSoftware/src/DetectorImpl.h +++ b/slsDetectorSoftware/src/DetectorImpl.h @@ -79,7 +79,9 @@ class DetectorImpl : public virtual slsDetectorDefs { explicit DetectorImpl(int detector_index = 0, bool verify = true, bool update = true); - template struct NonDeduced { using type = CT; }; + template struct NonDeduced { + using type = CT; + }; template Result Parallel(RT (Module::*somefunc)(CT...), std::vector positions, diff --git a/slsSupportLib/include/sls/md5.h b/slsSupportLib/include/sls/md5.h index a4f0c8364..94d0b90c8 100644 --- a/slsSupportLib/include/sls/md5.h +++ b/slsSupportLib/include/sls/md5.h @@ -130,7 +130,7 @@ extern "C" { ll = (c)->D; \ (void)HOST_l2c(ll, (s)); \ } while (0) -#define ROTATE(a, n) (((a) << (n)) | (((a)&0xffffffff) >> (32 - (n)))) +#define ROTATE(a, n) (((a) << (n)) | (((a) & 0xffffffff) >> (32 - (n)))) #if defined(DATA_ORDER_IS_BIG_ENDIAN) #define HOST_c2l(c, l) \ From 315d49f8df337131a3d253bada6accfea64c0fd5 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Fri, 31 Jan 2025 16:48:32 +0100 Subject: [PATCH 10/11] ctb: patwaittime and exptime (#1076) * cli: patwaittime also takes time argument, api: patwaitclocks and patwaitinterval, tcp: patwaitinterval is 2 functions for set and get, patwaitclocks remains a single for backward compatibility with -1 for get, server (loadpattern): clks using member names (needs to be refactored). needs tobe discussed what to do with pattern files. * all tests passed * fixed test * exptime deprecated for ctb and xilinx * pyctbgui..not there yet * fixed in pyctbgui * removed redundant warning for ctb and xilinx exptime in Detector class (already in module class handling all exptime signatures), patwait, patloop and patnloop have to be non inferrable commands because of support for old commands (level as suffix) * fix formatting error from command line parsing * fix tests for patwaittime --- pyctbgui/pyctbgui/services/Pattern.py | 75 +- pyctbgui/pyctbgui/ui/pattern.ui | 1163 ++++++++++++----- python/slsdet/detector.py | 106 +- python/slsdet/proxy.py | 7 +- python/src/detector.cpp | 17 +- .../bin/ctbDetectorServer_developer | Bin 330376 -> 330992 bytes .../slsDetectorFunctionList.c | 13 +- .../bin/mythen3DetectorServer_developer | Bin 305652 -> 305884 bytes .../slsDetectorServer/include/loadPattern.h | 13 +- .../include/slsDetectorServer_funcs.h | 4 +- .../slsDetectorServer/src/loadPattern.c | 87 +- .../src/slsDetectorServer_funcs.c | 75 +- .../bin/xilinx_ctbDetectorServer_developer | Bin 304496 -> 304856 bytes .../slsDetectorFunctionList.c | 11 +- slsDetectorSoftware/generator/Caller.in.h | 5 +- slsDetectorSoftware/generator/commands.yaml | 185 ++- .../generator/cpp_codegen/codegen.py | 8 +- .../generator/extended_commands.yaml | 554 ++++---- slsDetectorSoftware/generator/gen_commands.py | 5 + slsDetectorSoftware/include/sls/Detector.h | 9 +- slsDetectorSoftware/src/Caller.cpp | 679 +++++----- slsDetectorSoftware/src/Caller.h | 14 +- slsDetectorSoftware/src/CallerSpecial.cpp | 99 +- slsDetectorSoftware/src/Detector.cpp | 17 +- slsDetectorSoftware/src/Module.cpp | 28 +- slsDetectorSoftware/src/Module.h | 6 +- slsDetectorSoftware/src/inferAction.cpp | 90 +- slsDetectorSoftware/src/inferAction.h | 9 +- .../tests/Caller/test-Caller-pattern.cpp | 20 +- .../include/sls/sls_detector_funcs.h | 8 +- slsSupportLib/include/sls/versionAPI.h | 6 +- 31 files changed, 1961 insertions(+), 1352 deletions(-) diff --git a/pyctbgui/pyctbgui/services/Pattern.py b/pyctbgui/pyctbgui/services/Pattern.py index e7e274ff9..98a8a8b81 100644 --- a/pyctbgui/pyctbgui/services/Pattern.py +++ b/pyctbgui/pyctbgui/services/Pattern.py @@ -10,6 +10,7 @@ from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as Navigatio from pyctbgui.utils.defines import Defines from pyctbgui.utils.plotPattern import PlotPattern +from slsdet import DurationWrapper class PatternTab(QtWidgets.QWidget): @@ -61,7 +62,10 @@ class PatternTab(QtWidgets.QWidget): getattr(self.view, f"lineEditLoop{i}Wait").editingFinished.connect(partial(self.setPatLoopWaitAddress, i)) getattr(self.view, f"spinBoxLoop{i}Repetition").editingFinished.connect(partial(self.setPatLoopRepetition, i)) - getattr(self.view, f"spinBoxLoop{i}WaitTime").editingFinished.connect(partial(self.setPatLoopWaitTime, i)) + getattr(self.view, f"doubleSpinBoxLoop{i}WaitClocks").editingFinished.connect(partial(self.setPatLoopWaitClocks, i)) + getattr(self.view, f"spinBoxLoop{i}WaitInterval").editingFinished.connect(partial(self.setPatLoopWaitInterval, i)) + getattr(self.view, f"comboBoxLoop{i}WaitInterval").currentIndexChanged.connect(partial(self.setPatLoopWaitInterval, i)) + self.view.toolButtonTogglePageWaitTime.clicked.connect(self.setTogglePageWaitTime) self.view.pushButtonCompiler.clicked.connect(self.setCompiler) self.view.pushButtonUncompiled.clicked.connect(self.setUncompiledPatternFile) self.view.pushButtonPatternFile.clicked.connect(self.setPatternFile) @@ -91,7 +95,8 @@ class PatternTab(QtWidgets.QWidget): self.getPatLoopStartStopAddress(i) self.getPatLoopWaitAddress(i) self.getPatLoopRepetition(i) - self.getPatLoopWaitTime(i) + self.getPatLoopWaitClocks(i) + self.getPatLoopWaitInterval(i) # Pattern Tab functions @@ -182,17 +187,67 @@ class PatternTab(QtWidgets.QWidget): self.det.patnloop[level] = spinBox.value() self.getPatLoopRepetition(level) - def getPatLoopWaitTime(self, level): + def getPatLoopWaitClocks(self, level): retval = self.det.patwaittime[level] - spinBox = getattr(self.view, f"spinBoxLoop{level}WaitTime") + spinBox = getattr(self.view, f"doubleSpinBoxLoop{level}WaitClocks") spinBox.editingFinished.disconnect() spinBox.setValue(retval) - spinBox.editingFinished.connect(partial(self.setPatLoopWaitTime, level)) + spinBox.editingFinished.connect(partial(self.setPatLoopWaitClocks, level)) + + def setPatLoopWaitClocks(self, level): + spinBox = getattr(self.view, f"doubleSpinBoxLoop{level}WaitClocks") + self.det.patwaittime[level] = int(spinBox.value()) + self.getPatLoopWaitClocks(level) + + def getPatLoopWaitInterval(self, level): + retval = self.det.getPatternWaitInterval(level)[0].count() + spinBox = getattr(self.view, f"spinBoxLoop{level}WaitInterval") + comboBox = getattr(self.view, f"comboBoxLoop{level}WaitInterval") + spinBox.editingFinished.disconnect() + comboBox.currentIndexChanged.disconnect() + # Converting to right time unit for period + if retval >= 1e9: + comboBox.setCurrentIndex(0) + spinBox.setValue(retval / 1e9) + elif retval >= 1e6: + comboBox.setCurrentIndex(1) + spinBox.setValue(retval / 1e6) + elif retval >= 1e3: + comboBox.setCurrentIndex(2) + spinBox.setValue(retval / 1e3) + else: + comboBox.setCurrentIndex(3) + spinBox.setValue(retval) + spinBox.editingFinished.connect(partial(self.setPatLoopWaitInterval, level)) + comboBox.currentIndexChanged.connect(partial(self.setPatLoopWaitInterval, level)) + + def setPatLoopWaitInterval(self, level): + spinBox = getattr(self.view, f"spinBoxLoop{level}WaitInterval") + comboBox = getattr(self.view, f"comboBoxLoop{level}WaitInterval") + value = spinBox.value() + if comboBox.currentIndex() == 0: + value *= 1e9 + elif comboBox.currentIndex() == 1: + value *= 1e6 + elif comboBox.currentIndex() == 2: + value *= 1e3 + t = DurationWrapper() + t.set_count(int(value)) + self.det.patwaittime[level] = t + self.getPatLoopWaitInterval(level) + + def setTogglePageWaitTime(self): + if self.view.stackedWidgetWaitTime.currentIndex() == 0: + self.view.stackedWidgetWaitTime.setCurrentIndex(1) + self.view.labelWaitTime.setText("Time") + for i in range(Defines.pattern.loops_count): + self.getPatLoopWaitInterval(i) + else: + self.view.stackedWidgetWaitTime.setCurrentIndex(0) + self.view.labelWaitTime.setText("Clocks") + for i in range(Defines.pattern.loops_count): + self.getPatLoopWaitClocks(i) - def setPatLoopWaitTime(self, level): - spinBox = getattr(self.view, f"spinBoxLoop{level}WaitTime") - self.det.patwaittime[level] = spinBox.value() - self.getPatLoopWaitTime(level) def setCompiler(self): response = QtWidgets.QFileDialog.getOpenFileName( @@ -450,7 +505,7 @@ class PatternTab(QtWidgets.QWidget): f"{getattr(self.view, f'lineEditLoop{i}Stop').text()}") commands.append(f"patwait {i} {getattr(self.view, f'lineEditLoop{i}Wait').text()}") - commands.append(f"patwaittime {i} {getattr(self.view, f'spinBoxLoop{i}WaitTime').text()}") + commands.append(f"patwaittime {i} {getattr(self.view, f'doubleSpinBoxLoop{i}WaitClocks').text()}") commands.append(f"patlimits {self.view.lineEditStartAddress.text()}, {self.view.lineEditStopAddress.text()}") # commands.append(f"patfname {self.view.lineEditPatternFile.text()}") return commands diff --git a/pyctbgui/pyctbgui/ui/pattern.ui b/pyctbgui/pyctbgui/ui/pattern.ui index 0c642a83a..400a243ab 100644 --- a/pyctbgui/pyctbgui/ui/pattern.ui +++ b/pyctbgui/pyctbgui/ui/pattern.ui @@ -22,9 +22,9 @@ - 0 + 10 10 - 471 + 431 311 @@ -1243,10 +1243,10 @@ - 490 + 450 10 - 361 - 271 + 401 + 311 @@ -1256,268 +1256,33 @@ QFrame::Sunken - - - - - 125 - 31 - - - - - 125 - 31 - - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - 999999999 - - - - - - - - 125 - 31 - - - - - 125 - 31 - - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - 999999999 - - - - - - - - 0 - 0 - - - - - 50 - 16777215 - + + + + Qt::LeftToRight - Wait 0 - - - - - - - - 0 - 0 - - - - - 50 - 16777215 - - - - Wait 5 - - - - - - - - 125 - 31 - - - - - 125 - 31 - + Clocks Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - 999999999 - - - - + + + + Qt::Horizontal + + - 80 - 31 + 40 + 20 - - - 80 - 31 - - - - - - - - - 36 - 31 - 49 - - - - - - - - - 36 - 31 - 49 - - - - - - - - - 146 - 149 - 149 - - - - - - - - - Monospace - - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - false - - + - - - - - 80 - 31 - - - - - 80 - 31 - - - - - - - - - 36 - 31 - 49 - - - - - - - - - 36 - 31 - 49 - - - - - - - - - 146 - 149 - 149 - - - - - - - - - Monospace - - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - false - - - - - - - - 0 - 0 - - - - - 50 - 16777215 - - - - Wait 3 - - - - - - - Time - - - Qt::AlignCenter - - - - + @@ -1582,47 +1347,83 @@ - + - 125 + 80 31 - 125 + 80 31 + + + + + + + 36 + 31 + 49 + + + + + + + + + 36 + 31 + 49 + + + + + + + + + 146 + 149 + 149 + + + + + + + + + Monospace + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - 999999999 + + false - - - + + + + Qt::Vertical + + - 0 - 0 + 20 + 40 - - - 50 - 16777215 - - - - Wait 4 - - + - + @@ -1689,11 +1490,613 @@ - + + + + Address + + + Qt::AlignCenter + + + + + + + + 50 + 0 + + + + + 50 + 16777215 + + + + Wait 5 + + + + + + + + 200 + 16777215 + + + + 0 + + + + + 0 + + + 0 + + + 6 + + + + + + 150 + 34 + + + + + 150 + 34 + + + + Qt::ImhDigitsOnly + + + 0 + + + 9999999999.000000000000000 + + + + + + + + 150 + 34 + + + + + 150 + 34 + + + + Qt::ImhDigitsOnly + + + 0 + + + 9999999999.000000000000000 + + + + + + + + 150 + 34 + + + + + 150 + 34 + + + + Qt::ImhDigitsOnly + + + 0 + + + 9999999999.000000000000000 + + + + + + + + 150 + 34 + + + + + 150 + 34 + + + + Qt::ImhDigitsOnly + + + 0 + + + 9999999999.000000000000000 + + + + + + + + 150 + 34 + + + + + 150 + 34 + + + + Qt::ImhDigitsOnly + + + 0 + + + 9999999999.000000000000000 + + + + + + + + 150 + 34 + + + + + 150 + 34 + + + + Qt::ImhDigitsOnly + + + 0 + + + 9999999999.000000000000000 + + + + + + + + + 0 + + + 0 + + + + + + 0 + 0 + + + + + 120 + 34 + + + + + 150 + 34 + + + + 4 + + + 99999.990000000005239 + + + + + + + + 0 + 0 + + + + + 120 + 34 + + + + + 150 + 34 + + + + 4 + + + 99999.990000000005239 + + + + + + + + 0 + 0 + + + + + 120 + 34 + + + + + 150 + 34 + + + + 4 + + + 99999.990000000005239 + + + + + + + + 45 + 31 + + + + + 40 + 16777215 + + + + + s + + + + + ms + + + + + μs + + + + + ns + + + + + + + + + 0 + 0 + + + + + 120 + 34 + + + + + 150 + 34 + + + + 4 + + + 99999.990000000005239 + + + + + + + + 0 + 0 + + + + + 120 + 34 + + + + + 150 + 34 + + + + 4 + + + 99999.990000000005239 + + + + + + + + 45 + 31 + + + + + 40 + 16777215 + + + + + s + + + + + ms + + + + + μs + + + + + ns + + + + + + + + + 45 + 31 + + + + + 40 + 16777215 + + + + + s + + + + + ms + + + + + μs + + + + + ns + + + + + + + + + 45 + 31 + + + + + 40 + 16777215 + + + + + s + + + + + ms + + + + + μs + + + + + ns + + + + + + + + + 45 + 31 + + + + + 40 + 16777215 + + + + 0 + + + + s + + + + + ms + + + + + μs + + + + + ns + + + + + + + + + 0 + 0 + + + + + 120 + 34 + + + + + 150 + 34 + + + + 4 + + + 99999.990000000005239 + + + + + + + + 45 + 31 + + + + + 40 + 16777215 + + + + + s + + + + + ms + + + + + μs + + + + + ns + + + + + + + + + - 0 + 50 0 @@ -1708,7 +2111,7 @@ - + @@ -1775,40 +2178,112 @@ - - - - Address - - - Qt::AlignCenter - - - - - + + - 125 - 31 + 16 + 16 - 125 - 31 + 16 + 16 - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + Choose to set pattern wait time in clocks or time - - 999999999 + + + + + + 16 + 16 + + + + QToolButton::InstantPopup + + + Qt::RightArrow + + + + + + + + 50 + 0 + + + + + 50 + 16777215 + + + + Wait 0 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 50 + 0 + + + + + 50 + 16777215 + + + + Wait 2 - + + + + 50 + 0 + + + + + 50 + 16777215 + + + + Wait 3 + + + + + 80 @@ -1871,33 +2346,75 @@ - - + + - 125 + 80 31 - 125 + 80 31 + + + + + + + 36 + 31 + 49 + + + + + + + + + 36 + 31 + 49 + + + + + + + + + 146 + 149 + 149 + + + + + + + + + Monospace + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - 999999999 + + false - - + + - 0 + 50 0 @@ -1908,10 +2425,36 @@ - Wait 2 + Wait 4 + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + diff --git a/python/slsdet/detector.py b/python/slsdet/detector.py index ce8a60999..6b0b86f68 100755 --- a/python/slsdet/detector.py +++ b/python/slsdet/detector.py @@ -3702,7 +3702,13 @@ class Detector(CppDetectorApi): @property def patwaittime(self): """ - [Ctb][Mythen3][Xilinx Ctb] Wait time in clock cycles of loop level provided. + [Ctb][Mythen3][Xilinx Ctb] Wait time in clock cycles of loop level provided. + + Info + ---- + + :getter: Always return in clock cycles. To get in DurationWrapper, use getPatternWaitInterval + :setter: Accepts either a value in clock cycles or a time unit (timedelta, DurationWrapper) Example ------- @@ -3713,41 +3719,85 @@ class Detector(CppDetectorApi): 0: 5 1: 20 2: 30 + >>> # using timedelta (up to microseconds precision) + >>> from datetime import timedelta + >>> d.patwaittime[0] = timedelta(seconds=1, microseconds=3) + >>> + >>> # using DurationWrapper to set in seconds + >>> from slsdet import DurationWrapper + >>> d.patwaittime[0] = DurationWrapper(1.2) + >>> + >>> # using DurationWrapper to set in ns + >>> t = DurationWrapper() + >>> t.set_count(500) + >>> d.patwaittime = t + >>> + >>> # to get in clock cycles + >>> d.patwaittime + 1000 + >>> + >>> d.getPatternWaitInterval(0) + sls::DurationWrapper(total_seconds: 1.23 count: 1230000000) """ return PatWaitTimeProxy(self) - @property - @element - def patwaittime0(self): - """[Ctb][Mythen3][Xilinx Ctb] Wait 0 time in clock cycles.""" - return self.getPatternWaitTime(0) - @patwaittime0.setter - def patwaittime0(self, nclk): - nclk = ut.merge_args(0, nclk) - ut.set_using_dict(self.setPatternWaitTime, *nclk) + def create_patwaittime_property(level): + docstring_template =""" + Deprecated command. Use patwaittime instead. + [Ctb][Mythen3][Xilinx Ctb] Wait time in clock cycles of loop level {level} provided. - @property - @element - def patwaittime1(self): - """[Ctb][Mythen3][Xilinx Ctb] Wait 1 time in clock cycles.""" - return self.getPatternWaitTime(1) + Info + ---- - @patwaittime1.setter - def patwaittime1(self, nclk): - nclk = ut.merge_args(1, nclk) - ut.set_using_dict(self.setPatternWaitTime, *nclk) + :getter: Always return in clock cycles. To get in DurationWrapper, use getPatternWaitInterval + :setter: Accepts either a value in clock cycles or a time unit (timedelta, DurationWrapper) + + Example + ------- + >>> d.patwaittime{level} = 5 + >>> d.patwaittime{level} + 5 + >>> # using timedelta (up to microseconds precision) + >>> from datetime import timedelta + >>> d.patwaittime{level} = timedelta(seconds=1, microseconds=3) + >>> + >>> # using DurationWrapper to set in seconds + >>> from slsdet import DurationWrapper + >>> d.patwaittime{level} = DurationWrapper(1.2) + >>> + >>> # using DurationWrapper to set in ns + >>> t = DurationWrapper() + >>> t.set_count(500) + >>> d.patwaittime{level} = t + >>> + >>> # to get in clock cycles + >>> d.patwaittime{level} + 1000 + >>> + >>> d.getPatternWaitInterval(level) + sls::DurationWrapper(total_seconds: 1.23 count: 1230000000) + """ + @property + @element + def patwaittime(self): + return self.getPatternWaitClocks(level) - @property - @element - def patwaittime2(self): - """[Ctb][Mythen3][Xilinx Ctb] Wait 2 time in clock cycles.""" - return self.getPatternWaitTime(2) + @patwaittime.setter + def patwaittime(self, value): + if isinstance(value, (int, float)) and not isinstance(value, bool): + nclk = ut.merge_args(level, value) + ut.set_using_dict(self.setPatternWaitClocks, level, *nclk) + else: + ut.set_time_using_dict(self.setPatternWaitInterval, level, value) + + patwaittime.__doc__ = docstring_template.format(level=level) - @patwaittime2.setter - def patwaittime2(self, nclk): - nclk = ut.merge_args(2, nclk) - ut.set_using_dict(self.setPatternWaitTime, *nclk) + return patwaittime + + patwaittime0 = create_patwaittime_property(0) + patwaittime1 = create_patwaittime_property(1) + patwaittime2 = create_patwaittime_property(2) @property diff --git a/python/slsdet/proxy.py b/python/slsdet/proxy.py index cd10cb38a..f3e7ad71b 100644 --- a/python/slsdet/proxy.py +++ b/python/slsdet/proxy.py @@ -275,10 +275,13 @@ class PatWaitTimeProxy: self.det = det def __getitem__(self, key): - return element_if_equal(self.det.getPatternWaitTime(key)) + return element_if_equal(self.det.getPatternWaitClocks(key)) def __setitem__(self, key, value): - set_proxy_using_dict(self.det.setPatternWaitTime, key, value) + if isinstance(value, (int, float)) and not isinstance(value, bool): + set_proxy_using_dict(self.det.setPatternWaitClocks, key, value) + else: + set_proxy_using_dict(self.det.setPatternWaitInterval, key, value) def __repr__(self): max_levels = MAX_PATTERN_LEVELS diff --git a/python/src/detector.cpp b/python/src/detector.cpp index 5ca05412b..4106e8065 100644 --- a/python/src/detector.cpp +++ b/python/src/detector.cpp @@ -1861,13 +1861,22 @@ void init_det(py::module &m) { Detector::setPatternWaitAddr, py::arg(), py::arg(), py::arg() = Positions{}); CppDetectorApi.def( - "getPatternWaitTime", + "getPatternWaitClocks", (Result(Detector::*)(int, sls::Positions) const) & - Detector::getPatternWaitTime, + Detector::getPatternWaitClocks, py::arg(), py::arg() = Positions{}); - CppDetectorApi.def("setPatternWaitTime", + CppDetectorApi.def("setPatternWaitClocks", (void (Detector::*)(int, uint64_t, sls::Positions)) & - Detector::setPatternWaitTime, + Detector::setPatternWaitClocks, + py::arg(), py::arg(), py::arg() = Positions{}); + CppDetectorApi.def( + "getPatternWaitInterval", + (Result(Detector::*)(int, sls::Positions) const) & + Detector::getPatternWaitInterval, + py::arg(), py::arg() = Positions{}); + CppDetectorApi.def("setPatternWaitInterval", + (void (Detector::*)(int, sls::ns, sls::Positions)) & + Detector::setPatternWaitInterval, py::arg(), py::arg(), py::arg() = Positions{}); CppDetectorApi.def("getPatternMask", (Result(Detector::*)(sls::Positions)) & diff --git a/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer b/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer index a52f0b609b89e41b0e0d99a2d56bc352909a165b..87ac5ef1fe476727854ae6ef471add6cbb796703 100755 GIT binary patch literal 330992 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 z℘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 literal 330376 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 Ohze36et}~Jwf`T_py3Pv diff --git a/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.c index 4cd42436e..bf9773e71 100644 --- a/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.c @@ -1095,26 +1095,17 @@ int setNumTransceiverSamples(int val) { int getNumTransceiverSamples() { return ntSamples; } int setExpTime(int64_t val) { - if (val < 0) { - LOG(logERROR, ("Invalid exptime: %lld ns\n", (long long int)val)); - return FAIL; - } - LOG(logINFO, ("Setting exptime %lld ns\n", (long long int)val)); - val *= (1E-3 * clkFrequency[RUN_CLK]); - setPatternWaitTime(0, val); + setPatternWaitInterval(0, val); // validate for tolerance int64_t retval = getExpTime(); - val /= (1E-3 * clkFrequency[RUN_CLK]); if (val != retval) { return FAIL; } return OK; } -int64_t getExpTime() { - return getPatternWaitTime(0) / (1E-3 * clkFrequency[RUN_CLK]); -} +int64_t getExpTime() { return getPatternWaitInterval(0); } int setPeriod(int64_t val) { if (val < 0) { diff --git a/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer b/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer index 91195ea74ca518ade9a9a467d27961e7641fc175..0661d3a32f4613c3b422721991f054420629868e 100755 GIT binary patch delta 73462 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 Ui39f57p?B*o@eb(UbJHW5APnf1ONa4 delta 72057 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 A)Bpeg diff --git a/slsDetectorServers/slsDetectorServer/include/loadPattern.h b/slsDetectorServers/slsDetectorServer/include/loadPattern.h index 7cc9b5a88..0da960038 100644 --- a/slsDetectorServers/slsDetectorServer/include/loadPattern.h +++ b/slsDetectorServers/slsDetectorServer/include/loadPattern.h @@ -27,10 +27,15 @@ int getPatternWaitAddress(int level); int validate_setPatternWaitAddresses(char *message, int level, int addr); void setPatternWaitAddress(int level, int addr); -int validate_getPatternWaitTime(char *message, int level, uint64_t *waittime); -uint64_t getPatternWaitTime(int level); -int validate_setPatternWaitTime(char *message, int level, uint64_t waittime); -void setPatternWaitTime(int level, uint64_t t); +int validate_getPatternWaitClocksAndInterval(char *message, int level, + uint64_t *waittime, int clocks); +uint64_t getPatternWaitClocks(int level); +uint64_t getPatternWaitInterval(int level); + +int validate_setPatternWaitClocksAndInterval(char *message, int level, + uint64_t waittime, int clocks); +void setPatternWaitClocks(int level, uint64_t t); +void setPatternWaitInterval(int level, uint64_t t); int validate_getPatternLoopCycles(char *message, int level, int *numLoops); int getPatternLoopCycles(int level); diff --git a/slsDetectorServers/slsDetectorServer/include/slsDetectorServer_funcs.h b/slsDetectorServers/slsDetectorServer/include/slsDetectorServer_funcs.h index 33f37becc..2c7e60ce9 100644 --- a/slsDetectorServers/slsDetectorServer/include/slsDetectorServer_funcs.h +++ b/slsDetectorServers/slsDetectorServer/include/slsDetectorServer_funcs.h @@ -104,7 +104,7 @@ int set_pattern_word(int); int set_pattern_loop_addresses(int); int set_pattern_loop_cycles(int); int set_pattern_wait_addr(int); -int set_pattern_wait_time(int); +int set_pattern_wait_clocks(int); int set_pattern_mask(int); int get_pattern_mask(int); int set_pattern_bit_mask(int); @@ -336,3 +336,5 @@ int get_timing_info_decoder(int); int set_timing_info_decoder(int); int get_collection_mode(int); int set_collection_mode(int); +int get_pattern_wait_interval(int); +int set_pattern_wait_interval(int); diff --git a/slsDetectorServers/slsDetectorServer/src/loadPattern.c b/slsDetectorServers/slsDetectorServer/src/loadPattern.c index 02399321e..6065d0076 100644 --- a/slsDetectorServers/slsDetectorServer/src/loadPattern.c +++ b/slsDetectorServers/slsDetectorServer/src/loadPattern.c @@ -11,6 +11,10 @@ #ifdef MYTHEN3D extern enum TLogLevel trimmingPrint; +extern uint32_t clkDivider[]; +#endif +#ifdef CHIPTESTBOARDD +extern uint32_t clkFrequency[]; #endif #if defined(CHIPTESTBOARDD) || defined(XILINX_CHIPTESTBOARDD) @@ -317,7 +321,8 @@ void setPatternWaitAddress(int level, int addr) { } } -int validate_getPatternWaitTime(char *message, int level, uint64_t *waittime) { +int validate_getPatternWaitClocksAndInterval(char *message, int level, + uint64_t *waittime, int clocks) { // validate input if (level < 0 || level >= MAX_LEVELS) { sprintf(message, @@ -326,11 +331,15 @@ int validate_getPatternWaitTime(char *message, int level, uint64_t *waittime) { LOG(logERROR, (message)); return FAIL; } - *waittime = getPatternWaitTime(level); + if (clocks) { + *waittime = getPatternWaitClocks(level); + } else { + *waittime = getPatternWaitInterval(level); + } return OK; } -uint64_t getPatternWaitTime(int level) { +uint64_t getPatternWaitClocks(int level) { switch (level) { case 0: return getU64BitReg(PATTERN_WAIT_TIMER_0_LSB_REG, @@ -357,7 +366,25 @@ uint64_t getPatternWaitTime(int level) { } } -int validate_setPatternWaitTime(char *message, int level, uint64_t waittime) { +uint64_t getPatternWaitInterval(int level) { + uint64_t numClocks = getPatternWaitClocks(level); + int runclk = 0; +#ifdef CHIPTESTBOARDD + runclk = clkFrequency[RUN_CLK]; +#elif XILINX_CHIPTESTBOARDD + runclk = RUN_CLK; +#elif MYTHEN3D + runclk = clkDivider[SYSTEM_C0]; +#endif + if (runclk == 0) { + LOG(logERROR, ("runclk is 0. Cannot divide by 0. Returning -1.\n")); + return -1; + } + return numClocks / (1E-3 * runclk); +} + +int validate_setPatternWaitClocksAndInterval(char *message, int level, + uint64_t waittime, int clocks) { // validate input if (level < 0 || level >= MAX_LEVELS) { sprintf(message, @@ -367,12 +394,21 @@ int validate_setPatternWaitTime(char *message, int level, uint64_t waittime) { return FAIL; } - setPatternWaitTime(level, waittime); + uint64_t retval = 0; + if (clocks) { + setPatternWaitClocks(level, waittime); + // validate result + retval = getPatternWaitClocks(level); + LOG(logDEBUG1, ("Pattern wait time in clocks (level:%d) retval: %d\n", + level, (long long int)retval)); + } else { + setPatternWaitInterval(level, waittime); + // validate result + retval = getPatternWaitInterval(level); + LOG(logDEBUG1, ("Pattern wait time (level:%d) retval: %d\n", level, + (long long int)retval)); + } - // validate result - uint64_t retval = getPatternWaitTime(level); - LOG(logDEBUG1, ("Pattern wait time (level:%d) retval: %d\n", level, - (long long int)retval)); int ret = OK; char mode[128]; memset(mode, 0, sizeof(mode)); @@ -381,13 +417,13 @@ int validate_setPatternWaitTime(char *message, int level, uint64_t waittime) { return ret; } -void setPatternWaitTime(int level, uint64_t t) { +void setPatternWaitClocks(int level, uint64_t t) { #ifdef MYTHEN3D LOG(trimmingPrint, #else LOG(logINFO, #endif - ("Setting Pattern Wait Time (level:%d) :%lld\n", level, + ("Setting Pattern Wait Time in clocks (level:%d) :%lld\n", level, (long long int)t)); switch (level) { case 0: @@ -421,6 +457,26 @@ void setPatternWaitTime(int level, uint64_t t) { } } +void setPatternWaitInterval(int level, uint64_t t) { +#ifdef MYTHEN3D + LOG(trimmingPrint, +#else + LOG(logINFO, +#endif + ("Setting Pattern Wait Time (level:%d) :%lld ns\n", level, + (long long int)t)); + int runclk = 0; +#ifdef CHIPTESTBOARDD + runclk = clkFrequency[RUN_CLK]; +#elif XILINX_CHIPTESTBOARDD + runclk = RUN_CLK; +#elif MYTHEN3D + runclk = clkDivider[SYSTEM_C0]; +#endif + uint64_t numClocks = t * (1E-3 * runclk); + setPatternWaitClocks(level, numClocks); +} + int validate_getPatternLoopCycles(char *message, int level, int *numLoops) { // validate input if (level < 0 || level >= MAX_LEVELS) { @@ -830,7 +886,8 @@ int loadPattern(char *message, enum TLogLevel printLevel, } // wait time - ret = validate_setPatternWaitTime(message, i, pat->waittime[i]); + ret = validate_setPatternWaitClocksAndInterval(message, i, + pat->waittime[i], 1); if (ret == FAIL) { break; } @@ -894,7 +951,8 @@ int getPattern(char *message, patternParameters *pat) { pat->wait[i] = retval1; // wait time - ret = validate_getPatternWaitTime(message, i, &retval64); + ret = validate_getPatternWaitClocksAndInterval(message, i, + &retval64, 1); if (ret == FAIL) { break; } @@ -1095,7 +1153,8 @@ int loadPatternFile(char *patFname, char *errMessage) { break; } - if (validate_setPatternWaitTime(temp, level, waittime) == FAIL) { + if (validate_setPatternWaitClocksAndInterval(temp, level, waittime, + 1) == FAIL) { break; } } diff --git a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c index 0984eb968..9cf641b2d 100644 --- a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c +++ b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c @@ -302,7 +302,7 @@ void function_table() { flist[F_SET_PATTERN_LOOP_ADDRESSES] = &set_pattern_loop_addresses; flist[F_SET_PATTERN_LOOP_CYCLES] = &set_pattern_loop_cycles; flist[F_SET_PATTERN_WAIT_ADDR] = &set_pattern_wait_addr; - flist[F_SET_PATTERN_WAIT_TIME] = &set_pattern_wait_time; + flist[F_SET_PATTERN_WAIT_CLOCKS] = &set_pattern_wait_clocks; flist[F_SET_PATTERN_MASK] = &set_pattern_mask; flist[F_GET_PATTERN_MASK] = &get_pattern_mask; flist[F_SET_PATTERN_BIT_MASK] = &set_pattern_bit_mask; @@ -518,7 +518,8 @@ void function_table() { flist[F_SET_TIMING_INFO_DECODER] = &set_timing_info_decoder; flist[F_GET_COLLECTION_MODE] = &get_collection_mode; flist[F_SET_COLLECTION_MODE] = &set_collection_mode; - + flist[F_GET_PATTERN_WAIT_INTERVAL] = &get_pattern_wait_interval; + flist[F_SET_PATTERN_WAIT_INTERVAL] = &set_pattern_wait_interval; // check if (NUM_DET_FUNCTIONS >= RECEIVER_ENUM_START) { LOG(logERROR, ("The last detector function enum has reached its " @@ -3535,13 +3536,13 @@ int set_pattern_wait_addr(int file_des) { return Server_SendResult(file_des, INT32, &retval, sizeof(retval)); } -int set_pattern_wait_time(int file_des) { +int set_pattern_wait_clocks(int file_des) { ret = OK; memset(mess, 0, sizeof(mess)); uint64_t args[2] = {-1, -1}; uint64_t retval = -1; - if (receiveData(file_des, args, sizeof(args), INT32) < 0) + if (receiveData(file_des, args, sizeof(args), INT64) < 0) return printSocketReadError(); #if !defined(CHIPTESTBOARDD) && !defined(XILINX_CHIPTESTBOARDD) && \ !defined(MYTHEN3D) @@ -3549,16 +3550,23 @@ int set_pattern_wait_time(int file_des) { #else int loopLevel = (int)args[0]; uint64_t timeval = args[1]; - LOG(logDEBUG1, ("Setting Pattern wait time (loopLevel:%d timeval:0x%llx)\n", - loopLevel, (long long int)timeval)); + LOG(logDEBUG1, + ("Setting Pattern wait clocks (loopLevel:%d clocks:0x%lld)\n", + loopLevel, (long long int)timeval)); if (((int64_t)timeval == GET_FLAG) || (Server_VerifyLock() == OK)) { // set if ((int64_t)timeval != GET_FLAG) { - ret = validate_setPatternWaitTime(mess, loopLevel, timeval); + ret = validate_setPatternWaitClocksAndInterval(mess, loopLevel, + timeval, 1); } // get if (ret == OK) { - ret = validate_getPatternWaitTime(mess, loopLevel, &retval); + ret = validate_getPatternWaitClocksAndInterval(mess, loopLevel, + &retval, 1); + if ((int64_t)timeval != GET_FLAG) { + validate64(&ret, mess, (int64_t)timeval, retval, + "set pattern wait clocks", DEC); + } } } #endif @@ -11210,3 +11218,54 @@ int set_collection_mode(int file_des) { #endif return Server_SendResult(file_des, INT32, NULL, 0); } + +int get_pattern_wait_interval(int file_des) { + ret = OK; + memset(mess, 0, sizeof(mess)); + int loopLevel = -1; + uint64_t retval = -1; + + if (receiveData(file_des, &loopLevel, sizeof(loopLevel), INT32) < 0) + return printSocketReadError(); +#if !defined(CHIPTESTBOARDD) && !defined(XILINX_CHIPTESTBOARDD) && \ + !defined(MYTHEN3D) + functionNotImplemented(); +#else + LOG(logDEBUG1, + ("Getting Pattern wait interva (loopLevel:%d)\n", loopLevel)); + ret = validate_getPatternWaitClocksAndInterval(mess, loopLevel, &retval, 0); +#endif + return Server_SendResult(file_des, INT64, &retval, sizeof(retval)); +} + +int set_pattern_wait_interval(int file_des) { + ret = OK; + memset(mess, 0, sizeof(mess)); + uint64_t args[2] = {-1, -1}; + + if (receiveData(file_des, args, sizeof(args), INT64) < 0) + return printSocketReadError(); +#if !defined(CHIPTESTBOARDD) && !defined(XILINX_CHIPTESTBOARDD) && \ + !defined(MYTHEN3D) + functionNotImplemented(); +#else + int loopLevel = (int)args[0]; + uint64_t timeval = args[1]; + LOG(logDEBUG1, + ("Setting Pattern wait interval (loopLevel:%d timeval:0x%llx ns)\n", + loopLevel, (long long int)timeval)); + if (Server_VerifyLock() == OK) { + ret = validate_setPatternWaitClocksAndInterval(mess, loopLevel, timeval, + 0); + if (ret == OK) { + uint64_t retval = 0; + ret = validate_getPatternWaitClocksAndInterval(mess, loopLevel, + &retval, 0); + validate64(&ret, mess, (int64_t)timeval, retval, + "set pattern wait interval", DEC); + } + } + +#endif + return Server_SendResult(file_des, INT64, NULL, 0); +} \ No newline at end of file diff --git a/slsDetectorServers/xilinx_ctbDetectorServer/bin/xilinx_ctbDetectorServer_developer b/slsDetectorServers/xilinx_ctbDetectorServer/bin/xilinx_ctbDetectorServer_developer index 73f0e1655098e5e9b3d26965d19818f74d4bf967..15bb18072ddb6342aac3e005bc82fcf86a230451 100755 GIT binary patch delta 87219 zcma&P2Y6LQ^FMy}B%!DGLUKb0siczt3FOeE3q-I1auG#TRIt1j)LiW4RkQD+$5%x! zR=`3K3sI4aC}KeZVnI=F>|zVA^{SZvXZD=E_i*I-r3pNnb|fwJG*<*{d&^- zyOP?9_4ilv(ue!)93G|7e>;cs59--Yk;tykU)rTh+|sVGNBquClu2#&rVh5XpWeP; z(`5s$OkgjFP|kOHLayjJJGE6~TBqjAFRHUBrcfAF9WXDiSuUhi-4|oF|)~4cuTS&X>&>1DEH-1+!1%3xUjXB8?nA54cn(&Y#0i04~9a(+2Vu z;QBjp-hq5NaJ`(kz(Day?hkq}SM1KaRS)Kg1)f5Ey-%DnbdXr<8KA#MU_taiZFZ*k z$djQ5JmNRcRndWb{$FuLewA(v5*zZf^k9K_BmbbT4HnN1nxY4aMO499-B%(e7M!np zOU3gAr|RCJB5&{%-KZ3251y_c@QUXK7wLgY@!8Aq?aHDpfTQ*Gq=VpdT#s}W+zsJ`QE+-wk5vs%%=XjI=JHm+VQ z974FOi>9+^v8O0Q_tlASi|TdnFi}vPuZI?hV~Pv(;4pD^ajEWa5N2_`?yncSi%06- z;i7-Z2-YDcl;p9E;`EZidSJM?x#ZM-+6azO(5`t#h~G*|b#0_5C>=yU6H7~V&q#4W zX+@aE7%3hF*4rrFD;=Wy8bwcO7NxSwAgECsSN5LKLSL&Wo zVte@?LxQ9D%bKqxD$3VF67|4n&a{;+8gL)@v{h0IU$gjZXh~B4mD(yD_^v3eG#Hg! z`gx4Vtr*mQ*HW7-*es@2%#7~TyqdVLqI%$Wy^*2$_U??v@8$p5>(l)I`-ouR^2PTR zH6RUYqM$Orb;K#!DyI38v<_d(V8GgQzLq-r)wCKCN9kNjKksX)px*&D9_b9EQMQH3 zrcxeg3+eZgyd+gNp3uH3ycm- zz2%-z&urPGUR|6}J&ZjfZmF)*1G?B=-J)yJBE6zZJzG!Ewbw>bghq=T34zE`-qF{ z#^?v;iRbDXbYEZbQ(Z~*_IXqrtNDV>M#tkw)9)6-+f7F4M<~6`*Yd2GKCDU)_7$ze zMzOoamSN?(uivI`hv`fY_7gwWmt>A7%6S>GJ%U9>M+I@j?`Tookj{pP$qm`8TAbd{ zsR#OthT#>uF+iL#yd>+(xhS_Z*(%pybaWye#BXq}SU)^h-!WIbH6}gA?`zpJSA04A zQ9U?7h!L1rvEmK<1YqCXF>*s(Scwcy>uD_&f8I7;IhMCESU*!VTmy$Ry(QLq|`;=@rT>@g8D zx`5p#N=7&7Mv^#VbP2mr@X>kf9IP#JwnF%a=@hA3$Uak4n0xk3*l z3$wW-GwWo?9iJ4gZ#2?W-xRUGIh*|{x{QqI`+Y6FM51Bn-V|}1QK1J@#MMSg)+Z+& zS@boesp$Tb#0Sk;EP%4v`Wq*Szl~0J+;y|XKAZosi1TxV*reuCFjSu>*$CTvhSj>?3)~}Q{LfQEBAU%ZE2e86SXw$suJdNn{ zz&_6i`H}w;(F2aB-+1G&_Wr_Ch!*v{X`uPm%aV=9sw{c~%RAx2M#V?T-M6SCQN;>-!zabKM1QkY13rxv3y{=NUt+>gQF z4e>pSzU<6=S;URc5EaM7#XajrrwQ*d<)eT78C7{emx;Tk6pZlY@X>^C1YM&Mq5*Y~ z^atF4-)QKWf&qqsmjqrNl>Uk8dztukN)1aCB~xvYxzV?29UqBHrXm6D^tfQtZ^+R+{ANPX{Ikb1)srUF zHR7S^4f6*NXkL=ap|7^VFQ?@Z9U*i7@*Cj7nTfUNMv>3H%zI?uzIQG{= zUH!+(DVrqIW8uAwIM$OB%;zT%A|3?sW91x;lIgLbnc|{jtA-nc$X@}cL428;yHUVL z5pgo~PqzB?8)zH^TrWO4w!9!vz{`lht{^r3dqjW=4#qDvnecB(5yp)CR?lFbO0?Nv zmTk4xHlhU_N3>Xuk3SwW?2>G0W+`nTokIgcDma+OPyw!e@cM+kdx7$E3@npmGh)97~`-gb=nYKMU3rXNs!O*%~P3Pf|I1ND-e?WZDQl zO0?U2EkB{kVJ8mhkEjVq2X6^~fN0|}f?&<5>e114u9O@nc>tVUjVFy1d>kI%{Rl<`GWxByZMjF5o>@iJ|M=7|Z%7gVp7 znrlgUP1orb;d1twut67^Ru7WrD3;aB8IghM>$S${g*;3{JJy zKGxG?HI;uT|DJ?6y7j*@ZG^rQ15Ye&4G!f890a8C4K~3$-Bt~-`?qS~t>82>R1N%~ zy+Wpq(CeV3ZcdWQ3=DVkU&qntB^UK2+eLj&dRmVyv`lv^*>2f9!3zGIgE=+NVw?FU zTanYC$h}k$<11XwsN|0ko!tdg?nIe3LJy%FDS13iKM(djP=+=!T?^ow(^&RbX7SZT zY%l3VJXxlV&>dp_Nf|k?dToTThX8SJl4&CZ&-o-ztFMZ$B!t6?43%jkbeS!_jKpvA zwFG2a88uH5t<<`Jvlr7Keh;{(?KfVYO9RuVMX?}+$5ep z`8YOL^qpHZ##_VlsIbF!y#awV_A}^L8jBj9Ml|-A_d=PMC=X*kzFS;2cWi13TxLxx z%GFNv#A%zWiAY7w`<{thG)yP5!x)?nP=n} z!}wZ4*fWR-X3Mk@S|h6GpNFmFn)&0{LGi_WpWZnV!LY1Wqn`g8vQ-?+8f*3Zdf;l& z7i3_q{%GJ=0jJ_%66b5+R{*EtU=kN>;FkcW;$RYI4CfaBr{Z7|=O50`1#Y2=gGnSp zFlPd(;$RZz9l=inPQ}3_E-->G08YihB+fIEpA4LegGrokB%dP|E=bmke-v@&oTA_G zgE;q`7Crk%^OOxNR|LXLTJw~V$gqJ zi~cD?p>LFf3+V{O2HwfzF@hGT*G1Q5u1E=!LA18g!1)!zH!jFl(2C7NkfjBNa zi!%D=A=3j!XNob4GIS$e%w3e(m;mH?Y9{*Qxkg%?2QAK z5E~X{4*OGSg|g`NjuR9wPa^-C%AO5gXInK|CDRi^KZwJNa&&*9$UZG|L{Kp>YIr`h zgFDyJsF)Z@{7ou!J(yf?F}XyhCxrHjb56@R*`LI>65?VITx@B4woFe5y#mHm-FT(3 zH<>?0c`HD>!lL!c^n}oJHf?m6Hbr~_FmN!KiX zIV+gX{l`rR&2F*QxG^v}vLihiqVp5 zL^UQ_)etg0A@n`!-!I%*St5Q(X5nYR{*h{{t(|Usbt5BfoImT31Zfno*abUX+z!fExKd7 zE=ANy*8TVtam$$)RN3OuGc!{!2h!OBTC_InIhrZ z!l<)ybS+2BJu9NeQOku zM=SvT0{%B@b;JUo4dx->j#vP^*dYRU!~zf)%zp$9;pTT_-`Xwql8u9_C(_TEqYwI) z)&=&o*mllfJy?iSlT`87ISH+kR%x>tPK)vrV*X*NWh)1V@Vldx$5O=aRIsmz->zV- znEyw?zG8lxf`i5U-wHNL_>Btom+xV2l;O8M0)!&}OI3ig-sD-^7i@yitKE#ns} z*k8skRB*72FITWp&d*h_ubiK)VC)c7_d5=@Dzmm^XuvW#VE7)7brzjXs=0pXz`m6bPmGIQ?F$(tA@X-qP)bd6J z`)m1d1;g1IreIGUuTikKj#nz!U&qT8>>0*O6zm_yhX8JseXP~<0+r#d=N<(I>iIwg zdm4C_g8dCVUBRB=JVn92;XF~n!Qnhk!Nv&QU%~znypMuCBU^clO2CuR6|6P#o+#Bd zjr=bK2O4?Ef;%-&6aQ7gz9x=f9J$q>{80r5WB6Jd zZq>ZK_(S20Ui^LqdwcWy6ddf$?@_R~5C5-%gMIiN3ikBnLc!j?yiLLWzWf#i2mA7y z6m0b4*GFls)YRRYuOGigWd!>1l?wLs=T|D&*PpLYaIinWM8U=YevyK`1Niw04h-Pu zDcBRsmnzs7%ghMVz&g5ffJt6={?{&eg$hD z{;q<(9{#q110LR~U{5~ZrC?t^e_g??!F>LzN*IIq%L?`n;@cFg74R1o>@DEWD>zWV zH!IjPm_Myx|6u;4f<1+NgMxj9{4oUw3;8<0mi;$|@P}1~e+Yj-!CDdbE7)7aS1TC7 z+Pf6&DdwhvvG(IA-ze>Sa`&$)^ zwf}Mj2g>-R3ig!qe<|2s&M#1Ku$(VbuxBVgN5NR`&ysK}#hr%oGgL-!C_hcX-U_}@ z!Tt(N z7`sEbb+(nP;iD8Btl=XS4F8}(!QNV4r{F*>uU4>8$8msf^Qq%yHr%QO>Ugor(1!6s z1$&2aTn(`b1cvcE1$*i_b_zD5dY-A^U_DP$u+hMi6%1b?LBZN^9;;yQaNbW>_TN98 z_f{Ej9HJEr$AKvrj>F&B;8{-T2>z#n5f%Ae!SEq|QE+f1|DS@5M*gFM{f+!P1#7KM z{2P_~G?qDHu*fP{H0&{38ViM)406>>179Q?PF|-=|>s5PK91AL1G3lM?bIN#n05IH>WL6l^fQRl#s5UQlp=@eT!RI)6sNa4t3}*r)S$1;e*^ zT*2@yTGy+DKZ-x1U@e+Is9I`0Wbz^y2?fu&)=t zO~Jul{NEPb+NQzLxKU;Jd-LlQ45#C21$+8%#AvM+^7r9aC|K*uFH^9uFTYs9T0efF zg5g^%SFqNfpQ~V_KR=tn{#(u7pD$4vf&Tn-1#1KNsS1X3u|UCaF6Jp1&c#Uz_Q&$$ z73_)Q$0^ts$7d=y7{{k8xYZlar>F!Riirw_Lor^#{sfNrhoz{N$VV#}4n?Da;ZO`$ zF#L&O3ic=Q8U@3Ls8p~&nU@2mn}ThcCxw@&j6ez>qF^JH7bqCcf=9vLG(J$lS~|~C zus5BjD>#tOQxt4u@I(c}Cx}z9k=e@os|5UjJ_`0_@fZaoTB0l1$mTr=yI5V8&Hqxc zmctRXv++6nR|RVW`A-V=4dmEt+O3$&zn5?;oi69{gW-%k{*{8U#(%D0tnpn6_Idcn z3fA)ZhYI%R^Y;~urTiTQ2L|!I3N{M(ZUtlceiQzmrI9h1zouZU-#ZkH^?SR5{e?WB zV9yY~MZs9IpHr}>h(D`fe-VF5!C0m@D%fAlpRnOp%~Qf3RT;q&zE;85em|sOPZ_^o z!TvISpMtUM-lJeFyZ==%mfAZMjMY^r*r?#Jc2#Y$_=*G@}(+)CGt!KV^v(N zV9zkVNWs2g+^gW=Fg{(}Dghi;Yg0ToupiAPh2;qXX1!ECXR~`kO8T1GA|bYU{VO&C_tGia_ugUm@&zum>9iEoF)ranEuh|U^IYii{UIff|NKo zR;-T;2Oo(IaN&IYIZJTiy5l)Zap5|XILmP1d?~G*<+zZ+RL(puTxSMngIzc+i?d=E zt~;Bvau*Ie2v+67wU6Yij&QBvrs>Z2L~}O$2*U3CnW%A-3)dFQnc>1An8U`qafzHw za^XA`oK17!S`oC#_X9c8fh63rYR+c6a2ONpL>JCm%h@~^4l4`ux^PvEoSo*vVQ13H zmbj4J&73Wb;PN%CEq^BCY?%uOkDp!W!nLCXFLB}gXu-=}xCD$DpTxDwQ7DD9qY1BZ z5gN&y-QdCnF&6&q!p+23XmjC=T+UXxaIk>vPA3jdTfV=5vwNIK;Iu-{{4QMg5Y8TS z;bs2wid|IGHea5FJ=-gn^w7+eRAz_sUhVtfQ$xc1(h zeSQS4wLPB(!`DY3+w(n`I^Vf)2w}2r7j7AB#m_Drb_ncu7Y>d;D~}FaJyf_oe`XG6 ze@%B0&di5-WG+JVakLB9Sq|&y!p*GSwBV*`F|*q8;n1)gow&f}$MG@LzSwCqj|$WS{=x)sFOODLQ_n^}*cj1EQ44(^!cRA1U;jL}?RiiLbT$usP z_*F;X&;ii)P8ZIHrQ;qKZW(60--YW$tsZpYsFT;Wx{v`>^)VL?8&}ru!f9B$o^s); zFhVxFa6yca7hJf66wDJF*J|}eXMTGECdv_no%um9-08w~!u-7H!c}3&b-HlAbj%YM z&Yy{SawM)b9|31};7DY?XCNku3x|Cq``m>~z|j2Kje|+5lH*zpw9b4Drsg{rofj6Q zTW@uaNGv;;p+6r%*qx8?3;W%LBTwKj7j7A>x)yaLzs`P`CoY^9Yh@pWYn4+0g3-qV z6w<~~^C!4)326Ql7Y+v#EW?HKVaDgUa8;Py9v7~)4NX1Rg*0I4i(R;?BAAOKa2OxJ zRULuDA`Qz>=fe3*;6=D_GtnhYQ6ci)RX?E>u<9EwLJj>i-i5L-Sg7Oo9eeV!ZF1UJHkLlBak7Qrnf%VxmZEpg%Cd9$T1 zoVOK&Yncn#j=^=I3m51EOXtFQFt{#v;SvVG(z$TUFyO9n;k+1cHvoqSxom!^HICER zzg>jwFd%I%98SO3Di=;mgLQP_x?uzEap7jd2KXbmRw=k0Yte%dq{MY%zOQxRa16s9 zbK!g#tnDsbH{6Ym2x_rqN8qqVz!F{<9qNhK zIz-*wsq8{ADHIO4V^a8z#!9DAC zvF+}rDt}$LP@JRCFY=KNZi6F?LGhtAGHrxz7enuv7flkxE%&S#(+@?|^E*FY*7QPp zYipl%{&CQHg>NrHJ~-9E%Rk^Bh|>A}c-A9z^$wG_2wxPFSLYbmZ_?``|5QD+W-1?{#lT{)s2 z1riWxx&MT*p*1tW99mWr6QoHqKX4r%Lpaj+PaGSfxDMf#h=uo7<@hZLgK+N;aidUv zf^jK=6_@%!SS=pEx4aH55d&^(pc1vcjx?#J!M2T}Dm0)<4c3FRZ}7&$5BMVydtXit zR@O=)Xaqr{Rp$?h0Pt=x;l5+UdH2V(Qk)O-yhAmyT>l~BR46RrfE8Dy=o-X!;`Kd= z?_{3gq)r|T>b#rBGC)>Ov6=ODX7 z6y9H{_cz2_uV$j9(guKP{YO1!Po>t;BbKj8AGFCqeLl3Qgf_uST=mBd-T-2G2b#s} z_g4&g2@%2Gb{2I#wVsA;D_s(%NFjw74;>V_59H-}M)1#~bc$k@Qrp7k<{paQA|`P2 zcs$$kuSsDqi{%ejB_L-Jl)=3DPY}-s#)^#(6b}bdc8zz$5wT3wO@GmA2uDD6txV&^ zmPmXsUB9E*tQg6%M6o|}AQ;twyYuC1m7UhQ%(og@8oONZ2W5k2iPs)1V5gH-eNiqN zbO$~W&uti#ywZwi%4%4Z9wFvFlv@p|yIrbGv{h+DX*Eh{WKyTsH=939V`(DrP$u=% zJL02<(xVHS(Hx$q(y3>tpIBYT^0)Sw#c`w#8$k0Sf%%|#_FRi$OAd@^l>E|I}q(nkkPcp0Y*xaU~<8I<|d>WyxM%fjr3IoRhAd;47yvENDT@kZ$d!5=Nqw|ps{ zd31>W%9rBfM@w7p0$+LwO*8i=@cux_!M8lZasn(YM|a5ihWOfVrAW^0GL6?cT#c`ECftl=g~EB{bLu_bR%347Vy>wk%9U&F|=QEk${CVZG`5Cp^s0B zLwEiFVsvRYHcevp`&nZ3KoAvHkY?57ttoqXC;q z1)ML{LZsU+RWzAbrok=+H%hy-OB~)+IGVN#{8*7()Hk-Md=-{D5f`fc8nnF9syfwDz^{8O2O;`>eM!X~;AL@7rhdJjZ{ zV|=}M{vRUksRpu!XNg%)<)vNV(7Fa%_kq^mgk-BfDpo&Ll?ciyV2WNzf+6g9J0wQm zpQhj5C~kc+O$>N?U@Hh}K|uDJCZgARz|yG&dhrkO--XNY91#AHVww$th;$~VWVVa0sCVXjKYL#2(x z!hT%`-CO3%v=N#GmM~o@mvn*E0PFDXB7zgNu=}}8ZfEoS51M!CUBLnd~ z;^?q=*)olni;(avB-Gmy(0H?J3C5|P4{#O1s0B&$k+k`jI;DC0hozn2kVfy0oCfd@ zJlP-v_ycI}fV5QNYPVC8L&9p3FzODc1mA$LgvkyGRV2Y-`VNo;yt?ibeK%KyTR0Gl zis-50#Lcnf%y=CPH27!qMHj72*Rc7mSOQ1;hrJI$6I zpQRR(!yg5yL=H4hr!54>hj4Jyt?%Z_sLZx)EY^oVaYu zAZ&70Z;`v2e(#A>cIJ*u9u`?__QHo52l8gSehYis&FW|zLpAj>QTk%-czZP1_aCl^~;*QxG95C3bBsnEVQ~`Vjx*2*%(GYvqGh(DGL=iDRnA z!SNG#a}D4)P3+lLz)lsHZm%02OtzIE?s%GHrzJ z1P$$b7K=kKXX6WJv9HJutPo>fDJmT1;QljwJp+VfLg-r%R3BR8=ZjljDWB=h2ut0w zFVdBpT~bf8rJe|>bR~`ULCF~AUD%YMA!YATK*uBc?kKLp5ua+^O%A4a5fjI9e2h#R zp^;+Yj^y6MWHap$&4E(t?R_YyCSskeW3Je{<%neEm{AhUX8vh9r_F=ee|96 zqGETY)up7+GKWHywnF!~6xu-w>3@7IPI2UZ0~I?I+W0fRJ1}!=3f^qbdR?|r617oDwnL>4;0%#z;Gk8LOxeKMRE(JZ^me4x zFIP-QQ!Y)jkKU#gpybQyNXtKDbDeh-u6c^?671zFs>spKJMhDkrHrJw~a6KqC zzA4SvjSj9&qU()p_O{A8-;q@=vtCeHa~)Zq3-(qzdst;naAYORQn#tB3P;wDB5^mF zOk0g~N0whQJXK{eN7hX;YnsaXc5kGicSwfARMtL6)-y6IS7mK+WIZOcdW)gEWrsg3 z7Va*}f4nNvHA~?~oI!IHR*#~CKCJQYigmjy*&4Bbcg?JJh9_KVo;HEAf(s~w;xIY8 zDH4Dcb-P6)C%b05j$?XZrahqXo3TX@2_Fs=mv#=Y9nv=D87OY+%vyqx!-%D0mOV}^ zF~HY=WeRjekW0pd?B%j88ZXCGP!ejj(<-5nTZ?Vi95@>^kf~l|f8av2;d@d1Q<1nQ zk6kCK_f(aDyb!EuZ(D#lbQS)AREBe_98L7&x8kNfxhaJX)aP(AXgL>wy&17tj*R`H zYfoNkyaV$VNJ)`v#lpSG`lLDp_bMrL@ztIl^L)awVdA2_Wzip2B5c^UCxh)1TlQwN zU1C4}zeD`8x2YV|8$sOz-#GZwKXrW`C21Q+q36rQ{I@e&eO6$ckO4T&)Hc`_U{hdF zpr&2(TlvkJc6I=TRKBLV3#(ukR$qw+FS6PAB$>5+M&z`oM_;GP5KrpbG4KZHml}}X zvbAYAml{ePXxnl>T6aHP3B}fG7iweguiG@7M-~vB9pxgr-9(2?-geMQK~OlXysQXL z1<;r;6^%`D6x}1(yUDCkq`uq0 znw5l)#maZ{s=um;^wh(UK=-hd?NwOrZm=3r1Ijvq`Fmo|y9F$jn2_Clsxx8^o*j$f zlCU#F|GUP#@+8E1Chd{2p4H;o_bOxWcL-W2w!K&9(eikOypW4E1GAJ``Ge0<6~J$S z?eik_{lQe9eqz-7#RR+v*~!AcKU(ccDh5-0Fk=C0Uu4B zzQ2h$j1^t`iNgTB_!#lT{z_UL3MPuU4+n|p5Aunk)uxCR#s>)uE64}d3bI=qTvHMI z>Ci}Ptr6QkC}6$C7avG1M~K)DhZBcRG5N!y-oIj1Am^$7C#59hcB}kdj`Al_d3|fO z`0|4SDz`z_&hud*B@CIE_hAZE^MD)?)5R+X^76-_m2`Z2kNSjm0WA)WiEs%54S|_ zB3}bTIZ}J7%#Zu9Op*7AJQumw(&-V0PK#}w-nQ-MHe07h!Qw@!6Q21fothmw4RPtT zS9E=n&9;fdpU8>hb*OWjtqxl+5md4I>C=oBV1=HC};!syIzMpH+@dr+SxIUyN1<0xh*pBjCF^EY=Hp#QlqpRq zi*(W&yU2;MNH!Ir0sh=Bd8D-6L3x!;IYLtYCAvPBly~ovU0Wf3`LIRiD z0#66`d!)bxO5opb%34W**GqwuDGS{m_hs&w|CL6XdgIZA;g#5RE@3scuptmOUkdXm zVOt%-CP`uaD2q(YI+6Hg_Lxl$dFLNZUa){qbjkZk23(BLS74qi<#h@6t!z!7LtbB! zr@v8Q1#`apN-lb5fdFAT8Ns-8ph)|=kvxwRfW1?k^!02H675J}Mzzr?$G0j_f<*yC zp~V!tzV;GPn}g^LB63Xsi^cSBvh~FknEukj$Gj>2-Z&(7fTOB!h&|tsoAbpt-eTWi zn!r-rJ#R!rUoC5Cbt#Fi6z3ewKrdZ)aAF;9lRLb;HrvbVBroq(Y+a6aG@(%w(M-AT z4UyYjlv)z$=hLwY($vlQPEOsAMdEjo@`^X;I6n0n2kAJQ^bfK8+jRV02b*%PMR}@& zGT)|rUsB$sC`VY7hJ&&Pi!Opd5uP?WjuFBujh}%0Lu(*9v z6zPV0!Hrhb{^FMZO)K^dvGyV$znJ*h;r3Hx>tUeV8~1*K{gkbT%0%u@)QHFaRLVXT zhklZ$n=8X&Zgz;7Vk^z0(k~M+DZR*{^mn5A=X5wT$f8Lw{WUpcW;>W9g9#18*TtA$ z(%HWiWtl};rRwwCFNP-q+jHs`AcqUvV&?bsO|(+v)J-Wd9kl3T=z{oBXz%v zE^0W2+c6^X*J*}P%qc{LaoVZjK`c2r1hYVKm`R(1$;HIPallm|R{!c9^Z&qPiG#@u zV&Vug{dqu){;jCQTM`yI+d)lNKh*YwjMG;K#I3)LE5^fI)vF^M)E=UCoR7UJLceAA zejfG^e~>^_{;w3>e9Z4t|6l4Ism77!mg0qY2aSsW6wYEL&I{giVmb`Y2(KID}P^ zF#UfeV)P$!Yt4~oP0za>LQjTJn(T?hNZ%)^Y2sYq;PjU`1hrojegB$S>?;pnv1s{*qaYmu!mRdpjb` zU!*dQv2&JKd3bhtpaPesqStqTkQO`IjmX*JspR)k0ed!(&?$obeIor)oVkA=q;b|W zDD8p4k%m7N%WMwXV0W>&vZp{ds>B05V=`ZbNsK&e-C{j!jn_g9Us;?wA`0zBM~k20 z)+EHXGao)1Ylp?tE!{iGd-$8K2{=yH*5AI8omPbhq9De4AJ2b&MOG9Gcs#92?ew^F zKNW(gE-?2%|7*=u#wO|B8gl_-St+1+-ochA&M_OPW=lg$_% ze1o;-4Bg_}N)-08Migb{6*@bc-D!TKv+~n%F;vxYiN(It_B&)%;vMy#;!scnqhAr^ zq7%h~C`ZQuvZ~rJZa7r(g6_Nh=4DZ=G8OkfD=Ev-3Low_UyNc6wA7pnE^;i#UQ!V0 z#|AS$nt5ux^}Mg68h&tnnxtcGS%-3W*ajK{X13MfRptfJY^8p6k$Fl#hV{lA62nHb zGt6^(F=-fjy&~QG1c#{I=C&B-@!(458e;7*1=D33U!#YpOH9^_A?hJHQM~1Ymm|ht z(HHVWs!(P^=)JvIZtPowBGtLYe61H%r-3hU$>?v(=mER$Y;%>55R|G;c5gPBePwRz z$6#m7J9?uwZ^#rm-DjC=da>--3muYbt=eeAd5lZaMjQasuH_*}I$$pEgWB9DIZaI8ztlG3FCS|j>Wk4^V$Qc(;?{nwh9!hsVuN|8 zKg%A2zi$wZ6kY-?lm4OQNIu=cnY0YyK$zO)dq^K_&gzeL`O4fF%jBlqiZC`u)_Kklhx{+Fp8TWExCd#;vs#ntyx5k1GUW5mBJOMWBt#0K#p9=!A`Ni4 zc_@~pv(c*hBjZ@^oUc5QCVv>>W%XwmmttU)%8vFn@fA{BM0}AgJ{#iu*ejT$`h1qT zZ~*GNEsoW)C?#!3JbL_~xiE>Pn}GpL1_N(2N5!%1Il`esi)sR=4%#Sg$&BdmHjZPd z+h0Wm|Aup?Jb1O8+(we*vhTH;fc_5FrQevN5?H$a=wMu6PBWJ#uuSqlr@SPs%4~-k z$>zocmg2#OFTN&0wyQ#Ize=W!&<$YwtocO(8$R9`O>>}~7MU-%$vGh5T~fu!9Jth0 z`5cr~>gIzZMedfE3llAMdny#CO(Mn&+7or50hB$-J=ccXa-8pJ;Dka-!&Os#F^Gh8D7 z#IY)M$&X+-;lLF#jmvl7a*8=7l@00zWf_0YJTsMzEp5l&XA2LPmjaRDvX06*_OWx!cT!n> zYdZ_bQzJQ~);s7q(K~$TQ8JD96Ocz}=}PnM#Ic|kzD^<7blqudCTqupM&nV*4y`lKYK$mT3)gW9%* zBb##^rBZBZZPus+->OVL;xYA#G?$!0<(%So+q6gY&%S8giJF_{o^R#>CH&J(107Dz0@b@T!5U&A;H>Sd9s?NNZ#o*9M{ao94zG#Aa@@xKmG5$i`w% zo3R67pfAp+NJ*x-B9X~}MjFbjvC5p5FMimRZeE(mGRXgoLe8x+CwdlEQnUM3mTK-w zW*Ibox?dEx28T@kEhp0W&tNJ4KeaZZIi1HlwH{_`T>?2?OM?PSYm)xbi)ttLrbEWf zkUZhKK~d;jZTbs|{(!}4h{e5gy! z{d7(Y+q(+_qNP~&YM6OSavQBpi;<@c{f{4;aVKFVhJ3k5&b0F6fyjPy`5+AXyJaRd z+%eP}_K)?>fPj`ZhRbJk#%o%o3ZbuU=P%6ses?R)GqKK`ebN%ELa z3}%%ymo`F(67cO{mYG_26#C!H%tBTcy&8f1S9g5(m?|JzlU(5A`C0MET3igQaW`E0ab09>V&B6Zw>XnJddt znt(Tz%m6ad(1KA=!1V**d}1x#{Gdf5PeNFctIkc_>!4ci9Ktk%SdhpI&`Qp$E<3D( z|2DT(u|~GRN?l|QtOlF=tkmh|d`jIWQ~I2J=DpPz@~tu%GXXMU%`sKb;XI3A*giA2 z1_TSNWZ^#Z6iUvp=u<)ek-4x2^vxC~2AEwIrqaUD+P1~Q6e+e*0F-2iYx)ozll`-z3)g-kETrxHrmDg=ErqthYgl)XkzL&zfARA z4Baa*x$d!g^EQbsoC7S~GnxXQ^Z)9<-t9*z zc%AtX3epy!5Uka5_{4rPzxuLlxi6g7VC@UzJLHK@Y?_1jJLc*JmY#NlgSFaqPtC?P z%QQU1u{O5{&BG0>DD6;MM6q_P(&Sd2vETf78B5bkBJyY*+PT?Uhcr(w^S0qEGjA%S z&@~MD>)3Sepd`g&oxyz)v$27dQo+Yu1v4xEkAjEH>Je7$+fYQ+KGUlGhgs&w^-La; zUbdM$kvZ2mbRP%Zot}u*hrM_P^_e5;_A<_5$rITO0YAR~&z^hI96FNKwLz~htI#P2%Ljfe)5L101(ETTe=x6+NS0+*q{@3^0p2Kv*@)JEp1g8Ikf z5(xRbm{RR@)+=wJf&CItyNBx{b9o~hUWif}a;Zzzg8J99J!YN7X+7bWY?hCN^<%Qk zig9e9xuTw>c~S0j(5c3G1u!)^HM44*_n;qD_Ido$CpM309MJ7Unba(6DCX0h9pIpO zH#vq+oAaAkQCvE*v61Z{wkeyk5NjK`~*-H=N=hB4O77AwpmPxVG&}R8R zEtXBAOp&x$5nRM#Sr$&a+z{H&SH7(!XnV|=qgdkqn+>xW`psKM!4uhIt{cV5GA~ZG z&fmvT4?9-g<>vRJSQAa1d8nNn%E7*7!)P{Y!dw)gYS3-PEHq{kmZ#u$?H`NxEC*cz z=;)KgS7cgcyUdQ!tg)5lV!+*P-Afz;J8sG8#rNX$S{;fQ(CkW?HbUo9zuNX6Dp)Ox zrzQk@@S2HEUg*yH2<&xd;Gddyw9^Og&S(#wXW+pI-X&8nC3V|deK|a5V9WZZd2KVB z+3M+S1prX}P0vV?av0o2YBVBV)o5L>I7X&%vmI*H(^N50m8EQX7vkHpD*oR57NTiJ znPwwIRT&}Ec+RJ)(i!=qWwL648s6FkMl@UKj9DW6_@oCu;6N)0385#Wz)Q7heWUK! z2BB0=3fB7Y^GMJ*2p(q%&X#Gs@^c6dw;_Z&WELGE)Ga7K&R%f6<{t(d*4n9|2jtv# zES(3fW|MiOp&GLn0x!Kgo0e)NYiN&sXe3S9O1hG?{PM!B&sZNxSZWR( z$LeUE?guK(j!%krkx@tyDihEn~NTCr4)O7PD(SOBsgeq5q+}I@YGqGHrxv z!1By@|7oVnExsi6ji)10ap9c2gS3d$r!A>l9a689QtJZ!_;D_&J-GQmHuWd4EIo?U z@6E1>mM`<~r_H}JSjAB8;5&1-32UG_T3hWXhI+KL$a&3W1d_b+9P|8}f-h z#TLN5Iz5z5(Uwa3cExz`*nJd||D?;P%j9t^BM)TNAfsTbn^P-1B`XB8dOXXR4$53m zF0lP4hQlK{O7TVg9kNj{EYUE27>@JpMp_Jds)S}#@%wPikLEtv&YAc-m6KRmZ?Gg5 zW?Ph=VXmFTV(C%wp{LL`H03Cl7&(r4r^z(NJ{Y^zZIo?CL-PZ0uv8nsuXU+bZL3!J z^#6|v&p1>#-K9dJtwPLERM4afbiwgHaKJd1A(-NKtg|ZpV4CHTPC--xG&h3gb=y1X z8lcV2eA&Eg3X}J!NP89-An#F``=_u0Fcv5o66+lVOcB~Yc@`0 zgXW;bL`OY-C2B`g-Y?Vm8@r$(-%0r}(ga}sHd!@jxe;eVs7cE?_$}OSJ~@?@P4MCG zZ`wWd{U)%r;eEu?o}pC4C)2o;09NkaIxkK7*Zy&qcOLhYbo|qkA~XM8_@Xq(Z`t?H z(lgCNlkhb~RPjf1&oq{;H>Jr@Ps8~`Xtek!WlGT0k>O14+fGoT$!Lyoavj6p9_oW7 ztq?=x?mj&Mz!ltzZ+ag;#K9 z64y%{T=61z$Hl!rQLHss|sgG_tiW<{pNs5bo_oNjU`*n7!2u}PVRMupAWD15QGTVZ{&1#|l2s+U2 z7%MTJvcUCgz%Lx`cdW9ex$-zBZ*bRxF$Q288F~2ykC6^8A*}VWB6EK>TW>C$g#i0G zDdw&7StYgT0K5KoNRH+WEv%Z_^EY$jY?e0=&UV=A-3l)BaecU&9rO_ULdlCYn1^Rt zr|R!+j997#d!?mHm6_D%fsOJi|7-CPhBtsAbvbR|)TCBhSzQ*SCR<~1l@q1Zs`hs# zn`1TE%^T&7@>LG5$JtyFzC%^nE=fy_mO2>yvPZT(?48Z%c*&?_frC-5&FCF?@k+gX z*dlV!?hF@funHQEf<0L1sb0?Cq?zHW0}c@(bW!(2aW zj|{M-7T1b!<}OF(@iJ4-NT$HLeCYYCx$z`cmbfJ@(nFU+W|4`%NR!TfHDgXjfc74< z`ec@#c?XE_V#x~1IW|yj=0aq%o6Jj3W=+)X7qy$uoy>;BUGCu8_`3PS$td9)e2qERUEGzC52X5f&=Hj_*$cV!*`CZpzaE@dA4}!5_AtmXp z$rwC`*+n>PNXS4d+)m(LG!LD`l6$WNczDHY=7yQ9l*Wt4(OT;|X}suXC&^{^_ZF5p z4;1}CK~`VW;`!6K4Wo`-{iwh~nZ}2LKrxk zI=_@kIu`9hnKnY1;N%|NDM`{iP$O*G5E)NRvJu$d=E75~*|&OwoP7_+Mn(+zI5hTg ziv?}UK9RJ<=t>8p-WH?R!i<(!jFvkXRoRTbGV>R}Vy#b<-%>MYE?VPoGe|Vv zPTz;^x0x`XdCav7SYoM>$k`RxA=9oAr5LF4?ulQ13nCqaqt7VG#tSBji3I}(DZ1Ub z!9rms3KhXzx2%xqv7z%eh!_27`k9I5NH2mgf5PI^!rB{b|6}PnClL;Dnn@#s%qV)& z%bN8eiRRy4HY=xH!}rX!Xk(obt*uK&Gu=Nf-%>zJHg8*qBTC;w)<3$P88SH-AIkS7 z^F@&EUl1KyvtYd3OvlUg_)rwYZY_!q`3v%o2t)YKGdem3MEc|sI8UEJn7?Seyx1j& zpg);UCq8q*ckX!UYljeR_XGa^3GnUdz0P0IiY9Y>5K8}VJBF^J|XECE|d0N_m!a6f3FNE`E~$Vqb76XuXbERWt9NVF%_oUw?N zQuywFRBQ&=%os1b{$80LANmj2IOhq~`xbNEB6c5p#GHH@E1u&^BUiSK#@WutF@9`# z12Jd@!)A-&T$vspnsF3{Q?T4d+jUzrZhYv}C(IqEu`{OQQ{&fCu?Dbd7$5RtNLI`A z_)sC(kcZ&MNV40zP17>?rIgTx|Cxu3c$<1IwVU=Jbt|)*JjRDP@#rKST2Yk9t^k?& z^%-m!Eo51bn}e3H3jNf0bM#VHNv#n? zC~=maWO^S58>uIpw)$Pt@%i1HwZz_PJZ5b*`bF%;0-Q~f4Nu#3P3Q7^|1cv=KT793QmAoDmk&%OU1AOU$gWnC?fVm_PbP8UZ&L zNK7Dy-|7-G(iT$zj;C8)#e3TOglJYtvwfgvpy_l zvO~;XbLH9Sn^j>kwU5fxzsVuyPdF7ca-Nio^owGxMSIB-Ccl8140g^yU%Z{}dBQr} zm>X-JyA12$>;3gT zrjIU%s4p5G=o9JNyTN3hIqL%K_Vrlvrsb?~inKlC-IFo-bgm32w=qv{c;cQ9hH5UJ zL~Z7{VizORMkoZDI`g9oSo)A<@K4FK1dl@$SYxHZ8Hj7ofN#3M=%76MJtNMnKVOED zVfU15Wz>`%WC(Ca^vMhBGuoj~A<1_<3)+LrHuMnt70|ftLI6uC9`xAP_@2X~3G?9j zERWi30m#v22p3sjfs9+^XtO~to5x;&Q{WrTb1q;_)%e?n(6pNtyU;pZIkVv)Np`f% zzh&A8`PQ2sT!8bJ-^^bwz#V{J(QDKK->cUwb!PQNY*G_mVJkV;I^-;MDV<>}JpgiIX_-L3 zU2i^p5gfTtfBAI=GjJu7FIDdZ8)aJko9M%2>{D~rzgQKm4=YtBtq-X;IrNzfUxniP z&zK$mVv|PUF|yLDz@b+^(!*i$pTTt=3K*{kO)2SBWOS5nGDlyG13A3-RV;ctSo}am z9D%;OWZDSb3L1LkF%FR%iYw4XJvuI;DHDyiuAenq7x#!KMfUOAPOI}6I4JHBwE_#D z*?ln^O2$76jHU5U8|XITGFfVi3c&6Z18n z(edwg^TkV8?TBE6#Ul3$mG$9~jyVTxsTCg69l3 z^ooqkiD;SQ?5dHypbpUdMLdTDJ8lo}e1X#VfG#AiGrzx#)ir6w;VNW1s-ROzN0&cA zB@x@bA2h|bq^HbfWbhOJ*nKnZCYt7@YU=7v5(r{z=9L3HcGDl-1%d`>dz1Dp3 z3YMK?l>MKL@tk>R1xrr*8OvAX;`CPeOfBbWGxth1s3IAme^`1P*~6#Kv*K#BLPh}} zS=OvFeV#VYMHz-0dRMaa=pPXZzhf5eYR3P|x+Z$|Bj*1{-n++DRc-zMYb`bx6%`ca zBFaWlQBhIxj=E7YEi5!DGfONiD>5r8GYcwC$I6PG)HGAu8gwN-1P1Kid#p7#ZhSh=_s{2#AFr2w#u#&qF~_{Fx#pT{?XPY#6M7wEd3SIo5Mz55X!v!taGxVKeb1Xvrn9zBXY?W+4La!oKSUTu{l{#(l#*fIr(U9c^du=A;#`~eG|vud!(lsQk{mFRdx*fGFBi3-?GTU6dzv#aJGJsg z28ALk-}jz$R=)G!vNweif|6wl+%3uWxz9ITC#&fWUDk1Lx8>PPX+`w zvgZ)JjQ+Kri{0VefYv5Qjauu!s#meBvT}f5R#qCfRmPsP3PxIb@Y)r5$f4Fx! zGC672u2((Wdlj-F!7|>@y$qSWt<|nqGQztU8RPY&te&3*T8JQFZ zG!L2FEw?-5_p0U~>k=%>PxsD3Cg*J1^{UgoGmy#Msofm<*FbvPvb8;~ULa>xOU-kv zPEV?fpEZ+R)aIzQXXnSN!=>i=V|j8YFWB34VvO+~n&!EgQ!MKt5X8QKL*Wu-P2%j3eIq3;?@m;9asGILHQ;PpzMW{ZR*{=4?_}r}@k3p|f|K29N zr+FI1l3$75EV*C9$Gor!>?_+jp_3*7aceR<*nQb?5Zu)xg9r51k zwbf>dS*gBTZ6-z7J942zzgAuE=BVzkYWUq|>ZG80>q*mNTW0X#s2Gma93}@TV?JoV z-W?Ld>m@zyE@9-4RS(>4#I!~Kw`&OLHS`&JTS?#T^;;y-aA?xoQZ=o9S2{D1L#2*?+uKDlJRQMy=MIQ zM1+422>Jb(eqww*#@9Q>Z;LT>5A?PM^y-I;iiC)SBg7}u|6{;9r{Hvp5bY3 zd)%+e1A6WW$}h%^2=569JrlhD5#>eX%!Zj5Z?Sn^BS(+AafWaH1anmAjb@kq0W53jJJ|I*pL11lfv9nCWSIX&*BM>?>zi~xh;etd*51<-&AU! ztt*3atTp(7kS;A$SI}B(=O4m*n*Hj>wPt$1Q!EdkX>ZCp1G>ailgk;<%p>JyM)oPH zx>&VFJ_i8Asa^+4KfKfCJ9~Df1Lh-^^fUIXx(2&T-gb>XpA( zUMe10lRT}aJY+s#KCRw;$Sj;g!*Wtp)*F@beM&udwtu%WAeSj?n*MI3EvvNJw|r#B z-;t@i9yTW@mbkoUOI~_N)<59c{l^L6Jv}XwBD^z2qH9nzexb>w z1}7==QCu3G)K!lXb-YjA^{6?+%I~D!5uRTC-J|B|7DsPKZXnAeYW4<>{g-t1ek~5p zA$RBdu`s+{E^xy8ugvMZ;Rw~G){LkZnSy3P#esGM0XeOHjxCX79Z!?yr+4S zx^|-!yNmi_qZuD@>tm>O@ieck{vbw0Z8GOrC6Q{;Cc<0zm|C`u<$5{7M0Z#3>Ed8K zS&nzI{IyAVZb?<^CUa@u>aN~Fq7i5dviwjqXqSY?)E$q}e4cLVhsW?t3@0AJv)gB$ z>0&X{O0Q0H$0fRe9@US!ERC398F5j%u9@uEFr^;l-)?Ym8;VOgc zz2AlRH22=5mNlEbWzJ(w?R@W5mN@m?Y1*<9_4?!HjpG(`_Rr?=#n_rCIv$ohm*R`_ zXY(Y@K9V}pv-?2?lS~QSH>t}i%%oW-$9`GRRK>K_)BA~pp?j>D++p*c=C=v`8_vBP z<{teJQsY+pW~j;?W@vGKFK-DpLAM!|Ms+XmEy#jyGb#;FZ|{xB zMi7Ty#WSh(_FjuD=r)6ziuD#E3%bpyH1cD;mm{MgPTE$-dM`m%9CVveX}IIO7abNd>fLTp#B>2U*Z<1_8!<&q5Y-n?Zo_-r30HHp3_P1Ns7$sAa9UyuLQ} z>T{X6Ms4L@qx(j=*BD^&s|W8V^-|Sa&1kb)^?u6iuNt?S$!7IV=ssp*bsz6lvJBTN zG9R5G*5*CUOVpfgX57$fp7$~eon8pdf}K}X<}tVIHjL7F@I>M=m(c8?vbLLjRPNJe*Tj;3 z-e)CGJwr+i7uq~u-ceI_*e~TT+hGo~qEb%w9`^d*#!rXdQ=jC06IqAelg~CjvJSnc z+U=DXI`kfQviC(~9ePhmviCV;9ePiFvUfYOj=jgz-}^U&9eNMn*4%=uL+>#LcsC;J z(0lR+c-JB8(0i%}c-JC3wf9`6WxDrR|5(3v+12yR3)Dr=^5gCGDfVsZ`e)5sU6n@t zK-H&`y8l6qtu$}sE_T)o^=zeit+`(%KWARwciMU$#j~klxQq{EUfj&oPYahBY(h7w z=bqzNW@IGt*=Vh)=OE zmM2!sQnuHUR5iKE9A$o~uCC&I<}c{V3?^xYXNY&TbiS{-c7E-=g^*$Mo@PD-P{rli zH^jSCBuQrTp`voX&*^Lz1L$n^!HeeV2oIk_qdhqyw^P1R z;Bc$e?K{n+$SC5ME+{)is{Tbr^~?LrE^7Zyb8$q;NZam0HFlRw^654=S6#G=_5Ww; z)?Ma7t3F*_xSM<1{88$b-7NptuCuRrJ<6C*on{#2^Dv@EHV@f6F9fYqBVIE5L>QyJVmM#TeaUp6;f9;+ zX}$;7n?a`~M|t;)5zD{LEdLCK#R{AEG)L*;%ELO}U+q=ATszAQ_ZaokODyI>P>=-W ze#7jiPP}9e_LPkAK7o1Q)>UT0xi;@<{x{juVZ7=3Jqh~}Y#-gB-5FlFMCYo-d#V2e z>h`^6pT6$|-ei!j->x~<)|{kvqZ#`;PTgeENiK0Xm-t-naq8#2=6UCqjPov(vM9=? zoCg~bHV=(mdlNEoq{92w8qL17`UDPHK8}2gt|!wN@AXaNmv5C?|FYR{tkj|8dxO-? z0L%M+;4C6`;v`EalyKL(5; z-zj(n!wJfKm5&OfDb@c~t|bO{|F4?yvHk4ODH4{O3B|4g-vm|ss(E7?H}sW%P_(~M z1%Gp@V4=->nj6t?uL6p>N+nnG@gZ9zrDdsqo|;{4CXM|HO)2blDeR@3Bn>X?1BvefEZ#7*jIYp5U(_lS3h01e9CY4qA@Yh#qrK9f#g*lr>Kxw;acvt&njGEyk?yx;ypwL` z%g?9|R4d*z6XVzFSoRRh<~K~Q4@ZZItwrs4(~O&6J~? znI*`{?j`lYKg^`5GqiV}oy9ysj1`zjfo&JnREV5c4GG=$Lb+4m9lF4hZW?P}c_CH} zd5Z zB}#Fwu=(s}6PqmrWoO1QkRRS+NnGIMz@|bVhox%NJ~L@}10hQD%OcD6>y1s3uM$|{x?mkmf-e%}6Ru{d^>ujH`rD9n) z8B}chI>p`D)_g@hh343qx?plaIm{L7ke<^GUgP^s?p*clz7%k?&GYuHYJHo{<~o)2 zju|`UJu>+|N?wJ2iX1 zxvx`6S9_7zf2~S*mlHkP)WmoBme(A0(Yt2s#M5z7@kW&Q@g%3WSiGU-1nt@u6%_Qz zC1*F=TdUgfE_M7D^)6n_pVYVSn(j!>x!YZaraY#i-y^+Hje5_FvpiAi%=d_Bky`Se zSsS4vdPGfmpX)~QT6OXJ=Gj(tlzR4kwqL`@R?hKrU;m-3hM#%R;SaAW`H&UIwtRcm z8RT86j=yilhC4kmT6M1_gP+upT3%5}f6)w0tnT40{~gmSA)BAx%yqoh zJgf6DlkdLDh3qW#SuKmY{GQ(BX!y8Y+RPL#T`uz4`$G-Jw4Fz)XuMiShbSeM)ux(2PstAxMh&4O$@8{zrIL zSvZqOWs}fHCP&oV56#nK$2oaiyO~KwHYDskIL7?!hrAIulSGMCUdG!ztz=$33XiBS z$tl9e9sxb(Db@NRH9hJ<)$b!Swr@VSujCilRPtfF#^ycEDG#c7ADNe2@Uzz$HT4uq z4j#z}qNelgjO%;bkLsL)#(KY@L(9l&Zya~5_c`$w;zH&e&%Vg!vzvcYUF+z5>(r<^ zGxnkf$>o1|XBR;p1UfmzdcVDtVTE^j`Xe&Sh-)8K^CZfkVI}FNhojDvd765n&P+;p z3l*tQ`*!vXh86B)Sf&46eN|`n8EeF!%*`F|J%q}4T;{(e#|Cngve~(^6%iPJL%eFl z$Bd*W)SQpa#Qvvv_#d@VAFuBHn6B`Edg5aI@%8aOjciD;9(xW?A`9GV+j{IPY(_={p7d9p=-q&<{Z`vn z;ntIUeA9{#4i1;AY zXI%gPYKsPqdKqnYKzC0D+oLGy@0}=R2s-cdt=ye*9lKf$|J=+-WG`f(Xz0yO84(|d zMiM&<>ekQs*xva%gZp#_U4k=kr+7OBRhohM3t~3 z-KV;*`GV6SMyzbuHXCmF@=(c#Up(NgjeQdOTX zY15|>sFLsa{B6#cX3Vr)olPKWlMg}!XuCxG7L!~)K1WX)cfQuQeb%R{$MD(n9)waI zGVtsK&k*$v34Gz|+ON#mk--i>xu0rgb4Hx*)K13+JM|4w!@e@(hhKiGQ)8$%^^`iS zlZ_4PbD`ujY`|%l1bjcJeMbfR&L65?#dpu?r~0lQs(v70$avd|w@q$&T^~$#j=Tkz zKswB=YWUYIeS*5sP3qjQou;|vYjdoCo7*e4oUhiNuH%^QiV!!%o+<_$;IVVZRh_gct;rrBD9O`=vBB7xQl z%)LD38SZUD7&Oh+8tfJQiY#cFtu=fjygwlenr3SaW2E=r$bzO>9)^zeHmJFWIIg<$ z{+2iiEesm*GM3_Oo-NAz)mPt`=R|ne8{tB`Kuv65sdrc{ z{?6>Ju4yoD;JaquHki4cJZy=e5PzSV`YqSX&FZ3W&4Ur1aklh;%K8qo{GFK1HzPdb z?I>2L*ZxHm#(nDWzsxZaoH&r!7OTET(B-?$N6azttJm;!=1v|u#d0o0js}%Xv~Oc) zs=JTK1FcEk!P0|+E)O3`45^#Mpz+iLedvoAIgBx5D>h5(E-V(*20e-#B z)Ah+x#-6lLJzqMN7)}NhEM%_NAWS+r4 z`7z%fsN6mmo_{yMcN2awJpZnR?=1Whc>Y}tFD`Gt0-k?Yz+3RlKM$^roDf(1s-D;V z<9PxR$?^}Z=f!b}@pfmLrRQXNFR?3usgd$xJg=Lsl;0`4;WDm~OqtAD%>#>X6MMtB zq@T<)mU~945phXBcU*oyW7nbE4CAs*e0EHa+~<}0&FmJ=lpCnjLB*MNou01ibduzA zDfwRN)8wDX-c%cZG!u)H3{HYj6G-IA!66<$O5lcjn)g`=O7~13wRWM+dz!N;WQUgT z^1rlTgwui)wpDrot-aez?KxY~HCt87x8{`8`e}CamE9w?;%UA!C}Zh1BX!1cD*7jL zrzb;~+BlP!6rrUn8)uiy8v!kImvIh1S^*s)^rf^mbg0mmm&_Xot(O1G%pCg$jt@J- z`IuSHDxLNpCjo#%B*XLRKj%CB=VLa~>Y-mzH~(xVrq;7>h1Ni=9VglsqRm~Jgj*xp z&^y%2KQnjapw?mTU<*c`qIOoDjxq0?b6jmZVh&66gm`}t!=PTFY@S^4p-nOCef9yhNWT5Gypc8Tx0n*b^K%@SD9oHfwqJ|*FXrGrMwpY-^JLOf$8g8unV)#L}I*wR6mD#3w$P6_TUF=EA3sh<1Qe5uzvM|C+_NHTZs zHfHkqM-}~>*|YCd=_F^A%zO1z6=ZuHmC>SdR>{2QPgOzojH5D0ROWFU^i&mOTSTQ# zuSZW!x};>@!zxRX9ym4WvXXiCsB3>S^HY87HBr8YS3Bjjw?Km?IeQC~Nv@x2{>{uy zt?p!Nuh808Ni8s)9lG4r;ZEUui~4{)ZrY4skB|4biGi!K8@J!n9lshKk1{- z{2=E%`k4=^`w@<1l!5$;P1sHB>BTV97tRTx(m#Ccql}yNR$`Z+XqW_>|ap zm9eVJ3A6uHPdD!k;zADu59Lg@dCpJZ($5L=z=o2x^H%|fUVUNmcF=L|#$owWV`stqCQp)veNedNuwYsmx%uaN7_r4?Bib2!+O*YTo zgZi-r?-!`#Rw8Isx3-#NI=$A#iD0hU-O5+5FOmyvhdjS+HP4CuQifiTIA6_fGe<`M zMQSBT>{EBQ5qO6PsrMVyYi;H<`JRg3ylSAyK#<}rX3gWKEGPKP;g(Bdq?Rg8Uw3+^ zwQV}P2WG-0m1cE!ukU)EVBf`~3s7{7{3vfXisXCWYTo?*bbDsrBU@n5kE16(>+!ky zCaursEiBRh9sS>@+s{{@5q)U&P*>|EGv=XxT5CuB{1?Ca8hIYJz8}OdXM@&o{+~F{ z*0MX$A@<|5ke$KLGFc;eD)X{w-NaWT##+|eUgaqG{D0ZK83)`W+$)ZTsV^<7&yYlt zw){HXc`A>%R8&8m-rNtA_S_6D>OE9)h}E;#%_8P5*RB>fA0Z&AP|Xgp()xKEP6AGf zbPg|VdBf#YU`ezpo^AFT{t1)S=8;*ux2$ELlK3knlUn!18F~H9fZHCn+u7=4ahvaO z`~S?XuLssvui?*&+a%ob(>mf-9<+(uk{C9l1JQbV+HQIE*kxt*V<%K%e?r_wof56D zryZ@iMt$J2diER21y{UPcjwC{fgm{^CH8Hl$_ll{F)E4?3^os!Fif0j#qFFWY5 z)5UEFZvDLTOI;XrGI8r>r{$7B^d-G*M=z9;#v=MPH9X8pjo<)~xF4@B3bPW=<)&1o z$E(D?i};ioshp)LrwPB$;wxjEc= zwkMb5xqYnj%?s62eXKs#k=xWi`dHh{m({h2*1cw!YE85zTfg77b5dV2HJ{pfZ9gm7 zGW*JHbFoJ@+1U@>aofrJW?NPg@7;1Q7# zE9-Cd?w90!UG6=)TWmKu4YADTr#JumR#vuUgRPkO2cYaP5YdEkmuTnBajG1C>A;Hb zlI-j%GvVf{UIVP8;rr1KG`ACbfA4zn+J#)YIJwNU`RUF4y3qjZR*tfLJ-~|Z`RJ*Z zo&l;$iY2c{3{0_xqz>?2frfNw51mqchtv=73R?Lo?O`;nQa7ep{rVJXZ;w%DqGM`Z z!#z+vi`VGOQIN+oc97Kry{D_sQmmva!V$~ypuoj81pXU%J0H|+Uu@LL;Hh4PZisvg z#(YX1cLhHj{!P+ma23!`fsVr;f*0Sie_yE<544iI3~CSj@9MsRR??CYI_?VsaqB$g zE!z`q`0UO@iSEuri6?D7yEz#fS)ALk1@uc&y+28MPxN~_`s-~zySbN&9%RK{@sflX zRMegD|D&j!dXl0RiSBQj;yRMaQngNs_Ayn`s}koKZprd}RoC5=6do^%y?0N5dP zPC-2*p@tKBxD)yUo6m0kSVa%ECMR7dSq?Z^yUXAY!`p6*VLWDct9u7q@yQEC@y?UY zIUoKIyckO}#Hu$36I)t)Z1L*&U@M6qs)$ad>kU`KfUc{tGE&Ot)$={>7u4KTYX~W~ zh(eKiDAgLXxTjF0ByrSVASC0&_`XnC^l{?+- z0oK7Ef)_VZ4{O!OL#T)J_8cEl=1?oCXEeb{8|4Suh~IV`GnDd=P!|og#+b>w@wfkY){u9&H!oWP=h%niU^`ORDwzmFl)MD`94mDAB@!=IA4(g%3<*pFis4lEp+K zdMB%Vyi*Xu`)Z~7D$VN0S;AH_=ri6ss1>Ju=#qV$F8N`L@Y&6C)TrTBQjg;+rG`%i z_Tx%*$#5$}N4CX@EcsK>3X1F__~6JMRG$sE`gWPn9tQ0&g8GbB$s?@3995b&g8B?m z7mTpxm{U$(>hdRgQz>L%i&%Pq!J(Z2$i`5G?N<%YByT@t9WHggN#1y59WHh3E5;z} zaH-3m?Cp-M!=>8q2jvgC)UlO3#rq#* zL63)tc2))dT6)ndUV0MY-r@L*wR&^U?#a>)L$ot35GzNF_wiy0$OafiVmT~ay7tx`61o(^5DY4I8 zg?VMaOLhSSWm6=XpQW(V(!2=EmJC?2=>vaA7G8;p`9_)+C5nrDnTR@i+fA%*(*}atMt(w~xDo#Bx#_DfTA-=L zwcZU69h*LC%&49BOtBsg-hC*IN%nvEBUfoz`E0i%PAhi|5j4yxwj+N}>J_ z{uTdUWEzxb@&8GwPXreI3Kw5exWs+^^2L`f zndBZ=;GQ#mggduz$>QsmxUXAs$u-v$*^`6&hU>3bcDeid!s{0mEGb%YY0)*;En0p< zkyg3%nq@`TT~k=NzhvM$op1gS3B{FWhmabxNv8uZPvdAjJ)oKWtSFS zp$s#|JdlYdoUy*ukCazp&1873W49#t@!p=1p$(FNH1#SAkVvIoJSh1yeFx z{d>VYupXQbHiGM>wEAOu7{-dJt^N#fH8=~b0`o!7j8=asxD~7roZ0HH0oR<~>Tl@5 zP}mRAg5W5a*wZi~XSMn>K@XS*x@Wigi@+AJ9LzbR)n5f>pV{iK1Gmm;^*4d}XSMp{ zcrIHDP5@(aTmAFFbZ`ZjI=9uo4y*!qfi>X%7^cFEb6WjJ5fp)utopX*wffV*S}+?t z1}+4To=eS0`gyJX4PfE<)Cjl+JP1x$KtaIy3n@r%^uSE;0Jsp$V5fK$mbQJ^}#ug0*1AW&!{Uw@?BWphv(I z!N+M5u!wIe%m*956=3d5^lq^1l~(@|FzwY=e}vmGn!q$Lr<#DlIqOa>+1ECN%1!~s|eR)MR3#vUv=hCMj{IQFS@ zzF)8hvwy`N+z%Fk$H3xph>AuWfH}OaR|jqd8^I%dZzP5r>#a>V0QWWH06cO62Vias z0f4hwu?H)_I&ec9_FxkjGn5I-k3AS;wE6SE3a|*wFx!g#|X7z(%kdj7g(rBd`a3ov;T}`3g%B zSlPK42M`mw-~g-!>%du&H~?$GnBk0uZa4r}gLz<7cN~D_U^&w!I32IhfBz#?#YaZemTG=WuMRc{=C^|3erOXF}bk~Rc0z>;_zfCs=LFgF2v za4T2^R`tamEaf9LjbKI+_UUxCWbDC${@8=%1F#2+T`4$#r~<3N$bmQjU4w7{7J)IN zsCrIyWq_-|Jg|jxibY`l5bQzMQ0&2lU>!JX81~?HFlID?reP0m1@pl2;nO0Gtozfh}MWm^T`GunDXJbH`v0CXU4(+z-ZNARmW4 zcmT`;myX9igYn-4QI4Qw0uDgeL>z!?z(z1}5)Q^v5-mJ5 z6zst@U?W%$#*Cv$reY5s1oOa*Y1kJ-R6>-45gr_XrC=R6KMMz7%yb-#$03*j)`NLq z&I}xY>%elbdS07<7Z`a?oBsf~8f*gV!MF)DWnPO7ocuO_4R{P}0B0?3^SdUo zKmk+0RhP8+v%$zq+x!LK{7V`Cr4SVeD!{4&9Du$hH~^bK*JQ48m*W7;=LO|#uo5f) zTfkCq=@r<6)nE;nc_sE>Iq1qH!>h0d3&3pf2v`6X78c_GqPh?V-~Bg9Gp=SO9vKV-MDV6=34E*n{i92Jjf@no363VGq`T*`Vio?7_Xo5Ty_? zMK}PxF3z+^G z_A?2{hdsD`Gxp$`E!cxmPhwvTk-ELjzYnYckANF?wD}`Wr^+fBcHnBz16G6iVBGTz zJ21Pd&F=$Ud)oZfU~P4qzaGqat<7)DqW6PtaNX17I3h2Nv#U;sSHt#r_Nm^d1uz zm{Cg&fV)1R2Ed{Z8UGs~*45zvEcloz1U;V+09f@IRd*&O{~SZG@Jp%;Y^p~OEIN!H znEzdyKPLyhBW?adFzWj@e;GL8C^Z9S|47Y(xj(h}Bj?aG$Iu63jx+uXA+nFR`PYDj zzcK}b+Z!nfxaK!X0w(@WNzTHcnUa9DU>?|Xf+-l>`Ug`mn9+hgxDTuYkAaO~Tr2ix zQzKvoSOVsORmBiR5J$jrFx8I(Fv9Tr>%fIzBe(*L$)!)2et!nI9n1qKSbl#ISP7O3 zAL92{fmL7~=y72WW`trtmjZ@i4_1d`4;B|i-~eJNZ^Cup9(JQ=l9P7cMbCUH-PTJe*a!@)kMGl2w2JYUn0)M z?=-(Z4XpS0{W)NDmfv3pR!sN%%g$x|7tHYcD-q<)Btx+Lbicm|Y&gU3PdtyRoa6Ur zgNk1hSa z$F1(?H4NddPGni({bGPL{zVPt)>CBqPt2H=j5y@!L9+SK8OUsVXgB`~`Nw-8cO19+ z_bv?blZd>6e+!4IJ;$wn)~aFZbFg=28aI2$*Bdc4~S=|^aklRg$0CKmMZ?raO2MV$)%srve(OZ_ zitwIE>MJ{al4=vInymUYf|ZliRKeAm>SAzwW9G>Ukpis>VJstCPGA%?cVp*GovZ~; zi6ngk>7J>r>iwjUUJFF97eW41ZhL|a&U6f@YH z+o@Ut$=?{csf+d0$&zg+JtG@?C*8f#wJF59t35r!*e?n*Th%)WA@N~HVG3rd1S=#V zEHacL&QvFaPJ^zTDRrF?mIJ+A%L}28IPyVjpc`hg{Sj1>>w-$Mo%Hh4Z65>oLzl5( z_}_GolFs4J|5$xOBg2@i)Mg>mAdiYP@ieF-Y%p?>lTxQ|4BHf%8}`d)mmnWH+Nkc`h#BfyXqxvlEe*pObGC9;K`sO4OBohX#eRS%!A`h_IUYgHGH z42f5@CkXN2JoO3E=||>u9CkACHDTR^JQ7;|L>AeZF^`N0>^~XSZe$Jf)VMzgCp%A_ zC%F7Pb)#VQ`6{7nNP?>TgUnp>)r%r*yg+>-xNw2`k6_e7nSc^hdJ9VV3#Br8t7Dx) zTq;*2wF}jGEvPNM*d9ZwOoS^gRu3bb8nftRFcM%@7dqi7vVF)}E|&Ym z6T(}dqw-tTOO zzEFJ*_VclIyR`>OG-AkB7tQEQ`9@bRYbC088@h3~t8s$qx2rwjAqmC#q^-D}4M|bX z>Q-WIjM~(Far+!&l#t#)`U)rA9*qlwMx&4P%sbfjcP3kVG+Q~2f>cyB>3Mgu`7QSR zN!jX|Ob& z>gVTq%sOZvA6E1u-vyocn7ZF@^$R};UGrG0^1DOg!&_jQVCcT_;fdY3R`^=g(}^MR zr)R>{``CXEF3V{r>tZ442RHKwgXjV?SD~&8H=hq$nxr-TI9uDqwMikHBDlY5wI6#kuYwUxC+P3AP-D#1)Ib{ZdL{bkWae%2{q0P z=@(WCy?UEkU~&nlfX;qetrWTjx@3o1FLVR+_Gi={=x|pwzMs`0q`<7wOjtI|)@Pjy zO9Aw*XVoMwEa9clag|PJVHGgBm1?D2acZC^yr9+#-2h$xqS_<0i@ph+5E0TR6tZZi zn&fiG%AK}Gcmd+dole_?mBPgBQVT*bt$;4rt@dbr-)^-Yad-pbygg0`;jW%sr(vYt z!ct(4?2!!mSt&261g;ig1;{*m)yj~NK4Fln_O_}=hleDDLYKa5Ur@qopl7|J){A-r zblI!wgt*xMs!9k2w^lnb(~TRdoh3m5boFaGhEkX&7`yE%VDetqDK#)_VC<9zm?MD{ zS1(%ajX>NmtKM)jf!y_mS`Ze}FQk$5VkuWC!n7K-zAF_6xwOWvlQ77N8l6)E%t6hB zxfn_@Z>ofFg3o=^@r!89o8q@mDC9n*%mm@3(A(c?RU-$5^is>iLtJ4MNJ{sqm86E% zKxh6_trxlh+V{3Se}ubYDaqTq#Zq8$-%%$-DH}TP9rd|1e1Ryvqb5Z_mqIV!?-T%X z`+l`j#5K_S-&N~{Zh$U)U+odv#k^2hYtw^LgytE>(%^;N{FCD|oAjy=Wi?5b&}%+Y zD?3r{eIGfp3S_=IrxQUQtW)bdNhgBN{a6>l6;GvqeDc~5mVzMllaqq*Yy|5*(G6Ju z(->e%VRAp!txy588fH;4qqqhp@<5<{V6tKC6juT*5J-^+cE)EqMV{J~!br1+7r^Wd zq?E#VJ`dyrvjS$C^o|;siqF;hE>ero`@c|opu=5#$nr})=cT}G4=~v|+ zrWB?jz*NBGe68!K2Bzw3drXBlK-bpm+Hi5nOFI&OF?z zlB8lvMG404+Z8bT537}2$-`=(ec!0h>7-$h2fxt<@;siJI{I?aR? zz+`@_CUwJADfEGVsRhvC70?Yw0<8kG^xxW71B?&GX_bB~m%b0=0<#dt4mca8N~eSs zz#RQvP3kVWKp*%~EfBf_di76grO-9daX+i|LN^F~T`6@2TGWCbl(z!f)#}V*ke=2+7BDq1Vi4}?&(bQ8k^)oG zrc<(EcELEAz-0P$N-0bc%!NI1PyyrS7kzK(4pRfeV=whbBtxbFCdN{)#L6%kK>xSe z)ML$7FMDMeo`U3Pup}%S$-)pvzW}->L^~>lNp(3170_j_U`I7bjL?&k&`<=+L)9Ke zN0=*xz7VE97di!cR+ySfJYm_;MVc;v_Juk6rO*??Rlj7ZKj^Y>)#iq-fvyQx7mK_B zdKSM{BYs>1sWDBbK<|oB7u)`!V>&rH1<*O29C<19)=p|cZ}AVku(MhzbPaS4IfW^LE*a!BX*slOup_U6&KzvZ!|R}{2cPU)uJA@A>8U}Iu$Uoq zpH!#LGobf7ba)bAvuQRNa$6wbw!KN^@GQ5jtkL zdRyc%Ln+~KJBRQL=;gzMJ47Cmy~A~xpc{uf9?GF}N9bIjSC4SIR~>Y{mN!DjjZ~fc zaxECf2py?MTn0@2NT=)PLC2)qw&6w4h3Rc-vPGH7VfMp3+KDn%!FWbFxz$0h7^Su) z5_=(p<6Uv1)VWY-P2DR0y=TL+9q@(bnXPlPs|9a zaf13@@nU!71X=;<8Yo>Zd zFmtB*O0asSxa(&%vA@+HTy?sdDp+;8jF>*5qnJNuN$G8J`7EdKTM_R^jArGnFhksl0~t+Ov6Z7wk;mhDtSWCw=K$$65G(m7?jx!PQmQVA~WcE=h?bpY0&xSJN+sL zy8L{nUll?h)$%pa?)lDavK@NG{5JIkjWc*ZOymVT84Iq$IVY>|DCwySm`;yd@nMl; z>8Tg0NkfP*4LV{W4~#?X>RP_B+orD8*N!2RwUI-5;UaZ-V921b70~mSsBVMk`Rkyo zmZ%ZX#k-)_T*l)%%l46O?daxQoRFtqLH7zOz3yFh`Z3Zyr0b@zdsJ{!M2#aq(&syV zo$gtFvQX)ymtEDi$e-qv+S%lpeNrJ8g$;!~?+dj9D>FCt*c2VI%)Youmt0PICXe4` zJC?puX>RPjsaMEz?dfHtA6a1!`{GLI?3;N~?i9xESHauEwWJr4?s8(W3sdZb;uMzj z+?70?b?og}FAGYK8qe?{y~s(oH`XrH>2AXaH_}l^xkdeBFtdOh_1JogZcaJxv2T^? zoEnlaPR@L+zO_9{x9qdV;BhDuLwO0I^#C=75Yhq(DQF^Ykx{4uBBE>k>}p7gR6j9euv%H!fK$??^Fxu zcVP|C`K4;*kdXexkrOF8X9-H3sw)ZEn7(PGwa6~KI7}lwf}g(2?tTGVc_~S(I51+j+RrO`J@jH?;Y49bdkv ztc|7CraLWbuCp}cqHcK5S+P-lGAv|h*mCIQkEyVeu=7dmsZnwJ(b zX=V%bL5?9bU`r+2m835vb|ofKIN#%cKA2h38=0h6KCV6_kMIJapU^#^6sGn`rw3F( zm;FsmVs|U72HJQ^EfBf^`oK1|5<1*9g=O;7EcRS1j8b4$ZC86lDH}R+hx%OT0_YVx z)Cr+Wp^xrR2_v8@pc^$^1KqMiEf9GFbks8r?V8F!(sT;+1cwgKhR%6LM_m9@$cCcy z)l%rRN|i8D?meONE8A33BNJ&2%)&~wfP}CH=)~uo>Dx7p5%8Q!NaxbN_c>=8&ql`Y zvVShR1<FUWOxP4}&9Lnfaa2lr8ox~?xm7^t z?6K{_YM^&%x&fN4%1NWpab@1WP13@+U==14SvwDlM46^V)4r4NAHkG^&zQEWzm;ob+7MX=dOd~#;c&>wP?3Z8uIiCk|68gfM~ zBz@tB>h&>PQP)AQX;43nq0qaaec!2W8O-nYp{4Jgu2?K5m)88iIUdJhrL}R;rhzv) zfw_?-X47t*YSAOt$Gv2!x#>>x#-RH|4?2;Yc&T=L*jJxrjtfJ4x>5BX%dl^RUi!NpKryFrC2Dd8 zPzLm@W_8clkc9K{pyN0q6CsiC7sbD&$RbaXtwLs;A}d4I$T6FMtu$K&vLnsT-9Qa= z%n70O-F*WB&xxIr#)b5IQ|)UFnPqv#?d;JOa-J(>>-p2ye!w?gODtDJNTp_cFrmB7 zr=`{LEv}xbTKMXde7z{wI?4}+K-X(Sw=hRE;}PbVX7XV|jrr{^ON5U&$@@e(YQ7!J z&gu|XZfGaZIJEhTB*0je-pS>*a>l92Nv?i7mv?ea4z=cw+qt8gt0jWcsHbCHmyo=( zdz`CNxCj!GTuCB8e~EcUz?bb%{}*C(H|Fa+I?AJr!b48p9p%wR^)EZWce}b-R^2b^ zM1R)^Vo*Z|xMo^Meo@yAaNQ_5e-9s$Gj6)NH_bIrRrhyA?95MbMexbfU)7ZZ(d8({ z-v^?b|En50$Ti}OvN;_yOSW_EYLs2%3C`c>ZW@MVoRr(UCTO^|y!K+XWf1;m#rvoqA8R2ThbsH?Xt znlnSH#}LdAJ+bu}WBJIVuN zAs|0Bx}5%we!Z^vK(^~n$#$RlC+#!;tB#okf^d)QC=Ub?ke?bve)^vU5yuZ2Uz5u62+GP|IZnAa=R49e=B|{2yAr{0c`tU&}w%@4NZgGsczp?+;g*cfdCU;cC@oxj=$1(9sNL%@mgMYfg@jTdozq=EpN=|=x3ys zH}$jS>hg5gkc8aP(`~aHZG5>_%KN+8mhKucdiz|*NvTfv>GXnwj=WOKtF*kfMs*%V zL%W~w*eQWv8+3Y9u9`Q>b(VQdZ64(s9PRtkaZ|3{T&F%8#l?(^$qBs7ZuC0IfvUYf z)TxSHXFKwM_s6t+;a(@#K)XMq5Ahx`!w!tSH)E!{I)^E}JM`ozb8Fc2oYHkL-C~bhc zGQ%~f^NVCJosq@+`V6j#<^OPkZqeq~ggfc0{_2DghdcQz(el-2cx?WdX@haMmX}H6BR^1=%?j*r%XBnk>g)oKHe3*BwZ`*(!;^6jb~_i^=^+Xkt>4y zo$nYM>mr@t44PQ}F46i2^~@6(Rx3o#Qnjb)RmaEE*DADP>h(@30*cjIUa-}X=Q@6k zceT7mPjwYqUa#d7^pFVn`9aIeE_D0^#(k?JFE--7aS{TZy?1A)`dS|M*sgc!42EfW z&ZUmN{e*zD(-@9XG*8(mT?1NwhSr}y!_g1)-FaHRJVE4aq^#Bk1v;VZZI3MpM0$&s zmpGFzNBNzp{W*iiMqmwJsoO}zo zg2~@;EiawuxGQqRhSfz6rXd{%Qy=6qIW5$~Ayw;-)$)=jJ+>q;8_ag(LycKiI|=r& zKU5ZLgI!rp#(^eYrWQ|PwBD+dGsih*ZcOCwKIJ8O_G3DE`J;}tyZeWR0ionrPkl{}fsYa=<@h~;2w$H8euI+awe$AwFKjn(q4 zrwr!4$R&yxeN_vz-6$>J`-jK&5NNwBN3M2Gc16d_Pr8Y5qMixzbY_>SL&O+gqLWv@ zi%WiBn;jrj!0Aa+!Db=}-fc=BFwPv*K^HSa}nxz)`$^(He(>#xXm{N(89(zQHhpvRHuIeVfbUtoBqI|*@4vXM=~pAE!Z?Iv9b5JxZC0J_u^nY-ch3aeg*)y7%Ny@- zr#>ng9C@JozpC~3=>=qD|%GDRx;*0nFS`DAGN&VEXQey4#H5kPo+tt z*k6)f*%Z=oh$bVKji71T`14csYhD$!?F6Tdnqbk?nQyGM(Iz$SY(kfR@%0iV?J+*T(FdlLi=V{6{9EaK)oH&@`y^u zdY#VgS1r#w;N(`V<=whF(M2wI^zG-HZ}2$fa{v={Y9qLUZUhG%qg)mKjPLY?dx=9I7IuoG{f5ne@K z>ZmNy8AO4`|4<#mo%w~znhqRQ(LlUB*pf;rnc2~KnDWk`Gxv>llD9vjll3)rpqAIg zIeC}qn8s>(_1TVoAn&uZ-2IZHZ$DVV=5j5s>F>z*YCkI-c@LxJb;nVv>7+d9#Px)> z%lXBzOVP=1XnD-%j+tA_ztHlue>?hBjyK-cbIR9rkt08#JCuCcN2y0>_++WL6^yMhfgk!Y4@s#ULmX_}y*)jezwLDGV!{=!K7dY~vMwJdb zFgaaKg7ouB-OmGa!L2ImG~&Hq``e!9)WRz5?=dYecwNhNEj**;yL4A@qT}(4mZ$2u zF<1NfRLiqZb2Kxw{99XYsMAk#MHm0Bl{`N=nFZ#cUNKH(HtD;BK>zBm&wMze$V*N43E<~5Et*2XKF|7bHhFLt0-GBKM8AwY z;R*2544@xM(3NZ117693SCelo12+}Y2h|P=8X_TRqN8`LBc4Lr3Vlp|qC*(fex6ZF^vAN!gRi|r~F2Z2m!3S(*~xXj#53D)8dN@oz|rK{YS%+D@lD4^iQ1bj*)O4T)das$E1~yQmoe-}vvncKeARBwsE>q!R?UR?x=#TX(UHf{2 z%59#7>^`Fve$s~Ofl!6Y_ki0k?jmt)J3`pq7!oZF($iBQO8%vXpmh~ zc^D28LeRE*$d7Z0B1f{>Mvy1PL0|W6y^SX?=c2kSvhWaw-Wghuha1b)S4VO z>fTCPMfZZY8d|LvuCuM@EMv3XuJz4y`wle{*bmETxt|^r5Bd$sBTrT7)1>EpX3V0T zHqXd*mS#EkA`zSZCGyU`;H&AbM-0k#foC^~5L>%~(;*p*O=~v{noM=bV>-Xdd%l(Fwl6UKiYR1Qd z>&L|P7AD+u1J7U+1O0$=na#|DzB7o93S-b5dmM}+uX+L8R(~>i{SNT4J~;Xv`Pjq} z1~l`ictLphmEX8!qGh5^wc7h@Dah+a9_6%px>qgzm2#P7*=WbO{lDYqu-FA`71}E=4N2Hn;Mk^p>doVe)3i> z-Y<|(Brp63`nCfW3D^57+H(zSKJ}aSqr?SFc?Ecc6C4Uh_$zmDsqk@9%GYSO`U?o` zE`FbUasU z{1EQS$ZsbPodQ2LyA-u-f@GIXarqdSwbEQatoC zSjYR|wqBjkK@W;p_t6T^N%}FGIlQP4#$-+zuSNf%xHJb|?Wp43jFOad?o6UtEP2gR zG~Jd;|DT+?@{I#V7)?L3%g|gOjMl>DhK2C9mHAGt0jrADN11Hvb>V+x%VI8_^HtuJ)WO z_7g5?1)PGvA;4S~VlV_wnr9JtFM0Vy1h9Qf-+-*!*K`j2INLW$^sjbtH-~a>w$*j7T;3~z~>AC}GP<;rFPSeq~J-Aa&ftQjGr+!m0xD7mxyp2~S^LXIS zB9DAc>(7yUP3dT%2(H$pm(ZZXGn>3feq^S0B-cmj=VkK525|E~@rZ1@Ix$81ULD0v z*$|JVnJh1-%7O5Sh;q6L*1bx1wsn2mHoU zEd520=kS+@x#azY>oAp`Z92GLmV0_zO8vw!2xfQni)zLrQo(f;hwkzl^&IB1MXeEWKtGAAz3%%J#J0en zkOx!X)pnFt%a=nxmF_yoFPD=$*z`lT+JAL2cqe%*_&_I;R{-lN7(j!SRS2BO04e5# z$(N0f$JDZXnLtaa9E^vuJzkz6Ph1P07Xt59u->9hh;{Z3YPE7CDrXA2$;&+Flpm32 zu_m?;A2D8&&rlrCy{Wp?D^lhk6d4J?;_uoKrdv{$i-KCH>=RkiY zd8Tpa%Tqq_8uMFfbsmM*Y9G|fRI(2GEX55U_zkyBd4>GQXz*>Ya$X}ZoeXZLV0k-= zxC=B^zNv9h}38FJNCaFu-Ffd4?SOv+1wkEX0u%za(5&Xs74bLAkY3 z%mTY<=A8GNIE9RMkUaM|cro35L0-yr$585bk_S&h-&XUQ0VreVJfxLGKi3)VsHn$e z9T7*RwooXQQz?nuod~BkxpeZ{$yLKzs-MZ%gMTVl6+GCSp62$GKAv3FDxXM(%zK|5^ zwtxmDbX4*n0-q*-n!Nl|1ZW`tlNwhf*N}Ip^qKO}sFumMz^7DhoCD<=DxYJ};Ghgc z?8Vivfv8Ty1AfD8ZTpeuHiDNKsoW$@UUfIP?er7DBjoWc2#(O;M>TGaq&HI?(pfGy zAIY!KOAC9K-6ww`Z+{O?YzcO&4PqU0km3Z-O!v9*8u*6dvDL7)9U(+kb@~WtSpja_ z(u=&J1-0t*A?I7jORpsdc9O|kw}9I{odO3Q zkH3ZF4O5|S6RjYRJ*~N{o+}X7*+@YSe~z^y$eZRs&faJJsv7CKHL&l>@5$BK0FmPH6?`#>J~0-lxI zLd+)5AJH|zrQm&>!W$s4g;=8nCbg$;z(^kSEPyxD<+eIlF5qEPPu|$OtH%$?$1VlW zWfM=57jo)q_d(DBE>|j;vrWw%f@CQyc{Wye$&xJ3TkTV{xH}5d-vXB@iMc?@-DM%`?j)-1@0$qjJ)b>I$w1*UBAt2 z`jxkt-L%+U9isL><^J`m=A~usJ3cjLg&P(Apm{r5`V)m$d=Fddo_5235)~?{&k8rS zZuSbd_f>>-i=T1l`QCcg-Si9PTk7_{QD^%z*Q#c%d%u1`Ti2}lg0|1sy7zVKKfmaS z!VLZLIA@ku&$dpje$I_ngV(u>`-v~SdoKOTtLKdI=%V@aXUr<9+q};0;l9-ByS8p; zwHtp;NO_Dp{AYJ?4|`v%JR8{~=njjp4_)RB!%`&jbu~Wd4i2{uUCuoLo~zab-60W; z-(nDN{1!Mgv+i)v-Q)AEt6Q_t9UkIqR)=cblpCWTcgWj@0wSU!@H|m5i>Ob19%&mL zeO`;VC>X>mDzb>Tq7lLS*nk%v7*y1Kiur%5XL@%S`ThTYKOfxc>guZM>h9|5Yx3dl zz8!D$Z7$ST-NB0==rN}zMx+1c)bNjM*fS!L{oDJ)7rMm#@Wtq3eg`DVq&8q%E8EdS zKh3x8;$D{}u!AC;^@HA=X_kBSlqQX7ZJL(Gn>stqp_-Q5-qQ$6oG*=E4BTKRE|kX4 z2d>PCGt&7g;EJ5MKsrAQxB*U_mcdU4F2{-UWt_$r0ol)q3}*0oz@<2Go_>5ba0yPF zzaMV|uBQ_h>c^)5*VTzLGQ}6!hjd?-cqiuu-Pd0%^bFM3`^AFNT=9^nm)=5PUTlAD z#x(JnCtWwP#qXZWV~rgCu2}1>(1SVRF>gQJ=M`^yztjC*@pSGa-N+X)d82i$K#b4( zmmVq*&*d%FL&YLzz$86bBF-8xMNeKNo*hu28>QmFfRVaUCh`W>=>9S>cVH1~7gr7( z6Ze8o+Yp*mH%_o8CmUn}y8bLnS%aj_n# z73UV0MQDPx;t^m&L&XQh`MNetbQbrcROTQE8YZR>dO$aZi9ZMRXP1kNl0rQ=OpGbH zOb-kfyGs6-@2lf4Y5vBT7=I&4)Qx)1v~`UdaNGRa2C0QMLL4Y9>iZ?qI`Hi=T5%{Q zsW`E#$S%w6*=2=I<{KdiGrA)~^Y3{r7QdI?w8yUne(ur5!kr|3 zEUN;kZ=}d8_cpCwplx89zpvKnZ=45Md)D80HvMW^6^WztEJ{D;Z#6`Qo0+FU{8=#~=hykfrcd9{LajBl z&}hZbTkQ#V&VWgqwNQhYT{(n(A+E2i)(uVUs%+H#Or%vc>K=;FaDv|x<* zqUti;6Dt-D_Oiud-QYAfN!&Krqx)mUb3jcNpAF8`tLBUU4bIU+u_Cj&O!s#YldFq$ zUsrKq^(Z}gzIe8}R@b_TU#g2L|C~o^S>_8h7_DC+O}|G7Z<~zLUr>6dzwswAWk`kY z>n56pj9~AH?L$g*t^2m`hv-cAbr(O?6lGjWl=IT1JwgRW>*>T1zZZzg+BCL6Osvgh z%f-^#HrRzDIyBDJ);@`hTQ3Hq* z#IlAm-AEK>Ls3TKsgOIiZ=}BUNK<`J6dyHY>Vr?E>c-yVZyYHS4MPtlis?p~?&~Yo z8$}suuCmN7n@DBZAEMpJWHBgLDvC!X=~|L#7*(bRlElhUMH!!-0=W~Sc76qElKZ~c zIx3TGN7?kA_xc-OBeDvuub4WzsL7YihyUJbhSIcfdm5%BnCt7`C~brXLW zn@Gk*XKEYzYWNq*)WXLW56!Bl>)OTm+E1@HKWg5uDaeym0u9-S_gs1x(YcI(~Ktw>Jy0(4LO z`&-;LHnaHmIogJ!m+Z6$!45eH)(r#&{&gVlm`ddLKHx^>bk74Z{=F}Tjmzx)jx)a* z4U>~H0Qva$qB|#5JUXsqpBPtId+iq^>$SwMUP2UqA?lv!HsCvzRRopIAHp$j_ao zY*aL^Y}8P;Y}9QEZ$-V$ERZAd_xUg_$7-wBG0mPXbNDdg*i#R;_Z%(V(O0N-2ym6S za*8L*@bF?H=mUa2qox0Op9lcwiJem_h6X$oQNdAp_$6-c0WVLW!bzxLlGVD;Q(?ey zqUfZOJWnqFn-F#d$@rUO+6e!SDv-%cUkytU*PrBR^5^nzDH9&7J<~GR2AMX(?L>@- zVbLrMu8T6|OhD<$NM})xkQ(Ol4~gF4O0SSR*>1ImDFy4N*(fTC8 zOElhoyV3f%h-)0`@eSZH#MthLB>6F7h+*^B;ZE~rv8XYL-Lvid#uDc9|gTH7{$l${{cM)+nb>+v_H2sR@r?gcy5 zTlAlib%v*aUrA(kFQHYWqmPn*RlGqbY%MZAWX^}FRgD*y|&tip(?8yD&k%$<>)6VqlT_YW5H{}I|T2p^DXBm7H;xO~>2CeI-LEnytvc!Nx1 zdi&nVAs5vtrZGHrz42d#_+rB(V^RtfkU4N5aCI3!-{8=9=OcC-9= zV;E(+Q07EYIXf#$E8#)n=4i09W!eb0isiEln~W0vn1g^CW3El`kgY1V4=h!KC7k-S zQZ)eDsWNSZ?<7^xfc>RP{UZ(7O{OWtebJuXpOv%w(~B&}+C-jJ+QBI0*E^V#9fsM= zud)?64T?NW1<`XNK*~a5<{B1f$0Tw~+3yoGOQ!6`( zuOec5+9l#FnKr`9QJ7Xsn%2KBt(g2uQGXdslfXVQZG`8E&*pfVLS=jgAsjA2 zlW8M7#nxyLX|&Vd_$D-h|2$TJubhu1db{J2fDTdy9e0FXK9kC$k)M<0(eWJ$Hff#; zUQG-f<0V84FkVXW>jy*HEwQ>^1ur7n0*tK!Yi#W!TEMyZ)j<1?<%tJQ!WIlATd5+q z*%d*hyJBYbH{LARsnc1Rn0ac&s9**EnRq%J)?G4fgunj@c+8;le=)jcUG6C zKs8?ob<`%D)lrA=Q-K?dRwKV_wcHRs6F9XACvl-6d@68i6Helc8a^2~wFxJ2ff{}S zaOgHsep)Rb1zeNbgp-86T3!#N+Juw1U@fl&F2PyYGn7{Wr#9gvoqs4V1x{_kNnB_s zF9Z%-9s8ucJ&1-hBmCzf3kNr0j?dL+vbn;$aJqizkm$X_8{5XT;pW12*1s2Z51K=M z|FP2)!SZA?IG@G#xpX0oB7fhnf$dyhDt6qFE#iC&697>m zP*2qeosn7;&wF6IGO)f&c;k9#fvl(gru4Y*0g$XzgH`J--dUWH^pRaW55JaGdy798 zXJo#OG_2aD1^RF_ZR>1R&fiCrFUi1O!Net)5)$~w#Qa7GyU`MMl}wKdZxid5Wa)tf zarcsp@%Kl#!YdJ)f!?)0OKUYY}^jxNTWhcOygg#$>U5*?{goO6Z%WiG#}q zv$3N88JTRi7eVCRz93{qdUyRYddRlq{_u zzkpO+29=jtD(A}dxbVp$ae2}Zj%_p=0Tkq+G5em2l3uh!0Mo-RaQ_Wkuujuz^;+L2 z#VO0nS&O)4c~&vjx|4`u9R$=_0)G38(&NH;P$XiLP(Sg`@{EiO;C9UJ+1eXoBwJ6F zY_YQiJ2Nf*3kVA!H?VS2>p?N_%z`d|PtZ0zFQ%PY!1jqXXJW@YQ`~)KM!{Fm%qniV zrZCc0+h+2+6db@=!kHQRzVFSuUS)+M_pAbaRbJGEV^vATj&b2QNB9-EV_bMJhyMiJ zF)kb)@jKv-ap8UsC$)}o;aES0fIG&88(#hiaL2lEEGpjz@)#Gc?t7sfW(H46^n^HheXgrA~de+i$Z;7|#lu3!YnQx%M$ zcZ!0wGCoPczA`>u!ND>24>t|1J7Z)Mv}uS&{!*}S7!NBrIE??M zV9#)lJu#a3+BE-g-l5>oaQ>r$J$3v$1>+p+8wCgI_?HUS>NzGL@M)sj*YnR+MzEfL zqF`eL|4_k!5qzJ5JtO%Z1qVj*cNDBO@V6A~Yv8XdIM~2nv0yC4HNH#1evJp4R3fDD z?F#lV{;Y!ij6bd5AmdLc*rW5U3ij!Ii-LnXe?-Ba82*rg12O!51$$!oJvQ8=1!DQ# zk&G_<4h09g@Y@vZ>B?_WaG)y}3ifp4%?kE)9KS@tzBqo7f`f7Vd53P#*Fn&2j?y)S_`sEl9&uU9Z)yI~6UCGr{t2NU^V1$+AP3I+T7@=^td`to80 z8%exC!HC-iC|FD8O6vh4)o3qN+X$4y5v43f9ti zoPvF6ysLt-!5(A5@c*84uBi-vIzOt*@!g??()s@sjKJx41qU+tuL?%kb6CNMP!1_L z*pGj&U{5ChR>A&E{*{75nS8&l{6Dt4abd&ijDalvse-ls{38YX`t$b{jNR||6l`R3 ztXb@`*?hNxwH*G2f_*vsRRtr^cuB!cn6P)M1R{$U6pV=CIRzt*6XQN~YHaG;D&RIpagaXM{VuAGmF)Hqnq5$IYO*fJWS zV8jH&6&$SKIIy>ADtWbneU-dY!PtH&Q!rwMK?+8EP^e(U2Lo*w{%0`HRT;)$o}=Kv zV4kI51Pd7oMy!ykV8jYIR<;!y!V?sXSRr1)*ahjKV55e2Q*fY$$Lh-eBXD3U!&A%u z#yZdHn6>;*1&3<+9}4yiy2hQ?bIjNoFkf`c00q+rAr4=Nb3 zMbmvM5n_C!f(@PDrQm?hZ&$Du!*5lvFNWW&;9v~DNx@nyzfr-ySbm*?gR%S?1$(;i zt1P&wSwo<)US)*3aBS^bHAB#`R>8im{9*-%y7CJZY;@!2DLB}TuU4?pou8v%#1>~M z*ofn2DA*szmooT&X+{JWi&ci!gD+ID(Sy%ZFoKIy6pY|vmVyynOjmHIC!eZdUoSpI z!NFd9l7c<)e7u62{PBFON`&G$wm~d~jNW{tf)QNQDHs98PzC$?@F5Bg_2E?tMm$lj z;7|fDQ7~eNA_Z%Gc|KseYS@hJ0G=1gNa7v^BUtFKU?Z9LQ*a=erzu!V;mHa{e2}PM zEtU6Hus@aeRIn$FcUN#Qt%-M03B&=qf)NLFV&}kWnsok`f)NK`i_6Am@ZS_{^y9xM z7;}Gzf{jf6qk@B({5u6>y8lMPO{je^i+>r(=+D~~j5+>u1!Io?M8Vil_)x+A9KKJ% znuqUEFsAZ%6s&pqTMG7j`RfV}dHE|C|5j}`-=D-3Jw+V+Z2px z_Z9_X+7$}+5907lR>iaue!YVICHz_iYo+|(8vMW20ZaK6Dg)E#It61Iy-dMaLSLd_ zPdUFx!GUsqzJf7x{!77u3Ql{qlE0^tpRHi5rk5*NYpUX>tAwwLFHtb2NS}f|gZX>~ zV^%y>!JcY9Tfu>9j%_tt*bqKV!I%k8Qm}@-e+Bz%_ymHR~Y{rFQi&3za zHz?Q`%Ig)3S#FqueZzQ-g0 zojB}l$V*Zhg4UZzVf&1YDlk%}jc^xKpbH7l6;sxivs1;|_35zUE$jbX(?E_^|)`7Ap>rh#gH6r9l7Xa(Y zS7tV8oMEpXRcz6Gy$NpfHpg%l>%xU%IqUAiY27&M<-%d&X9+G`M?7cAE?ipzXX(Hp zMvn@{RLQbjgrOwPJT6>YDrW;+I4zyCLKm(hgR>GB&KSa3MHB}gff~0A<*Yi21g^vD z(K#FH!c9eu>s`1OSj}+Z0;t_sHx8AX;KCW@O`M(RLSnVTrn+#=Rh-Rm;k0Vb=D2Wv z;O4n-SPU?q3pW*a&QBv;Q^fooUU(pOMwHNtQzmZ$!P%t_ToVbY=*5}efg~JtkSkm`Y@@KNT{x{DXVxjcHyu|z&5yWZ64ml zZgnAp130_Gh4bWd7I5Jb3OT#ag%y(7 zai_|=8;!3X@| z!f9FX3$fDa%_Xk~^S5|c_2=v_7vZX0ctjTQjusu-IM#*hD1~=);Z{{`d-~cFyG(2G zdNjB-J;G%aNyGAxd0e;_jF$l}oChAK@L1fo8O>|i$N(DSBAJ27ur~+OW^czx46b8v zE#4M5bH5AM#zdc+hBmc$HArlBWi~_N1{baaEp@94Hx(oK4j0Zq;{{x}0KETwE?fu= z`cRV#+1v*M#f580!$5K2+EOr1TsRG_{EQ3N0?+Wg3x|D47PN6qmf708SP-$7jv>U1 z0EVx*Z~+v4%Z0-pCTnxyroz?ib>UWdF;0%fHF+!YFi?&~dOP5LLN44?xSuawI4mL9 zw=SFp4^kofwdxb72t30NF1iE^?hd_)dZZ%k@Fw)c;5mk{!`p%O{KJKtiuvv@7Y++y zro|k~j|Oe53)cn*-d*9EWUqx_v~e$mv~g2m{sb4!k5QZK!nMHE=`LIcteWM*1qv|S zT(~9;BYA)e*#d`K=)whH!jfZfZQeFa(iO+xI=rF5h$39L1UTHGE?f{3a(zs==~(k) zJR2@Ta;{@txT%<=C%AAe822Yeaf`?oU|)(&b>Z4DanFe0nz$tNz%$Q@AT6BM6=8%M z2Or>b;m8M^=EAk0AD!XCRiMwD?ZUM+q0_8#AwB3c=eckd=rk9(aLw=mm%4C%^dr9u z7sAlK!i8&tU$`1Lgr2hZODj~Mb6w{m^kl<3x^M{|ct;nG#`di)9JUtN9WES27J(?P z$ud92_I**L#2LkKk1kv@I^3f!Tn9R9iwoyN=X%10!&;X;ip7j)q? zbhwv}!C^+j?Dd)phdU1JEf+3?;o0WGk+t>`j<$y^7u@0Xz$1O=B5Z+WK6T+J=nA=T z8m#rD3pW)(*S9WQ1t#eq95{rYE#79h%nk>VaM;jbzq)XK_<%oLI2zl3xp1psel6;P z(VUoNhrtuNaK7OPJ-bJdjFurj45waEoGjddU@F0dn~L$Cd4&db>V_&x_TFm`hwxa;d+3#0_{20 zi3BbHw>-gxGtkpdbm3aiOjBLBHh9q)E}RBy%{d0w;avsGOq=II24DrB3)g`N=`3hbHrgw|Qgu7a_-&K*N zRY?hvD~Acj8f-tT34m~#D80L+8kQIcZX2NzNyi&sshVa~@oT9HwWw09^}MM@rbma5 zitF#r$_iHTO9@d2f;y|tg)%)l{F8Y3?h|mhj^M)!4KZ|Em5o&mFNekw_FLO#xPDtq zCegLQmTCNhBi5)>w9xHjh;TORpY%!t?|@zeO$=nw?aoE`4duibt-p)w1J&J7YA$lk zwgNq!%@FN@w9=E14&^0a#}y^k%ID*oXg^BS^|?6p8CM=CH@a=8Y9ykWBtuyzqT~@0pH*c>0=pPqu!&VSe77rHT{p$sod?KNBNA zE{m^p5Pl}^zo%SZYKR3dW{98eNhPv3J~Q7wiDl=;JLp<*^}HOKgvzl+huf+_Y`N7K zV$!{3`F(KJuA7}j4G$BxX+|}#_}kj*qpNu%zZZAio0Ef`j{`A!F*!F3PBmL7kDB zxw%2~-j*RA38Yes9ue~&NQ+(D02>6JOH&Q8|5I^UFgs;nU9?BMi)RO9>``LT14(#9 z4y~yCE-~=IJT?KzG~s)2w;mWG${*TOkE3U0ocK>=XP1WZl3~hWsB+6tyXhqW;0>T@ zpq3nDw7w=rJe)c0cWl|xu-K1gm!|jBMmYZRNt9zZ;y4%_2U{Gs5l6rmgX2JO#4FO) z&?QFeFXG{c#~RqmS8DBXF!`Da)q+W_#YDbn0DKCV#5$OqCQ3JDmi77;)JwrblweB|LcuDI@rtCLiQUPVxL0n@rLG8k@#qy-s2ll^Ju=_ z_ZzX`(c-3Wun|trY-v~i7w|4na_}jOh#b#|h@4!9oEqY5zw046`|+3}gm*m;gQg4k z?MF3K(_acXc+(@h!4|+|NRO_GZkx}mYGXJ|QLS<4<7mIqNr3(Ghy-jQ0eE?IzSz8Z zLT_~Z-jHPZgpp>$Dm*n!-;xzSX;^f?{3b?i8N^nI6ea!A#rt^Ev$v=8AC20h<<@MDpEPb&LF9BrwfN*GYb8eNPkQIvSu&}aqd z{ceqUO)kr1_X)l=sYmrloR*wyv<@06wrrg}4jWfW-di8p^E`M;Sq{rxN3vnL>5%32 zMOW90k$Y2x@9_-sB|nO_j~8T=IaK%<6CPc(r(XGu*#3Cd5Fg_$#L#wj0aR|DOdH`m zstk^%)>D5#RHYo=?0T`~iBxgM^BL(7@;p@S#8~fy)96G`?ZjZn6MS1zsexGs6>6bL zL8He{^lAmefOukhk#pn$Te>cHa zARY?-s8?Uqp><UNKzQ5z5*@vsq53Zb-BtD!)Sj!&Sb|WE0+e-V6xC3|_hfv;z4~ILdllC` znKA#(aLWP|53u5Qf6%jKB z;zUks`tTNp`!vcbCpowj6Bm2fqbD}LPh8UQ@)gJR8dGm_CRr=xJYJu%ZLIt^7U8EeExs+aDl zUWvmt#N|UQN2o*I4I1}Ew^vMiUal>M+3JxW{ax_q>3ct$pPxDe!uuf$d~Tvn?l#Xl zXnInJ_-kRhvLW*;%x4XjtBYaQTI=lXa;^2p`{IRHvWM3ViF);K5X_80sbzN67Iph) zw=z@%REYiC2am0=I-Cr_u?s-`fd!*>;O|G9`F^UmV`xp2X(OC2PI)0`VmqAn@AxOX zJFF9lnsJ@(0Kx*=V?b>>>^77WTsZ;_Wx-LfEDeXDV&@Cef_Fl+GSjbO#VeV3wFl!; z0CAO=wj(Fy_3CKN&qvMsqvl7%l{@k#Zi61LlP=^&s3Q_@?7_w2I^O~4X6w>s>(VTj zha>)}%Mar44ynsDOBXpSJ}WANX;{4>i*%_IYlAr{mpODPhAy;%`mfj;Okz(f9$5|^ zTg06&X5!;H-kp+17s+FSgU7E3>}tW|JaNs=JT_HS?y7DIN`EP5+b{~6lvVOkCu}I_YaOX%nhhW6}0GW2UMfF!0AAfVp%0zmy|smWk)-z zG|N>b-LBH>prI;_IbN0gegDrYJ%NZ%^)pqa4n#xZ%Uz|^hBHOVO9k<_IMg03CcacS zRKrD0IZxo8)ZVDYlSmzhSKo1v(nk0ys7I^0OJr|-TD<&{Y~3soeyO1Mdq=w#nQTmGP?k|FY8hR&FW%LtjE#K4jqKx1l5!+wM8F;8F z+Rpz)oLhjp_p^h{c6e2Cl7|I*HAx@%g*fN6lJeAuijy5GE+my4ex;{O8{s`-HHvnt z#m-SVb-c43S~W-$cZl{^rHN-seQtH=GuGDUr5Z~|rBA!mCx!GGRDlOG%4SF2i?(l^ zOQ9!eBLFePrBb1-HANk?ur9?=T zYKL59>PeEv>59jjBJs_fl->>=&)PhSC6Don$D8JdXSl zoxM~C=u5?D6>y=0jFUyhF!^#UNmR%fq=SY^ALn8g29NdOIv=QpvR}r=6Iz$J{(5`CV(vKPZZ?Wi|a(1KO?^K=C%zWw8 z%UWoqR15(M9!YyW4lnW@ZCPNjZzUxt%2LZy#Db%`Vl>^W@iii`t;7H$%x29D*B$72 zyGJcW+prXElS@%4EQKe%byY1DJ6|)22fHj5nJ1mV?!CdMZDgY zqi?Aee}9o7cI=fKiAkdWyJ^XD92SU$1qxvSF>gR6XMDRVC?2y>Jr=I-%-QveRnN0^!fC6pW2fq<&OrloAq)50&tjMWFGpwC^ z!UYj8%f_QKPK2rw_F4H2ns!zYd{n+>e^iC0yLRxDc<^F4C9q|Pf4|qe$!0}uyA0Dm z{YstDyqc#UpFmA!d+z}1^DFMx(u(Ri7^DZOOLYEzd?eA?YdfO*j_9x*w-t0s&4|iU zCJrl5zQ^O3l`P#v_TFsvkr=VJA|4hRsR~XN7w;{`=Je+GOEtGmC zJEf1K)N?4+7h>wfiucp05swP*he_g&_Y>F%DwYJ)J#A5k@Y!h0@2g%(kIhFF#q)dQ zME@T#;)C+|H_D<7e}P!@LA58;k543%*~5`cc;rh;V{ack4~X3#3?P{m;>ZVu1bhkM z1qcEsekk|X>Oh3%?_fcDlkkoY2gIN65aSiQKdfapi!L9@4%kbyf0QQXebin5d7L=? zqjF;TBXCLL(T^%AF%gLZ{q!pH?HZh}_&$`g?wex7$K~-o9BiKwYd+4y$CB^-cmNqY zW}Nu%N4etLk5h=pe+B!bK+isw$9l=*#nPw+&LJN9H6!zyXU$PhVSq*9aIW$Dyj5;geswodUbo&F6L|CKu7j+4@< z!J*T1mrk9c{fkUY%tybFz2E0h=PX+td_wofPz6>R*M^GYuXQL?4zvJOG$?N}&|GzVp}q7=hX=m*R?6z9y7tk)20D)aen zSD7qFnb+(xLuHwnREBK#>~48Fb#zeFb`RT>8IrO_QQp2=`isvUl-Jsn{}ZdfN@8h5 zNo{s1^iXZ~6+$7|gP7uT`fkztn||?|9DHVpQC}u|{QY?)cEHrW6gh~`ut!D_?tS3+ zoD}k*NIW3Jpb?f3xkP$E?EE^7y+~P9rvgjDSq=$lQUb0S{VX|Jn=mBdE?dGXz1QwXOAjzaQ_ff1NlwbTBqSdZb}Pg^KC9+3vFTf5H>;z zJ5>qW;Sg3Rg^i^wauyGZ#IG}F{#YDsq1%op57(~GbIJ4A^1cD{zY#&W*Jqg|f?`p> zL;ArVXh&M_QjVj|RPn<%8ANa<2pG%-Z{1pvEmFU&qhr+B!0r*Jd^^K~L<oCq_}?d{9L&@MWf=bD)Qnx;5|=%mAAf?Q;y;Ub4<@md z;;VzcLcCK`;_i4eD!Rqq*-_`m^Tdkp($QvDeK)=u&)L+;H5Ikvu{MeVJFx^f-hsz( z!M>NRaJSh0eL+g7DB23wVK$?o`VybDtZlg<7t)PyqRb#LwOk{tw+YahS4JuwU?T^%9Z&3mNUCUyAX8W#~a-)+sSX zFBe4ZxY|~_{op^1|F<~&i>$&D5^3)~y(KDtO=I6u7WJJeugku3gM;O8u%y1TNsKy@ z#$HjBgI*We9R3i-9mGaO7VB_@s?phDcy`Msbh6cstcL45{MJ5Gs`KNC0nKBf>)UsOX6b5KtqYR3sy zScHGi>~;iR5g*YMi-%>e=<^y)>7%CSM>|?4W&qceh~_BZALBNLbB4c4rtuY1sCJroH=KkI;TeNRrw1Vp(lZOA{Z~i%wdMmEyI=Fr+4xu>Duy4t5@r59 zm2vbVQ>;5WqXZYALou`{8LE_%dQH+VLeG5%QdYu)NVem+>w}xuvC}HFQX+2FaH{$1%d%$8bizrDG`!{PN`)Y*9n3vY_;E9Z zu?c#p)Lh6|zhqE+OV=7~wnVYPydD%4c*LprK64ztZ%`@ww3JF+V0O{L*H>&;vtkC^q^Mx2zOFj7toAoftwb|Yo@$C%D;DgL_W7#@=dx5#22gCeh=67Ku*+z3kS0=qe z*Oz6WKgl8LH*;qf=JEKd_}j$Vwke6aSf=qMb%>f{vaT$Noi902^!f2iQBN@DD|umJ zq0EHPySlRM`0frFPnfTFrRr4i>s&JE-UY2DI>9dAu8tR1AXRlTyRnJPs~F$X4Ylba zQxt`tX>RPwGUK=8Mh$nWRU2F|t#V2F9H+7*>3&Fh-dx=swfV^0*@MYod!(Z_4}NKW zKAEMNpLJ(&Y-aB`mOcG!hlq5{_!H6YbkqyWZ<4Bds`)P@!0vElzPn}G2%iq#*V~?P zCpI)y)tchiq{2XTq#r)FOAa47*4~lIT1z4gye=^h$D#8sG3P^JD0M>*R>dYs^~n&A znTLC_%u&C1qlUN}(?j2XXj#KAc5o&w^JUry{|M=^=CqzLi&yfc!09Sd$v(3E$vhm- z(pXQK2^9|Ygk7F+Nc2JC0JlUuzpZmg{08U1)DT<1TzPM2lP~OrCT}yh#^W^?bQogt z9xT~B+za=#o{nI%WQ}L~9P)b|ug3W3fhEtfCDmBi@=t|)ioMhdOq~YYAcau%e|a%l z{drdPFOr$4{_x%`d#2YRemCX=S^blZHRu+!;B3)CwfrF|E-HS8Ej|e@c)R?c0}lYjStAQ z5nh3kN?)~Eevi2*(bBh@(ic|`o-{WmqQCq{R)#ujB3i53p=Jp4k~CLzdjO7qIDgI| znv`B@*;c4%<8UApA>hz9?X8q9jip~2$gX@D&l{mfICAR?q)yE>B^ji<=p)(yGq%Vldj7-luYop!#xiUka;f zYG%gB2>m7p{R>3zh^x<(X(L<-x#}(f#&&aTa3nu4-nvUbaw&WWG3)#)2dhYTN1coL z@aQEk+kYOxyf&5Pp<`}IWkaC5LznX$x?D}N9Rs1-j89`ZdbwqA6km|Wic|JwM|;&e zgbOkRHmCJtNqTRKl9q|*2IVsG2?wzc#I#IoGrj5Pu0NPt)0o_~oCX~N_P)N{>AcZV zs?HYih!nwIlclJWmzs;xSdy8L!Lm}$b`(gr#awNU%7B>rWC2ns&QfWTgZ4Mf+N9Fy zmP(gLn15q#%>?u2DJ(gq&{1G73Q&c|TG}j%Fn?u-tZz35?KYcvp2fUD($X&NeLGzB z-QPcI(i?0Ef16vgFgs?-Qq**rtg38>gYYby{U@}WBK~<%_jj)xCn!2Hixp42(@}IH ziYC(_$ipCjOQH)Zk-^|;;JH{#sE$Bx>1~`2(~!Iwia#p#(qFf@Q$v(VTd|wX`2H-d z&sI!QM=#lBcf9A!m5D5us8XXAZJO=SB?h{TC0%f5J#;e8?JzLuPmhEqTUXY;dI7Sr zu$JlbvZv=kAG*HQj&lv#iyUk7+Jy5hI`^0e9SC%EPn{yLbaT+Z54769Sz7w_RgiztznVb^Nigug(q2(ZGnIfAf zs|q}nd(iCL*FFTgS{M8+r%$J`^f~XNFxgU1#>o;Qd@{qkPMmF;w}2y4;0*DwkIV!3 zQ?e(@L~wvVARHW$xhjw4nC~Ppd5(RqdAL6-nD~T4Qy(<_KRcgavMgHOb|IB%pSEbCL#ZQ(FvxC8kHhkEbJPGP597ai-s&6EK9hZ8h0LJ7 zvFCa7vMJd3zHR{Pu0Olm?A;&l${NkhC`Z>Oo<_Oc<8W>;!vk0~J(9Q=6w1uX8YSkq zfo!mOMLzR%Ul08@;>*FNZy-x&L32d`%jteDkl4nwku4T-36Sd|$bdwqOb2o`eRz0% z^luH$FjwTGJ6$g+;tfzN0L2k(>xRrl1Cev7%wgr`!F)DIU*69=rv$@xNCB&5)2*zo z=Jf?IwjopcFZ;}o3s^BLHRl(xJhQNnRb$agn(A-tGcPMdR;)~xJ&h=0AAJLrq7%ne zVY+ntGZv?zLAtzjEAuPN-wIhS`_}Xpvz%VHqbP1nB!@wEOA&1GfyA?G&9z0)?xAAl zVHca*0b^}OCE_VuqA&8sVAH^^*#lP2Dag4HIi=B@n`KVi1mv8K9Mc?CgsA-r3tI~; zeGT_b3wy4_cF6~JthtWpmROinV5%+5bPLlJm;vTaq8Vdhe#88UH5Fk7TbQqbiM22Y z2cWtB{$BH>5|)i1gOXid0l}B%v=S7Fu?U{pYrb8=^7X^%<~ao{yZ3#dkY86lH<7=w z)66YpBlY*Ky!dO7M_)tD$F`EhstdlL#A=#6tT|WC=Qp0!jiti{BIS@D^+9( z_}&1K5_^S1+M{WcLv?m>pZQ%CtbDeu9NL6hY`&F@Pe2XIP=g$71K3S|qMg-=`Kv#& zb|VT8nbXQ(>N+c{^boRoA*+4m*jD&!oM;FwH`WHZd4hOktcR3Cx> z6%ZwUB)xU1IckW-`=)2a10DIp-%E}1ZUXO~;7wa-bVr+_35wjl#|*EORMTJgOmk!{ zlUIdSm~l0%plpkS)2ZM@>xDN^lH6?!{^$(dpi!m2?ngToyBPhp zP#N5~p}$4$Eb~S`x_%_fl)K7g-1L8x*~xN}SbH;tjJbRd|mqe`NYl>ycw%`E|&2!HTt>sdN8 z4-RA1V^Lx$D3pm#pwftajxiBB>pb8;$gnErg*oVE1Jv!17cI=S!&!mnBV=R$LiX*5 zr9gHYu`DoJ=?}P;QWMnz(b=g#jHisPoj3@QPQ_#Ur$J!w|LMbQ8iymo!BoUKMSYmX zQ@hj<^z=we(B3s4tztdQbLv<(`m=fPeqmt$UtF8b)o0O$psl+Rn$7KXY*0oGTAljA z80tqDlW0$QBelY0^{k$TWBXI~aP)LFC)cwP;Ih(C+$9j>(X`vY2 zKxG%7{%F<#EZEt<#d-N1(6OOUX4 zL|MBtg7INgn5OI&HP4=@1lv!zRCoUMN$k&2FSBW>UY&PqtqG_b{r%t2fAC4#OSQ~s zKHBPT^$O42)4=*$N>B_y1sZU-dEL=YOE|1acskHs2ZdxS;EOqQtHElKSl$l7UMS@S z-B;MZ`4R#T+=#s#0e(X?_V;&xh_3}?98*fdTGaN#PLulFYglgU7wIHX^ zCvBmZg1@kYwnX@*nCr%{^3oX&z8d&aII(IUls(QC-gUAtxv#@dNcYtoxeQwFVDkxX zic;(}*%En%EJYg(yHN_S^5uHEMrNi@N6dv5i4G2QF#`i#G(Vm^HQX1Om@F_5R+rMW z3s`n|=e`@wJ(!*k5iMXEG(H+Mfd7U(Cv&r96f5lmMgHqhgd{b6hSDU3yzezoUw)0- zmOKUOL?mP8IE%QVX(PDfX!E**-}$yVzS{fGNn1ztu{&vY8_$ZTK(S@uz26Qr7*0#& zsPT8>^|B=~YEUccPT$hP3h-l~2MsP8;Eyr?XgyLUmw($K^PCgdAi69^ELf+(AMRg zC;m^Fo!g=^Kanz`GXHJMJjs%|Udp6PyWgS^hN9e#nzq-vw5zX3wa(!FG+1g1i1vVJ zifyp=UU<^6%e-qmleYwA#kIJ|Ex}&27`UFK*}J4*-bnYFXzNfj2Tow}xw0vIM zz;b7zM6*Npvt7EU+q!=Nnq2gF6=so-p?Bt2T2*N5fs;;>b_lmqZhz5ye*zmc4qro7 z%~0bIF^O2(j)RK)Mi*+((%V7fjy8Typ~V3XBu7~XlC!tbI;QBqiP6q{0+vHG7HN0b zUHm=MJK5T{917;0V&jWx`i>OyoUyFDKPo-|NLrV=i#?iRE|_F(oF#$;_98bRzZ>t~ zI6EK3DGpk1uS;l3roqakWb(JaJs$P93*VFe_7a&%D}~VGvOal^`n-b`0M)1AIEu}S zaNX(PT5NGWAyU~#kZEno{ge87KTmRz7fV3O2+v7ODd+_ zh&x#d#^hA@?U7eM51SjOSu4X?kJCP0ehNN;79k#EYq8BtY{UR;lf<-BJcM{-r}%D5 z=yNiIwirFCHYuk$_$1hT{1%@(B{|I|y1Dx#Y>19?&>lvNLkcdk6kHooaQ{|uLnwb> zo`d!s(8{GNPHO0pJNZC_hplx|jv1K7DydbsZ;iHUzSLMBoh;wfnORd=2DR;jTj`@= z1HbMQt^7@3PRo1D{&+40=C%06vfyvCau#+0`X$SEF_Ht#K}`_ik3PRCO5E=Sd^bZfFV%ze{XPUU(B({eDSzpo(A zhEV3t3-AkCuR zwM30O-O_rc%p|k!ZJ{BPnC9TRi@2JJv$4xMHNxac2a{}z$?yo1yCsv9{k@}YbAzqg z-{$JM=$M%iTE9iR%R#%+ru{VNe$FKcA-G4CRW)Hlq-r=nHAwsJ}L$rh^{9IS@h ztTtJ!UX8LUaj?4CVzo7zo9f7IlDU0u$CT_m2z+dsbr7hT`)090DTYJp511AU&<^vg z%C0esW@Ay81By@{{UMEGpBZMDD`4AVtm9wxAApz_#D=+=6eUuwABplV*ilZ?x4H=b@SReEZ=(>EYSXM zjHxkCT7k?) z1VDPo`okYV+FrnVZG_o=3ajwoW8*!Et36Q~;QBOi#YA}-xYnDMr?L{7y@@9a_OhPL z+8_4wbnL9xI@Z-&vot=ML?s2YVrNGSF{fWY`zJ{;ai$WJ7WFK z=cch#ihnqm(~PVlmFw-a$9#Amt1kBAgYEcasItr?;sp^&b+<1@oao-7=O+am7?HeeUgln&86( zbIW{0Gek#I6`FcJYtSD~Fmo5MX<5x0mVsKV@vsrAJxni2?-}DIWpI6@k9p$)eAu>` z`6ZNMzP5n%X~L;^AN~<^2`r2aZ(KN5e&XgznI0QH5lZYRhz$qwyvJ;@1XdcY^$y#9 zi}33Jgar!5%Il6KkZ$|#B0h7$ckWo(r&r4K*l-Q;?d1NO!V8?up zlVo@uGIm48Ya|17_ENc7GZOei#B(-e%(i6Akm<4EOtW<%_R@o!&G#3w+(zBOY71CB zOsv)?Mp^k2_%&2?I#^A&SPhZsvEjd<-aVj|cEsmF=w<0r4f=v?`7?;k$zXf(SlRN)GCel@3D`PE4%Ilp-0fp`vqE#lB33vv*q5ST z$s`fP3LZ!d8o;o@V)!nu9R&d2dK`wkF~`N)b=^2-Z1|DQ=68$OvMIqN{wEcy1)JKj zVIO+rgEBofd=A)9gb_g3iCQ|D)9tcA9q8*UvA4_g*zn@b=3R@~$_jsSMB8nTMzy6& zZ|ag3b^LQ>+6WIfM=W8J7d=g+3$ajKXe~><^b9qI@hb^mi#5kzGv1S*;KBMsS~`#t z5p%Ue%pJsbF8t?QYlCcpOdH`o=D{T_FU5czg0!GhpAMiUwCO#Kr4{|$!}1cvG=8DQ z@8Eg|E_b8u#i|JHI^pipX;#!Tz`Xf1mRFQ=9G)Ip2iM8noMJf)0;#-<`6J{ccL6!^ ze;xd(N$A_GX2Mc7ggoJCkD8N~vNHCy>0M?;zLOs{w=8AZi8t8l(W-km)T$>nlFW{! z%sVcWY7g$Th)ot_o71hihguV3Qun9*gZ`~_bJpo>(1c)=#RreTly<-So(`BCD=kx| zjqn0gf-2zbz_e(&N$O7#*ze$i_LlE3edfk9<@vR$T>B&B_)`Wr>ehxcUvm70Ic+(D zr}>f*1)nd15e1(m7Ly4wgQEJ)lp!B@9gd4S`a5kt@fM$ANlsJ7jShwWcvCJ*l4U0O z(KY7b<+v8H-N9(NnRqr!uErm~80#=X0A094?(Z7mr@`^IsSG;VQi4K_;TQYBvnbgnz+(hR} zGaDQ-zekMF7lx;03iTY>ZG9R16~`_%)%sty2E)LA>Txt!5z%1JrfAdGSsKiaXz;wH zf#%TQ(c@`=k8J$grNLlZga3hl;&C*U^Ifly-ONa4#!5$XsPb2lK((xo3Kcot|i}U4dBri(ck;!&pDlxR7N~FCBwys9VEw z%C2-stb{~bP;P`oiZ$G)lG}UHL%R%As~s%wAQq07bQ5G6-WOWC?K#$DtE@Yu4}*iVPQAbB z7Htx-%e-I}?pnl~H?Ly#)xoIXF%H4AU3H1E>+%L@YE17+c%3z7|J5uf?jpN7E6s7M z*=ghOcQ=(i;vM|Fu8Qo&ZKIPH1P46d))kPEp8HBa~?}*^5;bOOmpyAO644zhlw(6gg*ogy@jIPA^FiY@T0>q zbbyZ7Af9+PSa({fRp{^nzb!Od@4~d{wtOe%jhnV6n}Idf7&{HT~$%;8#ljbw{rt%hEm1Ljn?-cvnn2U0ZSO>!Cy$VhtlB( zqfJWp*qlwemH1!4iwDgG7qWcZgt}&pwU7B4N=Rdk>g6!jGl-X_ z+qI=xfSN@M<#9o3IPTat$g~me3bjhjjEh-yC7$T23N3Y1Xbn+1I>JDiHo`wVXkL5~ zt8K#HcUQ$GJBlqNGRMg1Dbx7o8EB~g{6FlSe_T~n*8k5r_wqwUMMVWfxhg6uC@TIa zQLlzdii$>MWram$W=4%uPFY-w8Zt9(QQJ!GYSfrHg^i__6-`vuSW!_~Sz%&1MWtmW zCEV|OowF}qc$|6ueE#|Jdg*7awbxpE?Vo3#efBx`euHUgy3z8{KD+<$`|t;+pSu6N z$d*If`fKFkqdb2y(`5_lA{>WmuoUO_75toFwo|MAVh)!Ioc_1_p8C1hJ&vB>c$Ej}eo{+?Ui zyTTkV4SMV2>irewu#T^w8hV^{wd#1Y*=z2OFwvzfz`DqQIEA;rhv}V%o-7^SWNqHI zpM9;m6tfg~(r5ONV;nOn-s}3ZO~Cnb?K7$d`90EXdg=`j^xo%%_cq?=G=W4spt3t6Ol|HcocZLvhMJdORw!;=c8D zd*!s@WU4G^T#{;^*PR|#4L`FslWMs1_5bOf4fb&NhaPj>&v{)hqLo?vKnHK5UEhIJ z|9E7h!eySp{xQhpuw9FuZ?Jy^vcci9y21W5WGUe?Ud0}SjGlDTme;WRAuCP{7aBwT zy%BZ~m+{+|QrY$agiwGyrR;`Go*=XY<4N;(LKYb=^QHOQA(Oi>yCdiynAuMSii}?e zR@3`gXIoj1sSW+CdDgp+sh4gu`&$8CtUf@s|9+c!ZXWMY%K-(aCl2!;nB@Hnr&Rcr z5MztTOnw|U)T2JGu;(kgcU1)GOko$RJe%jXP;D$>kY25xEiu#ncjv=foc|-txlf#h zy-%NJ^RiFA82}*r?JNwEJRIU5~_eRMbkLQstGstB2Wo?^+9)5c)BIBrsmZ{V4 zFz1*BYSkT_4lU^FU&!GqYkA+};TERb=n~@f$gVMp)TeitXZ)|V7#46!OTe5yXr@{? zCUSrSAyQ52ZQk4Xq`LaAW^Vg}IJ=l;L05a@O6~irIlwGZ&41+>J85;Uh#`-u0i~SU z-le9NnyD#a_13M*?iK7ECi~+!%CcE%9UQ3qrDj}`XM}&9WL8Y(#duYY82WkiR)zG8Of~5)j4KgR4rk!M@Yn+@*Y~I^=FM5}R^r|w|mttIsaDGT=jP_TH z@*IrkIL1Xb&vgd9*&#j8Xf=E_#>)_9hlKpnbfqX?f$ssipk zF-|Bzn1L`@?0!PF2pQb(oAm5RwQaST-0L}#c}nASYcE@;Y}0mNgq)xxv?3GZ|!#P{ldGaoU(OB2nl?Eysaw`C8Vb~gHFlr< z{cdxl^~NSOY>nCLe@rTR`ZV~Bm~<&p*v0*m6T*8NziH)gbla%(RKmnCx6Q;*X6Tu| zZqtt6*O*&ejL^sKHPaGL4xCDZ5h_a}>W>qAS?arc%>=${5pkcHF|Li8{fb;j)jPp| z^bg_-TZ*o?d3)Zt&&>RfnRq7hsW&sBi+>~L+`O{%jPuYqFRDYB^=p&q!82H_vtVzD z(KAVnFDJ%p)!F6dJ;0%IbIB}PQO?j)0hGe|M5s;cZ-a*9GWSf5mbW zv8ar7RCbCA^y_^4VLc1HBxTOB0;al3;rTIjyD}G99!qg}ErC~6+O0Jg$z!D_#7ck4 zMKU_u=Dm%Vs=GzQBK#diMR!M0*(EA;$2T5P%@3K=lL8U`V8zX@WW*Lpn6u=K&1K+)?M-l@2ot)X9+y(sEoQubo_)a29NU88MY_MSSfrw+W){zW1QH3u4THt%ihr~GJGbN=`NHewL3c5O80_oe|Ri$bW42SawDzx8&5gVh zSGCEE=*|!cEmi7xvS8bI)u)@x>xcE_Y+T3(I;Y7J$6z^gDZ`mZqVpupK3+PU{r*4H z9gmvHIVZc{GpF|&4{1Thz>Oy$-4{C7>DQD|spJloF{!w$hIYbSvFbmrm zJZq!aAFNXkRG9Lv+A9^Nw*yb=>N*7BHS=h}*rD1gSPeeA1K=gW^$*imYG-P2n7fjh*{h7$Z zZZ0_a+|556S=h}5d35s+K^A^!jGO2- z=b2XEI@`_@@4rV)-NM9G5U+~2Fll`CuzF~Vd4BW@s25ng#9H%&*|Gq|Uycb_(|HOtlHO7l;> zqaNasG}kx7ZM-Kl;Kot*O@5hCz#gl5uhLAi0{zsFmAIIu+HEtFFPtqF^r=l)$=Wf% z)NtrQd+I1N3;O#5yq?h)9hvhEFfVRm{-NKLnLg6c-GHuab3BTC6S{Ue zY<2V*9$9Qq?fzkoO1_ND?CmEBh#&r3$irp%1e@*Eo1!lGhdF}f#@+ugdkuabU75!u z%`gV|OQi#T$uRrUd4(X;=GoO&@BPCpOez@QUnG)blM_di?Hfe<<^_70n!DZfW*GzR z74#a3VXWC$H+HgpY@$gHN@RJ+QR&Q^o6j!N3+s#xfFi>@V zmKK<(20zOcw1E9Cu^WorP{(es*g>bMYti6$rPL#0kf?S&YbGUm`7oXsjKW~lWcz@M zeQN|AqmDjnmPQ+V4UhJmuU0;1#z(XHB3z!@_#Ce%?_2BiLiw)B1J5zAKYxP{R5d(j zE{ygLwH5oTvvgF9R^EayXJIwu7AWhx0lY3K7x_Wpg?*m?dH?9s{sp2@N z71I5j+h{zX)H^%PK_UGlPr5&YLIs%THZsp)GH?G0;k}IIpC^VMb?x(}XGR^|cyHr8TyF%OhD`VG6(jCjH*&8ku`aiHp4p%$#g!*g zfxkMBhi#j>Vd}HzdG_)ziIIeRuj-=`UoZ!Gy~F*FVJs&)4qWU^@N;dRFYco&M+4vE z=$s5MQ+jhR-J9!%`{gPfuU5W5?FZDx7tCJ0m*{s*TWe<6nwI(m&7P}p>LKEGa*@Ni zMCYy>p*rt2&pDe{gce9i6eUwmFwr*eZCr$1O9L`%9C-k}`;5lGefk&*!99w6lddJR zYNS6f$=mqW1M2zRW}neggOcx`rDiymSfmRz89VXu4*ptfDV*3ot2(|&;U=i`7tOm^ zhwXaN>_4DhpUV#!`db-h*oMoM`4WbP>I+!M9#B(W;$p%+!Zk0M2|d5IL#IgKMnbWx zpdeE{@{)OdT2-dM@(+skH>%)oP8BS$c|PBdet{ef_Bx#+TTOnMBM`PoN;{n|ov15c zHj_s`j;0iLs}%N9%U>Njk0^zGl%+Z8o4DZGrczi;+o=~ZHT~-ImnrOGb!C+~KfhqK zU!lv2qAawcxJvjzlXnF!Hg|2@L4^31vzF3e$>DWFK6~#E&xg7ppMR+CuaM7pHTo4k z?cf{jPmW$i|oWhbhUGg>fiQPLX zO5J#-!SR#r^K_$aesbge>g`v}3uX?%?B!yP)w#G;4*Tu$6yz0`cJWJp7FSl?Y0d#g zmwU_ilP7i1-Z?83_ZTr&VA4`*A3t+1$2MIN zTW;2+{(E?-`DDNRGO@~eorTEvY~>6hI%)lLB37^VyAWVzY^`M9=h@s>2&Bjboe~0%l7N8EWnuW^(#g zorA2kY|rd~+%KN=89ebk+2*sE-qyci=2<@W9Nu6P<_=8lOxRP9Yhfpqu*dYIdg170 zhwq~sfrS`{Z{o+=ytlDPE!<-k#K~aAPpiSIKHOuTYfe?^Z#y(TZ9J$mu{=>N?R${~L9gy8L3GeT6hzr~lQY$` zZ!vH`Kt!3~jJejd+{%Of~myGu|>{ z)Kza2(I9pE+h$F)j%cB}@EtB6|Grn<@{T!2_9@C^teMFTsePO0_r%nQ8uPZHQN$vvmrWN_ z-?9Wci~D}5Cf;9^MZrd#*_l^$R$tZ-&~}ixMy46rny~Yzi&gKwXC`#-gpI^1@3L*2R~& z#gPH~WlkTrA9lupuJ$uJr=a|lA01joR!ig5b@gu(e=avN=jifz@O*OlAKuwckSBmnPTl;6E@fEZT|W0LGOMav%dkq6D8q)8r1NIIUFInD+6QKG z;ytKHh1z$uuQIG~C&OyrHr4zA8|77TCv&Td^B+LvYp(W($g!RrrEGSt>`8>i-_bHP zyOxo3wYs|2OzPLh!~dv_KzH?IEnVSU^;)f&X;mib=fNM!mQ4@;tppgl<+jVrhQrOs zLbu$u%;@P~jx2P`ZOaOJ`u~J1bjxka*nC)uEOg6l%h+JJ5*c08-gU8MoFOel)^f{j z3+v+j7bEN*uINqhOC!aG%K{1hvyp{vxouk`(VvGbbjxkaIPEtRncQ;wSaMp}SmQOBfuZJ534^_Ne5L+@^9d8?9!2VrC|>FET(h^xmfoi}yq$ znL?@cpKw+*S!Zyz&ftT4!ZN5!_O}bGH3Rc!#hmFTLUsI<+d!X34gZuKtY7a@Gd?xX zu&D2QKIN!MmHimH(eTK3I(+XxidVTL(<___#nabcE1o(Sjj}N)o_#j&ZLC380_{c* zO+NMzq6x$Ptu48RY(h`M@@ReAXCOtrjL&ZK5K48( z;Ik8q0qQ#v%<0Pix!H4gxWf%=sAhI)#A&g1+Jvm7#}o`uGe0*I(ucQo%Gojdv2$1* z+K-*7&lJgLX#b9wgnXZ`eeVnR?HQ=P#CNy$ZGHO&st#XpnGd2Z)yFiTKlAAv&uO_xDg^zcjNrd{Z>ko@|S$sv4ti zp#LD5hE29LhIf$v3uIxFZH*j&`UF|nWLsnK)8e(r!Y11q!Y{@4q4b_OMpZC+mMA#wgfoT zzg1mZ$MmxPUa8Bg&x&x<2>tLCrFv!V@lKv-q; zQ|BFI&9_CZJj7!X8l! z8|2Gu-rG1}wYu@3nWmmPWZrS!$}@fQ4F3J~$Dry#649kh za+f+2W}MA?8($+`W{BQ6lnGGQS4r|v4y;fe8+hrp5S4?hu)jiN*IU&%yWaY#2@Pxk z)T+xG%n`j#^N$mkVYOE;8)t-YzuMMd-gQ||!tO;bw^C%2e|1dVU6Dyu+)A-c{)wz3 zGC8<-D@8Z?C$eZ{vYT)##W(pUG8Z!0%D$B<1@TW2SH3-O$ni#vI?gRnRh;jI(Gs=xCuY_021Rju83^ z-@KL3s_bhsYxJwsCmyu*<7+s}oT*7u4Q+@M3Q|UjM*A1zZZ-R?_%bf%Sekg&3 zHPK3&mj}&n{$x(;S?LZ;l5bEAks7x9sw;9!+)*{~XLC?5rhYrA+sUMeqqyUtEI)4^ zr&j!Ic1a2te)~8`SY@24E8}OWGo*%cB{1-YHi7lmfz_(X$IKUs z2ZhSW(#9_1H14jD87pG>&cMmCPn7;L!#A&2TYY3bPN6?i^k@6#b#AMVto=#-fi0Cg zPz>hz=DFG$AY*9!V)p9(TZ3+oP^_2u=KZAJlcew3CSC5E_q8&AH49R!_)Z7)@O-IL zABSY)E^IRK+q|6fxbs&tFSU++8noAG?KdQq=L83?aJurJY+lv|=5OX%2``{_ko%~X z>4j4s(v|Iwu zR}$N;Q<#PLC;hm6gB(=oWB#Ce|89EHs-pZyZB42GZMh__*Os%z@(e8bCzd~|rbZ6^ z!5RGf;5#{x{))Zc@yRVwT@Ur}?`FS=1<`){Xp9~!UOe6`9$8in!((s`zX7bbL$sa0 z_OEQI;lsqoAHQ=N?c$RH*)?V@674@9;~!M|ALa$-N_FQS<_+!4_C|h?XVzz^b|=_5 z^QeU<%u#$U`2G{-&@Q!7ALLax$N6lSN4{XvP^K!{ol2e%2r+No@$EhVcs`~?VUXVAGzE=+h&8vzprW45K>_Rp! zJcPzrj@xu;oLxI+RXe(ywPn#AY`pwoH3t5eVn0rtEGzIE?3?}?vyQE^KXDcaosFPf ztG@RBB@{96uGP5lUFX&Lc$=Tn_$GRi&zI!0@dj@{$ABX}1)}g92ER?QAFRdL{FKHQ z?|;mC!8~0pG_CtabjNxE31?v)_)a`?(q%P=d5M0umTkV>F455(WM`@YmNlGHPiI@! z4Q8@>+p_L6pH~ZAR=2C?q9@DzK=Afm9>e&TT}Q6?ErE}xG)^IH)6Y|=4BtG-XA8W@ zvqAfrHMGdb!53SGzeV@pl*UIyhdVfGg2}#vU-a%JCo8R2fx}5Dl4E$6nR~lUueznK zD^*~c8K3?kbJ@n>lXq>pkB&mhT*@k~nDb5IJLPuuP=qxq zI^eL6*&%1wb!zS0!?z4Q#;(i6c?XW|;nCvQ*V%T=TTPKxMs$_Kt+f5- z8k`rBpObGBG+iZbqYJ-5uTwR;iVe09E(rx3U@ww@KPw?mZo)UJ*CMS{Z=EB(P^yUL z^U!>OKfJphrPy?eA$Egvz({83GA#Q@PNZ+T$!W}qYDARPv(GCe1?XFw7)`Rikc^7N zrRs4kDP#&G^{eUz1wS;zMa7*m&FA!A10&~lontN(5`3j-f8Tt0Ay%V{=0rSV(! zOO!R;EZH$3+IqShtMKo8S?Bh-wK%9c6OQcK%f#a`jJv*KE;ulV*FB5XB}vv6v!0)o zu##?=gcYM^FNX(iY9h0rT7VjSLibk*EZvNU^PTn7SWuKYN$aj&2?hkDl z8;oxu3*8^uvVu7OYsfF$34S?K=ImifB-pF@^dEQMgrYYXeT z`?nzs-5=UAZx8=gWTE>*TNdcy{~NN<{h=*0dipmZ3*8^uvVxxe^~hv1t|09ERFRg+ zUAW5WXXW$ts`dS>vv@u4Xg`ZD$=k=L()wFHk`ny?l>5HU7W*nryDYW&DUGqWsEg1@ zc<$jFzl-bA5nAfJyQg`>a5<2v9c2H@W8`QS`R&x5!=!e?g2|UUFkofFC9vz%K zrrG?I#>1+qzjZUW0ym{t3F-fAYstByD@9YU6TC#w-R5~IUcHiH4PMyWUxtzNcrR1D zWap~u?H9B-S7h()5?Qho0h}eqL098};2HL6y|G#NGa4V(89zc>iLI%97@lM`bAXl5 zWeo~4v)bjUO7<^Re;zkV*p}xY z@$d)W#f{YP4%IZk>f6E768k4=@IWhh(b?!pt)3SOQM>2xlK*!pMrXF=J3HI*kK259 zV-7ZQ4`7E8()acA{~+nz(C_BxKV=dj< zOu`Db7e2gTSE=+t6s&(s!R}V)4YHC)x6=ia2VSiLElBY{C4of|Xp|G^`8Lm|Qqux*lq~z7tjqi1zk;{ju!UwnXH81AQu^K|n)Kn&a;sQ^gBNS5^*(B0D!~nG3C^qT zPPLNF-RkeDR>Gh`{)LjW?l}PrI@YU)e=mA3Rwj9d%X*k;y8+sToc#(Qa>vTbIY5 zyux~-?o~Qm*t7hgq}}Fe3Gom31MuQo>gyqO?GWl~NJ|*I)%qb;a<_5hC%v>F)R=YY z>fIsMVDoI%IK&#oY31~x*4Z6~w%Ga9-9rhV2IZF~dZqdAma6JT)pc{K?lha9*7%tk zk!DTkJj|&W565_zQtQ;sX;#AE*24AwW#uQ(`d*Haa_Q2kv<=LasW_-WHblO7XlxGC@l;9F+Lhn=itwJCbyO*~n=s${np zF-P2_ZcMlOj9!VY)YOH9C-yBfYt;z0+%ub@!o&R?K0Mq9b+`+4xb=j4a8i!b2RYOf3YoSYMjMS&FAlSM znk0(PX98@n#FsvTw@c93r6|p5Y;#e({in=8s(pXY*e_+o9Um5tkp#}km>g# zYju$|M*GJjYju(3puiYptuC@vqx~b0wLI~X+BQ66{AmbVU1WV@{DY9Sy2#dz@%Ka4 z>LSY#n%>A-U1S4e{Zi#^FS6fJog$MbUKeCoXPYzCwhZem>x&!j>vVOWC_Z@s9B)hz_03))|7}b_6~-7R6BsZtd)h1Z794FFzS!ryYq<$s?_4X#^9= z6ARmzK;-GgA)M8te=xXmo<;AK)nJ_~a>$j+KhpAa#KLT`P%n+N`dH_DslFI#jUP#d z;y_9_iFasb(&s{fh}_@>Bw3M4y40Luj8`*9SqWCB8`b5btZAb*|Ao2z(OADkV^UmM zD0ibYbyQDsnK?qnoV`8_Ij9=1zQjR~e}@}V1!8F2s5)g@lPpR)C)4tJ*v-$fpGewS z7i8IUWlJc5EcJ9IUH)11W+w03VDw$4mEp!{f=V7u!h`Cx(N-S>#zb`if-$Sev(9yL zh93!kfZ#>;6#@RVTyDxtnapa;0K03%)b1~8%V>)YeS;H1?~2>2)xSquBfFw8$zR8% z`g!pR)~WO{)}S5p$5?MiMP!Z`kui41kcrj@Kvc&fwaX@0)O0(Eqnby~-wYi_vgy2}bZ zh1cA$wEd1r)2$Qn?))=nP2DlQz`C~Ej^lr_R>$&_Z?~6Nf0bW;yWM)S_)&OK;p?{C`{h#{X~s|Jx3jaEkVy%L$Bp*N!Q7awDydt+I~oC|GTIBh>OI zte8$q3q4m~Q~2j4mw5^oE?cO~EB#1GpNDIjsVk;PPISxQC*Z?jAV-g7P3fdB^0Q10| zU=er(ECa{!oOLs}2iybh1NVc`S2hKYfia7z$wUIViarKq1Is`!7<*k)umD`JtSRUN_x>3_V8-?M0lmxd z1MUI&eMe*6jZHxh7;_W$!rxSk1Bm>aaR8Qp0nmF34!|6+7R&<=gY&@?;9BgGczV3t z*A&bG*MbYcN^lu?euYh(=W0jt2c*Qq+N3^e*0#$nI{?t6pC!NRv0j-dA)h9kJHhT#Yv zevguaTi>VTU=_y+-2L!h%Wwv>z-(|gSlEy8ANL^+5F~wy1F-%x9DwfqH~@Eo?*0Vy zIS#-~FdN(r7J{i?Vh@&p72y0j?7>Q~9!xucJ-0rkU5AuVBS$2fH^;54|;ya9;`Tq zJs88QUG-o&=uV|3!4z=Guh@fezcKy`A&MYMz{=w|5dL=@fMtK+K;$QIz#U~x6Ar*V z%{Ty4f&>628O^~Ga5-23#+c2)YOoxv2UD!(pnC{2AeaJXxSE66;8s_2aj+1=?ZyGP z8LR+}2poVFU_E#ObPr|tMB)HE4rYVvqMCz+;4!cS^hRS3mbSwl^mM=;+zh(Y$T$Xj za3`1zdOH^50Ade2P$ghqCmevQJL3S1j>Q332D;O!vMx9PmxI~h5wH-<>54s=)eU=a zEm#f4@_t@DxCnG}pMC^P0hf2j9?UF`#{on^0uDfTA`ZX>U^Qs;!T~rRbPuNqz!Wew z2?t z>_KBP_Fz6(0Uigd!MrKhgPTG37)HYx*n=y;>|%)H5QX60Y#e~4Q*i(q({KRhgY{q) z=pIX;({TW1p3@x60e#>i@B~;2=AYXf+zcKD_kcz7n}dhJIxu=10iD+zOa(WC#W@hU z=i>k@zo0p|8jN1h9IOPZz#1_AqUPWcaNi}(!PwJqaA|We6Wk2ugSmyx!DV0tSPte~ z)*Rdp?gMMVMVB`RkAaz2Gza5Or(lb)2V<{f{O3cQxDp3o{$d<}-X%BycZ0QH%+)vm z=Yw(MnZv&kW*1=(?g8Vnu)7v}u>4xae?COqbvOVw zgXN&{CmetQuolc&h68XN7&n25<F>o1}dp-8x9&kJ8xdD4{9e50kUyl7m zngq-Q8;T+FA+rC118^N!4p!WV1Mv7wH~{lj-~iluGY%#(-fzJH=mYb?ec&=Mp8}PG z3w+JNo#1A0A9xr%4p!YxpYbwL-9eLs#WAIH8i*orGgx&eod%3wMW+GF!RX0208_z& zyKn&R1Q&q|R$~ut2RDQB@5Uai1P_DxYp|a};9x44cMta9W^mCI#(zo~4iJ=qTfsPg zb8s(s{NCnZ16W_)9E>>w`2)?tG_VNF1!LAW2bX}=57KEt&qLUQE5N;A$~x>p9~hI( zM6>~W&9vd;5g7-*&Lh?Rz1@kEGmXL0#OF0{)1r$`krOjfm@$r z*nvxSGwi0b9(c7mm;r7F^S~2e5qP{BdvNV**n=^zV-IczkAcVDpwHwG=pOnEnDizE z0Oy0ng%Fz|O2GzjGZ_6AZ3t$9hrtzZQv+vmRRmMOz3(t{fm`2Y;sQ_9FmZw9?^6R{ zd@VHq)`AV-@sF^dK~sH94T6Dv1OUeEXZ){*@O+LTxc5s8!1)JJoQZ>a6v3*)&B1k` z=ey?MZm_7KImqWIjI}>dGr5eGAE{cf@o$m<=um3&E{m30MbK zfN@4JSPkZY^t0M~-mU~B{qga_Su zIF7^t7yz@u@+j=Vz0uf%p7z*-Tfu5D&;fg}BnJDrG(|`3!Q#A5IDkm&i~}$?76)Ky z7aV{!U^RHGD-OVdZaA1n)qyGCW*#ADgC%?tq!9EbU=Nmo72sB|8ax5kgYk*jpT+P5 zs(v0N2MfULbJR;eS$)naAIfc&!QbSlK5;-A|EiF= zMW+8^L8cR95AuvK*?j2wkUg}Ae@plmo2EwoZ1wArly=fj67mZE#iXglKl3~wEnTew zdo-js1;xMoN&d(AcQ{?W^t08&I+3nE!jDxrQvEJATSuzIW8mu1>U6L;Zwz;I=o^ze z#m?@;^Z>clq~ef!w0ym_!JPKR=cGF6d;d$i($4{ ztS(mmSoN(06+2F~{{{4pQ$qyfPg65~A^7>@)l%V)j8|*y^epw1VBrMyj$pwA^@HHJ ziK^4DR-dsI6Hiu%6ljHuF@UUyz$j?m`t}>zS?4rMoVybPc2*adZdpWox71zv!ls zzD^x&BnGIpGt^=#bKnx_1vB-Kq9LSyW`yOin)D?z9o?y`*R7 zI=T(e(X;-uZcG$IVU}IW$TaA9hn|)T9rs`CmXMzMU(#2To~3+cK~?`+lM535h&{Ml@h>PpGeJ(f?j7^Sn- zY|@7vCp~sqDrh3JMdz!_ML2(fx@DOjv2R75bq703Jz&Vor6MG*4)zG$Lt@D~X_Q_OkhSaX|ACn*8U@dKep%c# zBXT};Y(QOPB3}-@nlD0{u0B!gpffi%sUQ2f5~6m)EP|mwCPeLrseyU8k1JvN379-K zW0S&5GSw-GG*41zhTNk~!JW`VXP0z|t_csKEYj;AZBo~yxOztwz@$~ckj)?;OkoAv zvtgE3ht(k`W)0)9CN*4QsuD|>Il|Pzl){LcfzsKl9%~9733GE}SO6Z<%N|z)U9LWn z+0e(IR5M)EMIrR|t!lB*CD2EnQmcfnfKIAZTc8J3LswO@S??6SXnm&*9j!A?7QSA5 zY;!`4ba!E$yUn>&q(C3priO5-h{}e}d&Y@2vJj^98MRohCneBDJJc$nE1=_dsVzcR zJM>#Z*F$eb9_i{8LBBlgs6?gMw9{UZ*)Vy}s~HjK7ecRlK@HLR`(9A15Jy!YUcK9i zA*vdt8b<0evL43sqLV>4W|0?Fd#)mpDbUMbQr||n`dHgvQZqy*Pn&kXY+nr`<%yH8 zO05#PJayXhidq~&jF9es+E?|+dg!`;iswF7(yJot<2wGTjv<>KpHZ#bvk+!AjI?J| z2~2e;r2@wDS}1Oq`7lo0Fxy|V<92tavelc>uB1q)wAUT=$ZVLx*H!yy@(;XjSBa$W z*XdCeFmZ2a{-=+uF3(ZpokJD+LrJbG_WyHFf zR4Qs^c}O!uulP_dguNmlcYf%I3!%$CQbRgW?!6zWRUM=YA@hE$OHd87`D17L5A<+F zh;jVBlb3@icLGJ+r`tCLrar`E!+1Z@O@$Rv6n`HcZC;P(Cn=V1`SVFM%oFuU2)GN`&71x!M99RSli_rJe-q zVb+BhcQ2}~PN$^6ED15$Fts735GLz@uA&l{iUam&imHIF`byVEHB8b$tyK?Ga!`HS ziCEmU&f$ahRX8dII<3A*b(V_BhADxO;zt(3?5eE-<+;cEIvzuR^CproilPP(!*%F3@{^R5OGwgkF9`Ef%^2I{K(uC3J<*KdUW5 zS3@8FS-mB6y~ux2-wN$cCa7O*+o%-i!@uY-vSB>Gwi=yCj{oYIl|bkG=9pDL@B7U$ zi>!u;J+9vBO6lvNiyBFg3!~e^Gy`K7I0a_h@7g3Ars#JyqnlJ1bk-l*qy)wXW1CdK zxKD&~5w#PJNj-FQQz)0dR340z3k*+|oYu~UiEdUi;wW?>^s#1VB7@8bhVp>f4r7lF zdDhsVQzGSoW09ejCP8t`ABkXpNFd9>NOylq6yd0+KyQz*{Uk;}$45Hy zLTF#4b|Y3%B}k5hOCl?f6hx^lJ&3v*`goLj3wl~T^tkBe;BwQDWrs7#=@l6L-EgPS zQQNW4=cLOYF6w*uDJASjFlRBtQQZt3n%lJvGe$XY*n>#o)Rso$B(*NAU-WmfzIgY$g`nWcT_Xt#Xq#SlUgiv3H1I>PQDe;nVs!?qpG17b#A`@ zM=mgR@l<9#g6*Bvumo3+2NI-m2XbZYtlB5Aq)COY?;~l6kvY(@$xfz=pqC`8Vf~re zAuE#A8d2E{9q+O0KXMN=U*C8~%W6rZwmDFIXiS^k`!VI!1r?-T~UBMdy4+#a^?Pp_A9&uKQ_~(1+2VAKp&+ zCs$ZCqnn6HCX+cNL9q8G9L|b;?9K59pbcIK6H(i zFN2OAYRjX_p;r$L?|<8ooCudpuSK#XjqO|V3N3H1)vHVCXU9m7Pyf&9af6v})0@?k zGN3YHwhv>dbz?x~!}x|f(Jq7DIb7YCL`#%ImyB>4aXU2MfqY)%wa~F6?S_sz2AwrB ztcS!6;c`1t7ah84q~jnTI%$;71Ui3|)7{FUw>t8u?a=k3oM9eS3zL(n$NVwT%5(-p z+)zTvw5_8up~sDGRzuwsDj#Mo%v~KQ)H0ZuF;0Hv(Ai_uLwyK-J9PCJ^}Nuv(79tB zug9Q$W7YG$>7{9eF;*7=I%%9P0`&56x(LvfT3!wvbDAUH4xN3PqhAXh(DX6r6Iv%O zoe_4rqmv0;cDiGm54}gz%b+8)#_*Lj_RyAyhkSH091oqf=Uz3Pj;+`FX? zXa1h5hA|rr%z@rJl_wd_NU1W{$8YFqIeSOa6Bm)bV!B!?Ggm2e)pWH+=*`eaawL{s z5s;~8Iw2m0E;-X_h3E{zI@9SHsnD@A)DJRmK<3O)ol+cf?+lqu`dIFnGJN`2r8Cu1 z!K#^RjUXFEPYJHbRqqHIv&0Kqkh7e^FB-wJYnED?!p-Mu=>4;tZg$0181HNzC^#i^ zcI<9AIS1?|-JQpiknr@soJ?;Zy=E@Yf}C{cTA;VQq-J79(sg-_~gJ(qMhkFo!QeX+3w zg%kh9!D`auaIiNlgYb!OE9q6F?+;7=b69|TNngS9^HbYL6Fmy43!DxZlgSua;B>$= z=MF!DHb(IPc5m4OjInzTjgBIx3A&=ptmaLlrOWLSUiWLIMz@|-1ft*}ytZ>AQJ zKA&{m40dk{Z-z3`i%6gE_;tEw`N=*}N&4oc%@+sLoKE9x6rFiep$3KR*KqxdumdYI z*LU5}#kJJF{z-Q{LV7+A+hwPgeo|?!@3En~Yg=@)L>>)oW1A4&VP!}WlpYzKCEm~t8Eb)+wI((T=~3v{{%StaS2x2RtSGumsR zciy6#?ikFzVs-iuSK^qsu?#kz#OsJWveg=gaT@YH$g{NbS;)m{Hu46aS~Z0Ea}jj> zO7#?eB1@sOR;qV|-V8l%rTRhWJF1t9~N_sY@19nR$ zlRH(p){omTR&Q)c`d+aoJ;mu0M|kEld&4a24p|{ddIRb8t6N5n-Dko^-XN}eTy;23 zu;0nRRtOEfEM#e<=dMxLrMXTYxCGkA34$0WSbf!)YzHg4t4UvSuX-Qd$i2|}%2n5N z>|##m3dV_o6}pfSlh@~Mm}4!FAaf-T(tQuA>(X5_W~_itTHhQja0=wC(X0pTJUr;G zBYnXmJfnAf1!5zo>el zH|rkYrdH~naC$%rbYP2GJe(eo4IR5xtrEHr`taY?7U-xF=#r;c)3Fm40lk_ZSrwgX zXtojCXF%6OmsYAFLc1q0?^dcALZ?8xw>fk+bj&ujO5}ym9!-}(XKK0vI>(`-s-YKb z(?Qq6tYBABx~h93W8oia#t4E-fiC(-vwHUz=FDuECI3*XNQf+iPTTHGz9rBF+trMb zT;?J7Zg=M4YUq?_Rr`^s*F&#<)>$~XCsFuk)mtN6eaw9I?~$&g2qdZOV~S=Ww0Ec4 zB6JD#vR&f1k5#uzEe88-f4-&7YRvVC8xq2<^Y!R2e?iR{g{|Am%&=Q>=@kL#W`|P5 z+0a!ls<(tL6q+qcp-Z6mzpUD4LRW}>l^OyaRSg~eO4vfV9zp&q;+H%o;{ZC7JRldm zs`bV6*pDN<{$E^4)GMQ1BPT^#9h0Yj z{>5keKl$|IeII`GK`k?+-SJnWclZO&5=qwjsmFZBjUiV6S}qisIR9qr1|OaR8rQ%_j#WOKfH6L2kZ zk{)oOwp^=ugz;&{D@>_o3Sg|Y=kjF3&Bph+Jk@abacy=IcT~CDc@ga@M$_8-#gKhZ zmC?@au_{Na@yYH!JBr%5$46K@NALK1C-;eHVpUJ}bYDX9j?VG!c2OcoOm-)W0R79% z86jV`L;au2=xprNd9;?t8Vz4MdAF8#F=CJI_}1g@WLYUk)$je>!-zo*>F=IqjXSEY z>+il^a{dUH+DMpTQf|xAL<@9 zxHPJDc1|OAG1iW19ocB7t?asrh>u~q9kt=R-jJYeY|JJ&kAY=QtcKU>t$K1#w)qPQMb&l88 zw{Kmce$?sNSGTsa+>XD!Z#(*-Amy!2sf^O|9eI)M%`p0E`Qb6G{S4Rg29GUQS7f*c zCvG1x#Wu^;##d;i+HGn}hI`n^(tO8BiB1pb^z6?ad8L+b*K*cn?MKki0a@hn7Yeps zr#H+~^G3L5n{{gA2=|~azAqd%<+ie6^j4pY;M#S3p!yvzXYRk(Ne)%*8g8fZ*})x2`z~X(jN1O$j`!s{s2Pz? zt}*{oBS+Cm<6c%bj^g^4UB#N$JuPv&?f`qW{t2yLJ(cw?ojFU*&7>EV^;3&8-2>Y{ zLiSRKqTkd*nOp+*zwQKmLYrR`<)jzNDRuthaVLL1Ezg?iwfQ5a4aS{Xo_Ue#I+{|f zRg*`%dls)g%Q4^VXc_NlwIgRZ=4`asfBUpNT9-OBHV$feoxXJ0yEj<;pylyDI{rO6 zj2K<4(q6V){W#j)?#v`DJbtFv&MaFi572T$&%~i%CL-^`p_m4;>h=#k{7Qh zYx$xZTl;z0&ZhW%ot*Wa*H%An|8E$dBA4LT4RC^|%iDi-T0iGj$6csj9n3 zwm39u7OJBp7vE@S*VAZlwa)GCP;S>d#R-``q2<|6IPyH(sbM^)jC@y)WT?X_rXJX~8Lg!CDz!7Wo zSW(|$84ES z{tmf4qy{@tgoc!x0!q|bdQhZl{XSZ5Jnpq6q4{8>mY=xVk=v*6(3s)KhZyB&I2ni9 z_goSrXDuop`U;$)Va|FxY>kI-mLL9C!A{DJc(Vd10GDye%Xz@Y?ns`+o+p zmdB+!@_H@b>&UwrYuh+V;HSA*G=HP!j;D3LLrtPDZxg){5LTu{xUZA+wcEY4f#wj+P%e=;((k^-3+TdBKr;wEj(6zHeM>c{y^5 z(bd?g;|(?cp2g=sHm@UxL`8plkm0IpQ;OLiWcYoIM-6xzV z?ENs(e0DbGy=w9#>b*j19l6la3f0#REk9i8$k*!J{;B2b_Bpv#X}P??A<@-e=jb=;-7$Y*)ijJ0`lj6nE|H7^hw2I1NoP{k44ccaCvrYM7+u3qE%Ay*jfz zEqDL!=+md|ze}||uFVvBlOvyEWa`y(XjI>+4a(ltj&ueOX?giIjyzObPbt6G-E+i0 zb@HOWJISG@+lO2_cZHtX-8!yxyD5r~YO`bdiV(UkHfec$lH)EUkHxRl_0FMQ+tG3D zj<4(5@?$xU+^wTd)AB4Gb?8Fnb>u?~V`S@_i*vO>=1-2JV>*Lt)V9e?xwq=%?O!;_ z3v}``c#^m(^mRW}oA;qF#rGvSV>{HmkElN>}-rE1C zA;sdOS|jZ#tzkJK$nSeg1hw%_jg{%h+I4Z{%k+I{D1v@kZtQmSV|0y;*Yceyj(oTF zGux4OHDX?MGEUV7m#b@uy!bELZue2gE=4EHXa6Ox1)n-*9xZ=b%WDf9{e8M;ysYJJ zJw+tx{69c0H5sjE$xt~CIr?3V1>+n?McUvGJFbNt8ETUM@$;ShL-o>M%L_I+@+2MC zC@nXhb>z_zhW$4_r2nuZ4`nk?&CRCxa%NhxSy$skQK#MAsO2m295bJm|5eK?8XS44 zorz)GtL28ieJt1V$FzL^QAa=2k#{-rVxy$MNr=}5Z)*d$zUYM7@e3{A+~%qxp9zuz z>>cj-36<|xE%%IZ3Kp8t-Q67hMR}q>h<#w4aXbmqPyyZLLnA&_45Y6YpQcSq&vjg` z(3Uf_Jo{BG*L8KCmY3_UA{okGk(RG*boBEav2m-GA8%8{GFxuk_kr1^c$3zt{NAx$ zt!=Bce4oBU2z9@=wS4(tudSJ>_3N}eKH$jrYWeqCzBSA7KVO&SS4Td@DAD(_p@wWG z!LBxaTN$c0SDaJNfkz!jIXZ*xeCdvUCtqWdW-EEeNe&I;QCeOo?}zi3rx!JHW?u9g z5*+;!?d}{c_g?6=B^g?Njg}|vcl1M}ekF1i0P3&P-CYvy)=GJQcZ~OIV}7q?Ix#+` zlaK40$WUK@R?E}cv|qKB*Y|bu3{}yGT3-D(CmVS^PX4|L`8n*h`5e;*<0nU6Y#i1Z zgc?&0`%5KwraKvg8m+sQ`<`*+CEC#-Ew{gkkMDXdAFky)Uv~6Y>q?#;@>48wR_UP% zIZwTp!&PLlPWR}W;ZTMAMawH^IsQTgFVXU}@4a@(Li!J=5ofZh`Yp;S&bT9vS(a&Q z8Glm?Nxp2Sw%&iNwe>q%UV4Ee->JUXDjQ-i&Xxe&H=nHldm3n8@vmSbKGp z4A1Ps5* zoA;<~z?qL~t$lAeP8Mjb7qtBN8pry$mcOp$G2c4!&;;<6U516nbn>EZPI9OzB75q( z*7JZzyGzjW)jqE+X&HxFex%Wnhx}xzYiF`-%G1fadpg;KTDDNjt1oiop)y}@o0+^6 zinY1HzJW0Rrp#Qp?RMJ2H!+pw^XLm@Xleebc3Jj;<1*E9LO&FePj@0@(Aa;+wEX|I zb^bw7mw6n2mcDhU+_VrQSZIr3VxlcYM#SJ(lf(-X@BFdRn&4qsQen59T3fp+b4SIE zcyN6;^E^m$$e0d`ak-+xMyDTII%dTcomQNA#$9OM96EH~^E~hOGZ)|K`v*T>pP$d~ z=lg5dKOXw)Jm8kIMMfK!CYxV1X6PTb<}r#VI(wBkSBg~@sjhR=BImRcmr>ltMZzSx z+{v78rQNWG;&gVwC_;<%Cg}SJ8X*5>qUnOab2dl^SF_mAp)YS48dD+30i^Lgl(($N(1J~mnjd6Cm{yR1L;fpRK-bqeAKC|*H+(6v{3 zRB=6o>mAPmSwY*V*u-UU4jsHeet3he$vW~lxz7i#UZ7UTTav48(B_&;4p2Y5)7E+> z!DHYNQN{Ji42W~afWz3dz^Kbn(%7F-(lU?sCo;)9r_R>kFnjw<$&-I@XPJ45+o@ms zok~bf*`{R6oXj%Wq3))#&69ekNHuN!HPGnOdP1BbZ$AKTdRD>}Xn}OsK=ewk{IshN zmXSvVGxm`;=fMwt3Na1bS-Vi4wcbjlhQC8>n(vq7!6=-Xh4t6uZJi_apCa$S3i?L{ zj_u?fZ$aM_W)FBo44j9+1b&|e^(WxyEc}SC$YWoP)IUp}&WXeXNX|g51h{pS|LP-) ze7IKmxmk!Rxjv}ldJ2xRBM$el&e0g zQT3d>1+Y9$%S*RbZ5gaMNrT)_h(?N00e2D8Pj+0k#bu|0mL*!vz{4~|~HF?%# z40ziEM?*S{XO!bvET_?{C!k7(W+7TXqvewK>_a6FaN}4^F4VJR@~ENyQu0<#_xa>i zHOa#j2FtbKMiafJG9 zdS@Gv4+}D*FDOWLZ64Lr7|3?M+5C3}(QPlf*i?;}4i^?&rn$ffX8GXQ@($NRx7tZw zDm(w9%3XrII65Bgj9H^IONrZ*Sk^+TAH8Xi(K4MiQXF}m;xMly)>8Z#dG}9I29x9= zIXNkJu~Xn?HvA{`V=p6%RF-*&Ja`cLW^0(}(|%?P-vt<$%9{XzsJIpUsK7CaynQ7c znbw@`(_M9hCLB?{c z(vX$|Jd^XXM7zlQ_aG6o5WPaaj~k;_fnz_p#aYrM{=VcgU7 zFbqVK>jKQEiD;ozmM@zD#*t@np=ltWDu1gkxvj#Mf323cvd2J@OM^t-N-q8^{HY zF7j=;;6vnx$WwWtu#5at@Uf!$4+v})qf<(tM)AeN=C65UuRD;vDRPv^Y@DZl- z0`k;GaQ!Zfl+ATE1m)(TT#EJS6K`W%G^?apHus%T@(0M?Ay z_Zfw5de@oEThNb);Sx9+puy)f zh`C1eDF*OgfPNqm2ItB1vSw>Am;gR*5-PmzU0VawDW{MJZdBZPW4SdtQbabq5W1!G zaT|Fer)M>zs-uE@@HJci->HAfFN-4&pF@rr&yBT1t)K@(rkv)O!C&rUE>zj>o+O_CthO?zo zUTrI89C6y#f+~ualIPqCZW`x4=d?5%|1iaeLrBBVG#*o2Z%;N;<76TrVZR-0EAUmV~H}du@@Kw}5NuIQHr2p?V7tZ7ratx*8 zQJZN_WtALC#o4IOLO)#1@xWI(d0s2HDarkkt5oY;b5)4?C+8uwnG0*l+h2j7Qn(kJ z!6RbTR0zzjtAz#`OTfLHXI>%?@iuG;9UYWhU8yvWG7*bj#bu&CCR#zkm-Lf0$CgB1 z@aU)DKNM7ah7xp>UpfUfwC-DFAYUcZKZWo)yI0CP-PcL6Pmh&SD#jjwgH|e5NUkzz zm{zQbxg@-i`rSpg=0WOjA>Y;mZUVkc-gF&!J@wxPPZ2e5LU5FVDbAX^<>m8Uov8e- zZk2Ck(lsbfC;Omjs7&&_eQ;u`Wg2<2K&gCekD26_Yw;^{T4c~jCB=uIg*(%KLgdj+ z;HGd9@>PFDm>~}e(MZ1T5^`X%gS@8=yoCG(@QD281_+K*@D2@ZwvH)xA9)S0OmtBH zTk_+)Ib-y{C$I3rf073V-l?e95`8cCLHR}&9ZjI1FbIPn4gBQ(JHSnVBJw0x;6>!o zjM>`r;6(_qLUG*zqtr;BX=_mi6vSro`V-(L(u?G6tSY1bE_qJ^GV?OyPsqJt@F4wv zsd&Pev7#pp0m#KkCD5rQ=Ad?lo`-20Rjwp2oCt1Gn@(Q!Z+O(No=clKkwBQCb#vi z-ZAn8dJ4X9*4!&E!- zwK%ej;=Cge_fou)Jn0s2Gw2^A?^us$rlo&FUdoewlSPa?f6mD4+QCyq)uj-aT6hzA z)yRumdTMlSWYx!rsQpoW7tBKJ>nF&2E*t4?h&7r*l49$i{#e}I;+Fho_PLa)@z=4M#TEca#CxpJZDW4)I6WX-rh!)4(Og@q*{9H$0xY__-a{%mk0^+_clWadcg^r7Iye-FalEHDk2z OS^Qt-aSFCu6aEL=VIjEy diff --git a/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorFunctionList.c index 8353f70c9..d0b42841a 100644 --- a/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorFunctionList.c @@ -863,24 +863,17 @@ int getNumTransceiverSamples() { } int setExpTime(int64_t val) { - if (val < 0) { - LOG(logERROR, ("Invalid exptime: %lld ns\n", (long long int)val)); - return FAIL; - } - LOG(logINFO, ("Setting exptime %lld ns\n", (long long int)val)); - val *= (1E-3 * RUN_CLK); - setPatternWaitTime(0, val); + setPatternWaitInterval(0, val); // validate for tolerance int64_t retval = getExpTime(); - val /= (1E-3 * RUN_CLK); if (val != retval) { return FAIL; } return OK; } -int64_t getExpTime() { return getPatternWaitTime(0) / (1E-3 * RUN_CLK); } +int64_t getExpTime() { return getPatternWaitInterval(0); } int setPeriod(int64_t val) { if (val < 0) { diff --git a/slsDetectorSoftware/generator/Caller.in.h b/slsDetectorSoftware/generator/Caller.in.h index fafe99edd..f1a3a2821 100644 --- a/slsDetectorSoftware/generator/Caller.in.h +++ b/slsDetectorSoftware/generator/Caller.in.h @@ -19,10 +19,7 @@ class Caller { IpAddr getDstIpFromAuto(); IpAddr getSrcIpFromAuto(); UdpDestination getUdpEntry(); - void GetLevelAndUpdateArgIndex(int action, - std::string levelSeparatedCommand, - int &level, int &iArg, size_t nGetArgs, - size_t nPutArgs); + int GetLevelAndInsertIntoArgs(std::string levelSeparatedCommand); void WrongNumberOfParameters(size_t expected); template std::string OutStringHex(const V &value) { diff --git a/slsDetectorSoftware/generator/commands.yaml b/slsDetectorSoftware/generator/commands.yaml index a31d5ac73..be298d0fd 100644 --- a/slsDetectorSoftware/generator/commands.yaml +++ b/slsDetectorSoftware/generator/commands.yaml @@ -2656,6 +2656,44 @@ slowadc: argc: 1 arg_types: [ int ] +patwaittime: + is_description: true + actions: + GET: + argc: -1 + PUT: + argc: -1 + +patwaittime0: + is_description: true + duplicate_function: true + function_alias: patwaittime + actions: + GET: + argc: -1 + PUT: + argc: -1 + +patwaittime1: + is_description: true + duplicate_function: true + function_alias: patwaittime + actions: + GET: + argc: -1 + PUT: + argc: -1 + +patwaittime2: + is_description: true + duplicate_function: true + function_alias: patwaittime + actions: + GET: + argc: -1 + PUT: + argc: -1 + rx_dbitlist: is_description: true actions: @@ -3930,34 +3968,34 @@ patlimits: patloop: help: "[0-6] [start addr] [stop addr] \n\t[Ctb][Mythen3][Xilinx Ctb] Limits of the loop level provided.\n\t[Mythen3] Level options: 0-3 only." + infer_action: false + pattern_command: patloop actions: GET: - argc: -1 - pattern_command: - command_name: patloop - nGetArgs: 0 - nPutArgs: 2 + argc: 1 require_det_id: true function: getPatternLoopAddresses + extra_variables: + - name: level + type: int + value: "StringTo(args[0])" input: [ level ] input_types: [ int ] - cast_input: [ false ] output: [level,"' '" ,"OutStringHex(t, 4)" ] PUT: - argc: -1 - extra_variables: - - name: start - type: int - value: "StringTo(args[iArg++])" - - name: stop - type: int - value: "StringTo(args[iArg++])" - pattern_command: - command_name: patloop - nGetArgs: 0 - nPutArgs: 2 + argc: 3 require_det_id: true function: setPatternLoopAddresses + extra_variables: + - name: level + type: int + value: "StringTo(args[0])" + - name: start + type: int + value: "StringTo(args[1])" + - name: stop + type: int + value: "StringTo(args[2])" input: [ level, start, stop ] input_types: [ int, int, int ] output: [level,"' '" , "'['" , "ToStringHex(start, 4)" , '", "' , "ToStringHex(stop, 4)", "']'" ] @@ -3979,34 +4017,33 @@ patloop2: patnloop: help: "[0-6] [n_cycles] \n\t[Ctb][Mythen3][Xilinx Ctb] Number of cycles of the loop level provided.\n\t[Mythen3] Level options: 0-3 only." + infer_action: false + pattern_command: patnloop actions: GET: - argc: -1 - pattern_command: - command_name: patnloop - nGetArgs: 0 - nPutArgs: 1 + argc: 1 require_det_id: true function: getPatternLoopCycles + extra_variables: + - name: level + type: int + value: "StringTo(args[0])" input: [ level ] input_types: [ int ] - cast_input: [ false ] output: [ level,"' '" , "OutString(t)" ] PUT: - argc: -1 - extra_variables: - - name: nloops - type: std::string - value: "args[iArg++]" - pattern_command: - command_name: patnloop - nGetArgs: 0 - nPutArgs: 1 + argc: 2 require_det_id: true function: setPatternLoopCycles + extra_variables: + - name: level + type: int + value: "StringTo(args[0])" + - name: nloops + type: int + value: "StringTo(args[1])" input: [ level, nloops ] input_types: [ int, int ] - cast_input: [ false, true ] output: [ level,"' '" , nloops ] patnloop0: @@ -4014,9 +4051,9 @@ patnloop0: inherit_actions: patnloop actions: GET: - output: [ "OutString(t)" ] + output: [ OutString(t) ] PUT: - output: [ "nloops" ] + output: [ nloops ] patnloop1: inherit_actions: patnloop0 @@ -4026,31 +4063,31 @@ patnloop2: patwait: help: "[0-6] [addr] \n\t[Ctb][Mythen3][Xilinx Ctb] Wait address for loop level provided. \n\t[Mythen3] Level options: 0-3 only." + infer_action: false + pattern_command: patwait actions: GET: - argc: -1 - pattern_command: - command_name: patwait - nGetArgs: 0 - nPutArgs: 1 + argc: 1 require_det_id: true function: getPatternWaitAddr + extra_variables: + - name: level + type: int + value: "StringTo(args[0])" input: [ level ] input_types: [ int ] - cast_input: [ false ] output: [level,"' '" , "OutStringHex(t, 4)" ] PUT: - argc: -1 - extra_variables: - - name: addr - type: int - value: "StringTo(args[iArg++])" - pattern_command: - command_name: patwait - nGetArgs: 0 - nPutArgs: 1 + argc: 2 require_det_id: true function: setPatternWaitAddr + extra_variables: + - name: level + type: int + value: "StringTo(args[0])" + - name: addr + type: int + value: "StringTo(args[1])" input: [ level, addr ] input_types: [ int, int ] output: [level,"' '" , "ToStringHex(addr, 4)" ] @@ -4070,52 +4107,6 @@ patwait1: patwait2: inherit_actions: patwait0 -patwaittime: - help: "[0-6] [n_clk] \n\t[Ctb][Mythen3][Xilinx Ctb] Wait time in clock cycles for the loop provided.\n\t[Mythen3] Level options: 0-3 only." - actions: - GET: - argc: -1 - pattern_command: - command_name: patwaittime - nGetArgs: 0 - nPutArgs: 1 - require_det_id: true - function: getPatternWaitTime - input: [ level ] - input_types: [ int ] - cast_input: [ false ] - output: [ level,"' '" , "OutString(t)" ] - PUT: - argc: -1 - extra_variables: - - name: waittime - type: uint64_t - value: "StringTo(args[iArg++])" - pattern_command: - command_name: patwaittime - nGetArgs: 0 - nPutArgs: 1 - require_det_id: true - function: setPatternWaitTime - input: [ level, waittime ] - input_types: [ int, int ] - output: [level,"' '" , "waittime" ] - -patwaittime0: - help: "\n\tDeprecated command. Use patwaittime." - inherit_actions: patwaittime - actions: - GET: - output: [ "OutString(t)" ] - PUT: - output: [ "waittime" ] - -patwaittime1: - inherit_actions: patwaittime0 - -patwaittime2: - inherit_actions: patwaittime0 - rx_jsonpara: help: "[key1] [value1]\n\t[Receiver] Additional json header parameter streamed out from receiver. If not found in header, the pair is appended. An empty values deletes parameter. Max 20 characters for each key/value." actions: diff --git a/slsDetectorSoftware/generator/cpp_codegen/codegen.py b/slsDetectorSoftware/generator/cpp_codegen/codegen.py index ffb2c52e8..dc5e3294f 100644 --- a/slsDetectorSoftware/generator/cpp_codegen/codegen.py +++ b/slsDetectorSoftware/generator/cpp_codegen/codegen.py @@ -119,17 +119,11 @@ class CodeGenerator: def write_check_arg(self): pass + def write_arg(self, args, action, command_name): for arg in args: if arg['argc'] != -1: if_block(f'args.size() == {arg["argc"]}',).__enter__() - if 'pattern_command' in arg and arg['pattern_command']: - self.write_line(f'int level = -1, iArg = 0, ' - f'nGetArgs = {arg["pattern_command"]["nGetArgs"]},' - f' nPutArgs = {arg["pattern_command"]["nPutArgs"]};\nGetLevelAndUpdateArgIndex(action, ' - f'"{arg["pattern_command"]["command_name"]}", level, iArg, nGetArgs,nPutArgs);' - ) - if 'extra_variables' in arg: for var in arg['extra_variables']: codegen.write_line(f'{var["type"]} {var["name"]} = {var["value"]};') diff --git a/slsDetectorSoftware/generator/extended_commands.yaml b/slsDetectorSoftware/generator/extended_commands.yaml index 65499d2f9..6f4d7b583 100644 --- a/slsDetectorSoftware/generator/extended_commands.yaml +++ b/slsDetectorSoftware/generator/extended_commands.yaml @@ -5942,11 +5942,15 @@ patloop: args: - arg_types: - int - argc: -1 + argc: 1 cast_input: - false check_det_id: false convert_det_id: true + extra_variables: + - name: level + type: int + value: StringTo(args[0]) function: getPatternLoopAddresses input: - level @@ -5956,10 +5960,6 @@ patloop: - level - ''' ''' - OutStringHex(t, 4) - pattern_command: - command_name: patloop - nGetArgs: 0 - nPutArgs: 2 require_det_id: true store_result_in_t: true PUT: @@ -5968,7 +5968,7 @@ patloop: - int - int - int - argc: -1 + argc: 3 cast_input: - false - false @@ -5976,12 +5976,15 @@ patloop: check_det_id: false convert_det_id: true extra_variables: + - name: level + type: int + value: StringTo(args[0]) - name: start type: int - value: StringTo(args[iArg++]) + value: StringTo(args[1]) - name: stop type: int - value: StringTo(args[iArg++]) + value: StringTo(args[2]) function: setPatternLoopAddresses input: - level @@ -5999,28 +6002,29 @@ patloop: - '", "' - ToStringHex(stop, 4) - ''']''' - pattern_command: - command_name: patloop - nGetArgs: 0 - nPutArgs: 2 require_det_id: true store_result_in_t: false command_name: patloop function_alias: patloop help: "[0-6] [start addr] [stop addr] \n\t[Ctb][Mythen3][Xilinx Ctb] Limits of the\ \ loop level provided.\n\t[Mythen3] Level options: 0-3 only." - infer_action: true + infer_action: false + pattern_command: patloop patloop0: actions: GET: args: - arg_types: - int - argc: -1 + argc: 1 cast_input: - false check_det_id: false convert_det_id: true + extra_variables: + - name: level + type: int + value: StringTo(args[0]) function: getPatternLoopAddresses input: - level @@ -6028,10 +6032,6 @@ patloop0: - int output: - OutStringHex(t, 4) - pattern_command: - command_name: patloop - nGetArgs: 0 - nPutArgs: 2 require_det_id: true store_result_in_t: true PUT: @@ -6040,7 +6040,7 @@ patloop0: - int - int - int - argc: -1 + argc: 3 cast_input: - false - false @@ -6048,12 +6048,15 @@ patloop0: check_det_id: false convert_det_id: true extra_variables: + - name: level + type: int + value: StringTo(args[0]) - name: start type: int - value: StringTo(args[iArg++]) + value: StringTo(args[1]) - name: stop type: int - value: StringTo(args[iArg++]) + value: StringTo(args[2]) function: setPatternLoopAddresses input: - level @@ -6069,27 +6072,28 @@ patloop0: - '", "' - ToStringHex(stop, 4) - ''']''' - pattern_command: - command_name: patloop - nGetArgs: 0 - nPutArgs: 2 require_det_id: true store_result_in_t: false command_name: patloop0 function_alias: patloop0 help: "\n\tDeprecated command. Use patloop." - infer_action: true + infer_action: false + pattern_command: patloop patloop1: actions: GET: args: - arg_types: - int - argc: -1 + argc: 1 cast_input: - false check_det_id: false convert_det_id: true + extra_variables: + - name: level + type: int + value: StringTo(args[0]) function: getPatternLoopAddresses input: - level @@ -6097,10 +6101,6 @@ patloop1: - int output: - OutStringHex(t, 4) - pattern_command: - command_name: patloop - nGetArgs: 0 - nPutArgs: 2 require_det_id: true store_result_in_t: true PUT: @@ -6109,7 +6109,7 @@ patloop1: - int - int - int - argc: -1 + argc: 3 cast_input: - false - false @@ -6117,12 +6117,15 @@ patloop1: check_det_id: false convert_det_id: true extra_variables: + - name: level + type: int + value: StringTo(args[0]) - name: start type: int - value: StringTo(args[iArg++]) + value: StringTo(args[1]) - name: stop type: int - value: StringTo(args[iArg++]) + value: StringTo(args[2]) function: setPatternLoopAddresses input: - level @@ -6138,27 +6141,28 @@ patloop1: - '", "' - ToStringHex(stop, 4) - ''']''' - pattern_command: - command_name: patloop - nGetArgs: 0 - nPutArgs: 2 require_det_id: true store_result_in_t: false command_name: patloop1 function_alias: patloop1 help: "\n\tDeprecated command. Use patloop." - infer_action: true + infer_action: false + pattern_command: patloop patloop2: actions: GET: args: - arg_types: - int - argc: -1 + argc: 1 cast_input: - false check_det_id: false convert_det_id: true + extra_variables: + - name: level + type: int + value: StringTo(args[0]) function: getPatternLoopAddresses input: - level @@ -6166,10 +6170,6 @@ patloop2: - int output: - OutStringHex(t, 4) - pattern_command: - command_name: patloop - nGetArgs: 0 - nPutArgs: 2 require_det_id: true store_result_in_t: true PUT: @@ -6178,7 +6178,7 @@ patloop2: - int - int - int - argc: -1 + argc: 3 cast_input: - false - false @@ -6186,12 +6186,15 @@ patloop2: check_det_id: false convert_det_id: true extra_variables: + - name: level + type: int + value: StringTo(args[0]) - name: start type: int - value: StringTo(args[iArg++]) + value: StringTo(args[1]) - name: stop type: int - value: StringTo(args[iArg++]) + value: StringTo(args[2]) function: setPatternLoopAddresses input: - level @@ -6207,16 +6210,13 @@ patloop2: - '", "' - ToStringHex(stop, 4) - ''']''' - pattern_command: - command_name: patloop - nGetArgs: 0 - nPutArgs: 2 require_det_id: true store_result_in_t: false command_name: patloop2 function_alias: patloop2 help: "\n\tDeprecated command. Use patloop." - infer_action: true + infer_action: false + pattern_command: patloop patmask: actions: GET: @@ -6263,11 +6263,15 @@ patnloop: args: - arg_types: - int - argc: -1 + argc: 1 cast_input: - false check_det_id: false convert_det_id: true + extra_variables: + - name: level + type: int + value: StringTo(args[0]) function: getPatternLoopCycles input: - level @@ -6277,10 +6281,6 @@ patnloop: - level - ''' ''' - OutString(t) - pattern_command: - command_name: patnloop - nGetArgs: 0 - nPutArgs: 1 require_det_id: true store_result_in_t: true PUT: @@ -6288,16 +6288,19 @@ patnloop: - arg_types: - int - int - argc: -1 + argc: 2 cast_input: - false - - true + - false check_det_id: false convert_det_id: true extra_variables: + - name: level + type: int + value: StringTo(args[0]) - name: nloops - type: std::string - value: args[iArg++] + type: int + value: StringTo(args[1]) function: setPatternLoopCycles input: - level @@ -6309,28 +6312,29 @@ patnloop: - level - ''' ''' - nloops - pattern_command: - command_name: patnloop - nGetArgs: 0 - nPutArgs: 1 require_det_id: true store_result_in_t: false command_name: patnloop function_alias: patnloop help: "[0-6] [n_cycles] \n\t[Ctb][Mythen3][Xilinx Ctb] Number of cycles of the loop\ \ level provided.\n\t[Mythen3] Level options: 0-3 only." - infer_action: true + infer_action: false + pattern_command: patnloop patnloop0: actions: GET: args: - arg_types: - int - argc: -1 + argc: 1 cast_input: - false check_det_id: false convert_det_id: true + extra_variables: + - name: level + type: int + value: StringTo(args[0]) function: getPatternLoopCycles input: - level @@ -6338,10 +6342,6 @@ patnloop0: - int output: - OutString(t) - pattern_command: - command_name: patnloop - nGetArgs: 0 - nPutArgs: 1 require_det_id: true store_result_in_t: true PUT: @@ -6349,16 +6349,19 @@ patnloop0: - arg_types: - int - int - argc: -1 + argc: 2 cast_input: - false - - true + - false check_det_id: false convert_det_id: true extra_variables: + - name: level + type: int + value: StringTo(args[0]) - name: nloops - type: std::string - value: args[iArg++] + type: int + value: StringTo(args[1]) function: setPatternLoopCycles input: - level @@ -6368,27 +6371,28 @@ patnloop0: - int output: - nloops - pattern_command: - command_name: patnloop - nGetArgs: 0 - nPutArgs: 1 require_det_id: true store_result_in_t: false command_name: patnloop0 function_alias: patnloop0 help: "\n\tDeprecated command. Use patnloop." - infer_action: true + infer_action: false + pattern_command: patnloop patnloop1: actions: GET: args: - arg_types: - int - argc: -1 + argc: 1 cast_input: - false check_det_id: false convert_det_id: true + extra_variables: + - name: level + type: int + value: StringTo(args[0]) function: getPatternLoopCycles input: - level @@ -6396,10 +6400,6 @@ patnloop1: - int output: - OutString(t) - pattern_command: - command_name: patnloop - nGetArgs: 0 - nPutArgs: 1 require_det_id: true store_result_in_t: true PUT: @@ -6407,16 +6407,19 @@ patnloop1: - arg_types: - int - int - argc: -1 + argc: 2 cast_input: - false - - true + - false check_det_id: false convert_det_id: true extra_variables: + - name: level + type: int + value: StringTo(args[0]) - name: nloops - type: std::string - value: args[iArg++] + type: int + value: StringTo(args[1]) function: setPatternLoopCycles input: - level @@ -6426,27 +6429,28 @@ patnloop1: - int output: - nloops - pattern_command: - command_name: patnloop - nGetArgs: 0 - nPutArgs: 1 require_det_id: true store_result_in_t: false command_name: patnloop1 function_alias: patnloop1 help: "\n\tDeprecated command. Use patnloop." - infer_action: true + infer_action: false + pattern_command: patnloop patnloop2: actions: GET: args: - arg_types: - int - argc: -1 + argc: 1 cast_input: - false check_det_id: false convert_det_id: true + extra_variables: + - name: level + type: int + value: StringTo(args[0]) function: getPatternLoopCycles input: - level @@ -6454,10 +6458,6 @@ patnloop2: - int output: - OutString(t) - pattern_command: - command_name: patnloop - nGetArgs: 0 - nPutArgs: 1 require_det_id: true store_result_in_t: true PUT: @@ -6465,16 +6465,19 @@ patnloop2: - arg_types: - int - int - argc: -1 + argc: 2 cast_input: - false - - true + - false check_det_id: false convert_det_id: true extra_variables: + - name: level + type: int + value: StringTo(args[0]) - name: nloops - type: std::string - value: args[iArg++] + type: int + value: StringTo(args[1]) function: setPatternLoopCycles input: - level @@ -6484,16 +6487,13 @@ patnloop2: - int output: - nloops - pattern_command: - command_name: patnloop - nGetArgs: 0 - nPutArgs: 1 require_det_id: true store_result_in_t: false command_name: patnloop2 function_alias: patnloop2 help: "\n\tDeprecated command. Use patnloop." - infer_action: true + infer_action: false + pattern_command: patnloop patsetbit: actions: GET: @@ -6586,11 +6586,15 @@ patwait: args: - arg_types: - int - argc: -1 + argc: 1 cast_input: - false check_det_id: false convert_det_id: true + extra_variables: + - name: level + type: int + value: StringTo(args[0]) function: getPatternWaitAddr input: - level @@ -6600,10 +6604,6 @@ patwait: - level - ''' ''' - OutStringHex(t, 4) - pattern_command: - command_name: patwait - nGetArgs: 0 - nPutArgs: 1 require_det_id: true store_result_in_t: true PUT: @@ -6611,16 +6611,19 @@ patwait: - arg_types: - int - int - argc: -1 + argc: 2 cast_input: - false - false check_det_id: false convert_det_id: true extra_variables: + - name: level + type: int + value: StringTo(args[0]) - name: addr type: int - value: StringTo(args[iArg++]) + value: StringTo(args[1]) function: setPatternWaitAddr input: - level @@ -6632,28 +6635,29 @@ patwait: - level - ''' ''' - ToStringHex(addr, 4) - pattern_command: - command_name: patwait - nGetArgs: 0 - nPutArgs: 1 require_det_id: true store_result_in_t: false command_name: patwait function_alias: patwait help: "[0-6] [addr] \n\t[Ctb][Mythen3][Xilinx Ctb] Wait address for loop level provided.\ \ \n\t[Mythen3] Level options: 0-3 only." - infer_action: true + infer_action: false + pattern_command: patwait patwait0: actions: GET: args: - arg_types: - int - argc: -1 + argc: 1 cast_input: - false check_det_id: false convert_det_id: true + extra_variables: + - name: level + type: int + value: StringTo(args[0]) function: getPatternWaitAddr input: - level @@ -6661,10 +6665,6 @@ patwait0: - int output: - OutStringHex(t, 4) - pattern_command: - command_name: patwait - nGetArgs: 0 - nPutArgs: 1 require_det_id: true store_result_in_t: true PUT: @@ -6672,16 +6672,19 @@ patwait0: - arg_types: - int - int - argc: -1 + argc: 2 cast_input: - false - false check_det_id: false convert_det_id: true extra_variables: + - name: level + type: int + value: StringTo(args[0]) - name: addr type: int - value: StringTo(args[iArg++]) + value: StringTo(args[1]) function: setPatternWaitAddr input: - level @@ -6691,27 +6694,28 @@ patwait0: - int output: - ToStringHex(addr, 4) - pattern_command: - command_name: patwait - nGetArgs: 0 - nPutArgs: 1 require_det_id: true store_result_in_t: false command_name: patwait0 function_alias: patwait0 help: "\n\tDeprecated command. Use patwait." - infer_action: true + infer_action: false + pattern_command: patwait patwait1: actions: GET: args: - arg_types: - int - argc: -1 + argc: 1 cast_input: - false check_det_id: false convert_det_id: true + extra_variables: + - name: level + type: int + value: StringTo(args[0]) function: getPatternWaitAddr input: - level @@ -6719,10 +6723,6 @@ patwait1: - int output: - OutStringHex(t, 4) - pattern_command: - command_name: patwait - nGetArgs: 0 - nPutArgs: 1 require_det_id: true store_result_in_t: true PUT: @@ -6730,16 +6730,19 @@ patwait1: - arg_types: - int - int - argc: -1 + argc: 2 cast_input: - false - false check_det_id: false convert_det_id: true extra_variables: + - name: level + type: int + value: StringTo(args[0]) - name: addr type: int - value: StringTo(args[iArg++]) + value: StringTo(args[1]) function: setPatternWaitAddr input: - level @@ -6749,27 +6752,28 @@ patwait1: - int output: - ToStringHex(addr, 4) - pattern_command: - command_name: patwait - nGetArgs: 0 - nPutArgs: 1 require_det_id: true store_result_in_t: false command_name: patwait1 function_alias: patwait1 help: "\n\tDeprecated command. Use patwait." - infer_action: true + infer_action: false + pattern_command: patwait patwait2: actions: GET: args: - arg_types: - int - argc: -1 + argc: 1 cast_input: - false check_det_id: false convert_det_id: true + extra_variables: + - name: level + type: int + value: StringTo(args[0]) function: getPatternWaitAddr input: - level @@ -6777,10 +6781,6 @@ patwait2: - int output: - OutStringHex(t, 4) - pattern_command: - command_name: patwait - nGetArgs: 0 - nPutArgs: 1 require_det_id: true store_result_in_t: true PUT: @@ -6788,16 +6788,19 @@ patwait2: - arg_types: - int - int - argc: -1 + argc: 2 cast_input: - false - false check_det_id: false convert_det_id: true extra_variables: + - name: level + type: int + value: StringTo(args[0]) - name: addr type: int - value: StringTo(args[iArg++]) + value: StringTo(args[1]) function: setPatternWaitAddr input: - level @@ -6807,253 +6810,148 @@ patwait2: - int output: - ToStringHex(addr, 4) - pattern_command: - command_name: patwait - nGetArgs: 0 - nPutArgs: 1 require_det_id: true store_result_in_t: false command_name: patwait2 function_alias: patwait2 help: "\n\tDeprecated command. Use patwait." - infer_action: true + infer_action: false + pattern_command: patwait patwaittime: actions: GET: args: - - arg_types: - - int + - arg_types: [] argc: -1 - cast_input: - - false + cast_input: [] check_det_id: false convert_det_id: true - function: getPatternWaitTime - input: - - level - input_types: - - int - output: - - level - - ''' ''' - - OutString(t) - pattern_command: - command_name: patwaittime - nGetArgs: 0 - nPutArgs: 1 - require_det_id: true + function: '' + input: [] + input_types: [] + output: [] + require_det_id: false store_result_in_t: true PUT: args: - - arg_types: - - int - - int + - arg_types: [] argc: -1 - cast_input: - - false - - false + cast_input: [] check_det_id: false convert_det_id: true - extra_variables: - - name: waittime - type: uint64_t - value: StringTo(args[iArg++]) - function: setPatternWaitTime - input: - - level - - waittime - input_types: - - int - - int - output: - - level - - ''' ''' - - waittime - pattern_command: - command_name: patwaittime - nGetArgs: 0 - nPutArgs: 1 - require_det_id: true + function: '' + input: [] + input_types: [] + output: [] + require_det_id: false store_result_in_t: false command_name: patwaittime function_alias: patwaittime - help: "[0-6] [n_clk] \n\t[Ctb][Mythen3][Xilinx Ctb] Wait time in clock cycles for\ - \ the loop provided.\n\t[Mythen3] Level options: 0-3 only." + help: '' infer_action: true + is_description: true patwaittime0: actions: GET: args: - - arg_types: - - int + - arg_types: [] argc: -1 - cast_input: - - false + cast_input: [] check_det_id: false convert_det_id: true - function: getPatternWaitTime - input: - - level - input_types: - - int - output: - - OutString(t) - pattern_command: - command_name: patwaittime - nGetArgs: 0 - nPutArgs: 1 - require_det_id: true + function: '' + input: [] + input_types: [] + output: [] + require_det_id: false store_result_in_t: true PUT: args: - - arg_types: - - int - - int + - arg_types: [] argc: -1 - cast_input: - - false - - false + cast_input: [] check_det_id: false convert_det_id: true - extra_variables: - - name: waittime - type: uint64_t - value: StringTo(args[iArg++]) - function: setPatternWaitTime - input: - - level - - waittime - input_types: - - int - - int - output: - - waittime - pattern_command: - command_name: patwaittime - nGetArgs: 0 - nPutArgs: 1 - require_det_id: true + function: '' + input: [] + input_types: [] + output: [] + require_det_id: false store_result_in_t: false command_name: patwaittime0 - function_alias: patwaittime0 - help: "\n\tDeprecated command. Use patwaittime." + duplicate_function: true + function_alias: patwaittime + help: '' infer_action: true + is_description: true patwaittime1: actions: GET: args: - - arg_types: - - int + - arg_types: [] argc: -1 - cast_input: - - false + cast_input: [] check_det_id: false convert_det_id: true - function: getPatternWaitTime - input: - - level - input_types: - - int - output: - - OutString(t) - pattern_command: - command_name: patwaittime - nGetArgs: 0 - nPutArgs: 1 - require_det_id: true + function: '' + input: [] + input_types: [] + output: [] + require_det_id: false store_result_in_t: true PUT: args: - - arg_types: - - int - - int + - arg_types: [] argc: -1 - cast_input: - - false - - false + cast_input: [] check_det_id: false convert_det_id: true - extra_variables: - - name: waittime - type: uint64_t - value: StringTo(args[iArg++]) - function: setPatternWaitTime - input: - - level - - waittime - input_types: - - int - - int - output: - - waittime - pattern_command: - command_name: patwaittime - nGetArgs: 0 - nPutArgs: 1 - require_det_id: true + function: '' + input: [] + input_types: [] + output: [] + require_det_id: false store_result_in_t: false command_name: patwaittime1 - function_alias: patwaittime1 - help: "\n\tDeprecated command. Use patwaittime." + duplicate_function: true + function_alias: patwaittime + help: '' infer_action: true + is_description: true patwaittime2: actions: GET: args: - - arg_types: - - int + - arg_types: [] argc: -1 - cast_input: - - false + cast_input: [] check_det_id: false convert_det_id: true - function: getPatternWaitTime - input: - - level - input_types: - - int - output: - - OutString(t) - pattern_command: - command_name: patwaittime - nGetArgs: 0 - nPutArgs: 1 - require_det_id: true + function: '' + input: [] + input_types: [] + output: [] + require_det_id: false store_result_in_t: true PUT: args: - - arg_types: - - int - - int + - arg_types: [] argc: -1 - cast_input: - - false - - false + cast_input: [] check_det_id: false convert_det_id: true - extra_variables: - - name: waittime - type: uint64_t - value: StringTo(args[iArg++]) - function: setPatternWaitTime - input: - - level - - waittime - input_types: - - int - - int - output: - - waittime - pattern_command: - command_name: patwaittime - nGetArgs: 0 - nPutArgs: 1 - require_det_id: true + function: '' + input: [] + input_types: [] + output: [] + require_det_id: false store_result_in_t: false command_name: patwaittime2 - function_alias: patwaittime2 - help: "\n\tDeprecated command. Use patwaittime." + duplicate_function: true + function_alias: patwaittime + help: '' infer_action: true + is_description: true patword: actions: GET: diff --git a/slsDetectorSoftware/generator/gen_commands.py b/slsDetectorSoftware/generator/gen_commands.py index cc1aedf09..ee4f97a8c 100644 --- a/slsDetectorSoftware/generator/gen_commands.py +++ b/slsDetectorSoftware/generator/gen_commands.py @@ -63,6 +63,11 @@ def generate( codegen.write_line(f'os << R"V0G0N({command["help"]} )V0G0N" << std::endl;') codegen.write_line('return os.str();') + + # inserting arguments if needed + if 'pattern_command' in command and command['pattern_command']: + codegen.write_line(f'GetLevelAndInsertIntoArgs("{command["pattern_command"]}");') + # check if action and arguments are valid codegen.write_line('// check if action and arguments are valid') diff --git a/slsDetectorSoftware/include/sls/Detector.h b/slsDetectorSoftware/include/sls/Detector.h index 565967345..eed90955b 100644 --- a/slsDetectorSoftware/include/sls/Detector.h +++ b/slsDetectorSoftware/include/sls/Detector.h @@ -1930,10 +1930,15 @@ class Detector { void setPatternWaitAddr(int level, int addr, Positions pos = {}); /** [CTB][Mythen3][Xilinx CTB] */ - Result getPatternWaitTime(int level, Positions pos = {}) const; + Result getPatternWaitClocks(int level, Positions pos = {}) const; /** [CTB][Mythen3][Xilinx CTB] Options: level 0-2 */ - void setPatternWaitTime(int level, uint64_t t, Positions pos = {}); + void setPatternWaitClocks(int level, uint64_t t, Positions pos = {}); + + Result getPatternWaitInterval(int level, Positions pos = {}) const; + + /** [CTB][Mythen3][Xilinx CTB] Options: level 0-2 */ + void setPatternWaitInterval(int level, ns t, Positions pos = {}); /** [CTB][Mythen3][Xilinx CTB] */ Result getPatternMask(Positions pos = {}); diff --git a/slsDetectorSoftware/src/Caller.cpp b/slsDetectorSoftware/src/Caller.cpp index 6530bfc54..96fd229a1 100644 --- a/slsDetectorSoftware/src/Caller.cpp +++ b/slsDetectorSoftware/src/Caller.cpp @@ -7859,19 +7859,30 @@ std::string Caller::patloop(int action) { return os.str(); } + GetLevelAndInsertIntoArgs("patloop"); // check if action and arguments are valid if (action == slsDetectorDefs::GET_ACTION) { - if (0) { + if (1 && args.size() != 1) { throw RuntimeError("Wrong number of arguments for action GET"); } + if (args.size() == 1) { + int level = StringTo(args[0]); + } + } else if (action == slsDetectorDefs::PUT_ACTION) { - if (0) { + if (1 && args.size() != 3) { throw RuntimeError("Wrong number of arguments for action PUT"); } + if (args.size() == 3) { + int level = StringTo(args[0]); + int start = StringTo(args[1]); + int stop = StringTo(args[2]); + } + } else { @@ -7882,23 +7893,24 @@ std::string Caller::patloop(int action) { // generate code for each action if (action == slsDetectorDefs::GET_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 2; - GetLevelAndUpdateArgIndex(action, "patloop", level, iArg, nGetArgs, - nPutArgs); - auto t = det->getPatternLoopAddresses(level, std::vector{det_id}); - os << level << ' ' << OutStringHex(t, 4) << '\n'; + if (args.size() == 1) { + int level = StringTo(args[0]); + auto t = + det->getPatternLoopAddresses(level, std::vector{det_id}); + os << level << ' ' << OutStringHex(t, 4) << '\n'; + } } if (action == slsDetectorDefs::PUT_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 2; - GetLevelAndUpdateArgIndex(action, "patloop", level, iArg, nGetArgs, - nPutArgs); - int start = StringTo(args[iArg++]); - int stop = StringTo(args[iArg++]); - det->setPatternLoopAddresses(level, start, stop, - std::vector{det_id}); - os << level << ' ' << '[' << ToStringHex(start, 4) << ", " - << ToStringHex(stop, 4) << ']' << '\n'; + if (args.size() == 3) { + int level = StringTo(args[0]); + int start = StringTo(args[1]); + int stop = StringTo(args[2]); + det->setPatternLoopAddresses(level, start, stop, + std::vector{det_id}); + os << level << ' ' << '[' << ToStringHex(start, 4) << ", " + << ToStringHex(stop, 4) << ']' << '\n'; + } } return os.str(); @@ -7915,19 +7927,30 @@ std::string Caller::patloop0(int action) { return os.str(); } + GetLevelAndInsertIntoArgs("patloop"); // check if action and arguments are valid if (action == slsDetectorDefs::GET_ACTION) { - if (0) { + if (1 && args.size() != 1) { throw RuntimeError("Wrong number of arguments for action GET"); } + if (args.size() == 1) { + int level = StringTo(args[0]); + } + } else if (action == slsDetectorDefs::PUT_ACTION) { - if (0) { + if (1 && args.size() != 3) { throw RuntimeError("Wrong number of arguments for action PUT"); } + if (args.size() == 3) { + int level = StringTo(args[0]); + int start = StringTo(args[1]); + int stop = StringTo(args[2]); + } + } else { @@ -7938,23 +7961,24 @@ std::string Caller::patloop0(int action) { // generate code for each action if (action == slsDetectorDefs::GET_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 2; - GetLevelAndUpdateArgIndex(action, "patloop", level, iArg, nGetArgs, - nPutArgs); - auto t = det->getPatternLoopAddresses(level, std::vector{det_id}); - os << OutStringHex(t, 4) << '\n'; + if (args.size() == 1) { + int level = StringTo(args[0]); + auto t = + det->getPatternLoopAddresses(level, std::vector{det_id}); + os << OutStringHex(t, 4) << '\n'; + } } if (action == slsDetectorDefs::PUT_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 2; - GetLevelAndUpdateArgIndex(action, "patloop", level, iArg, nGetArgs, - nPutArgs); - int start = StringTo(args[iArg++]); - int stop = StringTo(args[iArg++]); - det->setPatternLoopAddresses(level, start, stop, - std::vector{det_id}); - os << '[' << ToStringHex(start, 4) << ", " << ToStringHex(stop, 4) - << ']' << '\n'; + if (args.size() == 3) { + int level = StringTo(args[0]); + int start = StringTo(args[1]); + int stop = StringTo(args[2]); + det->setPatternLoopAddresses(level, start, stop, + std::vector{det_id}); + os << '[' << ToStringHex(start, 4) << ", " << ToStringHex(stop, 4) + << ']' << '\n'; + } } return os.str(); @@ -7971,19 +7995,30 @@ std::string Caller::patloop1(int action) { return os.str(); } + GetLevelAndInsertIntoArgs("patloop"); // check if action and arguments are valid if (action == slsDetectorDefs::GET_ACTION) { - if (0) { + if (1 && args.size() != 1) { throw RuntimeError("Wrong number of arguments for action GET"); } + if (args.size() == 1) { + int level = StringTo(args[0]); + } + } else if (action == slsDetectorDefs::PUT_ACTION) { - if (0) { + if (1 && args.size() != 3) { throw RuntimeError("Wrong number of arguments for action PUT"); } + if (args.size() == 3) { + int level = StringTo(args[0]); + int start = StringTo(args[1]); + int stop = StringTo(args[2]); + } + } else { @@ -7994,23 +8029,24 @@ std::string Caller::patloop1(int action) { // generate code for each action if (action == slsDetectorDefs::GET_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 2; - GetLevelAndUpdateArgIndex(action, "patloop", level, iArg, nGetArgs, - nPutArgs); - auto t = det->getPatternLoopAddresses(level, std::vector{det_id}); - os << OutStringHex(t, 4) << '\n'; + if (args.size() == 1) { + int level = StringTo(args[0]); + auto t = + det->getPatternLoopAddresses(level, std::vector{det_id}); + os << OutStringHex(t, 4) << '\n'; + } } if (action == slsDetectorDefs::PUT_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 2; - GetLevelAndUpdateArgIndex(action, "patloop", level, iArg, nGetArgs, - nPutArgs); - int start = StringTo(args[iArg++]); - int stop = StringTo(args[iArg++]); - det->setPatternLoopAddresses(level, start, stop, - std::vector{det_id}); - os << '[' << ToStringHex(start, 4) << ", " << ToStringHex(stop, 4) - << ']' << '\n'; + if (args.size() == 3) { + int level = StringTo(args[0]); + int start = StringTo(args[1]); + int stop = StringTo(args[2]); + det->setPatternLoopAddresses(level, start, stop, + std::vector{det_id}); + os << '[' << ToStringHex(start, 4) << ", " << ToStringHex(stop, 4) + << ']' << '\n'; + } } return os.str(); @@ -8027,19 +8063,30 @@ std::string Caller::patloop2(int action) { return os.str(); } + GetLevelAndInsertIntoArgs("patloop"); // check if action and arguments are valid if (action == slsDetectorDefs::GET_ACTION) { - if (0) { + if (1 && args.size() != 1) { throw RuntimeError("Wrong number of arguments for action GET"); } + if (args.size() == 1) { + int level = StringTo(args[0]); + } + } else if (action == slsDetectorDefs::PUT_ACTION) { - if (0) { + if (1 && args.size() != 3) { throw RuntimeError("Wrong number of arguments for action PUT"); } + if (args.size() == 3) { + int level = StringTo(args[0]); + int start = StringTo(args[1]); + int stop = StringTo(args[2]); + } + } else { @@ -8050,23 +8097,24 @@ std::string Caller::patloop2(int action) { // generate code for each action if (action == slsDetectorDefs::GET_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 2; - GetLevelAndUpdateArgIndex(action, "patloop", level, iArg, nGetArgs, - nPutArgs); - auto t = det->getPatternLoopAddresses(level, std::vector{det_id}); - os << OutStringHex(t, 4) << '\n'; + if (args.size() == 1) { + int level = StringTo(args[0]); + auto t = + det->getPatternLoopAddresses(level, std::vector{det_id}); + os << OutStringHex(t, 4) << '\n'; + } } if (action == slsDetectorDefs::PUT_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 2; - GetLevelAndUpdateArgIndex(action, "patloop", level, iArg, nGetArgs, - nPutArgs); - int start = StringTo(args[iArg++]); - int stop = StringTo(args[iArg++]); - det->setPatternLoopAddresses(level, start, stop, - std::vector{det_id}); - os << '[' << ToStringHex(start, 4) << ", " << ToStringHex(stop, 4) - << ']' << '\n'; + if (args.size() == 3) { + int level = StringTo(args[0]); + int start = StringTo(args[1]); + int stop = StringTo(args[2]); + det->setPatternLoopAddresses(level, start, stop, + std::vector{det_id}); + os << '[' << ToStringHex(start, 4) << ", " << ToStringHex(stop, 4) + << ']' << '\n'; + } } return os.str(); @@ -8146,19 +8194,29 @@ std::string Caller::patnloop(int action) { return os.str(); } + GetLevelAndInsertIntoArgs("patnloop"); // check if action and arguments are valid if (action == slsDetectorDefs::GET_ACTION) { - if (0) { + if (1 && args.size() != 1) { throw RuntimeError("Wrong number of arguments for action GET"); } + if (args.size() == 1) { + int level = StringTo(args[0]); + } + } else if (action == slsDetectorDefs::PUT_ACTION) { - if (0) { + if (1 && args.size() != 2) { throw RuntimeError("Wrong number of arguments for action PUT"); } + if (args.size() == 2) { + int level = StringTo(args[0]); + int nloops = StringTo(args[1]); + } + } else { @@ -8169,21 +8227,20 @@ std::string Caller::patnloop(int action) { // generate code for each action if (action == slsDetectorDefs::GET_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patnloop", level, iArg, nGetArgs, - nPutArgs); - auto t = det->getPatternLoopCycles(level, std::vector{det_id}); - os << level << ' ' << OutString(t) << '\n'; + if (args.size() == 1) { + int level = StringTo(args[0]); + auto t = det->getPatternLoopCycles(level, std::vector{det_id}); + os << level << ' ' << OutString(t) << '\n'; + } } if (action == slsDetectorDefs::PUT_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patnloop", level, iArg, nGetArgs, - nPutArgs); - std::string nloops = args[iArg++]; - auto arg1 = StringTo(nloops); - det->setPatternLoopCycles(level, arg1, std::vector{det_id}); - os << level << ' ' << nloops << '\n'; + if (args.size() == 2) { + int level = StringTo(args[0]); + int nloops = StringTo(args[1]); + det->setPatternLoopCycles(level, nloops, std::vector{det_id}); + os << level << ' ' << nloops << '\n'; + } } return os.str(); @@ -8200,19 +8257,29 @@ std::string Caller::patnloop0(int action) { return os.str(); } + GetLevelAndInsertIntoArgs("patnloop"); // check if action and arguments are valid if (action == slsDetectorDefs::GET_ACTION) { - if (0) { + if (1 && args.size() != 1) { throw RuntimeError("Wrong number of arguments for action GET"); } + if (args.size() == 1) { + int level = StringTo(args[0]); + } + } else if (action == slsDetectorDefs::PUT_ACTION) { - if (0) { + if (1 && args.size() != 2) { throw RuntimeError("Wrong number of arguments for action PUT"); } + if (args.size() == 2) { + int level = StringTo(args[0]); + int nloops = StringTo(args[1]); + } + } else { @@ -8223,21 +8290,20 @@ std::string Caller::patnloop0(int action) { // generate code for each action if (action == slsDetectorDefs::GET_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patnloop", level, iArg, nGetArgs, - nPutArgs); - auto t = det->getPatternLoopCycles(level, std::vector{det_id}); - os << OutString(t) << '\n'; + if (args.size() == 1) { + int level = StringTo(args[0]); + auto t = det->getPatternLoopCycles(level, std::vector{det_id}); + os << OutString(t) << '\n'; + } } if (action == slsDetectorDefs::PUT_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patnloop", level, iArg, nGetArgs, - nPutArgs); - std::string nloops = args[iArg++]; - auto arg1 = StringTo(nloops); - det->setPatternLoopCycles(level, arg1, std::vector{det_id}); - os << nloops << '\n'; + if (args.size() == 2) { + int level = StringTo(args[0]); + int nloops = StringTo(args[1]); + det->setPatternLoopCycles(level, nloops, std::vector{det_id}); + os << nloops << '\n'; + } } return os.str(); @@ -8254,19 +8320,29 @@ std::string Caller::patnloop1(int action) { return os.str(); } + GetLevelAndInsertIntoArgs("patnloop"); // check if action and arguments are valid if (action == slsDetectorDefs::GET_ACTION) { - if (0) { + if (1 && args.size() != 1) { throw RuntimeError("Wrong number of arguments for action GET"); } + if (args.size() == 1) { + int level = StringTo(args[0]); + } + } else if (action == slsDetectorDefs::PUT_ACTION) { - if (0) { + if (1 && args.size() != 2) { throw RuntimeError("Wrong number of arguments for action PUT"); } + if (args.size() == 2) { + int level = StringTo(args[0]); + int nloops = StringTo(args[1]); + } + } else { @@ -8277,21 +8353,20 @@ std::string Caller::patnloop1(int action) { // generate code for each action if (action == slsDetectorDefs::GET_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patnloop", level, iArg, nGetArgs, - nPutArgs); - auto t = det->getPatternLoopCycles(level, std::vector{det_id}); - os << OutString(t) << '\n'; + if (args.size() == 1) { + int level = StringTo(args[0]); + auto t = det->getPatternLoopCycles(level, std::vector{det_id}); + os << OutString(t) << '\n'; + } } if (action == slsDetectorDefs::PUT_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patnloop", level, iArg, nGetArgs, - nPutArgs); - std::string nloops = args[iArg++]; - auto arg1 = StringTo(nloops); - det->setPatternLoopCycles(level, arg1, std::vector{det_id}); - os << nloops << '\n'; + if (args.size() == 2) { + int level = StringTo(args[0]); + int nloops = StringTo(args[1]); + det->setPatternLoopCycles(level, nloops, std::vector{det_id}); + os << nloops << '\n'; + } } return os.str(); @@ -8308,19 +8383,29 @@ std::string Caller::patnloop2(int action) { return os.str(); } + GetLevelAndInsertIntoArgs("patnloop"); // check if action and arguments are valid if (action == slsDetectorDefs::GET_ACTION) { - if (0) { + if (1 && args.size() != 1) { throw RuntimeError("Wrong number of arguments for action GET"); } + if (args.size() == 1) { + int level = StringTo(args[0]); + } + } else if (action == slsDetectorDefs::PUT_ACTION) { - if (0) { + if (1 && args.size() != 2) { throw RuntimeError("Wrong number of arguments for action PUT"); } + if (args.size() == 2) { + int level = StringTo(args[0]); + int nloops = StringTo(args[1]); + } + } else { @@ -8331,21 +8416,20 @@ std::string Caller::patnloop2(int action) { // generate code for each action if (action == slsDetectorDefs::GET_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patnloop", level, iArg, nGetArgs, - nPutArgs); - auto t = det->getPatternLoopCycles(level, std::vector{det_id}); - os << OutString(t) << '\n'; + if (args.size() == 1) { + int level = StringTo(args[0]); + auto t = det->getPatternLoopCycles(level, std::vector{det_id}); + os << OutString(t) << '\n'; + } } if (action == slsDetectorDefs::PUT_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patnloop", level, iArg, nGetArgs, - nPutArgs); - std::string nloops = args[iArg++]; - auto arg1 = StringTo(nloops); - det->setPatternLoopCycles(level, arg1, std::vector{det_id}); - os << nloops << '\n'; + if (args.size() == 2) { + int level = StringTo(args[0]); + int nloops = StringTo(args[1]); + det->setPatternLoopCycles(level, nloops, std::vector{det_id}); + os << nloops << '\n'; + } } return os.str(); @@ -8503,19 +8587,29 @@ std::string Caller::patwait(int action) { return os.str(); } + GetLevelAndInsertIntoArgs("patwait"); // check if action and arguments are valid if (action == slsDetectorDefs::GET_ACTION) { - if (0) { + if (1 && args.size() != 1) { throw RuntimeError("Wrong number of arguments for action GET"); } + if (args.size() == 1) { + int level = StringTo(args[0]); + } + } else if (action == slsDetectorDefs::PUT_ACTION) { - if (0) { + if (1 && args.size() != 2) { throw RuntimeError("Wrong number of arguments for action PUT"); } + if (args.size() == 2) { + int level = StringTo(args[0]); + int addr = StringTo(args[1]); + } + } else { @@ -8526,20 +8620,20 @@ std::string Caller::patwait(int action) { // generate code for each action if (action == slsDetectorDefs::GET_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patwait", level, iArg, nGetArgs, - nPutArgs); - auto t = det->getPatternWaitAddr(level, std::vector{det_id}); - os << level << ' ' << OutStringHex(t, 4) << '\n'; + if (args.size() == 1) { + int level = StringTo(args[0]); + auto t = det->getPatternWaitAddr(level, std::vector{det_id}); + os << level << ' ' << OutStringHex(t, 4) << '\n'; + } } if (action == slsDetectorDefs::PUT_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patwait", level, iArg, nGetArgs, - nPutArgs); - int addr = StringTo(args[iArg++]); - det->setPatternWaitAddr(level, addr, std::vector{det_id}); - os << level << ' ' << ToStringHex(addr, 4) << '\n'; + if (args.size() == 2) { + int level = StringTo(args[0]); + int addr = StringTo(args[1]); + det->setPatternWaitAddr(level, addr, std::vector{det_id}); + os << level << ' ' << ToStringHex(addr, 4) << '\n'; + } } return os.str(); @@ -8556,19 +8650,29 @@ std::string Caller::patwait0(int action) { return os.str(); } + GetLevelAndInsertIntoArgs("patwait"); // check if action and arguments are valid if (action == slsDetectorDefs::GET_ACTION) { - if (0) { + if (1 && args.size() != 1) { throw RuntimeError("Wrong number of arguments for action GET"); } + if (args.size() == 1) { + int level = StringTo(args[0]); + } + } else if (action == slsDetectorDefs::PUT_ACTION) { - if (0) { + if (1 && args.size() != 2) { throw RuntimeError("Wrong number of arguments for action PUT"); } + if (args.size() == 2) { + int level = StringTo(args[0]); + int addr = StringTo(args[1]); + } + } else { @@ -8579,20 +8683,20 @@ std::string Caller::patwait0(int action) { // generate code for each action if (action == slsDetectorDefs::GET_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patwait", level, iArg, nGetArgs, - nPutArgs); - auto t = det->getPatternWaitAddr(level, std::vector{det_id}); - os << OutStringHex(t, 4) << '\n'; + if (args.size() == 1) { + int level = StringTo(args[0]); + auto t = det->getPatternWaitAddr(level, std::vector{det_id}); + os << OutStringHex(t, 4) << '\n'; + } } if (action == slsDetectorDefs::PUT_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patwait", level, iArg, nGetArgs, - nPutArgs); - int addr = StringTo(args[iArg++]); - det->setPatternWaitAddr(level, addr, std::vector{det_id}); - os << ToStringHex(addr, 4) << '\n'; + if (args.size() == 2) { + int level = StringTo(args[0]); + int addr = StringTo(args[1]); + det->setPatternWaitAddr(level, addr, std::vector{det_id}); + os << ToStringHex(addr, 4) << '\n'; + } } return os.str(); @@ -8609,19 +8713,29 @@ std::string Caller::patwait1(int action) { return os.str(); } + GetLevelAndInsertIntoArgs("patwait"); // check if action and arguments are valid if (action == slsDetectorDefs::GET_ACTION) { - if (0) { + if (1 && args.size() != 1) { throw RuntimeError("Wrong number of arguments for action GET"); } + if (args.size() == 1) { + int level = StringTo(args[0]); + } + } else if (action == slsDetectorDefs::PUT_ACTION) { - if (0) { + if (1 && args.size() != 2) { throw RuntimeError("Wrong number of arguments for action PUT"); } + if (args.size() == 2) { + int level = StringTo(args[0]); + int addr = StringTo(args[1]); + } + } else { @@ -8632,20 +8746,20 @@ std::string Caller::patwait1(int action) { // generate code for each action if (action == slsDetectorDefs::GET_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patwait", level, iArg, nGetArgs, - nPutArgs); - auto t = det->getPatternWaitAddr(level, std::vector{det_id}); - os << OutStringHex(t, 4) << '\n'; + if (args.size() == 1) { + int level = StringTo(args[0]); + auto t = det->getPatternWaitAddr(level, std::vector{det_id}); + os << OutStringHex(t, 4) << '\n'; + } } if (action == slsDetectorDefs::PUT_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patwait", level, iArg, nGetArgs, - nPutArgs); - int addr = StringTo(args[iArg++]); - det->setPatternWaitAddr(level, addr, std::vector{det_id}); - os << ToStringHex(addr, 4) << '\n'; + if (args.size() == 2) { + int level = StringTo(args[0]); + int addr = StringTo(args[1]); + det->setPatternWaitAddr(level, addr, std::vector{det_id}); + os << ToStringHex(addr, 4) << '\n'; + } } return os.str(); @@ -8662,19 +8776,29 @@ std::string Caller::patwait2(int action) { return os.str(); } + GetLevelAndInsertIntoArgs("patwait"); // check if action and arguments are valid if (action == slsDetectorDefs::GET_ACTION) { - if (0) { + if (1 && args.size() != 1) { throw RuntimeError("Wrong number of arguments for action GET"); } + if (args.size() == 1) { + int level = StringTo(args[0]); + } + } else if (action == slsDetectorDefs::PUT_ACTION) { - if (0) { + if (1 && args.size() != 2) { throw RuntimeError("Wrong number of arguments for action PUT"); } + if (args.size() == 2) { + int level = StringTo(args[0]); + int addr = StringTo(args[1]); + } + } else { @@ -8685,233 +8809,20 @@ std::string Caller::patwait2(int action) { // generate code for each action if (action == slsDetectorDefs::GET_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patwait", level, iArg, nGetArgs, - nPutArgs); - auto t = det->getPatternWaitAddr(level, std::vector{det_id}); - os << OutStringHex(t, 4) << '\n'; + if (args.size() == 1) { + int level = StringTo(args[0]); + auto t = det->getPatternWaitAddr(level, std::vector{det_id}); + os << OutStringHex(t, 4) << '\n'; + } } if (action == slsDetectorDefs::PUT_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patwait", level, iArg, nGetArgs, - nPutArgs); - int addr = StringTo(args[iArg++]); - det->setPatternWaitAddr(level, addr, std::vector{det_id}); - os << ToStringHex(addr, 4) << '\n'; - } - - return os.str(); -} - -std::string Caller::patwaittime(int action) { - - std::ostringstream os; - // print help - if (action == slsDetectorDefs::HELP_ACTION) { - os << R"V0G0N([0-6] [n_clk] - [Ctb][Mythen3][Xilinx Ctb] Wait time in clock cycles for the loop provided. - [Mythen3] Level options: 0-3 only. )V0G0N" - << std::endl; - return os.str(); - } - - // check if action and arguments are valid - if (action == slsDetectorDefs::GET_ACTION) { - if (0) { - throw RuntimeError("Wrong number of arguments for action GET"); + if (args.size() == 2) { + int level = StringTo(args[0]); + int addr = StringTo(args[1]); + det->setPatternWaitAddr(level, addr, std::vector{det_id}); + os << ToStringHex(addr, 4) << '\n'; } - - } - - else if (action == slsDetectorDefs::PUT_ACTION) { - if (0) { - throw RuntimeError("Wrong number of arguments for action PUT"); - } - - } - - else { - - throw RuntimeError("INTERNAL ERROR: Invalid action: supported actions " - "are ['GET', 'PUT']"); - } - - // generate code for each action - if (action == slsDetectorDefs::GET_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patwaittime", level, iArg, nGetArgs, - nPutArgs); - auto t = det->getPatternWaitTime(level, std::vector{det_id}); - os << level << ' ' << OutString(t) << '\n'; - } - - if (action == slsDetectorDefs::PUT_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patwaittime", level, iArg, nGetArgs, - nPutArgs); - uint64_t waittime = StringTo(args[iArg++]); - det->setPatternWaitTime(level, waittime, std::vector{det_id}); - os << level << ' ' << waittime << '\n'; - } - - return os.str(); -} - -std::string Caller::patwaittime0(int action) { - - std::ostringstream os; - // print help - if (action == slsDetectorDefs::HELP_ACTION) { - os << R"V0G0N( - Deprecated command. Use patwaittime. )V0G0N" - << std::endl; - return os.str(); - } - - // check if action and arguments are valid - if (action == slsDetectorDefs::GET_ACTION) { - if (0) { - throw RuntimeError("Wrong number of arguments for action GET"); - } - - } - - else if (action == slsDetectorDefs::PUT_ACTION) { - if (0) { - throw RuntimeError("Wrong number of arguments for action PUT"); - } - - } - - else { - - throw RuntimeError("INTERNAL ERROR: Invalid action: supported actions " - "are ['GET', 'PUT']"); - } - - // generate code for each action - if (action == slsDetectorDefs::GET_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patwaittime", level, iArg, nGetArgs, - nPutArgs); - auto t = det->getPatternWaitTime(level, std::vector{det_id}); - os << OutString(t) << '\n'; - } - - if (action == slsDetectorDefs::PUT_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patwaittime", level, iArg, nGetArgs, - nPutArgs); - uint64_t waittime = StringTo(args[iArg++]); - det->setPatternWaitTime(level, waittime, std::vector{det_id}); - os << waittime << '\n'; - } - - return os.str(); -} - -std::string Caller::patwaittime1(int action) { - - std::ostringstream os; - // print help - if (action == slsDetectorDefs::HELP_ACTION) { - os << R"V0G0N( - Deprecated command. Use patwaittime. )V0G0N" - << std::endl; - return os.str(); - } - - // check if action and arguments are valid - if (action == slsDetectorDefs::GET_ACTION) { - if (0) { - throw RuntimeError("Wrong number of arguments for action GET"); - } - - } - - else if (action == slsDetectorDefs::PUT_ACTION) { - if (0) { - throw RuntimeError("Wrong number of arguments for action PUT"); - } - - } - - else { - - throw RuntimeError("INTERNAL ERROR: Invalid action: supported actions " - "are ['GET', 'PUT']"); - } - - // generate code for each action - if (action == slsDetectorDefs::GET_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patwaittime", level, iArg, nGetArgs, - nPutArgs); - auto t = det->getPatternWaitTime(level, std::vector{det_id}); - os << OutString(t) << '\n'; - } - - if (action == slsDetectorDefs::PUT_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patwaittime", level, iArg, nGetArgs, - nPutArgs); - uint64_t waittime = StringTo(args[iArg++]); - det->setPatternWaitTime(level, waittime, std::vector{det_id}); - os << waittime << '\n'; - } - - return os.str(); -} - -std::string Caller::patwaittime2(int action) { - - std::ostringstream os; - // print help - if (action == slsDetectorDefs::HELP_ACTION) { - os << R"V0G0N( - Deprecated command. Use patwaittime. )V0G0N" - << std::endl; - return os.str(); - } - - // check if action and arguments are valid - if (action == slsDetectorDefs::GET_ACTION) { - if (0) { - throw RuntimeError("Wrong number of arguments for action GET"); - } - - } - - else if (action == slsDetectorDefs::PUT_ACTION) { - if (0) { - throw RuntimeError("Wrong number of arguments for action PUT"); - } - - } - - else { - - throw RuntimeError("INTERNAL ERROR: Invalid action: supported actions " - "are ['GET', 'PUT']"); - } - - // generate code for each action - if (action == slsDetectorDefs::GET_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patwaittime", level, iArg, nGetArgs, - nPutArgs); - auto t = det->getPatternWaitTime(level, std::vector{det_id}); - os << OutString(t) << '\n'; - } - - if (action == slsDetectorDefs::PUT_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patwaittime", level, iArg, nGetArgs, - nPutArgs); - uint64_t waittime = StringTo(args[iArg++]); - det->setPatternWaitTime(level, waittime, std::vector{det_id}); - os << waittime << '\n'; } return os.str(); diff --git a/slsDetectorSoftware/src/Caller.h b/slsDetectorSoftware/src/Caller.h index b1f1e58b3..65958653c 100644 --- a/slsDetectorSoftware/src/Caller.h +++ b/slsDetectorSoftware/src/Caller.h @@ -19,10 +19,7 @@ class Caller { IpAddr getDstIpFromAuto(); IpAddr getSrcIpFromAuto(); UdpDestination getUdpEntry(); - void GetLevelAndUpdateArgIndex(int action, - std::string levelSeparatedCommand, - int &level, int &iArg, size_t nGetArgs, - size_t nPutArgs); + int GetLevelAndInsertIntoArgs(std::string levelSeparatedCommand); void WrongNumberOfParameters(size_t expected); template std::string OutStringHex(const V &value) { @@ -207,9 +204,6 @@ class Caller { std::string patwait1(int action); std::string patwait2(int action); std::string patwaittime(int action); - std::string patwaittime0(int action); - std::string patwaittime1(int action); - std::string patwaittime2(int action); std::string patword(int action); std::string pedestalmode(int action); std::string period(int action); @@ -556,9 +550,9 @@ class Caller { {"patwait1", &Caller::patwait1}, {"patwait2", &Caller::patwait2}, {"patwaittime", &Caller::patwaittime}, - {"patwaittime0", &Caller::patwaittime0}, - {"patwaittime1", &Caller::patwaittime1}, - {"patwaittime2", &Caller::patwaittime2}, + {"patwaittime0", &Caller::patwaittime}, + {"patwaittime1", &Caller::patwaittime}, + {"patwaittime2", &Caller::patwaittime}, {"patword", &Caller::patword}, {"pedestalmode", &Caller::pedestalmode}, {"period", &Caller::period}, diff --git a/slsDetectorSoftware/src/CallerSpecial.cpp b/slsDetectorSoftware/src/CallerSpecial.cpp index 341980859..12e02b0ff 100644 --- a/slsDetectorSoftware/src/CallerSpecial.cpp +++ b/slsDetectorSoftware/src/CallerSpecial.cpp @@ -175,28 +175,16 @@ void Caller::WrongNumberOfParameters(size_t expected) { std::to_string(args.size()) + "\n"); } -void Caller::GetLevelAndUpdateArgIndex(int action, - std::string levelSeparatedCommand, - int &level, int &iArg, size_t nGetArgs, - size_t nPutArgs) { - if (cmd == levelSeparatedCommand) { - ++nGetArgs; - ++nPutArgs; - } else { +int Caller::GetLevelAndInsertIntoArgs(std::string levelSeparatedCommand) { + if (cmd != levelSeparatedCommand) { LOG(logWARNING) << "This command is deprecated and will be removed. " "Please migrate to " << levelSeparatedCommand; + int level = cmd[cmd.find_first_of("012")] - '0'; + args.insert(args.begin(), std::to_string(level)); + return true; } - if (action == defs::GET_ACTION && args.size() != nGetArgs) { - WrongNumberOfParameters(nGetArgs); - } else if (action == defs::PUT_ACTION && args.size() != nPutArgs) { - WrongNumberOfParameters(nPutArgs); - } - if (cmd == levelSeparatedCommand) { - level = StringTo(args[iArg++]); - } else { - level = cmd[cmd.find_first_of("012")] - '0'; - } + return false; } std::string Caller::free(int action) { @@ -1017,6 +1005,81 @@ std::string Caller::slowadc(int action) { } return os.str(); } +std::string Caller::patwaittime(int action) { + std::ostringstream os; + + if (action == defs::HELP_ACTION) { + os << "[0-6] [n_clk] \n\t[Ctb][Mythen3][Xilinx Ctb] Wait time in clock " + "cycles for the loop provided.\n\t[Mythen3] Level options: 0-3 " + "only." + << '\n'; + return os.str(); + } + + // parse level + bool deprecated_cmd = GetLevelAndInsertIntoArgs("patwaittime"); + int level = 0; + try { + if (args.size() > 0) + level = StringTo(args[0]); + } catch (const std::exception &e) { + LOG(logERROR) << "Could not scan level."; + throw; + } + if (!deprecated_cmd && args.size() >= 1) + os << args[0] << ' '; + + if (action == defs::GET_ACTION) { + if (args.size() != 1 && args.size() != 2) + WrongNumberOfParameters(1); + // with time unit + if (args.size() == 2) { + auto t = + det->getPatternWaitInterval(level, std::vector{det_id}); + os << OutString(t, args[1]) << '\n'; + } + // in clocks + else { + auto t = det->getPatternWaitClocks(level, std::vector{det_id}); + os << OutString(t) << '\n'; + } + } else if (action == defs::PUT_ACTION) { + if (args.size() != 2 && args.size() != 3) + WrongNumberOfParameters(2); + // clocks (all digits) + if (args.size() == 2 && + std::all_of(args[1].begin(), args[1].end(), ::isdigit)) { + uint64_t waittime = StringTo(args[1]); + det->setPatternWaitClocks(level, waittime, + std::vector{det_id}); + os << waittime << '\n'; + } + // time + else { + time::ns converted_time{0}; + try { + if (args.size() == 2) { + std::string tmp_time(args[1]); + std::string unit = RemoveUnit(tmp_time); + converted_time = StringTo(tmp_time, unit); + } else { + converted_time = StringTo(args[1], args[2]); + } + } catch (...) { + throw RuntimeError("Could not convert argument to time::ns"); + } + det->setPatternWaitInterval(level, converted_time, + std::vector{det_id}); + os << args[1]; + if (args.size() == 3) + os << ' ' << args[2]; + os << '\n'; + } + } else { + throw RuntimeError("Unknown action"); + } + return os.str(); +} std::string Caller::rx_dbitlist(int action) { std::ostringstream os; if (action == defs::HELP_ACTION) { diff --git a/slsDetectorSoftware/src/Detector.cpp b/slsDetectorSoftware/src/Detector.cpp index b2d24bf1e..d8d78f9d7 100644 --- a/slsDetectorSoftware/src/Detector.cpp +++ b/slsDetectorSoftware/src/Detector.cpp @@ -2593,12 +2593,21 @@ void Detector::setPatternWaitAddr(int level, int addr, Positions pos) { pimpl->Parallel(&Module::setPatternWaitAddr, pos, level, addr); } -Result Detector::getPatternWaitTime(int level, Positions pos) const { - return pimpl->Parallel(&Module::getPatternWaitTime, pos, level); +Result Detector::getPatternWaitClocks(int level, + Positions pos) const { + return pimpl->Parallel(&Module::getPatternWaitClocks, pos, level); } -void Detector::setPatternWaitTime(int level, uint64_t t, Positions pos) { - pimpl->Parallel(&Module::setPatternWaitTime, pos, level, t); +void Detector::setPatternWaitClocks(int level, uint64_t t, Positions pos) { + pimpl->Parallel(&Module::setPatternWaitClocks, pos, level, t); +} + +Result Detector::getPatternWaitInterval(int level, Positions pos) const { + return pimpl->Parallel(&Module::getPatternWaitInterval, pos, level); +} + +void Detector::setPatternWaitInterval(int level, ns t, Positions pos) { + pimpl->Parallel(&Module::setPatternWaitInterval, pos, level, t.count()); } Result Detector::getPatternMask(Positions pos) { diff --git a/slsDetectorSoftware/src/Module.cpp b/slsDetectorSoftware/src/Module.cpp index fc85109c2..fe52b4d64 100644 --- a/slsDetectorSoftware/src/Module.cpp +++ b/slsDetectorSoftware/src/Module.cpp @@ -634,10 +634,22 @@ void Module::setNumberOfTriggers(int64_t value) { } int64_t Module::getExptime(int gateIndex) const { + if (shm()->detType == CHIPTESTBOARD || + shm()->detType == XILINX_CHIPTESTBOARD) { + LOG(logWARNING) + << "Exposure time is deprecated and will be removed for this " + "detector. Please migrate to patwaittime."; + } return sendToDetector(F_GET_EXPTIME, gateIndex); } void Module::setExptime(int gateIndex, int64_t value) { + if (shm()->detType == CHIPTESTBOARD || + shm()->detType == XILINX_CHIPTESTBOARD) { + LOG(logWARNING) + << "Exposure time is deprecated and will be removed for this " + "detector. Please migrate to patwaittime."; + } int64_t prevVal = value; if (shm()->detType == EIGER) { prevVal = getExptime(-1); @@ -2621,15 +2633,23 @@ void Module::setPatternWaitAddr(int level, int addr) { sendToDetector(F_SET_PATTERN_WAIT_ADDR, args); } -uint64_t Module::getPatternWaitTime(int level) const { +uint64_t Module::getPatternWaitClocks(int level) const { uint64_t args[]{static_cast(level), static_cast(GET_FLAG)}; - return sendToDetector(F_SET_PATTERN_WAIT_TIME, args); + return sendToDetector(F_SET_PATTERN_WAIT_CLOCKS, args); } -void Module::setPatternWaitTime(int level, uint64_t t) { +void Module::setPatternWaitClocks(int level, uint64_t t) { uint64_t args[]{static_cast(level), t}; - sendToDetector(F_SET_PATTERN_WAIT_TIME, args); + sendToDetector(F_SET_PATTERN_WAIT_CLOCKS, args); +} + +uint64_t Module::getPatternWaitInterval(int level) const { + return sendToDetector(F_GET_PATTERN_WAIT_INTERVAL, level); +} +void Module::setPatternWaitInterval(int level, uint64_t t) { + uint64_t args[]{static_cast(level), t}; + sendToDetector(F_SET_PATTERN_WAIT_INTERVAL, args, nullptr); } uint64_t Module::getPatternMask() const { diff --git a/slsDetectorSoftware/src/Module.h b/slsDetectorSoftware/src/Module.h index aa6f02f1a..6f0afc41c 100644 --- a/slsDetectorSoftware/src/Module.h +++ b/slsDetectorSoftware/src/Module.h @@ -550,8 +550,10 @@ class Module : public virtual slsDetectorDefs { void setPatternLoopCycles(int level, int n); int getPatternWaitAddr(int level) const; void setPatternWaitAddr(int level, int addr); - uint64_t getPatternWaitTime(int level) const; - void setPatternWaitTime(int level, uint64_t t); + uint64_t getPatternWaitClocks(int level) const; + void setPatternWaitClocks(int level, uint64_t t); + uint64_t getPatternWaitInterval(int level) const; + void setPatternWaitInterval(int level, uint64_t t); uint64_t getPatternMask() const; void setPatternMask(uint64_t mask); uint64_t getPatternBitMask() const; diff --git a/slsDetectorSoftware/src/inferAction.cpp b/slsDetectorSoftware/src/inferAction.cpp index 4b46f6bde..0fdfde19c 100644 --- a/slsDetectorSoftware/src/inferAction.cpp +++ b/slsDetectorSoftware/src/inferAction.cpp @@ -2012,29 +2012,13 @@ int InferAction::patlimits() { "sls_detector_get or sls_detector_put"); } -int InferAction::patloop() { +int InferAction::patloop() { throw RuntimeError("infer_action is disabled"); } - throw RuntimeError("sls_detector is disabled for command: patloop. Use " - "sls_detector_get or sls_detector_put"); -} +int InferAction::patloop0() { throw RuntimeError("infer_action is disabled"); } -int InferAction::patloop0() { +int InferAction::patloop1() { throw RuntimeError("infer_action is disabled"); } - throw RuntimeError("sls_detector is disabled for command: patloop0. Use " - "sls_detector_get or sls_detector_put"); -} - -int InferAction::patloop1() { - - throw RuntimeError("sls_detector is disabled for command: patloop1. Use " - "sls_detector_get or sls_detector_put"); -} - -int InferAction::patloop2() { - - throw RuntimeError("sls_detector is disabled for command: patloop2. Use " - "sls_detector_get or sls_detector_put"); -} +int InferAction::patloop2() { throw RuntimeError("infer_action is disabled"); } int InferAction::patmask() { @@ -2052,29 +2036,13 @@ int InferAction::patmask() { } } -int InferAction::patnloop() { +int InferAction::patnloop() { throw RuntimeError("infer_action is disabled"); } - throw RuntimeError("sls_detector is disabled for command: patnloop. Use " - "sls_detector_get or sls_detector_put"); -} +int InferAction::patnloop0() { throw RuntimeError("infer_action is disabled"); } -int InferAction::patnloop0() { +int InferAction::patnloop1() { throw RuntimeError("infer_action is disabled"); } - throw RuntimeError("sls_detector is disabled for command: patnloop0. Use " - "sls_detector_get or sls_detector_put"); -} - -int InferAction::patnloop1() { - - throw RuntimeError("sls_detector is disabled for command: patnloop1. Use " - "sls_detector_get or sls_detector_put"); -} - -int InferAction::patnloop2() { - - throw RuntimeError("sls_detector is disabled for command: patnloop2. Use " - "sls_detector_get or sls_detector_put"); -} +int InferAction::patnloop2() { throw RuntimeError("infer_action is disabled"); } int InferAction::patsetbit() { @@ -2116,29 +2084,13 @@ int InferAction::patternstart() { } } -int InferAction::patwait() { +int InferAction::patwait() { throw RuntimeError("infer_action is disabled"); } - throw RuntimeError("sls_detector is disabled for command: patwait. Use " - "sls_detector_get or sls_detector_put"); -} +int InferAction::patwait0() { throw RuntimeError("infer_action is disabled"); } -int InferAction::patwait0() { +int InferAction::patwait1() { throw RuntimeError("infer_action is disabled"); } - throw RuntimeError("sls_detector is disabled for command: patwait0. Use " - "sls_detector_get or sls_detector_put"); -} - -int InferAction::patwait1() { - - throw RuntimeError("sls_detector is disabled for command: patwait1. Use " - "sls_detector_get or sls_detector_put"); -} - -int InferAction::patwait2() { - - throw RuntimeError("sls_detector is disabled for command: patwait2. Use " - "sls_detector_get or sls_detector_put"); -} +int InferAction::patwait2() { throw RuntimeError("infer_action is disabled"); } int InferAction::patwaittime() { @@ -2146,24 +2098,6 @@ int InferAction::patwaittime() { "sls_detector_get or sls_detector_put"); } -int InferAction::patwaittime0() { - - throw RuntimeError("sls_detector is disabled for command: patwaittime0. " - "Use sls_detector_get or sls_detector_put"); -} - -int InferAction::patwaittime1() { - - throw RuntimeError("sls_detector is disabled for command: patwaittime1. " - "Use sls_detector_get or sls_detector_put"); -} - -int InferAction::patwaittime2() { - - throw RuntimeError("sls_detector is disabled for command: patwaittime2. " - "Use sls_detector_get or sls_detector_put"); -} - int InferAction::patword() { if (args.size() == 1) { diff --git a/slsDetectorSoftware/src/inferAction.h b/slsDetectorSoftware/src/inferAction.h index dc44bf83f..b09c505f7 100644 --- a/slsDetectorSoftware/src/inferAction.h +++ b/slsDetectorSoftware/src/inferAction.h @@ -161,9 +161,6 @@ class InferAction { int patwait1(); int patwait2(); int patwaittime(); - int patwaittime0(); - int patwaittime1(); - int patwaittime2(); int patword(); int pedestalmode(); int period(); @@ -498,9 +495,9 @@ class InferAction { {"patwait1", &InferAction::patwait1}, {"patwait2", &InferAction::patwait2}, {"patwaittime", &InferAction::patwaittime}, - {"patwaittime0", &InferAction::patwaittime0}, - {"patwaittime1", &InferAction::patwaittime1}, - {"patwaittime2", &InferAction::patwaittime2}, + {"patwaittime0", &InferAction::patwaittime}, + {"patwaittime1", &InferAction::patwaittime}, + {"patwaittime2", &InferAction::patwaittime}, {"patword", &InferAction::patword}, {"pedestalmode", &InferAction::pedestalmode}, {"period", &InferAction::period}, diff --git a/slsDetectorSoftware/tests/Caller/test-Caller-pattern.cpp b/slsDetectorSoftware/tests/Caller/test-Caller-pattern.cpp index 60e1f460e..f80b0863c 100644 --- a/slsDetectorSoftware/tests/Caller/test-Caller-pattern.cpp +++ b/slsDetectorSoftware/tests/Caller/test-Caller-pattern.cpp @@ -329,7 +329,7 @@ TEST_CASE("patwaittime", "[.cmdcall]") { if (det_type == defs::MYTHEN3 && iLoop >= 3) { continue; } - auto prev_val = det.getPatternWaitTime(iLoop); + auto prev_val = det.getPatternWaitClocks(iLoop); std::string sLoop = ToString(iLoop); if (iLoop < 3) { std::string deprecatedCmd = "patwaittime" + sLoop; @@ -354,8 +354,24 @@ TEST_CASE("patwaittime", "[.cmdcall]") { caller.call("patwaittime", {sLoop}, -1, GET, oss); REQUIRE(oss.str() == "patwaittime " + sLoop + " 8589936640\n"); } + // time units + { + std::ostringstream oss; + caller.call("patwaittime", {sLoop, "50us"}, -1, PUT, oss); + REQUIRE(oss.str() == "patwaittime " + sLoop + " 50us\n"); + } + { + std::ostringstream oss; + caller.call("patwaittime", {sLoop, "us"}, -1, GET, oss); + REQUIRE(oss.str() == "patwaittime " + sLoop + " 50us\n"); + if (iLoop == 0 && det_type != defs::MYTHEN3) { + std::ostringstream oss; + caller.call("exptime", {"us"}, -1, GET, oss); + REQUIRE(oss.str() == "exptime 50us\n"); + } + } for (int iDet = 0; iDet != det.size(); ++iDet) { - det.setPatternWaitTime(iLoop, prev_val[iDet], {iDet}); + det.setPatternWaitClocks(iLoop, prev_val[iDet], {iDet}); } } } else { diff --git a/slsSupportLib/include/sls/sls_detector_funcs.h b/slsSupportLib/include/sls/sls_detector_funcs.h index badbd29af..54a64a2f5 100755 --- a/slsSupportLib/include/sls/sls_detector_funcs.h +++ b/slsSupportLib/include/sls/sls_detector_funcs.h @@ -80,7 +80,7 @@ enum detFuncs { F_SET_PATTERN_LOOP_ADDRESSES, F_SET_PATTERN_LOOP_CYCLES, F_SET_PATTERN_WAIT_ADDR, - F_SET_PATTERN_WAIT_TIME, + F_SET_PATTERN_WAIT_CLOCKS, F_SET_PATTERN_MASK, F_GET_PATTERN_MASK, F_SET_PATTERN_BIT_MASK, @@ -297,6 +297,8 @@ enum detFuncs { F_SET_TIMING_INFO_DECODER, F_GET_COLLECTION_MODE, F_SET_COLLECTION_MODE, + F_GET_PATTERN_WAIT_INTERVAL, + F_SET_PATTERN_WAIT_INTERVAL, NUM_DET_FUNCTIONS, RECEIVER_ENUM_START = 512, /**< detector function should not exceed this @@ -486,7 +488,7 @@ const char* getFunctionNameFromEnum(enum detFuncs func) { case F_SET_PATTERN_LOOP_ADDRESSES: return "F_SET_PATTERN_LOOP_ADDRESSES"; case F_SET_PATTERN_LOOP_CYCLES: return "F_SET_PATTERN_LOOP_CYCLES"; case F_SET_PATTERN_WAIT_ADDR: return "F_SET_PATTERN_WAIT_ADDR"; - case F_SET_PATTERN_WAIT_TIME: return "F_SET_PATTERN_WAIT_TIME"; + case F_SET_PATTERN_WAIT_CLOCKS: return "F_SET_PATTERN_WAIT_CLOCKS"; case F_SET_PATTERN_MASK: return "F_SET_PATTERN_MASK"; case F_GET_PATTERN_MASK: return "F_GET_PATTERN_MASK"; case F_SET_PATTERN_BIT_MASK: return "F_SET_PATTERN_BIT_MASK"; @@ -701,6 +703,8 @@ const char* getFunctionNameFromEnum(enum detFuncs func) { case F_SET_TIMING_INFO_DECODER: return "F_SET_TIMING_INFO_DECODER"; case F_GET_COLLECTION_MODE: return "F_GET_COLLECTION_MODE"; case F_SET_COLLECTION_MODE: return "F_SET_COLLECTION_MODE"; + case F_GET_PATTERN_WAIT_INTERVAL: return "F_GET_PATTERN_WAIT_INTERVAL"; + case F_SET_PATTERN_WAIT_INTERVAL: return "F_SET_PATTERN_WAIT_INTERVAL"; case NUM_DET_FUNCTIONS: return "NUM_DET_FUNCTIONS"; case RECEIVER_ENUM_START: return "RECEIVER_ENUM_START"; diff --git a/slsSupportLib/include/sls/versionAPI.h b/slsSupportLib/include/sls/versionAPI.h index dde27f97d..649399f08 100644 --- a/slsSupportLib/include/sls/versionAPI.h +++ b/slsSupportLib/include/sls/versionAPI.h @@ -1,13 +1,13 @@ // SPDX-License-Identifier: LGPL-3.0-or-other // Copyright (C) 2021 Contributors to the SLS Detector Package /** API versions */ -#define APICTB "developer 0x241107" #define APIGOTTHARD "developer 0x241107" #define APIGOTTHARD2 "developer 0x241107" #define APIMOENCH "developer 0x241107" -#define APIXILINXCTB "developer 0x241107" #define APIEIGER "developer 0x241107" #define APIJUNGFRAU "developer 0x241120" -#define APIMYTHEN3 "developer 0x241121" #define APILIB "developer 0x241122" #define APIRECEIVER "developer 0x241122" +#define APIXILINXCTB "developer 0x250131" +#define APICTB "developer 0x250131" +#define APIMYTHEN3 "developer 0x250131" From 6e826d284068729674b1515340aacebd021bb537 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Fri, 31 Jan 2025 17:05:58 +0100 Subject: [PATCH 11/11] Pyctbgui/taborder pattern (#1082) * tab order for pattern tab --- pyctbgui/pyctbgui/ui/pattern.ui | 71 +++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/pyctbgui/pyctbgui/ui/pattern.ui b/pyctbgui/pyctbgui/ui/pattern.ui index 400a243ab..8bd788f6a 100644 --- a/pyctbgui/pyctbgui/ui/pattern.ui +++ b/pyctbgui/pyctbgui/ui/pattern.ui @@ -3271,6 +3271,77 @@ + + spinBoxLoop0Repetition + lineEditLoop0Start + lineEditLoop0Stop + spinBoxLoop1Repetition + lineEditLoop1Start + lineEditLoop1Stop + spinBoxLoop2Repetition + lineEditLoop2Start + lineEditLoop2Stop + spinBoxLoop3Repetition + lineEditLoop3Start + lineEditLoop3Stop + spinBoxLoop4Repetition + lineEditLoop4Start + lineEditLoop4Stop + spinBoxLoop5Repetition + lineEditLoop5Start + lineEditLoop5Stop + lineEditStartAddress + lineEditStopAddress + toolButtonTogglePageWaitTime + lineEditLoop0Wait + doubleSpinBoxLoop0WaitClocks + lineEditLoop1Wait + doubleSpinBoxLoop1WaitClocks + lineEditLoop2Wait + doubleSpinBoxLoop2WaitClocks + lineEditLoop3Wait + doubleSpinBoxLoop3WaitClocks + lineEditLoop4Wait + doubleSpinBoxLoop4WaitClocks + lineEditLoop5Wait + doubleSpinBoxLoop5WaitClocks + spinBoxLoop0WaitInterval + comboBoxLoop0WaitInterval + spinBoxLoop1WaitInterval + comboBoxLoop1WaitInterval + spinBoxLoop2WaitInterval + comboBoxLoop2WaitInterval + spinBoxLoop3WaitInterval + comboBoxLoop3WaitInterval + spinBoxLoop4WaitInterval + comboBoxLoop4WaitInterval + spinBoxLoop5WaitInterval + comboBoxLoop5WaitInterval + lineEditCompiler + pushButtonCompiler + lineEditUncompiled + pushButtonUncompiled + lineEditPatternFile + pushButtonPatternFile + comboBoxPatWait + comboBoxPatWaitColor + comboBoxPatWaitLineStyle + doubleSpinBoxWaitAlpha + doubleSpinBoxWaitAlphaRect + comboBoxPatLoop + comboBoxPatLoopColor + comboBoxPatLoopLineStyle + doubleSpinBoxLoopAlpha + doubleSpinBoxLoopAlphaRect + comboBoxPatColorSelect + comboBoxPatColor + spinBoxPatClockSpacing + checkBoxPatShowClockNumber + doubleSpinBoxLineWidth + checkBoxCompile + pushButtonLoadPattern + pushButtonViewPattern +