Changes for page The FLASH HDF5 structure
Last modified by sndueste on 2025/09/10 11:43
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -103,11 +103,10 @@ 103 103 {{/info}} 104 104 {{/layout-cell}} 105 105 {{/layout-section}} 106 +{{/layout}} 106 106 107 -{{layout-section ac:type="single"}} 108 -{{layout-cell}} 109 - 110 110 109 + 111 111 == Complete list of recordable parameters == 112 112 113 113 The complete list for the relation between DOOCS names and HDF5 names for the recordable parameters can be found in [[DESY's Repository>>url:https://stash.desy.de/projects/CS/repos/pah/browse/src/camp/data/channel2HdfName.dat||shape="rect"]]. ... ... @@ -116,13 +116,17 @@ 116 116 117 117 {{id name="DOOCSparameters"/}} 118 118 119 -Note, the HDF group and data set names apply to our HDF tree version since vers. 0.3.0. 120 120 121 - 122 122 === FLASH1 === 123 123 124 -==== Beamline info (FLASH1) ==== 125 125 122 +In the Shutdown 2024 / 2025 the complete photon diagnostic and experiment control was renewed and thus the Doocs names and also some HDF5 names had to be changed. The new naming will be documented here as soon as the systems are online again. 123 + 124 +The previously used naming scheme (2024 and before) can be found here: 125 + 126 +{{expand expanded="false" title="FLASH1 Naming scheme used until 2024"}} 127 +==== (% id="cke_bm_8853497S" style="display:none" %) (%%)Beamline info (FLASH1) ==== 128 + 126 126 {{code language="none"}}/FL1/Beamlines/Attenuator/pressure{{/code}} 127 127 //always saved (PBD)// 128 128 DOOCS prop : {{code language="none"}}FLASH.FEL/GAS_DOSING/FL1.ATTENUATOR/PRESSURE{{/code}} ... ... @@ -243,8 +243,8 @@ 243 243 244 244 {{code language="none"}}/FL1/Photon Diagnostic/GMD/Average energy/energy tunnel{{/code}} 245 245 //always saved (PBD)// 246 -(% style="color:#000000" %)DOOCS prop : 247 -(% style="color:#000000" %)DAQ channel: 249 +(% style="color:#000000" %)DOOCS prop : {{code language="none"}}FLASH.FEL/XGM.PHOTONFLUX/FL1.TUNNEL/PHOTONFLUX.UJ{{/code}} (%%) 250 +(% style="color:#000000" %)DAQ channel: {{code language="none"}}FLASH.FEL/XGM.PHOTONFLUX/FL1.TUNNEL/PHOTONFLUX.UJ{{/code}} 248 248 249 249 desc : calibrated average SASE Energy/pulse measured in the TUNNEL upstream the gas attenuator 250 250 units : microJ ... ... @@ -253,8 +253,8 @@ 253 253 {{code language="none"}}/FL1/Photon Diagnostic/GMD/Pulse resolved energy/energy tunnel{{/code}} 254 254 //always saved (PBD)// 255 255 256 -(% style="color:#000000" %)DOOCS prop : 257 -{{code language="none"}}FLASH.FEL/XGM.INTENSITY/FL1.TUNNEL/INTENSITY.TD{{/code}}DAQ channel: {{code language="none"}}FLASH.FEL/XGM.INTENSITY/FL1.TUNNEL/INTENSITY.TD{{/code}} 259 +(% style="color:#000000" %)DOOCS prop : (%%) 260 +(% style="color:#000000" %){{code language="none"}}FLASH.FEL/XGM.INTENSITY/FL1.TUNNEL/INTENSITY.TD{{/code}}DAQ channel: {{code language="none"}}FLASH.FEL/XGM.INTENSITY/FL1.TUNNEL/INTENSITY.TD{{/code}} 258 258 259 259 desc : Energy per pulse measured in the Tunnel. In addition measurement errors and beam position are included for EACH pulse in the pulse train !! (see below) 260 260 units : a.u. (more or less µJ but need to be calibrated with the "Average energy" for good precision)** [[see here for help>>doc:FS-FLASH USER tmp.jddd-linked help pages.Calibrating the pulse resolved (electron) data from GMD.WebHome]]** ... ... @@ -274,8 +274,7 @@ 274 274 The pulse energy and the error are plotted for the first bunch of the pulse trains saved in this 275 275 file 276 276 277 - 278 -[[image:attach:image2021-2-9_10-51-6.png||height="250"]] 280 + [[image:image2021-2-9_10-51-6.png]] 279 279 280 280 281 281 {{/info}} ... ... @@ -467,8 +467,8 @@ 467 467 468 468 //always saved (PBD)// 469 469 (% style="color:#172b4d" %)**FL1.SFELC**(%%) 470 -(% style="color:#000000" %)channel: FLASH.SDIAG/BAM/(% style="color:#172b4d" %)FL1.SFELC(% style="color:#000000" %)/ARRIVAL_TIME.ABSOLUTE.SA1.COMP 471 -{{code language="none"}} DOOCS prop : FLASH.SDIAG/BAM//ARRIVAL_TIME.ABSOLUTE.SA1.COMPDAQ {{/code}}(% style="letter-spacing:0.0px" %)desc: Electron bunch arrival time measured with the BAM before the undulator (pulse resolved data). This one was newly installed in 2020.. The property contains only the arrival time of the bunches sent to FL1 (e.g. if there are 30 bunches in FL1 the first 30 values are the arrival time the remaining numbers still may have arbitrary numbers looking like a signal which they are not). These are the same values as the "raw" data below - just "cleaned". The values show a very good correlation to the arrival time of the XUV pulses in the experiment (see help). 472 +(% style="color:#000000" %)channel: FLASH.SDIAG/BAM/(% style="color:#172b4d" %)FL1.SFELC(% style="color:#000000" %)/ARRIVAL_TIME.ABSOLUTE.SA1.COMP(%%) 473 +(% style="color:#000000" %){{code language="none"}} DOOCS prop : FLASH.SDIAG/BAM//ARRIVAL_TIME.ABSOLUTE.SA1.COMPDAQ {{/code}}(% style="letter-spacing:0.0px" %)desc: Electron bunch arrival time measured with the BAM before the undulator (pulse resolved data). This one was newly installed in 2020.. The property contains only the arrival time of the bunches sent to FL1 (e.g. if there are 30 bunches in FL1 the first 30 values are the arrival time the remaining numbers still may have arbitrary numbers looking like a signal which they are not). These are the same values as the "raw" data below - just "cleaned". The values show a very good correlation to the arrival time of the XUV pulses in the experiment (see help). 472 472 units: fs (bigger numbers (typically) indicate later arrival times of the electrons). 473 473 474 474 ... ... @@ -546,20 +546,23 @@ 546 546 [[Contents>>doc:||anchor="Contents"]] 547 547 548 548 551 +==== ==== 552 + 553 + 549 549 ==== Timing information, rep rate etc. (FLASH1) ==== 550 550 551 551 ===== bunch repetition rate ===== 552 552 553 -{{code language="none"}}/ FL1/Timing/repetition rate{{/code}}558 +{{code language="none"}}/Timing/repetition rate{{/code}} 554 554 //always saved (PBD)// 555 555 DOOCS prop : {{code language="none"}}FLASH.DIAG/TIMER/FLASHCPUTIME1.0/REP_RATE_KHZ.1{{/code}} 556 -DAQ channel: {{code language="none"}} TTF2.UTIL/LASER.CONTROL/GUN/PULSE_FREQ{{/code}}561 +DAQ channel: {{code language="none"}}FLASH.DIAG/TIMER/FLASHCPUTIME1.0/REP_RATE_KHZ.1{{/code}} 557 557 desc: repetition rate of the bunches / pulses within the burst (FLASH1) 558 558 units: kHz 559 559 560 560 ===== set number of pulses ===== 561 561 562 -(% style="color:#ff6600" %)(HDF5 name not yet implemented - see zraw)(% style="color:#ff0000" %){{code language="none"}}/ FL1/Timing/set number of bunches {{/code}}(%%)567 +(% style="color:#ff6600" %)(HDF5 name not yet implemented - see zraw)(% style="color:#ff0000" %){{code language="none"}}/Timing/set number of bunches {{/code}}(%%) 563 563 //always saved (PBD)// 564 564 DOOCS prop : {{code language="none"}}FLASH.DIAG/TIMINGINFO/TIME1.BUNCH_FIRST_INDEX.1 [4th number]{{/code}} 565 565 DAQ channel: {{code language="none"}}FLASH.DIAG/TIMINGINFO/TIME1.BUNCH_FIRST_INDEX.1 [4th number]{{/code}} ... ... @@ -604,12 +604,9 @@ 604 604 second column: microseconds 605 605 third column: Train ID of FLASH 606 606 607 -currently it is saved as Unix time in 612 +currently it is saved as Unix time in : /zraw/FLASH.DIAG/TIMINGINFO/TIME1.BUNCH_FIRST_INDEX.1/dGroup/time 608 608 609 -|((( 610 -/zraw/FLASH.DIAG/TIMINGINFO/TIME1.BUNCH_FIRST_INDEX.1/dGroup/time 611 - 612 -{{expand title="Timestamp help for python" expanded="false"}} 614 +{{expand expanded="false" title="Timestamp help for python"}} 613 613 import time 614 614 615 615 # epoch time is found in /zraw/FLASH.DIAG/TIMINGINFO/TIME1.BUNCH_FIRST_INDEX.1/dGroup/time #!!! a leading 1 has to be added !!! ... ... @@ -620,10 +620,7 @@ 620 620 print(formatted_time) 621 621 {{/expand}} 622 622 623 - 624 -))) 625 625 626 -[[Contents>>doc:||anchor="Contents"]] 627 627 628 628 629 629 ==== Pump Probe Laser (FLASH1) ==== ... ... @@ -741,10 +741,9 @@ 741 741 * {{code language="none"}}number of samples{{/code}}: total number of samples recorded for each 10 Hz trigger 742 742 743 743 [[Contents>>doc:||anchor="Contents"]] 743 +{{/expand}} 744 744 745 745 746 - 747 - 748 748 === FLASH2 === 749 749 750 750 There is analog to FLASH1 a permanently running "PhotonDagnostic DAQ FLASH2" (PBD2) and 2 User DAQs ... ... @@ -752,7 +752,6 @@ 752 752 ==== Beamline info (FLASH2) ==== 753 753 754 754 {{code language="none"}}/FL2/Beamlines/Attenuator/pressure {{/code}} 755 -(% style="color:#000000" %)//always saved (PBD2)// (%%) 756 756 (% style="color:#000000" %)DOOCS prop : {{code language="none"}}FLASH.FEL/ATT.GAS_DOSING/FL2.HALL/PRESSURE{{/code}} (%%) 757 757 (% style="color:#000000" %)DAQ channel: {{code language="none"}}FLASH.FEL/ATT.GAS_DOSING/FL2.HALL/PRESSURE{{/code}} (%%) 758 758 (% style="color:#000000" %)desc: set pressure in the gas attenuator (%%) ... ... @@ -759,7 +759,6 @@ 759 759 (% style="color:#000000" %)units: mbar 760 760 761 761 {{code language="none"}}/FL2/Beamlines/FL20/Shutter/open{{/code}} 762 -//always saved (PBD2)// 763 763 DOOCS prop : {{code language="none"}}FLASH.FEL/ADC.SIS.FL2FS/FL20.SHUTTER/CH00.TD{{/code}} 764 764 DAQ channel: {{code language="none"}}FLASH.FEL/ADC.SIS.FL2FS/FL20.SHUTTER{{/code}} 765 765 desc: BL Beamline Fast shutter state: 1 is open, 0 is closed ( for technical reasons there are 100 vales of this state saved ...) ... ... @@ -767,7 +767,6 @@ 767 767 768 768 769 769 {{code language="none"}}/FL2/Beamlines/Filter wheel/position wheel 1{{/code}} 770 -//always saved (PBD2)// 771 771 DOOCS prop : {{code language="none"}}FLASH.FEL/FL20H.PH.MOTOR/MOTOR1.MOT3/FPOS{{/code}} 772 772 DAQ channel: FLASH.FEL/FL20H.PH.MOTOR/MOTOR1.MOT3/FPOS 773 773 desc: Position of the BL filter wheel 1 - to correlate with the filter material please look **[[here>>doc:FS-FLASH USER tmp.jddd-linked help pages.Filter-Units.Filter wheels in FLASH1 and FLASH2.WebHome]]** ... ... @@ -774,7 +774,6 @@ 774 774 units: degree 775 775 776 776 /FL2/Beamlines/Filter wheel/position wheel 2 777 -always saved (PBD2) 778 778 DOOCS prop : {{code language="none"}}FLASH.FEL/FL20H.PH.MOTOR/MOTOR2.MOT3/FPOS{{/code}} 779 779 DAQ channel: {{code language="none"}}FLASH.FEL/FL20H.PH.MOTOR/MOTOR2.MOT3/FPOS{{/code}} 780 780 desc: Position of the BL filter wheel 2 - to correlate with the filter material please look [[here>>doc:FS-FLASH USER tmp.jddd-linked help pages.Filter-Units.Filter wheels in FLASH1 and FLASH2.WebHome]] ... ... @@ -790,7 +790,6 @@ 790 790 ==== Photon Diagnostics SASE ([[XGMD>>url:http://photon-science.desy.de/facilities/flash/photon_diagnostics/gmd_intensity_and_position/index_eng.html||shape="rect"]] - FLASH2) ==== 791 791 792 792 {{code language="none"}}/FL2/Photon Diagnostic/GMD/Average energy/energy tunnel{{/code}} 793 -//always saved (PBD2)// 794 794 DOOCS prop : {{code language="none"}}FLASH.FEL/XGM.PHOTONFLUX/FL2.TUNNEL/PHOTONFLUX.UJ{{/code}} 795 795 DAQ channel:{{code language="none"}} FLASH.FEL/XGM.PHOTONFLUX/FL2.TUNNEL/PHOTONFLUX.UJ{{/code}} 796 796 desc : calibrated average ( ~~ 20 sec averaging time ) SASE Energy/pulse measured in the TUNNEL before the attenuator (ion current) ... ... @@ -798,7 +798,6 @@ 798 798 799 799 800 800 {{code language="none"}}/FL2/Photon Diagnostic/GMD/Pulse resolved energy/energy tunnel{{/code}} 801 -//always saved (PBD2)// 802 802 DOOCS prop : {{code language="none"}}FLASH.FEL/XGM.INTENSITY/FL2.TUNNEL/INTENSITY.TD{{/code}} 803 803 DAQ channel: {{code language="none"}}FLASH.FEL/XGM.INTENSITY/FL2.TUNNEL/INTENSITY.TD{{/code}} 804 804 desc : Energy per pulse measured in the Tunnel (in front of the gas attenuator and the apertures in the Hall) In addition measurement errors and beam position are included for EACH pulse in the pulse train !! (see below) ... ... @@ -833,7 +833,6 @@ 833 833 834 834 835 835 {{code language="none"}}/FL2/Photon Diagnostic/GMD/Average Beam position/position tunnel horizontal{{/code}} 836 -//always saved (PBD2)// 837 837 DOOCS prop : {{code language="none"}}FLASH.FEL/XGM.POSMON/FL2.TUNNEL/IX.POS{{/code}} 838 838 DAQ channel: {{code language="none"}}FLASH.FEL/XGM.POSMON/FL2.TUNNEL/IX.POS{{/code}} 839 839 desc : the Average ( ~~ 20 sec averaging time ) Beam position of the photon Beam determined by the GMD (tunnel, x=horizontal) ... ... @@ -841,7 +841,6 @@ 841 841 842 842 843 843 {{code language="none"}}/FL2/Photon Diagnostic/GMD/Average Beam position/position tunnel vertical{{/code}} 844 -//always saved (PBD2)// 845 845 DOOCS prop : {{code language="none"}}FLASH.FEL/XGM.POSMON/FL2.TUNNEL/IY.POS{{/code}} 846 846 DAQ channel: {{code language="none"}}FLASH.FEL/XGM.POSMON/FL2.TUNNEL/IY.POS{{/code}} 847 847 desc : the Average ( ~~ 20 sec averaging time ) Beam position of the photon Beam determined by the GMD (tunnel, x=horizontal) ... ... @@ -849,7 +849,6 @@ 849 849 850 850 851 851 /FL2/Photon Diagnostic/GMD/Pulse resolved beam position/position tunnel x 852 -always saved (PBD2) 853 853 DOOCS prop : FLASH.FEL/XGM.BPM/FL2.HALL/X.TD 854 854 DAQ channel: FLASH.FEL/XGM.BPM/FL2.HALL:2 855 855 desc: Besides the well calibrated averaged beam position information there is also the option to measure the beam position on a single bunch level. HOWEVER this methide needs a perfectly adjusted signal level (talk to your local contact !!) and also then the signal to noise is rather small and one needs some averaging ... BUT with this option one can determine if there was a spatial slope on a burst (say forst bunches were lower than the last ones or so ...) ... ... @@ -869,7 +869,6 @@ 869 869 870 870 871 871 {{code language="none"}}/FL2/Photon Diagnostic/Wavelength/OPIS tunnel/Processed/mean photon energy{{/code}} 872 -// saved opon request (PBD2)// 873 873 DOOCS prop : {{code language="none"}}FLASH.UTIL/STORE/FL2.TUNNEL.OPIS/VAL042{{/code}} 874 874 DAQ channel:{{code language="none"}} FLASH.UTIL/STORE/FL2.TUNNEL.OPIS/VAL042{{/code}} 875 875 desc : mean photon energy ( ~~ 1 sec averaging time ) measured in the TUNNEL for a specific bunch out of the bunch train (via photoelectron spectroscopy) ... ... @@ -877,7 +877,6 @@ 877 877 878 878 879 879 {{code language="none"}}/FL2/Photon Diagnostic/Wavelength/OPIS tunnel/Processed/mean wavelength{{/code}} 880 -// saved opon request (PBD2)// 881 881 DOOCS prop : {{code language="none"}}FLASH.UTIL/STORE/FL2.TUNNEL.OPIS/VAL040{{/code}} 882 882 DAQ channel:{{code language="none"}} FLASH.UTIL/STORE/FL2.TUNNEL.OPIS/VAL040{{/code}} 883 883 desc : mean wavelength ( ~~ 1 sec averaging time ) measured in the TUNNEL for a specific bunch out of the bunch train (via photoelectron spectroscopy) ... ... @@ -885,7 +885,6 @@ 885 885 886 886 887 887 {{code language="none"}}/FL2/Photon Diagnostic/Wavelength/OPIS tunnel/Processed/number of analyzed bunch (in older version this can be found in OPIS tunnel/Expert stuff/General operation parameters/){{/code}} 888 -// saved opon request (PBD2)// 889 889 DOOCS prop : {{code language="none"}}FLASH.UTIL/STORE/FL2.TUNNEL.OPIS/VAL060{{/code}} 890 890 DAQ channel:{{code language="none"}} FLASH.UTIL/STORE/FL2.TUNNEL.OPIS/VAL060{{/code}} 891 891 desc : The bunch number of the bunch used for the wavelength calculation ... ... @@ -904,7 +904,6 @@ 904 904 ===== bunch charge ===== 905 905 906 906 {{code language="none"}}/FL2/Electron Diagnostic/Bunch charge/after undulator{{/code}} 907 -//always saved (PBD2)// 908 908 DOOCS prop : {{code language="none"}}FLASH.DIAG/PBD2.TOROID.ML/9FL2BURN/CHARGE.FLASH2{{/code}} 909 909 DAQ channel: {{code language="none"}}FLASH.DIAG/PBD2.TOROID.ML/9FL2BURN/CHARGE.FLASH2{{/code}} 910 910 desc: electron bunch charge FLASH2 (average value for each bunchtrain). ... ... @@ -914,7 +914,6 @@ 914 914 ===== electron bunch energy ===== 915 915 916 916 {{code language="none"}}/FL2/Electron Diagnostic/Electron energy/energy of first bunch/behind undulators{{/code}} 917 -//always saved (PBD2)// 918 918 DOOCS prop : {{code language="none"}}FLASH.DIAG/BEAM_ENERGY_MEASUREMENT/FL2XTDS/ENERGY.FLASH2{{/code}} 919 919 DAQ channel: (% style="color:#5e6c84" %)TTF2.DAQ/PBD2.BEAM.ENERGY.MEAS.ML.COPY/FL2XTDS.ENERGY.FLASH2{{code language="none"}}{{/code}}(%%) 920 920 desc: electron bunch energy measured behind the undulator. Data is saved with 10 Hz - BUT (for computation reasons) only the energy of the FIRST bunch is recorded. The data is also available for (% style="color:#5e6c84" %)extraction and septum in the beginning of FLASH2 ... ... @@ -926,7 +926,6 @@ 926 926 ===== undulator settings ===== 927 927 928 928 {{code language="none"}}/FL2/Electron Diagnostic/Undulator setting/set wavelength{{/code}} 929 -//always saved (PBD2)// 930 930 DOOCS prop : {{code language="none"}}TTF2.FEEDBACK/FL2.WAVELENGTHCONTROL/FLASH2/WAVELENGTH{{/code}} 931 931 DAQ channel: {{code language="none"}}TTF2.FEEDBACK/FL2.WAVELENGTHCONTROL/FLASH2/WAVELENGTH{{/code}} 932 932 desc: Set value for the anticipated wavelength . This parameter is used to set the undulator gap. It may however deviate from the actual wavelength by several % ... ... ... @@ -933,7 +933,6 @@ 933 933 units: nm 934 934 935 935 {{code language="none"}}/FL2/Electron Diagnostic/Undulator setting/SASE14 gap{{/code}} 936 -//always saved (PBD2)// 937 937 DOOCS prop : {{code language="none"}}FLASH.UTIL/FL2.UND.MOTOR/FL2SASE14/GAP{{/code}} 938 938 DAQ channel: {{code language="none"}}FLASH.UTIL/FL2.UND.MOTOR/FL2SASE14/GAP{{/code}} 939 939 desc: gap value of the undulators. This can be used to follow up how many undulators were closed and if there was a taper ... ... @@ -1122,10 +1122,10 @@ 1122 1122 desc: Each 10 Hz burst has its unique train ID. For the HDF5 dataset the ID is the same for all parameters with the same index (note camera images may be shifted by 1 ID - talk to the experts !) 1123 1123 units: 1124 1124 1125 -===== Train time ===== 1107 +===== (% style="color:#e67e22" %)Train time(%%) ===== 1126 1126 1127 -//always saved (PBD2)// 1128 -{{code language="none"}}/Timing/train time{{/code}} 1109 +(% style="color:#e67e22" %)//always saved (PBD2)//(%%) 1110 +(% style="color:#e67e22" %){{code language="none"}}/Timing/train time{{/code}} 1129 1129 desc:Local time as array of day, hour, minute, second, and centisecond. This dataset is meant for visualisation purposes only. For correlations use the train ID or the Unix time of the time stamp 1130 1130 units: d h min s cs 1131 1131 ... ... @@ -1133,11 +1133,28 @@ 1133 1133 /Timing/time stamp 1134 1134 {{/code}} 1135 1135 1136 -//always saved (PBD2)// 1137 -desc: first column: Local time in unix time. To get day, hour, minute, second you can use unix: e.g. date ~-~-date='@1553617729' or matlab, python etc 1118 +(% style="color:#e67e22" %)//always saved (PBD2)//(%%) 1119 +(% style="color:#e67e22" %)desc: first column: Local time in unix time. To get day, hour, minute, second you can use unix: e.g. date ~-~-date='@1553617729' or matlab, python etc 1138 1138 second column: microseconds 1139 1139 third column: Train ID of FLASH 1140 1140 1123 + 1124 +(% id="cke_bm_2455529S" style="display:none" %) (%%)currently it is saved as Unix time in : /zraw/FLASH.DIAG/TIMINGINFO/TIME1.BUNCH_FIRST_INDEX.1/dGroup/time 1125 + 1126 +{{expand expanded="false" title="Timestamp help for python"}} 1127 + import time 1128 + 1129 +# epoch time is found in /zraw/FLASH.DIAG/TIMINGINFO/TIME1.BUNCH_FIRST_INDEX.1/dGroup/time #!!! a leading 1 has to be added !!! 1130 +# The time and date of the start of the data taking in the HDF file is encoded in the filename - to roughly check the time 1131 +epoch_time = 1709051499.17 # Replace with your epoch time 1132 + 1133 +formatted_time = time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime(epoch_time)) 1134 +print(formatted_time) 1135 +{{/expand}} 1136 + 1137 + 1138 + 1139 + 1141 1141 [[Contents>>doc:||anchor="Contents"]] 1142 1142 1143 1143 ... ... @@ -1681,8 +1681,3 @@ 1681 1681 ))) 1682 1682 1683 1683 [[Contents>>doc:||anchor="Contents"]] 1684 - 1685 - 1686 -{{/layout-cell}} 1687 -{{/layout-section}} 1688 -{{/layout}}