From 4dd432bc82613ea3aa456c49239addd008a7104b Mon Sep 17 00:00:00 2001 From: hadaq Date: Mon, 5 May 2025 18:04:45 +0200 Subject: [PATCH] update hadesroot / QA files --- hadesroot/EMC.htm | 26 ++- hadesroot/MDC.htm | 252 +++++++++------------ hadesroot/Main.htm | 98 +++++--- hadesroot/Physics.htm | 236 ++++++++++--------- hadesroot/RICH.htm | 15 +- hadesroot/RPC.htm | 6 +- hadesroot/Start.htm | 2 + hadesroot/TOF.htm | 2 + hadesroot/Trigger.htm | 101 --------- hadesroot/WALL.htm | 34 +-- hadesroot/files/TemplateTH1.json | 127 +++++++++++ hadesroot/files/TemplateTH2.json | 131 +++++++++++ hadesroot/files/functions.mjs | 91 ++++++-- hadesroot/files/tab.css | 45 +++- hadesroot/icons/android-chrome-192x192.png | Bin 0 -> 8749 bytes hadesroot/icons/android-chrome-512x512.png | Bin 0 -> 19230 bytes hadesroot/icons/apple-touch-icon.png | Bin 0 -> 7986 bytes hadesroot/icons/favicon-16x16.png | Bin 0 -> 486 bytes hadesroot/icons/favicon-32x32.png | Bin 0 -> 1063 bytes hadesroot/icons/favicon.ico | Bin 0 -> 15406 bytes hadesroot/index.htm | 36 +++ 21 files changed, 748 insertions(+), 454 deletions(-) delete mode 100644 hadesroot/Trigger.htm create mode 100644 hadesroot/files/TemplateTH1.json create mode 100644 hadesroot/files/TemplateTH2.json create mode 100644 hadesroot/icons/android-chrome-192x192.png create mode 100644 hadesroot/icons/android-chrome-512x512.png create mode 100644 hadesroot/icons/apple-touch-icon.png create mode 100644 hadesroot/icons/favicon-16x16.png create mode 100644 hadesroot/icons/favicon-32x32.png create mode 100644 hadesroot/icons/favicon.ico create mode 100644 hadesroot/index.htm diff --git a/hadesroot/EMC.htm b/hadesroot/EMC.htm index 36f65dd..b234580 100644 --- a/hadesroot/EMC.htm +++ b/hadesroot/EMC.htm @@ -3,6 +3,8 @@ + + QA - EMC @@ -572,12 +519,13 @@ let helptext =
- - - - - - + + + + + + +
@@ -587,32 +535,14 @@ let helptext =
-
+
-
+ +
@@ -638,15 +568,33 @@ let helptext =
-
-
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -671,4 +619,12 @@ let helptext =
+
+
+
+
+
+
+
+
diff --git a/hadesroot/Main.htm b/hadesroot/Main.htm index 1fe21a4..3bba630 100644 --- a/hadesroot/Main.htm +++ b/hadesroot/Main.htm @@ -3,6 +3,8 @@ + + QA - Main @@ -108,6 +129,7 @@
+
@@ -119,4 +141,10 @@
+
+
+
+
+
+
diff --git a/hadesroot/Physics.htm b/hadesroot/Physics.htm index c387c49..0143bca 100644 --- a/hadesroot/Physics.htm +++ b/hadesroot/Physics.htm @@ -3,6 +3,8 @@ + + QA - Physics - - - - - -
- - - -
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
- diff --git a/hadesroot/WALL.htm b/hadesroot/WALL.htm index 4994bfc..cb4d42e 100644 --- a/hadesroot/WALL.htm +++ b/hadesroot/WALL.htm @@ -3,6 +3,8 @@ + + QA - WALL diff --git a/hadesroot/files/TemplateTH1.json b/hadesroot/files/TemplateTH1.json new file mode 100644 index 0000000..a9c18cd --- /dev/null +++ b/hadesroot/files/TemplateTH1.json @@ -0,0 +1,127 @@ +{ + "_typename": "TH1F", + "fUniqueID": 0, + "fBits": 520, + "fName": "REPLACEME", + "fTitle": "REPLACEME", + "fLineColor": 2, + "fLineStyle": 1, + "fLineWidth": 1, + "fFillColor": 0, + "fFillStyle": 1001, + "fMarkerColor": 1, + "fMarkerStyle": 1, + "fMarkerSize": 1, + "fNcells": -31415, + "fXaxis": { + "_typename": "TAxis", + "fUniqueID": 0, + "fBits": 0, + "fName": "xaxis", + "fTitle": "REPLACEME", + "fNdivisions": 510, + "fAxisColor": 1, + "fLabelColor": 1, + "fLabelFont": 42, + "fLabelOffset": 0.005, + "fLabelSize": 0.035, + "fTickLength": 0.03, + "fTitleOffset": 1, + "fTitleSize": 0.035, + "fTitleColor": 1, + "fTitleFont": 42, + "fNbins": -31415, + "fXmin": 0, + "fXmax": -31415, + "fXbins": [], + "fFirst": 0, + "fLast": 0, + "fBits2": 0, + "fTimeDisplay": false, + "fTimeFormat": "", + "fLabels": null, + "fModLabs": null + }, + "fYaxis": { + "_typename": "TAxis", + "fUniqueID": 0, + "fBits": 0, + "fName": "yaxis", + "fTitle": "REPLACEME", + "fNdivisions": 510, + "fAxisColor": 1, + "fLabelColor": 1, + "fLabelFont": 42, + "fLabelOffset": 0.005, + "fLabelSize": 0.035, + "fTickLength": 0.03, + "fTitleOffset": 0, + "fTitleSize": 0.035, + "fTitleColor": 1, + "fTitleFont": 42, + "fNbins": 1, + "fXmin": 0, + "fXmax": 1, + "fXbins": [], + "fFirst": 0, + "fLast": 0, + "fBits2": 0, + "fTimeDisplay": false, + "fTimeFormat": "", + "fLabels": null, + "fModLabs": null + }, + "fZaxis": { + "_typename": "TAxis", + "fUniqueID": 0, + "fBits": 0, + "fName": "zaxis", + "fTitle": "", + "fNdivisions": 510, + "fAxisColor": 1, + "fLabelColor": 1, + "fLabelFont": 42, + "fLabelOffset": 0.005, + "fLabelSize": 0.035, + "fTickLength": 0.03, + "fTitleOffset": 1, + "fTitleSize": 0.035, + "fTitleColor": 1, + "fTitleFont": 42, + "fNbins": 1, + "fXmin": 0, + "fXmax": 1, + "fXbins": [], + "fFirst": 0, + "fLast": 0, + "fBits2": 0, + "fTimeDisplay": false, + "fTimeFormat": "", + "fLabels": null, + "fModLabs": null + }, + "fBarOffset": 0, + "fBarWidth": 1000, + "fEntries": 0, + "fTsumw": 0, + "fTsumw2": 0, + "fTsumwx": 0, + "fTsumwx2": 0, + "fMaximum": -1111, + "fMinimum": -1111, + "fNormFactor": 0, + "fContour": [], + "fSumw2": [], + "fOption": "hist", + "fFunctions": { + "_typename": "TList", + "name": "TList", + "arr": [], + "opt": [] + }, + "fBufferSize": 0, + "fBuffer": [], + "fBinStatErrOpt": 0, + "fStatOverflows": 2, + "fArray": [] +} diff --git a/hadesroot/files/TemplateTH2.json b/hadesroot/files/TemplateTH2.json new file mode 100644 index 0000000..73ae6c6 --- /dev/null +++ b/hadesroot/files/TemplateTH2.json @@ -0,0 +1,131 @@ +{ + "_typename": "TH2F", + "fUniqueID": 0, + "fBits": 520, + "fName": "REPLACEME", + "fTitle": "REPLACEME", + "fLineColor": 2, + "fLineStyle": 1, + "fLineWidth": 1, + "fFillColor": 0, + "fFillStyle": 1001, + "fMarkerColor": 1, + "fMarkerStyle": 1, + "fMarkerSize": 1, + "fNcells": -31415, + "fXaxis": { + "_typename": "TAxis", + "fUniqueID": 0, + "fBits": 0, + "fName": "xaxis", + "fTitle": "", + "fNdivisions": 510, + "fAxisColor": 1, + "fLabelColor": 1, + "fLabelFont": 42, + "fLabelOffset": 0.005, + "fLabelSize": 0.05, + "fTickLength": 0.03, + "fTitleOffset": 1.15, + "fTitleSize": 0.035, + "fTitleColor": 1, + "fTitleFont": 42, + "fNbins": -31415, + "fXmin": -31415, + "fXmax": -31415, + "fXbins": [], + "fFirst": 0, + "fLast": 0, + "fBits2": 0, + "fTimeDisplay": false, + "fTimeFormat": "", + "fLabels": null, + "fModLabs": null + }, + "fYaxis": { + "_typename": "TAxis", + "fUniqueID": 0, + "fBits": 0, + "fName": "yaxis", + "fTitle": "mbo", + "fNdivisions": 510, + "fAxisColor": 1, + "fLabelColor": 1, + "fLabelFont": 42, + "fLabelOffset": 0.005, + "fLabelSize": 0.035, + "fTickLength": 0.03, + "fTitleOffset": 0, + "fTitleSize": 0.035, + "fTitleColor": 1, + "fTitleFont": 42, + "fNbins": -31415, + "fXmin": -31415, + "fXmax": -31415, + "fXbins": [], + "fFirst": 0, + "fLast": 0, + "fBits2": 0, + "fTimeDisplay": false, + "fTimeFormat": "", + "fLabels": null, + "fModLabs": null + }, + "fZaxis": { + "_typename": "TAxis", + "fUniqueID": 0, + "fBits": 0, + "fName": "zaxis", + "fTitle": "REPLACEME", + "fNdivisions": 510, + "fAxisColor": 1, + "fLabelColor": 1, + "fLabelFont": 42, + "fLabelOffset": 0.005, + "fLabelSize": 0.035, + "fTickLength": 0.03, + "fTitleOffset": 1, + "fTitleSize": 0.035, + "fTitleColor": 1, + "fTitleFont": 42, + "fNbins": 1, + "fXmin": 0, + "fXmax": 1, + "fXbins": [], + "fFirst": 0, + "fLast": 0, + "fBits2": 0, + "fTimeDisplay": false, + "fTimeFormat": "", + "fLabels": null, + "fModLabs": null + }, + "fBarOffset": 0, + "fBarWidth": 1000, + "fEntries": 0, + "fTsumw": 0, + "fTsumw2": 0, + "fTsumwx": 0, + "fTsumwx2": 0, + "fMaximum": -1111, + "fMinimum": -1111, + "fNormFactor": 0, + "fContour": [], + "fSumw2": [], + "fOption": "colz", + "fFunctions": { + "_typename": "TList", + "name": "TList", + "arr": [], + "opt": [] + }, + "fBufferSize": 0, + "fBuffer": [], + "fBinStatErrOpt": 0, + "fStatOverflows": 2, + "fScalefactor": 1, + "fTsumwy": 0, + "fTsumwy2": 0, + "fTsumwxy": 0, + "fArray": [] +} diff --git a/hadesroot/files/functions.mjs b/hadesroot/files/functions.mjs index 74e738f..d567199 100644 --- a/hadesroot/files/functions.mjs +++ b/hadesroot/files/functions.mjs @@ -1,16 +1,16 @@ import * as root from '/jsroot/modules/main.mjs'; -import * as colors from '/jsroot/modules/base/colors.mjs'; let first_call = {}; -export function initUpdate(histnames, histoptions, helptext, globalSettings) { +export async function initUpdate(histnames, histoptions, helptext, globalSettings) { for (var t = 0; t < histnames.length; t++) { first_call[t] = {}; } if (globalSettings) for (let [key, value] of Object.entries(globalSettings)) { root.settings[key] = value; } - document.getElementsByClassName("tabcontent")[0].style.display = 'flex'; - update(histnames, histoptions); + // document.getElementsByClassName("tabcontent")[0].style.display = 'flex'; + document.getElementsByClassName("tabcontent")[0].classList.add("active"); + await update(histnames, histoptions); // Array.from(document.getElementsByClassName("tabcontent")).forEach(addhelp); for (let tc = 0; tc < document.getElementsByClassName("tabcontent").length; tc++) { @@ -44,10 +44,10 @@ function deepMerge(target, source) { function setPainterSettings(painter, settings) { if (!settings) return; - if (settings.FRAME) - deepMerge(painter.getFramePainter(), settings.FRAME); if (settings.PAINTER) deepMerge(painter, settings.PAINTER); + if (settings.FRAME) + deepMerge(painter.getFramePainter(), settings.FRAME); if (settings.PAD) deepMerge(painter.getPadPainter(), settings.PAD); } @@ -60,6 +60,21 @@ function createLegendEntry(obj, lbl) { return entry; } +function AddH2(h1, h2) { + const nbinsXh1 = h1.fXaxis.fNbins; + const nbinsYh1 = h1.fYaxis.fNbins; + const nbinsXh2 = h2.fXaxis.fNbins; + const nbinsYh2 = h2.fYaxis.fNbins; + + // console.log(`In AddH2(${h1.fTitle}, ${h2.fTitle}`); + if (nbinsXh1 != nbinsXh2 || nbinsYh1 != nbinsYh2) { + console.warn('In function AddH2(h1, h2) axis dimensions not the same. Not Adding Histograms'); + return; + } + for (let iX = 0; iX <= nbinsXh1; iX++) for (let iY = 0; iY <= nbinsYh1; iY++) + h1.fArray[iX + (nbinsXh1 + 2) * iY] += h2.fArray[iX + (nbinsXh1 + 2) * iY]; +} + export async function update(histnames, histoptions) { for (var t = 0; t < histnames.length; t++) { @@ -69,8 +84,11 @@ export async function update(histnames, histoptions) { for (var i = 0; i < histnames[t].length; i++) { if (!Array.isArray(histnames[t][i])) { + if (histnames[t][i] == '') continue; let hist = await root.httpRequest('/qaweb/HadesQA/' + histnames[t][i] + '/root.json.gz?compact=23', 'object'); if (histoptions[t][i].HIST) deepMerge(hist, histoptions[t][i].HIST); + if(hist.XLABEL) + histoptions[t][i].XLABEL = hist.XLABEL; if (histoptions[t][i].XLABEL) { hist.fXaxis.fLabels = root.create('THashList'); for (let l = 0; l < histoptions[t][i].XLABEL.length; l++) { @@ -80,14 +98,27 @@ export async function update(histnames, histoptions) { hist.fXaxis.fLabels.Add(lbl, ''); } } - // console.log(hist); + if(hist.YLABEL) + histoptions[t][i].YLABEL = hist.YLABEL; + if (histoptions[t][i].YLABEL) { + hist.fYaxis.fLabels = root.create('THashList'); + for (let l = 0; l < histoptions[t][i].YLABEL.length; l++) { + let lbl = root.create('TObjString'); + lbl.fString = histoptions[t][i].YLABEL[l]; + lbl.fUniqueID = l + 1; + hist.fYaxis.fLabels.Add(lbl, ''); + } + } let painter = await root.redraw(`t${t}d${i}`, hist, ''); - // if (!first_call[t][i]) { + if (!first_call[t][i]) { setPainterSettings(painter, histoptions[t][i]); + // painter = await root.redraw(`t${t}d${i}`, hist, ''); first_call[t][i] = true; - // } + } + // console.log(hist); // console.log(painter); // console.log(painter.getFramePainter()); + // console.log(painter.getPadPainter()); } else { let histo = []; @@ -98,15 +129,17 @@ export async function update(histnames, histoptions) { if (histoptions[t][i][j].LABEL == '') label[j] = histo[j].fTitle; if (histoptions[t][i][j].LABEL) label[j] = histoptions[t][i][j].LABEL; if (histoptions[t][i][j].XLABEL) { - // console.log(histoptions[t][i][j].XLABEL); - histo[j].fXaxis.fLabels = create('THashList'); + histo[j].fXaxis.fLabels = root.create('THashList'); for (let l = 0; l < histoptions[t][i][j].XLABEL.length; l++) { - let lbl = create('TObjString'); + let lbl = root.create('TObjString'); lbl.fString = histoptions[t][i][j].XLABEL[l]; lbl.fUniqueID = l + 1; histo[j].fXaxis.fLabels.Add(lbl, ''); } } + if (histo.length > 0 && histo[0]._typename.includes('TH2') && histoptions[t][i][0].STACK) + AddH2(histo[0], histo[j]); + // console.log(histo[j]); } const stack = root.createTHStack(...histo); // console.log(stack); @@ -124,14 +157,28 @@ export async function update(histnames, histoptions) { else stack.fHists.arr[0].fFunctions.Add(leg, ''); } - let painter = await root.redraw(`t${t}d${i}`, stack, 'nostack'); - // console.log(stack); - // console.log(histo[0]); - // console.log(stack.fHistogram.fFunctions); - // if (!first_call[t][i]) { + let painter; + if (histo[0]._typename.includes('TH2') && histoptions[t][i][0].STACK) + painter = await root.redraw(`t${t}d${i}`, histo[0], ''); + else if (histoptions[t][i][0].STACK) + painter = await root.redraw(`t${t}d${i}`, stack, ''); + else + painter = await root.redraw(`t${t}d${i}`, stack, 'nostack'); + if (!first_call[t][i]) { setPainterSettings(painter, histoptions[t][i][0]); + // if (histo[0]._typename.includes('TH2') && histoptions[t][i][0].STACK) + // painter = await root.redraw(`t${t}d${i}`, histo[0], ''); + // else if (histoptions[t][i][0].STACK) + // painter = await root.redraw(`t${t}d${i}`, stack, ''); + // else + // painter = await root.redraw(`t${t}d${i}`, stack, 'nostack'); first_call[t][i] = true; - // } + } + // console.log(stack); + // console.log(histo[0]); + // console.log(painter); + // console.log(painter.getFramePainter()); + // console.log(painter.getPadPainter()); } } } @@ -144,16 +191,16 @@ export function openTab(evt, Name) { // Get all elements with class="tabcontent" and hide them tabcontent = document.getElementsByClassName("tabcontent"); for (i = 0; i < tabcontent.length; i++) { - tabcontent[i].style.display = 'none'; + tabcontent[i].classList.remove("active"); } // Get all elements with class="tablinks" and remove the class "active" tablinks = document.getElementsByClassName("tablinks"); for (i = 0; i < tablinks.length; i++) { - tablinks[i].className = tablinks[i].className.replace(" active", ""); + tablinks[i].classList.remove("active"); } // Show the current tab, and add an "active" class to the button that opened the tab - document.getElementById(Name).style.display = 'flex'; - evt.currentTarget.className += " active"; + document.getElementById(Name).classList.add("active"); + evt.currentTarget.classList.add("active"); } diff --git a/hadesroot/files/tab.css b/hadesroot/files/tab.css index 8d7c10d..e0eb6e1 100644 --- a/hadesroot/files/tab.css +++ b/hadesroot/files/tab.css @@ -2,16 +2,20 @@ body { height: calc(100vh - 30px); margin:0; padding:0; - margin-top:30px; + margin-top:25px; } .tabcontent { - display: none; /* establish flex container */ + visibility: hidden; /* establish flex container */ flex-wrap: wrap; /* enable flex items to wrap */ justify-content: space-around; /* padding: 6px 12px; */ /* border: 1px solid #ccc; */ border-top: none; + width:100%; + height:calc(100vh - 30px); + position:absolute; + display: flex; } .tabcontent>div>div { @@ -28,6 +32,14 @@ body { } +.tabcontent.active { + visibility:visible; + } + +.tabcontent.cell1_2x1 { + display: grid; + } + .cell6x4>div { flex: 1 1 16%; height: calc(25vh - 10px); @@ -40,7 +52,24 @@ body { .cell3x2>div { flex: 1 1 33%; - height: calc(50vh - 20px); + height: calc(50vh - 15px); +} + +.cell1_2x1 { + grid-template-columns: 60% 40%; + grid-template-areas: "a b " "a c"; + } +.cell1_2x1>div:first-child { + grid-area: a; + height: calc(100vh - 30px); +} +.cell1_2x1>div:nth-child(2) { + grid-area: b; + height: calc(50vh - 15px); +} +.cell1_2x1>div:nth-child(3) { + grid-area: c; + height: calc(50vh - 15px); } .cell3x1>div { @@ -58,6 +87,10 @@ body { height: calc(100vh - 40px); } +.cell1x1>div { + flex: 1 1 99%; + height: calc(100vh - 40px); +} .tab { position:absolute; top: 0px; @@ -65,8 +98,8 @@ body { z-index:1; overflow: hidden; border: 1px solid #ccc; - height: 30px; - max-height: 30px; + height: 25px; + max-height: 25px; padding: 0; margin: 0; background-color: #f1f1f1; @@ -78,7 +111,7 @@ body { border: 1px solid #aaa; outline: none; cursor: pointer; - padding: 7px 20px; + padding: 5px 20px; transition: 0.3s; border-radius:10px 10px 0 0; } diff --git a/hadesroot/icons/android-chrome-192x192.png b/hadesroot/icons/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..bf4c6c1a88c4aaad878727cf25d44d08893af1b6 GIT binary patch literal 8749 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 H=Ar)s7r6&e literal 0 HcmV?d00001 diff --git a/hadesroot/icons/favicon-16x16.png b/hadesroot/icons/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..5c069c78d9330ca6a43ede5b5cfffef71e637360 GIT binary patch literal 486 zcmV@P)Px$ph-kQR5(wqlfO$sQ545NuOXyF9K!!02#T=5#HC#^smia>}WB@hIQ76-+G zmTa>j2P2|MXV-?1wp_{|gNaWo!5i1>6Cc#jj{_GT=ic}Ep7XuuYC?!8Z~#p5v-kiG zH6g_NFMc+pJ|sYlg!_GXdxNQ|?`x6AHEp!70JR!KqaXpVuW)}4M@O)_Y6k7>K(h(w z=VO3QN8ob7#RV)ZsExZj@Oq(80FOuIbRCwL;pqupUch1*q&0DNCb+(an;Wy5&!Px&;Ymb6R9HvNmwjkXaTLct&;DRqqKr)>l0VcCF|QE`A=xNPl$T{2QQoD^ON+2l z%3GATC7Tk9k)*sw)QBV`h0L1FTTF5F-PzrF4BEH%Klt%uW97#W7(N_s-SYQ)^vKRDD1gF3h(zG!OX$%f#@|XXe?A;J0&Ca8 zwr#=G=H>%U?JT)G5z??OrnNDoCtuxgbLfZAH8uC8Ccz`1iUWlAsr z(K=*^`K(?IJ9c>e#ZLF`ux5<~oHNHtI(V=FYGM(mqQYqq+x`16U_dYcbwzTrwdaHh zaPgwoUjm&q3tqi4<(HMg^y%iKQuprd@sBv=yK~1sE0@9Ya`VCy#0e}*kvV7>NU)Vu&LUpA%3Gi9zCj~od%ZbZFbzqS@u+ht}(pQ|0uo;7yGvIjup z671Xw%a_LsZ-LbT^X7rt*EMCBujLwG>ZHDX8yq4|V-b!YZ>#x7@My^Oq^)X1$y5;e^xRw zLfnW-OCc-EC>Qnr*y3NwYHCai+7;SvqEYkqZy z1Q-s04wEj#fEJ1iM4QoP$A^qv=N2A-d#YMa8&NG4aM=tC;?DtuJvpS`e*vI1Kh55@ h_Qz>~0JQ4o`EO?kv+D7I$T$E1002ovPDHLkV1lK`@Sy+z literal 0 HcmV?d00001 diff --git a/hadesroot/icons/favicon.ico b/hadesroot/icons/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..930df26136748c0d42a36f3d5ebf2e30e62049b5 GIT binary patch literal 15406 zcmeI31&m%r5XWBymurFI(8Ee`FHQ*-+`WYsf)oqxQb>@H7N-f?26qV_2$TS6A$V{- zytq@GKl|%4?0)a|eeZoo@3>2ElD)Uz?(FXD?Ci|!&R&-F$a-ac`eg3goQ>$6WrMOT zYi{+Lv8;|?p8CQp`DSV4OJ`A~NM{ZjAV(qoT>vLAnxmS0|KY6^U|T3f$;_my_u zSsFM{y8U*m4d25L_wx-UwK>+C^{fX8nRYAOW}t0b_u!PaNu|(0A$q3SrS)AxKNW$a zv!_cZxirb8jsnJFOdGqS#?6n@(euua@3dk!G{S*TKb5d0jo5)k`Y*!0;Rb2(#icCs zsb4?o{r8Kor*8RWm(`BD-+t1y*Gk`iKXu1R_4ds-(rmLyJ$iUsiC*tWxba3mceB&& zJ@&WXN|#(B?Y_IT!3N&eGIx9y^8<{AUw)A;x~O$}-~q#s{`jMHy|wx1qku>5rkkWW z=k)WPVFqvi&pul^;RI=+g}jZ09|qVgZ1#*Z2KiWG3F)k}48wo%f##Yk;2^`xEhoM3 zLcqi4VV=~jvrcQ-X6^?b=<82AEwm%Yo}6hW&$HT^@C!RX%PhYAvB!pTa`-XKm$6q~ zSpqi&%y;w6JzmTQaEA`{{uX{&3h*0j@4onAEyl26zOJXUM)|s0Oljgok2~Ldwem22 zyf4ScNddkbZzd(Is7x@ z%em*)))oC)Yc1bq`0!ec(@zh5S)cjutFP9!x%b}C1|Pf%Y`n2=v-aAx*dKl<_39;E ze6hC?*a;FoD|FzG<{=*crI+%x>EElb?)$_4&ja#FGGO1JKN<=x>uvYU}uQ>#d##%p17#PLB)z+i&}__-`zK_uLcLr1MWd9r`=^=+-#&hix1+ z%GV7U;_*|wvew8E^yT$})yLlvBf|KPKOWbFJm-OBm-YK|_SrqY(G##j?ya}H4xMM7 z`Zo2ISET8u_x-K8W@w+!AxF&Tko$1cBIdgd9Q&N;`QP3a5!^ys7Iy>Wg7pTwE7DomOrop_?O^wREd z;PkQevA_b-p@+IdimR^z-+d>cAJDC~7pk<2aoD@G#RqCDbhMw^RyzO3b`@8&T_|Mi zliH={YMnYs|Mv{sk$kXu_bj>>m{!WUCvjJ_*>IQY-IKU#r^(dhlJhh*(IuxHIxRpO zG!Aj8DWZLh`|VCGT?U{Pn&CTh=}NRaa;E?^o6P)E)a5=C9L1ek-pd%;!M7G=yn27erD*r$&)dUX1{(phH4nQhZeecZ{;5_~z6 zEx4e>88#oI>nyZ$uf|gS+zn{XK1i21(e36!12|=0MD^3LqcEY3y#0HD|3;@Y`?Fuwj9A<}i4$ zm;V&LmBHgj9`QB{{&2sSUkAfw&B57iH!G?C#s2NFM_4!R8Q*&^-G+NgWWm;md%35c zD&CvuqhQxkfW|@Eo@3B#h0QZk;tl|4$ zKOk3my@Y%cYk)`as|?_Y@sl_jGM|FmZu9SC43}6^YM!aKR>uAO5l001<6RARr7;lK zWY4k&$PzMJ1k8QC^#c9)ROs?Nut$hv+MZ<&?3uQ}6<0_z&+NzK&OWsd?z+pzN#>o` zuMv0Fsl*_)SH?xFbjU`ND7Wuj2O0sv@0RHSbPn-m_5rrf^pf?#dfK{_(Zd&sleFJv~hTf|oBuL?jn^rCBd zpJcQnf7rvSfG@K5-kyiFJ^%b#y-?H-_G8N}!?=u(|H+zG0qhcQoH@%OFGfEy)#%we zKELpm=jyAA&zR7LeDI#z){U_lx5!5?nh)&*rhJ|At2Vf6kxyfV`{W%>ZxWNt_cI z!^T72v8T^H*V^Z=GHQIMM4#9N_VRxL^fR)}yPsWlkmj4BK^2z$|TgvD_ z$MCk1w`{ye`#-p_PHHwXR; G2mS_h6$oGe literal 0 HcmV?d00001 diff --git a/hadesroot/index.htm b/hadesroot/index.htm new file mode 100644 index 0000000..b4c4a91 --- /dev/null +++ b/hadesroot/index.htm @@ -0,0 +1,36 @@ + + + + + + + + Hades Online QA + + +
 
+

HADES Online QA

+
+ + + + + + + -- 2.43.0