diff --git a/.gitignore b/.gitignore index e2042c2..5d24723 100644 --- a/.gitignore +++ b/.gitignore @@ -199,6 +199,8 @@ cython_debug/ .pyenv *.pyc *.txt +!tests/data-multi/.txt +!examples/witec/txt/*.txt !requirements.txt !dev-requirements.txt build/ diff --git a/examples/witec/txt/README.md b/examples/witec/txt/README.md new file mode 100644 index 0000000..e791602 --- /dev/null +++ b/examples/witec/txt/README.md @@ -0,0 +1,12 @@ +## WITEC example Raman Multiformat Reader +This is an example dataset to convert a .txt file +(exported ASCII file, Si-wafer-Raman-Spectrum-1.txt) with the addition of a ELN +data file (eln_data.yaml) to a NeXus file. + +## How to use +- 1. Go into the root folder of this repository (default "pynxtools-raman") +- 2. Copy and paste: + ``` + dataconverter examples/witec/txt/eln_data.yaml examples/witec/txt/Si-wafer-Raman-Spectrum-1.txt examples/witec/txt/config_file.json --reader raman_multi --nxdl NXraman --output examples/witec/txt/new_output.nxs + ``` +- 3. A new file should be created at "examples/witec/txt/new_output.nxs". \ No newline at end of file diff --git a/examples/witec/txt/Si-wafer-Raman-Spectrum-1.txt b/examples/witec/txt/Si-wafer-Raman-Spectrum-1.txt new file mode 100644 index 0000000..43d4d1a --- /dev/null +++ b/examples/witec/txt/Si-wafer-Raman-Spectrum-1.txt @@ -0,0 +1,1617 @@ +//Exported ASCII-File +[Header] +FileName = J:\Raman-spectroscopy-microscopy\Data\2024-06-20-CD-cover-test\Petri-dish-test.wip +GraphName = Spectrum--000--Spec.Data 1 +SizeX = 1 +SizeY = 1 +SizeGraph = 1600 +PositionUnit = µm +PositionX = 2.3283064365387E-8 +PositionY = 2.3283064365387E-8 +PositionZ = 0 +XAxisUnit = nm +DataUnit = CCD cts + +[Data] +X-Axis,Spectrum--000--Spec.Data 1 +nm,CCD cts + 5.307816803E+02, 3.568500061E+02 + 5.308650650E+02, 3.566000061E+02 + 5.309484482E+02, 3.556000061E+02 + 5.310318301E+02, 3.572500000E+02 + 5.311152107E+02, 3.636000061E+02 + 5.311985898E+02, 3.647999878E+02 + 5.312819676E+02, 3.783500061E+02 + 5.313653440E+02, 3.944500122E+02 + 5.314487190E+02, 4.185499878E+02 + 5.315320927E+02, 4.417000122E+02 + 5.316154650E+02, 4.921499939E+02 + 5.316988358E+02, 5.875000000E+02 + 5.317822054E+02, 9.454000244E+02 + 5.318655735E+02, 2.839050049E+03 + 5.319489403E+02, 9.894750000E+03 + 5.320323056E+02, 3.141025000E+04 + 5.321156696E+02, 6.553500000E+04 + 5.321990322E+02, 6.553500000E+04 + 5.322823935E+02, 6.553500000E+04 + 5.323657533E+02, 6.553500000E+04 + 5.324491118E+02, 6.553500000E+04 + 5.325324688E+02, 6.553500000E+04 + 5.326158245E+02, 6.553500000E+04 + 5.326991788E+02, 6.553500000E+04 + 5.327825318E+02, 3.606855078E+04 + 5.328658833E+02, 5.571549805E+03 + 5.329492334E+02, 1.359699951E+03 + 5.330325822E+02, 6.915000000E+02 + 5.331159295E+02, 5.402999878E+02 + 5.331992755E+02, 4.878999939E+02 + 5.332826200E+02, 4.567999878E+02 + 5.333659632E+02, 4.294500122E+02 + 5.334493050E+02, 4.121000061E+02 + 5.335326454E+02, 3.987000122E+02 + 5.336159844E+02, 3.841000061E+02 + 5.336993220E+02, 3.701000061E+02 + 5.337826582E+02, 3.602999878E+02 + 5.338659930E+02, 3.547999878E+02 + 5.339493264E+02, 3.511499939E+02 + 5.340326584E+02, 3.475000000E+02 + 5.341159890E+02, 3.451499939E+02 + 5.341993182E+02, 3.451000061E+02 + 5.342826460E+02, 3.429500122E+02 + 5.343659725E+02, 3.412500000E+02 + 5.344492975E+02, 3.399500122E+02 + 5.345326211E+02, 3.393500061E+02 + 5.346159433E+02, 3.446499939E+02 + 5.346992641E+02, 3.462500000E+02 + 5.347825834E+02, 3.467000122E+02 + 5.348659014E+02, 3.402999878E+02 + 5.349492180E+02, 3.305000000E+02 + 5.350325332E+02, 3.274500122E+02 + 5.351158469E+02, 3.312500000E+02 + 5.351991593E+02, 3.382500000E+02 + 5.352824702E+02, 3.357500000E+02 + 5.353657797E+02, 3.281000061E+02 + 5.354490879E+02, 3.296499939E+02 + 5.355323946E+02, 3.341000061E+02 + 5.356156999E+02, 3.335000000E+02 + 5.356990037E+02, 3.338500061E+02 + 5.357823062E+02, 3.350499878E+02 + 5.358656073E+02, 3.340499878E+02 + 5.359489069E+02, 3.306000061E+02 + 5.360322051E+02, 3.396000061E+02 + 5.361155019E+02, 3.457500000E+02 + 5.361987973E+02, 3.444500122E+02 + 5.362820913E+02, 3.596499939E+02 + 5.363653838E+02, 3.925000000E+02 + 5.364486749E+02, 4.168500061E+02 + 5.365319647E+02, 4.447500000E+02 + 5.366152529E+02, 4.767999878E+02 + 5.366985398E+02, 4.987999878E+02 + 5.367818252E+02, 5.137500000E+02 + 5.368651093E+02, 5.271500244E+02 + 5.369483918E+02, 5.201500244E+02 + 5.370316730E+02, 5.162500000E+02 + 5.371149528E+02, 5.230999756E+02 + 5.371982311E+02, 5.315000000E+02 + 5.372815080E+02, 5.334000244E+02 + 5.373647834E+02, 5.249000244E+02 + 5.374480574E+02, 5.210499878E+02 + 5.375313300E+02, 5.236500244E+02 + 5.376146012E+02, 5.252000122E+02 + 5.376978710E+02, 5.294500122E+02 + 5.377811393E+02, 5.327000122E+02 + 5.378644061E+02, 5.377500000E+02 + 5.379476716E+02, 5.419000244E+02 + 5.380309356E+02, 5.483499756E+02 + 5.381141982E+02, 5.499500122E+02 + 5.381974593E+02, 5.567500000E+02 + 5.382807190E+02, 5.690000000E+02 + 5.383639773E+02, 5.797999878E+02 + 5.384472341E+02, 5.885000000E+02 + 5.385304895E+02, 6.032999878E+02 + 5.386137434E+02, 6.313499756E+02 + 5.386969960E+02, 6.657000122E+02 + 5.387802470E+02, 6.997999878E+02 + 5.388634967E+02, 7.320499878E+02 + 5.389467448E+02, 7.552999878E+02 + 5.390299916E+02, 7.800499878E+02 + 5.391132369E+02, 7.878499756E+02 + 5.391964808E+02, 7.860000000E+02 + 5.392797232E+02, 7.950499878E+02 + 5.393629641E+02, 7.972999878E+02 + 5.394462037E+02, 8.177999878E+02 + 5.395294417E+02, 8.445000000E+02 + 5.396126784E+02, 8.434000244E+02 + 5.396959135E+02, 8.478499756E+02 + 5.397791473E+02, 8.565999756E+02 + 5.398623795E+02, 8.771500244E+02 + 5.399456104E+02, 8.962000122E+02 + 5.400288397E+02, 9.195000000E+02 + 5.401120677E+02, 9.234500122E+02 + 5.401952941E+02, 9.287000122E+02 + 5.402785192E+02, 9.475000000E+02 + 5.403617427E+02, 9.733499756E+02 + 5.404449648E+02, 1.012599976E+03 + 5.405281855E+02, 1.046650024E+03 + 5.406114047E+02, 1.072099976E+03 + 5.406946224E+02, 1.118150024E+03 + 5.407778387E+02, 1.202800049E+03 + 5.408610535E+02, 1.268500000E+03 + 5.409442669E+02, 1.327500000E+03 + 5.410274788E+02, 1.355050049E+03 + 5.411106892E+02, 1.336000000E+03 + 5.411938982E+02, 1.264650024E+03 + 5.412771057E+02, 1.190000000E+03 + 5.413603118E+02, 1.130800049E+03 + 5.414435164E+02, 1.089199951E+03 + 5.415267195E+02, 1.057550049E+03 + 5.416099212E+02, 1.003150024E+03 + 5.416931214E+02, 9.575499878E+02 + 5.417763201E+02, 9.495000000E+02 + 5.418595173E+02, 9.660999756E+02 + 5.419427131E+02, 9.540499878E+02 + 5.420259075E+02, 9.380499878E+02 + 5.421091003E+02, 9.090000000E+02 + 5.421922917E+02, 8.767500000E+02 + 5.422754816E+02, 8.750000000E+02 + 5.423586701E+02, 8.545999756E+02 + 5.424418570E+02, 8.401500244E+02 + 5.425250425E+02, 8.340499878E+02 + 5.426082265E+02, 8.328499756E+02 + 5.426914091E+02, 8.247000122E+02 + 5.427745902E+02, 8.137000122E+02 + 5.428577698E+02, 8.169000244E+02 + 5.429409479E+02, 8.104500122E+02 + 5.430241245E+02, 7.997000122E+02 + 5.431072997E+02, 7.792500000E+02 + 5.431904734E+02, 7.682500000E+02 + 5.432736456E+02, 7.734500122E+02 + 5.433568163E+02, 7.602500000E+02 + 5.434399855E+02, 7.368499756E+02 + 5.435231533E+02, 7.210999756E+02 + 5.436063195E+02, 7.175499878E+02 + 5.436894843E+02, 7.150499878E+02 + 5.437726476E+02, 7.059000244E+02 + 5.438558095E+02, 7.045499878E+02 + 5.439389698E+02, 7.042500000E+02 + 5.440221287E+02, 7.048499756E+02 + 5.441052860E+02, 6.950000000E+02 + 5.441884419E+02, 6.799500122E+02 + 5.442715963E+02, 6.854500122E+02 + 5.443547492E+02, 6.965000000E+02 + 5.444379006E+02, 7.022500000E+02 + 5.445210505E+02, 7.069000244E+02 + 5.446041989E+02, 7.093499756E+02 + 5.446873459E+02, 7.129500122E+02 + 5.447704913E+02, 7.050999756E+02 + 5.448536352E+02, 7.005000000E+02 + 5.449367777E+02, 7.015999756E+02 + 5.450199187E+02, 6.827000122E+02 + 5.451030581E+02, 6.499000244E+02 + 5.451861961E+02, 6.052500000E+02 + 5.452693325E+02, 5.814000244E+02 + 5.453524675E+02, 5.620499878E+02 + 5.454356010E+02, 5.369000244E+02 + 5.455187329E+02, 5.061000061E+02 + 5.456018634E+02, 4.766499939E+02 + 5.456849924E+02, 4.692000122E+02 + 5.457681199E+02, 4.718500061E+02 + 5.458512458E+02, 4.980000000E+02 + 5.459343703E+02, 5.066000061E+02 + 5.460174932E+02, 5.192999878E+02 + 5.461006147E+02, 5.346500244E+02 + 5.461837346E+02, 5.530499878E+02 + 5.462668531E+02, 5.679500122E+02 + 5.463499700E+02, 5.937000122E+02 + 5.464330854E+02, 6.264500122E+02 + 5.465161993E+02, 6.693499756E+02 + 5.465993118E+02, 7.277000122E+02 + 5.466824227E+02, 7.943499756E+02 + 5.467655320E+02, 8.970499878E+02 + 5.468486399E+02, 1.080150024E+03 + 5.469317463E+02, 1.368199951E+03 + 5.470148511E+02, 1.876199951E+03 + 5.470979545E+02, 2.918550049E+03 + 5.471810563E+02, 5.445149902E+03 + 5.472641566E+02, 1.210854980E+04 + 5.473472554E+02, 2.485109961E+04 + 5.474303527E+02, 3.471844922E+04 + 5.475134485E+02, 3.281710156E+04 + 5.475965427E+02, 2.164944922E+04 + 5.476796354E+02, 1.089300000E+04 + 5.477627266E+02, 5.679000000E+03 + 5.478458163E+02, 3.482050049E+03 + 5.479289045E+02, 2.450100098E+03 + 5.480119911E+02, 1.904550049E+03 + 5.480950762E+02, 1.562699951E+03 + 5.481781598E+02, 1.338349976E+03 + 5.482612419E+02, 1.164750000E+03 + 5.483443225E+02, 1.047699951E+03 + 5.484274015E+02, 9.755499878E+02 + 5.485104790E+02, 9.149000244E+02 + 5.485935550E+02, 8.467999878E+02 + 5.486766294E+02, 7.968499756E+02 + 5.487597023E+02, 7.582999878E+02 + 5.488427737E+02, 7.257000122E+02 + 5.489258436E+02, 6.812999878E+02 + 5.490089119E+02, 6.612500000E+02 + 5.490919787E+02, 6.521500244E+02 + 5.491750440E+02, 6.335499878E+02 + 5.492581077E+02, 6.128499756E+02 + 5.493411699E+02, 6.115000000E+02 + 5.494242306E+02, 6.025999756E+02 + 5.495072897E+02, 5.902999878E+02 + 5.495903473E+02, 5.904000244E+02 + 5.496734034E+02, 5.905000000E+02 + 5.497564579E+02, 5.925999756E+02 + 5.498395109E+02, 5.949500122E+02 + 5.499225623E+02, 5.969500122E+02 + 5.500056123E+02, 6.099000244E+02 + 5.500886606E+02, 6.335499878E+02 + 5.501717075E+02, 6.464000244E+02 + 5.502547528E+02, 6.655499878E+02 + 5.503377965E+02, 6.816500244E+02 + 5.504208387E+02, 6.784000244E+02 + 5.505038794E+02, 6.649500122E+02 + 5.505869185E+02, 6.473499756E+02 + 5.506699561E+02, 6.340000000E+02 + 5.507529921E+02, 6.159500122E+02 + 5.508360266E+02, 6.072500000E+02 + 5.509190595E+02, 6.004500122E+02 + 5.510020909E+02, 5.985499878E+02 + 5.510851207E+02, 5.982500000E+02 + 5.511681490E+02, 5.876500244E+02 + 5.512511758E+02, 5.795000000E+02 + 5.513342010E+02, 5.867500000E+02 + 5.514172246E+02, 5.829500122E+02 + 5.515002467E+02, 5.840000000E+02 + 5.515832672E+02, 5.959500122E+02 + 5.516662862E+02, 6.057500000E+02 + 5.517493036E+02, 6.135999756E+02 + 5.518323195E+02, 6.095000000E+02 + 5.519153338E+02, 6.136500244E+02 + 5.519983466E+02, 6.111500244E+02 + 5.520813578E+02, 6.018499756E+02 + 5.521643674E+02, 5.959000244E+02 + 5.522473755E+02, 5.922500000E+02 + 5.523303821E+02, 5.776500244E+02 + 5.524133870E+02, 5.646500244E+02 + 5.524963904E+02, 5.505000000E+02 + 5.525793923E+02, 5.281500244E+02 + 5.526623926E+02, 5.199000244E+02 + 5.527453913E+02, 5.075000000E+02 + 5.528283885E+02, 5.058999939E+02 + 5.529113840E+02, 5.022999878E+02 + 5.529943781E+02, 4.914500122E+02 + 5.530773705E+02, 4.820000000E+02 + 5.531603614E+02, 4.752000122E+02 + 5.532433508E+02, 4.746000061E+02 + 5.533263385E+02, 4.705000000E+02 + 5.534093247E+02, 4.665000000E+02 + 5.534923093E+02, 4.672500000E+02 + 5.535752924E+02, 4.658999939E+02 + 5.536582739E+02, 4.667999878E+02 + 5.537412538E+02, 4.627999878E+02 + 5.538242321E+02, 4.633500061E+02 + 5.539072089E+02, 4.636000061E+02 + 5.539901841E+02, 4.710499878E+02 + 5.540731577E+02, 4.683999939E+02 + 5.541561298E+02, 4.647000122E+02 + 5.542391002E+02, 4.602500000E+02 + 5.543220691E+02, 4.621000061E+02 + 5.544050364E+02, 4.632000122E+02 + 5.544880022E+02, 4.669500122E+02 + 5.545709663E+02, 4.729500122E+02 + 5.546539289E+02, 4.749500122E+02 + 5.547368899E+02, 4.797500000E+02 + 5.548198493E+02, 4.766499939E+02 + 5.549028071E+02, 4.786499939E+02 + 5.549857634E+02, 4.867000122E+02 + 5.550687181E+02, 4.860000000E+02 + 5.551516711E+02, 4.880499878E+02 + 5.552346226E+02, 4.876499939E+02 + 5.553175726E+02, 4.903500061E+02 + 5.554005209E+02, 4.955499878E+02 + 5.554834676E+02, 4.998500061E+02 + 5.555664128E+02, 5.053999939E+02 + 5.556493563E+02, 5.118500061E+02 + 5.557322983E+02, 5.185999756E+02 + 5.558152387E+02, 5.169000244E+02 + 5.558981775E+02, 5.136500244E+02 + 5.559811147E+02, 5.180000000E+02 + 5.560640503E+02, 5.269000244E+02 + 5.561469843E+02, 5.420499878E+02 + 5.562299168E+02, 5.400499878E+02 + 5.563128476E+02, 5.472500000E+02 + 5.563957769E+02, 5.572500000E+02 + 5.564787045E+02, 5.519000244E+02 + 5.565616305E+02, 5.546500244E+02 + 5.566445550E+02, 5.558499756E+02 + 5.567274778E+02, 5.518499756E+02 + 5.568103991E+02, 5.585499878E+02 + 5.568933188E+02, 5.464000244E+02 + 5.569762368E+02, 5.423499756E+02 + 5.570591533E+02, 5.410999756E+02 + 5.571420681E+02, 5.270000000E+02 + 5.572249814E+02, 5.244500122E+02 + 5.573078930E+02, 5.184500122E+02 + 5.573908031E+02, 5.239500122E+02 + 5.574737115E+02, 5.201500244E+02 + 5.575566184E+02, 5.250999756E+02 + 5.576395236E+02, 5.309000244E+02 + 5.577224272E+02, 5.235499878E+02 + 5.578053292E+02, 5.175999756E+02 + 5.578882296E+02, 5.169000244E+02 + 5.579711284E+02, 5.220499878E+02 + 5.580540256E+02, 5.302500000E+02 + 5.581369212E+02, 5.271500244E+02 + 5.582198152E+02, 5.222999878E+02 + 5.583027076E+02, 5.141500244E+02 + 5.583855983E+02, 5.157000122E+02 + 5.584684874E+02, 5.214000244E+02 + 5.585513750E+02, 5.232000122E+02 + 5.586342609E+02, 5.272999878E+02 + 5.587171452E+02, 5.319500122E+02 + 5.588000278E+02, 5.298499756E+02 + 5.588829089E+02, 5.262000122E+02 + 5.589657884E+02, 5.257500000E+02 + 5.590486662E+02, 5.257500000E+02 + 5.591315424E+02, 5.314000244E+02 + 5.592144170E+02, 5.332000122E+02 + 5.592972899E+02, 5.310000000E+02 + 5.593801613E+02, 5.400000000E+02 + 5.594630310E+02, 5.442500000E+02 + 5.595458991E+02, 5.541500244E+02 + 5.596287656E+02, 5.714500122E+02 + 5.597116305E+02, 5.987999878E+02 + 5.597944937E+02, 6.353499756E+02 + 5.598773553E+02, 7.229500122E+02 + 5.599602153E+02, 8.413499756E+02 + 5.600430736E+02, 1.013650024E+03 + 5.601259304E+02, 1.202349976E+03 + 5.602087855E+02, 1.395849976E+03 + 5.602916389E+02, 1.576849976E+03 + 5.603744908E+02, 1.644800049E+03 + 5.604573410E+02, 1.647750000E+03 + 5.605401896E+02, 1.644550049E+03 + 5.606230365E+02, 1.649250000E+03 + 5.607058818E+02, 1.646150024E+03 + 5.607887255E+02, 1.637699951E+03 + 5.608715676E+02, 1.626050049E+03 + 5.609544080E+02, 1.625349976E+03 + 5.610372468E+02, 1.647449951E+03 + 5.611200839E+02, 1.662449951E+03 + 5.612029194E+02, 1.673000000E+03 + 5.612857533E+02, 1.668349976E+03 + 5.613685855E+02, 1.679449951E+03 + 5.614514161E+02, 1.697849976E+03 + 5.615342451E+02, 1.686000000E+03 + 5.616170724E+02, 1.647050049E+03 + 5.616998981E+02, 1.533900024E+03 + 5.617827221E+02, 1.450849976E+03 + 5.618655445E+02, 1.318550049E+03 + 5.619483652E+02, 1.144650024E+03 + 5.620311843E+02, 9.840000000E+02 + 5.621140018E+02, 8.715999756E+02 + 5.621968176E+02, 8.002999878E+02 + 5.622796318E+02, 7.612500000E+02 + 5.623624443E+02, 7.222500000E+02 + 5.624452552E+02, 6.889000244E+02 + 5.625280644E+02, 6.590999756E+02 + 5.626108720E+02, 6.174000244E+02 + 5.626936779E+02, 5.990499878E+02 + 5.627764822E+02, 5.799000244E+02 + 5.628592848E+02, 5.526500244E+02 + 5.629420858E+02, 5.300999756E+02 + 5.630248851E+02, 5.068999939E+02 + 5.631076827E+02, 4.824500122E+02 + 5.631904788E+02, 4.563999939E+02 + 5.632732731E+02, 4.379500122E+02 + 5.633560658E+02, 4.137999878E+02 + 5.634388569E+02, 3.924500122E+02 + 5.635216463E+02, 3.785000000E+02 + 5.636044340E+02, 3.711000061E+02 + 5.636872201E+02, 3.651000061E+02 + 5.637700045E+02, 3.610000000E+02 + 5.638527872E+02, 3.587999878E+02 + 5.639355683E+02, 3.561499939E+02 + 5.640183478E+02, 3.545000000E+02 + 5.641011255E+02, 3.522999878E+02 + 5.641839016E+02, 3.490000000E+02 + 5.642666761E+02, 3.460000000E+02 + 5.643494489E+02, 3.450499878E+02 + 5.644322200E+02, 3.452000122E+02 + 5.645149894E+02, 3.464500122E+02 + 5.645977572E+02, 3.491499939E+02 + 5.646805233E+02, 3.473999939E+02 + 5.647632878E+02, 3.474500122E+02 + 5.648460506E+02, 3.477500000E+02 + 5.649288117E+02, 3.453500061E+02 + 5.650115711E+02, 3.433999939E+02 + 5.650943289E+02, 3.443500061E+02 + 5.651770850E+02, 3.438500061E+02 + 5.652598394E+02, 3.446499939E+02 + 5.653425922E+02, 3.443999939E+02 + 5.654253433E+02, 3.452000122E+02 + 5.655080927E+02, 3.431499939E+02 + 5.655908404E+02, 3.415499878E+02 + 5.656735865E+02, 3.438500061E+02 + 5.657563308E+02, 3.432999878E+02 + 5.658390735E+02, 3.396000061E+02 + 5.659218146E+02, 3.396499939E+02 + 5.660045539E+02, 3.410499878E+02 + 5.660872916E+02, 3.420000000E+02 + 5.661700276E+02, 3.399500122E+02 + 5.662527619E+02, 3.410000000E+02 + 5.663354945E+02, 3.412500000E+02 + 5.664182255E+02, 3.401499939E+02 + 5.665009547E+02, 3.397999878E+02 + 5.665836823E+02, 3.346499939E+02 + 5.666664082E+02, 3.362000122E+02 + 5.667491324E+02, 3.338999939E+02 + 5.668318549E+02, 3.352500000E+02 + 5.669145758E+02, 3.320000000E+02 + 5.669972949E+02, 3.325499878E+02 + 5.670800124E+02, 3.350499878E+02 + 5.671627282E+02, 3.310499878E+02 + 5.672454423E+02, 3.304500122E+02 + 5.673281546E+02, 3.296000061E+02 + 5.674108654E+02, 3.336000061E+02 + 5.674935744E+02, 3.318500061E+02 + 5.675762817E+02, 3.263999939E+02 + 5.676589873E+02, 3.292000122E+02 + 5.677416913E+02, 3.317000122E+02 + 5.678243935E+02, 3.308999939E+02 + 5.679070940E+02, 3.313500061E+02 + 5.679897929E+02, 3.292999878E+02 + 5.680724900E+02, 3.296499939E+02 + 5.681551855E+02, 3.285000000E+02 + 5.682378793E+02, 3.285499878E+02 + 5.683205713E+02, 3.272999878E+02 + 5.684032617E+02, 3.328999939E+02 + 5.684859503E+02, 3.280499878E+02 + 5.685686373E+02, 3.267999878E+02 + 5.686513226E+02, 3.253999939E+02 + 5.687340061E+02, 3.268999939E+02 + 5.688166880E+02, 3.271499939E+02 + 5.688993681E+02, 3.272999878E+02 + 5.689820466E+02, 3.271499939E+02 + 5.690647233E+02, 3.275499878E+02 + 5.691473983E+02, 3.274500122E+02 + 5.692300717E+02, 3.277500000E+02 + 5.693127433E+02, 3.289500122E+02 + 5.693954132E+02, 3.282000122E+02 + 5.694780814E+02, 3.285499878E+02 + 5.695607479E+02, 3.302999878E+02 + 5.696434127E+02, 3.282999878E+02 + 5.697260758E+02, 3.292000122E+02 + 5.698087371E+02, 3.271499939E+02 + 5.698913968E+02, 3.300499878E+02 + 5.699740547E+02, 3.278500061E+02 + 5.700567109E+02, 3.290000000E+02 + 5.701393654E+02, 3.267500000E+02 + 5.702220182E+02, 3.312500000E+02 + 5.703046693E+02, 3.315499878E+02 + 5.703873187E+02, 3.300499878E+02 + 5.704699663E+02, 3.310499878E+02 + 5.705526123E+02, 3.317000122E+02 + 5.706352565E+02, 3.335000000E+02 + 5.707178990E+02, 3.318999939E+02 + 5.708005397E+02, 3.321000061E+02 + 5.708831788E+02, 3.320499878E+02 + 5.709658161E+02, 3.317000122E+02 + 5.710484517E+02, 3.327999878E+02 + 5.711310856E+02, 3.327000122E+02 + 5.712137177E+02, 3.330499878E+02 + 5.712963482E+02, 3.360499878E+02 + 5.713789769E+02, 3.365000000E+02 + 5.714616039E+02, 3.373999939E+02 + 5.715442291E+02, 3.333999939E+02 + 5.716268526E+02, 3.363500061E+02 + 5.717094744E+02, 3.341000061E+02 + 5.717920945E+02, 3.307500000E+02 + 5.718747129E+02, 3.347500000E+02 + 5.719573295E+02, 3.353999939E+02 + 5.720399443E+02, 3.366499939E+02 + 5.721225575E+02, 3.355499878E+02 + 5.722051689E+02, 3.358500061E+02 + 5.722877786E+02, 3.387000122E+02 + 5.723703865E+02, 3.363500061E+02 + 5.724529928E+02, 3.382500000E+02 + 5.725355972E+02, 3.359500122E+02 + 5.726182000E+02, 3.351000061E+02 + 5.727008010E+02, 3.366499939E+02 + 5.727834003E+02, 3.365499878E+02 + 5.728659978E+02, 3.344500122E+02 + 5.729485936E+02, 3.372000122E+02 + 5.730311876E+02, 3.375499878E+02 + 5.731137800E+02, 3.360000000E+02 + 5.731963705E+02, 3.360499878E+02 + 5.732789594E+02, 3.361499939E+02 + 5.733615465E+02, 3.365000000E+02 + 5.734441318E+02, 3.363999939E+02 + 5.735267154E+02, 3.350000000E+02 + 5.736092973E+02, 3.372000122E+02 + 5.736918774E+02, 3.358999939E+02 + 5.737744557E+02, 3.354500122E+02 + 5.738570324E+02, 3.328999939E+02 + 5.739396072E+02, 3.344500122E+02 + 5.740221804E+02, 3.350499878E+02 + 5.741047517E+02, 3.365499878E+02 + 5.741873214E+02, 3.328500061E+02 + 5.742698892E+02, 3.320000000E+02 + 5.743524554E+02, 3.318999939E+02 + 5.744350197E+02, 3.333999939E+02 + 5.745175824E+02, 3.322000122E+02 + 5.746001432E+02, 3.281000061E+02 + 5.746827023E+02, 3.302999878E+02 + 5.747652597E+02, 3.292500000E+02 + 5.748478153E+02, 3.289500122E+02 + 5.749303692E+02, 3.255000000E+02 + 5.750129213E+02, 3.286000061E+02 + 5.750954716E+02, 3.265000000E+02 + 5.751780202E+02, 3.298500061E+02 + 5.752605670E+02, 3.304500122E+02 + 5.753431120E+02, 3.278500061E+02 + 5.754256553E+02, 3.247000122E+02 + 5.755081969E+02, 3.255499878E+02 + 5.755907367E+02, 3.267500000E+02 + 5.756732747E+02, 3.276499939E+02 + 5.757558109E+02, 3.277999878E+02 + 5.758383454E+02, 3.250499878E+02 + 5.759208781E+02, 3.248500061E+02 + 5.760034091E+02, 3.231000061E+02 + 5.760859383E+02, 3.262999878E+02 + 5.761684657E+02, 3.248500061E+02 + 5.762509914E+02, 3.242500000E+02 + 5.763335152E+02, 3.242500000E+02 + 5.764160374E+02, 3.268500061E+02 + 5.764985577E+02, 3.290499878E+02 + 5.765810763E+02, 3.283500061E+02 + 5.766635931E+02, 3.242500000E+02 + 5.767461081E+02, 3.246000061E+02 + 5.768286214E+02, 3.228500061E+02 + 5.769111329E+02, 3.232999878E+02 + 5.769936426E+02, 3.235499878E+02 + 5.770761506E+02, 3.240499878E+02 + 5.771586567E+02, 3.224500122E+02 + 5.772411611E+02, 3.217000122E+02 + 5.773236637E+02, 3.200000000E+02 + 5.774061646E+02, 3.186000061E+02 + 5.774886636E+02, 3.192500000E+02 + 5.775711609E+02, 3.166000061E+02 + 5.776536564E+02, 3.166000061E+02 + 5.777361502E+02, 3.166499939E+02 + 5.778186421E+02, 3.162000122E+02 + 5.779011323E+02, 3.179500122E+02 + 5.779836206E+02, 3.178999939E+02 + 5.780661072E+02, 3.159500122E+02 + 5.781485920E+02, 3.136000061E+02 + 5.782310751E+02, 3.132000122E+02 + 5.783135563E+02, 3.132999878E+02 + 5.783960358E+02, 3.147000122E+02 + 5.784785134E+02, 3.136499939E+02 + 5.785609893E+02, 3.137000122E+02 + 5.786434634E+02, 3.120000000E+02 + 5.787259357E+02, 3.122500000E+02 + 5.788084062E+02, 3.126000061E+02 + 5.788908749E+02, 3.099500122E+02 + 5.789733419E+02, 3.110000000E+02 + 5.790558070E+02, 3.113999939E+02 + 5.791382704E+02, 3.113999939E+02 + 5.792207319E+02, 3.097500000E+02 + 5.793031917E+02, 3.093999939E+02 + 5.793856497E+02, 3.112000122E+02 + 5.794681058E+02, 3.132000122E+02 + 5.795505602E+02, 3.132000122E+02 + 5.796330128E+02, 3.128999939E+02 + 5.797154636E+02, 3.105499878E+02 + 5.797979126E+02, 3.116000061E+02 + 5.798803597E+02, 3.101499939E+02 + 5.799628051E+02, 3.103500061E+02 + 5.800452487E+02, 3.109500122E+02 + 5.801276905E+02, 3.141499939E+02 + 5.802101305E+02, 3.142999878E+02 + 5.802925687E+02, 3.135499878E+02 + 5.803750051E+02, 3.142999878E+02 + 5.804574396E+02, 3.131499939E+02 + 5.805398724E+02, 3.138999939E+02 + 5.806223034E+02, 3.143999939E+02 + 5.807047325E+02, 3.151000061E+02 + 5.807871599E+02, 3.142500000E+02 + 5.808695854E+02, 3.145000000E+02 + 5.809520092E+02, 3.159500122E+02 + 5.810344311E+02, 3.166499939E+02 + 5.811168512E+02, 3.163999939E+02 + 5.811992695E+02, 3.147500000E+02 + 5.812816860E+02, 3.157000122E+02 + 5.813641007E+02, 3.176000061E+02 + 5.814465136E+02, 3.167000122E+02 + 5.815289246E+02, 3.152000122E+02 + 5.816113339E+02, 3.172500000E+02 + 5.816937413E+02, 3.162999878E+02 + 5.817761469E+02, 3.158999939E+02 + 5.818585508E+02, 3.146499939E+02 + 5.819409527E+02, 3.152999878E+02 + 5.820233529E+02, 3.149500122E+02 + 5.821057513E+02, 3.141000061E+02 + 5.821881478E+02, 3.147000122E+02 + 5.822705425E+02, 3.141499939E+02 + 5.823529354E+02, 3.158999939E+02 + 5.824353265E+02, 3.143999939E+02 + 5.825177157E+02, 3.095000000E+02 + 5.826001031E+02, 3.091000061E+02 + 5.826824888E+02, 3.098999939E+02 + 5.827648725E+02, 3.078999939E+02 + 5.828472545E+02, 3.072500000E+02 + 5.829296346E+02, 3.053999939E+02 + 5.830120129E+02, 3.026499939E+02 + 5.830943894E+02, 3.031000061E+02 + 5.831767641E+02, 3.025000000E+02 + 5.832591369E+02, 3.017999878E+02 + 5.833415079E+02, 3.025000000E+02 + 5.834238771E+02, 3.009500122E+02 + 5.835062444E+02, 3.010499878E+02 + 5.835886099E+02, 2.996000061E+02 + 5.836709736E+02, 2.970000000E+02 + 5.837533354E+02, 2.976000061E+02 + 5.838356954E+02, 2.972999878E+02 + 5.839180536E+02, 2.993500061E+02 + 5.840004099E+02, 2.982500000E+02 + 5.840827645E+02, 2.967999878E+02 + 5.841651171E+02, 2.969500122E+02 + 5.842474680E+02, 2.952500000E+02 + 5.843298170E+02, 2.957500000E+02 + 5.844121641E+02, 2.957500000E+02 + 5.844945094E+02, 2.953500061E+02 + 5.845768529E+02, 2.970000000E+02 + 5.846591946E+02, 2.943500061E+02 + 5.847415344E+02, 2.940499878E+02 + 5.848238723E+02, 2.933500061E+02 + 5.849062084E+02, 2.927999878E+02 + 5.849885427E+02, 2.927500000E+02 + 5.850708751E+02, 2.958999939E+02 + 5.851532057E+02, 2.946000061E+02 + 5.852355345E+02, 2.930499878E+02 + 5.853178614E+02, 2.936000061E+02 + 5.854001864E+02, 2.924500122E+02 + 5.854825096E+02, 2.922500000E+02 + 5.855648310E+02, 2.921000061E+02 + 5.856471505E+02, 2.923999939E+02 + 5.857294681E+02, 2.914500122E+02 + 5.858117839E+02, 2.913999939E+02 + 5.858940979E+02, 2.916000061E+02 + 5.859764100E+02, 2.905000000E+02 + 5.860587203E+02, 2.908999939E+02 + 5.861410287E+02, 2.913999939E+02 + 5.862233352E+02, 2.922999878E+02 + 5.863056399E+02, 2.927500000E+02 + 5.863879427E+02, 2.906000061E+02 + 5.864702437E+02, 2.911000061E+02 + 5.865525429E+02, 2.917500000E+02 + 5.866348401E+02, 2.916499939E+02 + 5.867171355E+02, 2.906000061E+02 + 5.867994291E+02, 2.888999939E+02 + 5.868817208E+02, 2.897000122E+02 + 5.869640106E+02, 2.905499878E+02 + 5.870462986E+02, 2.910000000E+02 + 5.871285847E+02, 2.906000061E+02 + 5.872108690E+02, 2.905499878E+02 + 5.872931513E+02, 2.897000122E+02 + 5.873754319E+02, 2.886000061E+02 + 5.874577105E+02, 2.895499878E+02 + 5.875399873E+02, 2.880000000E+02 + 5.876222622E+02, 2.894500122E+02 + 5.877045353E+02, 2.902999878E+02 + 5.877868065E+02, 2.902999878E+02 + 5.878690758E+02, 2.888500061E+02 + 5.879513433E+02, 2.893999939E+02 + 5.880336089E+02, 2.885499878E+02 + 5.881158726E+02, 2.887999878E+02 + 5.881981345E+02, 2.893500061E+02 + 5.882803944E+02, 2.901499939E+02 + 5.883626526E+02, 2.876499939E+02 + 5.884449088E+02, 2.883999939E+02 + 5.885271632E+02, 2.877999878E+02 + 5.886094156E+02, 2.887000122E+02 + 5.886916663E+02, 2.881499939E+02 + 5.887739150E+02, 2.865000000E+02 + 5.888561619E+02, 2.891499939E+02 + 5.889384068E+02, 2.880000000E+02 + 5.890206499E+02, 2.888999939E+02 + 5.891028912E+02, 2.883500061E+02 + 5.891851305E+02, 2.888999939E+02 + 5.892673680E+02, 2.886000061E+02 + 5.893496036E+02, 2.873500061E+02 + 5.894318373E+02, 2.877000122E+02 + 5.895140691E+02, 2.876000061E+02 + 5.895962991E+02, 2.878500061E+02 + 5.896785271E+02, 2.868999939E+02 + 5.897607533E+02, 2.887500000E+02 + 5.898429776E+02, 2.877000122E+02 + 5.899252000E+02, 2.871000061E+02 + 5.900074205E+02, 2.873500061E+02 + 5.900896392E+02, 2.881000061E+02 + 5.901718559E+02, 2.872500000E+02 + 5.902540708E+02, 2.873999939E+02 + 5.903362838E+02, 2.863500061E+02 + 5.904184948E+02, 2.865499878E+02 + 5.905007040E+02, 2.871499939E+02 + 5.905829113E+02, 2.875499878E+02 + 5.906651167E+02, 2.860000000E+02 + 5.907473203E+02, 2.870000000E+02 + 5.908295219E+02, 2.860000000E+02 + 5.909117216E+02, 2.867999878E+02 + 5.909939194E+02, 2.867000122E+02 + 5.910761154E+02, 2.858999939E+02 + 5.911583094E+02, 2.856499939E+02 + 5.912405016E+02, 2.857000122E+02 + 5.913226918E+02, 2.866499939E+02 + 5.914048802E+02, 2.867999878E+02 + 5.914870666E+02, 2.862000122E+02 + 5.915692512E+02, 2.860000000E+02 + 5.916514338E+02, 2.855499878E+02 + 5.917336146E+02, 2.860000000E+02 + 5.918157934E+02, 2.863999939E+02 + 5.918979704E+02, 2.862000122E+02 + 5.919801454E+02, 2.866499939E+02 + 5.920623186E+02, 2.857999878E+02 + 5.921444898E+02, 2.862999878E+02 + 5.922266592E+02, 2.866499939E+02 + 5.923088266E+02, 2.872500000E+02 + 5.923909921E+02, 2.863999939E+02 + 5.924731557E+02, 2.868500061E+02 + 5.925553174E+02, 2.856000061E+02 + 5.926374772E+02, 2.859500122E+02 + 5.927196351E+02, 2.852999878E+02 + 5.928017911E+02, 2.857500000E+02 + 5.928839451E+02, 2.850000000E+02 + 5.929660973E+02, 2.863999939E+02 + 5.930482475E+02, 2.853999939E+02 + 5.931303959E+02, 2.861499939E+02 + 5.932125423E+02, 2.848500061E+02 + 5.932946868E+02, 2.857500000E+02 + 5.933768294E+02, 2.852000122E+02 + 5.934589701E+02, 2.855000000E+02 + 5.935411088E+02, 2.858500061E+02 + 5.936232457E+02, 2.841000061E+02 + 5.937053806E+02, 2.842500000E+02 + 5.937875136E+02, 2.847500000E+02 + 5.938696447E+02, 2.848500061E+02 + 5.939517738E+02, 2.856499939E+02 + 5.940339011E+02, 2.854500122E+02 + 5.941160264E+02, 2.850000000E+02 + 5.941981498E+02, 2.853500061E+02 + 5.942802713E+02, 2.846000061E+02 + 5.943623908E+02, 2.855000000E+02 + 5.944445085E+02, 2.847500000E+02 + 5.945266242E+02, 2.845000000E+02 + 5.946087379E+02, 2.843999939E+02 + 5.946908498E+02, 2.842999878E+02 + 5.947729597E+02, 2.852500000E+02 + 5.948550677E+02, 2.858500061E+02 + 5.949371738E+02, 2.846499939E+02 + 5.950192779E+02, 2.834500122E+02 + 5.951013801E+02, 2.842999878E+02 + 5.951834804E+02, 2.843500061E+02 + 5.952655788E+02, 2.845499878E+02 + 5.953476752E+02, 2.838500061E+02 + 5.954297697E+02, 2.831000061E+02 + 5.955118622E+02, 2.848500061E+02 + 5.955939528E+02, 2.836499939E+02 + 5.956760415E+02, 2.837000122E+02 + 5.957581283E+02, 2.838999939E+02 + 5.958402131E+02, 2.841499939E+02 + 5.959222960E+02, 2.831499939E+02 + 5.960043769E+02, 2.827500000E+02 + 5.960864559E+02, 2.830000000E+02 + 5.961685330E+02, 2.846000061E+02 + 5.962506081E+02, 2.838500061E+02 + 5.963326813E+02, 2.831000061E+02 + 5.964147525E+02, 2.837999878E+02 + 5.964968218E+02, 2.841000061E+02 + 5.965788892E+02, 2.833500061E+02 + 5.966609546E+02, 2.825000000E+02 + 5.967430180E+02, 2.832999878E+02 + 5.968250796E+02, 2.835499878E+02 + 5.969071391E+02, 2.832500000E+02 + 5.969891968E+02, 2.840000000E+02 + 5.970712525E+02, 2.827000122E+02 + 5.971533062E+02, 2.830499878E+02 + 5.972353580E+02, 2.839500122E+02 + 5.973174078E+02, 2.828500061E+02 + 5.973994557E+02, 2.826499939E+02 + 5.974815017E+02, 2.827500000E+02 + 5.975635457E+02, 2.832500000E+02 + 5.976455877E+02, 2.838999939E+02 + 5.977276278E+02, 2.843999939E+02 + 5.978096659E+02, 2.833500061E+02 + 5.978917021E+02, 2.838500061E+02 + 5.979737363E+02, 2.832000122E+02 + 5.980557686E+02, 2.837000122E+02 + 5.981377989E+02, 2.820499878E+02 + 5.982198273E+02, 2.840000000E+02 + 5.983018537E+02, 2.836000061E+02 + 5.983838781E+02, 2.828999939E+02 + 5.984659006E+02, 2.841000061E+02 + 5.985479212E+02, 2.831499939E+02 + 5.986299397E+02, 2.822999878E+02 + 5.987119563E+02, 2.817500000E+02 + 5.987939710E+02, 2.819500122E+02 + 5.988759837E+02, 2.826499939E+02 + 5.989579944E+02, 2.817000122E+02 + 5.990400032E+02, 2.828500061E+02 + 5.991220099E+02, 2.817999878E+02 + 5.992040148E+02, 2.828999939E+02 + 5.992860176E+02, 2.830000000E+02 + 5.993680185E+02, 2.823500061E+02 + 5.994500175E+02, 2.824500122E+02 + 5.995320144E+02, 2.820499878E+02 + 5.996140094E+02, 2.822000122E+02 + 5.996960025E+02, 2.819500122E+02 + 5.997779935E+02, 2.827000122E+02 + 5.998599826E+02, 2.823500061E+02 + 5.999419697E+02, 2.827999878E+02 + 6.000239548E+02, 2.822500000E+02 + 6.001059380E+02, 2.825000000E+02 + 6.001879192E+02, 2.827999878E+02 + 6.002698984E+02, 2.816000061E+02 + 6.003518757E+02, 2.811000061E+02 + 6.004338510E+02, 2.820499878E+02 + 6.005158243E+02, 2.825499878E+02 + 6.005977956E+02, 2.833999939E+02 + 6.006797649E+02, 2.824500122E+02 + 6.007617323E+02, 2.818500061E+02 + 6.008436977E+02, 2.808500061E+02 + 6.009256611E+02, 2.819500122E+02 + 6.010076225E+02, 2.820000000E+02 + 6.010895819E+02, 2.817500000E+02 + 6.011715394E+02, 2.812000122E+02 + 6.012534949E+02, 2.823999939E+02 + 6.013354484E+02, 2.822999878E+02 + 6.014173999E+02, 2.826499939E+02 + 6.014993494E+02, 2.820499878E+02 + 6.015812970E+02, 2.817500000E+02 + 6.016632425E+02, 2.822500000E+02 + 6.017451861E+02, 2.816499939E+02 + 6.018271277E+02, 2.811000061E+02 + 6.019090673E+02, 2.811000061E+02 + 6.019910049E+02, 2.817000122E+02 + 6.020729405E+02, 2.820499878E+02 + 6.021548741E+02, 2.820499878E+02 + 6.022368058E+02, 2.826000061E+02 + 6.023187354E+02, 2.822000122E+02 + 6.024006631E+02, 2.812999878E+02 + 6.024825887E+02, 2.823500061E+02 + 6.025645124E+02, 2.816000061E+02 + 6.026464341E+02, 2.813500061E+02 + 6.027283538E+02, 2.810000000E+02 + 6.028102714E+02, 2.815000000E+02 + 6.028921871E+02, 2.817000122E+02 + 6.029741008E+02, 2.810499878E+02 + 6.030560125E+02, 2.810499878E+02 + 6.031379222E+02, 2.816000061E+02 + 6.032198299E+02, 2.811000061E+02 + 6.033017356E+02, 2.810000000E+02 + 6.033836393E+02, 2.813999939E+02 + 6.034655410E+02, 2.817500000E+02 + 6.035474407E+02, 2.813999939E+02 + 6.036293384E+02, 2.803999939E+02 + 6.037112341E+02, 2.803999939E+02 + 6.037931277E+02, 2.815499878E+02 + 6.038750194E+02, 2.811000061E+02 + 6.039569091E+02, 2.805000000E+02 + 6.040387968E+02, 2.808500061E+02 + 6.041206824E+02, 2.805499878E+02 + 6.042025661E+02, 2.817500000E+02 + 6.042844477E+02, 2.808999939E+02 + 6.043663273E+02, 2.811000061E+02 + 6.044482050E+02, 2.804500122E+02 + 6.045300806E+02, 2.803500061E+02 + 6.046119542E+02, 2.807000122E+02 + 6.046938258E+02, 2.804500122E+02 + 6.047756954E+02, 2.797500000E+02 + 6.048575629E+02, 2.799500122E+02 + 6.049394285E+02, 2.802000122E+02 + 6.050212920E+02, 2.811499939E+02 + 6.051031535E+02, 2.812000122E+02 + 6.051850130E+02, 2.810499878E+02 + 6.052668705E+02, 2.812500000E+02 + 6.053487260E+02, 2.799500122E+02 + 6.054305795E+02, 2.806499939E+02 + 6.055124309E+02, 2.797999878E+02 + 6.055942803E+02, 2.802999878E+02 + 6.056761277E+02, 2.798500061E+02 + 6.057579731E+02, 2.800000000E+02 + 6.058398164E+02, 2.803500061E+02 + 6.059216578E+02, 2.801000061E+02 + 6.060034971E+02, 2.815000000E+02 + 6.060853344E+02, 2.803500061E+02 + 6.061671696E+02, 2.810499878E+02 + 6.062490029E+02, 2.797000122E+02 + 6.063308341E+02, 2.800000000E+02 + 6.064126633E+02, 2.794500122E+02 + 6.064944904E+02, 2.801000061E+02 + 6.065763156E+02, 2.807999878E+02 + 6.066581387E+02, 2.798999939E+02 + 6.067399597E+02, 2.802999878E+02 + 6.068217788E+02, 2.802000122E+02 + 6.069035958E+02, 2.802000122E+02 + 6.069854108E+02, 2.813999939E+02 + 6.070672237E+02, 2.795499878E+02 + 6.071490346E+02, 2.804500122E+02 + 6.072308435E+02, 2.800499878E+02 + 6.073126504E+02, 2.807500000E+02 + 6.073944552E+02, 2.816499939E+02 + 6.074762580E+02, 2.844500122E+02 + 6.075580587E+02, 2.846000061E+02 + 6.076398574E+02, 2.851499939E+02 + 6.077216541E+02, 2.823999939E+02 + 6.078034487E+02, 2.813999939E+02 + 6.078852413E+02, 2.807999878E+02 + 6.079670319E+02, 2.805499878E+02 + 6.080488204E+02, 2.806499939E+02 + 6.081306069E+02, 2.797999878E+02 + 6.082123913E+02, 2.800000000E+02 + 6.082941737E+02, 2.800000000E+02 + 6.083759540E+02, 2.791499939E+02 + 6.084577323E+02, 2.807000122E+02 + 6.085395086E+02, 2.801499939E+02 + 6.086212828E+02, 2.802000122E+02 + 6.087030550E+02, 2.793999939E+02 + 6.087848251E+02, 2.792500000E+02 + 6.088665931E+02, 2.797500000E+02 + 6.089483592E+02, 2.805499878E+02 + 6.090301232E+02, 2.792000122E+02 + 6.091118851E+02, 2.797000122E+02 + 6.091936450E+02, 2.791499939E+02 + 6.092754028E+02, 2.791499939E+02 + 6.093571586E+02, 2.795000000E+02 + 6.094389123E+02, 2.791000061E+02 + 6.095206640E+02, 2.799500122E+02 + 6.096024136E+02, 2.792500000E+02 + 6.096841611E+02, 2.802000122E+02 + 6.097659066E+02, 2.792999878E+02 + 6.098476501E+02, 2.785000000E+02 + 6.099293915E+02, 2.795499878E+02 + 6.100111308E+02, 2.801000061E+02 + 6.100928681E+02, 2.785000000E+02 + 6.101746033E+02, 2.792999878E+02 + 6.102563365E+02, 2.795000000E+02 + 6.103380676E+02, 2.792999878E+02 + 6.104197967E+02, 2.798999939E+02 + 6.105015236E+02, 2.799500122E+02 + 6.105832486E+02, 2.800499878E+02 + 6.106649714E+02, 2.788999939E+02 + 6.107466922E+02, 2.788999939E+02 + 6.108284109E+02, 2.797500000E+02 + 6.109101276E+02, 2.800499878E+02 + 6.109918422E+02, 2.793999939E+02 + 6.110735548E+02, 2.793500061E+02 + 6.111552652E+02, 2.789500122E+02 + 6.112369736E+02, 2.795499878E+02 + 6.113186800E+02, 2.797500000E+02 + 6.114003842E+02, 2.800499878E+02 + 6.114820864E+02, 2.790000000E+02 + 6.115637866E+02, 2.795000000E+02 + 6.116454846E+02, 2.798500061E+02 + 6.117271806E+02, 2.796499939E+02 + 6.118088745E+02, 2.800000000E+02 + 6.118905664E+02, 2.794500122E+02 + 6.119722561E+02, 2.803500061E+02 + 6.120539438E+02, 2.785000000E+02 + 6.121356294E+02, 2.791499939E+02 + 6.122173130E+02, 2.788500061E+02 + 6.122989944E+02, 2.791000061E+02 + 6.123806738E+02, 2.787999878E+02 + 6.124623511E+02, 2.806499939E+02 + 6.125440264E+02, 2.795000000E+02 + 6.126256995E+02, 2.797999878E+02 + 6.127073706E+02, 2.796499939E+02 + 6.127890396E+02, 2.792999878E+02 + 6.128707065E+02, 2.785499878E+02 + 6.129523713E+02, 2.777500000E+02 + 6.130340341E+02, 2.787999878E+02 + 6.131156948E+02, 2.789500122E+02 + 6.131973533E+02, 2.790499878E+02 + 6.132790098E+02, 2.788999939E+02 + 6.133606642E+02, 2.787000122E+02 + 6.134423166E+02, 2.785499878E+02 + 6.135239668E+02, 2.788500061E+02 + 6.136056150E+02, 2.792999878E+02 + 6.136872610E+02, 2.793999939E+02 + 6.137689050E+02, 2.788500061E+02 + 6.138505469E+02, 2.787000122E+02 + 6.139321867E+02, 2.790499878E+02 + 6.140138244E+02, 2.792500000E+02 + 6.140954600E+02, 2.792500000E+02 + 6.141770935E+02, 2.794500122E+02 + 6.142587249E+02, 2.792000122E+02 + 6.143403543E+02, 2.801499939E+02 + 6.144219815E+02, 2.797500000E+02 + 6.145036067E+02, 2.787500000E+02 + 6.145852297E+02, 2.786499939E+02 + 6.146668507E+02, 2.790499878E+02 + 6.147484695E+02, 2.786000061E+02 + 6.148300863E+02, 2.794500122E+02 + 6.149117009E+02, 2.800499878E+02 + 6.149933135E+02, 2.790499878E+02 + 6.150749240E+02, 2.788999939E+02 + 6.151565323E+02, 2.787000122E+02 + 6.152381386E+02, 2.784500122E+02 + 6.153197427E+02, 2.787000122E+02 + 6.154013448E+02, 2.793500061E+02 + 6.154829447E+02, 2.793500061E+02 + 6.155645426E+02, 2.791499939E+02 + 6.156461383E+02, 2.782999878E+02 + 6.157277320E+02, 2.791000061E+02 + 6.158093235E+02, 2.786000061E+02 + 6.158909129E+02, 2.782000122E+02 + 6.159725003E+02, 2.782000122E+02 + 6.160540855E+02, 2.791499939E+02 + 6.161356686E+02, 2.784500122E+02 + 6.162172496E+02, 2.795499878E+02 + 6.162988284E+02, 2.785499878E+02 + 6.163804052E+02, 2.786499939E+02 + 6.164619799E+02, 2.792999878E+02 + 6.165435524E+02, 2.783999939E+02 + 6.166251229E+02, 2.790000000E+02 + 6.167066912E+02, 2.781000061E+02 + 6.167882574E+02, 2.781000061E+02 + 6.168698215E+02, 2.783999939E+02 + 6.169513834E+02, 2.786000061E+02 + 6.170329433E+02, 2.786499939E+02 + 6.171145011E+02, 2.777500000E+02 + 6.171960567E+02, 2.785000000E+02 + 6.172776102E+02, 2.791499939E+02 + 6.173591616E+02, 2.792500000E+02 + 6.174407108E+02, 2.792999878E+02 + 6.175222580E+02, 2.795499878E+02 + 6.176038030E+02, 2.792500000E+02 + 6.176853459E+02, 2.787500000E+02 + 6.177668867E+02, 2.788999939E+02 + 6.178484254E+02, 2.786499939E+02 + 6.179299619E+02, 2.791000061E+02 + 6.180114963E+02, 2.785499878E+02 + 6.180930286E+02, 2.786000061E+02 + 6.181745587E+02, 2.797999878E+02 + 6.182560868E+02, 2.787500000E+02 + 6.183376127E+02, 2.786000061E+02 + 6.184191365E+02, 2.784500122E+02 + 6.185006581E+02, 2.788500061E+02 + 6.185821776E+02, 2.783999939E+02 + 6.186636950E+02, 2.798999939E+02 + 6.187452103E+02, 2.779500122E+02 + 6.188267234E+02, 2.784500122E+02 + 6.189082344E+02, 2.783999939E+02 + 6.189897433E+02, 2.786000061E+02 + 6.190712500E+02, 2.787999878E+02 + 6.191527546E+02, 2.787500000E+02 + 6.192342570E+02, 2.783999939E+02 + 6.193157574E+02, 2.785000000E+02 + 6.193972556E+02, 2.784500122E+02 + 6.194787516E+02, 2.797000122E+02 + 6.195602455E+02, 2.781499939E+02 + 6.196417373E+02, 2.792000122E+02 + 6.197232269E+02, 2.788500061E+02 + 6.198047144E+02, 2.773500061E+02 + 6.198861998E+02, 2.779500122E+02 + 6.199676830E+02, 2.774500122E+02 + 6.200491641E+02, 2.775499878E+02 + 6.201306430E+02, 2.770499878E+02 + 6.202121198E+02, 2.782999878E+02 + 6.202935944E+02, 2.776000061E+02 + 6.203750669E+02, 2.782500000E+02 + 6.204565373E+02, 2.776499939E+02 + 6.205380055E+02, 2.774500122E+02 + 6.206194715E+02, 2.772999878E+02 + 6.207009355E+02, 2.777000122E+02 + 6.207823972E+02, 2.781499939E+02 + 6.208638568E+02, 2.772999878E+02 + 6.209453143E+02, 2.777000122E+02 + 6.210267696E+02, 2.780000000E+02 + 6.211082228E+02, 2.774500122E+02 + 6.211896738E+02, 2.767000122E+02 + 6.212711227E+02, 2.768999939E+02 + 6.213525694E+02, 2.759500122E+02 + 6.214340139E+02, 2.763999939E+02 + 6.215154563E+02, 2.772500000E+02 + 6.215968966E+02, 2.774500122E+02 + 6.216783347E+02, 2.775499878E+02 + 6.217597706E+02, 2.763500061E+02 + 6.218412044E+02, 2.772999878E+02 + 6.219226360E+02, 2.773500061E+02 + 6.220040655E+02, 2.771000061E+02 + 6.220854928E+02, 2.768999939E+02 + 6.221669179E+02, 2.774500122E+02 + 6.222483409E+02, 2.771000061E+02 + 6.223297618E+02, 2.763999939E+02 + 6.224111804E+02, 2.772500000E+02 + 6.224925969E+02, 2.765000000E+02 + 6.225740113E+02, 2.776000061E+02 + 6.226554234E+02, 2.774500122E+02 + 6.227368334E+02, 2.763999939E+02 + 6.228182413E+02, 2.767000122E+02 + 6.228996470E+02, 2.766000061E+02 + 6.229810505E+02, 2.773999939E+02 + 6.230624518E+02, 2.762000122E+02 + 6.231438510E+02, 2.771000061E+02 + 6.232252480E+02, 2.765000000E+02 + 6.233066429E+02, 2.777500000E+02 + 6.233880355E+02, 2.761499939E+02 + 6.234694260E+02, 2.770499878E+02 + 6.235508143E+02, 2.770499878E+02 + 6.236322005E+02, 2.770499878E+02 + 6.237135845E+02, 2.768999939E+02 + 6.237949663E+02, 2.772000122E+02 + 6.238763459E+02, 2.777000122E+02 + 6.239577234E+02, 2.769500122E+02 + 6.240390987E+02, 2.775000000E+02 + 6.241204718E+02, 2.771000061E+02 + 6.242018427E+02, 2.772500000E+02 + 6.242832115E+02, 2.755499878E+02 + 6.243645781E+02, 2.768999939E+02 + 6.244459425E+02, 2.772000122E+02 + 6.245273047E+02, 2.783500061E+02 + 6.246086647E+02, 2.766000061E+02 + 6.246900226E+02, 2.777500000E+02 + 6.247713783E+02, 2.766000061E+02 + 6.248527318E+02, 2.771499939E+02 + 6.249340831E+02, 2.754500122E+02 + 6.250154322E+02, 2.773999939E+02 + 6.250967791E+02, 2.771000061E+02 + 6.251781239E+02, 2.767999878E+02 + 6.252594665E+02, 2.772999878E+02 + 6.253408069E+02, 2.768999939E+02 + 6.254221451E+02, 2.767000122E+02 + 6.255034811E+02, 2.762999878E+02 + 6.255848149E+02, 2.768999939E+02 + 6.256661466E+02, 2.772000122E+02 + 6.257474760E+02, 2.770000000E+02 + 6.258288033E+02, 2.772500000E+02 + 6.259101283E+02, 2.767500000E+02 + 6.259914512E+02, 2.761000061E+02 + 6.260727719E+02, 2.764500122E+02 + 6.261540904E+02, 2.774500122E+02 + 6.262354067E+02, 2.773999939E+02 + 6.263167208E+02, 2.768500061E+02 + 6.263980327E+02, 2.760000000E+02 + 6.264793424E+02, 2.770499878E+02 + 6.265606499E+02, 2.778500061E+02 + 6.266419552E+02, 2.774500122E+02 + 6.267232583E+02, 2.776499939E+02 + 6.268045592E+02, 2.763500061E+02 + 6.268858580E+02, 2.773500061E+02 + 6.269671545E+02, 2.766000061E+02 + 6.270484488E+02, 2.775000000E+02 + 6.271297409E+02, 2.766000061E+02 + 6.272110308E+02, 2.767999878E+02 + 6.272923186E+02, 2.765000000E+02 + 6.273736041E+02, 2.767999878E+02 + 6.274548874E+02, 2.773999939E+02 + 6.275361685E+02, 2.773999939E+02 + 6.276174474E+02, 2.768500061E+02 + 6.276987241E+02, 2.762999878E+02 + 6.277799985E+02, 2.762500000E+02 + 6.278612708E+02, 2.757500000E+02 + 6.279425409E+02, 2.767500000E+02 + 6.280238088E+02, 2.767999878E+02 + 6.281050744E+02, 2.763999939E+02 + 6.281863378E+02, 2.763500061E+02 + 6.282675991E+02, 2.771499939E+02 + 6.283488581E+02, 2.761499939E+02 + 6.284301149E+02, 2.761499939E+02 + 6.285113695E+02, 2.766499939E+02 + 6.285926219E+02, 2.767500000E+02 + 6.286738720E+02, 2.769500122E+02 + 6.287551200E+02, 2.761000061E+02 + 6.288363657E+02, 2.763500061E+02 + 6.289176092E+02, 2.772999878E+02 + 6.289988505E+02, 2.763999939E+02 + 6.290800896E+02, 2.773999939E+02 + 6.291613265E+02, 2.763500061E+02 + 6.292425611E+02, 2.768500061E+02 + 6.293237936E+02, 2.767999878E+02 + 6.294050238E+02, 2.770499878E+02 + 6.294862518E+02, 2.767999878E+02 + 6.295674775E+02, 2.762999878E+02 + 6.296487011E+02, 2.762500000E+02 + 6.297299224E+02, 2.767000122E+02 + 6.298111415E+02, 2.776499939E+02 + 6.298923584E+02, 2.763500061E+02 + 6.299735730E+02, 2.775000000E+02 + 6.300547854E+02, 2.772000122E+02 + 6.301359956E+02, 2.763999939E+02 + 6.302172036E+02, 2.765000000E+02 + 6.302984093E+02, 2.776000061E+02 + 6.303796128E+02, 2.767500000E+02 + 6.304608141E+02, 2.775000000E+02 + 6.305420132E+02, 2.775000000E+02 + 6.306232100E+02, 2.766499939E+02 + 6.307044046E+02, 2.775000000E+02 + 6.307855969E+02, 2.768999939E+02 + 6.308667871E+02, 2.760499878E+02 + 6.309479750E+02, 2.767999878E+02 + 6.310291606E+02, 2.762999878E+02 + 6.311103440E+02, 2.757500000E+02 + 6.311915252E+02, 2.770000000E+02 + 6.312727042E+02, 2.768999939E+02 + 6.313538809E+02, 2.770499878E+02 + 6.314350554E+02, 2.763500061E+02 + 6.315162276E+02, 2.771499939E+02 + 6.315973976E+02, 2.755000000E+02 + 6.316785654E+02, 2.757500000E+02 + 6.317597309E+02, 2.767500000E+02 + 6.318408942E+02, 2.768999939E+02 + 6.319220552E+02, 2.760000000E+02 + 6.320032140E+02, 2.771000061E+02 + 6.320843706E+02, 2.766000061E+02 + 6.321655249E+02, 2.765000000E+02 + 6.322466770E+02, 2.756000061E+02 + 6.323278268E+02, 2.762500000E+02 + 6.324089744E+02, 2.760499878E+02 + 6.324901197E+02, 2.761499939E+02 + 6.325712628E+02, 2.757000122E+02 + 6.326524036E+02, 2.762000122E+02 + 6.327335422E+02, 2.754500122E+02 + 6.328146786E+02, 2.757999878E+02 + 6.328958127E+02, 2.765000000E+02 + 6.329769445E+02, 2.767000122E+02 + 6.330580741E+02, 2.760000000E+02 + 6.331392015E+02, 2.755000000E+02 + 6.332203265E+02, 2.758999939E+02 + 6.333014494E+02, 2.754500122E+02 + 6.333825700E+02, 2.761000061E+02 + 6.334636883E+02, 2.760000000E+02 + 6.335448044E+02, 2.767500000E+02 + 6.336259182E+02, 2.752999878E+02 + 6.337070297E+02, 2.766000061E+02 + 6.337881390E+02, 2.763999939E+02 + 6.338692461E+02, 2.765499878E+02 + 6.339503509E+02, 2.748999939E+02 + 6.340314534E+02, 2.767000122E+02 + 6.341125537E+02, 2.760499878E+02 + 6.341936517E+02, 2.770499878E+02 + 6.342747474E+02, 2.761000061E+02 + 6.343558409E+02, 2.761000061E+02 + 6.344369322E+02, 2.747999878E+02 + 6.345180211E+02, 2.765499878E+02 + 6.345991078E+02, 2.760499878E+02 + 6.346801922E+02, 2.766499939E+02 + 6.347612744E+02, 2.760000000E+02 + 6.348423543E+02, 2.760000000E+02 + 6.349234320E+02, 2.756499939E+02 + 6.350045073E+02, 2.757999878E+02 + 6.350855804E+02, 2.756000061E+02 + 6.351666513E+02, 2.765000000E+02 + 6.352477198E+02, 2.771499939E+02 + 6.353287861E+02, 2.752999878E+02 + 6.354098501E+02, 2.760000000E+02 + 6.354909119E+02, 2.752000122E+02 + 6.355719714E+02, 2.764500122E+02 + 6.356530286E+02, 2.766499939E+02 + 6.357340835E+02, 2.763999939E+02 + 6.358151362E+02, 2.761000061E+02 + 6.358961866E+02, 2.766499939E+02 + 6.359772347E+02, 2.757000122E+02 + 6.360582805E+02, 2.758500061E+02 + 6.361393241E+02, 2.757999878E+02 + 6.362203654E+02, 2.754500122E+02 + 6.363014044E+02, 2.762500000E+02 + 6.363824411E+02, 2.755499878E+02 + 6.364634756E+02, 2.763999939E+02 + 6.365445077E+02, 2.761499939E+02 + 6.366255376E+02, 2.755000000E+02 + 6.367065652E+02, 2.765499878E+02 + 6.367875905E+02, 2.759500122E+02 + 6.368686136E+02, 2.761499939E+02 + 6.369496344E+02, 2.758999939E+02 + 6.370306528E+02, 2.747999878E+02 + 6.371116690E+02, 2.758500061E+02 + 6.371926829E+02, 2.752999878E+02 + 6.372736945E+02, 2.760499878E+02 + 6.373547039E+02, 2.765499878E+02 + 6.374357109E+02, 2.756000061E+02 + 6.375167157E+02, 2.761000061E+02 + 6.375977182E+02, 2.757000122E+02 + 6.376787183E+02, 2.757000122E+02 + 6.377597162E+02, 2.757000122E+02 + 6.378407118E+02, 2.767500000E+02 + 6.379217051E+02, 2.755000000E+02 + 6.380026961E+02, 2.765499878E+02 + 6.380836849E+02, 2.756000061E+02 + 6.381646713E+02, 2.756000061E+02 + 6.382456554E+02, 2.758999939E+02 + 6.383266373E+02, 2.750499878E+02 + 6.384076168E+02, 2.752000122E+02 + 6.384885941E+02, 2.755000000E+02 + 6.385695690E+02, 2.755000000E+02 + 6.386505417E+02, 2.766499939E+02 + 6.387315120E+02, 2.757500000E+02 + 6.388124801E+02, 2.755000000E+02 + 6.388934459E+02, 2.758999939E+02 + 6.389744093E+02, 2.762000122E+02 + 6.390553705E+02, 2.752500000E+02 + 6.391363294E+02, 2.748999939E+02 + 6.392172859E+02, 2.755499878E+02 + 6.392982402E+02, 2.765000000E+02 + 6.393791921E+02, 2.746499939E+02 + 6.394601418E+02, 2.752999878E+02 + 6.395410891E+02, 2.753999939E+02 + 6.396220341E+02, 2.752999878E+02 + 6.397029769E+02, 2.755499878E+02 + 6.397839173E+02, 2.755499878E+02 + 6.398648554E+02, 2.763500061E+02 + 6.399457912E+02, 2.761000061E+02 + 6.400267247E+02, 2.757000122E+02 + 6.401076559E+02, 2.753999939E+02 + 6.401885848E+02, 2.760499878E+02 + 6.402695114E+02, 2.758500061E+02 + 6.403504356E+02, 2.755000000E+02 + 6.404313576E+02, 2.759500122E+02 + 6.405122772E+02, 2.751000061E+02 + 6.405931945E+02, 2.765000000E+02 + 6.406741095E+02, 2.762999878E+02 + 6.407550222E+02, 2.754500122E+02 + 6.408359326E+02, 2.769500122E+02 + 6.409168406E+02, 2.757500000E+02 + 6.409977464E+02, 2.761499939E+02 + 6.410786498E+02, 2.755499878E+02 + 6.411595509E+02, 2.761000061E+02 + 6.412404497E+02, 2.758999939E+02 + 6.413213462E+02, 2.762500000E+02 + 6.414022403E+02, 2.757000122E+02 + 6.414831322E+02, 2.757999878E+02 + 6.415640217E+02, 2.760000000E+02 + 6.416449088E+02, 2.762500000E+02 + 6.417257937E+02, 2.752999878E+02 + 6.418066762E+02, 2.754500122E+02 + 6.418875565E+02, 2.752000122E+02 + 6.419684343E+02, 2.757999878E+02 + 6.420493099E+02, 2.758500061E+02 + 6.421301831E+02, 2.753999939E+02 + 6.422110541E+02, 2.747999878E+02 + 6.422919226E+02, 2.751000061E+02 + 6.423727889E+02, 2.757500000E+02 + 6.424536528E+02, 2.757000122E+02 + 6.425345144E+02, 2.757999878E+02 + 6.426153737E+02, 2.758999939E+02 + 6.426962306E+02, 2.762999878E+02 + 6.427770852E+02, 2.750000000E+02 + 6.428579375E+02, 2.757999878E+02 + 6.429387874E+02, 2.757999878E+02 + 6.430196350E+02, 2.762500000E+02 + 6.431004803E+02, 2.751499939E+02 + 6.431813232E+02, 2.760499878E+02 + 6.432621639E+02, 2.766499939E+02 + 6.433430021E+02, 2.747999878E+02 + 6.434238380E+02, 2.760000000E+02 + 6.435046716E+02, 2.755000000E+02 + 6.435855029E+02, 2.747999878E+02 + 6.436663318E+02, 2.750000000E+02 + 6.437471584E+02, 2.753999939E+02 + 6.438279826E+02, 2.754500122E+02 + 6.439088045E+02, 2.750000000E+02 + 6.439896241E+02, 2.752999878E+02 + 6.440704413E+02, 2.757000122E+02 + 6.441512561E+02, 2.751499939E+02 + 6.442320686E+02, 2.751499939E+02 + 6.443128788E+02, 2.759500122E+02 + 6.443936867E+02, 2.752999878E+02 + 6.444744922E+02, 2.752500000E+02 + 6.445552953E+02, 2.754500122E+02 + 6.446360961E+02, 2.756000061E+02 + 6.447168945E+02, 2.749500122E+02 + 6.447976906E+02, 2.758500061E+02 + 6.448784844E+02, 2.752500000E+02 + 6.449592758E+02, 2.752500000E+02 + 6.450400648E+02, 2.748999939E+02 + 6.451208515E+02, 2.761499939E+02 + 6.452016359E+02, 2.761499939E+02 + 6.452824179E+02, 2.751499939E+02 + 6.453631975E+02, 2.750499878E+02 + 6.454439748E+02, 2.754500122E+02 + 6.455247498E+02, 2.751499939E+02 + 6.456055223E+02, 2.754500122E+02 + 6.456862926E+02, 2.750000000E+02 + 6.457670604E+02, 2.746000061E+02 + 6.458478259E+02, 2.752500000E+02 + 6.459285891E+02, 2.752999878E+02 + 6.460093499E+02, 2.753500061E+02 + 6.460901083E+02, 2.757000122E+02 + 6.461708644E+02, 2.753999939E+02 + 6.462516181E+02, 2.757999878E+02 + 6.463323695E+02, 2.750000000E+02 + 6.464131185E+02, 2.748500061E+02 + 6.464938651E+02, 2.752500000E+02 + 6.465746094E+02, 2.751000061E+02 + 6.466553513E+02, 2.765000000E+02 + 6.467360908E+02, 2.750000000E+02 + 6.468168280E+02, 2.755000000E+02 + 6.468975628E+02, 2.754500122E+02 + 6.469782953E+02, 2.750499878E+02 + 6.470590253E+02, 2.756499939E+02 + 6.471397531E+02, 2.754500122E+02 + 6.472204784E+02, 2.757000122E+02 + 6.473012014E+02, 2.753999939E+02 + 6.473819220E+02, 2.750000000E+02 + 6.474626402E+02, 2.742999878E+02 + 6.475433561E+02, 2.752999878E+02 + 6.476240696E+02, 2.753500061E+02 + 6.477047807E+02, 2.757999878E+02 + 6.477854894E+02, 2.752000122E+02 + 6.478661958E+02, 2.748999939E+02 + 6.479468998E+02, 2.755000000E+02 + 6.480276014E+02, 2.761000061E+02 + 6.481083007E+02, 2.742999878E+02 + 6.481889976E+02, 2.752500000E+02 + 6.482696921E+02, 2.747999878E+02 + 6.483503842E+02, 2.755499878E+02 + 6.484310739E+02, 2.752500000E+02 + 6.485117613E+02, 2.751000061E+02 + 6.485924463E+02, 2.749500122E+02 + 6.486731289E+02, 2.755499878E+02 + 6.487538091E+02, 2.752999878E+02 + 6.488344869E+02, 2.763500061E+02 + 6.489151624E+02, 2.765499878E+02 + 6.489958355E+02, 2.757500000E+02 + 6.490765062E+02, 2.750000000E+02 + 6.491571745E+02, 2.744500122E+02 + 6.492378404E+02, 2.750499878E+02 + 6.493185039E+02, 2.748500061E+02 + 6.493991651E+02, 2.749500122E+02 + 6.494798239E+02, 2.747000122E+02 + 6.495604802E+02, 2.761499939E+02 + 6.496411342E+02, 2.742500000E+02 + 6.497217858E+02, 2.748999939E+02 + 6.498024350E+02, 2.757999878E+02 + 6.498830819E+02, 2.747500000E+02 + 6.499637263E+02, 2.751000061E+02 + 6.500443683E+02, 2.751499939E+02 + 6.501250080E+02, 2.752999878E+02 + 6.502056452E+02, 2.748999939E+02 + 6.502862801E+02, 2.751499939E+02 + 6.503669126E+02, 2.759500122E+02 + 6.504475426E+02, 2.743999939E+02 + 6.505281703E+02, 2.753500061E+02 + 6.506087956E+02, 2.756000061E+02 + 6.506894185E+02, 2.754500122E+02 + 6.507700390E+02, 2.753999939E+02 + 6.508506571E+02, 2.746000061E+02 + 6.509312727E+02, 2.756499939E+02 + 6.510118860E+02, 2.757500000E+02 + 6.510924969E+02, 2.753500061E+02 + 6.511731054E+02, 2.752999878E+02 + 6.512537115E+02, 2.758500061E+02 + 6.513343152E+02, 2.749500122E+02 + 6.514149165E+02, 2.754500122E+02 + 6.514955154E+02, 2.752999878E+02 + 6.515761118E+02, 2.750000000E+02 + 6.516567059E+02, 2.753500061E+02 + 6.517372976E+02, 2.753500061E+02 + 6.518178868E+02, 2.747500000E+02 + 6.518984737E+02, 2.747500000E+02 + 6.519790581E+02, 2.749500122E+02 + 6.520596402E+02, 2.753999939E+02 + 6.521402198E+02, 2.755000000E+02 + 6.522207970E+02, 2.747500000E+02 + 6.523013719E+02, 2.746499939E+02 + 6.523819443E+02, 2.745499878E+02 + 6.524625142E+02, 2.756499939E+02 + 6.525430818E+02, 2.747000122E+02 + 6.526236470E+02, 2.751499939E+02 + 6.527042097E+02, 2.749500122E+02 + 6.527847701E+02, 2.750499878E+02 + 6.528653280E+02, 2.755499878E+02 + 6.529458835E+02, 2.742500000E+02 + 6.530264366E+02, 2.743500061E+02 + 6.531069873E+02, 2.748500061E+02 + 6.531875355E+02, 2.757500000E+02 + 6.532680814E+02, 2.756499939E+02 + 6.533486248E+02, 2.750000000E+02 + 6.534291658E+02, 2.747000122E+02 + 6.535097044E+02, 2.753999939E+02 + 6.535902406E+02, 2.760499878E+02 + 6.536707743E+02, 2.755499878E+02 + 6.537513056E+02, 2.747999878E+02 + 6.538318345E+02, 2.755000000E+02 + 6.539123610E+02, 2.753999939E+02 + 6.539928851E+02, 2.747500000E+02 + 6.540734067E+02, 2.750000000E+02 + 6.541539259E+02, 2.749500122E+02 + 6.542344427E+02, 2.754500122E+02 + 6.543149570E+02, 2.746000061E+02 + 6.543954689E+02, 2.750000000E+02 + 6.544759784E+02, 2.747000122E+02 + 6.545564855E+02, 2.755000000E+02 + 6.546369901E+02, 2.752500000E+02 + 6.547174923E+02, 2.750499878E+02 + 6.547979921E+02, 2.742000122E+02 + 6.548784895E+02, 2.751499939E+02 + 6.549589844E+02, 2.757999878E+02 + 6.550394769E+02, 2.752500000E+02 + 6.551199669E+02, 2.753500061E+02 + 6.552004545E+02, 2.751000061E+02 + 6.552809397E+02, 2.753500061E+02 + 6.553614225E+02, 2.747500000E+02 + 6.554419028E+02, 2.749500122E+02 + 6.555223806E+02, 2.749500122E+02 + 6.556028561E+02, 2.749500122E+02 + 6.556833291E+02, 2.747999878E+02 + 6.557637996E+02, 2.754500122E+02 + 6.558442678E+02, 2.749500122E+02 + 6.559247335E+02, 2.761499939E+02 + 6.560051967E+02, 2.740000000E+02 + 6.560856575E+02, 2.750499878E+02 + 6.561661159E+02, 2.757500000E+02 + 6.562465718E+02, 2.748500061E+02 + 6.563270253E+02, 2.748999939E+02 + 6.564074763E+02, 2.747999878E+02 + 6.564879249E+02, 2.752500000E+02 + 6.565683710E+02, 2.741499939E+02 + 6.566488147E+02, 2.752000122E+02 + 6.567292560E+02, 2.750000000E+02 + 6.568096948E+02, 2.746499939E+02 + 6.568901311E+02, 2.738500061E+02 + 6.569705651E+02, 2.750000000E+02 + 6.570509965E+02, 2.747000122E+02 + 6.571314255E+02, 2.755499878E+02 + 6.572118521E+02, 2.746000061E+02 + 6.572922762E+02, 2.743500061E+02 + 6.573726979E+02, 2.745000000E+02 + 6.574531171E+02, 2.753999939E+02 + 6.575335338E+02, 2.751499939E+02 + 6.576139481E+02, 2.750499878E+02 + 6.576943600E+02, 2.753999939E+02 + 6.577747694E+02, 2.748999939E+02 + 6.578551763E+02, 2.747500000E+02 + 6.579355808E+02, 2.752000122E+02 + 6.580159828E+02, 2.750000000E+02 + 6.580963824E+02, 2.747500000E+02 + 6.581767795E+02, 2.745000000E+02 + 6.582571741E+02, 2.752000122E+02 + 6.583375663E+02, 2.739500122E+02 + 6.584179561E+02, 2.745499878E+02 + 6.584983433E+02, 2.748999939E+02 + 6.585787281E+02, 2.753999939E+02 + 6.586591105E+02, 2.757000122E+02 + 6.587394904E+02, 2.750000000E+02 + 6.588198678E+02, 2.742999878E+02 + 6.589002428E+02, 2.747000122E+02 + 6.589806153E+02, 2.747999878E+02 + 6.590609853E+02, 2.752500000E+02 + 6.591413529E+02, 2.751000061E+02 + 6.592217180E+02, 2.759500122E+02 + 6.593020806E+02, 2.745499878E+02 + 6.593824407E+02, 2.753500061E+02 + 6.594627984E+02, 2.741499939E+02 + 6.595431537E+02, 2.753500061E+02 + 6.596235064E+02, 2.751499939E+02 + 6.597038567E+02, 2.748500061E+02 + 6.597842045E+02, 2.751000061E+02 + 6.598645499E+02, 2.747999878E+02 + 6.599448927E+02, 2.747999878E+02 + 6.600252331E+02, 2.749500122E+02 + 6.601055711E+02, 2.747500000E+02 + 6.601859065E+02, 2.753999939E+02 + 6.602662395E+02, 2.757999878E+02 + 6.603465700E+02, 2.747000122E+02 + 6.604268980E+02, 2.754500122E+02 + 6.605072236E+02, 2.753999939E+02 + 6.605875466E+02, 2.746000061E+02 + 6.606678672E+02, 2.752999878E+02 + 6.607481853E+02, 2.751000061E+02 + 6.608285010E+02, 2.743500061E+02 + 6.609088141E+02, 2.756000061E+02 + 6.609891248E+02, 2.749500122E+02 + 6.610694330E+02, 2.747500000E+02 + 6.611497387E+02, 2.742500000E+02 + 6.612300419E+02, 2.745499878E+02 + 6.613103426E+02, 2.749500122E+02 + 6.613906409E+02, 2.752000122E+02 + 6.614709367E+02, 2.751499939E+02 + 6.615512300E+02, 2.746499939E+02 + 6.616315208E+02, 2.751499939E+02 + 6.617118091E+02, 2.748999939E+02 + 6.617920949E+02, 2.752500000E+02 + 6.618723782E+02, 2.746499939E+02 diff --git a/examples/witec/txt/config_file.json b/examples/witec/txt/config_file.json new file mode 100644 index 0000000..7e06aa4 --- /dev/null +++ b/examples/witec/txt/config_file.json @@ -0,0 +1,64 @@ +{ + "/ENTRY[entry]/INSTRUMENT[instrument]/scattering_configuration": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/beam_incident/wavelength": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/beam_incident/wavelength/@units": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/beam_incident/parameter_reliability": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/beam_incident/average_power": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/beam_incident/average_power/@units": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/beam_incident/associated_source": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/detector_TYPE[detector_ccd]/detector_channel_type": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/detector_TYPE[detector_ccd]/count_time/@units": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/detector_TYPE[detector_ccd]/count_time": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/detector_TYPE[detector_ccd]/number_of_cycles": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/detector_TYPE[detector_ccd]/number_of_cycles/@units": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/detector_TYPE[detector_ccd]/detector_type": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/detector_TYPE[detector_ccd]/FABRICATION[device_information]/model": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/detector_TYPE[detector_ccd]/FABRICATION[device_information]/serial_number": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/detector_TYPE[detector_ccd]/detector_number": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/detector_TYPE[detector_ccd]/gain_setting": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/SOURCE[source_532nmlaser]/type": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/SOURCE[source_532nmlaser]/power": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/SOURCE[source_532nmlaser]/power/@units": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/FABRICATION[device_information]/vendor": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/FABRICATION[device_information]/model": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/LENS_OPT[objective_lens]/type": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/LENS_OPT[objective_lens]/FABRICATION[device_information]/vendor": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/LENS_OPT[objective_lens]/FABRICATION[device_information]/model": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/LENS_OPT[objective_lens]/magnification": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/LENS_OPT[objective_lens]/numerical_aperture": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/MONOCHROMATOR[monochromator]/device_information/model": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/MONOCHROMATOR[monochromator]/grating/period": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/MONOCHROMATOR[monochromator]/grating/period/@units": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/MONOCHROMATOR[monochromator]/wavelength": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/MONOCHROMATOR[monochromator]/wavelength/@units": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/SENSOR[temperature_sensor]/attached_to": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/SENSOR[temperature_sensor]/measurement": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/SENSOR[temperature_sensor]/value": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/SENSOR[temperature_sensor]/value/@units": "@eln", + "/ENTRY[entry]/SAMPLE[sample]/name": "@eln", + "/ENTRY[entry]/SAMPLE[sample]/atom_types": "@eln", + "/ENTRY[entry]/USER[user]/address": "@eln", + "/ENTRY[entry]/USER[user]/affiliation": "@eln", + "/ENTRY[entry]/USER[user]/email": "@eln", + "/ENTRY[entry]/USER[user]/name": "@eln", + "/ENTRY[entry]/experiment_description": "@eln", + "/ENTRY[entry]/experiment_type": "@eln", + "/ENTRY[entry]/raman_experiment_type": "@eln", + "/ENTRY[entry]/title": "@eln", + "/ENTRY[entry]/start_time": "@eln", + "/ENTRY[entry]/definition": "@eln", + "/ENTRY[entry]/definition/@url": "@eln", + "/ENTRY[entry]/@default": "data", + "/ENTRY[entry]/DATA[data]/@signal": "y_values", + "/ENTRY[entry]/DATA[data]/y_values": "@data:y_values", + "/ENTRY[entry]/DATA[data]/x_values": "@data:x_values", + "/ENTRY[entry]/DATA[data]/y_values/@units": "@eln:/ENTRY[entry]/data/unit_y", + "/ENTRY[entry]/DATA[data]/x_values/@units": "@eln:/ENTRY[entry]/data/unit_x", + "/ENTRY[entry]/DATA[data]/y_values/@long_name": "@eln:/ENTRY[entry]/data/longname_y", + "/ENTRY[entry]/DATA[data]/x_values/@long_name": "@eln:/ENTRY[entry]/data/longname_x", + "/ENTRY[entry]/DATA[data]/@axes":"x_values_raman", + "/ENTRY[entry]/DATA[data]/x_values_raman/@long_name": "@eln:/ENTRY[entry]/data/longname_x_raman", + "/ENTRY[entry]/DATA[data]/x_values_raman": "@data:x_values_raman", + "/ENTRY[entry]/DATA[data]/x_values_raman/@units": "1/cm" + } + diff --git a/examples/witec/txt/eln_data.yaml b/examples/witec/txt/eln_data.yaml new file mode 100644 index 0000000..cd6befb --- /dev/null +++ b/examples/witec/txt/eln_data.yaml @@ -0,0 +1,124 @@ +# Original meta_data_1.txt file below +#Spectrum--000 +# +#General: +# System ID: 100-1100-292 +# Start Time: 2:04:54 PM +# Start Date: Friday, June 21, 2024 +# Duration: 0h 0m 21s +# User Name: Witec +# Sample Name: +# Configuration: Raman CCD1 +# +# UHTS300M: +# Excitation Wavelength [nm]: 532.100 +# Grating: G1: 600 g/mm BLZ=500nm +# Center Wavelength [nm]: 596.989 +# Spectral Center [rel. 1/cm]: 2042.739 +# +# DU970_BV: +# Serial Number: 6358 +# Readout Mode: FVB (1-200) +# Output Amplifier: Conventional +# Vertical Shift Speed [µs]: 9.75 +# Horizontal Shift Speed [MHz]: 0.050 +# Preamplifier Gain: 1.00 +# Cycle Time [sec]: 1.00002 +# Sensor Temperature [°C]: -56 +# +# Number Of Accumulations: 20 +# Integration Time [s]: 1.00000 +# +# Objective: +# Objective Name: Nikon 20x 20x / 0.4 +# Objective Magnification: 20.0 +# +# Sample Location (global position): +# Position X [µm]: 0.000 +# Position Y [µm]: 0.000 +# Position Z [µm]: 0.000 + +data: + unit_x: nm + unit_y: counts + longname_x: Wavelength + longname_y: Raman Intensity + longname_x_raman: Raman Shift +instrument: + scattering_configuration: z(xx)-z + beam_incident: + wavelength: + value: 532.1 + unit: nm + average_power: + value: 60 + unit: mW + parameter_reliability: nominal + associated_source: entry/instrument/source_532nmlaser + detector_ccd: + detector_channel_type: multichannel + count_time: + value: 1.0 + unit: s + number_of_cycles: + value: 20 + unit: counts + detector_type: CCD + device_information: + model: DU970_BV + serial_number: "6358" + detector_number: + - 1600 + - 200 + gain_setting: 1.0 + temperature_sensor: + attached_to: CCD + measurement: temperature + value: + value: -56 + unit: celsius + source_532nmlaser: + type: laser #DPSS + power: + value: 80 + unit: mW + device_information: + vendor: Witec + model: Alpha Raman + objective_lens: + type: objective + device_information: + vendor: Nikon + model: "Nikon 20x" + magnification: 20 + numerical_aperture: 0.4 + monochromator: + device_information: + model: UHTS300M + grating: + period: + value: 600 + unit: counts / mm + wavelength: + value: 596.989 ##Spectral Center [rel. 1/cm]: 2042.739 + unit: nm +sample: + name: Silicon Wafer + atom_types: Si +user: + address: Lennestr. 5, 04318 Leipzig + affiliation: Universität Leipzig + email: ron.hildebrandt@physik.hu-berlin.de + name: Hildebrandt, Ron +experiment_description: Raman spectrum of commercial silicon wafer +experiment_type: Raman spectroscopy +raman_experiment_type: non-resonant Raman spectroscopy +title: Si-Wafer +start_time: '2024-06-21T14:04:54+02:00' +definition: NXraman +definition/@url: https://github.com/FAIRmat-NFDI/nexus_definitions/blob/fairmat/contributed_definitions/NXraman.nxdl.xml # can be removed later, if the NeXus as submodule in pynxtools is updated, just in to let CICD pass. +measurement_file_meta_data: + delimiter: "," + skip_lines: 17 + + diff --git a/pyproject.toml b/pyproject.toml index 53f5179..3114b4e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,6 +27,8 @@ dependencies = [ [project.entry-points."pynxtools.reader"] raman = "pynxtools_raman.reader:RamanReader" +raman_multi = "pynxtools_raman_multiformat.reader:RamanReaderMulti" + [project.urls] "Homepage" = "https://github.com/FAIRmat-NFDI/pynxtools-raman" diff --git a/src/pynxtools_raman_multiformat/README.md b/src/pynxtools_raman_multiformat/README.md new file mode 100644 index 0000000..ae39aaf --- /dev/null +++ b/src/pynxtools_raman_multiformat/README.md @@ -0,0 +1,9 @@ +## Multiformat data reader for Raman spectroscopy data +This is example data for writing a new data reader based on the [`MultiFormatReader`](https://github.com/FAIRmat-NFDI/pynxtools/blob/master/src/pynxtools/dataconverter/readers/multi/reader.py) from scratch. A how-to guide to implement this reader is available [here](https://fairmat-nfdi.github.io/pynxtools/how-tos/use-multi-format-reader.html) + +## This file types are currently supported: +- Witec Alpha Raman microscope - via ELN file (.yaml) and .txt data file + + +## Examples +Examples can be found in the example folder in the root of this repository. \ No newline at end of file diff --git a/src/pynxtools_raman_multiformat/reader.py b/src/pynxtools_raman_multiformat/reader.py new file mode 100644 index 0000000..cf205cd --- /dev/null +++ b/src/pynxtools_raman_multiformat/reader.py @@ -0,0 +1,232 @@ +# Copyright The NOMAD Authors. +# +# This file is part of NOMAD. See https://nomad-lab.eu for further info. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +"""An example reader implementation based on the MultiFormatReader.""" + +import logging +from typing import Dict, Any +import h5py +import numpy as np + +from pynxtools.dataconverter.readers.multi.reader import MultiFormatReader +from pynxtools.dataconverter.readers.utils import parse_yml + +logger = logging.getLogger("pynxtools") + +CONVERT_DICT = {} + + +class RamanReaderMulti(MultiFormatReader): + """MyDataReader implementation for the DataConverter to convert mydata to NeXus.""" + + supported_nxdls = ["NXraman"] + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.txt_data: Dict[str, Any] = {} + + self.extensions = { + ".yml": self.handle_eln_file, + ".yaml": self.handle_eln_file, + ".txt": self.handle_txt_file, + ".json": self.set_config_file} + + self.txt_line_skips = None + + def set_config_file(self, file_path: str) -> Dict[str, Any]: + if self.config_file is not None: + logger.info( + f"Config file already set. Replaced by the new file {file_path}." + ) + self.config_file = file_path + return {} + + def handle_eln_file(self, file_path: str) -> Dict[str, Any]: + self.eln_data = parse_yml( + file_path, + convert_dict=CONVERT_DICT, + parent_key="/ENTRY[entry]", + ) + #self.txt_line_skips = self.eln_data.get('/ENTRY[entry]/skip') + + return {} + + def handle_txt_file(self, filepath) -> Dict[str, Any]: + self.read_txt_file(filepath) + return {} + + def get_attr(self, key: str, path: str) -> Any: + """ + Get the metadata that was stored in the main(=data) file. + """ + + if self.txt_data is None: + return None + return self.txt_data.get(path) + + def read_txt_file(self, filepath): + """ + Read a .txt file from Witec Alpha Raman spectrometer and save the header and measurement data. + """ + with open(filepath, "r") as file: + lines = file.readlines() + + # Initialize dictionaries to hold header and data sections + header_dict = {} + data = [] + line_count = 0 + data_mini_header_length = None + + # Track current section + current_section = None + + for line in lines: + line_count += 1 + # Remove any leading/trailing whitespace + line = line.strip() + # Go through the lines and define two different regions "Header" and + # "Data", as these need different methods to extract the data. + if line.startswith("[Header]"): + current_section = "header" + continue + elif line.startswith("[Data]"): + data_mini_header_length = line_count + 2 + current_section = "data" + + continue + + # Parse the header section + if current_section == "header" and "=" in line: + key, value = line.split("=", 1) + header_dict[key.strip()] = value.strip() + + # Parse the data section + elif current_section == "data" and "," in line: + # The header is set excactly until the float-like column data starts + # Rework this later to extract full metadata + if line_count <= data_mini_header_length: + if line.startswith("[Header]"): + logger.info( + f"[Header] elements in the file {filepath}, are not parsed yet. Consider adden the respective functionality." + ) + if line_count > data_mini_header_length: + values = line.split(",") + data.append([float(values[0].strip()), float(values[1].strip())]) + + # Transform: [[A, B], [C, D], [E, F]] into [[A, C, E], [B, D, F]] + data = [list(item) for item in zip(*data)] + + #transform linewise read data to colum style data + data = np.transpose(data) + + # assign column data with keys + data_dict = { + "data/x_values": data[:, 0], + "data/y_values": data[:, 1] + } + + self.txt_data = data_dict + self.txt_header = header_dict + + + def get_eln_data(self, key: str, path: str) -> Any: + """ + Returns data from the eln file. This is done via the file: "config_file.json". + There are two suations: + 1. The .json file has only a key assigned + 2. The .json file has a key AND a value assigned. + The assigned value should be a "path", which reflects another entry in the eln file. + This acts as eln_path redirection, which is used for example to assign flexible + parameters from the eln_file (units, axisnames, etc.) + """ + if self.eln_data is None: + return None + + # Use the path to get the eln_data (this refers to the 2. case) + if len(path) > 0: + return self.eln_data.get(path) + + # If no path is assigned, use directly the given key to extract + # the eln data/value (this refers to the 1. case) + + # Filtering list, for NeXus concepts which use mixed notation of + # upper and lowercase to ensure correct NXclass labeling. + upper_and_lower_mixed_nexus_concepts = ["/detector_TYPE[", + "/beam_TYPE[", + "/source_TYPE[", + "/polfilter_TYPE[", + "/spectral_filter_TYPE[", + "/temp_control_TYPE[", + "/software_TYPE[", + "/LENS_OPT[" + + ] + if self.eln_data.get(key) is None: + # filter for mixed concept names + for string in upper_and_lower_mixed_nexus_concepts: + key = key.replace(string,"/[") + # add only characters, if they are lower case and if they are not "[" or "]" + result = ''.join([char for char in key if not (char.isupper() or char in '[]')]) + # Filter as well for + result = result.replace("entry",f"ENTRY[{self.callbacks.entry_name}]") + + if self.eln_data.get(result) is not None: + return self.eln_data.get(result) + else: + logger.warning(f"No key found during eln_data processsing for key '{key}' after it's modification to '{result}'.") + return self.eln_data.get(key) + + def get_data(self, key: str, path: str) -> Any: + """Returns measurement data from the given eln_data entry.""" + if path.endswith(("x_values", "y_values","x_values_raman")): + return self.txt_data.get(f"data/{path}") + else: + logger.warning(f"No axis name corresponding to the path {path}.") + + + def post_process(self) -> None: + """ + Post process the Raman data to add the Raman Shift from input laser wavelength and + data wavelengths. + """ + + def transform_nm_to_wavenumber(self, lambda_laser, lambda_measurement): + stokes_raman_shift = -(1e7 / lambda_measurement - 1e7 / lambda_laser) + return stokes_raman_shift + + def get_incident_wavelength_from_NXraman(self): + substring = "/beam_incident/wavelength" + + # Find matching keys with contain this substring + wavelength_keys = [key for key in self.eln_data if substring in key] + # Filter the matching keys for the strings, which contain this substring at the end only + filtered_list = [string for string in wavelength_keys if string.endswith(substring)] + # get the laser wavelength + laser_wavelength = self.eln_data.get(filtered_list[0]) + return laser_wavelength + + laser_wavelength = get_incident_wavelength_from_NXraman(self) + x_values_raman = transform_nm_to_wavenumber(self, laser_wavelength, self.txt_data["data/x_values"]) + + self.txt_data["data/x_values_raman"] = x_values_raman + +READER = RamanReaderMulti + +# Use this command in this .py file folder: +# dataconverter eln_data.yaml Si-wafer-Raman-Spectrum-1.txt -c config_file.json --reader raman_multi --nxdl NXraman --output output_raman.nxs +# +# Remaining Warnings +# WARNING: Missing attribute: "/ENTRY[entry]/definition/@URL" diff --git a/tests/data_multi/Si-wafer-Raman-Spectrum-1.txt b/tests/data_multi/Si-wafer-Raman-Spectrum-1.txt new file mode 100644 index 0000000..43d4d1a --- /dev/null +++ b/tests/data_multi/Si-wafer-Raman-Spectrum-1.txt @@ -0,0 +1,1617 @@ +//Exported ASCII-File +[Header] +FileName = J:\Raman-spectroscopy-microscopy\Data\2024-06-20-CD-cover-test\Petri-dish-test.wip +GraphName = Spectrum--000--Spec.Data 1 +SizeX = 1 +SizeY = 1 +SizeGraph = 1600 +PositionUnit = µm +PositionX = 2.3283064365387E-8 +PositionY = 2.3283064365387E-8 +PositionZ = 0 +XAxisUnit = nm +DataUnit = CCD cts + +[Data] +X-Axis,Spectrum--000--Spec.Data 1 +nm,CCD cts + 5.307816803E+02, 3.568500061E+02 + 5.308650650E+02, 3.566000061E+02 + 5.309484482E+02, 3.556000061E+02 + 5.310318301E+02, 3.572500000E+02 + 5.311152107E+02, 3.636000061E+02 + 5.311985898E+02, 3.647999878E+02 + 5.312819676E+02, 3.783500061E+02 + 5.313653440E+02, 3.944500122E+02 + 5.314487190E+02, 4.185499878E+02 + 5.315320927E+02, 4.417000122E+02 + 5.316154650E+02, 4.921499939E+02 + 5.316988358E+02, 5.875000000E+02 + 5.317822054E+02, 9.454000244E+02 + 5.318655735E+02, 2.839050049E+03 + 5.319489403E+02, 9.894750000E+03 + 5.320323056E+02, 3.141025000E+04 + 5.321156696E+02, 6.553500000E+04 + 5.321990322E+02, 6.553500000E+04 + 5.322823935E+02, 6.553500000E+04 + 5.323657533E+02, 6.553500000E+04 + 5.324491118E+02, 6.553500000E+04 + 5.325324688E+02, 6.553500000E+04 + 5.326158245E+02, 6.553500000E+04 + 5.326991788E+02, 6.553500000E+04 + 5.327825318E+02, 3.606855078E+04 + 5.328658833E+02, 5.571549805E+03 + 5.329492334E+02, 1.359699951E+03 + 5.330325822E+02, 6.915000000E+02 + 5.331159295E+02, 5.402999878E+02 + 5.331992755E+02, 4.878999939E+02 + 5.332826200E+02, 4.567999878E+02 + 5.333659632E+02, 4.294500122E+02 + 5.334493050E+02, 4.121000061E+02 + 5.335326454E+02, 3.987000122E+02 + 5.336159844E+02, 3.841000061E+02 + 5.336993220E+02, 3.701000061E+02 + 5.337826582E+02, 3.602999878E+02 + 5.338659930E+02, 3.547999878E+02 + 5.339493264E+02, 3.511499939E+02 + 5.340326584E+02, 3.475000000E+02 + 5.341159890E+02, 3.451499939E+02 + 5.341993182E+02, 3.451000061E+02 + 5.342826460E+02, 3.429500122E+02 + 5.343659725E+02, 3.412500000E+02 + 5.344492975E+02, 3.399500122E+02 + 5.345326211E+02, 3.393500061E+02 + 5.346159433E+02, 3.446499939E+02 + 5.346992641E+02, 3.462500000E+02 + 5.347825834E+02, 3.467000122E+02 + 5.348659014E+02, 3.402999878E+02 + 5.349492180E+02, 3.305000000E+02 + 5.350325332E+02, 3.274500122E+02 + 5.351158469E+02, 3.312500000E+02 + 5.351991593E+02, 3.382500000E+02 + 5.352824702E+02, 3.357500000E+02 + 5.353657797E+02, 3.281000061E+02 + 5.354490879E+02, 3.296499939E+02 + 5.355323946E+02, 3.341000061E+02 + 5.356156999E+02, 3.335000000E+02 + 5.356990037E+02, 3.338500061E+02 + 5.357823062E+02, 3.350499878E+02 + 5.358656073E+02, 3.340499878E+02 + 5.359489069E+02, 3.306000061E+02 + 5.360322051E+02, 3.396000061E+02 + 5.361155019E+02, 3.457500000E+02 + 5.361987973E+02, 3.444500122E+02 + 5.362820913E+02, 3.596499939E+02 + 5.363653838E+02, 3.925000000E+02 + 5.364486749E+02, 4.168500061E+02 + 5.365319647E+02, 4.447500000E+02 + 5.366152529E+02, 4.767999878E+02 + 5.366985398E+02, 4.987999878E+02 + 5.367818252E+02, 5.137500000E+02 + 5.368651093E+02, 5.271500244E+02 + 5.369483918E+02, 5.201500244E+02 + 5.370316730E+02, 5.162500000E+02 + 5.371149528E+02, 5.230999756E+02 + 5.371982311E+02, 5.315000000E+02 + 5.372815080E+02, 5.334000244E+02 + 5.373647834E+02, 5.249000244E+02 + 5.374480574E+02, 5.210499878E+02 + 5.375313300E+02, 5.236500244E+02 + 5.376146012E+02, 5.252000122E+02 + 5.376978710E+02, 5.294500122E+02 + 5.377811393E+02, 5.327000122E+02 + 5.378644061E+02, 5.377500000E+02 + 5.379476716E+02, 5.419000244E+02 + 5.380309356E+02, 5.483499756E+02 + 5.381141982E+02, 5.499500122E+02 + 5.381974593E+02, 5.567500000E+02 + 5.382807190E+02, 5.690000000E+02 + 5.383639773E+02, 5.797999878E+02 + 5.384472341E+02, 5.885000000E+02 + 5.385304895E+02, 6.032999878E+02 + 5.386137434E+02, 6.313499756E+02 + 5.386969960E+02, 6.657000122E+02 + 5.387802470E+02, 6.997999878E+02 + 5.388634967E+02, 7.320499878E+02 + 5.389467448E+02, 7.552999878E+02 + 5.390299916E+02, 7.800499878E+02 + 5.391132369E+02, 7.878499756E+02 + 5.391964808E+02, 7.860000000E+02 + 5.392797232E+02, 7.950499878E+02 + 5.393629641E+02, 7.972999878E+02 + 5.394462037E+02, 8.177999878E+02 + 5.395294417E+02, 8.445000000E+02 + 5.396126784E+02, 8.434000244E+02 + 5.396959135E+02, 8.478499756E+02 + 5.397791473E+02, 8.565999756E+02 + 5.398623795E+02, 8.771500244E+02 + 5.399456104E+02, 8.962000122E+02 + 5.400288397E+02, 9.195000000E+02 + 5.401120677E+02, 9.234500122E+02 + 5.401952941E+02, 9.287000122E+02 + 5.402785192E+02, 9.475000000E+02 + 5.403617427E+02, 9.733499756E+02 + 5.404449648E+02, 1.012599976E+03 + 5.405281855E+02, 1.046650024E+03 + 5.406114047E+02, 1.072099976E+03 + 5.406946224E+02, 1.118150024E+03 + 5.407778387E+02, 1.202800049E+03 + 5.408610535E+02, 1.268500000E+03 + 5.409442669E+02, 1.327500000E+03 + 5.410274788E+02, 1.355050049E+03 + 5.411106892E+02, 1.336000000E+03 + 5.411938982E+02, 1.264650024E+03 + 5.412771057E+02, 1.190000000E+03 + 5.413603118E+02, 1.130800049E+03 + 5.414435164E+02, 1.089199951E+03 + 5.415267195E+02, 1.057550049E+03 + 5.416099212E+02, 1.003150024E+03 + 5.416931214E+02, 9.575499878E+02 + 5.417763201E+02, 9.495000000E+02 + 5.418595173E+02, 9.660999756E+02 + 5.419427131E+02, 9.540499878E+02 + 5.420259075E+02, 9.380499878E+02 + 5.421091003E+02, 9.090000000E+02 + 5.421922917E+02, 8.767500000E+02 + 5.422754816E+02, 8.750000000E+02 + 5.423586701E+02, 8.545999756E+02 + 5.424418570E+02, 8.401500244E+02 + 5.425250425E+02, 8.340499878E+02 + 5.426082265E+02, 8.328499756E+02 + 5.426914091E+02, 8.247000122E+02 + 5.427745902E+02, 8.137000122E+02 + 5.428577698E+02, 8.169000244E+02 + 5.429409479E+02, 8.104500122E+02 + 5.430241245E+02, 7.997000122E+02 + 5.431072997E+02, 7.792500000E+02 + 5.431904734E+02, 7.682500000E+02 + 5.432736456E+02, 7.734500122E+02 + 5.433568163E+02, 7.602500000E+02 + 5.434399855E+02, 7.368499756E+02 + 5.435231533E+02, 7.210999756E+02 + 5.436063195E+02, 7.175499878E+02 + 5.436894843E+02, 7.150499878E+02 + 5.437726476E+02, 7.059000244E+02 + 5.438558095E+02, 7.045499878E+02 + 5.439389698E+02, 7.042500000E+02 + 5.440221287E+02, 7.048499756E+02 + 5.441052860E+02, 6.950000000E+02 + 5.441884419E+02, 6.799500122E+02 + 5.442715963E+02, 6.854500122E+02 + 5.443547492E+02, 6.965000000E+02 + 5.444379006E+02, 7.022500000E+02 + 5.445210505E+02, 7.069000244E+02 + 5.446041989E+02, 7.093499756E+02 + 5.446873459E+02, 7.129500122E+02 + 5.447704913E+02, 7.050999756E+02 + 5.448536352E+02, 7.005000000E+02 + 5.449367777E+02, 7.015999756E+02 + 5.450199187E+02, 6.827000122E+02 + 5.451030581E+02, 6.499000244E+02 + 5.451861961E+02, 6.052500000E+02 + 5.452693325E+02, 5.814000244E+02 + 5.453524675E+02, 5.620499878E+02 + 5.454356010E+02, 5.369000244E+02 + 5.455187329E+02, 5.061000061E+02 + 5.456018634E+02, 4.766499939E+02 + 5.456849924E+02, 4.692000122E+02 + 5.457681199E+02, 4.718500061E+02 + 5.458512458E+02, 4.980000000E+02 + 5.459343703E+02, 5.066000061E+02 + 5.460174932E+02, 5.192999878E+02 + 5.461006147E+02, 5.346500244E+02 + 5.461837346E+02, 5.530499878E+02 + 5.462668531E+02, 5.679500122E+02 + 5.463499700E+02, 5.937000122E+02 + 5.464330854E+02, 6.264500122E+02 + 5.465161993E+02, 6.693499756E+02 + 5.465993118E+02, 7.277000122E+02 + 5.466824227E+02, 7.943499756E+02 + 5.467655320E+02, 8.970499878E+02 + 5.468486399E+02, 1.080150024E+03 + 5.469317463E+02, 1.368199951E+03 + 5.470148511E+02, 1.876199951E+03 + 5.470979545E+02, 2.918550049E+03 + 5.471810563E+02, 5.445149902E+03 + 5.472641566E+02, 1.210854980E+04 + 5.473472554E+02, 2.485109961E+04 + 5.474303527E+02, 3.471844922E+04 + 5.475134485E+02, 3.281710156E+04 + 5.475965427E+02, 2.164944922E+04 + 5.476796354E+02, 1.089300000E+04 + 5.477627266E+02, 5.679000000E+03 + 5.478458163E+02, 3.482050049E+03 + 5.479289045E+02, 2.450100098E+03 + 5.480119911E+02, 1.904550049E+03 + 5.480950762E+02, 1.562699951E+03 + 5.481781598E+02, 1.338349976E+03 + 5.482612419E+02, 1.164750000E+03 + 5.483443225E+02, 1.047699951E+03 + 5.484274015E+02, 9.755499878E+02 + 5.485104790E+02, 9.149000244E+02 + 5.485935550E+02, 8.467999878E+02 + 5.486766294E+02, 7.968499756E+02 + 5.487597023E+02, 7.582999878E+02 + 5.488427737E+02, 7.257000122E+02 + 5.489258436E+02, 6.812999878E+02 + 5.490089119E+02, 6.612500000E+02 + 5.490919787E+02, 6.521500244E+02 + 5.491750440E+02, 6.335499878E+02 + 5.492581077E+02, 6.128499756E+02 + 5.493411699E+02, 6.115000000E+02 + 5.494242306E+02, 6.025999756E+02 + 5.495072897E+02, 5.902999878E+02 + 5.495903473E+02, 5.904000244E+02 + 5.496734034E+02, 5.905000000E+02 + 5.497564579E+02, 5.925999756E+02 + 5.498395109E+02, 5.949500122E+02 + 5.499225623E+02, 5.969500122E+02 + 5.500056123E+02, 6.099000244E+02 + 5.500886606E+02, 6.335499878E+02 + 5.501717075E+02, 6.464000244E+02 + 5.502547528E+02, 6.655499878E+02 + 5.503377965E+02, 6.816500244E+02 + 5.504208387E+02, 6.784000244E+02 + 5.505038794E+02, 6.649500122E+02 + 5.505869185E+02, 6.473499756E+02 + 5.506699561E+02, 6.340000000E+02 + 5.507529921E+02, 6.159500122E+02 + 5.508360266E+02, 6.072500000E+02 + 5.509190595E+02, 6.004500122E+02 + 5.510020909E+02, 5.985499878E+02 + 5.510851207E+02, 5.982500000E+02 + 5.511681490E+02, 5.876500244E+02 + 5.512511758E+02, 5.795000000E+02 + 5.513342010E+02, 5.867500000E+02 + 5.514172246E+02, 5.829500122E+02 + 5.515002467E+02, 5.840000000E+02 + 5.515832672E+02, 5.959500122E+02 + 5.516662862E+02, 6.057500000E+02 + 5.517493036E+02, 6.135999756E+02 + 5.518323195E+02, 6.095000000E+02 + 5.519153338E+02, 6.136500244E+02 + 5.519983466E+02, 6.111500244E+02 + 5.520813578E+02, 6.018499756E+02 + 5.521643674E+02, 5.959000244E+02 + 5.522473755E+02, 5.922500000E+02 + 5.523303821E+02, 5.776500244E+02 + 5.524133870E+02, 5.646500244E+02 + 5.524963904E+02, 5.505000000E+02 + 5.525793923E+02, 5.281500244E+02 + 5.526623926E+02, 5.199000244E+02 + 5.527453913E+02, 5.075000000E+02 + 5.528283885E+02, 5.058999939E+02 + 5.529113840E+02, 5.022999878E+02 + 5.529943781E+02, 4.914500122E+02 + 5.530773705E+02, 4.820000000E+02 + 5.531603614E+02, 4.752000122E+02 + 5.532433508E+02, 4.746000061E+02 + 5.533263385E+02, 4.705000000E+02 + 5.534093247E+02, 4.665000000E+02 + 5.534923093E+02, 4.672500000E+02 + 5.535752924E+02, 4.658999939E+02 + 5.536582739E+02, 4.667999878E+02 + 5.537412538E+02, 4.627999878E+02 + 5.538242321E+02, 4.633500061E+02 + 5.539072089E+02, 4.636000061E+02 + 5.539901841E+02, 4.710499878E+02 + 5.540731577E+02, 4.683999939E+02 + 5.541561298E+02, 4.647000122E+02 + 5.542391002E+02, 4.602500000E+02 + 5.543220691E+02, 4.621000061E+02 + 5.544050364E+02, 4.632000122E+02 + 5.544880022E+02, 4.669500122E+02 + 5.545709663E+02, 4.729500122E+02 + 5.546539289E+02, 4.749500122E+02 + 5.547368899E+02, 4.797500000E+02 + 5.548198493E+02, 4.766499939E+02 + 5.549028071E+02, 4.786499939E+02 + 5.549857634E+02, 4.867000122E+02 + 5.550687181E+02, 4.860000000E+02 + 5.551516711E+02, 4.880499878E+02 + 5.552346226E+02, 4.876499939E+02 + 5.553175726E+02, 4.903500061E+02 + 5.554005209E+02, 4.955499878E+02 + 5.554834676E+02, 4.998500061E+02 + 5.555664128E+02, 5.053999939E+02 + 5.556493563E+02, 5.118500061E+02 + 5.557322983E+02, 5.185999756E+02 + 5.558152387E+02, 5.169000244E+02 + 5.558981775E+02, 5.136500244E+02 + 5.559811147E+02, 5.180000000E+02 + 5.560640503E+02, 5.269000244E+02 + 5.561469843E+02, 5.420499878E+02 + 5.562299168E+02, 5.400499878E+02 + 5.563128476E+02, 5.472500000E+02 + 5.563957769E+02, 5.572500000E+02 + 5.564787045E+02, 5.519000244E+02 + 5.565616305E+02, 5.546500244E+02 + 5.566445550E+02, 5.558499756E+02 + 5.567274778E+02, 5.518499756E+02 + 5.568103991E+02, 5.585499878E+02 + 5.568933188E+02, 5.464000244E+02 + 5.569762368E+02, 5.423499756E+02 + 5.570591533E+02, 5.410999756E+02 + 5.571420681E+02, 5.270000000E+02 + 5.572249814E+02, 5.244500122E+02 + 5.573078930E+02, 5.184500122E+02 + 5.573908031E+02, 5.239500122E+02 + 5.574737115E+02, 5.201500244E+02 + 5.575566184E+02, 5.250999756E+02 + 5.576395236E+02, 5.309000244E+02 + 5.577224272E+02, 5.235499878E+02 + 5.578053292E+02, 5.175999756E+02 + 5.578882296E+02, 5.169000244E+02 + 5.579711284E+02, 5.220499878E+02 + 5.580540256E+02, 5.302500000E+02 + 5.581369212E+02, 5.271500244E+02 + 5.582198152E+02, 5.222999878E+02 + 5.583027076E+02, 5.141500244E+02 + 5.583855983E+02, 5.157000122E+02 + 5.584684874E+02, 5.214000244E+02 + 5.585513750E+02, 5.232000122E+02 + 5.586342609E+02, 5.272999878E+02 + 5.587171452E+02, 5.319500122E+02 + 5.588000278E+02, 5.298499756E+02 + 5.588829089E+02, 5.262000122E+02 + 5.589657884E+02, 5.257500000E+02 + 5.590486662E+02, 5.257500000E+02 + 5.591315424E+02, 5.314000244E+02 + 5.592144170E+02, 5.332000122E+02 + 5.592972899E+02, 5.310000000E+02 + 5.593801613E+02, 5.400000000E+02 + 5.594630310E+02, 5.442500000E+02 + 5.595458991E+02, 5.541500244E+02 + 5.596287656E+02, 5.714500122E+02 + 5.597116305E+02, 5.987999878E+02 + 5.597944937E+02, 6.353499756E+02 + 5.598773553E+02, 7.229500122E+02 + 5.599602153E+02, 8.413499756E+02 + 5.600430736E+02, 1.013650024E+03 + 5.601259304E+02, 1.202349976E+03 + 5.602087855E+02, 1.395849976E+03 + 5.602916389E+02, 1.576849976E+03 + 5.603744908E+02, 1.644800049E+03 + 5.604573410E+02, 1.647750000E+03 + 5.605401896E+02, 1.644550049E+03 + 5.606230365E+02, 1.649250000E+03 + 5.607058818E+02, 1.646150024E+03 + 5.607887255E+02, 1.637699951E+03 + 5.608715676E+02, 1.626050049E+03 + 5.609544080E+02, 1.625349976E+03 + 5.610372468E+02, 1.647449951E+03 + 5.611200839E+02, 1.662449951E+03 + 5.612029194E+02, 1.673000000E+03 + 5.612857533E+02, 1.668349976E+03 + 5.613685855E+02, 1.679449951E+03 + 5.614514161E+02, 1.697849976E+03 + 5.615342451E+02, 1.686000000E+03 + 5.616170724E+02, 1.647050049E+03 + 5.616998981E+02, 1.533900024E+03 + 5.617827221E+02, 1.450849976E+03 + 5.618655445E+02, 1.318550049E+03 + 5.619483652E+02, 1.144650024E+03 + 5.620311843E+02, 9.840000000E+02 + 5.621140018E+02, 8.715999756E+02 + 5.621968176E+02, 8.002999878E+02 + 5.622796318E+02, 7.612500000E+02 + 5.623624443E+02, 7.222500000E+02 + 5.624452552E+02, 6.889000244E+02 + 5.625280644E+02, 6.590999756E+02 + 5.626108720E+02, 6.174000244E+02 + 5.626936779E+02, 5.990499878E+02 + 5.627764822E+02, 5.799000244E+02 + 5.628592848E+02, 5.526500244E+02 + 5.629420858E+02, 5.300999756E+02 + 5.630248851E+02, 5.068999939E+02 + 5.631076827E+02, 4.824500122E+02 + 5.631904788E+02, 4.563999939E+02 + 5.632732731E+02, 4.379500122E+02 + 5.633560658E+02, 4.137999878E+02 + 5.634388569E+02, 3.924500122E+02 + 5.635216463E+02, 3.785000000E+02 + 5.636044340E+02, 3.711000061E+02 + 5.636872201E+02, 3.651000061E+02 + 5.637700045E+02, 3.610000000E+02 + 5.638527872E+02, 3.587999878E+02 + 5.639355683E+02, 3.561499939E+02 + 5.640183478E+02, 3.545000000E+02 + 5.641011255E+02, 3.522999878E+02 + 5.641839016E+02, 3.490000000E+02 + 5.642666761E+02, 3.460000000E+02 + 5.643494489E+02, 3.450499878E+02 + 5.644322200E+02, 3.452000122E+02 + 5.645149894E+02, 3.464500122E+02 + 5.645977572E+02, 3.491499939E+02 + 5.646805233E+02, 3.473999939E+02 + 5.647632878E+02, 3.474500122E+02 + 5.648460506E+02, 3.477500000E+02 + 5.649288117E+02, 3.453500061E+02 + 5.650115711E+02, 3.433999939E+02 + 5.650943289E+02, 3.443500061E+02 + 5.651770850E+02, 3.438500061E+02 + 5.652598394E+02, 3.446499939E+02 + 5.653425922E+02, 3.443999939E+02 + 5.654253433E+02, 3.452000122E+02 + 5.655080927E+02, 3.431499939E+02 + 5.655908404E+02, 3.415499878E+02 + 5.656735865E+02, 3.438500061E+02 + 5.657563308E+02, 3.432999878E+02 + 5.658390735E+02, 3.396000061E+02 + 5.659218146E+02, 3.396499939E+02 + 5.660045539E+02, 3.410499878E+02 + 5.660872916E+02, 3.420000000E+02 + 5.661700276E+02, 3.399500122E+02 + 5.662527619E+02, 3.410000000E+02 + 5.663354945E+02, 3.412500000E+02 + 5.664182255E+02, 3.401499939E+02 + 5.665009547E+02, 3.397999878E+02 + 5.665836823E+02, 3.346499939E+02 + 5.666664082E+02, 3.362000122E+02 + 5.667491324E+02, 3.338999939E+02 + 5.668318549E+02, 3.352500000E+02 + 5.669145758E+02, 3.320000000E+02 + 5.669972949E+02, 3.325499878E+02 + 5.670800124E+02, 3.350499878E+02 + 5.671627282E+02, 3.310499878E+02 + 5.672454423E+02, 3.304500122E+02 + 5.673281546E+02, 3.296000061E+02 + 5.674108654E+02, 3.336000061E+02 + 5.674935744E+02, 3.318500061E+02 + 5.675762817E+02, 3.263999939E+02 + 5.676589873E+02, 3.292000122E+02 + 5.677416913E+02, 3.317000122E+02 + 5.678243935E+02, 3.308999939E+02 + 5.679070940E+02, 3.313500061E+02 + 5.679897929E+02, 3.292999878E+02 + 5.680724900E+02, 3.296499939E+02 + 5.681551855E+02, 3.285000000E+02 + 5.682378793E+02, 3.285499878E+02 + 5.683205713E+02, 3.272999878E+02 + 5.684032617E+02, 3.328999939E+02 + 5.684859503E+02, 3.280499878E+02 + 5.685686373E+02, 3.267999878E+02 + 5.686513226E+02, 3.253999939E+02 + 5.687340061E+02, 3.268999939E+02 + 5.688166880E+02, 3.271499939E+02 + 5.688993681E+02, 3.272999878E+02 + 5.689820466E+02, 3.271499939E+02 + 5.690647233E+02, 3.275499878E+02 + 5.691473983E+02, 3.274500122E+02 + 5.692300717E+02, 3.277500000E+02 + 5.693127433E+02, 3.289500122E+02 + 5.693954132E+02, 3.282000122E+02 + 5.694780814E+02, 3.285499878E+02 + 5.695607479E+02, 3.302999878E+02 + 5.696434127E+02, 3.282999878E+02 + 5.697260758E+02, 3.292000122E+02 + 5.698087371E+02, 3.271499939E+02 + 5.698913968E+02, 3.300499878E+02 + 5.699740547E+02, 3.278500061E+02 + 5.700567109E+02, 3.290000000E+02 + 5.701393654E+02, 3.267500000E+02 + 5.702220182E+02, 3.312500000E+02 + 5.703046693E+02, 3.315499878E+02 + 5.703873187E+02, 3.300499878E+02 + 5.704699663E+02, 3.310499878E+02 + 5.705526123E+02, 3.317000122E+02 + 5.706352565E+02, 3.335000000E+02 + 5.707178990E+02, 3.318999939E+02 + 5.708005397E+02, 3.321000061E+02 + 5.708831788E+02, 3.320499878E+02 + 5.709658161E+02, 3.317000122E+02 + 5.710484517E+02, 3.327999878E+02 + 5.711310856E+02, 3.327000122E+02 + 5.712137177E+02, 3.330499878E+02 + 5.712963482E+02, 3.360499878E+02 + 5.713789769E+02, 3.365000000E+02 + 5.714616039E+02, 3.373999939E+02 + 5.715442291E+02, 3.333999939E+02 + 5.716268526E+02, 3.363500061E+02 + 5.717094744E+02, 3.341000061E+02 + 5.717920945E+02, 3.307500000E+02 + 5.718747129E+02, 3.347500000E+02 + 5.719573295E+02, 3.353999939E+02 + 5.720399443E+02, 3.366499939E+02 + 5.721225575E+02, 3.355499878E+02 + 5.722051689E+02, 3.358500061E+02 + 5.722877786E+02, 3.387000122E+02 + 5.723703865E+02, 3.363500061E+02 + 5.724529928E+02, 3.382500000E+02 + 5.725355972E+02, 3.359500122E+02 + 5.726182000E+02, 3.351000061E+02 + 5.727008010E+02, 3.366499939E+02 + 5.727834003E+02, 3.365499878E+02 + 5.728659978E+02, 3.344500122E+02 + 5.729485936E+02, 3.372000122E+02 + 5.730311876E+02, 3.375499878E+02 + 5.731137800E+02, 3.360000000E+02 + 5.731963705E+02, 3.360499878E+02 + 5.732789594E+02, 3.361499939E+02 + 5.733615465E+02, 3.365000000E+02 + 5.734441318E+02, 3.363999939E+02 + 5.735267154E+02, 3.350000000E+02 + 5.736092973E+02, 3.372000122E+02 + 5.736918774E+02, 3.358999939E+02 + 5.737744557E+02, 3.354500122E+02 + 5.738570324E+02, 3.328999939E+02 + 5.739396072E+02, 3.344500122E+02 + 5.740221804E+02, 3.350499878E+02 + 5.741047517E+02, 3.365499878E+02 + 5.741873214E+02, 3.328500061E+02 + 5.742698892E+02, 3.320000000E+02 + 5.743524554E+02, 3.318999939E+02 + 5.744350197E+02, 3.333999939E+02 + 5.745175824E+02, 3.322000122E+02 + 5.746001432E+02, 3.281000061E+02 + 5.746827023E+02, 3.302999878E+02 + 5.747652597E+02, 3.292500000E+02 + 5.748478153E+02, 3.289500122E+02 + 5.749303692E+02, 3.255000000E+02 + 5.750129213E+02, 3.286000061E+02 + 5.750954716E+02, 3.265000000E+02 + 5.751780202E+02, 3.298500061E+02 + 5.752605670E+02, 3.304500122E+02 + 5.753431120E+02, 3.278500061E+02 + 5.754256553E+02, 3.247000122E+02 + 5.755081969E+02, 3.255499878E+02 + 5.755907367E+02, 3.267500000E+02 + 5.756732747E+02, 3.276499939E+02 + 5.757558109E+02, 3.277999878E+02 + 5.758383454E+02, 3.250499878E+02 + 5.759208781E+02, 3.248500061E+02 + 5.760034091E+02, 3.231000061E+02 + 5.760859383E+02, 3.262999878E+02 + 5.761684657E+02, 3.248500061E+02 + 5.762509914E+02, 3.242500000E+02 + 5.763335152E+02, 3.242500000E+02 + 5.764160374E+02, 3.268500061E+02 + 5.764985577E+02, 3.290499878E+02 + 5.765810763E+02, 3.283500061E+02 + 5.766635931E+02, 3.242500000E+02 + 5.767461081E+02, 3.246000061E+02 + 5.768286214E+02, 3.228500061E+02 + 5.769111329E+02, 3.232999878E+02 + 5.769936426E+02, 3.235499878E+02 + 5.770761506E+02, 3.240499878E+02 + 5.771586567E+02, 3.224500122E+02 + 5.772411611E+02, 3.217000122E+02 + 5.773236637E+02, 3.200000000E+02 + 5.774061646E+02, 3.186000061E+02 + 5.774886636E+02, 3.192500000E+02 + 5.775711609E+02, 3.166000061E+02 + 5.776536564E+02, 3.166000061E+02 + 5.777361502E+02, 3.166499939E+02 + 5.778186421E+02, 3.162000122E+02 + 5.779011323E+02, 3.179500122E+02 + 5.779836206E+02, 3.178999939E+02 + 5.780661072E+02, 3.159500122E+02 + 5.781485920E+02, 3.136000061E+02 + 5.782310751E+02, 3.132000122E+02 + 5.783135563E+02, 3.132999878E+02 + 5.783960358E+02, 3.147000122E+02 + 5.784785134E+02, 3.136499939E+02 + 5.785609893E+02, 3.137000122E+02 + 5.786434634E+02, 3.120000000E+02 + 5.787259357E+02, 3.122500000E+02 + 5.788084062E+02, 3.126000061E+02 + 5.788908749E+02, 3.099500122E+02 + 5.789733419E+02, 3.110000000E+02 + 5.790558070E+02, 3.113999939E+02 + 5.791382704E+02, 3.113999939E+02 + 5.792207319E+02, 3.097500000E+02 + 5.793031917E+02, 3.093999939E+02 + 5.793856497E+02, 3.112000122E+02 + 5.794681058E+02, 3.132000122E+02 + 5.795505602E+02, 3.132000122E+02 + 5.796330128E+02, 3.128999939E+02 + 5.797154636E+02, 3.105499878E+02 + 5.797979126E+02, 3.116000061E+02 + 5.798803597E+02, 3.101499939E+02 + 5.799628051E+02, 3.103500061E+02 + 5.800452487E+02, 3.109500122E+02 + 5.801276905E+02, 3.141499939E+02 + 5.802101305E+02, 3.142999878E+02 + 5.802925687E+02, 3.135499878E+02 + 5.803750051E+02, 3.142999878E+02 + 5.804574396E+02, 3.131499939E+02 + 5.805398724E+02, 3.138999939E+02 + 5.806223034E+02, 3.143999939E+02 + 5.807047325E+02, 3.151000061E+02 + 5.807871599E+02, 3.142500000E+02 + 5.808695854E+02, 3.145000000E+02 + 5.809520092E+02, 3.159500122E+02 + 5.810344311E+02, 3.166499939E+02 + 5.811168512E+02, 3.163999939E+02 + 5.811992695E+02, 3.147500000E+02 + 5.812816860E+02, 3.157000122E+02 + 5.813641007E+02, 3.176000061E+02 + 5.814465136E+02, 3.167000122E+02 + 5.815289246E+02, 3.152000122E+02 + 5.816113339E+02, 3.172500000E+02 + 5.816937413E+02, 3.162999878E+02 + 5.817761469E+02, 3.158999939E+02 + 5.818585508E+02, 3.146499939E+02 + 5.819409527E+02, 3.152999878E+02 + 5.820233529E+02, 3.149500122E+02 + 5.821057513E+02, 3.141000061E+02 + 5.821881478E+02, 3.147000122E+02 + 5.822705425E+02, 3.141499939E+02 + 5.823529354E+02, 3.158999939E+02 + 5.824353265E+02, 3.143999939E+02 + 5.825177157E+02, 3.095000000E+02 + 5.826001031E+02, 3.091000061E+02 + 5.826824888E+02, 3.098999939E+02 + 5.827648725E+02, 3.078999939E+02 + 5.828472545E+02, 3.072500000E+02 + 5.829296346E+02, 3.053999939E+02 + 5.830120129E+02, 3.026499939E+02 + 5.830943894E+02, 3.031000061E+02 + 5.831767641E+02, 3.025000000E+02 + 5.832591369E+02, 3.017999878E+02 + 5.833415079E+02, 3.025000000E+02 + 5.834238771E+02, 3.009500122E+02 + 5.835062444E+02, 3.010499878E+02 + 5.835886099E+02, 2.996000061E+02 + 5.836709736E+02, 2.970000000E+02 + 5.837533354E+02, 2.976000061E+02 + 5.838356954E+02, 2.972999878E+02 + 5.839180536E+02, 2.993500061E+02 + 5.840004099E+02, 2.982500000E+02 + 5.840827645E+02, 2.967999878E+02 + 5.841651171E+02, 2.969500122E+02 + 5.842474680E+02, 2.952500000E+02 + 5.843298170E+02, 2.957500000E+02 + 5.844121641E+02, 2.957500000E+02 + 5.844945094E+02, 2.953500061E+02 + 5.845768529E+02, 2.970000000E+02 + 5.846591946E+02, 2.943500061E+02 + 5.847415344E+02, 2.940499878E+02 + 5.848238723E+02, 2.933500061E+02 + 5.849062084E+02, 2.927999878E+02 + 5.849885427E+02, 2.927500000E+02 + 5.850708751E+02, 2.958999939E+02 + 5.851532057E+02, 2.946000061E+02 + 5.852355345E+02, 2.930499878E+02 + 5.853178614E+02, 2.936000061E+02 + 5.854001864E+02, 2.924500122E+02 + 5.854825096E+02, 2.922500000E+02 + 5.855648310E+02, 2.921000061E+02 + 5.856471505E+02, 2.923999939E+02 + 5.857294681E+02, 2.914500122E+02 + 5.858117839E+02, 2.913999939E+02 + 5.858940979E+02, 2.916000061E+02 + 5.859764100E+02, 2.905000000E+02 + 5.860587203E+02, 2.908999939E+02 + 5.861410287E+02, 2.913999939E+02 + 5.862233352E+02, 2.922999878E+02 + 5.863056399E+02, 2.927500000E+02 + 5.863879427E+02, 2.906000061E+02 + 5.864702437E+02, 2.911000061E+02 + 5.865525429E+02, 2.917500000E+02 + 5.866348401E+02, 2.916499939E+02 + 5.867171355E+02, 2.906000061E+02 + 5.867994291E+02, 2.888999939E+02 + 5.868817208E+02, 2.897000122E+02 + 5.869640106E+02, 2.905499878E+02 + 5.870462986E+02, 2.910000000E+02 + 5.871285847E+02, 2.906000061E+02 + 5.872108690E+02, 2.905499878E+02 + 5.872931513E+02, 2.897000122E+02 + 5.873754319E+02, 2.886000061E+02 + 5.874577105E+02, 2.895499878E+02 + 5.875399873E+02, 2.880000000E+02 + 5.876222622E+02, 2.894500122E+02 + 5.877045353E+02, 2.902999878E+02 + 5.877868065E+02, 2.902999878E+02 + 5.878690758E+02, 2.888500061E+02 + 5.879513433E+02, 2.893999939E+02 + 5.880336089E+02, 2.885499878E+02 + 5.881158726E+02, 2.887999878E+02 + 5.881981345E+02, 2.893500061E+02 + 5.882803944E+02, 2.901499939E+02 + 5.883626526E+02, 2.876499939E+02 + 5.884449088E+02, 2.883999939E+02 + 5.885271632E+02, 2.877999878E+02 + 5.886094156E+02, 2.887000122E+02 + 5.886916663E+02, 2.881499939E+02 + 5.887739150E+02, 2.865000000E+02 + 5.888561619E+02, 2.891499939E+02 + 5.889384068E+02, 2.880000000E+02 + 5.890206499E+02, 2.888999939E+02 + 5.891028912E+02, 2.883500061E+02 + 5.891851305E+02, 2.888999939E+02 + 5.892673680E+02, 2.886000061E+02 + 5.893496036E+02, 2.873500061E+02 + 5.894318373E+02, 2.877000122E+02 + 5.895140691E+02, 2.876000061E+02 + 5.895962991E+02, 2.878500061E+02 + 5.896785271E+02, 2.868999939E+02 + 5.897607533E+02, 2.887500000E+02 + 5.898429776E+02, 2.877000122E+02 + 5.899252000E+02, 2.871000061E+02 + 5.900074205E+02, 2.873500061E+02 + 5.900896392E+02, 2.881000061E+02 + 5.901718559E+02, 2.872500000E+02 + 5.902540708E+02, 2.873999939E+02 + 5.903362838E+02, 2.863500061E+02 + 5.904184948E+02, 2.865499878E+02 + 5.905007040E+02, 2.871499939E+02 + 5.905829113E+02, 2.875499878E+02 + 5.906651167E+02, 2.860000000E+02 + 5.907473203E+02, 2.870000000E+02 + 5.908295219E+02, 2.860000000E+02 + 5.909117216E+02, 2.867999878E+02 + 5.909939194E+02, 2.867000122E+02 + 5.910761154E+02, 2.858999939E+02 + 5.911583094E+02, 2.856499939E+02 + 5.912405016E+02, 2.857000122E+02 + 5.913226918E+02, 2.866499939E+02 + 5.914048802E+02, 2.867999878E+02 + 5.914870666E+02, 2.862000122E+02 + 5.915692512E+02, 2.860000000E+02 + 5.916514338E+02, 2.855499878E+02 + 5.917336146E+02, 2.860000000E+02 + 5.918157934E+02, 2.863999939E+02 + 5.918979704E+02, 2.862000122E+02 + 5.919801454E+02, 2.866499939E+02 + 5.920623186E+02, 2.857999878E+02 + 5.921444898E+02, 2.862999878E+02 + 5.922266592E+02, 2.866499939E+02 + 5.923088266E+02, 2.872500000E+02 + 5.923909921E+02, 2.863999939E+02 + 5.924731557E+02, 2.868500061E+02 + 5.925553174E+02, 2.856000061E+02 + 5.926374772E+02, 2.859500122E+02 + 5.927196351E+02, 2.852999878E+02 + 5.928017911E+02, 2.857500000E+02 + 5.928839451E+02, 2.850000000E+02 + 5.929660973E+02, 2.863999939E+02 + 5.930482475E+02, 2.853999939E+02 + 5.931303959E+02, 2.861499939E+02 + 5.932125423E+02, 2.848500061E+02 + 5.932946868E+02, 2.857500000E+02 + 5.933768294E+02, 2.852000122E+02 + 5.934589701E+02, 2.855000000E+02 + 5.935411088E+02, 2.858500061E+02 + 5.936232457E+02, 2.841000061E+02 + 5.937053806E+02, 2.842500000E+02 + 5.937875136E+02, 2.847500000E+02 + 5.938696447E+02, 2.848500061E+02 + 5.939517738E+02, 2.856499939E+02 + 5.940339011E+02, 2.854500122E+02 + 5.941160264E+02, 2.850000000E+02 + 5.941981498E+02, 2.853500061E+02 + 5.942802713E+02, 2.846000061E+02 + 5.943623908E+02, 2.855000000E+02 + 5.944445085E+02, 2.847500000E+02 + 5.945266242E+02, 2.845000000E+02 + 5.946087379E+02, 2.843999939E+02 + 5.946908498E+02, 2.842999878E+02 + 5.947729597E+02, 2.852500000E+02 + 5.948550677E+02, 2.858500061E+02 + 5.949371738E+02, 2.846499939E+02 + 5.950192779E+02, 2.834500122E+02 + 5.951013801E+02, 2.842999878E+02 + 5.951834804E+02, 2.843500061E+02 + 5.952655788E+02, 2.845499878E+02 + 5.953476752E+02, 2.838500061E+02 + 5.954297697E+02, 2.831000061E+02 + 5.955118622E+02, 2.848500061E+02 + 5.955939528E+02, 2.836499939E+02 + 5.956760415E+02, 2.837000122E+02 + 5.957581283E+02, 2.838999939E+02 + 5.958402131E+02, 2.841499939E+02 + 5.959222960E+02, 2.831499939E+02 + 5.960043769E+02, 2.827500000E+02 + 5.960864559E+02, 2.830000000E+02 + 5.961685330E+02, 2.846000061E+02 + 5.962506081E+02, 2.838500061E+02 + 5.963326813E+02, 2.831000061E+02 + 5.964147525E+02, 2.837999878E+02 + 5.964968218E+02, 2.841000061E+02 + 5.965788892E+02, 2.833500061E+02 + 5.966609546E+02, 2.825000000E+02 + 5.967430180E+02, 2.832999878E+02 + 5.968250796E+02, 2.835499878E+02 + 5.969071391E+02, 2.832500000E+02 + 5.969891968E+02, 2.840000000E+02 + 5.970712525E+02, 2.827000122E+02 + 5.971533062E+02, 2.830499878E+02 + 5.972353580E+02, 2.839500122E+02 + 5.973174078E+02, 2.828500061E+02 + 5.973994557E+02, 2.826499939E+02 + 5.974815017E+02, 2.827500000E+02 + 5.975635457E+02, 2.832500000E+02 + 5.976455877E+02, 2.838999939E+02 + 5.977276278E+02, 2.843999939E+02 + 5.978096659E+02, 2.833500061E+02 + 5.978917021E+02, 2.838500061E+02 + 5.979737363E+02, 2.832000122E+02 + 5.980557686E+02, 2.837000122E+02 + 5.981377989E+02, 2.820499878E+02 + 5.982198273E+02, 2.840000000E+02 + 5.983018537E+02, 2.836000061E+02 + 5.983838781E+02, 2.828999939E+02 + 5.984659006E+02, 2.841000061E+02 + 5.985479212E+02, 2.831499939E+02 + 5.986299397E+02, 2.822999878E+02 + 5.987119563E+02, 2.817500000E+02 + 5.987939710E+02, 2.819500122E+02 + 5.988759837E+02, 2.826499939E+02 + 5.989579944E+02, 2.817000122E+02 + 5.990400032E+02, 2.828500061E+02 + 5.991220099E+02, 2.817999878E+02 + 5.992040148E+02, 2.828999939E+02 + 5.992860176E+02, 2.830000000E+02 + 5.993680185E+02, 2.823500061E+02 + 5.994500175E+02, 2.824500122E+02 + 5.995320144E+02, 2.820499878E+02 + 5.996140094E+02, 2.822000122E+02 + 5.996960025E+02, 2.819500122E+02 + 5.997779935E+02, 2.827000122E+02 + 5.998599826E+02, 2.823500061E+02 + 5.999419697E+02, 2.827999878E+02 + 6.000239548E+02, 2.822500000E+02 + 6.001059380E+02, 2.825000000E+02 + 6.001879192E+02, 2.827999878E+02 + 6.002698984E+02, 2.816000061E+02 + 6.003518757E+02, 2.811000061E+02 + 6.004338510E+02, 2.820499878E+02 + 6.005158243E+02, 2.825499878E+02 + 6.005977956E+02, 2.833999939E+02 + 6.006797649E+02, 2.824500122E+02 + 6.007617323E+02, 2.818500061E+02 + 6.008436977E+02, 2.808500061E+02 + 6.009256611E+02, 2.819500122E+02 + 6.010076225E+02, 2.820000000E+02 + 6.010895819E+02, 2.817500000E+02 + 6.011715394E+02, 2.812000122E+02 + 6.012534949E+02, 2.823999939E+02 + 6.013354484E+02, 2.822999878E+02 + 6.014173999E+02, 2.826499939E+02 + 6.014993494E+02, 2.820499878E+02 + 6.015812970E+02, 2.817500000E+02 + 6.016632425E+02, 2.822500000E+02 + 6.017451861E+02, 2.816499939E+02 + 6.018271277E+02, 2.811000061E+02 + 6.019090673E+02, 2.811000061E+02 + 6.019910049E+02, 2.817000122E+02 + 6.020729405E+02, 2.820499878E+02 + 6.021548741E+02, 2.820499878E+02 + 6.022368058E+02, 2.826000061E+02 + 6.023187354E+02, 2.822000122E+02 + 6.024006631E+02, 2.812999878E+02 + 6.024825887E+02, 2.823500061E+02 + 6.025645124E+02, 2.816000061E+02 + 6.026464341E+02, 2.813500061E+02 + 6.027283538E+02, 2.810000000E+02 + 6.028102714E+02, 2.815000000E+02 + 6.028921871E+02, 2.817000122E+02 + 6.029741008E+02, 2.810499878E+02 + 6.030560125E+02, 2.810499878E+02 + 6.031379222E+02, 2.816000061E+02 + 6.032198299E+02, 2.811000061E+02 + 6.033017356E+02, 2.810000000E+02 + 6.033836393E+02, 2.813999939E+02 + 6.034655410E+02, 2.817500000E+02 + 6.035474407E+02, 2.813999939E+02 + 6.036293384E+02, 2.803999939E+02 + 6.037112341E+02, 2.803999939E+02 + 6.037931277E+02, 2.815499878E+02 + 6.038750194E+02, 2.811000061E+02 + 6.039569091E+02, 2.805000000E+02 + 6.040387968E+02, 2.808500061E+02 + 6.041206824E+02, 2.805499878E+02 + 6.042025661E+02, 2.817500000E+02 + 6.042844477E+02, 2.808999939E+02 + 6.043663273E+02, 2.811000061E+02 + 6.044482050E+02, 2.804500122E+02 + 6.045300806E+02, 2.803500061E+02 + 6.046119542E+02, 2.807000122E+02 + 6.046938258E+02, 2.804500122E+02 + 6.047756954E+02, 2.797500000E+02 + 6.048575629E+02, 2.799500122E+02 + 6.049394285E+02, 2.802000122E+02 + 6.050212920E+02, 2.811499939E+02 + 6.051031535E+02, 2.812000122E+02 + 6.051850130E+02, 2.810499878E+02 + 6.052668705E+02, 2.812500000E+02 + 6.053487260E+02, 2.799500122E+02 + 6.054305795E+02, 2.806499939E+02 + 6.055124309E+02, 2.797999878E+02 + 6.055942803E+02, 2.802999878E+02 + 6.056761277E+02, 2.798500061E+02 + 6.057579731E+02, 2.800000000E+02 + 6.058398164E+02, 2.803500061E+02 + 6.059216578E+02, 2.801000061E+02 + 6.060034971E+02, 2.815000000E+02 + 6.060853344E+02, 2.803500061E+02 + 6.061671696E+02, 2.810499878E+02 + 6.062490029E+02, 2.797000122E+02 + 6.063308341E+02, 2.800000000E+02 + 6.064126633E+02, 2.794500122E+02 + 6.064944904E+02, 2.801000061E+02 + 6.065763156E+02, 2.807999878E+02 + 6.066581387E+02, 2.798999939E+02 + 6.067399597E+02, 2.802999878E+02 + 6.068217788E+02, 2.802000122E+02 + 6.069035958E+02, 2.802000122E+02 + 6.069854108E+02, 2.813999939E+02 + 6.070672237E+02, 2.795499878E+02 + 6.071490346E+02, 2.804500122E+02 + 6.072308435E+02, 2.800499878E+02 + 6.073126504E+02, 2.807500000E+02 + 6.073944552E+02, 2.816499939E+02 + 6.074762580E+02, 2.844500122E+02 + 6.075580587E+02, 2.846000061E+02 + 6.076398574E+02, 2.851499939E+02 + 6.077216541E+02, 2.823999939E+02 + 6.078034487E+02, 2.813999939E+02 + 6.078852413E+02, 2.807999878E+02 + 6.079670319E+02, 2.805499878E+02 + 6.080488204E+02, 2.806499939E+02 + 6.081306069E+02, 2.797999878E+02 + 6.082123913E+02, 2.800000000E+02 + 6.082941737E+02, 2.800000000E+02 + 6.083759540E+02, 2.791499939E+02 + 6.084577323E+02, 2.807000122E+02 + 6.085395086E+02, 2.801499939E+02 + 6.086212828E+02, 2.802000122E+02 + 6.087030550E+02, 2.793999939E+02 + 6.087848251E+02, 2.792500000E+02 + 6.088665931E+02, 2.797500000E+02 + 6.089483592E+02, 2.805499878E+02 + 6.090301232E+02, 2.792000122E+02 + 6.091118851E+02, 2.797000122E+02 + 6.091936450E+02, 2.791499939E+02 + 6.092754028E+02, 2.791499939E+02 + 6.093571586E+02, 2.795000000E+02 + 6.094389123E+02, 2.791000061E+02 + 6.095206640E+02, 2.799500122E+02 + 6.096024136E+02, 2.792500000E+02 + 6.096841611E+02, 2.802000122E+02 + 6.097659066E+02, 2.792999878E+02 + 6.098476501E+02, 2.785000000E+02 + 6.099293915E+02, 2.795499878E+02 + 6.100111308E+02, 2.801000061E+02 + 6.100928681E+02, 2.785000000E+02 + 6.101746033E+02, 2.792999878E+02 + 6.102563365E+02, 2.795000000E+02 + 6.103380676E+02, 2.792999878E+02 + 6.104197967E+02, 2.798999939E+02 + 6.105015236E+02, 2.799500122E+02 + 6.105832486E+02, 2.800499878E+02 + 6.106649714E+02, 2.788999939E+02 + 6.107466922E+02, 2.788999939E+02 + 6.108284109E+02, 2.797500000E+02 + 6.109101276E+02, 2.800499878E+02 + 6.109918422E+02, 2.793999939E+02 + 6.110735548E+02, 2.793500061E+02 + 6.111552652E+02, 2.789500122E+02 + 6.112369736E+02, 2.795499878E+02 + 6.113186800E+02, 2.797500000E+02 + 6.114003842E+02, 2.800499878E+02 + 6.114820864E+02, 2.790000000E+02 + 6.115637866E+02, 2.795000000E+02 + 6.116454846E+02, 2.798500061E+02 + 6.117271806E+02, 2.796499939E+02 + 6.118088745E+02, 2.800000000E+02 + 6.118905664E+02, 2.794500122E+02 + 6.119722561E+02, 2.803500061E+02 + 6.120539438E+02, 2.785000000E+02 + 6.121356294E+02, 2.791499939E+02 + 6.122173130E+02, 2.788500061E+02 + 6.122989944E+02, 2.791000061E+02 + 6.123806738E+02, 2.787999878E+02 + 6.124623511E+02, 2.806499939E+02 + 6.125440264E+02, 2.795000000E+02 + 6.126256995E+02, 2.797999878E+02 + 6.127073706E+02, 2.796499939E+02 + 6.127890396E+02, 2.792999878E+02 + 6.128707065E+02, 2.785499878E+02 + 6.129523713E+02, 2.777500000E+02 + 6.130340341E+02, 2.787999878E+02 + 6.131156948E+02, 2.789500122E+02 + 6.131973533E+02, 2.790499878E+02 + 6.132790098E+02, 2.788999939E+02 + 6.133606642E+02, 2.787000122E+02 + 6.134423166E+02, 2.785499878E+02 + 6.135239668E+02, 2.788500061E+02 + 6.136056150E+02, 2.792999878E+02 + 6.136872610E+02, 2.793999939E+02 + 6.137689050E+02, 2.788500061E+02 + 6.138505469E+02, 2.787000122E+02 + 6.139321867E+02, 2.790499878E+02 + 6.140138244E+02, 2.792500000E+02 + 6.140954600E+02, 2.792500000E+02 + 6.141770935E+02, 2.794500122E+02 + 6.142587249E+02, 2.792000122E+02 + 6.143403543E+02, 2.801499939E+02 + 6.144219815E+02, 2.797500000E+02 + 6.145036067E+02, 2.787500000E+02 + 6.145852297E+02, 2.786499939E+02 + 6.146668507E+02, 2.790499878E+02 + 6.147484695E+02, 2.786000061E+02 + 6.148300863E+02, 2.794500122E+02 + 6.149117009E+02, 2.800499878E+02 + 6.149933135E+02, 2.790499878E+02 + 6.150749240E+02, 2.788999939E+02 + 6.151565323E+02, 2.787000122E+02 + 6.152381386E+02, 2.784500122E+02 + 6.153197427E+02, 2.787000122E+02 + 6.154013448E+02, 2.793500061E+02 + 6.154829447E+02, 2.793500061E+02 + 6.155645426E+02, 2.791499939E+02 + 6.156461383E+02, 2.782999878E+02 + 6.157277320E+02, 2.791000061E+02 + 6.158093235E+02, 2.786000061E+02 + 6.158909129E+02, 2.782000122E+02 + 6.159725003E+02, 2.782000122E+02 + 6.160540855E+02, 2.791499939E+02 + 6.161356686E+02, 2.784500122E+02 + 6.162172496E+02, 2.795499878E+02 + 6.162988284E+02, 2.785499878E+02 + 6.163804052E+02, 2.786499939E+02 + 6.164619799E+02, 2.792999878E+02 + 6.165435524E+02, 2.783999939E+02 + 6.166251229E+02, 2.790000000E+02 + 6.167066912E+02, 2.781000061E+02 + 6.167882574E+02, 2.781000061E+02 + 6.168698215E+02, 2.783999939E+02 + 6.169513834E+02, 2.786000061E+02 + 6.170329433E+02, 2.786499939E+02 + 6.171145011E+02, 2.777500000E+02 + 6.171960567E+02, 2.785000000E+02 + 6.172776102E+02, 2.791499939E+02 + 6.173591616E+02, 2.792500000E+02 + 6.174407108E+02, 2.792999878E+02 + 6.175222580E+02, 2.795499878E+02 + 6.176038030E+02, 2.792500000E+02 + 6.176853459E+02, 2.787500000E+02 + 6.177668867E+02, 2.788999939E+02 + 6.178484254E+02, 2.786499939E+02 + 6.179299619E+02, 2.791000061E+02 + 6.180114963E+02, 2.785499878E+02 + 6.180930286E+02, 2.786000061E+02 + 6.181745587E+02, 2.797999878E+02 + 6.182560868E+02, 2.787500000E+02 + 6.183376127E+02, 2.786000061E+02 + 6.184191365E+02, 2.784500122E+02 + 6.185006581E+02, 2.788500061E+02 + 6.185821776E+02, 2.783999939E+02 + 6.186636950E+02, 2.798999939E+02 + 6.187452103E+02, 2.779500122E+02 + 6.188267234E+02, 2.784500122E+02 + 6.189082344E+02, 2.783999939E+02 + 6.189897433E+02, 2.786000061E+02 + 6.190712500E+02, 2.787999878E+02 + 6.191527546E+02, 2.787500000E+02 + 6.192342570E+02, 2.783999939E+02 + 6.193157574E+02, 2.785000000E+02 + 6.193972556E+02, 2.784500122E+02 + 6.194787516E+02, 2.797000122E+02 + 6.195602455E+02, 2.781499939E+02 + 6.196417373E+02, 2.792000122E+02 + 6.197232269E+02, 2.788500061E+02 + 6.198047144E+02, 2.773500061E+02 + 6.198861998E+02, 2.779500122E+02 + 6.199676830E+02, 2.774500122E+02 + 6.200491641E+02, 2.775499878E+02 + 6.201306430E+02, 2.770499878E+02 + 6.202121198E+02, 2.782999878E+02 + 6.202935944E+02, 2.776000061E+02 + 6.203750669E+02, 2.782500000E+02 + 6.204565373E+02, 2.776499939E+02 + 6.205380055E+02, 2.774500122E+02 + 6.206194715E+02, 2.772999878E+02 + 6.207009355E+02, 2.777000122E+02 + 6.207823972E+02, 2.781499939E+02 + 6.208638568E+02, 2.772999878E+02 + 6.209453143E+02, 2.777000122E+02 + 6.210267696E+02, 2.780000000E+02 + 6.211082228E+02, 2.774500122E+02 + 6.211896738E+02, 2.767000122E+02 + 6.212711227E+02, 2.768999939E+02 + 6.213525694E+02, 2.759500122E+02 + 6.214340139E+02, 2.763999939E+02 + 6.215154563E+02, 2.772500000E+02 + 6.215968966E+02, 2.774500122E+02 + 6.216783347E+02, 2.775499878E+02 + 6.217597706E+02, 2.763500061E+02 + 6.218412044E+02, 2.772999878E+02 + 6.219226360E+02, 2.773500061E+02 + 6.220040655E+02, 2.771000061E+02 + 6.220854928E+02, 2.768999939E+02 + 6.221669179E+02, 2.774500122E+02 + 6.222483409E+02, 2.771000061E+02 + 6.223297618E+02, 2.763999939E+02 + 6.224111804E+02, 2.772500000E+02 + 6.224925969E+02, 2.765000000E+02 + 6.225740113E+02, 2.776000061E+02 + 6.226554234E+02, 2.774500122E+02 + 6.227368334E+02, 2.763999939E+02 + 6.228182413E+02, 2.767000122E+02 + 6.228996470E+02, 2.766000061E+02 + 6.229810505E+02, 2.773999939E+02 + 6.230624518E+02, 2.762000122E+02 + 6.231438510E+02, 2.771000061E+02 + 6.232252480E+02, 2.765000000E+02 + 6.233066429E+02, 2.777500000E+02 + 6.233880355E+02, 2.761499939E+02 + 6.234694260E+02, 2.770499878E+02 + 6.235508143E+02, 2.770499878E+02 + 6.236322005E+02, 2.770499878E+02 + 6.237135845E+02, 2.768999939E+02 + 6.237949663E+02, 2.772000122E+02 + 6.238763459E+02, 2.777000122E+02 + 6.239577234E+02, 2.769500122E+02 + 6.240390987E+02, 2.775000000E+02 + 6.241204718E+02, 2.771000061E+02 + 6.242018427E+02, 2.772500000E+02 + 6.242832115E+02, 2.755499878E+02 + 6.243645781E+02, 2.768999939E+02 + 6.244459425E+02, 2.772000122E+02 + 6.245273047E+02, 2.783500061E+02 + 6.246086647E+02, 2.766000061E+02 + 6.246900226E+02, 2.777500000E+02 + 6.247713783E+02, 2.766000061E+02 + 6.248527318E+02, 2.771499939E+02 + 6.249340831E+02, 2.754500122E+02 + 6.250154322E+02, 2.773999939E+02 + 6.250967791E+02, 2.771000061E+02 + 6.251781239E+02, 2.767999878E+02 + 6.252594665E+02, 2.772999878E+02 + 6.253408069E+02, 2.768999939E+02 + 6.254221451E+02, 2.767000122E+02 + 6.255034811E+02, 2.762999878E+02 + 6.255848149E+02, 2.768999939E+02 + 6.256661466E+02, 2.772000122E+02 + 6.257474760E+02, 2.770000000E+02 + 6.258288033E+02, 2.772500000E+02 + 6.259101283E+02, 2.767500000E+02 + 6.259914512E+02, 2.761000061E+02 + 6.260727719E+02, 2.764500122E+02 + 6.261540904E+02, 2.774500122E+02 + 6.262354067E+02, 2.773999939E+02 + 6.263167208E+02, 2.768500061E+02 + 6.263980327E+02, 2.760000000E+02 + 6.264793424E+02, 2.770499878E+02 + 6.265606499E+02, 2.778500061E+02 + 6.266419552E+02, 2.774500122E+02 + 6.267232583E+02, 2.776499939E+02 + 6.268045592E+02, 2.763500061E+02 + 6.268858580E+02, 2.773500061E+02 + 6.269671545E+02, 2.766000061E+02 + 6.270484488E+02, 2.775000000E+02 + 6.271297409E+02, 2.766000061E+02 + 6.272110308E+02, 2.767999878E+02 + 6.272923186E+02, 2.765000000E+02 + 6.273736041E+02, 2.767999878E+02 + 6.274548874E+02, 2.773999939E+02 + 6.275361685E+02, 2.773999939E+02 + 6.276174474E+02, 2.768500061E+02 + 6.276987241E+02, 2.762999878E+02 + 6.277799985E+02, 2.762500000E+02 + 6.278612708E+02, 2.757500000E+02 + 6.279425409E+02, 2.767500000E+02 + 6.280238088E+02, 2.767999878E+02 + 6.281050744E+02, 2.763999939E+02 + 6.281863378E+02, 2.763500061E+02 + 6.282675991E+02, 2.771499939E+02 + 6.283488581E+02, 2.761499939E+02 + 6.284301149E+02, 2.761499939E+02 + 6.285113695E+02, 2.766499939E+02 + 6.285926219E+02, 2.767500000E+02 + 6.286738720E+02, 2.769500122E+02 + 6.287551200E+02, 2.761000061E+02 + 6.288363657E+02, 2.763500061E+02 + 6.289176092E+02, 2.772999878E+02 + 6.289988505E+02, 2.763999939E+02 + 6.290800896E+02, 2.773999939E+02 + 6.291613265E+02, 2.763500061E+02 + 6.292425611E+02, 2.768500061E+02 + 6.293237936E+02, 2.767999878E+02 + 6.294050238E+02, 2.770499878E+02 + 6.294862518E+02, 2.767999878E+02 + 6.295674775E+02, 2.762999878E+02 + 6.296487011E+02, 2.762500000E+02 + 6.297299224E+02, 2.767000122E+02 + 6.298111415E+02, 2.776499939E+02 + 6.298923584E+02, 2.763500061E+02 + 6.299735730E+02, 2.775000000E+02 + 6.300547854E+02, 2.772000122E+02 + 6.301359956E+02, 2.763999939E+02 + 6.302172036E+02, 2.765000000E+02 + 6.302984093E+02, 2.776000061E+02 + 6.303796128E+02, 2.767500000E+02 + 6.304608141E+02, 2.775000000E+02 + 6.305420132E+02, 2.775000000E+02 + 6.306232100E+02, 2.766499939E+02 + 6.307044046E+02, 2.775000000E+02 + 6.307855969E+02, 2.768999939E+02 + 6.308667871E+02, 2.760499878E+02 + 6.309479750E+02, 2.767999878E+02 + 6.310291606E+02, 2.762999878E+02 + 6.311103440E+02, 2.757500000E+02 + 6.311915252E+02, 2.770000000E+02 + 6.312727042E+02, 2.768999939E+02 + 6.313538809E+02, 2.770499878E+02 + 6.314350554E+02, 2.763500061E+02 + 6.315162276E+02, 2.771499939E+02 + 6.315973976E+02, 2.755000000E+02 + 6.316785654E+02, 2.757500000E+02 + 6.317597309E+02, 2.767500000E+02 + 6.318408942E+02, 2.768999939E+02 + 6.319220552E+02, 2.760000000E+02 + 6.320032140E+02, 2.771000061E+02 + 6.320843706E+02, 2.766000061E+02 + 6.321655249E+02, 2.765000000E+02 + 6.322466770E+02, 2.756000061E+02 + 6.323278268E+02, 2.762500000E+02 + 6.324089744E+02, 2.760499878E+02 + 6.324901197E+02, 2.761499939E+02 + 6.325712628E+02, 2.757000122E+02 + 6.326524036E+02, 2.762000122E+02 + 6.327335422E+02, 2.754500122E+02 + 6.328146786E+02, 2.757999878E+02 + 6.328958127E+02, 2.765000000E+02 + 6.329769445E+02, 2.767000122E+02 + 6.330580741E+02, 2.760000000E+02 + 6.331392015E+02, 2.755000000E+02 + 6.332203265E+02, 2.758999939E+02 + 6.333014494E+02, 2.754500122E+02 + 6.333825700E+02, 2.761000061E+02 + 6.334636883E+02, 2.760000000E+02 + 6.335448044E+02, 2.767500000E+02 + 6.336259182E+02, 2.752999878E+02 + 6.337070297E+02, 2.766000061E+02 + 6.337881390E+02, 2.763999939E+02 + 6.338692461E+02, 2.765499878E+02 + 6.339503509E+02, 2.748999939E+02 + 6.340314534E+02, 2.767000122E+02 + 6.341125537E+02, 2.760499878E+02 + 6.341936517E+02, 2.770499878E+02 + 6.342747474E+02, 2.761000061E+02 + 6.343558409E+02, 2.761000061E+02 + 6.344369322E+02, 2.747999878E+02 + 6.345180211E+02, 2.765499878E+02 + 6.345991078E+02, 2.760499878E+02 + 6.346801922E+02, 2.766499939E+02 + 6.347612744E+02, 2.760000000E+02 + 6.348423543E+02, 2.760000000E+02 + 6.349234320E+02, 2.756499939E+02 + 6.350045073E+02, 2.757999878E+02 + 6.350855804E+02, 2.756000061E+02 + 6.351666513E+02, 2.765000000E+02 + 6.352477198E+02, 2.771499939E+02 + 6.353287861E+02, 2.752999878E+02 + 6.354098501E+02, 2.760000000E+02 + 6.354909119E+02, 2.752000122E+02 + 6.355719714E+02, 2.764500122E+02 + 6.356530286E+02, 2.766499939E+02 + 6.357340835E+02, 2.763999939E+02 + 6.358151362E+02, 2.761000061E+02 + 6.358961866E+02, 2.766499939E+02 + 6.359772347E+02, 2.757000122E+02 + 6.360582805E+02, 2.758500061E+02 + 6.361393241E+02, 2.757999878E+02 + 6.362203654E+02, 2.754500122E+02 + 6.363014044E+02, 2.762500000E+02 + 6.363824411E+02, 2.755499878E+02 + 6.364634756E+02, 2.763999939E+02 + 6.365445077E+02, 2.761499939E+02 + 6.366255376E+02, 2.755000000E+02 + 6.367065652E+02, 2.765499878E+02 + 6.367875905E+02, 2.759500122E+02 + 6.368686136E+02, 2.761499939E+02 + 6.369496344E+02, 2.758999939E+02 + 6.370306528E+02, 2.747999878E+02 + 6.371116690E+02, 2.758500061E+02 + 6.371926829E+02, 2.752999878E+02 + 6.372736945E+02, 2.760499878E+02 + 6.373547039E+02, 2.765499878E+02 + 6.374357109E+02, 2.756000061E+02 + 6.375167157E+02, 2.761000061E+02 + 6.375977182E+02, 2.757000122E+02 + 6.376787183E+02, 2.757000122E+02 + 6.377597162E+02, 2.757000122E+02 + 6.378407118E+02, 2.767500000E+02 + 6.379217051E+02, 2.755000000E+02 + 6.380026961E+02, 2.765499878E+02 + 6.380836849E+02, 2.756000061E+02 + 6.381646713E+02, 2.756000061E+02 + 6.382456554E+02, 2.758999939E+02 + 6.383266373E+02, 2.750499878E+02 + 6.384076168E+02, 2.752000122E+02 + 6.384885941E+02, 2.755000000E+02 + 6.385695690E+02, 2.755000000E+02 + 6.386505417E+02, 2.766499939E+02 + 6.387315120E+02, 2.757500000E+02 + 6.388124801E+02, 2.755000000E+02 + 6.388934459E+02, 2.758999939E+02 + 6.389744093E+02, 2.762000122E+02 + 6.390553705E+02, 2.752500000E+02 + 6.391363294E+02, 2.748999939E+02 + 6.392172859E+02, 2.755499878E+02 + 6.392982402E+02, 2.765000000E+02 + 6.393791921E+02, 2.746499939E+02 + 6.394601418E+02, 2.752999878E+02 + 6.395410891E+02, 2.753999939E+02 + 6.396220341E+02, 2.752999878E+02 + 6.397029769E+02, 2.755499878E+02 + 6.397839173E+02, 2.755499878E+02 + 6.398648554E+02, 2.763500061E+02 + 6.399457912E+02, 2.761000061E+02 + 6.400267247E+02, 2.757000122E+02 + 6.401076559E+02, 2.753999939E+02 + 6.401885848E+02, 2.760499878E+02 + 6.402695114E+02, 2.758500061E+02 + 6.403504356E+02, 2.755000000E+02 + 6.404313576E+02, 2.759500122E+02 + 6.405122772E+02, 2.751000061E+02 + 6.405931945E+02, 2.765000000E+02 + 6.406741095E+02, 2.762999878E+02 + 6.407550222E+02, 2.754500122E+02 + 6.408359326E+02, 2.769500122E+02 + 6.409168406E+02, 2.757500000E+02 + 6.409977464E+02, 2.761499939E+02 + 6.410786498E+02, 2.755499878E+02 + 6.411595509E+02, 2.761000061E+02 + 6.412404497E+02, 2.758999939E+02 + 6.413213462E+02, 2.762500000E+02 + 6.414022403E+02, 2.757000122E+02 + 6.414831322E+02, 2.757999878E+02 + 6.415640217E+02, 2.760000000E+02 + 6.416449088E+02, 2.762500000E+02 + 6.417257937E+02, 2.752999878E+02 + 6.418066762E+02, 2.754500122E+02 + 6.418875565E+02, 2.752000122E+02 + 6.419684343E+02, 2.757999878E+02 + 6.420493099E+02, 2.758500061E+02 + 6.421301831E+02, 2.753999939E+02 + 6.422110541E+02, 2.747999878E+02 + 6.422919226E+02, 2.751000061E+02 + 6.423727889E+02, 2.757500000E+02 + 6.424536528E+02, 2.757000122E+02 + 6.425345144E+02, 2.757999878E+02 + 6.426153737E+02, 2.758999939E+02 + 6.426962306E+02, 2.762999878E+02 + 6.427770852E+02, 2.750000000E+02 + 6.428579375E+02, 2.757999878E+02 + 6.429387874E+02, 2.757999878E+02 + 6.430196350E+02, 2.762500000E+02 + 6.431004803E+02, 2.751499939E+02 + 6.431813232E+02, 2.760499878E+02 + 6.432621639E+02, 2.766499939E+02 + 6.433430021E+02, 2.747999878E+02 + 6.434238380E+02, 2.760000000E+02 + 6.435046716E+02, 2.755000000E+02 + 6.435855029E+02, 2.747999878E+02 + 6.436663318E+02, 2.750000000E+02 + 6.437471584E+02, 2.753999939E+02 + 6.438279826E+02, 2.754500122E+02 + 6.439088045E+02, 2.750000000E+02 + 6.439896241E+02, 2.752999878E+02 + 6.440704413E+02, 2.757000122E+02 + 6.441512561E+02, 2.751499939E+02 + 6.442320686E+02, 2.751499939E+02 + 6.443128788E+02, 2.759500122E+02 + 6.443936867E+02, 2.752999878E+02 + 6.444744922E+02, 2.752500000E+02 + 6.445552953E+02, 2.754500122E+02 + 6.446360961E+02, 2.756000061E+02 + 6.447168945E+02, 2.749500122E+02 + 6.447976906E+02, 2.758500061E+02 + 6.448784844E+02, 2.752500000E+02 + 6.449592758E+02, 2.752500000E+02 + 6.450400648E+02, 2.748999939E+02 + 6.451208515E+02, 2.761499939E+02 + 6.452016359E+02, 2.761499939E+02 + 6.452824179E+02, 2.751499939E+02 + 6.453631975E+02, 2.750499878E+02 + 6.454439748E+02, 2.754500122E+02 + 6.455247498E+02, 2.751499939E+02 + 6.456055223E+02, 2.754500122E+02 + 6.456862926E+02, 2.750000000E+02 + 6.457670604E+02, 2.746000061E+02 + 6.458478259E+02, 2.752500000E+02 + 6.459285891E+02, 2.752999878E+02 + 6.460093499E+02, 2.753500061E+02 + 6.460901083E+02, 2.757000122E+02 + 6.461708644E+02, 2.753999939E+02 + 6.462516181E+02, 2.757999878E+02 + 6.463323695E+02, 2.750000000E+02 + 6.464131185E+02, 2.748500061E+02 + 6.464938651E+02, 2.752500000E+02 + 6.465746094E+02, 2.751000061E+02 + 6.466553513E+02, 2.765000000E+02 + 6.467360908E+02, 2.750000000E+02 + 6.468168280E+02, 2.755000000E+02 + 6.468975628E+02, 2.754500122E+02 + 6.469782953E+02, 2.750499878E+02 + 6.470590253E+02, 2.756499939E+02 + 6.471397531E+02, 2.754500122E+02 + 6.472204784E+02, 2.757000122E+02 + 6.473012014E+02, 2.753999939E+02 + 6.473819220E+02, 2.750000000E+02 + 6.474626402E+02, 2.742999878E+02 + 6.475433561E+02, 2.752999878E+02 + 6.476240696E+02, 2.753500061E+02 + 6.477047807E+02, 2.757999878E+02 + 6.477854894E+02, 2.752000122E+02 + 6.478661958E+02, 2.748999939E+02 + 6.479468998E+02, 2.755000000E+02 + 6.480276014E+02, 2.761000061E+02 + 6.481083007E+02, 2.742999878E+02 + 6.481889976E+02, 2.752500000E+02 + 6.482696921E+02, 2.747999878E+02 + 6.483503842E+02, 2.755499878E+02 + 6.484310739E+02, 2.752500000E+02 + 6.485117613E+02, 2.751000061E+02 + 6.485924463E+02, 2.749500122E+02 + 6.486731289E+02, 2.755499878E+02 + 6.487538091E+02, 2.752999878E+02 + 6.488344869E+02, 2.763500061E+02 + 6.489151624E+02, 2.765499878E+02 + 6.489958355E+02, 2.757500000E+02 + 6.490765062E+02, 2.750000000E+02 + 6.491571745E+02, 2.744500122E+02 + 6.492378404E+02, 2.750499878E+02 + 6.493185039E+02, 2.748500061E+02 + 6.493991651E+02, 2.749500122E+02 + 6.494798239E+02, 2.747000122E+02 + 6.495604802E+02, 2.761499939E+02 + 6.496411342E+02, 2.742500000E+02 + 6.497217858E+02, 2.748999939E+02 + 6.498024350E+02, 2.757999878E+02 + 6.498830819E+02, 2.747500000E+02 + 6.499637263E+02, 2.751000061E+02 + 6.500443683E+02, 2.751499939E+02 + 6.501250080E+02, 2.752999878E+02 + 6.502056452E+02, 2.748999939E+02 + 6.502862801E+02, 2.751499939E+02 + 6.503669126E+02, 2.759500122E+02 + 6.504475426E+02, 2.743999939E+02 + 6.505281703E+02, 2.753500061E+02 + 6.506087956E+02, 2.756000061E+02 + 6.506894185E+02, 2.754500122E+02 + 6.507700390E+02, 2.753999939E+02 + 6.508506571E+02, 2.746000061E+02 + 6.509312727E+02, 2.756499939E+02 + 6.510118860E+02, 2.757500000E+02 + 6.510924969E+02, 2.753500061E+02 + 6.511731054E+02, 2.752999878E+02 + 6.512537115E+02, 2.758500061E+02 + 6.513343152E+02, 2.749500122E+02 + 6.514149165E+02, 2.754500122E+02 + 6.514955154E+02, 2.752999878E+02 + 6.515761118E+02, 2.750000000E+02 + 6.516567059E+02, 2.753500061E+02 + 6.517372976E+02, 2.753500061E+02 + 6.518178868E+02, 2.747500000E+02 + 6.518984737E+02, 2.747500000E+02 + 6.519790581E+02, 2.749500122E+02 + 6.520596402E+02, 2.753999939E+02 + 6.521402198E+02, 2.755000000E+02 + 6.522207970E+02, 2.747500000E+02 + 6.523013719E+02, 2.746499939E+02 + 6.523819443E+02, 2.745499878E+02 + 6.524625142E+02, 2.756499939E+02 + 6.525430818E+02, 2.747000122E+02 + 6.526236470E+02, 2.751499939E+02 + 6.527042097E+02, 2.749500122E+02 + 6.527847701E+02, 2.750499878E+02 + 6.528653280E+02, 2.755499878E+02 + 6.529458835E+02, 2.742500000E+02 + 6.530264366E+02, 2.743500061E+02 + 6.531069873E+02, 2.748500061E+02 + 6.531875355E+02, 2.757500000E+02 + 6.532680814E+02, 2.756499939E+02 + 6.533486248E+02, 2.750000000E+02 + 6.534291658E+02, 2.747000122E+02 + 6.535097044E+02, 2.753999939E+02 + 6.535902406E+02, 2.760499878E+02 + 6.536707743E+02, 2.755499878E+02 + 6.537513056E+02, 2.747999878E+02 + 6.538318345E+02, 2.755000000E+02 + 6.539123610E+02, 2.753999939E+02 + 6.539928851E+02, 2.747500000E+02 + 6.540734067E+02, 2.750000000E+02 + 6.541539259E+02, 2.749500122E+02 + 6.542344427E+02, 2.754500122E+02 + 6.543149570E+02, 2.746000061E+02 + 6.543954689E+02, 2.750000000E+02 + 6.544759784E+02, 2.747000122E+02 + 6.545564855E+02, 2.755000000E+02 + 6.546369901E+02, 2.752500000E+02 + 6.547174923E+02, 2.750499878E+02 + 6.547979921E+02, 2.742000122E+02 + 6.548784895E+02, 2.751499939E+02 + 6.549589844E+02, 2.757999878E+02 + 6.550394769E+02, 2.752500000E+02 + 6.551199669E+02, 2.753500061E+02 + 6.552004545E+02, 2.751000061E+02 + 6.552809397E+02, 2.753500061E+02 + 6.553614225E+02, 2.747500000E+02 + 6.554419028E+02, 2.749500122E+02 + 6.555223806E+02, 2.749500122E+02 + 6.556028561E+02, 2.749500122E+02 + 6.556833291E+02, 2.747999878E+02 + 6.557637996E+02, 2.754500122E+02 + 6.558442678E+02, 2.749500122E+02 + 6.559247335E+02, 2.761499939E+02 + 6.560051967E+02, 2.740000000E+02 + 6.560856575E+02, 2.750499878E+02 + 6.561661159E+02, 2.757500000E+02 + 6.562465718E+02, 2.748500061E+02 + 6.563270253E+02, 2.748999939E+02 + 6.564074763E+02, 2.747999878E+02 + 6.564879249E+02, 2.752500000E+02 + 6.565683710E+02, 2.741499939E+02 + 6.566488147E+02, 2.752000122E+02 + 6.567292560E+02, 2.750000000E+02 + 6.568096948E+02, 2.746499939E+02 + 6.568901311E+02, 2.738500061E+02 + 6.569705651E+02, 2.750000000E+02 + 6.570509965E+02, 2.747000122E+02 + 6.571314255E+02, 2.755499878E+02 + 6.572118521E+02, 2.746000061E+02 + 6.572922762E+02, 2.743500061E+02 + 6.573726979E+02, 2.745000000E+02 + 6.574531171E+02, 2.753999939E+02 + 6.575335338E+02, 2.751499939E+02 + 6.576139481E+02, 2.750499878E+02 + 6.576943600E+02, 2.753999939E+02 + 6.577747694E+02, 2.748999939E+02 + 6.578551763E+02, 2.747500000E+02 + 6.579355808E+02, 2.752000122E+02 + 6.580159828E+02, 2.750000000E+02 + 6.580963824E+02, 2.747500000E+02 + 6.581767795E+02, 2.745000000E+02 + 6.582571741E+02, 2.752000122E+02 + 6.583375663E+02, 2.739500122E+02 + 6.584179561E+02, 2.745499878E+02 + 6.584983433E+02, 2.748999939E+02 + 6.585787281E+02, 2.753999939E+02 + 6.586591105E+02, 2.757000122E+02 + 6.587394904E+02, 2.750000000E+02 + 6.588198678E+02, 2.742999878E+02 + 6.589002428E+02, 2.747000122E+02 + 6.589806153E+02, 2.747999878E+02 + 6.590609853E+02, 2.752500000E+02 + 6.591413529E+02, 2.751000061E+02 + 6.592217180E+02, 2.759500122E+02 + 6.593020806E+02, 2.745499878E+02 + 6.593824407E+02, 2.753500061E+02 + 6.594627984E+02, 2.741499939E+02 + 6.595431537E+02, 2.753500061E+02 + 6.596235064E+02, 2.751499939E+02 + 6.597038567E+02, 2.748500061E+02 + 6.597842045E+02, 2.751000061E+02 + 6.598645499E+02, 2.747999878E+02 + 6.599448927E+02, 2.747999878E+02 + 6.600252331E+02, 2.749500122E+02 + 6.601055711E+02, 2.747500000E+02 + 6.601859065E+02, 2.753999939E+02 + 6.602662395E+02, 2.757999878E+02 + 6.603465700E+02, 2.747000122E+02 + 6.604268980E+02, 2.754500122E+02 + 6.605072236E+02, 2.753999939E+02 + 6.605875466E+02, 2.746000061E+02 + 6.606678672E+02, 2.752999878E+02 + 6.607481853E+02, 2.751000061E+02 + 6.608285010E+02, 2.743500061E+02 + 6.609088141E+02, 2.756000061E+02 + 6.609891248E+02, 2.749500122E+02 + 6.610694330E+02, 2.747500000E+02 + 6.611497387E+02, 2.742500000E+02 + 6.612300419E+02, 2.745499878E+02 + 6.613103426E+02, 2.749500122E+02 + 6.613906409E+02, 2.752000122E+02 + 6.614709367E+02, 2.751499939E+02 + 6.615512300E+02, 2.746499939E+02 + 6.616315208E+02, 2.751499939E+02 + 6.617118091E+02, 2.748999939E+02 + 6.617920949E+02, 2.752500000E+02 + 6.618723782E+02, 2.746499939E+02 diff --git a/tests/data_multi/config_file.json b/tests/data_multi/config_file.json new file mode 100644 index 0000000..7e06aa4 --- /dev/null +++ b/tests/data_multi/config_file.json @@ -0,0 +1,64 @@ +{ + "/ENTRY[entry]/INSTRUMENT[instrument]/scattering_configuration": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/beam_incident/wavelength": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/beam_incident/wavelength/@units": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/beam_incident/parameter_reliability": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/beam_incident/average_power": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/beam_incident/average_power/@units": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/beam_incident/associated_source": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/detector_TYPE[detector_ccd]/detector_channel_type": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/detector_TYPE[detector_ccd]/count_time/@units": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/detector_TYPE[detector_ccd]/count_time": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/detector_TYPE[detector_ccd]/number_of_cycles": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/detector_TYPE[detector_ccd]/number_of_cycles/@units": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/detector_TYPE[detector_ccd]/detector_type": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/detector_TYPE[detector_ccd]/FABRICATION[device_information]/model": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/detector_TYPE[detector_ccd]/FABRICATION[device_information]/serial_number": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/detector_TYPE[detector_ccd]/detector_number": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/detector_TYPE[detector_ccd]/gain_setting": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/SOURCE[source_532nmlaser]/type": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/SOURCE[source_532nmlaser]/power": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/SOURCE[source_532nmlaser]/power/@units": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/FABRICATION[device_information]/vendor": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/FABRICATION[device_information]/model": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/LENS_OPT[objective_lens]/type": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/LENS_OPT[objective_lens]/FABRICATION[device_information]/vendor": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/LENS_OPT[objective_lens]/FABRICATION[device_information]/model": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/LENS_OPT[objective_lens]/magnification": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/LENS_OPT[objective_lens]/numerical_aperture": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/MONOCHROMATOR[monochromator]/device_information/model": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/MONOCHROMATOR[monochromator]/grating/period": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/MONOCHROMATOR[monochromator]/grating/period/@units": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/MONOCHROMATOR[monochromator]/wavelength": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/MONOCHROMATOR[monochromator]/wavelength/@units": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/SENSOR[temperature_sensor]/attached_to": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/SENSOR[temperature_sensor]/measurement": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/SENSOR[temperature_sensor]/value": "@eln", + "/ENTRY[entry]/INSTRUMENT[instrument]/SENSOR[temperature_sensor]/value/@units": "@eln", + "/ENTRY[entry]/SAMPLE[sample]/name": "@eln", + "/ENTRY[entry]/SAMPLE[sample]/atom_types": "@eln", + "/ENTRY[entry]/USER[user]/address": "@eln", + "/ENTRY[entry]/USER[user]/affiliation": "@eln", + "/ENTRY[entry]/USER[user]/email": "@eln", + "/ENTRY[entry]/USER[user]/name": "@eln", + "/ENTRY[entry]/experiment_description": "@eln", + "/ENTRY[entry]/experiment_type": "@eln", + "/ENTRY[entry]/raman_experiment_type": "@eln", + "/ENTRY[entry]/title": "@eln", + "/ENTRY[entry]/start_time": "@eln", + "/ENTRY[entry]/definition": "@eln", + "/ENTRY[entry]/definition/@url": "@eln", + "/ENTRY[entry]/@default": "data", + "/ENTRY[entry]/DATA[data]/@signal": "y_values", + "/ENTRY[entry]/DATA[data]/y_values": "@data:y_values", + "/ENTRY[entry]/DATA[data]/x_values": "@data:x_values", + "/ENTRY[entry]/DATA[data]/y_values/@units": "@eln:/ENTRY[entry]/data/unit_y", + "/ENTRY[entry]/DATA[data]/x_values/@units": "@eln:/ENTRY[entry]/data/unit_x", + "/ENTRY[entry]/DATA[data]/y_values/@long_name": "@eln:/ENTRY[entry]/data/longname_y", + "/ENTRY[entry]/DATA[data]/x_values/@long_name": "@eln:/ENTRY[entry]/data/longname_x", + "/ENTRY[entry]/DATA[data]/@axes":"x_values_raman", + "/ENTRY[entry]/DATA[data]/x_values_raman/@long_name": "@eln:/ENTRY[entry]/data/longname_x_raman", + "/ENTRY[entry]/DATA[data]/x_values_raman": "@data:x_values_raman", + "/ENTRY[entry]/DATA[data]/x_values_raman/@units": "1/cm" + } + diff --git a/tests/data_multi/eln_data.yaml b/tests/data_multi/eln_data.yaml new file mode 100644 index 0000000..cd6befb --- /dev/null +++ b/tests/data_multi/eln_data.yaml @@ -0,0 +1,124 @@ +# Original meta_data_1.txt file below +#Spectrum--000 +# +#General: +# System ID: 100-1100-292 +# Start Time: 2:04:54 PM +# Start Date: Friday, June 21, 2024 +# Duration: 0h 0m 21s +# User Name: Witec +# Sample Name: +# Configuration: Raman CCD1 +# +# UHTS300M: +# Excitation Wavelength [nm]: 532.100 +# Grating: G1: 600 g/mm BLZ=500nm +# Center Wavelength [nm]: 596.989 +# Spectral Center [rel. 1/cm]: 2042.739 +# +# DU970_BV: +# Serial Number: 6358 +# Readout Mode: FVB (1-200) +# Output Amplifier: Conventional +# Vertical Shift Speed [µs]: 9.75 +# Horizontal Shift Speed [MHz]: 0.050 +# Preamplifier Gain: 1.00 +# Cycle Time [sec]: 1.00002 +# Sensor Temperature [°C]: -56 +# +# Number Of Accumulations: 20 +# Integration Time [s]: 1.00000 +# +# Objective: +# Objective Name: Nikon 20x 20x / 0.4 +# Objective Magnification: 20.0 +# +# Sample Location (global position): +# Position X [µm]: 0.000 +# Position Y [µm]: 0.000 +# Position Z [µm]: 0.000 + +data: + unit_x: nm + unit_y: counts + longname_x: Wavelength + longname_y: Raman Intensity + longname_x_raman: Raman Shift +instrument: + scattering_configuration: z(xx)-z + beam_incident: + wavelength: + value: 532.1 + unit: nm + average_power: + value: 60 + unit: mW + parameter_reliability: nominal + associated_source: entry/instrument/source_532nmlaser + detector_ccd: + detector_channel_type: multichannel + count_time: + value: 1.0 + unit: s + number_of_cycles: + value: 20 + unit: counts + detector_type: CCD + device_information: + model: DU970_BV + serial_number: "6358" + detector_number: + - 1600 + - 200 + gain_setting: 1.0 + temperature_sensor: + attached_to: CCD + measurement: temperature + value: + value: -56 + unit: celsius + source_532nmlaser: + type: laser #DPSS + power: + value: 80 + unit: mW + device_information: + vendor: Witec + model: Alpha Raman + objective_lens: + type: objective + device_information: + vendor: Nikon + model: "Nikon 20x" + magnification: 20 + numerical_aperture: 0.4 + monochromator: + device_information: + model: UHTS300M + grating: + period: + value: 600 + unit: counts / mm + wavelength: + value: 596.989 ##Spectral Center [rel. 1/cm]: 2042.739 + unit: nm +sample: + name: Silicon Wafer + atom_types: Si +user: + address: Lennestr. 5, 04318 Leipzig + affiliation: Universität Leipzig + email: ron.hildebrandt@physik.hu-berlin.de + name: Hildebrandt, Ron +experiment_description: Raman spectrum of commercial silicon wafer +experiment_type: Raman spectroscopy +raman_experiment_type: non-resonant Raman spectroscopy +title: Si-Wafer +start_time: '2024-06-21T14:04:54+02:00' +definition: NXraman +definition/@url: https://github.com/FAIRmat-NFDI/nexus_definitions/blob/fairmat/contributed_definitions/NXraman.nxdl.xml # can be removed later, if the NeXus as submodule in pynxtools is updated, just in to let CICD pass. +measurement_file_meta_data: + delimiter: "," + skip_lines: 17 + + diff --git a/tests/data_multi/example.nxs b/tests/data_multi/example.nxs new file mode 100644 index 0000000..907e843 Binary files /dev/null and b/tests/data_multi/example.nxs differ diff --git a/tests/test_reader.py b/tests/test_reader.py index 85bb8f0..9470252 100644 --- a/tests/test_reader.py +++ b/tests/test_reader.py @@ -24,3 +24,15 @@ def test_nexus_conversion(caplog, tmp_path): ) test.convert_to_nexus(caplog_level="WARNING", ignore_undocumented=False) test.check_reproducibility_of_nexus() + + caplog.clear() + dir_path_multi = Path(__file__).parent / "data_multi" + test = ReaderTest( + nxdl="NXraman", + reader_name="raman_multi", + files_or_dir=glob(os.path.join(dir_path_multi, "*")), + tmp_path=tmp_path, + caplog=caplog, + ) + test.convert_to_nexus(caplog_level="WARNING", ignore_undocumented=False) + test.check_reproducibility_of_nexus()