From 0a0dc30023747f8b1a3d00640f57b4b997a5d0f7 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 1 Nov 2026 10:18:12 +0000 Subject: [PATCH 1/4] fix(template): turn off search autocomplete now that search is removed WebHelp's autocomplete script runs on every page and throws "Cannot set properties of undefined (setting '_renderItem')" once the template no longer renders the search box (SRD 013 ANS-01). The publishing template now sets webhelp.enable.search.autocomplete=no. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_019erPampkiqiri3Gab6oSHB --- dita/template/f13ldMan-CSA.opt | 2 ++ tests/unit/scripts/oxygen-template.test.ts | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/dita/template/f13ldMan-CSA.opt b/dita/template/f13ldMan-CSA.opt index 7c39bc6e..44808d9c 100644 --- a/dita/template/f13ldMan-CSA.opt +++ b/dita/template/f13ldMan-CSA.opt @@ -27,6 +27,8 @@ + + { expect(total).toContain(' { + const opt = readFileSync(resolve(__dirname, '../../../dita/template/f13ldMan-CSA.opt'), 'utf8'); + expect(opt).toContain(''); + }); }); From 085bc35c903bf390a34577f3902fb7e0b7d8ad0b Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 1 Nov 2026 10:18:12 +0000 Subject: [PATCH 2/4] feat(tooling): apply the template's answer protection to demo output without Oxygen npm run protect-dita-demo runs scripts/protect-demo-output.js on dita-demo/. It follows the template's rules: qd1: encoding of Answer cells and numeric tolerances (quizAnswerEncoding.xsl), the #qd-question-total and #qd-answer-key spans (customHeader.xsl), search box, index and results removed (header.xml, wt_search.html), and search autocomplete off (f13ldMan-CSA.opt). It is a developer stand-in for an Oxygen republish, documented as such in dita/README.md. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_019erPampkiqiri3Gab6oSHB --- dita/README.md | 6 + docs/MAINTAINERS.md | 1 + package.json | 1 + scripts/protect-demo-output.d.ts | 16 ++ scripts/protect-demo-output.js | 243 ++++++++++++++++++ .../unit/scripts/protect-demo-output.test.ts | 139 ++++++++++ 6 files changed, 406 insertions(+) create mode 100644 scripts/protect-demo-output.d.ts create mode 100644 scripts/protect-demo-output.js create mode 100644 tests/unit/scripts/protect-demo-output.test.ts diff --git a/dita/README.md b/dita/README.md index 2735ef5b..845bb21d 100644 --- a/dita/README.md +++ b/dita/README.md @@ -118,3 +118,9 @@ npm run update-dita-demo # copies the output into dita-dem ``` Then commit `dita-demo/`. CI's E2E tests and the PR previews use it. + +Without Oxygen, `npm run protect-dita-demo` applies the template's protection to the existing +`dita-demo/` output instead: it encodes answers and tolerances with the default key, adds the +`#qd-answer-key` and `#qd-question-total` spans, removes search and its index, and turns off +search autocomplete. It follows the template's rules (`scripts/protect-demo-output.js`), but it +is a stand-in: a real Oxygen publish is still the check that the template works. diff --git a/docs/MAINTAINERS.md b/docs/MAINTAINERS.md index 7474e97d..277fcefb 100644 --- a/docs/MAINTAINERS.md +++ b/docs/MAINTAINERS.md @@ -57,6 +57,7 @@ The demo pages load `dist/sonar-quiz.iife.js` and provide the hidden config span | Bundle size | `npm run build && npm run size-check` | CI, 100 KB gzip on the IIFE (raised from 40 KB by SRD 013) | | Accessibility | `tests/e2e/accessibility.spec.ts` (axe-core, WCAG 2.1 A/AA) | CI, part of E2E | | Oxygen template zip | `npm run package:template` | CI artifact on every PR; attached to each release. Content authors cannot run npm, so this zip is how they get the template with the script inside (`dita/README.md`) | +| Demo output without Oxygen | `npm run protect-dita-demo` | Manual: applies the template's answer encoding, question total and search removal to `dita-demo/` (`dita/README.md`) | | Published output | `npm run check:answer-leak -- dita/out/oxygen` | Manual, developer only: fails on plaintext answers before `update-dita-demo` | | E2E | `npm run test:e2e` and `npm run test:e2e:encrypted` | CI matrix | | Storybook build | `npm run build-storybook` | CI, on every push and PR | diff --git a/package.json b/package.json index 593f75ea..c971d70e 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "build:dita:encrypted": "npm run build:dita", "build:dita:plain": "npm run build && npm run copy-to-dita", "copy-to-dita": "cp dist/sonar-quiz.iife.* dita/template/resources/ && cp dist/sonar-quiz.iife.* dita-demo/oxygen-webhelp/template/resources/", + "protect-dita-demo": "node scripts/protect-demo-output.js dita-demo", "update-dita-demo": "rm -rf dita-demo && mkdir -p dita-demo && cp -r dita/out/oxygen/* dita-demo/ && rm -rf dita-demo/oxygen-webhelp/app/search/index", "typecheck": "tsc --noEmit", "preview": "vite preview", diff --git a/scripts/protect-demo-output.d.ts b/scripts/protect-demo-output.d.ts new file mode 100644 index 00000000..3d68d75c --- /dev/null +++ b/scripts/protect-demo-output.d.ts @@ -0,0 +1,16 @@ +/** Type declarations for scripts/protect-demo-output.js (used by its unit test). */ + +export const DEFAULT_KEY: string; + +export function encodeAnswer(value: string, key: string): string; + +export function countQuizRows(html: string): number; + +export function protectHtml(html: string, options: { key: string; total: string }): string; + +export function protectSearchPage(html: string): string; + +export function protectOutput( + outputDir: string, + options?: { key?: string }, +): { pages: number; questionTotal: number }; diff --git a/scripts/protect-demo-output.js b/scripts/protect-demo-output.js new file mode 100644 index 00000000..dce0de4d --- /dev/null +++ b/scripts/protect-demo-output.js @@ -0,0 +1,243 @@ +#!/usr/bin/env node + +/** + * Apply the Oxygen template's answer protection (SRD 013 WP3) to WebHelp output + * that was published before the template had it. + * + * This is a developer stand-in for republishing in Oxygen, used to bring + * dita-demo/ (the E2E fixture and PR preview) up to date without an Oxygen + * licence. It does what the template does, with the same rules: + * + * - each qd-quiz Answer cell, and each Detail cell holding only a number, is + * rewritten as "qd1:" + the keyed substitution of quizAnswerEncoding.xsl; + * - #qd-question-total and #qd-answer-key spans follow #qd-db-name, as + * customHeader.xsl writes them; + * - the search box, the search index and its scripts are removed, the + * search page shows the notice from wt_search.html, and search + * autocomplete is turned off, as f13ldMan-CSA.opt does. + * + * A real Oxygen publish replaces this. Content authors never run it. + * + * Usage: + * npm run protect-dita-demo + * node scripts/protect-demo-output.js [KEY] + */ + +import { readdirSync, readFileSync, writeFileSync, statSync, rmSync, existsSync } from 'fs'; +import { join, basename } from 'path'; +import { fileURLToPath } from 'url'; +import { SEARCH_INDEX_DIR } from './check-answer-leak.js'; + +const ALPHABET = '0123456789-+.'; +const PREFIX = 'qd1:'; +/** quizAnswerEncoding.xsl's built-in key, also the value in DITA_project_CSA.xpr */ +export const DEFAULT_KEY = 'KXMQBRTLHZWDP'; +const NUMERIC_ONLY = /^[0-9+\-.]+$/; +const SEARCH_NOTICE = '

Search is turned off for this publication.

'; + +/** + * Encode one answer as quizAnswerEncoding.xsl does. + * + * @param {string} value - Answer or tolerance text + * @param {string} key - 13 different capital letters + * @returns {string} "qd1:" + substituted value + */ +export function encodeAnswer(value, key) { + if (!/^[A-Z]{13}$/.test(key) || new Set(key).size !== 13) { + throw new Error(`Key must be 13 different capital letters A-Z, got "${key}"`); + } + const text = value.replace(/\s+/g, ' ').trim(); + if (!NUMERIC_ONLY.test(text)) { + throw new Error(`Quiz answer "${text}" may contain only digits, a sign and a decimal point`); + } + return PREFIX + [...text].map((ch) => key[ALPHABET.indexOf(ch)]).join(''); +} + +/** Each qd-quiz table in a page, as {start, end} source offsets. */ +function quizTables(html) { + const tables = []; + const open = /]*class="[^"]*\bqd-quiz\b[^"]*"[^>]*>/g; + let match; + while ((match = open.exec(html))) { + const end = html.indexOf('', match.index); + if (end === -1) break; + tables.push({ start: match.index, end: end + ''.length }); + open.lastIndex = end; + } + return tables; +} + +/** Body rows of one table's source. */ +function bodyRows(tableHtml) { + const tbody = tableHtml.match(/]*>([\s\S]*?)<\/tbody>/); + return tbody ? [...tbody[1].matchAll(/]*>[\s\S]*?<\/tr>/g)].map((m) => m[0]) : []; +} + +/** + * Number of quiz questions in one page. + * + * @param {string} html - Page source + * @returns {number} qd-quiz body rows + */ +export function countQuizRows(html) { + return quizTables(html).reduce((sum, t) => sum + bodyRows(html.slice(t.start, t.end)).length, 0); +} + +/** Encode the non-blank text between tags of a cell's inner HTML. */ +function encodeCellText(inner, key) { + return inner.replace(/(^|>)([^<]+)(?=<|$)/g, (whole, lead, text) => + text.trim() === '' || text.trim().startsWith(PREFIX) ? whole : lead + encodeAnswer(text, key), + ); +} + +/** Encode the Answer cell, and a numeric Detail cell, of one row. */ +function protectRow(row, key) { + let column = 0; + return row.replace(/(]*>)([\s\S]*?)(<\/td>)/g, (whole, open, inner, close) => { + column += 1; + const text = inner.trim(); + const numericDetail = column === 3 && !/]*>`, 'g'); + pattern.lastIndex = start; + let depth = 0; + let match; + while ((match = pattern.exec(html))) { + depth += match[1] ? -1 : 1; + if (depth === 0) return pattern.lastIndex; + } + return -1; +} + +/** Remove every
whose opening tag matches `opening`. */ +function removeDivs(html, opening) { + let out = html; + let match; + while ((match = opening.exec(out))) { + const end = elementEnd(out, match.index, 'div'); + if (end === -1) break; + out = out.slice(0, match.index) + out.slice(end); + opening.lastIndex = 0; + } + return out; +} + +/** Set or add a hidden config span directly after `after`. */ +function setSpan(html, id, value, after) { + const span = ``; + const existing = new RegExp(`]*>[^<]*`); + if (existing.test(html)) return html.replace(existing, span); + const anchor = html.match(after); + if (!anchor) return html; + const at = anchor.index + anchor[0].length; + return html.slice(0, at) + span + html.slice(at); +} + +/** + * Apply the template's protection to one page. + * + * @param {string} html - Page source + * @param {{key: string, total: string}} options - Answer key and question total + * @returns {string} Protected page source + */ +export function protectHtml(html, { key, total }) { + let out = html; + for (const table of quizTables(out).reverse()) { + const source = out.slice(table.start, table.end); + const protectedTable = source.replace(/]*>[\s\S]*?<\/tbody>/, (tbody) => + tbody.replace(/]*>[\s\S]*?<\/tr>/g, (row) => protectRow(row, key)), + ); + out = out.slice(0, table.start) + protectedTable + out.slice(table.end); + } + out = setSpan(out, 'qd-question-total', total, /]*>[^<]*<\/span>/); + out = setSpan(out, 'qd-answer-key', key, /]*>[^<]*<\/span>/); + out = removeDivs(out, /]*class="[^"]*\bwh_search_input\b[^"]*"[^>]*>/); + out = out.replace( + /[ \t]*]*src="[^"]*app\/search\/index\/[^"]*"[^>]*><\/script>\r?\n?/g, + '', + ); + return out; +} + +/** + * Replace the search page's results area with the template's notice. + * + * @param {string} html - search.html source + * @returns {string} Updated source + */ +export function protectSearchPage(html) { + const opening = /]*id="results"[^>]*>\s*
/.exec(html); + if (!opening) return html; + const rowStart = html.indexOf('
', opening.index); + const rowEnd = elementEnd(html, rowStart, 'div'); + if (rowEnd === -1) return html; + return `${html.slice(0, rowStart)}
\n ${SEARCH_NOTICE}\n
${html.slice(rowEnd)}`; +} + +/** + * Turn off search autocomplete, as the template's f13ldMan-CSA.opt does: its + * script throws on every page once the search box is gone. + */ +function disableAutocomplete(propertiesFile) { + if (!existsSync(propertiesFile)) return; + const source = readFileSync(propertiesFile, 'utf8'); + const out = source.replace(/("webhelp\.enable\.search\.autocomplete"\s*:\s*)"[^"]*"/, '$1"no"'); + if (out !== source) writeFileSync(propertiesFile, out); +} + +/** Every .html file under a directory. */ +function htmlFiles(dir) { + const out = []; + for (const name of readdirSync(dir)) { + const path = join(dir, name); + if (statSync(path).isDirectory()) out.push(...htmlFiles(path)); + else if (name.endsWith('.html')) out.push(path); + } + return out; +} + +/** + * Protect a whole WebHelp output folder in place. + * + * @param {string} outputDir - Published output folder + * @param {{key?: string}} [options] - Answer key (default: the template's) + * @returns {{pages: number, questionTotal: number}} Pages written and question total + */ +export function protectOutput(outputDir, { key = DEFAULT_KEY } = {}) { + const files = htmlFiles(outputDir); + const sources = new Map(files.map((file) => [file, readFileSync(file, 'utf8')])); + const questionTotal = [...sources.values()].reduce((sum, html) => sum + countQuizRows(html), 0); + const total = questionTotal > 0 ? String(questionTotal) : ''; + for (const [file, html] of sources) { + let out = protectHtml(html, { key, total }); + if (basename(file) === 'search.html') out = protectSearchPage(out); + if (out !== html) writeFileSync(file, out); + } + rmSync(join(outputDir, SEARCH_INDEX_DIR), { recursive: true, force: true }); + disableAutocomplete(join(outputDir, 'oxygen-webhelp', 'app', 'options', 'properties.js')); + return { pages: files.length, questionTotal }; +} + +function main() { + const [outputDir, key = DEFAULT_KEY] = process.argv.slice(2); + if (!outputDir) { + console.error('Usage: node scripts/protect-demo-output.js [KEY]'); + process.exit(2); + } + const { pages, questionTotal } = protectOutput(outputDir, { key }); + console.log(`Protected ${pages} page(s); question total ${questionTotal}`); +} + +if (process.argv[1] && fileURLToPath(import.meta.url) === process.argv[1]) { + main(); +} diff --git a/tests/unit/scripts/protect-demo-output.test.ts b/tests/unit/scripts/protect-demo-output.test.ts new file mode 100644 index 00000000..ed2481d0 --- /dev/null +++ b/tests/unit/scripts/protect-demo-output.test.ts @@ -0,0 +1,139 @@ +/** + * Unit tests for the developer stand-in that applies the Oxygen template's + * answer protection (SRD 013 WP3) to already-published demo output. + */ + +import { describe, it, expect, afterEach } from 'vitest'; +import { mkdtempSync, mkdirSync, writeFileSync, readFileSync, rmSync, existsSync } from 'fs'; +import { tmpdir } from 'os'; +import { join } from 'path'; +import { + encodeAnswer, + countQuizRows, + protectHtml, + protectSearchPage, + protectOutput, + DEFAULT_KEY, +} from '../../../scripts/protect-demo-output.js'; +import { findLeaksInHtml, SEARCH_INDEX_DIR } from '../../../scripts/check-answer-leak.js'; +import { decodeAnswer } from '../../../src/services/answer-encoding'; + +const KEY = 'KXMQBRTLHZWDP'; + +const header = ``; + +const quizPage = ` + + +${header} + + + + + + + + +
QuestionAnswerDetail
MCQ?3
  1. One 12
  2. Two
  3. Three
Numeric?-1.50.5
+
Not a quiz427
+`; + +describe('protect-demo-output', () => { + let dir = ''; + afterEach(() => { + if (dir) rmSync(dir, { recursive: true, force: true }); + }); + + it('encodes like quizAnswerEncoding.xsl and decodes with the runtime', () => { + expect(encodeAnswer('1500', KEY)).toBe('qd1:XRKK'); + expect(encodeAnswer(' -1.5 ', KEY)).toBe('qd1:WXPR'); + expect(decodeAnswer(encodeAnswer('-1.5', KEY), KEY)).toBe('-1.5'); + expect(DEFAULT_KEY).toBe(KEY); + }); + + it('refuses an answer or key the encoding cannot handle', () => { + expect(() => encodeAnswer('15 kHz', KEY)).toThrow(/15 kHz/); + expect(() => encodeAnswer('1', 'ABC')).toThrow(/13 different capital letters/); + expect(() => encodeAnswer('1', 'AAAAAAAAAAAAA')).toThrow(/13 different capital letters/); + }); + + it('counts quiz rows only', () => { + expect(countQuizRows(quizPage)).toBe(2); + expect( + countQuizRows('
x
'), + ).toBe(0); + }); + + it('encodes answers and tolerances, leaving MCQ options and other tables alone', () => { + const out = protectHtml(quizPage, { key: KEY, total: '2' }); + expect(findLeaksInHtml(out)).toEqual([]); + expect(out).toContain('qd1:Q'); + expect(out).toContain('qd1:WXPR'); + expect(out).toContain('qd1:KPR'); + expect(out).toContain('
  • One 12
  • '); + expect(out).toContain('427'); + }); + + it('writes the key and total spans after the db-name span, once', () => { + const once = protectHtml(quizPage, { key: KEY, total: '2' }); + const twice = protectHtml(once, { key: KEY, total: '2' }); + for (const out of [once, twice]) { + expect(out.match(/id="qd-answer-key"/g)).toHaveLength(1); + expect(out).toContain( + '' + + '' + + ``, + ); + } + expect(twice).toContain('qd1:Q'); + expect(twice).not.toContain('qd1:qd1:'); + }); + + it('removes the search box and search index scripts', () => { + const out = protectHtml(quizPage, { key: KEY, total: '2' }); + expect(out).not.toContain('wh_search_input'); + expect(out).not.toContain('textToSearch'); + expect(out).not.toContain('search/index/'); + expect(out).toContain('app/options/properties.js'); + expect(out).toContain(''); + }); + + it('replaces search results with the notice the template renders', () => { + const search = `
    +
    +
    x
    +
    +
    f
    `; + const out = protectSearchPage(search); + expect(out).not.toContain('searchResults'); + expect(out).toContain('

    Search is turned off for this publication.

    '); + expect(out).toContain('
    f
    '); + }); + + it('protects a whole output folder and deletes the search index', () => { + dir = mkdtempSync(join(tmpdir(), 'qd-protect-')); + mkdirSync(join(dir, 'Pages')); + mkdirSync(join(dir, SEARCH_INDEX_DIR), { recursive: true }); + writeFileSync(join(dir, SEARCH_INDEX_DIR, 'index-1.js'), 'var x = "1500";'); + writeFileSync(join(dir, 'Pages', 'quiz.html'), quizPage); + writeFileSync(join(dir, 'Pages', 'quiz2.html'), quizPage); + writeFileSync(join(dir, 'index.html'), `${header}`); + mkdirSync(join(dir, 'oxygen-webhelp', 'app', 'options'), { recursive: true }); + const properties = join(dir, 'oxygen-webhelp', 'app', 'options', 'properties.js'); + writeFileSync(properties, '{ "webhelp.enable.search.autocomplete" : "true",\n "x" : "true" }'); + + const result = protectOutput(dir, { key: KEY }); + + expect(result).toEqual({ pages: 3, questionTotal: 4 }); + expect(existsSync(join(dir, SEARCH_INDEX_DIR))).toBe(false); + const home = readFileSync(join(dir, 'index.html'), 'utf8'); + expect(home).toContain(''); + expect(findLeaksInHtml(readFileSync(join(dir, 'Pages', 'quiz.html'), 'utf8'))).toEqual([]); + expect(readFileSync(properties, 'utf8')).toBe( + '{ "webhelp.enable.search.autocomplete" : "no",\n "x" : "true" }', + ); + }); +}); From 7ec9b4905fecfffa8990a5df9ccd56a5825847ac Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 1 Nov 2026 10:18:12 +0000 Subject: [PATCH 3/4] chore(demo): regenerate dita-demo with encoded answers and no search Ran npm run protect-dita-demo: 37 questions across 21 pages, default key, search index deleted. check:answer-leak passes on dita-demo. The committed bundle is the current release build (npm run build:dita); the old one could not decode qd1: values when the demo is opened from a checkout. The DITA flow E2E tests now expect "0 of 37 answered", since the demo publishes its question total (SCO-05). Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_019erPampkiqiri3Gab6oSHB --- dita-demo/Introduction/background.html | 5 +- dita-demo/Introduction/feedback.html | 5 +- dita-demo/Introduction/security.html | 5 +- dita-demo/Introduction/seven-questions.html | 5 +- dita-demo/Pages/SubjectDetail.html | 5 +- dita-demo/Pages/analysis-contact.html | 15 +- dita-demo/Pages/analysis-tactical.html | 11 +- dita-demo/Pages/gram-1.html | 13 +- dita-demo/Pages/gram-2.html | 13 +- dita-demo/Pages/gram-3.html | 13 +- dita-demo/Pages/gramless-1.html | 15 +- dita-demo/Pages/gramless-2.html | 17 +- dita-demo/Pages/quiz-mcq.html | 15 +- dita-demo/Pages/quiz-mixed.html | 25 +- dita-demo/Pages/quiz-numeric.html | 29 +- dita-demo/index.html | 5 +- dita-demo/indexTerms.html | 3 +- .../oxygen-webhelp/app/options/properties.js | 2 +- .../app/search/index/htmlFileInfoList.js | 1 - .../app/search/index/index-1.js | 2 - .../app/search/index/index-2.js | 2 - .../app/search/index/index-3.js | 2 - .../oxygen-webhelp/app/search/index/index.js | 22 - .../app/search/index/keywords.js | 24 - .../app/search/index/link-to-parent.js | 2 - .../app/search/index/stopwords.js | 2 - .../template/resources/sonar-quiz.iife.js | 1330 ++++++++++------- .../template/resources/sonar-quiz.iife.js.map | 2 +- dita-demo/page-index.html | 5 +- dita-demo/search.html | 46 +- dita-demo/welcome.html | 5 +- .../workflows/dita-instructor-flow.spec.ts | 2 +- tests/e2e/workflows/dita-student-flow.spec.ts | 4 +- 33 files changed, 866 insertions(+), 786 deletions(-) delete mode 100644 dita-demo/oxygen-webhelp/app/search/index/htmlFileInfoList.js delete mode 100644 dita-demo/oxygen-webhelp/app/search/index/index-1.js delete mode 100644 dita-demo/oxygen-webhelp/app/search/index/index-2.js delete mode 100644 dita-demo/oxygen-webhelp/app/search/index/index-3.js delete mode 100644 dita-demo/oxygen-webhelp/app/search/index/index.js delete mode 100644 dita-demo/oxygen-webhelp/app/search/index/keywords.js delete mode 100644 dita-demo/oxygen-webhelp/app/search/index/link-to-parent.js delete mode 100644 dita-demo/oxygen-webhelp/app/search/index/stopwords.js diff --git a/dita-demo/Introduction/background.html b/dita-demo/Introduction/background.html index 82167e10..69d71cc4 100644 --- a/dita-demo/Introduction/background.html +++ b/dita-demo/Introduction/background.html @@ -7,7 +7,6 @@ - @@ -43,7 +42,7 @@
    - +
    - + diff --git a/dita-demo/Introduction/feedback.html b/dita-demo/Introduction/feedback.html index 5633b025..574ade1d 100644 --- a/dita-demo/Introduction/feedback.html +++ b/dita-demo/Introduction/feedback.html @@ -7,7 +7,6 @@ - @@ -43,7 +42,7 @@ - + - + diff --git a/dita-demo/Introduction/security.html b/dita-demo/Introduction/security.html index e020c41c..2ca4919e 100644 --- a/dita-demo/Introduction/security.html +++ b/dita-demo/Introduction/security.html @@ -7,7 +7,6 @@ - @@ -43,7 +42,7 @@ - + - + diff --git a/dita-demo/Introduction/seven-questions.html b/dita-demo/Introduction/seven-questions.html index 2b62ec71..c41e74ef 100644 --- a/dita-demo/Introduction/seven-questions.html +++ b/dita-demo/Introduction/seven-questions.html @@ -7,7 +7,6 @@ - @@ -43,7 +42,7 @@ - + - + diff --git a/dita-demo/Pages/SubjectDetail.html b/dita-demo/Pages/SubjectDetail.html index 0e45a0ea..70ec7dfe 100644 --- a/dita-demo/Pages/SubjectDetail.html +++ b/dita-demo/Pages/SubjectDetail.html @@ -6,7 +6,6 @@ - @@ -42,7 +41,7 @@ - + - + diff --git a/dita-demo/Pages/analysis-contact.html b/dita-demo/Pages/analysis-contact.html index a6dc4ad3..bd221dd0 100644 --- a/dita-demo/Pages/analysis-contact.html +++ b/dita-demo/Pages/analysis-contact.html @@ -6,7 +6,6 @@ - @@ -42,7 +41,7 @@ - + - + @@ -143,11 +142,11 @@

    Contact Classific Detail How many contacts did you classify as merchant vessels? - 2 - 0.5 + qd1:M + qd1:KPR Which contact has the highest confidence level? - 1 + qd1:X
    1. C-001
    2. @@ -158,8 +157,8 @@

      Contact Classific What is the bearing of the contact classified as submarine? - 270 - 5 + qd1:MLK + qd1:R diff --git a/dita-demo/Pages/analysis-tactical.html b/dita-demo/Pages/analysis-tactical.html index 5ec70559..8255cfda 100644 --- a/dita-demo/Pages/analysis-tactical.html +++ b/dita-demo/Pages/analysis-tactical.html @@ -6,7 +6,6 @@ - @@ -42,7 +41,7 @@ - + - + @@ -131,7 +130,7 @@

      Tactical Decision Detail What threat level did you assign? - 2 + qd1:M
      1. Low
      2. @@ -142,8 +141,8 @@

        Tactical Decision What is your recommended course change in degrees? - 45 - 10 + qd1:BR + qd1:XK diff --git a/dita-demo/Pages/gram-1.html b/dita-demo/Pages/gram-1.html index 5a0413d3..52b20650 100644 --- a/dita-demo/Pages/gram-1.html +++ b/dita-demo/Pages/gram-1.html @@ -6,7 +6,6 @@ - @@ -42,7 +41,7 @@ - + - + @@ -154,12 +153,12 @@

        Gram Analysis 1Options What is the maximum temperature reached - 22 - 4 + qd1:MM + qd1:B How many seconds was the peak level observed for? - 6 - 1 + qd1:T + qd1:X diff --git a/dita-demo/Pages/gram-2.html b/dita-demo/Pages/gram-2.html index bec94e46..0a85db52 100644 --- a/dita-demo/Pages/gram-2.html +++ b/dita-demo/Pages/gram-2.html @@ -6,7 +6,6 @@ - @@ -42,7 +41,7 @@ - + - + @@ -154,12 +153,12 @@

        Gram Analysis 2Options What is the maximum temperature reached - 22 - 4 + qd1:MM + qd1:B How many seconds was the peak level observed for? - 6 - 1 + qd1:T + qd1:X diff --git a/dita-demo/Pages/gram-3.html b/dita-demo/Pages/gram-3.html index 31fe5f0d..f5934f82 100644 --- a/dita-demo/Pages/gram-3.html +++ b/dita-demo/Pages/gram-3.html @@ -6,7 +6,6 @@ - @@ -42,7 +41,7 @@ - + - + @@ -181,12 +180,12 @@

        Gram Analysis 3Options What is the maximum temperature reached - 22 - 4 + qd1:MM + qd1:B How many seconds was the peak level observed for? - 6 - 1 + qd1:T + qd1:X diff --git a/dita-demo/Pages/gramless-1.html b/dita-demo/Pages/gramless-1.html index 524f2218..d47a500d 100644 --- a/dita-demo/Pages/gramless-1.html +++ b/dita-demo/Pages/gramless-1.html @@ -6,7 +6,6 @@ - @@ -42,7 +41,7 @@ - + - + @@ -106,7 +105,7 @@

        Gramless Analysis Detail Have you considered depth effects on sound propagation? - 1 + qd1:X
        1. Yes, depth creates pressure gradients affecting speed of sound
        2. @@ -117,7 +116,7 @@

          Gramless Analysis Have you considered height of the transducer array? - 1 + qd1:X
          1. Yes, transducer height affects beam geometry and coverage
          2. @@ -128,7 +127,7 @@

            Gramless Analysis Have you considered weather and sea state conditions? - 1 + qd1:X
            1. Yes, weather affects surface noise and propagation paths
            2. @@ -139,8 +138,8 @@

              Gramless Analysis What is the typical thermocline depth in these waters (in meters)? - 50 - 15 + qd1:RK + qd1:XR diff --git a/dita-demo/Pages/gramless-2.html b/dita-demo/Pages/gramless-2.html index fc8f011a..5f2b89d7 100644 --- a/dita-demo/Pages/gramless-2.html +++ b/dita-demo/Pages/gramless-2.html @@ -6,7 +6,6 @@ - @@ -42,7 +41,7 @@ - + - + @@ -106,11 +105,11 @@

              Gramless Analysis Detail What is the optimal operating frequency (in kHz) for this scenario? - 5 - 1 + qd1:R + qd1:X Which sonar mode is most appropriate for this environment? - 1 + qd1:X
              1. Active search mode with medium pulse length
              2. @@ -121,11 +120,11 @@

                Gramless Analysis What is the expected maximum detection range (in meters)? - 5000 - 500 + qd1:RKKK + qd1:RKK Should you adjust power levels for ambient noise? - 1 + qd1:X
                1. Yes, increase power to overcome background noise
                2. diff --git a/dita-demo/Pages/quiz-mcq.html b/dita-demo/Pages/quiz-mcq.html index 5b621c6b..f7f7a1bf 100644 --- a/dita-demo/Pages/quiz-mcq.html +++ b/dita-demo/Pages/quiz-mcq.html @@ -6,7 +6,6 @@ - @@ -42,7 +41,7 @@ - + - + @@ -106,7 +105,7 @@

                  MCQ Questions Onl Options What does SONAR stand for? - 1 + qd1:X
                  1. Sound Navigation And Ranging
                  2. @@ -117,7 +116,7 @@

                    MCQ Questions Onl Which maritime force first developed practical sonar? - 3 + qd1:Q
                    1. United States Navy
                    2. @@ -128,7 +127,7 @@

                      MCQ Questions Onl What environmental factor most affects sonar performance? - 1 + qd1:X
                      1. Water temperature and salinity
                      2. @@ -139,7 +138,7 @@

                        MCQ Questions Onl Which type of sonar uses reflections to detect objects? - 1 + qd1:X
                        1. Active sonar
                        2. @@ -150,7 +149,7 @@

                          MCQ Questions Onl What is the primary function of a sonar transducer? - 2 + qd1:M
                          1. Amplify electrical signals
                          2. diff --git a/dita-demo/Pages/quiz-mixed.html b/dita-demo/Pages/quiz-mixed.html index c25bdf37..461c4053 100644 --- a/dita-demo/Pages/quiz-mixed.html +++ b/dita-demo/Pages/quiz-mixed.html @@ -6,7 +6,6 @@ - @@ -42,7 +41,7 @@ - + - + @@ -106,7 +105,7 @@

                            Mixed Quiz Questi Detail What is the primary function of a sonar system? - 3 + qd1:Q
                            1. To navigate using stars
                            2. @@ -117,11 +116,11 @@

                              Mixed Quiz Questi At what frequency (in kHz) does a typical hull-mounted sonar operate? - 5 - 0.5 + qd1:R + qd1:KPR Which type of sonar uses reflections to detect objects? - 1 + qd1:X
                              1. Active sonar
                              2. @@ -132,11 +131,11 @@

                                Mixed Quiz Questi What is the speed of sound in seawater (in m/s)? - 1500 - 50 + qd1:XRKK + qd1:RK Which component converts electrical signals into sound waves? - 2 + qd1:M
                                1. Receiver
                                2. @@ -147,11 +146,11 @@

                                  Mixed Quiz Questi What is the typical detection range (in nautical miles) for towed array sonar? - 20 - 5 + qd1:MK + qd1:R What causes the thermocline effect in sonar propagation? - 2 + qd1:M
                                  1. Changes in salinity
                                  2. diff --git a/dita-demo/Pages/quiz-numeric.html b/dita-demo/Pages/quiz-numeric.html index 17cd3c98..eab65814 100644 --- a/dita-demo/Pages/quiz-numeric.html +++ b/dita-demo/Pages/quiz-numeric.html @@ -6,7 +6,6 @@ - @@ -42,7 +41,7 @@ - + - + @@ -106,28 +105,28 @@

                                    Numeric Questions Tolerance (±) What is the typical beam width (in degrees) for a narrow-beam sonar? - 15 - 2 + qd1:XR + qd1:M What is the maximum detection range (in meters) for a standard hull-mounted sonar? - 5000 - 500 + qd1:RKKK + qd1:RKK What pulse length (in milliseconds) is typical for a medium-range sonar? - 10 - 2 + qd1:XK + qd1:M At what depth (in meters) does the thermocline typically occur in temperate waters? - 50 - 10 + qd1:RK + qd1:XK What is the speed of sound in seawater (in m/s)? - 1500 - 50 + qd1:XRKK + qd1:RK At what frequency (in kHz) does a typical hull-mounted sonar operate? - 5 - 0.5 + qd1:R + qd1:KPR diff --git a/dita-demo/index.html b/dita-demo/index.html index f64c2aad..2d8eba76 100644 --- a/dita-demo/index.html +++ b/dita-demo/index.html @@ -10,7 +10,6 @@ - @@ -48,7 +47,7 @@ - + - + diff --git a/dita-demo/indexTerms.html b/dita-demo/indexTerms.html index fc95d30c..e411a69e 100644 --- a/dita-demo/indexTerms.html +++ b/dita-demo/indexTerms.html @@ -11,7 +11,6 @@ - @@ -48,7 +47,7 @@ - + - `}renderSuccess(){return ne` + `}renderSuccess(){return Qt`
                                    Migration completed successfully!
                                    @@ -561,177 +941,11 @@ const tn=2;class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,n,s){
                                    -
                                    - -
                                    -
                                    - `}};Sn.styles=wt` - :host { - display: contents; - } - - .migration-content { - display: flex; - flex-direction: column; - gap: 16px; - padding: 8px 0; - } - - .warning-banner { - display: flex; - align-items: flex-start; - gap: 12px; - padding: 12px; - background: #fff3cd; - border-radius: 4px; - border-left: 4px solid #ffc107; - } - - .warning-icon { - font-size: 20px; - line-height: 1; - } - - .warning-text { - flex: 1; - } - - .warning-text strong { - display: block; - margin-bottom: 4px; - color: #856404; - } - - .format-info { - font-size: 13px; - color: #666; - } - - .format-row { - display: flex; - gap: 8px; - margin: 4px 0; - } - - .format-label { - font-weight: 500; - min-width: 100px; - } - - .format-value { - font-family: monospace; - background: #f5f5f5; - padding: 2px 6px; - border-radius: 3px; - } - - .form-field { - display: flex; - flex-direction: column; - gap: 4px; - } - - label { - font-size: 13px; - font-weight: 500; - color: #333; - } - - input[type='password'] { - padding: 8px 12px; - border: 1px solid #ccc; - border-radius: 4px; - font-size: 14px; - width: 100%; - box-sizing: border-box; - } - - input[type='password']:focus { - outline: none; - border-color: #0066cc; - box-shadow: 0 0 0 2px rgba(0, 102, 204, 0.1); - } - - .error-message { - color: #d32f2f; - font-size: 12px; - padding: 8px; - background: #ffebee; - border-radius: 4px; - border-left: 3px solid #d32f2f; - } - - .success-message { - color: #2e7d32; - font-size: 13px; - padding: 12px; - background: #e8f5e9; - border-radius: 4px; - border-left: 3px solid #4caf50; - } - - .migrating-state { - text-align: center; - padding: 20px; - } - - .spinner { - display: inline-block; - width: 24px; - height: 24px; - border: 3px solid #e0e0e0; - border-top-color: #0066cc; - border-radius: 50%; - animation: spin 1s linear infinite; - margin-bottom: 12px; - } - - @keyframes spin { - to { - transform: rotate(360deg); - } - } - - .button-row { - display: flex; - gap: 8px; - justify-content: flex-end; - margin-top: 8px; - } - - button { - padding: 8px 16px; - border: none; - border-radius: 4px; - font-size: 13px; - font-weight: 500; - cursor: pointer; - transition: background-color 0.2s; - } - - button:disabled { - opacity: 0.6; - cursor: not-allowed; - } - - button.primary { - background: #0066cc; - color: white; - } - - button.primary:hover:not(:disabled) { - background: #0052a3; - } - - button.secondary { - background: #e0e0e0; - color: #333; - } - - button.secondary:hover:not(:disabled) { - background: #d0d0d0; - } - `,wn([ye({type:Boolean,reflect:!0})],Sn.prototype,"open",2),wn([ye({type:String})],Sn.prototype,"expected",2),wn([ye({type:String})],Sn.prototype,"found",2),wn([ye({type:String})],Sn.prototype,"dbName",2),wn([ye({type:String})],Sn.prototype,"releaseId",2),wn([ve()],Sn.prototype,"dialogState",2),wn([ve()],Sn.prototype,"password",2),wn([ve()],Sn.prototype,"error",2),wn([ve()],Sn.prototype,"migrationResult",2),wn([we('input[type="password"]')],Sn.prototype,"passwordInput",2),Sn=wn([me("qd-migration-dialog")],Sn);const xn={login:{title:"Login Help",body:'

                                    Enter Name and Service ID to log in. Provide a new PIN if this is your first visit to this release of this document, otherwise use the PIN you previously created. Your instructor is able to reset PINs. See the Feedback page for more support.

                                    Instructors: click "Instructor" for instructor login page (password accompanies distribution).

                                    '},status:{title:"Student View",body:'

                                    Page color coding:

                                    • Green=All correct
                                    • Amber=Some answered
                                    • Red=None yet

                                    You can view your overall progress at attempted questions in the Test Progress panel.

                                    '},instructor:{title:"Instructor Tools",body:"

                                    • Show current answers: Toggle for display of student answers for the current page.
                                    • View All Scores: View table scores for all students.
                                    • Reset PIN: Reset student PINs.
                                    • Export CSV: CSV download of all scores/answers.
                                    • Erase All Data: Clear all stored student data.

                                    "}};function En(t){return xn[t]}var Cn=Object.defineProperty,$n=Object.getOwnPropertyDescriptor,In=(t,n,s,o)=>{for(var r,a=o>1?void 0:o?$n(n,s):n,c=t.length-1;c>=0;c--)(r=t[c])&&(a=(o?r(n,s,a):r(a))||a);return o&&a&&Cn(n,s,a),a};let qn=class extends pe{constructor(){super(...arguments),this.title="Sonar Quiz System",this.name="",this.serviceId="",this.showInstructorModal=!1,this.instructorError="",this.errorMessage="",this.isSubmitting=!1,this.pin="",this.lockoutSeconds=0,this.showPinConfirmation=!1,this.helpOpen=!1,this.showMigrationDialog=!1,this.migrationError=null,this.pendingLoginData=null,this.lockoutInterval=null,this.handleLogoutEvent=()=>{this.name="",this.serviceId="",this.errorMessage="",this.isSubmitting=!1,this.showInstructorModal=!1,this.instructorError="",this.pin="",this.lockoutSeconds=0,this.showPinConfirmation=!1,this.helpOpen=!1,this.lockoutInterval&&(clearInterval(this.lockoutInterval),this.lockoutInterval=null),this.updateVisibility()},this.handleHelpOpen=()=>{this.helpOpen=!0},this.handleHelpClose=()=>{this.helpOpen=!1},this.handleInstructorPasswordSubmit=t=>{this.handleInstructorLogin(t.detail.password)},this.handleInstructorModalClose=()=>{this.showInstructorModal=!1,this.instructorError=""},this.handlePinConfirmationDismiss=()=>{this.showPinConfirmation=!1},this.handleMigrationComplete=()=>{if(this.showMigrationDialog=!1,this.migrationError=null,this.pendingLoginData){const{serviceId:t,name:n,release:s}=this.pendingLoginData;this.pendingLoginData=null,this.retryLoginAfterMigration(t,n,s)}},this.handleMigrationCancel=()=>{this.showMigrationDialog=!1,this.migrationError=null,this.pendingLoginData=null,this.errorMessage="Data migration cancelled. Please contact your instructor for assistance.",this.isSubmitting=!1}}connectedCallback(){super.connectedCallback(),this.updateVisibility(),document.addEventListener("qd:logout",this.handleLogoutEvent)}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("qd:logout",this.handleLogoutEvent),this.lockoutInterval&&(clearInterval(this.lockoutInterval),this.lockoutInterval=null)}firstUpdated(){this.setAttribute("data-ready","")}updateVisibility(){C(u.SESSION)?this.removeAttribute("data-show"):this.setAttribute("data-show","")}render(){return ne` +
                                    + +
                                    + + `}};Rs.styles=[Ps],_s([cn({type:Boolean,reflect:!0})],Rs.prototype,"open",2),_s([cn({type:String})],Rs.prototype,"expected",2),_s([cn({type:String})],Rs.prototype,"found",2),_s([cn({type:String})],Rs.prototype,"dbName",2),_s([cn({type:String})],Rs.prototype,"releaseId",2),_s([ln()],Rs.prototype,"dialogState",2),_s([ln()],Rs.prototype,"password",2),_s([ln()],Rs.prototype,"error",2),_s([ln()],Rs.prototype,"migrationResult",2),_s([un('input[type="password"]')],Rs.prototype,"passwordInput",2),Rs=_s([on("qd-migration-dialog")],Rs);const zs={login:{title:"Login Help",body:'

                                    Enter Name and Service ID to log in. Provide a new 4-digit PIN if this is your first visit to this release of this document, otherwise use the PIN you previously created. Your instructor is able to reset PINs. See the Feedback page for more support.

                                    Instructors: click "Instructor" for instructor login page (password accompanies distribution).

                                    '},status:{title:"Student View",body:'

                                    Page badges in the contents:

                                    • Green: every question on the page answered correctly
                                    • Amber: started, with some questions unanswered or incorrect
                                    • Red: not started

                                    On a quiz page, each answer shows ✓ Correct or ✗ Incorrect. You can change an answer at any time.

                                    The Test progress panel counts the questions you have answered and how many are correct.

                                    '},instructor:{title:"Instructor Tools",body:"

                                    • Show current answers: Toggle for display of student answers for the current page.
                                    • View All Scores: View table scores for all students.
                                    • Reset PIN: Reset student PINs.
                                    • Export CSV: CSV download of all scores/answers.
                                    • Erase All Data: Clear all stored student data.

                                    "}};function Ms(t){return zs[t]}var Us=Object.defineProperty,js=Object.getOwnPropertyDescriptor,Hs=(t,n,s,r)=>{for(var o,a=r>1?void 0:r?js(n,s):n,d=t.length-1;d>=0;d--)(o=t[d])&&(a=(r?o(n,s,a):o(a))||a);return r&&a&&Us(n,s,a),a};let Bs=class extends sn{constructor(){super(...arguments),this.title="Sonar Quiz System",this.name="",this.serviceId="",this.errorMessage="",this.isSubmitting=!1,this.pin="",this.lockoutUntil=0,this.touched=new Set,this.isRegistered=null,this.pendingPin="",this.helpOpen=!1,this.sessionNotice="",this.showMigrationDialog=!1,this.migrationError=null,this.pendingLoginData=null,this.authService=new AuthService,this.handleLoginEvent=()=>{this.sessionNotice="",this.updateVisibility()},this.handleLogoutEvent=()=>{this.name="",this.serviceId="",this.errorMessage="",this.isSubmitting=!1,this.pin="",this.lockoutUntil=0,this.touched=new Set,this.helpOpen=!1,this.isRegistered=null,this.pendingPin="",this.takeSessionExpiredNotice(),this.updateVisibility()},this.handleLockoutExpired=()=>{this.lockoutUntil=0},this.handleHelpOpen=()=>{this.helpOpen=!0},this.handleHelpClose=()=>{this.helpOpen=!1},this.handleMigrationComplete=()=>{if(this.showMigrationDialog=!1,this.migrationError=null,this.pendingLoginData){const{serviceId:t,name:n,release:s}=this.pendingLoginData;this.pendingLoginData=null,this.retryLoginAfterMigration(t,n,s)}},this.handleMigrationCancel=()=>{this.showMigrationDialog=!1,this.migrationError=null,this.pendingLoginData=null,this.errorMessage="Data migration cancelled. Please contact your instructor for assistance.",this.isSubmitting=!1}}connectedCallback(){super.connectedCallback(),this.updateVisibility(),this.takeSessionExpiredNotice(),document.addEventListener("qd:logout",this.handleLogoutEvent),document.addEventListener("qd:login",this.handleLoginEvent)}disconnectedCallback(){super.disconnectedCallback(),window.clearTimeout(this.registrationTimer),document.removeEventListener("qd:logout",this.handleLogoutEvent),document.removeEventListener("qd:login",this.handleLoginEvent)}takeSessionExpiredNotice(){if(null===sessionStorage.getItem(G.SESSION_EXPIRED))return;sessionStorage.removeItem(G.SESSION_EXPIRED);const t=Math.round(10);this.sessionNotice=`Your session ended after ${t} minutes without activity. Log in again to continue.`}firstUpdated(){this.setAttribute("data-ready","")}updateVisibility(){this.toggleAttribute("data-show",!le()&&!ue())}isLockedOut(){return this.lockoutUntil>Date.now()}render(){return Qt` - - - - - - - `}handleNameInput(t){const n=t.target;this.name=n.value,this.errorMessage=""}handleServiceIdInput(t){const n=t.target;this.serviceId=n.value,this.errorMessage=""}handlePinInput(t){const n=t.target;this.pin=function(t){return t.replace(/\D/g,"")}(n.value),this.errorMessage=""}isValid(){return 0===function(t,n,s){const o=[];t&&""!==t.trim()||o.push("Name required"),n?/^[a-zA-Z0-9]{2,10}$/.test(n)||o.push("Service ID must be 2-10 alphanumeric characters"):o.push("Service ID required");s?/^\d{4}$/.test(s)||o.push("PIN must be exactly 4 digits"):o.push("PIN required");return o}(this.name,this.serviceId,this.pin).length}getRelease(){const t=document.getElementById($e),n=t?.textContent?.trim()||".wh_publication_title .title",s=document.querySelector(n);return s?.textContent?.trim()||""}async handleStudentLogin(t){if(t.preventDefault(),this.isValid()){this.isSubmitting=!0,this.errorMessage="";try{const t=this.getRelease();if(!t)return this.errorMessage="Release not found (missing publication title element)",void(this.isSubmitting=!1);const n=this.serviceId.trim(),s=this.name.trim(),o=Re(n);if(o.isLocked)return this.startLockoutCountdown(o.remainingMs),void(this.isSubmitting=!1);const r=document.getElementById(qe);if(!r?.textContent?.trim())throw new Error(`Database name not configured. Add dbName to page.`);const a=J(r.textContent.trim());await a.init();const c=await a.getStudent(t,n);if(!c){const o=await _e(this.pin),r={schema:2,docId:"",release:t,serviceId:n,name:s,attempted:0,correct:0,updated:(new Date).toISOString(),pages:{},pinHash:o,pinCreatedAt:(new Date).toISOString()};return await a.saveStudent(r),this.dispatchEvent(new CustomEvent("qd:pin-created",{detail:{serviceId:n,timestamp:(new Date).toISOString()},bubbles:!0,composed:!0})),this.showPinStoredConfirmation(),void this.completeLogin(n,s,t)}if(Oe(c)||!Te(c)){const o=Pe(c,await _e(this.pin));return await a.saveStudent(o),this.dispatchEvent(new CustomEvent("qd:pin-created",{detail:{serviceId:n,timestamp:(new Date).toISOString()},bubbles:!0,composed:!0})),this.showPinStoredConfirmation(),void this.completeLogin(n,s,t)}if(!(await Ne(this.pin,c.pinHash||""))){const t=Me(n),s=He(n);if(t.lockoutUntil){const n=new Date(t.lockoutUntil).getTime()-Date.now();this.startLockoutCountdown(n)}else this.errorMessage=`Incorrect PIN. ${s} attempt${1!==s?"s":""} remaining`;return this.pin="",void(this.isSubmitting=!1)}ze(n),this.dispatchEvent(new CustomEvent("qd:pin-verified",{detail:{serviceId:n,timestamp:(new Date).toISOString()},bubbles:!0,composed:!0}));this.completeLogin(n,s,t)}catch(n){if(n instanceof StorageFormatError){const t=document.getElementById(qe),s=t?.textContent?.trim()||"";return this.migrationError=n,this.pendingLoginData={serviceId:this.serviceId.trim(),name:this.name.trim(),release:this.getRelease(),pin:this.pin,dbName:s},this.showMigrationDialog=!0,void(this.isSubmitting=!1)}this.errorMessage="Login failed. Please try again.",console.error("Student login error:",n),this.isSubmitting=!1}}else this.errorMessage="Please enter name, service ID, and 4-digit PIN"}showPinStoredConfirmation(){this.showPinConfirmation=!0}async retryLoginAfterMigration(t,n,s){this.isSubmitting=!0,this.errorMessage="";try{const o=document.getElementById(qe),r=J(o?.textContent?.trim()||"");await r.init();const a=await r.getStudent(s,t);if(!a){const o=await _e(this.pin),a={schema:2,docId:"",release:s,serviceId:t,name:n,attempted:0,correct:0,updated:(new Date).toISOString(),pages:{},pinHash:o,pinCreatedAt:(new Date).toISOString()};return await r.saveStudent(a),this.dispatchEvent(new CustomEvent("qd:pin-created",{detail:{serviceId:t,timestamp:(new Date).toISOString()},bubbles:!0,composed:!0})),this.showPinStoredConfirmation(),void this.completeLogin(t,n,s)}if(Oe(a)||!Te(a)){const o=Pe(a,await _e(this.pin));return await r.saveStudent(o),this.dispatchEvent(new CustomEvent("qd:pin-created",{detail:{serviceId:t,timestamp:(new Date).toISOString()},bubbles:!0,composed:!0})),this.showPinStoredConfirmation(),void this.completeLogin(t,n,s)}if(!(await Ne(this.pin,a.pinHash||""))){const n=Me(t),s=He(t);if(n.lockoutUntil){const t=new Date(n.lockoutUntil).getTime()-Date.now();this.startLockoutCountdown(t)}else this.errorMessage=`Incorrect PIN. ${s} attempt${1!==s?"s":""} remaining`;return this.pin="",void(this.isSubmitting=!1)}ze(t),this.dispatchEvent(new CustomEvent("qd:pin-verified",{detail:{serviceId:t,timestamp:(new Date).toISOString()},bubbles:!0,composed:!0}));this.completeLogin(t,n,s)}catch(o){this.errorMessage="Login failed after migration. Please try again.",console.error("Post-migration login error:",o),this.isSubmitting=!1}}startLockoutCountdown(t){this.lockoutSeconds=Math.ceil(t/1e3),this.errorMessage="",this.lockoutInterval&&clearInterval(this.lockoutInterval),this.lockoutInterval=window.setInterval(()=>{this.lockoutSeconds--,this.lockoutSeconds<=0&&this.lockoutInterval&&(clearInterval(this.lockoutInterval),this.lockoutInterval=null)},1e3)}completeLogin(t,n,s){(new SessionService).createSession(t,n,s);const o=new CustomEvent("qd:login",{detail:{serviceId:t,name:n,release:s,role:"student"},bubbles:!0,composed:!0});this.dispatchEvent(o),this.pin="",this.isSubmitting=!1,this.updateVisibility()}openInstructorModal(){this.showInstructorModal=!0,this.instructorError=""}async hashPassword(t){const n=(new TextEncoder).encode(t),s=await crypto.subtle.digest("SHA-256",n);return Array.from(new Uint8Array(s)).map(t=>t.toString(16).padStart(2,"0")).join("").substring(0,12)}getExpectedHash(){const t=document.getElementById(Ie);return t?.textContent?.trim()||""}async handleInstructorLogin(t){try{const n=await this.hashPassword(t),s=this.getExpectedHash();if(!s)return void(this.instructorError="Instructor password not configured");if(n!==s)return void(this.instructorError="Incorrect password");const o=this.getRelease();(new SessionService).createSession("INSTRUCTOR","Instructor",o||""),sessionStorage.setItem(u.INSTRUCTOR,"true");const r=new CustomEvent("qd:login",{detail:{serviceId:"INSTRUCTOR",name:"Instructor",release:o||"",role:"instructor"},bubbles:!0,composed:!0});this.dispatchEvent(r),this.showInstructorModal=!1,this.instructorError="",this.updateVisibility()}catch(n){this.instructorError="Login failed. Please try again.",console.error("Instructor login error:",n)}}};qn.styles=wt` - :host { - display: none; /* Hidden if already logged in */ - font-family: - system-ui, - -apple-system, - sans-serif; - } - - :host([data-show]) { - display: block; - } - - .login-container { - padding: 8px 12px; - background: #fff; - border: 1px solid #ddd; - border-radius: 4px; - max-width: 480px; - } - - .title { - margin: 0 0 8px 0; - font-size: 15px; - font-weight: 600; - color: #333; - } - - .login-form { - display: flex; - gap: 6px; - align-items: flex-start; - flex-wrap: wrap; - } - - input { - padding: 6px 10px; - border: 1px solid #ccc; - border-radius: 4px; - font-size: 11px; - width: 110px; - min-width: 75px; - max-width: 110px; - } - - input.pin-input { - width: 45px; - min-width: 45px; - max-width: 45px; - text-align: center; - letter-spacing: 1px; - } - - input:focus { - outline: none; - border-color: #0066cc; - box-shadow: 0 0 0 2px rgba(0, 102, 204, 0.1); - } - - input:disabled { - background-color: #f5f5f5; - cursor: not-allowed; - } - - button { - padding: 6px 12px; - border: none; - border-radius: 4px; - font-size: 11px; - font-weight: 500; - cursor: pointer; - transition: all 0.2s; - white-space: nowrap; - } - - .login-btn { - background: #0066cc; - color: white; - } - - .login-btn:hover:not(:disabled) { - background: #0052a3; - } - - .login-btn:disabled { - background: #ccc; - cursor: not-allowed; - } - - .instructor-btn { - background: #6c757d; - color: white; - } - - .instructor-btn:hover { - background: #5a6268; - } - - .error-message { - width: 100%; - color: #d32f2f; - font-size: 11px; - margin-top: 3px; - padding: 4px 8px; - background: #ffebee; - border-radius: 3px; - border-left: 3px solid #d32f2f; - } - - .lockout-message { - width: 100%; - color: #f57c00; - font-size: 11px; - margin-top: 3px; - padding: 4px 8px; - background: #fff3e0; - border-radius: 3px; - border-left: 3px solid #f57c00; - } - - /* Responsive */ - @media (max-width: 600px) { - .login-form { - flex-direction: column; - } - - input, - button { - width: 100%; - } - } - `,In([ye({type:String})],qn.prototype,"title",2),In([ve()],qn.prototype,"name",2),In([ve()],qn.prototype,"serviceId",2),In([ve()],qn.prototype,"showInstructorModal",2),In([ve()],qn.prototype,"instructorError",2),In([ve()],qn.prototype,"errorMessage",2),In([ve()],qn.prototype,"isSubmitting",2),In([ve()],qn.prototype,"pin",2),In([ve()],qn.prototype,"lockoutSeconds",2),In([ve()],qn.prototype,"showPinConfirmation",2),In([ve()],qn.prototype,"helpOpen",2),In([ve()],qn.prototype,"showMigrationDialog",2),In([ve()],qn.prototype,"migrationError",2),In([ve()],qn.prototype,"pendingLoginData",2),qn=In([me("qd-login")],qn);var An=Object.defineProperty,kn=Object.getOwnPropertyDescriptor,On=(t,n,s,o)=>{for(var r,a=o>1?void 0:o?kn(n,s):n,c=t.length-1;c>=0;c--)(r=t[c])&&(a=(o?r(n,s,a):r(a))||a);return o&&a&&An(n,s,a),a};let Tn=class extends pe{constructor(){super(...arguments),this.total=0,this.correct=0,this.percentage=0,this.statusColor="red",this.name="",this.serviceId="",this.helpOpen=!1,this.handleStateChanged=()=>{this.loadCache()},this.handleLogin=()=>{this.updateVisibility(),this.loadCache()},this.handleCacheRebuild=()=>{this.loadCache()},this.handleLogoutEvent=()=>{this.updateVisibility()},this.handleHelpOpen=()=>{this.helpOpen=!0},this.handleHelpClose=()=>{this.helpOpen=!1}}connectedCallback(){super.connectedCallback(),this.updateVisibility(),this.loadCache(),document.addEventListener("qd:state-changed",this.handleStateChanged),document.addEventListener("qd:login",this.handleLogin),document.addEventListener("qd:logout",this.handleLogoutEvent),document.addEventListener("qd:cache-rebuild",this.handleCacheRebuild)}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("qd:state-changed",this.handleStateChanged),document.removeEventListener("qd:login",this.handleLogin),document.removeEventListener("qd:logout",this.handleLogoutEvent),document.removeEventListener("qd:cache-rebuild",this.handleCacheRebuild)}render(){const t=this.serviceId.slice(-4);return ne` + `}handleNameInput(t){this.name=t.target.value,this.errorMessage="",this.touch("name")}handleServiceIdInput(t){this.serviceId=t.target.value,this.errorMessage="",this.touch("serviceId"),this.pendingPin="",this.scheduleRegistrationCheck()}scheduleRegistrationCheck(){window.clearTimeout(this.registrationTimer),this.isRegistered=null;const t=this.serviceId.trim();/^[a-zA-Z0-9]{2,10}$/.test(t)&&(this.registrationTimer=window.setTimeout(()=>{this.checkRegistration(t)},300))}async checkRegistration(t){let n=null;try{const s=S();n=s?await this.authService.isRegistered(t,s,x()):null}catch{n=null}t===this.serviceId.trim()&&(this.isRegistered=n)}get submitLabel(){return this.pendingPin?"Confirm":!1===this.isRegistered?"Create":"Login"}handlePinInput(t){this.pin=t.target.value.replace(/\D/g,""),this.errorMessage="",this.touch("pin")}touch(t){this.touched.has(t)||(this.touched=new Set([...this.touched,t]))}get fieldErrors(){const t=tt(this.name,this.serviceId,this.pin),n={};for(const s of this.touched)t[s]&&(n[s]=t[s]);return n}isValid(){return 0===function(t,n,s){const r=[];t&&""!==t.trim()||r.push("Name required"),n?/^[a-zA-Z0-9]{2,10}$/.test(n)||r.push("Service ID must be 2-10 alphanumeric characters"):r.push("Service ID required");s?/^\d{4}$/.test(s)||r.push("PIN must be exactly 4 digits"):r.push("PIN required");return r}(this.name,this.serviceId,this.pin).length}get validationHint(){return this.pendingPin?"Re-enter your PIN to confirm":this.name||this.serviceId||this.pin?Object.values(tt(this.name,this.serviceId,this.pin)).join(" · "):""}async handleStudentLogin(t){if(t.preventDefault(),!this.isValid())return this.touched=new Set(["name","serviceId","pin"]),void(this.errorMessage="Please enter name, service ID, and 4-digit PIN");if(null!==this.isRegistered||this.pendingPin||await this.checkRegistration(this.serviceId.trim()),this.pendingPin){if(this.pin!==this.pendingPin)return this.pendingPin="",this.pin="",void(this.errorMessage="PINs did not match. Please enter your PIN again.");this.pendingPin=""}else if(!1===this.isRegistered)return this.pendingPin=this.pin,this.pin="",void(this.errorMessage="");this.isSubmitting=!0,this.errorMessage="";const n=S();if(!n)return this.errorMessage="Release not found (missing publication title element)",void(this.isSubmitting=!1);const s=this.serviceId.trim(),r=this.name.trim(),o=x(),a=this.pin,d=await this.authService.loginStudent({serviceId:s,name:r,pin:a,release:n,dbName:o});if("needs-migration"===d.kind)return this.migrationError=d.error,this.pendingLoginData={serviceId:s,name:r,release:n,pin:a,dbName:o},this.showMigrationDialog=!0,void(this.isSubmitting=!1);this.applyLoginResult(d)}applyLoginResult(t){switch(t.kind){case"pin-created":this.dispatchPinEvent("qd:pin-created",t.serviceId),this.completeLogin(t.serviceId,t.name,t.release);break;case"pin-verified":this.dispatchPinEvent("qd:pin-verified",t.serviceId),this.completeLogin(t.serviceId,t.name,t.release);break;case"lockout":this.lockoutUntil=Date.now()+t.lockoutMs,this.errorMessage="",this.isSubmitting=!1;break;case"bad-pin":this.errorMessage=`Incorrect PIN. ${t.remaining} attempt${1!==t.remaining?"s":""} remaining`,this.pin="",this.isSubmitting=!1;break;case"error":this.errorMessage=t.message,this.isSubmitting=!1}}dispatchPinEvent(t,n){this.dispatchEvent(new CustomEvent(t,{detail:{serviceId:n,timestamp:(new Date).toISOString()},bubbles:!0,composed:!0}))}async retryLoginAfterMigration(t,n,s){this.isSubmitting=!0,this.errorMessage="";const r=await this.authService.retryAfterMigration({serviceId:t,name:n,pin:this.pin,release:s,dbName:x()});this.applyLoginResult(r)}completeLogin(t,n,s){(new SessionService).createSession(t,n,s);const r={serviceId:t,name:n,release:s,role:"student"};this.dispatchEvent(new CustomEvent("qd:login",{detail:r,bubbles:!0,composed:!0})),this.pin="",this.isSubmitting=!1,this.updateVisibility()}};Bs.styles=zn,Hs([cn({type:String})],Bs.prototype,"title",2),Hs([ln()],Bs.prototype,"name",2),Hs([ln()],Bs.prototype,"serviceId",2),Hs([ln()],Bs.prototype,"errorMessage",2),Hs([ln()],Bs.prototype,"isSubmitting",2),Hs([ln()],Bs.prototype,"pin",2),Hs([ln()],Bs.prototype,"lockoutUntil",2),Hs([ln()],Bs.prototype,"touched",2),Hs([ln()],Bs.prototype,"isRegistered",2),Hs([ln()],Bs.prototype,"pendingPin",2),Hs([ln()],Bs.prototype,"helpOpen",2),Hs([ln()],Bs.prototype,"sessionNotice",2),Hs([ln()],Bs.prototype,"showMigrationDialog",2),Hs([ln()],Bs.prototype,"migrationError",2),Hs([ln()],Bs.prototype,"pendingLoginData",2),Bs=Hs([on("qd-login")],Bs);var Fs=Object.defineProperty,Vs=Object.getOwnPropertyDescriptor,Qs=(t,n,s,r)=>{for(var o,a=r>1?void 0:r?Vs(n,s):n,d=t.length-1;d>=0;d--)(o=t[d])&&(a=(r?o(n,s,a):o(a))||a);return r&&a&&Fs(n,s,a),a};let Ks=class extends sn{constructor(){super(...arguments),this.answered=0,this.correct=0,this.questionTotal=void 0,this.statusColor="red",this.name="",this.serviceId="",this.helpOpen=!1,this.handleStateChanged=()=>{this.loadCache()},this.handleLogin=()=>{this.updateVisibility(),this.loadCache()},this.handleCacheRebuild=()=>{this.loadCache()},this.handleLogoutEvent=()=>{this.updateVisibility()},this.handleHelpOpen=()=>{this.helpOpen=!0},this.handleHelpClose=()=>{this.helpOpen=!1}}connectedCallback(){super.connectedCallback(),this.updateVisibility(),this.loadCache(),document.addEventListener("qd:state-changed",this.handleStateChanged),document.addEventListener("qd:login",this.handleLogin),document.addEventListener("qd:logout",this.handleLogoutEvent),document.addEventListener("qd:cache-rebuild",this.handleCacheRebuild)}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("qd:state-changed",this.handleStateChanged),document.removeEventListener("qd:login",this.handleLogin),document.removeEventListener("qd:logout",this.handleLogoutEvent),document.removeEventListener("qd:cache-rebuild",this.handleCacheRebuild)}render(){const t=this.serviceId.slice(-4);return Qt`
                                    - `}loadCache(){const t=C(u.SESSION);t?(this.name=t.name||"",this.serviceId=t.serviceId||""):(this.name="",this.serviceId="");const n=C(u.CACHE);if(!n)return this.total=0,this.correct=0,this.percentage=0,void(this.statusColor="red");this.total=n.totals.total,this.correct=n.totals.correct,this.percentage=this.calculatePercentage(n.totals.total,n.totals.correct),this.statusColor=this.calculateStatusColor(n.totals.total,n.totals.correct)}calculatePercentage(t,n){return 0===t?0:Math.round(n/t*100)}calculateStatusColor(t,n){return function(t,n){return 0===t||0===n?"red":n===t?"green":"amber"}(t,n)}updateVisibility(){const t=C(u.SESSION),n="true"===sessionStorage.getItem(u.INSTRUCTOR);t&&!n?this.setAttribute("data-show",""):this.removeAttribute("data-show")}handleLogout(){const t=C(u.SESSION);(new SessionService).clearSession();const n=new CustomEvent("qd:logout",{detail:{serviceId:t?.serviceId||"unknown"},bubbles:!0,composed:!0});this.dispatchEvent(n)}};Tn.styles=wt` + `;var n,s,r}loadCache(){const t=W(G.SESSION);t?(this.name=t.name||"",this.serviceId=t.serviceId||""):(this.name="",this.serviceId=""),this.questionTotal=y();const n=W(G.CACHE);var s,r,o;this.answered=n?.totals.answered??0,this.correct=n?.totals.correct??0,this.statusColor=(s=this.answered,r=this.correct,o=this.questionTotal,0===s?"red":void 0!==o&&r>=o?"green":"amber")}updateVisibility(){this.toggleAttribute("data-show",le()&&!ue())}handleLogout(){const t=W(G.SESSION);(new SessionService).clearSession();const n=new CustomEvent("qd:logout",{detail:{serviceId:t?.serviceId||"unknown"},bubbles:!0,composed:!0});this.dispatchEvent(n)}};Ks.styles=lt` :host { display: none; /* Hidden by default, shown when logged in */ font-family: @@ -1088,7 +1151,7 @@ const tn=2;class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,n,s){ .logout-button:hover { background: #b71c1c; } - `,On([ve()],Tn.prototype,"total",2),On([ve()],Tn.prototype,"correct",2),On([ve()],Tn.prototype,"percentage",2),On([ve()],Tn.prototype,"statusColor",2),On([ve()],Tn.prototype,"name",2),On([ve()],Tn.prototype,"serviceId",2),On([ve()],Tn.prototype,"helpOpen",2),Tn=On([me("qd-status")],Tn);const Pn=wt` + `,Qs([ln()],Ks.prototype,"answered",2),Qs([ln()],Ks.prototype,"correct",2),Qs([ln()],Ks.prototype,"questionTotal",2),Qs([ln()],Ks.prototype,"statusColor",2),Qs([ln()],Ks.prototype,"name",2),Qs([ln()],Ks.prototype,"serviceId",2),Qs([ln()],Ks.prototype,"helpOpen",2),Ks=Qs([on("qd-status")],Ks);const Ws=lt` :host { display: inline-block; font-family: @@ -1173,15 +1236,16 @@ const tn=2;class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,n,s){ font-size: 13px; } + /* #0062cc keeps white text above WCAG AA 4.5:1 (#007bff was 3.98:1; SRD 013 A11Y-04) */ button.primary { - background: #007bff; + background: #0062cc; color: white; - border-color: #007bff; + border-color: #0062cc; } button.primary:hover { - background: #0056b3; - border-color: #0056b3; + background: #004c9e; + border-color: #004c9e; } button.secondary { @@ -1206,6 +1270,31 @@ const tn=2;class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,n,s){ border-color: #c82333; } + /* + * Destructive actions sit apart from routine ones and stay quiet until used + * (SRD 013 UX-08): an outline on the dark toolbar, filled only on hover. + */ + .danger-zone { + display: inline-flex; + align-items: center; + gap: 8px; + padding-left: 12px; + margin-left: 4px; + border-left: 1px solid rgba(255, 255, 255, 0.35); + } + + button.outline-danger { + background: transparent; + color: #ffcdd2; + border-color: #e57373; + } + + button.outline-danger:hover { + background: #c62828; + color: white; + border-color: #c62828; + } + button.logout { background: #6c757d; color: white; @@ -1330,7 +1419,7 @@ const tn=2;class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,n,s){ .close-button:hover { color: #000; } -`;class RateLimiter{constructor(){this.failureCount=0,this.lockoutUntil=null}attempt(){return!(this.lockoutUntil&&Date.now()=this.lockoutUntil&&(this.lockoutUntil=null),!0)}recordFailure(){this.failureCount++;const t=[2e3,4e3,8e3,16e3,3e4],n=t[Math.min(this.failureCount-1,t.length-1)]??3e4;this.lockoutUntil=Date.now()+n}reset(){this.failureCount=0,this.lockoutUntil=null}getRemainingSeconds(){if(!this.lockoutUntil)return 0;const t=Math.max(0,this.lockoutUntil-Date.now());return Math.ceil(t/1e3)}isLockedOut(){return null!==this.lockoutUntil&&Date.now(){for(var r,a=o>1?void 0:o?Ln(n,s):n,c=t.length-1;c>=0;c--)(r=t[c])&&(a=(o?r(n,s,a):r(a))||a);return o&&a&&Nn(n,s,a),a};let Rn=class extends pe{constructor(){super(...arguments),this.password="",this.error="",this.remainingSeconds=0,this.rateLimiter=new RateLimiter,this.handlePasswordInput=t=>{const n=t.target;this.password=n.value,this.error=""},this.handleSubmit=async t=>{t.preventDefault();if(!this.rateLimiter.attempt())return this.remainingSeconds=this.rateLimiter.getRemainingSeconds(),this.startCountdown(),void(this.error=`Too many attempts. Try again in ${this.remainingSeconds}s`);try{const t=function(){const t=document.getElementById(_n);if(!t){const t=`Instructor password hash not found. Expected element with id="${_n}". Check Oxygen XSL transform configuration.`;throw r(t),new Error(t)}const n=t.textContent?.trim();if(!n){const t="Instructor password hash element is empty. Check Oxygen parameter configuration.";throw r(t),new Error(t)}if(!/^[a-f0-9]{64}$/i.test(n)){const t=`Invalid password hash format. Expected 64 hex characters (SHA-256), got: ${n.substring(0,20)}...`;throw r(t),new Error(t)}return n.toLowerCase()}(),n=(new TextEncoder).encode(this.password),s=await crypto.subtle.digest("SHA-256",n),o=Array.from(new Uint8Array(s)).map(t=>t.toString(16).padStart(2,"0")).join(""),a=await async function(t,n){if(t.length!==n.length)return!1;if(0===t.length)return!0;const s=new TextEncoder,o=s.encode(t),r=s.encode(n);try{const t=await crypto.subtle.importKey("raw",o,{name:"HMAC",hash:"SHA-256"},!1,["sign"]),n=await crypto.subtle.sign("HMAC",t,r),s=await crypto.subtle.importKey("raw",r,{name:"HMAC",hash:"SHA-256"},!1,["sign"]),a=await crypto.subtle.sign("HMAC",s,o);if(n.byteLength!==a.byteLength)return!1;const c=new Uint8Array(n),d=new Uint8Array(a);let l=0;for(let o=0;o{this.remainingSeconds=this.rateLimiter.getRemainingSeconds(),0===this.remainingSeconds?(this.countdownInterval&&(window.clearInterval(this.countdownInterval),this.countdownInterval=void 0),this.error=""):this.error=`Too many attempts. Try again in ${this.remainingSeconds}s`},1e3)}render(){const t=this.remainingSeconds>0;return ne` +`;var Js=Object.defineProperty,Ys=Object.getOwnPropertyDescriptor,Xs=(t,n,s,r)=>{for(var o,a=r>1?void 0:r?Ys(n,s):n,d=t.length-1;d>=0;d--)(o=t[d])&&(a=(r?o(n,s,a):o(a))||a);return r&&a&&Js(n,s,a),a};let Gs=class extends sn{constructor(){super(...arguments),this.password="",this.error="",this.remainingSeconds=0,this.rateLimiter=new RateLimiter(Z-1),this.handlePasswordInput=t=>{const n=t.target;this.password=n.value,this.error=""},this.handleSubmit=async t=>{t.preventDefault();if(!this.rateLimiter.attempt())return this.remainingSeconds=this.rateLimiter.getRemainingSeconds(),this.startCountdown(),void(this.error=`Too many attempts. Try again in ${this.remainingSeconds}s`);try{if(!se())throw new Error("Instructor password hash not configured");await ce(this.password)?(this.rateLimiter.reset(),this.password="",this.error="",Ve(this,"qd:instructor-unlock",{})):(this.rateLimiter.recordFailure(),this.error="Invalid password",this.password="")}catch{this.error="Authentication failed",this.password=""}}}disconnectedCallback(){super.disconnectedCallback(),this.countdownInterval&&window.clearInterval(this.countdownInterval)}startCountdown(){this.countdownInterval&&window.clearInterval(this.countdownInterval),this.countdownInterval=window.setInterval(()=>{this.remainingSeconds=this.rateLimiter.getRemainingSeconds(),0===this.remainingSeconds?(this.countdownInterval&&(window.clearInterval(this.countdownInterval),this.countdownInterval=void 0),this.error=""):this.error=`Too many attempts. Try again in ${this.remainingSeconds}s`},1e3)}render(){const t=this.remainingSeconds>0;return Qt`

                                    Instructor Access

                                    Enter the instructor password to unlock administrative features.

                                    @@ -1349,14 +1438,14 @@ const tn=2;class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,n,s){ />
                                    - ${this.error?ne``:""} + ${this.error?Qt``:""}
                                    - `}};Rn.styles=Pn,Dn([ve()],Rn.prototype,"password",2),Dn([ve()],Rn.prototype,"error",2),Dn([ve()],Rn.prototype,"remainingSeconds",2),Rn=Dn([me("qd-instructor-unlock")],Rn);var Mn=Object.defineProperty,zn=Object.getOwnPropertyDescriptor,Hn=(t,n,s,o)=>{for(var r,a=o>1?void 0:o?zn(n,s):n,c=t.length-1;c>=0;c--)(r=t[c])&&(a=(o?r(n,s,a):r(a))||a);return o&&a&&Mn(n,s,a),a};let Un=class extends pe{constructor(){super(...arguments),this.open=!1,this.students=[],this.handleModalClose=()=>{this.open=!1,this.dispatchEvent(new CustomEvent("close"))}}render(){return ne` + `}};Gs.styles=Ws,Xs([ln()],Gs.prototype,"password",2),Xs([ln()],Gs.prototype,"error",2),Xs([ln()],Gs.prototype,"remainingSeconds",2),Gs=Xs([on("qd-instructor-unlock")],Gs);var Zs=Object.defineProperty,er=Object.getOwnPropertyDescriptor,tr=(t,n,s,r)=>{for(var o,a=r>1?void 0:r?er(n,s):n,d=t.length-1;d>=0;d--)(o=t[d])&&(a=(r?o(n,s,a):o(a))||a);return r&&a&&Zs(n,s,a),a};let nr=class extends sn{constructor(){super(...arguments),this.open=!1,this.students=[],this.handleModalClose=()=>{this.open=!1,this.dispatchEvent(new CustomEvent("close"))}}render(){return Qt` Student Scores
                                    - ${0===this.students.length?ne`

                                    No student data available.

                                    `:this.renderScoresTable()} + ${0===this.students.length?Qt`

                                    No student data available.

                                    `:this.renderScoresTable()}
                                    - `}renderScoresTable(){const t=[...this.students].sort((t,n)=>t.name.localeCompare(n.name));return ne` + `}renderScoresTable(){const t=[...this.students].sort((t,n)=>t.name.localeCompare(n.name));return Qt` - + + + @@ -1462,27 +1561,33 @@ const tn=2;class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,n,s){ ${t.map(t=>this.renderStudentRow(t))}
                                    Student Service IDScoreAnsweredCorrectRight first time Answers
                                    - `}renderStudentRow(t){const n=this.calculateSummary(t),s=Object.entries(t.pages);return ne` + `}renderStudentRow(t){const n=this.calculateSummary(t),s=Object.entries(t.pages);return Qt` ${n.name} ${n.serviceId} + ${this.answeredText(n.attempted)} - ${n.correct}/${n.attempted} (${n.percentage}%) + ${n.attempted>0?`${n.correct} (${n.percentage}% of answered)`:"0"} + ${this.firstTimeText(t)} - ${0===s.length?ne`—`:ne` + ${0===s.length?Qt`—`:Qt`
                                    - ${s.map(([t,n])=>ne` + ${s.map(([t,n])=>Qt`
                                    ${t}
                                    - ${n.answers.map((t,n)=>ne` - - Q${n+1}: ${t?.answer??"—"} - - `)} + ${n.analysis?Qt`${this.analysisSummary(n.analysis)}`:""} + ${n.answers.map((t,n)=>t&&""!==t.answer.trim()?Qt` + + Q${n+1}: + ${t?.answer??"—"}${t?.attempts&&t.attempts>1?` (${t.attempts} tries)`:""} + + `:"")}
                                    `)} @@ -1490,17 +1595,17 @@ const tn=2;class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,n,s){ `} - `}getScoreClass(t){return 0===t.attempted?"":100===t.percentage?"score-perfect":0===t.percentage?"score-zero":""}calculateSummary(t){const n=t.attempted>0?Math.round(t.correct/t.attempted*100):0;return{serviceId:t.serviceId,name:t.name,attempted:t.attempted,correct:t.correct,percentage:n}}show(){this.open=!0}close(){this.open=!1}};Un.styles=wt` + `}analysisSummary(t){const n=ze(t);return void 0!==t.totalCells?`Analysis: ${n} of ${t.totalCells} cells`:`Analysis: ${n} cell${1===n?"":"s"}`}answeredText(t){const n=y();return void 0!==n?`${t} of ${n}`:String(t)}firstTimeText(t){const{tracked:n,correctFirstTime:s,untracked:r}=function(t){let n=0,s=0,r=0;for(const o of Object.values(t.pages))for(const t of o.answers??[])t&&""!==t.answer.trim()&&(void 0===t.firstSuccess?r++:(n++,t.firstSuccess&&s++));return{tracked:n,correctFirstTime:s,untracked:r}}(t);if(0===n)return"–";const o=`${s} of ${n}`;return r>0?`${o} (${r} older answer${1===r?"":"s"} –)`:o}getScoreClass(t){return 0===t.attempted?"":100===t.percentage?"score-perfect":0===t.percentage?"score-zero":""}calculateSummary(t){const n=t.attempted>0?Math.round(t.correct/t.attempted*100):0;return{serviceId:t.serviceId,name:t.name,attempted:t.attempted,correct:t.correct,percentage:n}}show(){this.open=!0}close(){this.open=!1}};nr.styles=lt` :host { display: contents; } - `,Hn([ye({type:Boolean,reflect:!0})],Un.prototype,"open",2),Hn([ye({type:Array})],Un.prototype,"students",2),Un=Hn([me("qd-scores-modal")],Un);var jn=Object.defineProperty,Fn=Object.getOwnPropertyDescriptor,Bn=(t,n,s,o)=>{for(var r,a=o>1?void 0:o?Fn(n,s):n,c=t.length-1;c>=0;c--)(r=t[c])&&(a=(o?r(n,s,a):r(a))||a);return o&&a&&jn(n,s,a),a};let Vn=class extends pe{constructor(){super(...arguments),this.students=[],this.showModal=!1,this.handleClose=()=>{this.dispatchEvent(new CustomEvent("close"))}}render(){return ne` + `,tr([cn({type:Boolean,reflect:!0})],nr.prototype,"open",2),tr([cn({type:Array})],nr.prototype,"students",2),nr=tr([on("qd-scores-modal")],nr);var sr=Object.defineProperty,rr=Object.getOwnPropertyDescriptor,or=(t,n,s,r)=>{for(var o,a=r>1?void 0:r?rr(n,s):n,d=t.length-1;d>=0;d--)(o=t[d])&&(a=(r?o(n,s,a):o(a))||a);return r&&a&&sr(n,s,a),a};let ir=class extends sn{constructor(){super(...arguments),this.students=[],this.showModal=!1,this.handleClose=()=>{this.dispatchEvent(new CustomEvent("close"))}}render(){return Qt` - `}};Vn.styles=Pn,Bn([ye({type:Array})],Vn.prototype,"students",2),Bn([ye({type:Boolean})],Vn.prototype,"showModal",2),Vn=Bn([me("qd-instructor-scores")],Vn);var Qn=Object.defineProperty,Kn=Object.getOwnPropertyDescriptor,Jn=(t,n,s,o)=>{for(var r,a=o>1?void 0:o?Kn(n,s):n,c=t.length-1;c>=0;c--)(r=t[c])&&(a=(o?r(n,s,a):r(a))||a);return o&&a&&Qn(n,s,a),a};let Wn=class extends pe{constructor(){super(...arguments),this.students=[],this.handleExport=()=>{const t=this.generateCSV(),n=new Blob([t],{type:"text/csv;charset=utf-8;"}),s=URL.createObjectURL(n),o=document.createElement("a");o.href=s;const r=(new Date).toISOString().replace(/[:.]/g,"-").slice(0,19);o.download=`quiz-data-${r}.csv`,document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(s)}}escapeCSVField(t){const n=String(t);return n.includes(",")||n.includes('"')||n.includes("\n")?`"${n.replace(/"/g,'""')}"`:n}generateCSV(){const t=[];t.push("Service ID,Name,Release,Page ID,Question Index,Answer,Success,Timestamp");for(const n of this.students)for(const[s,o]of Object.entries(n.pages)){(o.answers||[]).forEach((o,r)=>{o&&t.push([this.escapeCSVField(n.serviceId),this.escapeCSVField(n.name),this.escapeCSVField(n.release),this.escapeCSVField(s),this.escapeCSVField(r),this.escapeCSVField(o.answer),this.escapeCSVField(o.success),this.escapeCSVField(o.timestamp)].join(","))})}return t.join("\n")}render(){const t=this.students.length>0&&this.students.some(t=>t.attempted>0),n=t?`Export ${this.students.length} student${1===this.students.length?"":"s"} to CSV`:this.students.length>0?"No answers to export (students have not answered any questions)":"No data to export";return ne` + `}};ir.styles=Ws,or([cn({type:Array})],ir.prototype,"students",2),or([cn({type:Boolean})],ir.prototype,"showModal",2),ir=or([on("qd-instructor-scores")],ir);var ar=Object.defineProperty,dr=Object.getOwnPropertyDescriptor,cr=(t,n,s,r)=>{for(var o,a=r>1?void 0:r?dr(n,s):n,d=t.length-1;d>=0;d--)(o=t[d])&&(a=(r?o(n,s,a):o(a))||a);return r&&a&&ar(n,s,a),a};let lr=class extends sn{constructor(){super(...arguments),this.students=[],this.handleExport=()=>{const t=this.generateCSV(),n=new Blob([t],{type:"text/csv;charset=utf-8;"}),s=URL.createObjectURL(n),r=document.createElement("a");r.href=s;const o=(new Date).toISOString().replace(/[:.]/g,"-").slice(0,19);r.download=`quiz-data-${o}.csv`,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(s)}}escapeCSVField(t){let n=String(t);return/^[=+\-@\t\r]/.test(n)&&(n=`'${n}`),n.includes(",")||n.includes('"')||n.includes("\n")?`"${n.replace(/"/g,'""')}"`:n}generateCSV(){const t=[];t.push("Service ID,Name,Release,Page ID,Question Index,Answer,Success,Timestamp,Kind,Attempts,First Attempt Correct");for(const n of this.students){const s=[n.serviceId,n.name,n.release];for(const[r,o]of Object.entries(n.pages)){(o.answers||[]).forEach((n,o)=>{n&&""!==n.answer.trim()&&t.push(this.csvRow([...s,r,o,n.answer,n.success,n.timestamp,"quiz",n.attempts??"",n.firstSuccess??""]))});const n=o.analysis;if(n)for(const[o,a]of Object.entries(n.cells))""!==a.trim()&&t.push(this.csvRow([...s,r,n.labels?.[o]??o,a,"",n.lastEdited??"","analysis","",""]))}}return t.join("\n")}csvRow(t){return t.map(t=>this.escapeCSVField(t)).join(",")}render(){const t=this.students.length>0&&this.students.some(t=>t.attempted>0||Object.values(t.pages).some(t=>ze(t.analysis)>0)),n=t?`Export ${this.students.length} student${1===this.students.length?"":"s"} to CSV`:this.students.length>0?"No answers to export (students have not answered any questions)":"No data to export";return Qt` - `}};Wn.styles=Pn,Jn([ye({type:Array})],Wn.prototype,"students",2),Wn=Jn([me("qd-instructor-export")],Wn);var Yn=Object.defineProperty,Gn=Object.getOwnPropertyDescriptor,Zn=(t,n,s,o)=>{for(var r,a=o>1?void 0:o?Gn(n,s):n,c=t.length-1;c>=0;c--)(r=t[c])&&(a=(o?r(n,s,a):r(a))||a);return o&&a&&Yn(n,s,a),a};let Xn=class extends pe{constructor(){super(...arguments),this.showConfirmDialog=!1,this.confirmText="",this.error="",this.success="",this.modalContainer=null,this.handleClearRequest=()=>{this.showConfirmDialog=!0,this.confirmText="",this.error="",this.success=""},this.handleCancelClear=()=>{this.showConfirmDialog=!1,this.confirmText="",this.error=""},this.handleConfirmInput=t=>{const n=t.target;this.confirmText=n.value},this.handleConfirmClear=()=>{if("DELETE ALL DATA"===this.confirmText)try{q(),E(this,"qd:data-cleared",{}),this.success="All quiz data cleared successfully",this.showConfirmDialog=!1,this.confirmText="",this.error="",setTimeout(()=>{this.success=""},3e3)}catch{this.error="Failed to clear data"}else this.error="Confirmation text does not match"}}disconnectedCallback(){super.disconnectedCallback(),this.removeModalFromBody()}updated(t){super.updated(t),t.has("showConfirmDialog")&&(this.showConfirmDialog?this.renderModalToBody():this.removeModalFromBody()),this.showConfirmDialog&&(t.has("confirmText")||t.has("error"))&&this.renderModalToBody()}renderModalToBody(){this.modalContainer||(this.modalContainer=document.createElement("div"),this.modalContainer.className="qd-manage-modal-container",document.body.appendChild(this.modalContainer)),ue(this.renderConfirmDialog(),this.modalContainer)}removeModalFromBody(){this.modalContainer&&(this.modalContainer.remove(),this.modalContainer=null)}render(){return ne` + `}};lr.styles=Ws,cr([cn({type:Array})],lr.prototype,"students",2),lr=cr([on("qd-instructor-export")],lr);var ur=Object.defineProperty,pr=Object.getOwnPropertyDescriptor,hr=(t,n,s,r)=>{for(var o,a=r>1?void 0:r?pr(n,s):n,d=t.length-1;d>=0;d--)(o=t[d])&&(a=(r?o(n,s,a):o(a))||a);return r&&a&&ur(n,s,a),a};let gr=class extends sn{constructor(){super(...arguments),this.showConfirmDialog=!1,this.confirmText="",this.password="",this.checking=!1,this.error="",this.success="",this.modalContainer=null,this.handleKeydown=t=>{"Escape"===t.key&&this.showConfirmDialog&&this.handleCancelClear()},this.handleClearRequest=()=>{this.showConfirmDialog=!0,this.confirmText="",this.password="",this.error="",this.success=""},this.handleCancelClear=()=>{this.showConfirmDialog=!1,this.confirmText="",this.password="",this.error=""},this.handleConfirmInput=t=>{const n=t.target;this.confirmText=n.value},this.handlePasswordInput=t=>{this.password=t.target.value,this.error=""},this.handleConfirmClear=async()=>{if("DELETE ALL DATA"!==this.confirmText)return void(this.error="Confirmation text does not match");this.checking=!0;const t=await ae(this.password);if(this.checking=!1,!t.ok)return this.error=de(t),void(this.password="");try{await Be().clearAll(),Y(),Ve(this,"qd:data-cleared",{}),this.success="All quiz data cleared successfully",this.showConfirmDialog=!1,this.confirmText="",this.password="",this.error="",setTimeout(()=>{this.success=""},3e3)}catch{this.error="Failed to clear data"}}}disconnectedCallback(){super.disconnectedCallback(),this.removeModalFromBody(),document.removeEventListener("keydown",this.handleKeydown)}updated(t){super.updated(t),t.has("showConfirmDialog")&&(this.showConfirmDialog?(this.renderModalToBody(),document.addEventListener("keydown",this.handleKeydown),this.modalContainer?.querySelector("input")?.focus()):(this.removeModalFromBody(),document.removeEventListener("keydown",this.handleKeydown))),this.showConfirmDialog&&(t.has("confirmText")||t.has("password")||t.has("checking")||t.has("error"))&&this.renderModalToBody()}renderModalToBody(){this.modalContainer||(this.modalContainer=document.createElement("div"),this.modalContainer.className="qd-manage-modal-container",document.body.appendChild(this.modalContainer)),tn(this.renderConfirmDialog(),this.modalContainer)}removeModalFromBody(){this.modalContainer&&(this.modalContainer.remove(),this.modalContainer=null)}render(){return Qt` - ${this.success?ne` + ${this.success?Qt`
                                    ${this.success}
                                    `:""} - `}renderConfirmDialog(){const t="DELETE ALL DATA"===this.confirmText;return ne` + `}renderConfirmDialog(){const t="DELETE ALL DATA"===this.confirmText&&this.password.length>0&&!this.checking;return Qt`
                                    {t.target===t.currentTarget&&this.handleCancelClear()}} >
                                    t.stopPropagation()} >
                                    -

                                    +

                                    Confirm Data Deletion

                                    - `}};Xn.styles=Pn,Zn([ve()],Xn.prototype,"showConfirmDialog",2),Zn([ve()],Xn.prototype,"confirmText",2),Zn([ve()],Xn.prototype,"error",2),Zn([ve()],Xn.prototype,"success",2),Xn=Zn([me("qd-instructor-manage")],Xn);var ts=Object.defineProperty,es=Object.getOwnPropertyDescriptor,ns=(t,n,s,o)=>{for(var r,a=o>1?void 0:o?es(n,s):n,c=t.length-1;c>=0;c--)(r=t[c])&&(a=(o?r(n,s,a):r(a))||a);return o&&a&&ts(n,s,a),a};let ss=class extends pe{constructor(){super(...arguments),this.students=[],this.open=!1,this.searchText="",this.confirmingStudent=null,this.confirmDialogOpen=!1,this.errorMessage="",this.handleModalClose=()=>{this.confirmDialogOpen||(this.close(),this.dispatchEvent(new CustomEvent("close")))},this.handleSearchInput=t=>{const n=t.target;this.searchText=n.value},this.handleResetClick=t=>{this.confirmingStudent=t,this.confirmDialogOpen=!0},this.handleConfirmReset=()=>{this.confirmingStudent&&this.executeReset(this.confirmingStudent)},this.handleCancelReset=()=>{this.confirmDialogOpen=!1,this.confirmingStudent=null}}set showModal(t){this.open=t}get showModal(){return this.open}get filteredStudents(){if(!this.searchText.trim())return this.students;const t=this.searchText.toLowerCase().trim();return this.students.filter(n=>n.name.toLowerCase().includes(t)||n.serviceId.toLowerCase().includes(t))}close(){this.open=!1,this.confirmingStudent=null,this.confirmDialogOpen=!1,this.searchText="",this.errorMessage=""}show(){this.open=!0}async executeReset(t){try{const s=document.getElementById(qe);if(!s?.textContent?.trim())throw new Error(`Database name not configured. Add dbName to page.`);const o=J(s.textContent.trim());await o.init();const r=(n=t,{...n,pinHash:"",pinResetAt:(new Date).toISOString()});await o.saveStudent(r);const a={eventId:crypto.randomUUID(),serviceId:t.serviceId,resetBy:"instructor",resetAt:(new Date).toISOString(),release:t.release};await o.saveAuditEvent(a);const c=this.students.findIndex(n=>n.serviceId===t.serviceId);c>=0&&(this.students[c]=r,this.students=[...this.students]),this.dispatchEvent(new CustomEvent("qd:pin-reset",{detail:{serviceId:t.serviceId,resetBy:"instructor",timestamp:(new Date).toISOString()},bubbles:!0,composed:!0})),this.confirmDialogOpen=!1,this.confirmingStudent=null,this.errorMessage=""}catch(s){console.error("PIN reset error:",s),this.errorMessage="Failed to reset PIN. Please try again.",this.confirmDialogOpen=!1,this.confirmingStudent=null}var n}render(){const t=this.confirmingStudent,n=t?`Reset PIN for ${t.name} (${t.serviceId})?
                                    They will need to create a new PIN on next login.`:"";return ne` - - Reset Student PIN + `}};async function mr(t){const n=x();if(!n)return{ok:!1,error:`Database name not configured. Add dbName to page.`};try{const s=_e(n);await s.init();const r=function(t){const{pinSalt:n,pinIterations:s,pinKdf:r,...o}=t;return{...o,pinHash:"",pinResetAt:(new Date).toISOString()}}(t);await s.saveStudent(r);const o={eventId:crypto.randomUUID(),serviceId:t.serviceId,resetBy:"instructor",resetAt:(new Date).toISOString(),release:t.release};return await s.saveAuditEvent(o),{ok:!0,updated:r}}catch(s){return console.error("PIN reset error:",s),{ok:!1,error:"Failed to reset PIN. Please try again."}}} +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */gr.styles=Ws,hr([ln()],gr.prototype,"showConfirmDialog",2),hr([ln()],gr.prototype,"confirmText",2),hr([ln()],gr.prototype,"password",2),hr([ln()],gr.prototype,"checking",2),hr([ln()],gr.prototype,"error",2),hr([ln()],gr.prototype,"success",2),gr=hr([on("qd-instructor-manage")],gr);const fr=2;class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,n,s){this._$Ct=t,this._$AM=n,this._$Ci=s}_$AS(t,n){return this.update(t,n)}update(t,n){return this.render(...n)}} +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */class e extends i{constructor(t){if(super(t),this.it=Wt,t.type!==fr)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(t){if(t===Wt||null==t)return this._t=void 0,this.it=t;if(t===Kt)return t;if("string"!=typeof t)throw Error(this.constructor.directiveName+"() called with a non-string value");if(t===this.it)return this._t;this.it=t;const n=[t];return n.raw=n,this._t={_$litType$:this.constructor.resultType,strings:n,values:[]}}}e.directiveName="unsafeHTML",e.resultType=1;const br=(t=>(...n)=>({_$litDirective$:t,values:n}))(e);var yr=Object.defineProperty,vr=Object.getOwnPropertyDescriptor,wr=(t,n,s,r)=>{for(var o,a=r>1?void 0:r?vr(n,s):n,d=t.length-1;d>=0;d--)(o=t[d])&&(a=(r?o(n,s,a):o(a))||a);return r&&a&&yr(n,s,a),a};const xr="padding: 8px 0;",Sr="font-size: 14px; color: #333; line-height: 1.5; margin-bottom: 16px;",$r="display: block; font-size: 13px; color: #333; margin: 0 0 4px;",qr="width: 100%; box-sizing: border-box; padding: 8px 10px; border: 1px solid #ccc; border-radius: 4px; font-size: 14px; margin-bottom: 16px;",Er="display: flex; gap: 8px; justify-content: flex-end;",kr="padding: 8px 16px; border: none; border-radius: 4px; font-size: 13px; font-weight: 500; cursor: pointer;",Cr="background: #e0e0e0; color: #333;",Ir="background: #0066cc; color: white;",Ar="background: #d32f2f; color: white;",Pr="background: #ccc; color: white; cursor: not-allowed;";let Or=class extends sn{constructor(){super(...arguments),this.open=!1,this.title="Confirm",this.message="",this.confirmText="Confirm",this.cancelText="Cancel",this.destructive=!1,this.requirePassword=!1,this.password="",this.handleModalClose=()=>{this.close(),this.dispatchEvent(new CustomEvent("qd:cancel",{bubbles:!0,composed:!0}))},this.handleConfirm=()=>{if(this.requirePassword&&!this.password)return;const t=this.password;this.password="",this.close(),this.dispatchEvent(new CustomEvent("qd:confirm",{detail:this.requirePassword?{password:t}:void 0,bubbles:!0,composed:!0}))},this.handlePasswordInput=t=>{this.password=t.target.value},this.handleCancel=()=>{this.password="",this.close(),this.dispatchEvent(new CustomEvent("qd:cancel",{bubbles:!0,composed:!0}))}}show(){this.open=!0}close(){this.open=!1}get confirmBlocked(){return this.requirePassword&&!this.password}render(){return Qt` + + ${this.title} - ${this.open?ne` -
                                    - - -
                                    - ${0===this.filteredStudents.length?ne`
                                    - ${this.searchText?"No matching students":"No students found"} -
                                    `:ne` - - - - - - - - - - ${this.filteredStudents.map(t=>ne` - - - - - - `)} - -
                                    NameService IDReset PIN
                                    ${t.name}${t.serviceId} - -
                                    - `} -
                                    +
                                    +
                                    ${br(this.message)}
                                    - ${this.errorMessage?ne`
                                    ${this.errorMessage}
                                    `:""} -
                                    - `:oe} + ${this.requirePassword?Qt` + "Enter"===t.key&&this.handleConfirm()} + style=${qr} + />`:Wt} + +
                                    + ${this.cancelText?Qt``:Wt} + +
                                    +
                                    - - - `}};ss.styles=wt` + `}};Or.styles=lt` :host { display: contents; } - - .pin-reset-content { - min-width: 400px; - max-width: 500px; + `,wr([cn({type:Boolean,reflect:!0})],Or.prototype,"open",2),wr([cn({type:String})],Or.prototype,"title",2),wr([cn({type:String})],Or.prototype,"message",2),wr([cn({type:String})],Or.prototype,"confirmText",2),wr([cn({type:String})],Or.prototype,"cancelText",2),wr([cn({type:Boolean})],Or.prototype,"destructive",2),wr([cn({type:Boolean})],Or.prototype,"requirePassword",2),wr([ln()],Or.prototype,"password",2),Or=wr([on("qd-confirm-dialog")],Or);var Tr=Object.defineProperty,Lr=Object.getOwnPropertyDescriptor,Nr=(t,n,s,r)=>{for(var o,a=r>1?void 0:r?Lr(n,s):n,d=t.length-1;d>=0;d--)(o=t[d])&&(a=(r?o(n,s,a):o(a))||a);return r&&a&&Tr(n,s,a),a};let Dr=class extends sn{constructor(){super(...arguments),this.students=[],this.actionLabel="Select",this.searchText="",this.handleSearchInput=t=>{this.searchText=t.target.value}}get filteredStudents(){const t=this.searchText.toLowerCase().trim();return t?this.students.filter(n=>n.name.toLowerCase().includes(t)||n.serviceId.toLowerCase().includes(t)):this.students}emitSelect(t){this.dispatchEvent(new CustomEvent("select",{detail:t,bubbles:!0,composed:!0}))}render(){const t=this.filteredStudents;return Qt` + +
                                    + ${0===t.length?Qt`
                                    + ${this.searchText?"No matching students":"No students found"} +
                                    `:Qt` + + + + + + + + + ${t.map(t=>Qt` + + + + `)} + +
                                    NameService ID${this.actionLabel}
                                    ${t.name}${t.serviceId} + +
                                    `} +
                                    + `}};Dr.styles=lt` + :host { + display: block; } .search-input { @@ -1720,7 +1869,7 @@ const tn=2;class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,n,s){ border-bottom: none; } - .reset-btn { + .action-btn { background: #ff5722; color: white; border: none; @@ -1730,7 +1879,7 @@ const tn=2;class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,n,s){ cursor: pointer; } - .reset-btn:hover { + .action-btn:hover { background: #e64a19; } @@ -1740,6 +1889,52 @@ const tn=2;class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,n,s){ color: #666; font-size: 12px; } + `,Nr([cn({type:Array})],Dr.prototype,"students",2),Nr([cn({type:String})],Dr.prototype,"actionLabel",2),Nr([ln()],Dr.prototype,"searchText",2),Dr=Nr([on("qd-student-table")],Dr);var _r=Object.defineProperty,Rr=Object.getOwnPropertyDescriptor,zr=(t,n,s,r)=>{for(var o,a=r>1?void 0:r?Rr(n,s):n,d=t.length-1;d>=0;d--)(o=t[d])&&(a=(r?o(n,s,a):o(a))||a);return r&&a&&_r(n,s,a),a};let Mr=class extends sn{constructor(){super(...arguments),this.students=[],this.open=!1,this.confirmingStudent=null,this.confirmDialogOpen=!1,this.errorMessage="",this.handleModalClose=()=>{this.confirmDialogOpen||(this.close(),this.dispatchEvent(new CustomEvent("close")))},this.handleResetClick=t=>{this.confirmingStudent=t,this.confirmDialogOpen=!0},this.handleConfirmReset=t=>{const n=this.confirmingStudent;n&&this.verifyThenReset(n,t.detail?.password??"")},this.handleCancelReset=()=>{this.confirmDialogOpen=!1,this.confirmingStudent=null}}set showModal(t){this.open=t}get showModal(){return this.open}close(){this.open=!1,this.confirmingStudent=null,this.confirmDialogOpen=!1,this.errorMessage=""}show(){this.open=!0}async verifyThenReset(t,n){const s=await ae(n);if(!s.ok)return this.confirmDialogOpen=!1,this.confirmingStudent=null,void(this.errorMessage=`${de(s)}. The PIN was not reset.`);await this.executeReset(t)}async executeReset(t){const n=await mr(t);if(this.confirmDialogOpen=!1,this.confirmingStudent=null,n.ok){if(n.updated){const s=this.students.findIndex(n=>n.serviceId===t.serviceId);s>=0&&(this.students[s]=n.updated,this.students=[...this.students])}this.errorMessage="",this.dispatchEvent(new CustomEvent("qd:pin-reset",{detail:{serviceId:t.serviceId,resetBy:"instructor",timestamp:(new Date).toISOString()},bubbles:!0,composed:!0}))}else this.errorMessage=n.error??"Failed to reset PIN. Please try again."}render(){const t=this.confirmingStudent,n=t?`Reset PIN for ${Q(t.name)} (${Q(t.serviceId)})?
                                    They will need to create a new PIN on next login.`:"";return Qt` + + Reset Student PIN + + ${this.open?Qt` +
                                    + this.handleResetClick(t.detail)} + > + + ${this.errorMessage?Qt``:""} +
                                    + `:Wt} +
                                    + + + `}};Mr.styles=lt` + :host { + display: contents; + } + + .pin-reset-content { + min-width: 400px; + max-width: 500px; + } .error-message { color: #d32f2f; @@ -1749,7 +1944,7 @@ const tn=2;class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,n,s){ background: #ffebee; border-radius: 4px; } - `,ns([ye({type:Array})],ss.prototype,"students",2),ns([ye({type:Boolean,reflect:!0})],ss.prototype,"open",2),ns([ve()],ss.prototype,"searchText",2),ns([ve()],ss.prototype,"confirmingStudent",2),ns([ve()],ss.prototype,"confirmDialogOpen",2),ns([ve()],ss.prototype,"errorMessage",2),ns([ye({type:Boolean})],ss.prototype,"showModal",1),ss=ns([me("qd-pin-reset-dialog")],ss);var os=Object.defineProperty,rs=Object.getOwnPropertyDescriptor,is=(t,n,s,o)=>{for(var r,a=o>1?void 0:o?rs(n,s):n,c=t.length-1;c>=0;c--)(r=t[c])&&(a=(o?r(n,s,a):r(a))||a);return o&&a&&os(n,s,a),a};let as=class extends pe{constructor(){super(...arguments),this.unlocked=!1,this.showScores=!1,this.students=[],this.showStudentAnswers=!1,this.showPinReset=!1,this.helpOpen=!1,this.handleLoginEvent=t=>{const n=t,s=n.detail?.role;this.updateVisibility(),"instructor"===s&&(this.unlock(),this.loadStudents())},this.handleLogoutEvent=()=>{this.updateVisibility(),this.lock()},this.handleResetPins=async()=>{const t=C(u.SESSION);if(t){try{const n=Z(),s=await n.getStudentsByRelease(t.release);this.students=s}catch(n){console.error("Failed to load students:",n),this.students=[]}this.showPinReset=!0}},this.handleClosePinReset=()=>{this.showPinReset=!1},this.handlePinReset=()=>{this.dispatchEvent(new CustomEvent("qd:pin-reset",{bubbles:!0,composed:!0}))},this.handleUnlock=()=>{this.unlocked=!0,this.dispatchEvent(new CustomEvent("qd:instructor-unlock",{bubbles:!0,composed:!0}))},this.handleViewScores=async()=>{const t=C(u.SESSION);if(t){try{const n=Z(),s=await n.getStudentsByRelease(t.release);this.students=s}catch(n){console.error("Failed to load students:",n),this.students=[]}this.showScores=!0}},this.handleCloseScores=()=>{this.showScores=!1},this.handleDataCleared=()=>{this.dispatchEvent(new CustomEvent("qd:data-cleared",{bubbles:!0,composed:!0})),this.students=[]},this.handleLogout=()=>{const t=C(u.SESSION);(new SessionService).clearSession(),this.dispatchEvent(new CustomEvent("qd:logout",{detail:{serviceId:t?.serviceId||"unknown"},bubbles:!0,composed:!0}))},this.handleToggleStudentAnswers=async t=>{const n=t.target;if(this.showStudentAnswers=n.checked,this.showStudentAnswers&&0===this.students.length){const t=C(u.SESSION);if(t)try{const n=Z(),s=await n.getStudentsByRelease(t.release);this.students=s}catch(o){console.error("Failed to load students for toggle:",o)}}const s=this.showStudentAnswers?"qd:instructor-show-answers":"qd:instructor-hide-answers";this.dispatchEvent(new CustomEvent(s,{bubbles:!0,composed:!0})),sessionStorage.setItem("qd/instructor/showAnswers",String(this.showStudentAnswers))},this.handleHelpOpen=()=>{this.helpOpen=!0},this.handleHelpClose=()=>{this.helpOpen=!1}}connectedCallback(){super.connectedCallback(),this.updateVisibility();const t="true"===sessionStorage.getItem(u.INSTRUCTOR);t&&(this.unlock(),this.loadStudents());const n=sessionStorage.getItem("qd/instructor/showAnswers");null!==n&&(this.showStudentAnswers="true"===n,this.showStudentAnswers&&t&&setTimeout(()=>{this.dispatchEvent(new CustomEvent("qd:instructor-show-answers",{bubbles:!0,composed:!0}))},100)),document.addEventListener("qd:login",this.handleLoginEvent),document.addEventListener("qd:logout",this.handleLogoutEvent)}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("qd:login",this.handleLoginEvent),document.removeEventListener("qd:logout",this.handleLogoutEvent)}updateVisibility(){"true"===sessionStorage.getItem(u.INSTRUCTOR)?this.setAttribute("data-show",""):this.removeAttribute("data-show")}setStudents(t){this.students=t}async loadStudents(){const t=C(u.SESSION);if(t)try{const n=Z(),s=await n.getStudentsByRelease(t.release);this.students=s}catch(n){console.error("Failed to load students:",n),this.students=[]}}unlock(){this.unlocked=!0}lock(){this.unlocked=!1,this.showScores=!1,this.showPinReset=!1}render(){return this.unlocked?ne` + `,zr([cn({type:Array})],Mr.prototype,"students",2),zr([cn({type:Boolean,reflect:!0})],Mr.prototype,"open",2),zr([ln()],Mr.prototype,"confirmingStudent",2),zr([ln()],Mr.prototype,"confirmDialogOpen",2),zr([ln()],Mr.prototype,"errorMessage",2),zr([cn({type:Boolean})],Mr.prototype,"showModal",1),Mr=zr([on("qd-pin-reset-dialog")],Mr);var Ur=Object.defineProperty,jr=Object.getOwnPropertyDescriptor,Hr=(t,n,s,r)=>{for(var o,a=r>1?void 0:r?jr(n,s):n,d=t.length-1;d>=0;d--)(o=t[d])&&(a=(r?o(n,s,a):o(a))||a);return r&&a&&Ur(n,s,a),a};let Br=class extends sn{constructor(){super(...arguments),this.unlocked=!1,this.showScores=!1,this.students=[],this.showStudentAnswers=!1,this.showPinReset=!1,this.helpOpen=!1,this.handleLoginEvent=t=>{const n=t,s=n.detail?.role;this.updateVisibility(),"instructor"===s&&(this.unlock(),this.refreshStudents())},this.handleLogoutEvent=()=>{this.updateVisibility(),this.lock()},this.handleResetPins=async()=>{await this.refreshStudents(),this.showPinReset=!0},this.handleClosePinReset=()=>{this.showPinReset=!1},this.handlePinReset=()=>{this.dispatchEvent(new CustomEvent("qd:pin-reset",{bubbles:!0,composed:!0}))},this.handleUnlock=()=>{this.unlocked=!0,this.dispatchEvent(new CustomEvent("qd:instructor-unlock",{bubbles:!0,composed:!0}))},this.handleViewScores=async()=>{await this.refreshStudents(),this.showScores=!0},this.handleCloseScores=()=>{this.showScores=!1},this.handleDataCleared=()=>{this.dispatchEvent(new CustomEvent("qd:data-cleared",{bubbles:!0,composed:!0})),this.students=[]},this.handleLogout=()=>{const t=W(G.SESSION);(new SessionService).clearSession(),this.dispatchEvent(new CustomEvent("qd:logout",{detail:{serviceId:t?.serviceId||"unknown"},bubbles:!0,composed:!0}))},this.handleToggleStudentAnswers=async t=>{const n=t.target;this.showStudentAnswers=n.checked,this.showStudentAnswers&&0===this.students.length&&await this.refreshStudents();const s=this.showStudentAnswers?"qd:instructor-show-answers":"qd:instructor-hide-answers";this.dispatchEvent(new CustomEvent(s,{bubbles:!0,composed:!0})),sessionStorage.setItem(K,String(this.showStudentAnswers))},this.handleHelpOpen=()=>{this.helpOpen=!0},this.handleHelpClose=()=>{this.helpOpen=!1}}connectedCallback(){super.connectedCallback(),this.updateVisibility();const t=ue();t&&(this.unlock(),this.refreshStudents());const n=sessionStorage.getItem(K);null!==n&&(this.showStudentAnswers="true"===n,this.showStudentAnswers&&t&&setTimeout(()=>{this.dispatchEvent(new CustomEvent("qd:instructor-show-answers",{bubbles:!0,composed:!0}))},100)),document.addEventListener("qd:login",this.handleLoginEvent),document.addEventListener("qd:logout",this.handleLogoutEvent)}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("qd:login",this.handleLoginEvent),document.removeEventListener("qd:logout",this.handleLogoutEvent)}updateVisibility(){this.toggleAttribute("data-show",ue())}setStudents(t){this.students=t}async refreshStudents(){const t=W(G.SESSION);if(t)try{const n=Be();this.students=await n.getStudentsByRelease(t.release)}catch(n){console.error("Failed to load students:",n),this.students=[]}}unlock(){this.unlocked=!0}lock(){this.unlocked=!1,this.showScores=!1,this.showPinReset=!1}render(){return this.unlocked?Qt`
                                    Instructor Mode @@ -1771,11 +1966,12 @@ const tn=2;class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,n,s){ - - - + + + + @@ -1794,14 +1990,14 @@ const tn=2;class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,n,s){
                                    - `:ne` + `:Qt` - `}};as.styles=[Pn,wt` + `}};Br.styles=[Ws,lt` :host { display: none; /* Hidden by default, shown when instructor logged in */ } @@ -1809,5 +2005,5 @@ const tn=2;class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,n,s){ :host([data-show]) { display: block; } - `],is([ve()],as.prototype,"unlocked",2),is([ve()],as.prototype,"showScores",2),is([ve()],as.prototype,"students",2),is([ve()],as.prototype,"showStudentAnswers",2),is([ve()],as.prototype,"showPinReset",2),is([ve()],as.prototype,"helpOpen",2),as=is([me("qd-instructor")],as);const cs={statusPanel:".wh_top_menu_and_indexterms_link"};function ds(t={}){const n=t.statusPanelContainer||cs.statusPanel;!function(t){const n=document.querySelector(t);if(!n)return null;const s=document.createElement("qd-login");n.appendChild(s)}(n),function(t){const n=document.querySelector(t);if(!n)return null;const s=document.createElement("qd-status");n.appendChild(s)}(n),function(t){const n=document.querySelector(t);if(!n)return null;const s=document.createElement("qd-instructor");n.appendChild(s)}(n)}const ls={red:"qd-badge-red",amber:"qd-badge-amber",green:"qd-badge-green"},us={unstarted:"red",incomplete:"amber",complete:"green"};function hs(t){const n=function(t,n){if(!t||!n?.pages)return"unstarted";const s=n.pages[t];return s?.state??"unstarted"}(t.getAttribute("data-page-id"),C(u.CACHE));!function(t,n){Object.values(ls).forEach(n=>{t.classList.remove(n)});const s=ls[us[n]];t.classList.add(s)}(t,n)}function ps(){const t=document.querySelectorAll(".quizPageBtn"),n=C(u.CACHE),s="true"===sessionStorage.getItem(u.INSTRUCTOR);if(!n||s)return t.forEach(t=>{Object.values(ls).forEach(n=>{t.classList.remove(n)})}),void t.length;t.forEach(t=>{hs(t)}),t.length}function gs(t){const n=t,{pageId:s}=n.detail,o=document.querySelector(`[data-page-id="${s}"]`);o&&o.classList.contains("quizPageBtn")&&hs(o)}function ms(){ps()}function fs(){const t=document.querySelectorAll(".quizPageBtn");t.forEach(t=>{Object.values(ls).forEach(n=>{t.classList.remove(n)})}),t.length}const bs={initialized:!1};async function ys(t={}){if(bs.initialized)return void a("Bootstrap already initialized, skipping");if(function(){if(document.getElementById("qd-global-styles"))return;const t=document.createElement("style");t.id="qd-global-styles",t.textContent="\n /* Sonar Quiz System - Global Styles */\n .qd-hidden {\n display: none !important;\n }\n\n /* Quiz table interactive mode styles */\n .qd-quiz-interactive .qd-quiz-input {\n width: 100%;\n padding: 0.5rem;\n font-size: inherit;\n border: 1px solid #ccc;\n border-radius: 4px;\n }\n\n /* Ensure select elements inherit font properly */\n .qd-quiz-interactive select.qd-quiz-input {\n font-family: inherit;\n font-size: inherit;\n }\n\n /* Validation styling for answer cells */\n .qd-quiz-interactive .qd-answer-correct {\n background-color: #d4edda !important;\n border-color: #28a745 !important;\n }\n\n .qd-quiz-interactive .qd-answer-incorrect {\n background-color: #f8d7da !important;\n border-color: #dc3545 !important;\n }\n\n /* Home page badge styles (R/A/G indicators) */\n .qd-badge-red {\n border-left: 4px solid #d32f2f !important;\n background-color: #ffebee !important;\n }\n\n .qd-badge-amber {\n border-left: 4px solid #ff9800 !important;\n background-color: #fff3e0 !important;\n }\n\n .qd-badge-green {\n border-left: 4px solid #4caf50 !important;\n background-color: #e8f5e9 !important;\n }\n\n /* Instructor mode: Student answers display */\n .qd-student-answers {\n margin-top: 12px;\n padding: 8px;\n background: #f8f9fa;\n border-radius: 4px;\n border: 1px solid #dee2e6;\n }\n\n .qd-student-answer {\n font-size: 12px;\n padding: 4px 0;\n line-height: 1.4;\n }\n\n .qd-student-answer.qd-correct {\n color: #28a745;\n }\n\n .qd-student-answer.qd-incorrect {\n color: #dc3545;\n }\n\n .qd-student-name {\n font-weight: 600;\n }\n\n .qd-student-answer-text {\n margin: 0 4px;\n }\n\n .qd-timestamp {\n color: #6c757d;\n font-size: 11px;\n margin-left: 8px;\n }\n\n /* Modal error message styles (needed because qd-modal moves to body) */\n .error-message {\n color: #d32f2f;\n font-size: 12px;\n padding: 8px;\n background: #ffebee;\n border-radius: 4px;\n border-left: 3px solid #d32f2f;\n }\n ",document.head.appendChild(t)}(),!t.dbName){const t="FATAL: dbName not provided in bootstrap config. Processing stopped.";throw console.error(t),new Error(t)}const n=Z(t.dbName);await n.init();const s=new EventCoordinator;s.initialize(),bs.eventCoordinator=s;const o=new SessionCoordinator;o.initialize(),bs.sessionCoordinator=o,ds({statusPanelContainer:t.statusPanelContainer,dbName:t.dbName}),!1!==t.autoEnhanceQuizTables&&function(){const t=document.querySelectorAll("table.qd-quiz");if(0===t.length)return;t.length;for(const s of Array.from(t))try{tt(s,{interactive:!1})}catch(n){a(`Failed to enhance quiz table: ${n.message}`)}t.length}(),!1!==t.autoEnhanceAnalysisTables&&function(){const t=document.querySelectorAll("table.qd-analysis");if(0===t.length)return;t.length;for(const s of Array.from(t))try{pt(s,{interactive:!1})}catch(n){a(`Failed to enhance analysis table: ${n.message}`)}t.length}(),!1!==t.autoEnhanceHomeBadges&&function(){const t=document.querySelectorAll(".quizPageBtn");if(0===t.length)return;t.length;try{document.querySelectorAll(".quizPageBtn").forEach(t=>{const n=function(t){const n=t.getAttribute("href");return n&&n.substring(n.lastIndexOf("/")+1).replace(/\.html?$/i,"")||null}(t);n?(t.setAttribute("data-page-id",n),t.textContent?.trim()):t.getAttribute("href")}),ps(),document.addEventListener("qd:state-changed",gs),document.addEventListener("qd:cache-rebuild",ms),document.addEventListener("qd:logout",fs)}catch(n){a(`Failed to enhance home badges: ${n.message}`)}}(),await async function(){if("true"===sessionStorage.getItem(u.INSTRUCTOR))return void vs();const t=C(u.SESSION);if(!t)return;t.serviceId;const n=Z();let s=C(u.CACHE);if(!s)try{const o=await n.loadStudentRecord(t);s=n.buildCache(o),$(u.CACHE,s),s.totals.total}catch{a("Failed to rebuild cache from IndexedDB, using empty cache"),s={totals:{total:0,answered:0,correct:0},pages:{}},$(u.CACHE,s)}const o=window.location.pathname,r=o.substring(o.lastIndexOf("/")+1).replace(/\.html?$/i,"");if(!r)return;const c=document.querySelectorAll("table.qd-quiz");c.length>0&&(c.length,c.forEach(t=>{tt(t,{interactive:!0,pageId:r})}));const d=document.querySelectorAll("table.qd-analysis");d.length>0&&(d.length,d.forEach(t=>{pt(t,{interactive:!0,pageId:r})}))}(),document.addEventListener("qd:login",t=>{const n=t.detail;"instructor"===n?.role&&vs()}),bs.initialized=!0}function vs(){const t=window.location.pathname,n=t.substring(t.lastIndexOf("/")+1).replace(/\.html?$/i,""),s=document.querySelectorAll("table.qd-quiz");0!==s.length&&(s.forEach(t=>{const s=ot(t);if(!s)return;s.pageId=n,t.classList.add("qd-quiz-instructor");t.querySelectorAll("td:nth-child(2), th:nth-child(2)").forEach(t=>{t.classList.remove("qd-hidden")});t.querySelectorAll("tbody td:nth-child(2)").forEach((t,n)=>{const o=s.parsed.questions[n];o&&t instanceof HTMLTableCellElement&&(t.textContent=o.correctAnswer)});t.querySelectorAll("td:nth-child(3), th:nth-child(3)").forEach(t=>t.classList.remove("qd-hidden"));const o=()=>{rt(t,s)};document.addEventListener("qd:instructor-show-answers",o),document.addEventListener("qd:instructor-hide-answers",()=>{it(t)});"true"===sessionStorage.getItem("qd/instructor/showAnswers")&&o()}),s.length)}if("undefined"!=typeof window){const t=()=>{const t=ke();ys({dbName:t.dbName,statusPanelContainer:t.statusPanelContainer,autoEnhanceQuizTables:!0,autoEnhanceAnalysisTables:!0,autoEnhanceHomeBadges:!0}).catch(t=>{console.error("[FATAL] Bootstrap failed:",t)})};"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{t()}):t()}return t.BUILD_DATE="28/Nov/2025",t.DEFAULT_CONTAINERS=cs,t.Debouncer=Debouncer,t.OBFUSCATION_PREFIX=O,t.SCHEMA_VERSION=2,t.SESSION_TIMEOUT_MS=l,t.STORAGE_KEYS=u,t.VERSION="0.1.0-phase3.1",t.bootstrap=ys,t.calculateCompletionState=W,t.cleanup=function(){bs.initialized?(bs.eventCoordinator?.cleanup(),bs.sessionCoordinator?.cleanup(),bs.initialized=!1,bs.eventCoordinator=void 0,bs.sessionCoordinator=void 0):a("Bootstrap not initialized, nothing to cleanup")},t.clearQuizData=q,t.decode=U,t.deriveKey=T,t.encode=D,t.enhanceAnalysisTable=pt,t.enhanceQuizTable=tt,t.error=r,t.generateCellKey=dt,t.generateTableId=ct,t.getAnalysisTableMetadata=function(t){return ht.get(t)},t.getJSON=C,t.getQuizTableMetadata=ot,t.info=o,t.injectComponents=ds,t.isAnalysisTableEnhanced=function(t){return ht.has(t)},t.isCellEditable=lt,t.isInitialized=function(){return bs.initialized},t.isObfuscated=j,t.isQuizTableEnhanced=function(t){return X.has(t)},t.migrateObfuscation=fn,t.parseAnalysisTable=ut,t.parseQuizTable=c,t.setJSON=$,t.validateAnswer=d,t.warn=a,Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t}({}); + `],Hr([ln()],Br.prototype,"unlocked",2),Hr([ln()],Br.prototype,"showScores",2),Hr([ln()],Br.prototype,"students",2),Hr([ln()],Br.prototype,"showStudentAnswers",2),Hr([ln()],Br.prototype,"showPinReset",2),Hr([ln()],Br.prototype,"helpOpen",2),Br=Hr([on("qd-instructor")],Br);const Fr={statusPanel:".wh_top_menu_and_indexterms_link"};function Vr(t={}){const n=t.statusPanelContainer||Fr.statusPanel;!function(t){const n=document.querySelector(t);if(!n)return o(`Login component not injected: container '${t}' not found`),null;const s=document.createElement("qd-login");n.appendChild(s),o("Login component injected")}(n),function(t){const n=document.querySelector(t);if(!n)return o(`Status component not injected: container '${t}' not found`),null;const s=document.createElement("qd-status");n.appendChild(s),o("Status component injected")}(n),function(t){const n=document.querySelector(t);if(!n)return o(`Instructor component not injected: container '${t}' not found`),null;const s=document.createElement("qd-instructor");n.appendChild(s),o("Instructor component injected")}(n),function(t){const n=document.querySelector(t);if(!n)return;n.classList.add(Qr),n.parentElement?.classList.add(Kr)}(n)}const Qr="qd-panel-host",Kr="qd-panel-host-parent";const Wr={red:"qd-badge-red",amber:"qd-badge-amber",green:"qd-badge-green"},Jr={unstarted:"red",incomplete:"amber",complete:"green"};function Yr(t){Object.values(Wr).forEach(n=>{t.classList.remove(n)})}function Xr(t){const n=function(t,n){if(!t||!n?.pages)return"unstarted";const s=n.pages[t];return s?.state??"unstarted"}(t.getAttribute("data-page-id"),W(G.CACHE));!function(t,n){Yr(t);const s=Wr[Jr[n]];t.classList.add(s)}(t,n)}function Gr(){const t=document.querySelectorAll(".quizPageBtn"),n=W(G.CACHE),s=ue();if(!n||s)return t.forEach(t=>{Yr(t)}),void o(s?`Removed badge styling from ${t.length} page links (instructor mode)`:`Removed badge styling from ${t.length} page links (no session)`);t.forEach(t=>{Xr(t)}),o(`Updated ${t.length} page badges`)}function Zr(t){const n=t,{pageId:s}=n.detail,r=document.querySelector(`[data-page-id="${s}"]`);r&&r.classList.contains("quizPageBtn")&&(Xr(r),o(`Updated badge for page ${s}`))}function eo(){o("Cache rebuilt, refreshing all badges"),Gr()}function to(){o("Logout detected, removing all badge styling");const t=document.querySelectorAll(".quizPageBtn");t.forEach(t=>{Yr(t)}),o(`Removed badge styling from ${t.length} page links`)}const no={initialized:!1};async function so(t={}){if(no.initialized)return void d("Bootstrap already initialized, skipping");if(o("Bootstrapping Sonar Quiz System..."),function(){if(document.getElementById("qd-global-styles"))return;const t=document.createElement("style");t.id="qd-global-styles",t.textContent="\n /* Sonar Quiz System - Global Styles */\n .qd-hidden {\n display: none !important;\n }\n\n /* Quiz table interactive mode styles */\n .qd-quiz-interactive .qd-quiz-input {\n width: 100%;\n padding: 0.5rem;\n font-size: inherit;\n border: 1px solid #ccc;\n border-radius: 4px;\n }\n\n /* Ensure select elements inherit font properly */\n .qd-quiz-interactive select.qd-quiz-input {\n font-family: inherit;\n font-size: inherit;\n }\n\n /* Visually hidden text that screen readers still announce (SRD 013 A11Y-02) */\n .qd-sr-only {\n position: absolute !important;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n\n /* Validation styling for answer cells */\n .qd-quiz-interactive .qd-answer-correct {\n background-color: #d4edda !important;\n border-color: #28a745 !important;\n }\n\n .qd-quiz-interactive .qd-answer-incorrect {\n background-color: #f8d7da !important;\n border-color: #dc3545 !important;\n }\n\n /* Non-colour correctness cue: a mark plus hidden text (SRD 013 A11Y-02) */\n .qd-answer-feedback {\n display: inline-block;\n margin-top: 4px;\n font-size: 0.9em;\n font-weight: 600;\n }\n\n .qd-answer-correct .qd-answer-feedback {\n color: #1e7b34;\n }\n\n .qd-answer-incorrect .qd-answer-feedback {\n color: #b02a37;\n }\n\n /* Invalid numeric input message (SRD 013 UX-03) */\n .qd-input-error {\n display: block;\n margin-top: 4px;\n font-size: 0.85em;\n color: #b02a37;\n }\n\n .qd-quiz-interactive .qd-quiz-input[aria-invalid='true'] {\n border-color: #b02a37;\n outline-color: #b02a37;\n }\n\n /* Prompt shown above quiz tables while nobody is logged in (SRD 013 UX-05) */\n .qd-login-notice {\n margin: 0 0 8px;\n padding: 6px 10px;\n border-left: 3px solid #1d6fb8;\n background: #e8f1fb;\n color: #0b4f8a;\n font-size: 0.9em;\n }\n\n /*\n * Narrow screens: give the header's panel container its own full-width row\n * so the login and status panels stay on screen (SRD 013 UX-06)\n */\n /* !important: Oxygen's c-no-wrap and Bootstrap's navbar-collapse rules\n outrank a single class; these only touch elements we marked */\n @media (max-width: 1000px) {\n .qd-panel-host-parent {\n flex-wrap: wrap !important;\n }\n\n .qd-panel-host-parent > .qd-panel-host {\n flex: 1 1 100% !important;\n max-width: 100% !important;\n justify-content: flex-end;\n }\n\n .qd-panel-host qd-login,\n .qd-panel-host qd-status,\n .qd-panel-host qd-instructor {\n max-width: 100%;\n }\n }\n\n /* Home page badge styles (R/A/G indicators) */\n .qd-badge-red {\n border-left: 4px solid #d32f2f !important;\n background-color: #ffebee !important;\n }\n\n .qd-badge-amber {\n border-left: 4px solid #ff9800 !important;\n background-color: #fff3e0 !important;\n }\n\n .qd-badge-green {\n border-left: 4px solid #4caf50 !important;\n background-color: #e8f5e9 !important;\n }\n\n /* Instructor-mode student answers/entries are now rendered by the\n Shadow-DOM / components, which\n own their styles. No global rules are needed here. */\n\n /* Modal error message styles (needed because qd-modal moves to body) */\n .error-message {\n color: #d32f2f;\n font-size: 12px;\n padding: 8px;\n background: #ffebee;\n border-radius: 4px;\n border-left: 3px solid #d32f2f;\n }\n ",document.head.appendChild(t),o("Global styles injected")}(),!t.dbName){const t="FATAL: dbName not provided in bootstrap config. Processing stopped.";throw console.error(t),new Error(t)}const n=Be(t.dbName);await n.init(),await async function(){oe=!1;const t=sessionStorage.getItem(G.INSTRUCTOR);if(null===t)return!1;if(await re(t))return oe=!0,!0;sessionStorage.removeItem(G.INSTRUCTOR);try{const t=JSON.parse(sessionStorage.getItem(G.SESSION)??"null");"INSTRUCTOR"===t?.serviceId&&sessionStorage.removeItem(G.SESSION)}catch{}return!1}();const s=new EventCoordinator;s.initialize(),no.eventCoordinator=s;const r=new SessionCoordinator;r.initialize(),no.sessionCoordinator=r,Vr({statusPanelContainer:t.statusPanelContainer,dbName:t.dbName}),!1!==t.autoEnhanceQuizTables&&ro("table.qd-quiz","quiz",t=>vn(t,{interactive:!1})),!1!==t.autoEnhanceAnalysisTables&&ro("table.qd-analysis","analysis",t=>Nn(t,{interactive:!1})),!1!==t.autoEnhanceHomeBadges&&function(){const t=document.querySelectorAll(".quizPageBtn");if(0===t.length)return void o("No .quizPageBtn links found, skipping badge enhancement");o(`Enhancing home page badges for ${t.length} link(s)...`);try{document.querySelectorAll(".quizPageBtn").forEach(t=>{const n=function(t){const n=t.getAttribute("href");return n&&n.substring(n.lastIndexOf("/")+1).replace(/\.html?$/i,"")||null}(t);n?(t.setAttribute("data-page-id",n),o(`Set data-page-id="${n}" for link: ${t.textContent?.trim()}`)):o(`Failed to extract pageId from href: ${t.getAttribute("href")}`)}),Gr(),document.addEventListener("qd:state-changed",Zr),document.addEventListener("qd:cache-rebuild",eo),document.addEventListener("qd:logout",to),o("Home page badges enhanced with event listeners"),o("Home page badges enhanced")}catch(n){d(`Failed to enhance home badges: ${n.message}`)}}(),await async function(){if(ue())return o("Instructor session detected, revealing answers in non-interactive tables"),void oo();const t=W(G.SESSION);if(!t)return void o("No existing session, tables remain in non-interactive mode");o(`Existing session detected for ${t.serviceId}, upgrading tables to interactive mode`);const n=Be();let s=W(G.CACHE);if(!s){o("Cache not found, rebuilding from IndexedDB...");try{const r=await n.loadStudentRecord(t);s=n.buildCache(r),J(G.CACHE,s),o(`Cache rebuilt from IndexedDB: ${s.totals.total} total questions`)}catch{d("Failed to rebuild cache from IndexedDB, using empty cache"),s={totals:{total:0,answered:0,correct:0},pages:{}},J(G.CACHE,s)}}const r=_n();if(!r)return void o("No pageId found, skipping table upgrade");const a=document.querySelectorAll("table.qd-quiz");a.length>0&&(o(`Upgrading ${a.length} quiz table(s) to interactive mode...`),a.forEach(t=>{vn(t,{interactive:!0,pageId:r})}));const c=document.querySelectorAll("table.qd-analysis");c.length>0&&(o(`Upgrading ${c.length} analysis table(s) to interactive mode...`),c.forEach(t=>{Nn(t,{interactive:!0,pageId:r})}))}(),document.addEventListener("qd:login",t=>{const n=t.detail;"instructor"===n?.role&&(o("Instructor login event received, revealing quiz answers"),oo())}),no.initialized=!0,o("Bootstrap complete")}function ro(t,n,s){const r=document.querySelectorAll(t);if(0===r.length)return void o(`No ${n} tables found to enhance`);o(`Enhancing ${r.length} ${n} table(s) in non-interactive mode...`);let a=0;for(const o of Array.from(r))try{s(o),a++}catch(c){d(`Failed to enhance ${n} table: ${c.message}`)}o(`Enhanced ${a} of ${r.length} ${n} table(s) (non-interactive)`)}function oo(){const t=_n(),n=document.querySelectorAll("table.qd-quiz");0!==n.length?(n.forEach(n=>{const s=wn(n);s&&(s.pageId=t,Dn(n,s,{addInstructorClass:!0}))}),o(`Revealed answers for instructor on ${n.length} quiz table(s)`)):o("No quiz tables found to reveal answers for")}if("undefined"!=typeof window){const t=()=>{o("Auto-initializing Sonar Quiz System");const t=w();so({dbName:t.dbName,statusPanelContainer:t.statusPanelContainer,autoEnhanceQuizTables:!0,autoEnhanceAnalysisTables:!0,autoEnhanceHomeBadges:!0}).catch(t=>{console.error("[FATAL] Bootstrap failed:",t)})};"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{t()}):t()}return t.BUILD_DATE="1/Nov/2026",t.DEFAULT_CONTAINERS=Fr,t.Debouncer=Debouncer,t.OBFUSCATION_PREFIX=Ce,t.SCHEMA_VERSION=3,t.SESSION_TIMEOUT_MS=X,t.STORAGE_KEYS=G,t.VERSION="0.2.0",t.bootstrap=so,t.calculateCompletionState=Re,t.cleanup=function(){no.initialized?(o("Cleaning up bootstrap resources..."),no.eventCoordinator?.cleanup(),no.sessionCoordinator?.cleanup(),no.initialized=!1,no.eventCoordinator=void 0,no.sessionCoordinator=void 0,o("Bootstrap cleanup complete")):d("Bootstrap not initialized, nothing to cleanup")},t.clearQuizData=Y,t.decode=Te,t.deriveKey=Ie,t.encode=Oe,t.enhanceAnalysisTable=Nn,t.enhanceQuizTable=vn,t.error=a,t.generateCellKey=$n,t.generateTableId=Sn,t.getAnalysisTableMetadata=function(t){return Ln.get(t)},t.getJSON=W,t.getQuizTableMetadata=wn,t.info=o,t.injectComponents=Vr,t.isAnalysisTableEnhanced=function(t){return Ln.has(t)},t.isCellEditable=qn,t.isInitialized=function(){return no.initialized},t.isObfuscated=Le,t.isQuizTableEnhanced=function(t){return yn.has(t)},t.migrateObfuscation=Is,t.parseAnalysisTable=En,t.parseQuizTable=O,t.setDebugMode=function(t){n=t},t.setJSON=J,t.validateAnswer=T,t.warn=d,Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t}({}); //# sourceMappingURL=sonar-quiz.iife.js.map diff --git a/dita-demo/oxygen-webhelp/template/resources/sonar-quiz.iife.js.map b/dita-demo/oxygen-webhelp/template/resources/sonar-quiz.iife.js.map index 57dd335f..29673e7f 100644 --- a/dita-demo/oxygen-webhelp/template/resources/sonar-quiz.iife.js.map +++ b/dita-demo/oxygen-webhelp/template/resources/sonar-quiz.iife.js.map @@ -1 +1 @@ -{"version":3,"file":"sonar-quiz.iife.js","sources":["../src/utils/logger.ts","../src/services/quiz-parser.ts","../src/types/contracts.ts","../src/services/session.ts","../src/utils/calculation-helpers.ts","../src/utils/date-helpers.ts","../src/utils/debouncer.ts","../src/utils/dom-helpers.ts","../src/utils/event-helpers.ts","../src/utils/storage-helpers.ts","../src/services/storage/adapter-utils.ts","../src/config/feature-flags.ts","../src/services/storage/obfuscation.ts","../src/services/storage/indexeddb.ts","../src/services/state-calculator.ts","../src/services/storage-service.ts","../src/enhancers/quiz-table.ts","../src/services/question-input.ts","../src/services/answer-display.ts","../src/services/analysis-parser.ts","../src/enhancers/analysis-table.ts","../src/init/event-coordinator.ts","../src/init/session-coordinator.ts","../node_modules/@lit/reactive-element/css-tag.js","../node_modules/@lit/reactive-element/reactive-element.js","../node_modules/lit-html/lit-html.js","../node_modules/lit-element/lit-element.js","../node_modules/@lit/reactive-element/decorators/custom-element.js","../node_modules/@lit/reactive-element/decorators/property.js","../node_modules/@lit/reactive-element/decorators/state.js","../node_modules/@lit/reactive-element/decorators/query.js","../node_modules/@lit/reactive-element/decorators/base.js","../src/config/dom-config-reader.ts","../src/services/storage/migration.ts","../src/services/auth/pin-service.ts","../src/services/auth/rate-limiter.ts","../src/components/qd-build-info.ts","../src/components/qd-modal.ts","../src/components/qd-password-modal.ts","../node_modules/lit-html/directive.js","../node_modules/lit-html/directives/unsafe-html.js","../src/components/qd-confirm-dialog.ts","../src/components/qd-help-trigger.ts","../src/components/qd-help-popup.ts","../src/services/storage/obfuscation-migration.ts","../src/components/qd-migration-dialog.ts","../src/config/help-content.ts","../src/components/qd-login.ts","../src/utils/validation-helpers.ts","../src/components/qd-status.ts","../src/components/qd-instructor/shared-styles.ts","../src/utils/security.ts","../src/config/instructor-password.ts","../src/components/qd-instructor/qd-instructor-unlock.ts","../src/components/qd-scores-modal.ts","../src/components/qd-instructor/qd-instructor-scores.ts","../src/components/qd-instructor/qd-instructor-export.ts","../src/components/qd-instructor/qd-instructor-manage.ts","../src/components/qd-pin-reset-dialog.ts","../src/components/qd-instructor/qd-instructor.ts","../src/init/component-injector.ts","../src/enhancers/home-badges.ts","../src/init/bootstrap.ts","../src/index.ts"],"sourcesContent":["/**\n * Structured logging with sanitization\n *\n * Provides debug/info/error logging with automatic sanitization of sensitive data.\n * Debug logs are controlled by a runtime flag to prevent production leakage.\n */\n\nimport type { ServiceId } from '../types/contracts.js';\n\n/**\n * Debug mode flag\n *\n * Set to true for development logging, false for production.\n * Can be controlled via data-debug attribute on script tag.\n */\nlet debugEnabled = false;\n\n/**\n * Enable or disable debug logging\n *\n * @param enabled - Whether to enable debug logs\n */\nexport function setDebugMode(enabled: boolean): void {\n debugEnabled = enabled;\n}\n\n/**\n * Check if debug mode is enabled\n */\nexport function isDebugEnabled(): boolean {\n return debugEnabled;\n}\n\n/**\n * Mask sensitive service ID\n *\n * Replaces middle characters with asterisks for privacy.\n *\n * @param serviceId - Service ID to mask\n * @returns Masked service ID (e.g., \"RN2344\" → \"RN****\")\n *\n * @example\n * ```typescript\n * const masked = maskServiceId('RN2344');\n * console.log(masked); // \"RN****\"\n * ```\n */\nexport function maskServiceId(serviceId: ServiceId): string {\n if (serviceId.length < 2) {\n return '**';\n }\n if (serviceId.length === 2) {\n return serviceId; // Keep 2-char IDs unmasked\n }\n const prefix = serviceId.slice(0, 2);\n const suffix = '*'.repeat(serviceId.length - 2);\n return prefix + suffix;\n}\n\n/**\n * Sanitize object by removing or masking sensitive fields\n *\n * Removes: name, passwordHash\n * Masks: serviceId\n *\n * @param obj - Object to sanitize\n * @returns Sanitized copy of object\n *\n * @example\n * ```typescript\n * const data = { serviceId: 'RN2344', name: 'John Doe', score: 95 };\n * const safe = sanitize(data);\n * console.log(safe); // { serviceId: 'RN****', score: 95 }\n * ```\n */\nexport function sanitize(obj: T): Partial {\n if (obj === null || typeof obj !== 'object') {\n return obj;\n }\n\n const sanitized: Record = {};\n\n for (const [key, value] of Object.entries(obj)) {\n // Remove sensitive fields\n if (key === 'name' || key === 'passwordHash') {\n continue;\n }\n\n // Mask service IDs\n if (key === 'serviceId' && typeof value === 'string') {\n sanitized[key] = maskServiceId(value);\n continue;\n }\n\n // Recursively sanitize nested objects\n if (typeof value === 'object' && value !== null) {\n sanitized[key] = sanitize(value);\n continue;\n }\n\n sanitized[key] = value;\n }\n\n return sanitized as Partial;\n}\n\n/**\n * Log debug message (only in debug mode)\n *\n * @param message - Debug message\n * @param data - Optional data to log (will be sanitized)\n */\nexport function debug(message: string, data?: unknown): void {\n if (debugEnabled) {\n if (data !== undefined) {\n // eslint-disable-next-line no-console\n console.log(`[DEBUG] ${message}`, sanitize(data));\n } else {\n // eslint-disable-next-line no-console\n console.log(`[DEBUG] ${message}`);\n }\n }\n}\n\n/**\n * Log info message (only in debug mode)\n *\n * @param message - Info message\n * @param data - Optional data to log (will be sanitized)\n */\nexport function info(message: string, data?: unknown): void {\n if (debugEnabled) {\n if (data !== undefined) {\n // eslint-disable-next-line no-console\n console.log(`[INFO] ${message}`, sanitize(data));\n } else {\n // eslint-disable-next-line no-console\n console.log(`[INFO] ${message}`);\n }\n }\n}\n\n/**\n * Log error message\n *\n * @param message - Error message\n * @param error - Error object or data\n */\nexport function error(message: string, error?: unknown): void {\n if (error instanceof Error) {\n const errorObj: { name: string; message: string; stack?: string } = {\n name: error.name,\n message: error.message,\n };\n if (debugEnabled && error.stack) {\n errorObj.stack = error.stack;\n }\n console.error(`[ERROR] ${message}`, errorObj);\n } else if (error !== undefined) {\n console.error(`[ERROR] ${message}`, sanitize(error));\n } else {\n console.error(`[ERROR] ${message}`);\n }\n}\n\n/**\n * Log warning message\n *\n * @param message - Warning message\n * @param data - Optional data to log (will be sanitized)\n */\nexport function warn(message: string, data?: unknown): void {\n if (data !== undefined) {\n console.warn(`[WARN] ${message}`, sanitize(data));\n } else {\n console.warn(`[WARN] ${message}`);\n }\n}\n\n/**\n * Logger object with all methods\n */\nexport const logger = {\n setDebugMode,\n isDebugEnabled,\n debug,\n info,\n warn,\n error,\n sanitize,\n maskServiceId,\n};\n","/**\n * Quiz Table Parser\n *\n * Parses DITA-generated HTML quiz tables and extracts question data.\n *\n * Table Structure:\n * - Must have class \"qd-quiz\"\n * - Exactly 3 columns: Question | Answer | Detail\n * - MCQ: Detail column contains
                                      with options\n * - Numeric: Detail column contains tolerance number\n */\n\nimport type { ParsedQuizTable, QuizQuestion } from '../types/contracts.js';\n\n/**\n * Parse a quiz table and extract question data\n *\n * @param table - HTMLTableElement with class \"qd-quiz\"\n * @returns ParsedQuizTable with questions and any validation errors\n */\nexport function parseQuizTable(table: HTMLTableElement): ParsedQuizTable {\n const errors: string[] = [];\n const questions: QuizQuestion[] = [];\n\n // Validate table has correct class\n if (!table.classList.contains('qd-quiz')) {\n errors.push('Table must have class \"qd-quiz\"');\n return { element: table, questions, errors };\n }\n\n // Get all rows from tbody (skip thead if present)\n const rows = Array.from(table.querySelectorAll('tbody tr'));\n\n if (rows.length === 0) {\n errors.push('Quiz table has no data rows');\n return { element: table, questions, errors };\n }\n\n // Parse each row\n rows.forEach((row, index) => {\n const cells = Array.from(row.querySelectorAll('td'));\n\n // Validate row has exactly 3 columns\n if (cells.length !== 3) {\n errors.push(\n `Row ${index + 1} has ${cells.length} columns, expected 3 (Question | Answer | Detail)`,\n );\n return;\n }\n\n const questionCell = cells[0];\n const answerCell = cells[1];\n const detailCell = cells[2];\n\n if (!questionCell || !answerCell || !detailCell) {\n return;\n }\n\n // Extract question text\n const questionText = questionCell.textContent?.trim() || '';\n if (!questionText) {\n errors.push(`Row ${index + 1} has empty question text`);\n return;\n }\n\n // Extract correct answer\n const correctAnswer = answerCell.textContent?.trim() || '';\n if (!correctAnswer) {\n errors.push(`Row ${index + 1} has empty answer`);\n return;\n }\n\n // Determine question kind and extract additional data\n const olElement = detailCell.querySelector('ol');\n\n if (olElement) {\n // MCQ question - extract options from ordered list\n const options = extractMcqOptions(olElement);\n\n if (options.length === 0) {\n errors.push(`Row ${index + 1} MCQ has no options in
                                        `);\n return;\n }\n\n questions.push({\n text: questionText,\n kind: 'mcq',\n correctAnswer,\n options,\n });\n } else {\n // Numeric question - extract tolerance\n const toleranceText = detailCell.textContent?.trim() || '';\n const tolerance = parseFloat(toleranceText);\n\n if (isNaN(tolerance)) {\n errors.push(\n `Row ${index + 1} appears to be numeric but has invalid tolerance: \"${toleranceText}\"`,\n );\n return;\n }\n\n questions.push({\n text: questionText,\n kind: 'numeric',\n correctAnswer,\n tolerance,\n });\n }\n });\n\n return {\n element: table,\n questions,\n errors: errors.length > 0 ? errors : undefined,\n };\n}\n\n/**\n * Extract option text from MCQ ordered list\n *\n * @param ol - The
                                          element containing options\n * @returns Array of option strings\n */\nfunction extractMcqOptions(ol: HTMLOListElement): string[] {\n const listItems = Array.from(ol.querySelectorAll('li'));\n return listItems.map((li) => li.textContent?.trim() || '').filter((text) => text.length > 0);\n}\n\n/**\n * Find all quiz tables in the document\n *\n * @param doc - Document to search (defaults to global document)\n * @returns Array of ParsedQuizTable results\n */\nexport function findQuizTables(doc: Document = document): ParsedQuizTable[] {\n const tables = Array.from(doc.querySelectorAll('table.qd-quiz'));\n return tables.map((table) => parseQuizTable(table));\n}\n\n/**\n * Validate answer against question\n *\n * @param question - The quiz question\n * @param answer - The user's answer\n * @returns true if answer is correct\n */\nexport function validateAnswer(question: QuizQuestion, answer: string): boolean {\n if (!answer || answer.trim() === '') {\n return false;\n }\n\n const trimmedAnswer = answer.trim();\n\n if (question.kind === 'mcq') {\n // MCQ: exact match of option number (1-indexed)\n return trimmedAnswer === question.correctAnswer;\n } else {\n // Numeric: within tolerance\n const userValue = parseFloat(trimmedAnswer);\n const correctValue = parseFloat(question.correctAnswer);\n\n if (isNaN(userValue) || isNaN(correctValue)) {\n return false;\n }\n\n const tolerance = question.tolerance ?? 0;\n return Math.abs(userValue - correctValue) <= tolerance;\n }\n}\n","/**\n * Frozen Type Contracts for Sonar Quiz System\n * Version: 1.1.0 (Fixed PageCache with answers field)\n *\n * These types are FROZEN and must not be modified without version bump.\n * Any changes require migration strategy and backwards compatibility.\n *\n * Changelog:\n * - 1.1.0: Added missing `answers` field to PageCache (fixes 78 eslint-disable comments)\n * - 1.0.0: Initial contracts\n */\n\n// ============================================================================\n// CORE IDENTIFIERS\n// ============================================================================\n\n/** Release identifier format: \"MM-YYYY\" */\nexport type ReleaseId = string;\n\n/** Service ID for student identification */\nexport type ServiceId = string;\n\n/** Page identifier from DITA document */\nexport type PageId = string;\n\n/** Table identifier (16-char hash based on table structure: rows x cols + class name) */\nexport type TableId = string;\n\n/** Cell key format: \"R{row}C{col}#f:{hash}\" where hash is 8-char from normalized content */\nexport type CellKey = string;\n\n// ============================================================================\n// ENUMERATIONS\n// ============================================================================\n\n/** Page completion state */\nexport type CompletionState = 'unstarted' | 'incomplete' | 'complete';\n\n/** Question type in quiz */\nexport type QuestionKind = 'mcq' | 'numeric';\n\n// ============================================================================\n// QUIZ ENTITIES\n// ============================================================================\n\n/** Individual quiz answer with correctness */\nexport interface AnswerRecord {\n /** User's answer value */\n answer: string;\n /** Whether the answer is correct */\n success: boolean;\n /** Timestamp when answer was submitted (ISO 8601) */\n timestamp: string;\n}\n\n/** Quiz question definition */\nexport interface QuizQuestion {\n /** Question text */\n text: string;\n /** Question type */\n kind: QuestionKind;\n /** Correct answer */\n correctAnswer: string;\n /** MCQ options (for mcq type) */\n options?: string[];\n /** Numeric tolerance (for numeric type) */\n tolerance?: number;\n}\n\n// ============================================================================\n// ANALYSIS ENTITIES\n// ============================================================================\n\n/** Analysis table data */\nexport interface AnalysisData {\n /** Unique table identifier */\n tableId: TableId;\n /** Cell key to content mapping */\n cells: Record;\n /** First edit timestamp (ISO 8601) */\n firstEdited?: string;\n /** Last edit timestamp (ISO 8601) */\n lastEdited?: string;\n}\n\n// ============================================================================\n// PAGE DATA\n// ============================================================================\n\n/** Student's data for a specific page */\nexport interface PageData {\n /** Array of quiz answers */\n answers: AnswerRecord[];\n /** Calculated completion state */\n state: CompletionState;\n /** First attempt timestamp (ISO 8601) */\n firstAttempted?: string;\n /** Last attempt timestamp (ISO 8601) */\n lastAttempted?: string;\n /** Analysis table data if present */\n analysis?: AnalysisData;\n}\n\n// ============================================================================\n// STUDENT RECORD\n// ============================================================================\n\n/** Complete student progress record */\nexport interface StudentRecord {\n /** Schema version for migrations */\n schema: number;\n /** Document identifier */\n docId: string;\n /** Release version */\n release: ReleaseId;\n /** Student service ID */\n serviceId: ServiceId;\n /** Student name */\n name: string;\n /** Total questions attempted */\n attempted: number;\n /** Total correct answers */\n correct: number;\n /** Last update timestamp (ISO 8601) */\n updated: string;\n /** Page data by page ID */\n pages: Record;\n\n // PIN Authentication (v2)\n /** SHA-256 hash of 4-digit PIN */\n pinHash?: string;\n /** ISO 8601 timestamp when PIN was created */\n pinCreatedAt?: string;\n /** ISO 8601 timestamp when PIN was last reset */\n pinResetAt?: string;\n}\n\n// ============================================================================\n// PIN AUTHENTICATION (v2)\n// ============================================================================\n\n/** Rate limiting state for PIN attempts (stored in sessionStorage) */\nexport interface PinAttemptState {\n /** Student identifier */\n serviceId: ServiceId;\n /** Failed attempt count (0-3) */\n attempts: number;\n /** ISO 8601 timestamp when lockout expires, or null */\n lockoutUntil: string | null;\n /** ISO 8601 timestamp of last attempt */\n lastAttempt: string;\n}\n\n/** Audit trail for instructor PIN resets (stored in IndexedDB) */\nexport interface PinResetEvent {\n /** UUID v4 */\n eventId: string;\n /** Student affected */\n serviceId: ServiceId;\n /** Actor type */\n resetBy: 'instructor';\n /** ISO 8601 timestamp */\n resetAt: string;\n /** Context */\n release: ReleaseId;\n}\n\n// ============================================================================\n// SESSION MANAGEMENT\n// ============================================================================\n\n/**\n * Active session data\n *\n * Note: serviceId and release are duplicated from the storage key\n * for convenient access without requiring a storage lookup\n */\nexport interface SessionData {\n /** Student service ID (duplicated from storage key) */\n serviceId: ServiceId;\n /** Student name */\n name: string;\n /** Current release (duplicated from storage key) */\n release: ReleaseId;\n /** Login timestamp (ISO 8601) */\n loginTime: string;\n /** Last activity timestamp (ISO 8601) */\n lastActivity: string;\n /** Session expiry timestamp (ISO 8601) */\n expiresAt: string;\n /** Whether instructor mode is unlocked */\n instructorUnlocked: boolean;\n /** Instructor unlock timestamp (ISO 8601) */\n unlockTime?: string;\n}\n\n/**\n * Cached page state for performance\n *\n * CRITICAL FIX: Added `answers` field to fix type safety issues\n * This was missing in v1.0.0, causing 78 eslint-disable comments\n */\nexport interface PageCache {\n /** Page completion state */\n state: CompletionState;\n /** Total number of questions registered on this page */\n total: number;\n /** Number of questions answered */\n answered: number;\n /** Number of correct answers */\n correct: number;\n /** Last update timestamp (ISO 8601) */\n last?: string;\n /** Answer records (ADDED in v1.1.0) */\n answers?: AnswerRecord[];\n /** Analysis table data if present (ADDED in v1.2.0) */\n analysis?: AnalysisData;\n}\n\n/** Session cache for quick access */\nexport interface SessionCache {\n /** Aggregated totals */\n totals: {\n total: number;\n answered: number;\n correct: number;\n };\n /** Per-page cache */\n pages: Record;\n}\n\n// ============================================================================\n// INSTRUCTOR FEATURES\n// ============================================================================\n\n/** Student summary for instructor view */\nexport interface StudentSummary {\n /** Student service ID */\n serviceId: ServiceId;\n /** Student name */\n name: string;\n /** Questions attempted */\n attempted: number;\n /** Correct answers */\n correct: number;\n /** Success percentage */\n percentage: number;\n /** Last activity timestamp */\n lastActive: string;\n}\n\n/** Quiz results export format */\nexport interface QuizExport {\n /** Export timestamp */\n timestamp: string;\n /** Release version */\n release: ReleaseId;\n /** Document ID */\n docId: string;\n /** Student results */\n students: StudentSummary[];\n /** Detailed answers by page */\n details?: {\n pageId: PageId;\n studentId: ServiceId;\n answers: AnswerRecord[];\n }[];\n}\n\n// ============================================================================\n// DOM ENHANCEMENT\n// ============================================================================\n\n/** Quiz table parsing result */\nexport interface ParsedQuizTable {\n /** Table element reference */\n element: HTMLTableElement;\n /** Extracted questions */\n questions: QuizQuestion[];\n /** Validation errors if any */\n errors?: string[];\n}\n\n/** Analysis table parsing result */\nexport interface ParsedAnalysisTable {\n /** Table element reference */\n element: HTMLTableElement;\n /** Table identifier */\n tableId: TableId;\n /** Editable cell positions */\n editableCells: Array<{\n row: number;\n col: number;\n key: CellKey;\n }>;\n /** Validation errors if any */\n errors?: string[];\n}\n\n// ============================================================================\n// STORAGE ADAPTER\n// ============================================================================\n\n/** Storage adapter interface for data persistence */\nexport interface StorageAdapter {\n /** Initialize storage */\n init(): Promise;\n\n /** Get student record */\n getStudent(release: ReleaseId, serviceId: ServiceId): Promise;\n\n /** Save student record */\n saveStudent(record: StudentRecord): Promise;\n\n /** Get all students for a release */\n getStudentsByRelease(release: ReleaseId): Promise;\n\n /** Delete all data */\n clearAll(): Promise;\n\n /** Create backup */\n backup(record: StudentRecord): Promise;\n}\n\n// ============================================================================\n// EVENTS\n// ============================================================================\n\n/** Custom event namespace */\nexport const EVENT_NAMESPACE = 'qd';\n\n/** Event type definitions */\nexport interface QuizEvents {\n 'qd:login': { detail: SessionData };\n 'qd:logout': { detail: { serviceId: ServiceId } };\n 'qd:answer-saved': { detail: { pageId: PageId; answer: AnswerRecord } };\n 'qd:state-changed': { detail: { pageId: PageId; state: CompletionState } };\n 'qd:analysis-saved': {\n detail: { pageId: PageId; tableId: TableId; cellKey: CellKey; content: string };\n };\n 'qd:instructor-unlock': { detail: { timestamp: string } };\n 'qd:instructor-lock': { detail: { timestamp: string } };\n 'qd:data-cleared': { detail: { timestamp: string } };\n 'qd:session-expired': { detail: { timestamp: string } };\n 'qd:storage-error': { detail: { error: Error; operation: string } };\n // PIN Authentication events (v2)\n 'qd:pin-created': { detail: { serviceId: ServiceId; timestamp: string } };\n 'qd:pin-verified': { detail: { serviceId: ServiceId; timestamp: string } };\n 'qd:pin-reset': { detail: { serviceId: ServiceId; resetBy: 'instructor'; timestamp: string } };\n}\n\n// ============================================================================\n// CONSTANTS\n// ============================================================================\n\n/** Current schema version */\nexport const SCHEMA_VERSION = 2;\n\n/** Session timeout in milliseconds (30 minutes) */\nexport const SESSION_TIMEOUT_MS = 30 * 60 * 1000;\n\n/** Storage keys */\nexport const STORAGE_KEYS = {\n SESSION: 'qd/session',\n CACHE: 'qd/state',\n INSTRUCTOR: 'qd/instructor',\n PIN_ATTEMPTS: 'qd:pin-attempts',\n} as const;\n\n/** PIN authentication constants */\nexport const PIN_CONSTANTS = {\n /** Maximum failed attempts before lockout */\n MAX_ATTEMPTS: 3,\n /** Lockout duration in milliseconds (30 seconds) */\n LOCKOUT_MS: 30 * 1000,\n /** PIN length (must be exactly 4 digits) */\n PIN_LENGTH: 4,\n} as const;\n\n/** CSS classes for DOM selection */\nexport const CSS_CLASSES = {\n QUIZ_TABLE: 'qd-quiz',\n ANALYSIS_TABLE: 'qd-analysis',\n TEST_LINK: 'quizPageBtn',\n} as const;\n\n/** Element IDs */\nexport const ELEMENT_IDS = {\n STATUS_PANEL: 'qd-status',\n} as const;\n\n/**\n * CSS selectors for DOM injection points\n *\n * These are default/reference values. Actual selectors are configurable\n * via SonarQuizConfig.statusPanelContainer option.\n *\n * @see SonarQuizConfig in src/index.ts\n */\nexport const INJECTION_SELECTORS = {\n /** Default navbar container for Oxygen WebHelp templates */\n NAVBAR_CONTAINER: '.wh_top_menu_and_indexterms_link',\n} as const;\n\n/** Validation limits */\nexport const LIMITS = {\n MAX_QUESTIONS_PER_PAGE: 100,\n MAX_CELL_CONTENT_LENGTH: 500,\n MAX_NAME_LENGTH: 100,\n MAX_SERVICE_ID_LENGTH: 10,\n} as const;\n","/**\n * Session Management Service\n *\n * Handles user session lifecycle, timeout management, and instructor mode.\n * Integrates with encrypted session storage for secure session data.\n */\n\nimport type {\n SessionData,\n SessionCache,\n ServiceId,\n ReleaseId,\n StudentRecord,\n PageCache,\n PageData,\n CompletionState,\n} from '../types/contracts.js';\nimport { STORAGE_KEYS, SESSION_TIMEOUT_MS } from '../types/contracts.js';\nimport { info, warn, error } from '../utils/logger.js';\nimport { isSessionExpired } from '../utils/calculation-helpers.js';\n\n/**\n * Session Service for managing user sessions\n */\nexport class SessionService {\n /**\n * Create a new session\n *\n * @param serviceId - Student service ID\n * @param name - Student name\n * @param release - Current release ID\n * @returns Created session data\n */\n createSession(serviceId: ServiceId, name: string, release: ReleaseId): SessionData {\n const now = new Date();\n const loginTime = now.toISOString();\n const expiresAt = new Date(now.getTime() + SESSION_TIMEOUT_MS).toISOString();\n\n const session: SessionData = {\n serviceId,\n name,\n release,\n loginTime,\n lastActivity: loginTime,\n expiresAt,\n instructorUnlocked: false,\n };\n\n this.saveSession(session);\n info(`Session created for ${serviceId} (${name})`);\n\n // Emit login event\n this.emitEvent('qd:login', { serviceId, name, release, loginTime });\n\n return session;\n }\n\n /**\n * Get the current session\n *\n * @returns Session data or null if no session exists\n */\n getSession(): SessionData | null {\n try {\n const sessionData = sessionStorage.getItem(STORAGE_KEYS.SESSION);\n if (!sessionData) {\n return null;\n }\n\n const session = JSON.parse(sessionData) as SessionData;\n\n // Validate required fields\n if (!session.serviceId || !session.release || !session.expiresAt) {\n warn('Invalid session data, missing required fields');\n return null;\n }\n\n return session;\n } catch (err) {\n error('Failed to parse session data', err as Error);\n return null;\n }\n }\n\n /**\n * Update last activity time and extend session expiry\n */\n updateActivity(): void {\n const session = this.getSession();\n if (!session) {\n return;\n }\n\n const now = new Date();\n session.lastActivity = now.toISOString();\n session.expiresAt = new Date(now.getTime() + SESSION_TIMEOUT_MS).toISOString();\n\n this.saveSession(session);\n }\n\n /**\n * Check if the current session is expired\n *\n * @returns True if session is expired or doesn't exist\n */\n isExpired(): boolean {\n const session = this.getSession();\n if (!session) {\n return true;\n }\n\n return isSessionExpired(session.expiresAt);\n }\n\n /**\n * Clear the current session\n */\n clearSession(): void {\n const session = this.getSession();\n sessionStorage.removeItem(STORAGE_KEYS.SESSION);\n sessionStorage.removeItem(STORAGE_KEYS.CACHE);\n sessionStorage.removeItem(STORAGE_KEYS.INSTRUCTOR);\n\n // Clear instructor-specific state (FR-001)\n sessionStorage.removeItem('qd/instructor/showAnswers');\n\n if (session) {\n info(`Session cleared for ${session.serviceId}`);\n\n // Emit logout event\n this.emitEvent('qd:logout', {\n serviceId: session.serviceId,\n timestamp: new Date().toISOString(),\n });\n }\n }\n\n /**\n * Unlock instructor mode\n */\n unlockInstructor(): void {\n const session = this.getSession();\n if (!session) {\n return;\n }\n\n session.instructorUnlocked = true;\n session.unlockTime = new Date().toISOString();\n\n this.saveSession(session);\n\n info('Instructor mode unlocked');\n\n // Emit custom event\n this.emitEvent('qd:instructor-unlock', { timestamp: session.unlockTime });\n }\n\n /**\n * Lock instructor mode\n */\n lockInstructor(): void {\n const session = this.getSession();\n if (!session) {\n return;\n }\n\n session.instructorUnlocked = false;\n delete session.unlockTime;\n\n this.saveSession(session);\n\n info('Instructor mode locked');\n\n // Emit custom event\n this.emitEvent('qd:instructor-lock', { timestamp: new Date().toISOString() });\n }\n\n /**\n * Check if instructor mode is unlocked\n *\n * @returns True if instructor mode is unlocked\n */\n isInstructorUnlocked(): boolean {\n const session = this.getSession();\n return session?.instructorUnlocked === true;\n }\n\n /**\n * Get session cache from sessionStorage\n *\n * @returns Session cache or null if not found\n */\n getCache(): SessionCache | null {\n try {\n const cacheData = sessionStorage.getItem(STORAGE_KEYS.CACHE);\n if (!cacheData) {\n return null;\n }\n\n return JSON.parse(cacheData) as SessionCache;\n } catch (err) {\n error('Failed to parse cache data', err);\n return null;\n }\n }\n\n /**\n * Save session cache to sessionStorage\n *\n * @param cache - Cache data to save\n */\n saveCache(cache: SessionCache): void {\n try {\n sessionStorage.setItem(STORAGE_KEYS.CACHE, JSON.stringify(cache));\n } catch (err) {\n error('Failed to save cache', err);\n }\n }\n\n /**\n * Clear the session cache\n */\n clearCache(): void {\n sessionStorage.removeItem(STORAGE_KEYS.CACHE);\n }\n\n /**\n * Save session to sessionStorage\n *\n * @param session - Session data to save\n */\n private saveSession(session: SessionData): void {\n try {\n sessionStorage.setItem(STORAGE_KEYS.SESSION, JSON.stringify(session));\n } catch (err) {\n error('Failed to save session', err);\n }\n }\n\n /**\n * Emit a custom event\n *\n * @param eventName - Name of the event\n * @param detail - Event detail data\n */\n private emitEvent(eventName: string, detail: unknown): void {\n try {\n const event = new CustomEvent(eventName, { detail, bubbles: true });\n document.dispatchEvent(event);\n } catch (err) {\n error(`Failed to emit event ${eventName}`, err);\n }\n }\n}\n\n// ============================================================================\n// CACHE BUILDING UTILITIES\n// ============================================================================\n\n/**\n * Build session cache from a student record\n *\n * This creates a SessionCache structure that provides quick access to\n * page states and totals without querying IndexedDB.\n *\n * @param record - Student record to build cache from\n * @returns Session cache with totals and page entries\n */\nexport function buildCacheFromRecord(record: StudentRecord): SessionCache {\n const cache: SessionCache = {\n totals: {\n total: 0,\n answered: 0,\n correct: 0,\n },\n pages: {},\n };\n\n // Build cache entry for each page\n for (const [pageId, pageData] of Object.entries(record.pages)) {\n const pageCache = buildPageCache(pageId, pageData);\n cache.pages[pageId] = pageCache;\n\n // Accumulate totals\n cache.totals.total += pageCache.total;\n cache.totals.answered += pageCache.answered;\n cache.totals.correct += pageCache.correct;\n }\n\n return cache;\n}\n\n/**\n * Build a page cache entry from page data\n *\n * @param _pageId - Page identifier (unused, kept for API consistency)\n * @param pageData - Page data from student record\n * @returns Page cache entry\n */\nexport function buildPageCache(_pageId: string, pageData: PageData): PageCache {\n // Total is the length of answers array (includes empty/placeholder answers)\n const total = pageData.answers.length;\n const answered = pageData.answers.filter((a) => a.answer.trim() !== '').length;\n const correct = pageData.answers.filter((a) => a.success).length;\n\n return {\n state: pageData.state,\n total,\n answered,\n correct,\n last: pageData.lastAttempted,\n answers: pageData.answers,\n analysis: pageData.analysis, // Preserve analysis data from analysis tables\n };\n}\n\n/**\n * Register page questions in cache\n *\n * Called when a quiz page loads to register the total number of questions.\n * This ensures the status panel shows total registered questions, not just answered.\n *\n * @param cache - Current cache to update\n * @param pageId - Page identifier\n * @param totalQuestions - Total number of questions on the page\n * @returns Updated cache\n */\nexport function registerPageQuestions(\n cache: SessionCache,\n pageId: string,\n totalQuestions: number,\n): SessionCache {\n // Get existing page cache or create new one\n const existingPage = cache.pages[pageId];\n\n // If page already registered with same or higher total, don't update\n if (existingPage && existingPage.total >= totalQuestions) {\n return cache;\n }\n\n // Calculate delta for totals update\n const oldTotal = existingPage?.total || 0;\n const delta = totalQuestions - oldTotal;\n\n // Create/update page entry\n const updatedPage: PageCache = {\n state: existingPage?.state || ('unstarted' as const),\n total: totalQuestions,\n answered: existingPage?.answered || 0,\n correct: existingPage?.correct || 0,\n last: existingPage?.last,\n answers: existingPage?.answers,\n analysis: existingPage?.analysis,\n };\n\n return {\n totals: {\n total: cache.totals.total + delta,\n answered: cache.totals.answered,\n correct: cache.totals.correct,\n },\n pages: {\n ...cache.pages,\n [pageId]: updatedPage,\n },\n };\n}\n\n/**\n * Update cache with a new answer\n *\n * This incrementally updates the cache when a new answer is submitted,\n * avoiding the need to rebuild the entire cache.\n *\n * @param cache - Current cache to update\n * @param pageId - Page where answer was submitted\n * @param isCorrect - Whether the answer is correct\n * @param newState - New completion state for the page\n * @returns Updated cache\n */\nexport function updateCacheWithAnswer(\n cache: SessionCache,\n pageId: string,\n isCorrect: boolean,\n newState: CompletionState,\n): SessionCache {\n const now = new Date().toISOString();\n\n // Get or create page entry\n const pageCache = cache.pages[pageId] || {\n state: 'incomplete' as const,\n total: 0,\n answered: 0,\n correct: 0,\n };\n\n // Update page counts\n const updatedPage: PageCache = {\n ...pageCache,\n state: newState,\n answered: pageCache.answered + 1,\n correct: pageCache.correct + (isCorrect ? 1 : 0),\n last: now,\n };\n\n // Update totals\n const updatedTotals = {\n total: cache.totals.total,\n answered: cache.totals.answered + 1,\n correct: cache.totals.correct + (isCorrect ? 1 : 0),\n };\n\n return {\n totals: updatedTotals,\n pages: {\n ...cache.pages,\n [pageId]: updatedPage,\n },\n };\n}\n\n// ============================================================================\n// SINGLETON PATTERN\n// ============================================================================\n\n/**\n * Create and return a singleton instance of the session service\n */\nlet sessionInstance: SessionService | null = null;\n\nexport function getSessionService(): SessionService {\n if (!sessionInstance) {\n sessionInstance = new SessionService();\n }\n return sessionInstance;\n}\n\n/**\n * Reset the singleton instance (useful for testing)\n */\nexport function resetSessionService(): void {\n sessionInstance = null;\n}\n","/**\n * Calculation Helpers\n *\n * Pure functions for status indicators, percentages, and totals.\n * Feature: 007-lit-component-refactor\n *\n * These functions have no side effects and no DOM dependencies,\n * making them easy to unit test.\n */\n\nimport type { PageData, PageId } from '../types/contracts';\n\n/**\n * Status indicator values for R/A/G progress display.\n */\nexport type StatusIndicator = 'red' | 'amber' | 'green';\n\n/**\n * Calculates R/A/G status indicator from quiz totals.\n *\n * @param total - Total number of questions\n * @param correct - Number of correct answers\n * @returns 'green' if all correct, 'red' if none, 'amber' otherwise\n */\nexport function calculateStatusIndicator(total: number, correct: number): StatusIndicator {\n if (total === 0 || correct === 0) {\n return 'red';\n }\n if (correct === total) {\n return 'green';\n }\n return 'amber';\n}\n\n/**\n * Calculates percentage with safe division.\n *\n * @param correct - Numerator (correct count)\n * @param attempted - Denominator (attempted count)\n * @returns Rounded percentage (0 if attempted is 0)\n */\nexport function calculatePercentage(correct: number, attempted: number): number {\n if (attempted === 0) {\n return 0;\n }\n return Math.round((correct / attempted) * 100);\n}\n\n/**\n * Totals calculated from page data.\n */\nexport interface RecalculatedTotals {\n attempted: number;\n correct: number;\n}\n\n/**\n * Recalculates totals from all pages in a student record.\n * Only counts answers with non-empty answer strings (excludes placeholder entries).\n *\n * @param pages - Record of page ID to page data\n * @returns Aggregated attempted and correct counts\n */\nexport function recalculateTotalsFromPages(pages: Record): RecalculatedTotals {\n let attempted = 0;\n let correct = 0;\n\n for (const pageId in pages) {\n const pageData = pages[pageId];\n if (pageData && pageData.answers && Array.isArray(pageData.answers)) {\n // Filter to only non-empty answers (matches storage-service.ts behavior)\n const answered = pageData.answers.filter((a) => a.answer.trim() !== '');\n attempted += answered.length;\n correct += answered.filter((a) => a.success).length;\n }\n }\n\n return { attempted, correct };\n}\n\n/**\n * Checks if a session has expired.\n *\n * @param expiresAt - ISO 8601 expiration timestamp\n * @param now - Current time (defaults to new Date())\n * @returns True if session has expired\n */\nexport function isSessionExpired(expiresAt: string, now: Date = new Date()): boolean {\n const expiryDate = new Date(expiresAt);\n // Invalid date -> treat as expired\n if (isNaN(expiryDate.getTime())) {\n return true;\n }\n return now >= expiryDate;\n}\n\n/**\n * Masks a service ID for display (shows last N digits).\n *\n * @param serviceId - Full service ID\n * @param visibleDigits - Number of digits to show (default 4)\n * @returns Masked string like \"...1234\"\n */\nexport function maskServiceId(serviceId: string, visibleDigits: number = 4): string {\n if (!serviceId) {\n return '';\n }\n if (serviceId.length <= visibleDigits) {\n return serviceId;\n }\n if (visibleDigits === 0) {\n return '...';\n }\n return '...' + serviceId.slice(-visibleDigits);\n}\n","/**\n * Date formatting utilities for consistent timestamp display across the application.\n * Provides both display formatting (24-hour, month/date/time) and CSV export formatting (ISO 8601).\n */\n\n/**\n * Format options for timestamp display\n */\nexport type TimestampFormat = 'display' | 'csv';\n\n/**\n * Format a date for display in the instructor interface\n * @param date - Date to format\n * @returns Formatted string in \"Nov 19 14:23\" or \"11/19 14:23:45\" format (24-hour time)\n */\nfunction formatDisplayTimestamp(date: Date): string {\n // Use short month name format: \"Nov 19 14:23\"\n const month = date.toLocaleDateString('en-US', { month: 'short' });\n const day = date.getDate();\n const hours = date.getHours().toString().padStart(2, '0');\n const minutes = date.getMinutes().toString().padStart(2, '0');\n\n return `${month} ${day} ${hours}:${minutes}`;\n}\n\n/**\n * Format a date for CSV export\n * @param date - Date to format\n * @returns ISO 8601 formatted string for spreadsheet compatibility\n */\nfunction formatCSVTimestamp(date: Date): string {\n return date.toISOString();\n}\n\n/**\n * Main timestamp formatting function\n * @param date - Date to format (can be Date object or ISO string)\n * @param format - Format type ('display' for UI, 'csv' for export)\n * @returns Formatted timestamp string\n */\nexport function formatTimestamp(date: Date | string, format: TimestampFormat = 'display'): string {\n // Handle null/undefined\n if (date == null) {\n console.warn('Invalid date provided to formatTimestamp:', date);\n return 'Invalid Date';\n }\n\n const dateObj = typeof date === 'string' ? new Date(date) : date;\n\n // Validate date\n if (isNaN(dateObj.getTime())) {\n console.warn('Invalid date provided to formatTimestamp:', date);\n return 'Invalid Date';\n }\n\n return format === 'csv' ? formatCSVTimestamp(dateObj) : formatDisplayTimestamp(dateObj);\n}\n\n/**\n * Parse an ISO 8601 timestamp from storage and format for display\n * @param isoString - ISO 8601 timestamp string from IndexedDB\n * @returns Formatted display string\n */\nexport function formatStoredTimestamp(isoString: string): string {\n return formatTimestamp(isoString, 'display');\n}\n\n/**\n * Get current timestamp in ISO 8601 format for storage\n * @returns Current time as ISO 8601 string\n */\nexport function getCurrentTimestamp(): string {\n return new Date().toISOString();\n}\n","/**\n * Debouncer utility for delaying function execution\n *\n * Provides centralized debounce timer management, replacing the WeakMap pattern\n * used in the original implementation. Saves ~22 lines of duplicated code.\n *\n * @example\n * ```typescript\n * const debouncer = new Debouncer();\n *\n * // Debounce save operation\n * function handleInput(value: string) {\n * debouncer.debounce('save-answer', () => {\n * saveToDatabase(value);\n * }, 200);\n * }\n * ```\n */\n\n/**\n * Debouncer class for managing delayed function calls\n *\n * Maintains a map of timers indexed by key, allowing multiple independent\n * debounced operations.\n */\nexport class Debouncer {\n private timers = new Map>();\n\n /**\n * Debounce a function call\n *\n * If called multiple times with the same key, only the last call will execute\n * after the delay period.\n *\n * @param key - Unique identifier for this debounced operation\n * @param fn - Function to execute after delay\n * @param delay - Delay in milliseconds (default: 200ms)\n *\n * @example\n * ```typescript\n * const debouncer = new Debouncer();\n *\n * // Called multiple times rapidly\n * debouncer.debounce('auto-save', () => console.log('Saved!'), 500);\n * debouncer.debounce('auto-save', () => console.log('Saved!'), 500);\n * debouncer.debounce('auto-save', () => console.log('Saved!'), 500);\n * // Only logs \"Saved!\" once after 500ms\n * ```\n */\n debounce(key: string, fn: () => void, delay = 200): void {\n // Cancel existing timer if present\n const existing = this.timers.get(key);\n if (existing !== undefined) {\n clearTimeout(existing);\n }\n\n // Set new timer\n const timer = setTimeout(() => {\n this.timers.delete(key);\n fn();\n }, delay);\n\n this.timers.set(key, timer);\n }\n\n /**\n * Cancel a specific debounced operation\n *\n * @param key - Key of the operation to cancel\n * @returns true if a timer was cancelled, false if no timer existed\n */\n cancel(key: string): boolean {\n const timer = this.timers.get(key);\n if (timer !== undefined) {\n clearTimeout(timer);\n this.timers.delete(key);\n return true;\n }\n return false;\n }\n\n /**\n * Cancel all pending debounced operations\n *\n * @returns Number of timers that were cancelled\n */\n cancelAll(): number {\n let count = 0;\n for (const timer of this.timers.values()) {\n clearTimeout(timer);\n count++;\n }\n this.timers.clear();\n return count;\n }\n\n /**\n * Check if a debounced operation is pending\n *\n * @param key - Key to check\n * @returns true if a timer is active for this key\n */\n isPending(key: string): boolean {\n return this.timers.has(key);\n }\n\n /**\n * Get count of pending operations\n *\n * @returns Number of active timers\n */\n getPendingCount(): number {\n return this.timers.size;\n }\n}\n","/**\n * DOM helper utilities\n *\n * Provides type-safe DOM query and manipulation helpers, eliminating\n * repetitive querySelector patterns. Saves ~80 lines of duplicated code.\n *\n * All functions use textContent instead of innerHTML to prevent XSS vulnerabilities.\n */\n\n/**\n * Get all rows from a table body\n *\n * @param table - Table element\n * @returns Array of table row elements\n *\n * @example\n * ```typescript\n * const table = document.querySelector('table.qd-quiz');\n * if (table instanceof HTMLTableElement) {\n * const rows = getTableRows(table);\n * console.log(`Table has ${rows.length} rows`);\n * }\n * ```\n */\nexport function getTableRows(table: HTMLTableElement): HTMLTableRowElement[] {\n const tbody = table.querySelector('tbody');\n if (!tbody) {\n return [];\n }\n return Array.from(tbody.querySelectorAll('tr'));\n}\n\n/**\n * Get all cells from a table row\n *\n * @param row - Table row element\n * @returns Array of table cell elements\n *\n * @example\n * ```typescript\n * const row = table.querySelector('tr');\n * if (row instanceof HTMLTableRowElement) {\n * const cells = getRowCells(row);\n * console.log(`Row has ${cells.length} cells`);\n * }\n * ```\n */\nexport function getRowCells(row: HTMLTableRowElement): HTMLTableCellElement[] {\n return Array.from(row.cells);\n}\n\n/**\n * Get trimmed text content from an element\n *\n * Returns empty string if element is null or has no text content.\n *\n * @param element - Element to get text from\n * @returns Trimmed text content\n *\n * @example\n * ```typescript\n * const cell = row.cells[0];\n * const text = getTextContent(cell);\n * console.log('Cell text:', text);\n * ```\n */\nexport function getTextContent(element: Element | null): string {\n if (!element) {\n return '';\n }\n return element.textContent?.trim() || '';\n}\n\n/**\n * Set text content on an element (XSS-safe)\n *\n * Uses textContent instead of innerHTML to prevent XSS attacks.\n *\n * @param element - Element to set text on\n * @param text - Text content to set\n *\n * @example\n * ```typescript\n * const div = document.createElement('div');\n * setTextContent(div, 'Safe text content');\n * ```\n */\nexport function setTextContent(element: Element, text: string): void {\n element.textContent = text;\n}\n\n/**\n * Create an element with optional text and class name (XSS-safe)\n *\n * Uses textContent instead of innerHTML for XSS protection.\n *\n * @param tag - HTML tag name\n * @param text - Optional text content\n * @param className - Optional class name\n * @returns Created element\n *\n * @example\n * ```typescript\n * const div = createElement('div', 'Hello, World!', 'greeting');\n * document.body.appendChild(div);\n * ```\n */\nexport function createElement(\n tag: K,\n text?: string,\n className?: string,\n): HTMLElementTagNameMap[K] {\n const element = document.createElement(tag);\n\n if (text !== undefined) {\n element.textContent = text;\n }\n\n if (className !== undefined) {\n element.className = className;\n }\n\n return element;\n}\n\n/**\n * Create multiple child elements and append to parent (XSS-safe)\n *\n * @param parent - Parent element\n * @param children - Array of child elements to append\n *\n * @example\n * ```typescript\n * const div = createElement('div');\n * appendChildren(div, [\n * createElement('span', 'First'),\n * createElement('span', 'Second'),\n * ]);\n * ```\n */\nexport function appendChildren(parent: Element, children: Element[]): void {\n for (const child of children) {\n parent.appendChild(child);\n }\n}\n\n/**\n * Query selector with type safety\n *\n * @param selector - CSS selector\n * @param parent - Parent element (default: document)\n * @returns Element or null\n *\n * @example\n * ```typescript\n * const table = querySelector('table.qd-quiz');\n * if (table) {\n * const rows = getTableRows(table);\n * }\n * ```\n */\nexport function querySelector(\n selector: string,\n parent: ParentNode = document,\n): T | null {\n return parent.querySelector(selector);\n}\n\n/**\n * Query selector all with type safety\n *\n * @param selector - CSS selector\n * @param parent - Parent element (default: document)\n * @returns Array of elements\n *\n * @example\n * ```typescript\n * const tables = querySelectorAll('table.qd-quiz');\n * console.log(`Found ${tables.length} quiz tables`);\n * ```\n */\nexport function querySelectorAll(\n selector: string,\n parent: ParentNode = document,\n): T[] {\n return Array.from(parent.querySelectorAll(selector));\n}\n\n/**\n * Get element by ID with type safety\n *\n * @param id - Element ID\n * @returns Element or null\n *\n * @example\n * ```typescript\n * const status = getElementById('qd-status');\n * if (status) {\n * status.style.display = 'block';\n * }\n * ```\n */\nexport function getElementById(id: string): T | null {\n const element = document.getElementById(id);\n return element as T | null;\n}\n\n/**\n * Remove all children from an element\n *\n * @param element - Element to clear\n *\n * @example\n * ```typescript\n * const container = getElementById('results');\n * if (container) {\n * removeAllChildren(container);\n * }\n * ```\n */\nexport function removeAllChildren(element: Element): void {\n while (element.firstChild) {\n element.removeChild(element.firstChild);\n }\n}\n\n/**\n * Replace all children of an element with new children\n *\n * @param element - Element to update\n * @param children - New children to add\n *\n * @example\n * ```typescript\n * const container = getElementById('results');\n * if (container) {\n * replaceChildren(container, [\n * createElement('div', 'Result 1'),\n * createElement('div', 'Result 2'),\n * ]);\n * }\n * ```\n */\nexport function replaceChildren(element: Element, children: Element[]): void {\n removeAllChildren(element);\n appendChildren(element, children);\n}\n\n/**\n * Check if element has a specific class\n *\n * @param element - Element to check\n * @param className - Class name to look for\n * @returns true if element has the class\n */\nexport function hasClass(element: Element, className: string): boolean {\n return element.classList.contains(className);\n}\n\n/**\n * Add one or more classes to an element\n *\n * @param element - Element to modify\n * @param classNames - Class names to add\n */\nexport function addClass(element: Element, ...classNames: string[]): void {\n element.classList.add(...classNames);\n}\n\n/**\n * Remove one or more classes from an element\n *\n * @param element - Element to modify\n * @param classNames - Class names to remove\n */\nexport function removeClass(element: Element, ...classNames: string[]): void {\n element.classList.remove(...classNames);\n}\n\n/**\n * Toggle a class on an element\n *\n * @param element - Element to modify\n * @param className - Class name to toggle\n * @returns true if class was added, false if removed\n */\nexport function toggleClass(element: Element, className: string): boolean {\n return element.classList.toggle(className);\n}\n","/**\n * Event helper utilities\n *\n * Provides type-safe custom event emission and handling, with consistent\n * configuration for bubbling and composition. Saves ~8 lines per event emission.\n */\n\nimport type { QuizEvents } from '../types/contracts.js';\n\n/**\n * Emit a custom event on the document\n *\n * Events bubble by default and are composed (cross shadow DOM boundaries).\n *\n * @param name - Event name (should use 'qd:' namespace)\n * @param detail - Event detail data\n * @param options - Optional event configuration\n *\n * @example\n * ```typescript\n * // Emit login event\n * emitCustomEvent('qd:login', {\n * serviceId: 'RN2344',\n * name: 'John Doe',\n * loginTime: new Date().toISOString(),\n * });\n * ```\n */\nexport function emitCustomEvent(\n name: K,\n detail: QuizEvents[K]['detail'],\n options?: {\n bubbles?: boolean;\n composed?: boolean;\n cancelable?: boolean;\n },\n): boolean {\n const event = new CustomEvent(name, {\n detail,\n bubbles: options?.bubbles ?? true,\n composed: options?.composed ?? true,\n cancelable: options?.cancelable ?? false,\n });\n\n return document.dispatchEvent(event);\n}\n\n/**\n * Add event listener for custom event\n *\n * @param name - Event name\n * @param handler - Event handler function\n * @param options - Optional event listener options\n *\n * @example\n * ```typescript\n * // Listen for login events\n * const unsubscribe = addEventListener('qd:login', (event) => {\n * console.log('User logged in:', event.detail.serviceId);\n * });\n *\n * // Later: remove listener\n * unsubscribe();\n * ```\n */\nexport function addEventListener(\n name: K,\n handler: (event: CustomEvent) => void,\n options?: AddEventListenerOptions,\n): () => void {\n const listener = handler as EventListener;\n document.addEventListener(name, listener, options);\n\n // Return unsubscribe function\n return () => {\n document.removeEventListener(name, listener, options);\n };\n}\n\n/**\n * Remove event listener for custom event\n *\n * @param name - Event name\n * @param handler - Event handler function\n * @param options - Optional event listener options\n *\n * @example\n * ```typescript\n * function handleLogin(event) {\n * console.log('Logged in:', event.detail.serviceId);\n * }\n *\n * addEventListener('qd:login', handleLogin);\n * // Later...\n * removeEventListener('qd:login', handleLogin);\n * ```\n */\nexport function removeEventListener(\n name: K,\n handler: (event: CustomEvent) => void,\n options?: EventListenerOptions,\n): void {\n const listener = handler as EventListener;\n document.removeEventListener(name, listener, options);\n}\n\n/**\n * Add one-time event listener that auto-removes after first trigger\n *\n * @param name - Event name\n * @param handler - Event handler function\n *\n * @example\n * ```typescript\n * // Wait for login, then perform action once\n * addEventListenerOnce('qd:login', (event) => {\n * console.log('First login detected');\n * });\n * ```\n */\nexport function addEventListenerOnce(\n name: K,\n handler: (event: CustomEvent) => void,\n): void {\n const listener = handler as EventListener;\n document.addEventListener(name, listener, { once: true });\n}\n\n/**\n * Wait for a specific event to occur\n *\n * Returns a promise that resolves when the event is emitted.\n *\n * @param name - Event name to wait for\n * @param timeout - Optional timeout in milliseconds\n * @returns Promise that resolves with event detail\n *\n * @example\n * ```typescript\n * // Wait for login\n * const session = await waitForEvent('qd:login', 5000);\n * console.log('User logged in:', session.serviceId);\n * ```\n */\nexport function waitForEvent(\n name: K,\n timeout?: number,\n): Promise {\n return new Promise((resolve, reject) => {\n let timeoutId: ReturnType | undefined;\n\n const handler = (event: Event) => {\n if (timeoutId !== undefined) {\n clearTimeout(timeoutId);\n }\n const customEvent = event as CustomEvent;\n resolve(customEvent.detail);\n };\n\n document.addEventListener(name, handler, { once: true });\n\n if (timeout !== undefined) {\n timeoutId = setTimeout(() => {\n document.removeEventListener(name, handler);\n reject(new Error(`Timeout waiting for event: ${name}`));\n }, timeout);\n }\n });\n}\n\n/**\n * Dispatch event on a specific element\n *\n * @param element - Element to dispatch event on\n * @param name - Event name\n * @param detail - Event detail\n * @param options - Optional event configuration\n *\n * @example\n * ```typescript\n * const button = document.querySelector('button');\n * if (button) {\n * dispatchEventOn(button, 'qd:custom', { data: 'test' });\n * }\n * ```\n */\nexport function dispatchEventOn(\n element: Element,\n name: string,\n detail: T,\n options?: {\n bubbles?: boolean;\n composed?: boolean;\n cancelable?: boolean;\n },\n): boolean {\n const event = new CustomEvent(name, {\n detail,\n bubbles: options?.bubbles ?? true,\n composed: options?.composed ?? true,\n cancelable: options?.cancelable ?? false,\n });\n\n return element.dispatchEvent(event);\n}\n","/**\n * Storage helper utilities\n *\n * Provides type-safe JSON storage operations for sessionStorage,\n * replacing repetitive try-catch JSON.parse patterns. Saves ~54 lines\n * of duplicated code.\n */\n\nimport { warn } from './logger.js';\n\n/**\n * Get and parse JSON data from sessionStorage\n *\n * @param key - Storage key\n * @returns Parsed object of type T, or null if not found or invalid\n *\n * @example\n * ```typescript\n * interface SessionData {\n * userId: string;\n * loginTime: string;\n * }\n *\n * const session = getJSON('qd/session');\n * if (session) {\n * console.log('User ID:', session.userId);\n * }\n * ```\n */\nexport function getJSON(key: string): T | null {\n try {\n const data = sessionStorage.getItem(key);\n if (!data) {\n return null;\n }\n return JSON.parse(data) as T;\n } catch (error) {\n warn(`Failed to parse JSON from sessionStorage key: ${key}`, error);\n return null;\n }\n}\n\n/**\n * Stringify and store JSON data in sessionStorage\n *\n * @param key - Storage key\n * @param value - Data to store\n * @returns true if successful, false if failed\n *\n * @example\n * ```typescript\n * const session = {\n * userId: 'RN2344',\n * loginTime: new Date().toISOString(),\n * };\n *\n * setJSON('qd/session', session);\n * ```\n */\nexport function setJSON(key: string, value: T): boolean {\n try {\n const json = JSON.stringify(value);\n sessionStorage.setItem(key, json);\n return true;\n } catch (error) {\n warn(`Failed to store JSON in sessionStorage key: ${key}`, error);\n return false;\n }\n}\n\n/**\n * Remove item from sessionStorage\n *\n * @param key - Storage key to remove\n */\nexport function removeItem(key: string): void {\n sessionStorage.removeItem(key);\n}\n\n/**\n * Check if key exists in sessionStorage\n *\n * @param key - Storage key to check\n * @returns true if key exists\n */\nexport function hasItem(key: string): boolean {\n return sessionStorage.getItem(key) !== null;\n}\n\n/**\n * Clear all quiz data from sessionStorage\n *\n * Only removes keys with 'qd/' prefix, leaving other data intact.\n *\n * @returns Number of items cleared\n *\n * @example\n * ```typescript\n * // Clear all quiz-related session data\n * const cleared = clearQuizData();\n * console.log(`Cleared ${cleared} items`);\n * ```\n */\nexport function clearQuizData(): number {\n const keysToRemove: string[] = [];\n\n // Find all keys with 'qd/' prefix\n for (let i = 0; i < sessionStorage.length; i++) {\n const key = sessionStorage.key(i);\n if (key && key.startsWith('qd/')) {\n keysToRemove.push(key);\n }\n }\n\n // Remove found keys\n for (const key of keysToRemove) {\n sessionStorage.removeItem(key);\n }\n\n return keysToRemove.length;\n}\n\n/**\n * Get all quiz data keys from sessionStorage\n *\n * @returns Array of keys with 'qd/' prefix\n */\nexport function getQuizDataKeys(): string[] {\n const keys: string[] = [];\n\n for (let i = 0; i < sessionStorage.length; i++) {\n const key = sessionStorage.key(i);\n if (key && key.startsWith('qd/')) {\n keys.push(key);\n }\n }\n\n return keys;\n}\n\n/**\n * Clear all sessionStorage data\n *\n * Use with caution - clears everything, not just quiz data.\n */\nexport function clearAll(): void {\n sessionStorage.clear();\n}\n","/**\n * Storage Adapter Utilities\n *\n * Provides utility functions for working with storage keys, validation,\n * and error types for the storage layer.\n *\n * Storage Key Format: qd/{release}/u{serviceId}\n * Example: qd/11-2024/uRN2344\n */\n\nimport type { StudentRecord, ReleaseId, ServiceId } from '../../types/contracts.js';\nimport { error as logError } from '../../utils/logger.js';\n\n/**\n * Generate storage key for a student record\n *\n * Format: qd/{release}/u{serviceId}\n *\n * @param release - Release identifier (e.g., \"01-2025\")\n * @param serviceId - Service ID (e.g., \"RN2344\")\n * @returns Storage key string\n *\n * @example\n * ```typescript\n * const key = getStorageKey('11-2024', 'RN2344');\n * // Returns: \"qd/11-2024/uRN2344\"\n * ```\n */\nexport function getStorageKey(release: ReleaseId, serviceId: ServiceId): string {\n return `qd/${release}/u${serviceId}`;\n}\n\n/**\n * Parse a storage key back into its components\n *\n * @param key - Storage key to parse\n * @returns Object with release and serviceId, or null if invalid\n *\n * @example\n * ```typescript\n * const parts = parseStorageKey('qd/11-2024/uRN2344');\n * // Returns: { release: '11-2024', serviceId: 'RN2344' }\n * ```\n */\nexport function parseStorageKey(key: string): { release: ReleaseId; serviceId: ServiceId } | null {\n const match = key.match(/^qd\\/([^/]+)\\/u(.+)$/);\n if (!match || !match[1] || !match[2]) {\n return null;\n }\n return {\n release: match[1],\n serviceId: match[2],\n };\n}\n\n/**\n * Validate release ID format (MM-YYYY)\n *\n * @param release - Release ID to validate\n * @returns True if valid, false otherwise\n *\n * @example\n * ```typescript\n * isValidReleaseId('11-2024'); // true\n * isValidReleaseId('2024-11'); // false\n * isValidReleaseId('13-2024'); // false (month > 12)\n * ```\n */\nexport function isValidReleaseId(release: string): boolean {\n const match = release.match(/^(\\d{2})-(\\d{4})$/);\n if (!match || !match[1] || !match[2]) {\n return false;\n }\n\n // Validate month range (01-12)\n const month = parseInt(match[1], 10);\n return month >= 1 && month <= 12;\n}\n\n/**\n * Validate service ID format (2-10 alphanumeric characters)\n *\n * @param serviceId - Service ID to validate\n * @returns True if valid, false otherwise\n *\n * @example\n * ```typescript\n * isValidServiceId('RN2344'); // true\n * isValidServiceId('AB'); // true (minimum 2 chars)\n * isValidServiceId('A'); // false (too short)\n * isValidServiceId('ABCDEFGHIJK'); // false (too long)\n * ```\n */\nexport function isValidServiceId(serviceId: string): boolean {\n return /^[A-Za-z0-9]{2,10}$/.test(serviceId);\n}\n\n/**\n * Create a default empty StudentRecord\n *\n * @param release - Release identifier\n * @param serviceId - Service identifier\n * @param name - Student name\n * @param docId - Document identifier\n * @returns New StudentRecord with default values\n *\n * @example\n * ```typescript\n * const record = createEmptyStudentRecord('11-2024', 'RN2344', 'Alice Student', 'doc-123');\n * // Returns StudentRecord with empty pages, 0 scores, current timestamp\n * ```\n */\nexport function createEmptyStudentRecord(\n release: ReleaseId,\n serviceId: ServiceId,\n name: string,\n docId: string,\n): StudentRecord {\n return {\n schema: 1,\n docId,\n release,\n serviceId,\n name,\n attempted: 0,\n correct: 0,\n updated: new Date().toISOString(),\n pages: {},\n };\n}\n\n/**\n * Storage adapter error types\n */\nexport class StorageError extends Error {\n constructor(\n message: string,\n public readonly operation: string,\n public readonly cause?: Error,\n ) {\n super(message);\n this.name = 'StorageError';\n\n // Log error for debugging\n if (cause) {\n logError(`Storage error in ${operation}: ${message}`, cause);\n } else {\n logError(`Storage error in ${operation}: ${message}`);\n }\n }\n}\n\n/**\n * Error thrown when storage is not initialized\n */\nexport class StorageNotInitializedError extends StorageError {\n constructor(operation: string) {\n super('Storage adapter not initialized. Call init() first.', operation);\n this.name = 'StorageNotInitializedError';\n }\n}\n\n/**\n * Error thrown when a storage operation times out\n */\nexport class StorageTimeoutError extends StorageError {\n constructor(operation: string, timeout: number) {\n super(`Storage operation timed out after ${timeout}ms`, operation);\n this.name = 'StorageTimeoutError';\n }\n}\n\n/**\n * Error thrown when storage quota is exceeded\n */\nexport class StorageQuotaError extends StorageError {\n constructor(operation: string) {\n super('Storage quota exceeded. Please clear old data or free up space.', operation);\n this.name = 'StorageQuotaError';\n }\n}\n\n/**\n * Error thrown when storage format doesn't match ENCRYPT_STORAGE setting\n *\n * This indicates a mismatch between the stored data format and the\n * current obfuscation configuration. Run migration to resolve.\n */\nexport class StorageFormatError extends StorageError {\n /** What format was expected based on ENCRYPT_STORAGE */\n public readonly expected: 'obfuscated' | 'plain';\n /** What format was actually found in storage */\n public readonly found: 'obfuscated' | 'plain';\n /** Storage key where mismatch occurred */\n public readonly storageKey: string;\n\n constructor(\n message: string,\n expected: 'obfuscated' | 'plain',\n found: 'obfuscated' | 'plain',\n storageKey: string,\n ) {\n super(message, 'formatCheck');\n this.name = 'StorageFormatError';\n this.expected = expected;\n this.found = found;\n this.storageKey = storageKey;\n }\n}\n","/**\n * Feature Flags\n *\n * Compile-time feature toggles for the Sonar Quiz System.\n * Set via environment variables at build time.\n */\n\n// Vite injects this at build time from ENCRYPT_STORAGE env var\ndeclare const __ENCRYPT_STORAGE__: boolean;\n\n/**\n * Enable storage obfuscation for IndexedDB data\n *\n * When true: StudentRecord values are XOR-encoded with base64 before storage.\n * When false: Data stored as plain JSON objects (readable in DevTools).\n *\n * IMPORTANT: Changing this flag requires data migration.\n * Use `window.SonarQuiz.migrateStorage()` to convert existing data.\n *\n * Set via environment variable at build time:\n * ENCRYPT_STORAGE=true npm run build\n *\n * @default false - Development mode (readable data)\n */\nexport const ENCRYPT_STORAGE: boolean =\n typeof __ENCRYPT_STORAGE__ !== 'undefined' ? __ENCRYPT_STORAGE__ : false;\n","/**\n * Obfuscation Utilities for IndexedDB Storage\n *\n * Provides deterrence-level obfuscation for student records.\n * Uses XOR cipher with base64 encoding - NOT cryptographic security.\n *\n * Purpose: Prevent casual inspection via browser DevTools.\n */\n\n/**\n * Magic prefix for obfuscated data\n * Used for format detection and fail-fast behavior\n */\nexport const OBFUSCATION_PREFIX = 'OBF:' as const;\n\n/**\n * Type representing obfuscated data format\n * Always starts with \"OBF:\" followed by base64 payload\n */\nexport type ObfuscatedString = `${typeof OBFUSCATION_PREFIX}${string}`;\n\n/**\n * Derive obfuscation key from Release ID\n *\n * Creates a repeating byte pattern for XOR cipher.\n * Converts each character to its char code and joins with separator.\n *\n * @param releaseId - Release ID from DOM (.wh_publication_title .title)\n * @returns Obfuscation key string\n */\nexport function deriveKey(releaseId: string): string {\n if (!releaseId) {\n return '';\n }\n // Convert each character to char code and join\n // This creates a repeating numeric pattern for XOR\n return releaseId\n .split('')\n .map((c) => c.charCodeAt(0).toString())\n .join('');\n}\n\n/**\n * XOR a string with a key\n *\n * Symmetric operation - same function encodes and decodes.\n * Key cycles if shorter than input.\n *\n * @param input - String to XOR\n * @param key - Key for XOR operation\n * @returns XOR'd string\n */\nexport function xorString(input: string, key: string): string {\n if (!input || !key) {\n return input || '';\n }\n\n const result: string[] = [];\n for (let i = 0; i < input.length; i++) {\n const inputChar = input.charCodeAt(i);\n const keyChar = key.charCodeAt(i % key.length);\n result.push(String.fromCharCode(inputChar ^ keyChar));\n }\n return result.join('');\n}\n\n/**\n * Convert string to UTF-8 bytes for safe base64 encoding\n * Handles Unicode characters correctly\n */\nfunction stringToUtf8Bytes(str: string): Uint8Array {\n return new TextEncoder().encode(str);\n}\n\n/**\n * Convert UTF-8 bytes back to string\n */\nfunction utf8BytesToString(bytes: Uint8Array): string {\n return new TextDecoder().decode(bytes);\n}\n\n/**\n * XOR bytes with key bytes (for UTF-8 safe operation)\n */\nfunction xorBytes(data: Uint8Array, key: Uint8Array): Uint8Array {\n if (key.length === 0) {\n return data;\n }\n const result = new Uint8Array(data.length);\n for (let i = 0; i < data.length; i++) {\n const dataByte = data[i];\n const keyByte = key[i % key.length];\n if (dataByte !== undefined && keyByte !== undefined) {\n result[i] = dataByte ^ keyByte;\n }\n }\n return result;\n}\n\n/**\n * Convert Uint8Array to base64 string\n */\nfunction bytesToBase64(bytes: Uint8Array): string {\n // Convert bytes to binary string\n let binary = '';\n for (let i = 0; i < bytes.length; i++) {\n const byte = bytes[i];\n if (byte !== undefined) {\n binary += String.fromCharCode(byte);\n }\n }\n return btoa(binary);\n}\n\n/**\n * Convert base64 string to Uint8Array\n */\nfunction base64ToBytes(base64: string): Uint8Array {\n const binary = atob(base64);\n const bytes = new Uint8Array(binary.length);\n for (let i = 0; i < binary.length; i++) {\n bytes[i] = binary.charCodeAt(i);\n }\n return bytes;\n}\n\n/**\n * Encode data with obfuscation\n *\n * Process: JSON.stringify → UTF-8 bytes → XOR with key → base64 → add prefix\n *\n * @param data - Plain object to obfuscate\n * @param key - Obfuscation key (from deriveKey)\n * @returns Obfuscated string with OBF: prefix\n */\nexport function encode(data: T, key: string): ObfuscatedString {\n const json = JSON.stringify(data);\n const jsonBytes = stringToUtf8Bytes(json);\n const keyBytes = stringToUtf8Bytes(key || 'default');\n const xoredBytes = xorBytes(jsonBytes, keyBytes);\n const base64 = bytesToBase64(xoredBytes);\n return `${OBFUSCATION_PREFIX}${base64}`;\n}\n\n/**\n * Decode obfuscated data\n *\n * Process: remove prefix → base64 decode → XOR with key → UTF-8 to string → JSON.parse\n *\n * @param encoded - Obfuscated string (must start with OBF:)\n * @param key - Obfuscation key (same as used for encoding)\n * @returns Decoded object\n * @throws Error if decode fails (corrupted/tampered data)\n */\nexport function decode(encoded: ObfuscatedString, key: string): T {\n // Remove prefix\n const base64 = encoded.slice(OBFUSCATION_PREFIX.length);\n\n if (!base64) {\n throw new Error('Empty obfuscated payload');\n }\n\n // Base64 decode - throws if invalid\n let xoredBytes: Uint8Array;\n try {\n xoredBytes = base64ToBytes(base64);\n } catch {\n throw new Error('Invalid base64 in obfuscated data');\n }\n\n // XOR to get original JSON bytes\n const keyBytes = stringToUtf8Bytes(key || 'default');\n const jsonBytes = xorBytes(xoredBytes, keyBytes);\n\n // Convert to string\n let json: string;\n try {\n json = utf8BytesToString(jsonBytes);\n } catch {\n throw new Error('Failed to decode UTF-8 data - possibly corrupted');\n }\n\n // Parse JSON - throws if invalid\n try {\n return JSON.parse(json) as T;\n } catch {\n throw new Error('Failed to parse JSON - data may be corrupted or tampered');\n }\n}\n\n/**\n * Check if a value is obfuscated\n *\n * @param value - Value to check\n * @returns True if value starts with OBF: prefix\n */\nexport function isObfuscated(value: unknown): value is ObfuscatedString {\n return typeof value === 'string' && value.startsWith(OBFUSCATION_PREFIX);\n}\n","/**\n * IndexedDB Storage Adapter Implementation\n *\n * Provides persistent storage for student records using browser IndexedDB.\n * Implements atomic transactions and proper error handling.\n *\n * Database: Configured via #qd-db-name element (REQUIRED)\n * Stores: students (main data), backups (backup copies)\n * Keys: qd/{release}/u{serviceId}\n */\n\nimport type {\n StorageAdapter,\n StudentRecord,\n ReleaseId,\n ServiceId,\n PinResetEvent,\n} from '../../types/contracts.js';\nimport {\n getStorageKey,\n StorageNotInitializedError,\n StorageError,\n StorageQuotaError,\n StorageFormatError,\n} from './adapter-utils.js';\nimport { warn as logWarn, error as logError } from '../../utils/logger.js';\nimport { ENCRYPT_STORAGE } from '../../config/feature-flags.js';\nimport { encode, decode, isObfuscated, deriveKey } from './obfuscation.js';\n\n// NOTE: No default database name - must be provided by caller\n\n/** Database version - increment to force schema upgrade */\nconst DB_VERSION = 3;\n\n/** Object store names */\nconst STORE_STUDENTS = 'students';\nconst STORE_BACKUPS = 'backups';\nconst STORE_AUDIT_LOG = 'auditLog';\n\n/**\n * Backup record with metadata\n */\ninterface BackupRecord extends StudentRecord {\n /** Original storage key */\n originalKey: string;\n /** Backup timestamp */\n timestamp: string;\n}\n\n/**\n * IndexedDB implementation of StorageAdapter\n *\n * Features:\n * - Automatic schema creation with indexes\n * - Atomic transactions\n * - Quota error handling\n * - Backup functionality\n */\nexport class IndexedDBStorageAdapter implements StorageAdapter {\n private db: IDBDatabase | null = null;\n private initPromise: Promise | null = null;\n private dbName: string;\n\n /**\n * Create a new IndexedDB storage adapter\n *\n * @param dbName - Database name (REQUIRED - no default)\n */\n constructor(dbName: string) {\n if (!dbName) {\n throw new Error('FATAL: dbName is required for IndexedDBStorageAdapter');\n }\n this.dbName = dbName;\n }\n\n /**\n * Initialize the IndexedDB database\n *\n * Creates object stores and indexes on first run.\n * Safe to call multiple times - will reuse existing connection.\n *\n * @returns Promise that resolves when database is ready\n */\n async init(): Promise {\n // Return existing initialization promise if already in progress\n if (this.initPromise) {\n return this.initPromise;\n }\n\n // If already initialized, return immediately\n if (this.db) {\n return Promise.resolve();\n }\n\n this.initPromise = new Promise((resolve, reject) => {\n // Timeout for hung database operations\n const OPEN_TIMEOUT_MS = 5000;\n let timeoutId: number | undefined;\n let resolved = false;\n\n const cleanup = () => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n timeoutId = undefined;\n }\n };\n\n timeoutId = window.setTimeout(() => {\n if (resolved) return;\n resolved = true;\n this.initPromise = null;\n\n logWarn(`IndexedDB open timed out after ${OPEN_TIMEOUT_MS}ms - attempting recovery`);\n\n // Try to delete and recreate\n const deleteReq = indexedDB.deleteDatabase(this.dbName);\n deleteReq.onsuccess = () => {\n this.init().then(resolve).catch(reject);\n };\n deleteReq.onerror = () => {\n reject(\n new StorageError(\n `Database \"${this.dbName}\" appears corrupted. Please clear site data in browser settings.`,\n 'init',\n ),\n );\n };\n deleteReq.onblocked = () => {\n reject(\n new StorageError(\n `Cannot recover database - close all other tabs with this site and reload.`,\n 'init',\n ),\n );\n };\n }, OPEN_TIMEOUT_MS);\n\n const request = indexedDB.open(this.dbName, DB_VERSION);\n\n request.onerror = () => {\n if (resolved) return;\n resolved = true;\n cleanup();\n logError(`IndexedDB open error: ${request.error?.message || 'unknown'}`);\n this.initPromise = null;\n reject(new StorageError('Failed to open database', 'init', request.error as Error));\n };\n\n request.onblocked = () => {\n logWarn('IndexedDB open blocked - close other tabs with this database');\n };\n\n request.onsuccess = () => {\n if (resolved) return;\n resolved = true;\n cleanup();\n\n this.db = request.result;\n\n // Verify object stores exist - if not, database is corrupted\n if (\n !this.db.objectStoreNames.contains(STORE_STUDENTS) ||\n !this.db.objectStoreNames.contains(STORE_BACKUPS) ||\n !this.db.objectStoreNames.contains(STORE_AUDIT_LOG)\n ) {\n // Database exists but stores missing - delete and recreate\n logWarn(\n `Database corrupted (missing stores). Found: [${Array.from(this.db.objectStoreNames).join(', ')}]`,\n );\n this.db.close();\n this.db = null;\n\n // Delete corrupted database\n const deleteRequest = indexedDB.deleteDatabase(this.dbName);\n deleteRequest.onsuccess = () => {\n // Retry initialization\n this.initPromise = null;\n this.init().then(resolve).catch(reject);\n };\n deleteRequest.onerror = () => {\n this.initPromise = null;\n reject(\n new StorageError(\n 'Failed to delete corrupted database',\n 'init',\n deleteRequest.error as Error,\n ),\n );\n };\n return;\n }\n\n this.initPromise = null;\n resolve();\n };\n\n request.onupgradeneeded = (event) => {\n const db = (event.target as IDBOpenDBRequest).result;\n const transaction = (event.target as IDBOpenDBRequest).transaction;\n\n if (transaction) {\n transaction.onerror = () => {\n logError(`Upgrade transaction error: ${transaction.error?.message || 'unknown'}`);\n };\n transaction.onabort = () => {\n logError(`Upgrade transaction aborted: ${transaction.error?.message || 'unknown'}`);\n };\n }\n\n try {\n // Create students object store\n if (!db.objectStoreNames.contains(STORE_STUDENTS)) {\n const studentsStore = db.createObjectStore(STORE_STUDENTS, { keyPath: null });\n studentsStore.createIndex('by-release', 'release', { unique: false });\n studentsStore.createIndex('by-service-id', 'serviceId', { unique: false });\n }\n\n // Create backups object store\n if (!db.objectStoreNames.contains(STORE_BACKUPS)) {\n const backupsStore = db.createObjectStore(STORE_BACKUPS, { keyPath: null });\n backupsStore.createIndex('by-original-key', 'originalKey', { unique: false });\n backupsStore.createIndex('by-timestamp', 'timestamp', { unique: false });\n }\n\n // Create audit log object store (v3 - PIN reset events)\n if (!db.objectStoreNames.contains(STORE_AUDIT_LOG)) {\n const auditStore = db.createObjectStore(STORE_AUDIT_LOG, {\n keyPath: 'eventId',\n });\n auditStore.createIndex('by-service-id', 'serviceId', { unique: false });\n auditStore.createIndex('by-reset-at', 'resetAt', { unique: false });\n }\n } catch (err) {\n logError('Error during database upgrade', err as Error);\n throw err;\n }\n };\n });\n\n return this.initPromise;\n }\n\n /**\n * Ensure database is initialized before operations\n *\n * @throws StorageNotInitializedError if not initialized\n * @returns Database instance\n */\n private ensureInitialized(): IDBDatabase {\n if (!this.db) {\n throw new StorageNotInitializedError('ensureInitialized');\n }\n return this.db;\n }\n\n /**\n * Get a student record by release and service ID\n *\n * Handles obfuscation based on ENCRYPT_STORAGE flag.\n * Throws StorageFormatError if data format doesn't match flag setting.\n *\n * @param release - Release identifier\n * @param serviceId - Service identifier\n * @returns Student record or null if not found\n * @throws StorageFormatError if format mismatch detected\n */\n async getStudent(release: ReleaseId, serviceId: ServiceId): Promise {\n const db = this.ensureInitialized();\n const key = getStorageKey(release, serviceId);\n\n return new Promise((resolve, reject) => {\n try {\n const transaction = db.transaction(STORE_STUDENTS, 'readonly');\n const store = transaction.objectStore(STORE_STUDENTS);\n const request = store.get(key);\n\n request.onsuccess = () => {\n const rawValue: unknown = request.result;\n\n if (rawValue === undefined || rawValue === null) {\n resolve(null);\n return;\n }\n\n // Check format and decode if needed\n try {\n const record = this.decodeStoredValue(rawValue, release, key);\n resolve(record);\n } catch (error) {\n reject(error instanceof Error ? error : new Error(String(error)));\n }\n };\n\n request.onerror = () => {\n reject(\n new StorageError('Failed to get student record', 'getStudent', request.error as Error),\n );\n };\n } catch (error) {\n reject(new StorageError('Failed to get student record', 'getStudent', error as Error));\n }\n });\n }\n\n /**\n * Decode stored value, checking format matches ENCRYPT_STORAGE setting\n *\n * @param rawValue - Value from IndexedDB (may be obfuscated string or plain object)\n * @param release - Release ID for key derivation\n * @param storageKey - Storage key for error reporting\n * @returns Decoded StudentRecord\n * @throws StorageFormatError if format doesn't match setting\n */\n private decodeStoredValue(\n rawValue: unknown,\n release: ReleaseId,\n storageKey: string,\n ): StudentRecord {\n const storedIsObfuscated = isObfuscated(rawValue);\n\n // Check for format mismatch\n if (ENCRYPT_STORAGE && !storedIsObfuscated) {\n throw new StorageFormatError(\n 'Unobfuscated data found with ENCRYPT_STORAGE enabled. Run migration to encrypt existing data.',\n 'obfuscated',\n 'plain',\n storageKey,\n );\n }\n\n if (!ENCRYPT_STORAGE && storedIsObfuscated) {\n throw new StorageFormatError(\n 'Obfuscated data found with ENCRYPT_STORAGE disabled. Run migration to decrypt or re-enable encryption.',\n 'plain',\n 'obfuscated',\n storageKey,\n );\n }\n\n // Decode if encrypted, otherwise return as-is\n if (ENCRYPT_STORAGE && storedIsObfuscated) {\n const obfKey = deriveKey(release);\n try {\n return decode(rawValue, obfKey);\n } catch (error) {\n throw new StorageError(\n 'Failed to decode obfuscated data - data may be corrupted or tampered',\n 'getStudent',\n error instanceof Error ? error : new Error(String(error)),\n );\n }\n }\n\n return rawValue as StudentRecord;\n }\n\n /**\n * Save a student record\n *\n * Encodes data if ENCRYPT_STORAGE is enabled.\n *\n * @param record - Student record to save\n * @throws StorageQuotaError if storage quota exceeded\n */\n async saveStudent(record: StudentRecord): Promise {\n const db = this.ensureInitialized();\n const key = getStorageKey(record.release, record.serviceId);\n\n // Encode if encryption enabled\n const valueToStore = ENCRYPT_STORAGE ? encode(record, deriveKey(record.release)) : record;\n\n return new Promise((resolve, reject) => {\n try {\n const transaction = db.transaction(STORE_STUDENTS, 'readwrite');\n const store = transaction.objectStore(STORE_STUDENTS);\n const request = store.put(valueToStore, key);\n\n request.onsuccess = () => {\n resolve();\n };\n\n request.onerror = () => {\n // Check for quota errors\n if (request.error?.name === 'QuotaExceededError') {\n reject(new StorageQuotaError('saveStudent'));\n } else {\n reject(\n new StorageError(\n 'Failed to save student record',\n 'saveStudent',\n request.error as Error,\n ),\n );\n }\n };\n\n transaction.onerror = () => {\n reject(\n new StorageError(\n 'Transaction failed while saving student',\n 'saveStudent',\n transaction.error as Error,\n ),\n );\n };\n } catch (error) {\n reject(new StorageError('Failed to save student record', 'saveStudent', error as Error));\n }\n });\n }\n\n /**\n * Get all students for a specific release\n *\n * When ENCRYPT_STORAGE is disabled, uses the by-release index for efficient queries.\n * When ENCRYPT_STORAGE is enabled, performs full scan and decodes all records.\n *\n * @param release - Release identifier\n * @returns Array of student records (empty if none found)\n */\n async getStudentsByRelease(release: ReleaseId): Promise {\n const db = this.ensureInitialized();\n\n // When encrypted, index won't work - need full scan\n if (ENCRYPT_STORAGE) {\n return this.getStudentsByReleaseEncrypted(release);\n }\n\n return new Promise((resolve, reject) => {\n try {\n const transaction = db.transaction(STORE_STUDENTS, 'readonly');\n const store = transaction.objectStore(STORE_STUDENTS);\n const index = store.index('by-release');\n const request = index.getAll(release);\n\n request.onsuccess = () => {\n resolve(request.result || []);\n };\n\n request.onerror = () => {\n reject(\n new StorageError(\n 'Failed to get students by release',\n 'getStudentsByRelease',\n request.error as Error,\n ),\n );\n };\n } catch (error) {\n reject(\n new StorageError(\n 'Failed to get students by release',\n 'getStudentsByRelease',\n error as Error,\n ),\n );\n }\n });\n }\n\n /**\n * Get all students for a release when encryption is enabled\n *\n * Performs full scan, decodes each record, and filters by release.\n */\n private async getStudentsByReleaseEncrypted(release: ReleaseId): Promise {\n const db = this.ensureInitialized();\n const obfKey = deriveKey(release);\n\n return new Promise((resolve, reject) => {\n try {\n const transaction = db.transaction(STORE_STUDENTS, 'readonly');\n const store = transaction.objectStore(STORE_STUDENTS);\n const request = store.openCursor();\n const results: StudentRecord[] = [];\n\n request.onsuccess = () => {\n const cursor = request.result;\n if (cursor) {\n const rawValue: unknown = cursor.value;\n if (isObfuscated(rawValue)) {\n try {\n const record = decode(rawValue, obfKey);\n if (record.release === release) {\n results.push(record);\n }\n } catch {\n // Skip corrupted records, log warning\n const keyStr =\n typeof cursor.key === 'string' ? cursor.key : JSON.stringify(cursor.key);\n logWarn(`Skipping corrupted record at key: ${keyStr}`);\n }\n }\n cursor.continue();\n } else {\n resolve(results);\n }\n };\n\n request.onerror = () => {\n reject(\n new StorageError(\n 'Failed to get students by release',\n 'getStudentsByRelease',\n request.error as Error,\n ),\n );\n };\n } catch (error) {\n reject(\n new StorageError(\n 'Failed to get students by release',\n 'getStudentsByRelease',\n error as Error,\n ),\n );\n }\n });\n }\n\n /**\n * Clear all data from the database\n *\n * Removes both students and backups in a single atomic transaction.\n */\n async clearAll(): Promise {\n const db = this.ensureInitialized();\n\n return new Promise((resolve, reject) => {\n try {\n const transaction = db.transaction(\n [STORE_STUDENTS, STORE_BACKUPS, STORE_AUDIT_LOG],\n 'readwrite',\n );\n\n const studentsStore = transaction.objectStore(STORE_STUDENTS);\n const backupsStore = transaction.objectStore(STORE_BACKUPS);\n const auditStore = transaction.objectStore(STORE_AUDIT_LOG);\n\n const clearStudentsRequest = studentsStore.clear();\n const clearBackupsRequest = backupsStore.clear();\n const clearAuditRequest = auditStore.clear();\n\n let studentsCleared = false;\n let backupsCleared = false;\n let auditCleared = false;\n\n clearStudentsRequest.onsuccess = () => {\n studentsCleared = true;\n if (backupsCleared && auditCleared) {\n resolve();\n }\n };\n\n clearBackupsRequest.onsuccess = () => {\n backupsCleared = true;\n if (studentsCleared && auditCleared) {\n resolve();\n }\n };\n\n clearAuditRequest.onsuccess = () => {\n auditCleared = true;\n if (studentsCleared && backupsCleared) {\n resolve();\n }\n };\n\n clearStudentsRequest.onerror = () => {\n reject(\n new StorageError(\n 'Failed to clear students',\n 'clearAll',\n clearStudentsRequest.error as Error,\n ),\n );\n };\n\n clearBackupsRequest.onerror = () => {\n reject(\n new StorageError(\n 'Failed to clear backups',\n 'clearAll',\n clearBackupsRequest.error as Error,\n ),\n );\n };\n\n clearAuditRequest.onerror = () => {\n reject(\n new StorageError(\n 'Failed to clear audit log',\n 'clearAll',\n clearAuditRequest.error as Error,\n ),\n );\n };\n\n transaction.onerror = () => {\n reject(\n new StorageError(\n 'Transaction failed during clearAll',\n 'clearAll',\n transaction.error as Error,\n ),\n );\n };\n } catch (error) {\n reject(new StorageError('Failed to clear all data', 'clearAll', error as Error));\n }\n });\n }\n\n /**\n * Create a backup of a student record\n *\n * Backup key format: backup_{timestamp}_{serviceId}\n *\n * @param record - Student record to backup\n * @throws StorageQuotaError if storage quota exceeded\n */\n async backup(record: StudentRecord): Promise {\n const db = this.ensureInitialized();\n const timestamp = new Date().toISOString();\n const backupKey = `backup_${timestamp}_${record.serviceId}`;\n const originalKey = getStorageKey(record.release, record.serviceId);\n\n const backupRecord: BackupRecord = {\n ...record,\n originalKey,\n timestamp,\n };\n\n return new Promise((resolve, reject) => {\n try {\n const transaction = db.transaction(STORE_BACKUPS, 'readwrite');\n const store = transaction.objectStore(STORE_BACKUPS);\n const request = store.put(backupRecord, backupKey);\n\n request.onsuccess = () => {\n resolve();\n };\n\n request.onerror = () => {\n // Check for quota errors\n if (request.error?.name === 'QuotaExceededError') {\n reject(new StorageQuotaError('backup'));\n } else {\n reject(new StorageError('Failed to create backup', 'backup', request.error as Error));\n }\n };\n\n transaction.onerror = () => {\n reject(\n new StorageError(\n 'Transaction failed during backup',\n 'backup',\n transaction.error as Error,\n ),\n );\n };\n } catch (error) {\n reject(new StorageError('Failed to create backup', 'backup', error as Error));\n }\n });\n }\n\n /**\n * Save a PIN reset event to the audit log\n *\n * @param event - PIN reset event to log\n */\n async saveAuditEvent(event: PinResetEvent): Promise {\n const db = this.ensureInitialized();\n\n return new Promise((resolve, reject) => {\n try {\n const transaction = db.transaction(STORE_AUDIT_LOG, 'readwrite');\n const store = transaction.objectStore(STORE_AUDIT_LOG);\n const request = store.add(event);\n\n request.onsuccess = () => {\n resolve();\n };\n\n request.onerror = () => {\n reject(\n new StorageError(\n 'Failed to save audit event',\n 'saveAuditEvent',\n request.error as Error,\n ),\n );\n };\n } catch (error) {\n reject(new StorageError('Failed to save audit event', 'saveAuditEvent', error as Error));\n }\n });\n }\n\n /**\n * Close the database connection\n *\n * Useful for cleanup in tests and application shutdown.\n */\n close(): void {\n if (this.db) {\n this.db.close();\n this.db = null;\n this.initPromise = null;\n }\n }\n}\n\n/**\n * Singleton storage adapter instance\n */\nlet storageInstance: IndexedDBStorageAdapter | null = null;\nlet currentDbName: string | null = null;\n\n/**\n * Get the singleton storage adapter instance\n *\n * Creates a new instance on first call, reuses it thereafter.\n * If dbName changes, closes old instance and creates new one.\n *\n * @param dbName - Database name (REQUIRED - no default)\n * @returns IndexedDB storage adapter\n */\nexport function getStorageAdapter(dbName: string): IndexedDBStorageAdapter {\n if (!dbName) {\n throw new Error('FATAL: dbName is required for getStorageAdapter()');\n }\n\n // If dbName changed, close old instance and create new one\n if (storageInstance && currentDbName !== dbName) {\n storageInstance.close();\n storageInstance = null;\n }\n\n if (!storageInstance) {\n storageInstance = new IndexedDBStorageAdapter(dbName);\n currentDbName = dbName;\n }\n return storageInstance;\n}\n\n/**\n * Reset the singleton instance\n *\n * Useful for testing to ensure clean state between tests.\n */\nexport function resetStorageAdapter(): void {\n if (storageInstance) {\n storageInstance.close();\n storageInstance = null;\n currentDbName = null;\n }\n}\n","/**\n * Completion State Calculator\n *\n * Functions for calculating page completion states based on answer data.\n *\n * State Rules (from CLAUDE.md):\n * - unstarted: No answers provided\n * - incomplete: Some answered OR any incorrect\n * - complete: All answered AND all correct\n */\n\nimport type { AnswerRecord, CompletionState } from '../types/contracts.js';\n\n/**\n * Calculate the completion state for a page\n *\n * @param answers - Array of answer records for the page\n * @param totalQuestions - Total number of questions on the page\n * @returns Completion state (unstarted | incomplete | complete)\n *\n * @example\n * ```typescript\n * const answers = [\n * { answer: 'a', success: true, timestamp: '2024-11-16T10:00:00Z' },\n * { answer: 'b', success: false, timestamp: '2024-11-16T10:01:00Z' },\n * ];\n * const state = calculateCompletionState(answers, 3); // 'incomplete' (not all answered)\n * ```\n */\nexport function calculateCompletionState(\n answers: AnswerRecord[],\n totalQuestions: number,\n): CompletionState {\n // Handle edge case: no questions\n if (totalQuestions === 0) {\n return 'unstarted';\n }\n\n // Check if unstarted\n if (isPageUnstarted(answers)) {\n return 'unstarted';\n }\n\n // Check if complete\n if (isPageComplete(answers, totalQuestions)) {\n return 'complete';\n }\n\n // Otherwise, it's incomplete\n return 'incomplete';\n}\n\n/**\n * Check if a page is complete\n *\n * A page is complete when:\n * - All questions are answered\n * - All answered questions are correct\n *\n * @param answers - Array of answer records\n * @param totalQuestions - Total number of questions\n * @returns True if page is complete\n */\nexport function isPageComplete(answers: AnswerRecord[], totalQuestions: number): boolean {\n // Must have answered all questions\n if (answers.length !== totalQuestions) {\n return false;\n }\n\n // All answers must be correct\n return answers.every((answer) => answer.success === true);\n}\n\n/**\n * Check if a page is unstarted\n *\n * A page is unstarted when no answers have been provided.\n *\n * @param answers - Array of answer records\n * @returns True if page is unstarted\n */\nexport function isPageUnstarted(answers: AnswerRecord[]): boolean {\n return answers.length === 0;\n}\n\n/**\n * Count the number of correct answers\n *\n * @param answers - Array of answer records\n * @returns Number of correct answers\n */\nexport function countCorrectAnswers(answers: AnswerRecord[]): number {\n return answers.filter((answer) => answer.success === true).length;\n}\n\n/**\n * Calculate success percentage\n *\n * @param answers - Array of answer records\n * @param totalQuestions - Total number of questions\n * @returns Percentage of correct answers (0-100)\n *\n * @example\n * ```typescript\n * const answers = [\n * { answer: 'a', success: true, timestamp: '...' },\n * { answer: 'b', success: false, timestamp: '...' },\n * { answer: 'c', success: true, timestamp: '...' },\n * ];\n * const percentage = calculateSuccessPercentage(answers, 3); // 67 (2 out of 3 correct)\n * ```\n */\nexport function calculateSuccessPercentage(\n answers: AnswerRecord[],\n totalQuestions: number,\n): number {\n if (totalQuestions === 0) {\n return 0;\n }\n\n const correct = countCorrectAnswers(answers);\n return Math.round((correct / totalQuestions) * 100);\n}\n","/**\n * Storage Service\n *\n * Coordinates between IndexedDB persistence and sessionStorage cache.\n * Provides high-level operations for loading/saving student records.\n */\n\nimport type {\n StudentRecord,\n SessionData,\n SessionCache,\n PageData,\n PageId,\n ReleaseId,\n AnswerRecord,\n} from '../types/contracts.js';\nimport { getStorageAdapter } from './storage/indexeddb.js';\nimport { buildCacheFromRecord } from './session.js';\nimport { calculateCompletionState } from './state-calculator.js';\nimport { recalculateTotalsFromPages } from '../utils/calculation-helpers.js';\nimport { info, warn, error as logError } from '../utils/logger.js';\n\n/**\n * Storage Service for managing student records\n */\nexport class StorageService {\n private adapter;\n private dbName: string;\n\n /**\n * Create storage service with specified database name\n *\n * @param dbName - IndexedDB database name (REQUIRED - no default)\n */\n constructor(dbName: string) {\n if (!dbName) {\n throw new Error('FATAL: dbName is required for StorageService');\n }\n this.dbName = dbName;\n this.adapter = getStorageAdapter(dbName);\n }\n\n /**\n * Initialize IndexedDB storage\n */\n async init(): Promise {\n try {\n await this.adapter.init();\n info(`Storage service initialized (IndexedDB \"${this.dbName}\" ready)`);\n } catch (err) {\n logError('Failed to initialize storage service', err as Error);\n throw err;\n }\n }\n\n /**\n * Load student record from IndexedDB\n *\n * Creates a new record if none exists.\n *\n * @param session - Current session data\n * @returns Student record\n */\n async loadStudentRecord(session: SessionData): Promise {\n try {\n const existing = await this.adapter.getStudent(session.release, session.serviceId);\n\n if (existing) {\n info(`Loaded student record for ${session.serviceId} from IndexedDB`);\n return existing;\n }\n\n // Create new student record\n const newRecord: StudentRecord = {\n schema: 1,\n docId: session.release, // Use release as docId\n release: session.release,\n serviceId: session.serviceId,\n name: session.name,\n attempted: 0,\n correct: 0,\n updated: new Date().toISOString(),\n pages: {},\n };\n\n info(`Created new student record for ${session.serviceId}`);\n return newRecord;\n } catch (err) {\n // If IndexedDB has schema issues, create a new record\n warn(`IndexedDB error, creating new record: ${(err as Error).message}`);\n const newRecord: StudentRecord = {\n schema: 1,\n docId: session.release,\n release: session.release,\n serviceId: session.serviceId,\n name: session.name,\n attempted: 0,\n correct: 0,\n updated: new Date().toISOString(),\n pages: {},\n };\n return newRecord;\n }\n }\n\n /**\n * Save student record to IndexedDB\n *\n * @param record - Student record to save\n */\n async saveStudentRecord(record: StudentRecord): Promise {\n try {\n // Update timestamp\n record.updated = new Date().toISOString();\n\n // Recalculate totals from pages using calculation helper\n const totals = recalculateTotalsFromPages(record.pages);\n record.attempted = totals.attempted;\n record.correct = totals.correct;\n\n await this.adapter.saveStudent(record);\n info(`Saved student record for ${record.serviceId} to IndexedDB`);\n } catch (err) {\n logError('Failed to save student record', err as Error);\n throw err;\n }\n }\n\n /**\n * Update student record with a new answer\n *\n * @param record - Current student record\n * @param pageId - Page where answer was submitted\n * @param questionIndex - Question index (0-based)\n * @param answer - Answer record\n * @param totalQuestions - Total questions on the page\n * @returns Updated student record\n */\n updateRecordWithAnswer(\n record: StudentRecord,\n pageId: PageId,\n questionIndex: number,\n answer: AnswerRecord,\n totalQuestions: number,\n ): StudentRecord {\n // Get or create page data\n const existingPage = record.pages[pageId];\n const pageData: PageData = existingPage || {\n answers: [],\n state: 'unstarted',\n };\n\n // Ensure answers array is large enough\n while (pageData.answers.length <= questionIndex) {\n pageData.answers.push({\n answer: '',\n success: false,\n timestamp: new Date().toISOString(),\n });\n }\n\n // Update answer at index (FR-015: overwrites previous answer for re-submissions)\n // Only the most recent answer is stored, with updated timestamp\n pageData.answers[questionIndex] = answer;\n\n // Update timestamps\n const now = new Date().toISOString();\n if (!pageData.firstAttempted) {\n pageData.firstAttempted = now;\n }\n pageData.lastAttempted = now;\n\n // Recalculate state\n pageData.state = calculateCompletionState(pageData.answers, totalQuestions);\n\n // Update record\n return {\n ...record,\n pages: {\n ...record.pages,\n [pageId]: pageData,\n },\n };\n }\n\n /**\n * Build session cache from student record\n *\n * @param record - Student record\n * @returns Session cache\n */\n buildCache(record: StudentRecord): SessionCache {\n return buildCacheFromRecord(record);\n }\n\n /**\n * Get all students for a release\n *\n * @param release - Release identifier\n * @returns Array of student records\n */\n async getStudentsByRelease(release: ReleaseId): Promise {\n try {\n return await this.adapter.getStudentsByRelease(release);\n } catch (err) {\n logError('Failed to get students by release', err as Error);\n throw err;\n }\n }\n\n /**\n * Clear all data from IndexedDB\n */\n async clearAll(): Promise {\n try {\n await this.adapter.clearAll();\n info('Cleared all data from IndexedDB');\n } catch (err) {\n logError('Failed to clear all data', err as Error);\n throw err;\n }\n }\n\n /**\n * Create backup of student record\n *\n * @param record - Student record to backup\n */\n async backup(record: StudentRecord): Promise {\n try {\n await this.adapter.backup(record);\n info(`Created backup for ${record.serviceId}`);\n } catch (err) {\n warn(`Failed to create backup for ${record.serviceId}`, err);\n }\n }\n}\n\n// ============================================================================\n// SINGLETON PATTERN\n// ============================================================================\n\nlet storageServiceInstance: StorageService | null = null;\nlet currentServiceDbName: string | null = null;\n\n/**\n * Get singleton storage service instance\n *\n * @param dbName - IndexedDB database name (optional, uses existing instance if available)\n */\nexport function getStorageService(dbName?: string): StorageService {\n // If instance exists and no dbName specified, return existing\n if (storageServiceInstance && !dbName) {\n return storageServiceInstance;\n }\n\n // If dbName specified and different, warn but return existing (don't break app)\n if (storageServiceInstance && dbName && currentServiceDbName !== dbName) {\n warn(\n `Storage service already initialized with dbName=\"${currentServiceDbName}\", ignoring new dbName=\"${dbName}\"`,\n );\n return storageServiceInstance;\n }\n\n // Create new instance if none exists\n if (!storageServiceInstance) {\n if (!dbName) {\n throw new Error('FATAL: dbName is required for first getStorageService() call');\n }\n storageServiceInstance = new StorageService(dbName);\n currentServiceDbName = dbName;\n }\n\n return storageServiceInstance;\n}\n\n/**\n * Reset singleton (for testing)\n */\nexport function resetStorageService(): void {\n storageServiceInstance = null;\n currentServiceDbName = null;\n}\n","/**\n * Quiz Table Enhancer\n *\n * Implements single-phase progressive enhancement for quiz tables.\n * Replaces the old two-phase (prepare/activate) pattern with a simpler\n * conditional approach based on interactive flag.\n *\n * Features:\n * - Non-interactive mode: Hide answer column for security\n * - Interactive mode: Inject input controls, validation, auto-save\n * - Uses WeakMap for metadata (not DOM attributes)\n * - Debounced auto-save to prevent excessive writes\n * - Event emission for state changes\n */\n\nimport type {\n ParsedQuizTable,\n QuizQuestion,\n AnswerRecord,\n PageId,\n SessionData,\n SessionCache,\n} from '../types/contracts.js';\nimport { parseQuizTable } from '../services/quiz-parser.js';\nimport { validateAnswer } from '../services/quiz-parser.js';\nimport { registerPageQuestions } from '../services/session.js';\nimport { getQuestionInputSpec } from '../services/question-input.js';\nimport { formatStudentAnswersForDisplay } from '../services/answer-display.js';\nimport { Debouncer } from '../utils/debouncer.js';\nimport { createElement, addClass, removeClass } from '../utils/dom-helpers.js';\nimport { emitCustomEvent } from '../utils/event-helpers.js';\nimport { getJSON, setJSON } from '../utils/storage-helpers.js';\nimport { STORAGE_KEYS } from '../types/contracts.js';\nimport { info, error as logError, warn } from '../utils/logger.js';\nimport { getStorageService } from '../services/storage-service.js';\n\n/**\n * Enhancement options\n */\nexport interface EnhanceQuizTableOptions {\n /** Whether to enable interactive controls */\n interactive: boolean;\n /** Current page ID (required for interactive mode) */\n pageId?: PageId;\n}\n\n/**\n * Quiz table metadata (stored in WeakMap)\n */\ninterface QuizTableMetadata {\n /** Parsed quiz data */\n parsed: ParsedQuizTable;\n /** Enhancement mode */\n interactive: boolean;\n /** Page ID (if interactive) */\n pageId?: PageId;\n /** Row input elements (if interactive) - can be text inputs or select dropdowns */\n inputs?: (HTMLInputElement | HTMLSelectElement)[];\n /** Debouncer for auto-save */\n debouncer?: Debouncer;\n /** Cleanup function for instructor event listeners */\n cleanupInstructorListeners?: () => void;\n}\n\n// WeakMap to store table metadata without polluting DOM\nconst tableMetadata = new WeakMap();\n\n/**\n * Enhance a quiz table with single-phase enhancement\n *\n * @param table - The quiz table element\n * @param options - Enhancement options\n * @returns true if enhancement succeeded, false if errors occurred\n *\n * @example\n * ```typescript\n * // Non-interactive mode (hide answers)\n * const table = document.querySelector('table.qd-quiz');\n * if (table) {\n * enhanceQuizTable(table, { interactive: false });\n * }\n *\n * // Interactive mode (inject controls)\n * enhanceQuizTable(table, { interactive: true, pageId: 'gram-1' });\n * ```\n */\nexport function enhanceQuizTable(\n table: HTMLTableElement,\n options: EnhanceQuizTableOptions,\n): boolean {\n // Check if already enhanced\n const existing = tableMetadata.get(table);\n let parsed: ParsedQuizTable;\n\n if (existing) {\n // If upgrading from non-interactive to interactive, proceed\n if (!existing.interactive && options.interactive) {\n info('Upgrading quiz table from non-interactive to interactive mode');\n // Reuse existing parsed data (answers already extracted before clearing DOM)\n parsed = existing.parsed;\n } else {\n // Already enhanced in same or higher mode, skip\n info('Quiz table already enhanced, skipping');\n return true;\n }\n } else {\n // Parse the table (first enhancement)\n parsed = parseQuizTable(table);\n\n // Check for parsing errors\n if (parsed.errors && parsed.errors.length > 0) {\n logError('Quiz table has validation errors:', parsed.errors);\n // Still continue enhancement to show errors visually\n }\n }\n\n // Store metadata in WeakMap\n const metadata: QuizTableMetadata = {\n parsed,\n interactive: options.interactive,\n pageId: options.pageId,\n };\n\n if (options.interactive) {\n // Validate pageId is provided for interactive mode\n if (!options.pageId) {\n logError('Interactive mode requires pageId option');\n return false;\n }\n\n info(`Preparing interactive enhancement for pageId: ${options.pageId}`);\n\n // Initialize debouncer for auto-save\n metadata.debouncer = new Debouncer();\n metadata.inputs = [];\n }\n\n tableMetadata.set(table, metadata);\n\n // Apply enhancement based on mode\n if (options.interactive) {\n const result = enhanceInteractive(table, metadata);\n if (result) {\n info(`Interactive enhancement succeeded for table with ${parsed.questions.length} questions`);\n } else {\n logError('Interactive enhancement failed');\n }\n return result;\n } else {\n return enhanceNonInteractive(table);\n }\n}\n\n/**\n * Enhance table in non-interactive mode\n * - Hide answer column (security: don't show correct answers before login)\n * - Hide detail column (security: don't show MCQ options or tolerances before login)\n *\n * @param table - Quiz table element\n * @returns true if successful\n */\nfunction enhanceNonInteractive(table: HTMLTableElement): boolean {\n // Remove colgroup to allow auto-sizing of columns\n removeColgroup(table);\n\n // Hide answer column (column index 1) - security: hide correct answers before login\n hideAnswerColumn(table);\n\n // Hide detail column (column index 2) - security: hide MCQ options/tolerances\n hideDetailColumn(table);\n\n addClass(table, 'qd-quiz-non-interactive');\n info('Quiz table enhanced in non-interactive mode');\n\n return true;\n}\n\n/**\n * Enhance table in interactive mode\n * - Inject input controls for each question\n * - Setup validation and auto-save\n * - Load existing answers from storage\n *\n * @param table - Quiz table element\n * @param metadata - Table metadata\n * @returns true if successful\n */\nfunction enhanceInteractive(table: HTMLTableElement, metadata: QuizTableMetadata): boolean {\n const { parsed, pageId, debouncer } = metadata;\n\n if (!pageId || !debouncer) {\n logError('Interactive mode requires pageId and debouncer');\n return false;\n }\n\n // Show answer column (remove qd-hidden class from non-interactive mode)\n showAnswerColumn(table);\n\n // Hide detail column in interactive mode\n // - MCQ options are now in the select dropdown\n // - Numeric tolerance is applied automatically\n hideDetailColumn(table);\n\n // Get session data\n const session = getJSON(STORAGE_KEYS.SESSION);\n if (!session) {\n logError('No active session found');\n return false;\n }\n\n // Get session cache\n let cache = getJSON(STORAGE_KEYS.CACHE);\n if (!cache) {\n info('No cache found, creating empty cache');\n cache = {\n totals: { total: 0, answered: 0, correct: 0 },\n pages: {},\n };\n } else {\n info(\n `Cache loaded: ${cache.totals.total} total questions, ${Object.keys(cache.pages).length} pages`,\n );\n }\n\n // Register page questions (updates total count in cache)\n const totalQuestions = parsed.questions.length;\n cache = registerPageQuestions(cache, pageId, totalQuestions);\n setJSON(STORAGE_KEYS.CACHE, cache);\n\n const pageCache = cache?.pages[pageId];\n const existingAnswers = pageCache?.answers || [];\n info(\n `Page ${pageId}: ${existingAnswers.length} existing answers, state: ${pageCache?.state || 'none'}`,\n );\n\n // Get all tbody rows\n const tbody = table.querySelector('tbody');\n if (!tbody) {\n logError('Quiz table has no tbody element');\n return false;\n }\n\n const rows = Array.from(tbody.querySelectorAll('tr'));\n const inputs: (HTMLInputElement | HTMLSelectElement)[] = [];\n\n // Inject controls for each question\n parsed.questions.forEach((question, index) => {\n const row = rows[index];\n if (!row) return;\n\n const cells = Array.from(row.querySelectorAll('td'));\n if (cells.length !== 3) return;\n\n const questionCell = cells[0];\n const answerCell = cells[1];\n\n if (!questionCell || !answerCell) return;\n\n // Get existing answer for this question\n const existingAnswer = existingAnswers[index];\n if (existingAnswer && existingAnswer.answer) {\n info(\n `Q${index + 1}: Pre-filling with \"${existingAnswer.answer}\" (${existingAnswer.success ? 'correct' : 'incorrect'})`,\n );\n }\n\n // Create input control based on question type\n const input = createQuestionInput(question, existingAnswer);\n inputs.push(input);\n\n // Clear answer cell styling from any previous user session\n removeClass(answerCell, 'qd-answer-correct', 'qd-answer-incorrect');\n\n // Clear answer cell and inject input\n answerCell.textContent = '';\n answerCell.appendChild(input);\n\n // Apply validation styling if answer exists\n if (existingAnswer) {\n applyValidationStyling(answerCell, existingAnswer.success);\n }\n\n // Setup auto-save on input change\n // Use 'change' for select elements (MCQ), 'input' for text inputs (numeric)\n const eventType = input.tagName === 'SELECT' ? 'change' : 'input';\n input.addEventListener(eventType, () => {\n handleAnswerInput(table, metadata, index, input.value);\n });\n });\n\n // Store input references\n metadata.inputs = inputs;\n\n // Setup instructor answer display listeners\n const showAnswersHandler = () => {\n void showStudentAnswersForTable(table, metadata);\n };\n const hideAnswersHandler = () => {\n hideStudentAnswersForTable(table);\n };\n\n document.addEventListener('qd:instructor-show-answers', showAnswersHandler);\n document.addEventListener('qd:instructor-hide-answers', hideAnswersHandler);\n\n // Check if instructor mode with toggle already enabled\n const isInstructor = sessionStorage.getItem(STORAGE_KEYS.INSTRUCTOR) === 'true';\n const showAnswers = sessionStorage.getItem('qd/instructor/showAnswers') === 'true';\n if (isInstructor && showAnswers) {\n void showStudentAnswersForTable(table, metadata);\n }\n\n // Reset UI state - used on both logout and login (new user)\n const resetUIState = () => {\n // Clear student-specific color-coded feedback\n const answerCells = table.querySelectorAll('td.qd-answer-correct, td.qd-answer-incorrect');\n answerCells.forEach((cell) => {\n removeClass(cell, 'qd-answer-correct', 'qd-answer-incorrect');\n });\n\n // Reset input values to default state\n if (metadata.inputs) {\n for (const input of metadata.inputs) {\n if (input instanceof HTMLSelectElement) {\n // Reset select to first option (\"Select an answer...\")\n input.selectedIndex = 0;\n } else if (input instanceof HTMLInputElement) {\n // Clear text input\n input.value = '';\n }\n }\n }\n\n // Clear any displayed student answers\n hideStudentAnswersForTable(table);\n };\n\n // Add logout listener to clear student-specific UI state (FR-001, FR-002)\n const logoutHandler = () => {\n resetUIState();\n info('Cleared student UI state from quiz table on logout');\n };\n\n // Add login listener to reset UI for new user (handles migration retry case)\n const loginHandler = () => {\n resetUIState();\n info('Reset quiz table UI on login');\n };\n\n document.addEventListener('qd:logout', logoutHandler);\n document.addEventListener('qd:login', loginHandler);\n\n // Store cleanup function in metadata\n metadata.cleanupInstructorListeners = () => {\n document.removeEventListener('qd:instructor-show-answers', showAnswersHandler);\n document.removeEventListener('qd:instructor-hide-answers', hideAnswersHandler);\n document.removeEventListener('qd:logout', logoutHandler);\n document.removeEventListener('qd:login', loginHandler);\n };\n\n addClass(table, 'qd-quiz-interactive');\n info(`Quiz table enhanced in interactive mode for page ${pageId}`);\n\n return true;\n}\n\n/**\n * Create input control for a question\n *\n * For MCQ questions: Creates a ` for MCQ questions, a text\n * `` for numeric questions. Extracted from `quiz-table.ts`.\n */\n\nimport type { QuizQuestion, AnswerRecord } from '../types/contracts.js';\nimport { getQuestionInputSpec } from '../services/question-input.js';\nimport { createElement } from '../utils/dom-helpers.js';\n\n/**\n * Create the input control for a question.\n *\n * @param question - Quiz question\n * @param existingAnswer - Existing answer if any (used to pre-fill)\n * @returns Input or select element\n */\nexport function createQuestionInput(\n question: QuizQuestion,\n existingAnswer?: AnswerRecord,\n): HTMLInputElement | HTMLSelectElement {\n const spec = getQuestionInputSpec(question, existingAnswer);\n\n if (spec.type === 'select') {\n // Create select dropdown for MCQ\n const select = createElement('select');\n select.className = spec.className;\n\n // Add placeholder option\n const placeholderOption = createElement('option');\n placeholderOption.value = '';\n placeholderOption.textContent = spec.placeholder;\n placeholderOption.disabled = true;\n select.appendChild(placeholderOption);\n\n // Add options from spec\n if (spec.options) {\n spec.options.forEach((opt) => {\n const option = createElement('option');\n option.value = opt.value;\n option.textContent = opt.text;\n select.appendChild(option);\n });\n }\n\n // Set value from spec\n select.value = spec.value;\n\n return select;\n }\n\n // Create text input for numeric questions\n const input = createElement('input');\n input.type = spec.type;\n input.className = spec.className;\n input.placeholder = spec.placeholder;\n input.value = spec.value;\n\n return input;\n}\n","/**\n * Question Input Service\n *\n * Pure functions for generating question input specifications.\n * No DOM dependencies - returns data structures that can be tested\n * without browser environment.\n *\n * Feature: 007-lit-component-refactor\n */\n\nimport type { QuizQuestion, AnswerRecord } from '../types/contracts.js';\n\n/**\n * Option specification for MCQ dropdowns\n */\nexport interface OptionSpec {\n value: string;\n text: string;\n}\n\n/**\n * Specification for rendering a question input\n */\nexport interface QuestionInputSpec {\n /** Input type: 'select' for MCQ, 'text' for numeric */\n type: 'select' | 'text';\n /** CSS class name */\n className: string;\n /** Placeholder text */\n placeholder: string;\n /** Current value (from existing answer or empty) */\n value: string;\n /** Options for select (MCQ only) */\n options?: OptionSpec[];\n}\n\n/**\n * Get input specification for a quiz question\n *\n * Returns a data structure describing how to render the input,\n * without creating DOM elements.\n *\n * @param question - Quiz question configuration\n * @param existingAnswer - Existing answer record (optional)\n * @returns Input specification\n */\nexport function getQuestionInputSpec(\n question: QuizQuestion,\n existingAnswer?: AnswerRecord,\n): QuestionInputSpec {\n if (question.kind === 'mcq') {\n // MCQ question - select dropdown\n const options: OptionSpec[] = (question.options || []).map((optionText, index) => ({\n value: String(index + 1), // 1-indexed\n text: `${index + 1}. ${optionText}`,\n }));\n\n return {\n type: 'select',\n className: 'qd-quiz-input',\n placeholder: 'Select an answer...',\n value: existingAnswer?.answer || '',\n options,\n };\n } else {\n // Numeric question - text input\n return {\n type: 'text',\n className: 'qd-quiz-input',\n placeholder: 'Enter value',\n value: existingAnswer?.answer || '',\n };\n }\n}\n","/**\n * Storage Adapter Utilities\n *\n * Provides utility functions for working with storage keys, validation,\n * and error types for the storage layer.\n *\n * Storage Key Format: qd/{release}/u{serviceId}\n * Example: qd/11-2024/uRN2344\n */\n\nimport type { StudentRecord, ReleaseId, ServiceId } from '../../types/contracts.js';\nimport { error as logError } from '../../utils/logger.js';\n\n/**\n * Generate storage key for a student record\n *\n * Format: qd/{release}/u{serviceId}\n *\n * @param release - Release identifier (e.g., \"01-2025\")\n * @param serviceId - Service ID (e.g., \"RN2344\")\n * @returns Storage key string\n *\n * @example\n * ```typescript\n * const key = getStorageKey('11-2024', 'RN2344');\n * // Returns: \"qd/11-2024/uRN2344\"\n * ```\n */\nexport function getStorageKey(release: ReleaseId, serviceId: ServiceId): string {\n return `qd/${release}/u${serviceId}`;\n}\n\n/**\n * Parse a storage key back into its components\n *\n * @param key - Storage key to parse\n * @returns Object with release and serviceId, or null if invalid\n *\n * @example\n * ```typescript\n * const parts = parseStorageKey('qd/11-2024/uRN2344');\n * // Returns: { release: '11-2024', serviceId: 'RN2344' }\n * ```\n */\nexport function parseStorageKey(key: string): { release: ReleaseId; serviceId: ServiceId } | null {\n const match = key.match(/^qd\\/([^/]+)\\/u(.+)$/);\n if (!match || !match[1] || !match[2]) {\n return null;\n }\n return {\n release: match[1],\n serviceId: match[2],\n };\n}\n\n/**\n * Validate release ID format (MM-YYYY)\n *\n * @param release - Release ID to validate\n * @returns True if valid, false otherwise\n *\n * @example\n * ```typescript\n * isValidReleaseId('11-2024'); // true\n * isValidReleaseId('2024-11'); // false\n * isValidReleaseId('13-2024'); // false (month > 12)\n * ```\n */\nexport function isValidReleaseId(release: string): boolean {\n const match = release.match(/^(\\d{2})-(\\d{4})$/);\n if (!match || !match[1] || !match[2]) {\n return false;\n }\n\n // Validate month range (01-12)\n const month = parseInt(match[1], 10);\n return month >= 1 && month <= 12;\n}\n\n/**\n * Validate service ID format (2-10 alphanumeric characters)\n *\n * @param serviceId - Service ID to validate\n * @returns True if valid, false otherwise\n *\n * @example\n * ```typescript\n * isValidServiceId('RN2344'); // true\n * isValidServiceId('AB'); // true (minimum 2 chars)\n * isValidServiceId('A'); // false (too short)\n * isValidServiceId('ABCDEFGHIJK'); // false (too long)\n * ```\n */\nexport function isValidServiceId(serviceId: string): boolean {\n return /^[A-Za-z0-9]{2,10}$/.test(serviceId);\n}\n\n/**\n * Create a default empty StudentRecord\n *\n * @param release - Release identifier\n * @param serviceId - Service identifier\n * @param name - Student name\n * @param docId - Document identifier\n * @returns New StudentRecord with default values\n *\n * @example\n * ```typescript\n * const record = createEmptyStudentRecord('11-2024', 'RN2344', 'Alice Student', 'doc-123');\n * // Returns StudentRecord with empty pages, 0 scores, current timestamp\n * ```\n */\nexport function createEmptyStudentRecord(\n release: ReleaseId,\n serviceId: ServiceId,\n name: string,\n docId: string,\n): StudentRecord {\n return {\n schema: 1,\n docId,\n release,\n serviceId,\n name,\n attempted: 0,\n correct: 0,\n updated: new Date().toISOString(),\n pages: {},\n };\n}\n\n/**\n * Storage adapter error types\n */\nexport class StorageError extends Error {\n constructor(\n message: string,\n public readonly operation: string,\n public readonly cause?: Error,\n ) {\n super(message);\n this.name = 'StorageError';\n\n // Log error for debugging\n if (cause) {\n logError(`Storage error in ${operation}: ${message}`, cause);\n } else {\n logError(`Storage error in ${operation}: ${message}`);\n }\n }\n}\n\n/**\n * Error thrown when storage is not initialized\n */\nexport class StorageNotInitializedError extends StorageError {\n constructor(operation: string) {\n super('Storage adapter not initialized. Call init() first.', operation);\n this.name = 'StorageNotInitializedError';\n }\n}\n\n/**\n * Error thrown when a storage operation times out\n */\nexport class StorageTimeoutError extends StorageError {\n constructor(operation: string, timeout: number) {\n super(`Storage operation timed out after ${timeout}ms`, operation);\n this.name = 'StorageTimeoutError';\n }\n}\n\n/**\n * Error thrown when storage quota is exceeded\n */\nexport class StorageQuotaError extends StorageError {\n constructor(operation: string) {\n super('Storage quota exceeded. Please clear old data or free up space.', operation);\n this.name = 'StorageQuotaError';\n }\n}\n\n/**\n * Error thrown when storage format doesn't match ENCRYPT_STORAGE setting\n *\n * This indicates a mismatch between the stored data format and the\n * current obfuscation configuration. Run migration to resolve.\n */\nexport class StorageFormatError extends StorageError {\n /** What format was expected based on ENCRYPT_STORAGE */\n public readonly expected: 'obfuscated' | 'plain';\n /** What format was actually found in storage */\n public readonly found: 'obfuscated' | 'plain';\n /** Storage key where mismatch occurred */\n public readonly storageKey: string;\n\n constructor(\n message: string,\n expected: 'obfuscated' | 'plain',\n found: 'obfuscated' | 'plain',\n storageKey: string,\n ) {\n super(message, 'formatCheck');\n this.name = 'StorageFormatError';\n this.expected = expected;\n this.found = found;\n this.storageKey = storageKey;\n }\n}\n","/**\n * IndexedDB connection management.\n *\n * Owns the database schema version, object-store names, the `onupgradeneeded`\n * schema creation, and the open/timeout/corruption-recovery flow. Extracted\n * from `indexeddb.ts` so the adapter no longer embeds connection plumbing.\n */\n\nimport { StorageError } from './adapter-utils.js';\nimport { warn as logWarn, error as logError } from '../../utils/logger.js';\n\n/** Database version - increment to force schema upgrade */\nexport const DB_VERSION = 3;\n\n/** Object store names */\nexport const STORE_STUDENTS = 'students';\nexport const STORE_BACKUPS = 'backups';\nexport const STORE_AUDIT_LOG = 'auditLog';\n\n/** Timeout for hung database open operations */\nconst OPEN_TIMEOUT_MS = 5000;\n\n/**\n * Create the object stores and indexes for a fresh or upgrading database.\n */\nfunction createSchema(event: IDBVersionChangeEvent): void {\n const db = (event.target as IDBOpenDBRequest).result;\n const transaction = (event.target as IDBOpenDBRequest).transaction;\n\n if (transaction) {\n transaction.onerror = () => {\n logError(`Upgrade transaction error: ${transaction.error?.message || 'unknown'}`);\n };\n transaction.onabort = () => {\n logError(`Upgrade transaction aborted: ${transaction.error?.message || 'unknown'}`);\n };\n }\n\n try {\n // Create students object store\n if (!db.objectStoreNames.contains(STORE_STUDENTS)) {\n const studentsStore = db.createObjectStore(STORE_STUDENTS, { keyPath: null });\n studentsStore.createIndex('by-release', 'release', { unique: false });\n studentsStore.createIndex('by-service-id', 'serviceId', { unique: false });\n }\n\n // Create backups object store\n if (!db.objectStoreNames.contains(STORE_BACKUPS)) {\n const backupsStore = db.createObjectStore(STORE_BACKUPS, { keyPath: null });\n backupsStore.createIndex('by-original-key', 'originalKey', { unique: false });\n backupsStore.createIndex('by-timestamp', 'timestamp', { unique: false });\n }\n\n // Create audit log object store (v3 - PIN reset events)\n if (!db.objectStoreNames.contains(STORE_AUDIT_LOG)) {\n const auditStore = db.createObjectStore(STORE_AUDIT_LOG, { keyPath: 'eventId' });\n auditStore.createIndex('by-service-id', 'serviceId', { unique: false });\n auditStore.createIndex('by-reset-at', 'resetAt', { unique: false });\n }\n } catch (err) {\n logError('Error during database upgrade', err as Error);\n throw err;\n }\n}\n\n/**\n * Whether the opened database is missing any required object store.\n */\nfunction isCorrupted(db: IDBDatabase): boolean {\n return (\n !db.objectStoreNames.contains(STORE_STUDENTS) ||\n !db.objectStoreNames.contains(STORE_BACKUPS) ||\n !db.objectStoreNames.contains(STORE_AUDIT_LOG)\n );\n}\n\n/**\n * Open (and if necessary create/upgrade or recover) the IndexedDB database.\n *\n * Mirrors the original adapter `init()` flow: a 5s open timeout triggers a\n * delete-and-recreate recovery, and an opened-but-store-less database is\n * treated as corrupted and recreated.\n *\n * @param dbName - Database name\n * @returns The ready database connection\n */\nexport function openDatabase(dbName: string): Promise {\n return new Promise((resolve, reject) => {\n let timeoutId: number | undefined;\n let resolved = false;\n\n const cleanup = () => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n timeoutId = undefined;\n }\n };\n\n timeoutId = window.setTimeout(() => {\n if (resolved) return;\n resolved = true;\n\n logWarn(`IndexedDB open timed out after ${OPEN_TIMEOUT_MS}ms - attempting recovery`);\n\n const deleteReq = indexedDB.deleteDatabase(dbName);\n deleteReq.onsuccess = () => {\n openDatabase(dbName).then(resolve).catch(reject);\n };\n deleteReq.onerror = () => {\n reject(\n new StorageError(\n `Database \"${dbName}\" appears corrupted. Please clear site data in browser settings.`,\n 'init',\n ),\n );\n };\n deleteReq.onblocked = () => {\n reject(\n new StorageError(\n `Cannot recover database - close all other tabs with this site and reload.`,\n 'init',\n ),\n );\n };\n }, OPEN_TIMEOUT_MS);\n\n const request = indexedDB.open(dbName, DB_VERSION);\n\n request.onerror = () => {\n if (resolved) return;\n resolved = true;\n cleanup();\n logError(`IndexedDB open error: ${request.error?.message || 'unknown'}`);\n reject(new StorageError('Failed to open database', 'init', request.error as Error));\n };\n\n request.onblocked = () => {\n logWarn('IndexedDB open blocked - close other tabs with this database');\n };\n\n request.onsuccess = () => {\n if (resolved) return;\n resolved = true;\n cleanup();\n\n const db = request.result;\n\n // Verify object stores exist - if not, database is corrupted\n if (isCorrupted(db)) {\n logWarn(\n `Database corrupted (missing stores). Found: [${Array.from(db.objectStoreNames).join(', ')}]`,\n );\n db.close();\n\n const deleteRequest = indexedDB.deleteDatabase(dbName);\n deleteRequest.onsuccess = () => {\n openDatabase(dbName).then(resolve).catch(reject);\n };\n deleteRequest.onerror = () => {\n reject(\n new StorageError(\n 'Failed to delete corrupted database',\n 'init',\n deleteRequest.error as Error,\n ),\n );\n };\n return;\n }\n\n resolve(db);\n };\n\n request.onupgradeneeded = (event) => {\n createSchema(event);\n };\n });\n}\n","/**\n * IndexedDB request/transaction helpers.\n *\n * Collapse the hand-rolled `new Promise(...)` + `onsuccess`/`onerror`\n * scaffolding that the adapter repeated for every operation into two reusable\n * helpers. Quota errors are surfaced as {@link StorageQuotaError}; all other\n * failures as {@link StorageError} tagged with the operation name.\n */\n\nimport { StorageError, StorageQuotaError } from './adapter-utils.js';\n\n/**\n * Wrap a single {@link IDBRequest} in a promise.\n *\n * @param request - The IndexedDB request\n * @param op - Operation name for error reporting\n * @returns The request result when it succeeds\n */\nexport function promisifyRequest(request: IDBRequest, op: string): Promise {\n return new Promise((resolve, reject) => {\n request.onsuccess = () => resolve(request.result);\n request.onerror = () => reject(toStorageError(request.error, op));\n });\n}\n\n/**\n * Run a single-store transaction and resolve with the request result.\n *\n * @param db - Open database connection\n * @param store - Object store name\n * @param mode - Transaction mode\n * @param fn - Builds the request against the object store\n * @param op - Operation name for error reporting\n * @returns The request result when both the request and transaction succeed\n */\nexport function runTransaction(\n db: IDBDatabase,\n store: string,\n mode: IDBTransactionMode,\n fn: (objectStore: IDBObjectStore) => IDBRequest,\n op: string,\n): Promise {\n return new Promise((resolve, reject) => {\n let request: IDBRequest;\n try {\n const transaction = db.transaction(store, mode);\n const objectStore = transaction.objectStore(store);\n request = fn(objectStore);\n transaction.onerror = () => reject(toStorageError(transaction.error, op));\n } catch (error) {\n reject(new StorageError(`Failed during ${op}`, op, error as Error));\n return;\n }\n\n request.onsuccess = () => resolve(request.result);\n request.onerror = () => reject(toStorageError(request.error, op));\n });\n}\n\n/**\n * Convert a DOMException from IndexedDB into the appropriate storage error.\n */\nfunction toStorageError(error: DOMException | null, op: string): Error {\n if (error?.name === 'QuotaExceededError') {\n return new StorageQuotaError(op);\n }\n return new StorageError(`Failed during ${op}`, op, error as Error);\n}\n","/**\n * Feature Flags\n *\n * Compile-time feature toggles for the Sonar Quiz System.\n * Set via environment variables at build time.\n */\n\n// Vite injects this at build time from ENCRYPT_STORAGE env var\ndeclare const __ENCRYPT_STORAGE__: boolean;\n\n/**\n * Enable storage obfuscation for IndexedDB data\n *\n * When true: StudentRecord values are XOR-encoded with base64 before storage.\n * When false: Data stored as plain JSON objects (readable in DevTools).\n *\n * IMPORTANT: Changing this flag requires data migration.\n * Use `window.SonarQuiz.migrateObfuscation()` (exported from src/index.ts) to convert existing data.\n *\n * Set via environment variable at build time:\n * ENCRYPT_STORAGE=true npm run build\n *\n * @default false - Development mode (readable data)\n */\nexport const ENCRYPT_STORAGE: boolean =\n typeof __ENCRYPT_STORAGE__ !== 'undefined' ? __ENCRYPT_STORAGE__ : false;\n","/**\n * Obfuscation Utilities for IndexedDB Storage\n *\n * Provides deterrence-level obfuscation for student records.\n * Uses XOR cipher with base64 encoding - NOT cryptographic security.\n *\n * Purpose: Prevent casual inspection via browser DevTools.\n */\n\n/**\n * Magic prefix for obfuscated data\n * Used for format detection and fail-fast behavior\n */\nexport const OBFUSCATION_PREFIX = 'OBF:' as const;\n\n/**\n * Type representing obfuscated data format\n * Always starts with \"OBF:\" followed by base64 payload\n */\nexport type ObfuscatedString = `${typeof OBFUSCATION_PREFIX}${string}`;\n\n/**\n * Derive obfuscation key from Release ID\n *\n * Creates a repeating byte pattern for XOR cipher.\n * Converts each character to its char code and joins with separator.\n *\n * @param releaseId - Release ID from DOM (.wh_publication_title .title)\n * @returns Obfuscation key string\n */\nexport function deriveKey(releaseId: string): string {\n if (!releaseId) {\n return '';\n }\n // Convert each character to char code and join\n // This creates a repeating numeric pattern for XOR\n return releaseId\n .split('')\n .map((c) => c.charCodeAt(0).toString())\n .join('');\n}\n\n/**\n * XOR a string with a key\n *\n * Symmetric operation - same function encodes and decodes.\n * Key cycles if shorter than input.\n *\n * @param input - String to XOR\n * @param key - Key for XOR operation\n * @returns XOR'd string\n */\nexport function xorString(input: string, key: string): string {\n if (!input || !key) {\n return input || '';\n }\n\n const result: string[] = [];\n for (let i = 0; i < input.length; i++) {\n const inputChar = input.charCodeAt(i);\n const keyChar = key.charCodeAt(i % key.length);\n result.push(String.fromCharCode(inputChar ^ keyChar));\n }\n return result.join('');\n}\n\n/**\n * Convert string to UTF-8 bytes for safe base64 encoding\n * Handles Unicode characters correctly\n */\nfunction stringToUtf8Bytes(str: string): Uint8Array {\n return new TextEncoder().encode(str);\n}\n\n/**\n * Convert UTF-8 bytes back to string\n */\nfunction utf8BytesToString(bytes: Uint8Array): string {\n return new TextDecoder().decode(bytes);\n}\n\n/**\n * XOR bytes with key bytes (for UTF-8 safe operation)\n */\nfunction xorBytes(data: Uint8Array, key: Uint8Array): Uint8Array {\n if (key.length === 0) {\n return data;\n }\n const result = new Uint8Array(data.length);\n for (let i = 0; i < data.length; i++) {\n const dataByte = data[i];\n const keyByte = key[i % key.length];\n if (dataByte !== undefined && keyByte !== undefined) {\n result[i] = dataByte ^ keyByte;\n }\n }\n return result;\n}\n\n/**\n * Convert Uint8Array to base64 string\n */\nfunction bytesToBase64(bytes: Uint8Array): string {\n // Convert bytes to binary string\n let binary = '';\n for (let i = 0; i < bytes.length; i++) {\n const byte = bytes[i];\n if (byte !== undefined) {\n binary += String.fromCharCode(byte);\n }\n }\n return btoa(binary);\n}\n\n/**\n * Convert base64 string to Uint8Array\n */\nfunction base64ToBytes(base64: string): Uint8Array {\n const binary = atob(base64);\n const bytes = new Uint8Array(binary.length);\n for (let i = 0; i < binary.length; i++) {\n bytes[i] = binary.charCodeAt(i);\n }\n return bytes;\n}\n\n/**\n * Encode data with obfuscation\n *\n * Process: JSON.stringify → UTF-8 bytes → XOR with key → base64 → add prefix\n *\n * @param data - Plain object to obfuscate\n * @param key - Obfuscation key (from deriveKey)\n * @returns Obfuscated string with OBF: prefix\n */\nexport function encode(data: T, key: string): ObfuscatedString {\n const json = JSON.stringify(data);\n const jsonBytes = stringToUtf8Bytes(json);\n const keyBytes = stringToUtf8Bytes(key || 'default');\n const xoredBytes = xorBytes(jsonBytes, keyBytes);\n const base64 = bytesToBase64(xoredBytes);\n return `${OBFUSCATION_PREFIX}${base64}`;\n}\n\n/**\n * Decode obfuscated data\n *\n * Process: remove prefix → base64 decode → XOR with key → UTF-8 to string → JSON.parse\n *\n * @param encoded - Obfuscated string (must start with OBF:)\n * @param key - Obfuscation key (same as used for encoding)\n * @returns Decoded object\n * @throws Error if decode fails (corrupted/tampered data)\n */\nexport function decode(encoded: ObfuscatedString, key: string): T {\n // Remove prefix\n const base64 = encoded.slice(OBFUSCATION_PREFIX.length);\n\n if (!base64) {\n throw new Error('Empty obfuscated payload');\n }\n\n // Base64 decode - throws if invalid\n let xoredBytes: Uint8Array;\n try {\n xoredBytes = base64ToBytes(base64);\n } catch {\n throw new Error('Invalid base64 in obfuscated data');\n }\n\n // XOR to get original JSON bytes\n const keyBytes = stringToUtf8Bytes(key || 'default');\n const jsonBytes = xorBytes(xoredBytes, keyBytes);\n\n // Convert to string\n let json: string;\n try {\n json = utf8BytesToString(jsonBytes);\n } catch {\n throw new Error('Failed to decode UTF-8 data - possibly corrupted');\n }\n\n // Parse JSON - throws if invalid\n try {\n return JSON.parse(json) as T;\n } catch {\n throw new Error('Failed to parse JSON - data may be corrupted or tampered');\n }\n}\n\n/**\n * Check if a value is obfuscated\n *\n * @param value - Value to check\n * @returns True if value starts with OBF: prefix\n */\nexport function isObfuscated(value: unknown): value is ObfuscatedString {\n return typeof value === 'string' && value.startsWith(OBFUSCATION_PREFIX);\n}\n","/**\n * IndexedDB Storage Adapter Implementation\n *\n * Thin coordinator over the storage sub-modules:\n * - `idb-connection` — open/upgrade/recovery + schema (DB_VERSION, stores)\n * - `idb-helpers` — promisify/runTransaction scaffolding\n * - `idb-codec` — encryption-aware encode/decode + format checks\n * - `backup-repository` / `audit-log-repository` — non-student stores\n *\n * Database: Configured via #qd-db-name element (REQUIRED)\n * Stores: students (main data), backups (backup copies), auditLog (PIN resets)\n * Keys: qd/{release}/u{serviceId}\n */\n\nimport type {\n StorageAdapter,\n StudentRecord,\n ReleaseId,\n ServiceId,\n PinResetEvent,\n} from '../../types/contracts.js';\nimport { getStorageKey, StorageNotInitializedError, StorageError } from './adapter-utils.js';\nimport { openDatabase, STORE_STUDENTS } from './idb-connection.js';\nimport { promisifyRequest, runTransaction } from './idb-helpers.js';\nimport {\n encodeForStore,\n decodeStoredValue,\n tryDecodeCursorValue,\n isEncryptionEnabled,\n} from './idb-codec.js';\nimport { createBackup } from './backup-repository.js';\nimport { saveAuditEvent as persistAuditEvent } from './audit-log-repository.js';\nimport { STORE_BACKUPS, STORE_AUDIT_LOG } from './idb-connection.js';\n\n/**\n * IndexedDB implementation of StorageAdapter\n *\n * Features:\n * - Automatic schema creation with indexes\n * - Atomic transactions\n * - Quota error handling\n * - Backup functionality\n */\nexport class IndexedDBStorageAdapter implements StorageAdapter {\n private db: IDBDatabase | null = null;\n private initPromise: Promise | null = null;\n private dbName: string;\n\n /**\n * Create a new IndexedDB storage adapter\n *\n * @param dbName - Database name (REQUIRED - no default)\n */\n constructor(dbName: string) {\n if (!dbName) {\n throw new Error('FATAL: dbName is required for IndexedDBStorageAdapter');\n }\n this.dbName = dbName;\n }\n\n /**\n * Initialize the IndexedDB database\n *\n * Creates object stores and indexes on first run. Safe to call multiple\n * times - will reuse the existing connection or in-flight init.\n */\n async init(): Promise {\n if (this.initPromise) {\n return this.initPromise;\n }\n if (this.db) {\n return Promise.resolve();\n }\n\n this.initPromise = openDatabase(this.dbName)\n .then((db) => {\n this.db = db;\n })\n .finally(() => {\n this.initPromise = null;\n });\n\n return this.initPromise;\n }\n\n /**\n * Ensure database is initialized before operations\n *\n * @throws StorageNotInitializedError if not initialized\n * @returns Database instance\n */\n private ensureInitialized(): IDBDatabase {\n if (!this.db) {\n throw new StorageNotInitializedError('ensureInitialized');\n }\n return this.db;\n }\n\n /**\n * Get a student record by release and service ID\n *\n * @param release - Release identifier\n * @param serviceId - Service identifier\n * @returns Student record or null if not found\n * @throws StorageFormatError if format mismatch detected\n */\n async getStudent(release: ReleaseId, serviceId: ServiceId): Promise {\n const db = this.ensureInitialized();\n const key = getStorageKey(release, serviceId);\n\n const rawValue = await runTransaction(\n db,\n STORE_STUDENTS,\n 'readonly',\n (store) => store.get(key),\n 'getStudent',\n );\n\n if (rawValue === undefined || rawValue === null) {\n return null;\n }\n\n return decodeStoredValue(rawValue, release, key);\n }\n\n /**\n * Save a student record (encodes when encryption is enabled).\n *\n * @param record - Student record to save\n * @throws StorageQuotaError if storage quota exceeded\n */\n async saveStudent(record: StudentRecord): Promise {\n const db = this.ensureInitialized();\n const key = getStorageKey(record.release, record.serviceId);\n const valueToStore = encodeForStore(record);\n\n await runTransaction(\n db,\n STORE_STUDENTS,\n 'readwrite',\n (store) => store.put(valueToStore, key),\n 'saveStudent',\n );\n }\n\n /**\n * Get all students for a specific release.\n *\n * Uses the by-release index in plain mode; performs a full decode scan when\n * encryption is enabled (the index cannot see into obfuscated values).\n *\n * @param release - Release identifier\n * @returns Array of student records (empty if none found)\n */\n async getStudentsByRelease(release: ReleaseId): Promise {\n const db = this.ensureInitialized();\n\n if (isEncryptionEnabled()) {\n return this.getStudentsByReleaseEncrypted(release);\n }\n\n const all = await runTransaction(\n db,\n STORE_STUDENTS,\n 'readonly',\n (store) => store.index('by-release').getAll(release) as IDBRequest,\n 'getStudentsByRelease',\n );\n return all || [];\n }\n\n /**\n * Full-scan decode of all students for a release (encryption enabled).\n */\n private getStudentsByReleaseEncrypted(release: ReleaseId): Promise {\n const db = this.ensureInitialized();\n\n return new Promise((resolve, reject) => {\n const transaction = db.transaction(STORE_STUDENTS, 'readonly');\n const store = transaction.objectStore(STORE_STUDENTS);\n const request = store.openCursor();\n const results: StudentRecord[] = [];\n\n request.onsuccess = () => {\n const cursor = request.result;\n if (cursor) {\n const record = tryDecodeCursorValue(cursor.value, release);\n if (record && record.release === release) {\n results.push(record);\n }\n cursor.continue();\n } else {\n resolve(results);\n }\n };\n\n request.onerror = () => {\n reject(\n new StorageError(\n 'Failed during getStudentsByRelease',\n 'getStudentsByRelease',\n request.error as Error,\n ),\n );\n };\n });\n }\n\n /**\n * Clear all data from the database.\n *\n * Removes students, backups, and audit-log entries in a single atomic\n * transaction.\n */\n async clearAll(): Promise {\n const db = this.ensureInitialized();\n const transaction = db.transaction(\n [STORE_STUDENTS, STORE_BACKUPS, STORE_AUDIT_LOG],\n 'readwrite',\n );\n\n await Promise.all([\n promisifyRequest(transaction.objectStore(STORE_STUDENTS).clear(), 'clearAll'),\n promisifyRequest(transaction.objectStore(STORE_BACKUPS).clear(), 'clearAll'),\n promisifyRequest(transaction.objectStore(STORE_AUDIT_LOG).clear(), 'clearAll'),\n ]);\n }\n\n /**\n * Create a backup of a student record.\n *\n * @param record - Student record to backup\n * @throws StorageQuotaError if storage quota exceeded\n */\n async backup(record: StudentRecord): Promise {\n const db = this.ensureInitialized();\n await createBackup(db, record);\n }\n\n /**\n * Save a PIN reset event to the audit log.\n *\n * @param event - PIN reset event to log\n */\n async saveAuditEvent(event: PinResetEvent): Promise {\n const db = this.ensureInitialized();\n await persistAuditEvent(db, event);\n }\n\n /**\n * Close the database connection.\n *\n * Useful for cleanup in tests and application shutdown.\n */\n close(): void {\n if (this.db) {\n this.db.close();\n this.db = null;\n this.initPromise = null;\n }\n }\n}\n\n/**\n * Singleton storage adapter instance\n */\nlet storageInstance: IndexedDBStorageAdapter | null = null;\nlet currentDbName: string | null = null;\n\n/**\n * Get the singleton storage adapter instance\n *\n * Creates a new instance on first call, reuses it thereafter.\n * If dbName changes, closes old instance and creates new one.\n *\n * @param dbName - Database name (REQUIRED - no default)\n * @returns IndexedDB storage adapter\n */\nexport function getStorageAdapter(dbName: string): IndexedDBStorageAdapter {\n if (!dbName) {\n throw new Error('FATAL: dbName is required for getStorageAdapter()');\n }\n\n // If dbName changed, close old instance and create new one\n if (storageInstance && currentDbName !== dbName) {\n storageInstance.close();\n storageInstance = null;\n }\n\n if (!storageInstance) {\n storageInstance = new IndexedDBStorageAdapter(dbName);\n currentDbName = dbName;\n }\n return storageInstance;\n}\n\n/**\n * Reset the singleton instance\n *\n * Useful for testing to ensure clean state between tests.\n */\nexport function resetStorageAdapter(): void {\n if (storageInstance) {\n storageInstance.close();\n storageInstance = null;\n currentDbName = null;\n }\n}\n","/**\n * Encryption-aware codec for stored student records.\n *\n * Confines the `ENCRYPT_STORAGE` policy and the obfuscation encode/decode +\n * format-mismatch detection to a single module. The adapter no longer\n * references `ENCRYPT_STORAGE`, `deriveKey`, or `isObfuscated` directly.\n */\n\nimport type { StudentRecord, ReleaseId } from '../../types/contracts.js';\nimport { StorageError, StorageFormatError } from './adapter-utils.js';\nimport { ENCRYPT_STORAGE } from '../../config/feature-flags.js';\nimport { encode, decode, isObfuscated, deriveKey } from './obfuscation.js';\n\n/**\n * Whether the codec is currently operating in encrypted mode.\n */\nexport function isEncryptionEnabled(): boolean {\n return ENCRYPT_STORAGE;\n}\n\n/**\n * Encode a record for storage, obfuscating it when encryption is enabled.\n *\n * @param record - Student record to encode\n * @returns The value to persist (obfuscated string or the plain record)\n */\nexport function encodeForStore(record: StudentRecord): unknown {\n return ENCRYPT_STORAGE ? encode(record, deriveKey(record.release)) : record;\n}\n\n/**\n * Decode a stored value, verifying its format matches the ENCRYPT_STORAGE\n * setting.\n *\n * @param rawValue - Value from IndexedDB (obfuscated string or plain object)\n * @param release - Release ID for key derivation\n * @param storageKey - Storage key for error reporting\n * @returns The decoded student record\n * @throws StorageFormatError if the stored format does not match the setting\n */\nexport function decodeStoredValue(\n rawValue: unknown,\n release: ReleaseId,\n storageKey: string,\n): StudentRecord {\n const storedIsObfuscated = isObfuscated(rawValue);\n\n // Check for format mismatch\n if (ENCRYPT_STORAGE && !storedIsObfuscated) {\n throw new StorageFormatError(\n 'Unobfuscated data found with ENCRYPT_STORAGE enabled. Run migration to encrypt existing data.',\n 'obfuscated',\n 'plain',\n storageKey,\n );\n }\n\n if (!ENCRYPT_STORAGE && storedIsObfuscated) {\n throw new StorageFormatError(\n 'Obfuscated data found with ENCRYPT_STORAGE disabled. Run migration to decrypt or re-enable encryption.',\n 'plain',\n 'obfuscated',\n storageKey,\n );\n }\n\n // Decode if encrypted, otherwise return as-is\n if (ENCRYPT_STORAGE && storedIsObfuscated) {\n const obfKey = deriveKey(release);\n try {\n return decode(rawValue, obfKey);\n } catch (error) {\n throw new StorageError(\n 'Failed to decode obfuscated data - data may be corrupted or tampered',\n 'getStudent',\n error instanceof Error ? error : new Error(String(error)),\n );\n }\n }\n\n return rawValue as StudentRecord;\n}\n\n/**\n * Decode a record found during a full-store cursor scan (encrypted mode).\n *\n * Returns null for non-obfuscated entries or records that fail to decode, so\n * the caller can skip them without aborting the scan.\n *\n * @param rawValue - Cursor value\n * @param release - Release ID for key derivation\n * @returns The decoded record, or null if it should be skipped\n */\nexport function tryDecodeCursorValue(rawValue: unknown, release: ReleaseId): StudentRecord | null {\n if (!isObfuscated(rawValue)) {\n return null;\n }\n try {\n return decode(rawValue, deriveKey(release));\n } catch {\n return null;\n }\n}\n","/**\n * Backup repository.\n *\n * Owns the backup-record shape, key format, and persistence to the `backups`\n * object store. Extracted from `indexeddb.ts`.\n */\n\nimport type { StudentRecord } from '../../types/contracts.js';\nimport { getStorageKey } from './adapter-utils.js';\nimport { runTransaction } from './idb-helpers.js';\nimport { STORE_BACKUPS } from './idb-connection.js';\n\n/**\n * A student record copy with backup metadata.\n */\nexport interface BackupRecord extends StudentRecord {\n /** Original storage key */\n originalKey: string;\n /** Backup timestamp */\n timestamp: string;\n}\n\n/**\n * Create a timestamped backup of a student record.\n *\n * Backup key format: `backup_{timestamp}_{serviceId}`.\n *\n * @param db - Open database connection\n * @param record - Student record to back up\n * @throws StorageQuotaError if storage quota exceeded\n */\nexport async function createBackup(db: IDBDatabase, record: StudentRecord): Promise {\n const timestamp = new Date().toISOString();\n const backupKey = `backup_${timestamp}_${record.serviceId}`;\n const originalKey = getStorageKey(record.release, record.serviceId);\n\n const backupRecord: BackupRecord = {\n ...record,\n originalKey,\n timestamp,\n };\n\n await runTransaction(\n db,\n STORE_BACKUPS,\n 'readwrite',\n (store) => store.put(backupRecord, backupKey),\n 'backup',\n );\n}\n","/**\n * Audit-log repository.\n *\n * Persists PIN-reset audit events to the `auditLog` object store. Extracted\n * from `indexeddb.ts`.\n */\n\nimport type { PinResetEvent } from '../../types/contracts.js';\nimport { runTransaction } from './idb-helpers.js';\nimport { STORE_AUDIT_LOG } from './idb-connection.js';\n\n/**\n * Append a PIN-reset event to the audit log.\n *\n * @param db - Open database connection\n * @param event - PIN reset event to record\n */\nexport async function saveAuditEvent(db: IDBDatabase, event: PinResetEvent): Promise {\n await runTransaction(\n db,\n STORE_AUDIT_LOG,\n 'readwrite',\n (store) => store.add(event),\n 'saveAuditEvent',\n );\n}\n","/**\n * Completion State Calculator\n *\n * Functions for calculating page completion states based on answer data.\n *\n * State Rules (from CLAUDE.md):\n * - unstarted: No answers provided\n * - incomplete: Some answered OR any incorrect\n * - complete: All answered AND all correct\n */\n\nimport type { AnswerRecord, AnalysisData, CompletionState } from '../types/contracts.js';\n\n/**\n * Calculate the completion state for a page\n *\n * @param answers - Array of answer records for the page\n * @param totalQuestions - Total number of questions on the page\n * @returns Completion state (unstarted | incomplete | complete)\n *\n * @example\n * ```typescript\n * const answers = [\n * { answer: 'a', success: true, timestamp: '2024-11-16T10:00:00Z' },\n * { answer: 'b', success: false, timestamp: '2024-11-16T10:01:00Z' },\n * ];\n * const state = calculateCompletionState(answers, 3); // 'incomplete' (not all answered)\n * ```\n */\nexport function calculateCompletionState(\n answers: AnswerRecord[],\n totalQuestions: number,\n): CompletionState {\n // Handle edge case: no questions\n if (totalQuestions === 0) {\n return 'unstarted';\n }\n\n // Check if unstarted\n if (isPageUnstarted(answers)) {\n return 'unstarted';\n }\n\n // Check if complete\n if (isPageComplete(answers, totalQuestions)) {\n return 'complete';\n }\n\n // Otherwise, it's incomplete\n return 'incomplete';\n}\n\n/**\n * Check if a page is complete\n *\n * A page is complete when:\n * - All questions are answered\n * - All answered questions are correct\n *\n * @param answers - Array of answer records\n * @param totalQuestions - Total number of questions\n * @returns True if page is complete\n */\nexport function isPageComplete(answers: AnswerRecord[], totalQuestions: number): boolean {\n // Must have answered all questions\n if (answers.length !== totalQuestions) {\n return false;\n }\n\n // All answers must be correct\n return answers.every((answer) => answer.success === true);\n}\n\n/**\n * Check if a page is unstarted\n *\n * A page is unstarted when no answers have been provided.\n *\n * @param answers - Array of answer records\n * @returns True if page is unstarted\n */\nexport function isPageUnstarted(answers: AnswerRecord[]): boolean {\n return answers.length === 0;\n}\n\n/**\n * Count the number of correct answers\n *\n * @param answers - Array of answer records\n * @returns Number of correct answers\n */\nexport function countCorrectAnswers(answers: AnswerRecord[]): number {\n return answers.filter((answer) => answer.success === true).length;\n}\n\n/**\n * Calculate success percentage\n *\n * @param answers - Array of answer records\n * @param totalQuestions - Total number of questions\n * @returns Percentage of correct answers (0-100)\n *\n * @example\n * ```typescript\n * const answers = [\n * { answer: 'a', success: true, timestamp: '...' },\n * { answer: 'b', success: false, timestamp: '...' },\n * { answer: 'c', success: true, timestamp: '...' },\n * ];\n * const percentage = calculateSuccessPercentage(answers, 3); // 67 (2 out of 3 correct)\n * ```\n */\nexport function calculateSuccessPercentage(\n answers: AnswerRecord[],\n totalQuestions: number,\n): number {\n if (totalQuestions === 0) {\n return 0;\n }\n\n const correct = countCorrectAnswers(answers);\n return Math.round((correct / totalQuestions) * 100);\n}\n\n/**\n * Count the analysis cells that hold text.\n *\n * @param analysis - Analysis data for a page\n * @returns Number of non-empty cells\n */\nexport function countFilledCells(analysis: AnalysisData | undefined): number {\n if (!analysis) {\n return 0;\n }\n return Object.values(analysis.cells).filter((text) => text.trim() !== '').length;\n}\n\n/**\n * Completion state for a page with a quiz, an analysis table, or both\n * (SRD 013 ANA-04).\n *\n * - unstarted: no quiz answer and no analysis text\n * - complete: every quiz question answered correctly (when the page has a\n * quiz) and every analysis cell filled (when it has an analysis table)\n * - incomplete: anything in between\n *\n * Analysis entries count as starting a page, so writing an analysis no\n * longer leaves its page badge red.\n *\n * @param page - Page answers, question count and analysis data\n * @returns Completion state\n */\nexport function calculatePageState(page: {\n answers: AnswerRecord[];\n totalQuestions?: number;\n analysis?: AnalysisData;\n}): CompletionState {\n const totalQuestions = page.totalQuestions ?? 0;\n const answered = page.answers.filter((a) => a.answer.trim() !== '');\n const filled = countFilledCells(page.analysis);\n\n if (answered.length === 0 && filled === 0) {\n return 'unstarted';\n }\n\n const quizComplete =\n totalQuestions === 0 || calculateCompletionState(page.answers, totalQuestions) === 'complete';\n const analysisComplete =\n !page.analysis ||\n (page.analysis.totalCells !== undefined && filled >= page.analysis.totalCells);\n\n return quizComplete && analysisComplete ? 'complete' : 'incomplete';\n}\n","/**\n * Storage Service\n *\n * Coordinates between IndexedDB persistence and sessionStorage cache.\n * Provides high-level operations for loading/saving student records.\n */\n\nimport type {\n StudentRecord,\n SessionData,\n SessionCache,\n PageData,\n PageId,\n ReleaseId,\n AnswerRecord,\n AnalysisData,\n CellKey,\n} from '../types/contracts.js';\nimport { getStorageAdapter } from './storage/indexeddb.js';\nimport { buildCacheFromRecord } from './session-cache.js';\nimport { calculatePageState } from './state-calculator.js';\nimport { recalculateTotalsFromPages } from '../utils/calculation-helpers.js';\nimport { setJSON } from '../utils/storage-helpers.js';\nimport { STORAGE_KEYS } from '../types/contracts.js';\nimport { info, warn, error as logError } from '../utils/logger.js';\n\n/**\n * Build a fresh, empty student record for a session.\n *\n * Used when no persisted record exists yet (first login) or when IndexedDB\n * cannot be read. Centralizes the record shape so the two creation paths in\n * {@link StorageService.loadStudentRecord} stay identical.\n *\n * @param session - Current session data\n * @returns A new, empty student record\n */\nexport function createEmptyStudentRecord(session: SessionData): StudentRecord {\n return {\n schema: 1,\n docId: session.release, // Use release as docId\n release: session.release,\n serviceId: session.serviceId,\n name: session.name,\n attempted: 0,\n correct: 0,\n updated: new Date().toISOString(),\n pages: {},\n };\n}\n\n/**\n * Carry attempt tracking from the previous answer to a new one\n * (SRD 013 SCO-01, SCO-07).\n *\n * - A commit (an MCQ choice, or a numeric value when its field loses focus)\n * counts one attempt; the first commit also fixes `firstSuccess`.\n * - A provisional save (a numeric value while typing) keeps the counts, so\n * typing \"1500\" slowly is not four attempts.\n * - An answer written before v3 has no counts; its history is unknown, so it\n * stays without them and displays as \"–\".\n *\n * @param previous - Stored answer for the question, if any\n * @param next - New answer (answer, success, timestamp)\n * @param commit - Whether this save is a committed answer\n * @returns The answer to store\n */\nexport function withAttempts(\n previous: AnswerRecord | undefined,\n next: AnswerRecord,\n commit: boolean,\n): AnswerRecord {\n const { answer, success, timestamp } = next;\n const previouslyAnswered = previous !== undefined && previous.answer.trim() !== '';\n\n // Answered before v3: history unknown, so record no counts\n if (previouslyAnswered && previous.attempts === undefined) {\n return { answer, success, timestamp };\n }\n\n const priorAttempts = previous?.attempts ?? 0;\n if (!commit || answer.trim() === '') {\n return previous?.firstSuccess === undefined\n ? { answer, success, timestamp, attempts: priorAttempts }\n : {\n answer,\n success,\n timestamp,\n attempts: priorAttempts,\n firstSuccess: previous.firstSuccess,\n };\n }\n\n const attempts = priorAttempts + 1;\n const firstSuccess = attempts === 1 ? success : (previous?.firstSuccess ?? success);\n return { answer, success, timestamp, attempts, firstSuccess };\n}\n\n/**\n * Storage Service for managing student records\n */\nexport class StorageService {\n private adapter;\n private dbName: string;\n\n /**\n * Create storage service with specified database name\n *\n * @param dbName - IndexedDB database name (REQUIRED - no default)\n */\n constructor(dbName: string) {\n if (!dbName) {\n throw new Error('FATAL: dbName is required for StorageService');\n }\n this.dbName = dbName;\n this.adapter = getStorageAdapter(dbName);\n }\n\n /**\n * Initialize IndexedDB storage\n */\n async init(): Promise {\n try {\n await this.adapter.init();\n info(`Storage service initialized (IndexedDB \"${this.dbName}\" ready)`);\n } catch (err) {\n logError('Failed to initialize storage service', err as Error);\n throw err;\n }\n }\n\n /**\n * Load student record from IndexedDB\n *\n * Creates a new record if none exists.\n *\n * @param session - Current session data\n * @returns Student record\n */\n async loadStudentRecord(session: SessionData): Promise {\n try {\n const existing = await this.adapter.getStudent(session.release, session.serviceId);\n\n if (existing) {\n info(`Loaded student record for ${session.serviceId} from IndexedDB`);\n return existing;\n }\n\n // Create new student record\n const newRecord = createEmptyStudentRecord(session);\n\n info(`Created new student record for ${session.serviceId}`);\n return newRecord;\n } catch (err) {\n // If IndexedDB has schema issues, create a new record\n warn(`IndexedDB error, creating new record: ${(err as Error).message}`);\n return createEmptyStudentRecord(session);\n }\n }\n\n /**\n * Save student record to IndexedDB\n *\n * @param record - Student record to save\n */\n async saveStudentRecord(record: StudentRecord): Promise {\n try {\n // Update timestamp\n record.updated = new Date().toISOString();\n\n // Recalculate totals from pages using calculation helper\n const totals = recalculateTotalsFromPages(record.pages);\n record.attempted = totals.attempted;\n record.correct = totals.correct;\n\n await this.adapter.saveStudent(record);\n info(`Saved student record for ${record.serviceId} to IndexedDB`);\n } catch (err) {\n logError('Failed to save student record', err as Error);\n throw err;\n }\n }\n\n /**\n * Update student record with a new answer\n *\n * @param record - Current student record\n * @param pageId - Page where answer was submitted\n * @param questionIndex - Question index (0-based)\n * @param answer - Answer record\n * @param totalQuestions - Total questions on the page\n * @returns Updated student record\n */\n updateRecordWithAnswer(\n record: StudentRecord,\n pageId: PageId,\n questionIndex: number,\n answer: AnswerRecord,\n totalQuestions: number,\n options: { commit?: boolean } = {},\n ): StudentRecord {\n // Get or create page data\n const existingPage = record.pages[pageId];\n const pageData: PageData = existingPage || {\n answers: [],\n state: 'unstarted',\n };\n\n // Ensure answers array is large enough\n while (pageData.answers.length <= questionIndex) {\n pageData.answers.push({\n answer: '',\n success: false,\n timestamp: new Date().toISOString(),\n });\n }\n\n // Update answer at index (FR-015: overwrites previous answer for re-submissions)\n // The most recent answer is stored, plus how many answers were committed\n // and whether the first was right (SRD 013 SCO-01)\n pageData.answers[questionIndex] = withAttempts(\n pageData.answers[questionIndex],\n answer,\n options.commit === true,\n );\n\n // Update timestamps\n const now = new Date().toISOString();\n if (!pageData.firstAttempted) {\n pageData.firstAttempted = now;\n }\n pageData.lastAttempted = now;\n\n // Recalculate state from the quiz and any analysis entries on the page\n pageData.totalQuestions = totalQuestions;\n pageData.state = calculatePageState(pageData);\n\n // Update record\n return {\n ...record,\n pages: {\n ...record.pages,\n [pageId]: pageData,\n },\n };\n }\n\n /**\n * Update a student record with an analysis cell edit.\n *\n * Mirrors {@link updateRecordWithAnswer} for analysis tables: gets/creates the\n * page and its analysis data, writes the cell content, and stamps the\n * first/last-edited timestamps.\n *\n * @param record - Current student record (mutated in place, also returned)\n * @param pageId - Page where the cell was edited\n * @param tableId - Analysis table identifier\n * @param cellKey - Cell key being edited\n * @param content - New cell content\n * @returns The updated student record\n */\n updateRecordWithAnalysis(\n record: StudentRecord,\n pageId: PageId,\n tableId: string,\n cellKey: CellKey,\n content: string,\n details: { totalCells?: number; label?: string } = {},\n ): StudentRecord {\n // Get or create page data\n const pageData: PageData = record.pages[pageId] || {\n answers: [],\n state: 'unstarted',\n };\n\n // Get or create analysis data\n const analysisData: AnalysisData = pageData.analysis || {\n tableId,\n cells: {},\n };\n\n // Update cell content, plus what is needed to judge and report it (ANA-03, ANA-04)\n analysisData.cells[cellKey] = content;\n if (details.totalCells !== undefined) {\n analysisData.totalCells = details.totalCells;\n }\n if (details.label) {\n analysisData.labels = { ...analysisData.labels, [cellKey]: details.label };\n }\n\n // Update timestamps\n const now = new Date().toISOString();\n if (!analysisData.firstEdited) {\n analysisData.firstEdited = now;\n }\n analysisData.lastEdited = now;\n\n // Store analysis data back in the page and record; analysis text now\n // counts towards the page state, so its badge is not left red\n pageData.analysis = analysisData;\n pageData.state = calculatePageState(pageData);\n record.pages[pageId] = pageData;\n record.updated = now;\n\n return record;\n }\n\n /**\n * Build session cache from student record\n *\n * @param record - Student record\n * @returns Session cache\n */\n buildCache(record: StudentRecord): SessionCache {\n return buildCacheFromRecord(record);\n }\n\n /**\n * Get all students for a release\n *\n * @param release - Release identifier\n * @returns Array of student records\n */\n async getStudentsByRelease(release: ReleaseId): Promise {\n try {\n return await this.adapter.getStudentsByRelease(release);\n } catch (err) {\n logError('Failed to get students by release', err as Error);\n throw err;\n }\n }\n\n /**\n * Load (and persist) the student record for a session and refresh the\n * sessionStorage cache. Falls back to an empty cache on any IndexedDB error.\n *\n * Used on login to rebuild the R/A/G cache from IndexedDB.\n *\n * @param session - Current session data\n */\n async refreshCacheOnLogin(session: SessionData): Promise {\n try {\n const record = await this.loadStudentRecord(session);\n // Save (creates if new, updates if exists) then cache.\n await this.saveStudentRecord(record);\n setJSON(STORAGE_KEYS.CACHE, this.buildCache(record));\n info(`Cache built from IndexedDB for ${session.serviceId}`);\n } catch {\n info('Failed to load from IndexedDB, initializing empty cache');\n setJSON(STORAGE_KEYS.CACHE, {\n totals: { total: 0, answered: 0, correct: 0 },\n pages: {},\n });\n }\n }\n\n /**\n * Clear all data from IndexedDB\n */\n async clearAll(): Promise {\n try {\n await this.adapter.clearAll();\n info('Cleared all data from IndexedDB');\n } catch (err) {\n logError('Failed to clear all data', err as Error);\n throw err;\n }\n }\n\n /**\n * Create backup of student record\n *\n * @param record - Student record to backup\n */\n async backup(record: StudentRecord): Promise {\n try {\n await this.adapter.backup(record);\n info(`Created backup for ${record.serviceId}`);\n } catch (err) {\n warn(`Failed to create backup for ${record.serviceId}`, err);\n }\n }\n}\n\n// ============================================================================\n// SINGLETON PATTERN\n// ============================================================================\n\nlet storageServiceInstance: StorageService | null = null;\nlet currentServiceDbName: string | null = null;\n\n/**\n * Get singleton storage service instance\n *\n * @param dbName - IndexedDB database name (optional, uses existing instance if available)\n */\nexport function getStorageService(dbName?: string): StorageService {\n // If instance exists and no dbName specified, return existing\n if (storageServiceInstance && !dbName) {\n return storageServiceInstance;\n }\n\n // If dbName specified and different, warn but return existing (don't break app)\n if (storageServiceInstance && dbName && currentServiceDbName !== dbName) {\n warn(\n `Storage service already initialized with dbName=\"${currentServiceDbName}\", ignoring new dbName=\"${dbName}\"`,\n );\n return storageServiceInstance;\n }\n\n // Create new instance if none exists\n if (!storageServiceInstance) {\n if (!dbName) {\n throw new Error('FATAL: dbName is required for first getStorageService() call');\n }\n storageServiceInstance = new StorageService(dbName);\n currentServiceDbName = dbName;\n }\n\n return storageServiceInstance;\n}\n\n/**\n * Reset singleton (for testing)\n */\nexport function resetStorageService(): void {\n storageServiceInstance = null;\n currentServiceDbName = null;\n}\n","/**\n * Calculation Helpers\n *\n * Pure functions for status indicators, percentages, and totals.\n * Feature: 007-lit-component-refactor\n *\n * These functions have no side effects and no DOM dependencies,\n * making them easy to unit test.\n */\n\nimport type { PageData, PageId } from '../types/contracts';\n\n/**\n * Status indicator values for R/A/G progress display.\n */\nexport type StatusIndicator = 'red' | 'amber' | 'green';\n\n/**\n * Overall progress colour from stored answers (SRD 013 SCO-02, SCO-03).\n *\n * Red until something is answered. Green only when the publication's total\n * is known and every question is answered correctly; with no known total\n * there is no way to say the student has finished, so it stays amber.\n *\n * @param answered - Questions answered\n * @param correct - Questions answered correctly\n * @param total - Publication question total, when known\n * @returns Indicator colour\n */\nexport function calculateProgressIndicator(\n answered: number,\n correct: number,\n total?: number,\n): StatusIndicator {\n if (answered === 0) {\n return 'red';\n }\n return total !== undefined && correct >= total ? 'green' : 'amber';\n}\n\n/**\n * One-line progress summary for the student panel (SRD 013 SCO-02, SCO-03).\n *\n * @param answered - Questions answered\n * @param correct - Questions answered correctly\n * @param total - Publication question total, when known\n * @returns e.g. \"12 of 40 answered · 9 correct\", or \"12 answered · 9 correct\"\n */\nexport function formatProgress(answered: number, correct: number, total?: number): string {\n const answeredText =\n total !== undefined ? `${answered} of ${total} answered` : `${answered} answered`;\n return `${answeredText} · ${correct} correct`;\n}\n\n/**\n * Calculates percentage with safe division.\n *\n * @param correct - Numerator (correct count)\n * @param attempted - Denominator (attempted count)\n * @returns Rounded percentage (0 if attempted is 0)\n */\nexport function calculatePercentage(correct: number, attempted: number): number {\n if (attempted === 0) {\n return 0;\n }\n return Math.round((correct / attempted) * 100);\n}\n\n/**\n * Totals calculated from page data.\n */\nexport interface RecalculatedTotals {\n attempted: number;\n correct: number;\n}\n\n/**\n * Recalculates totals from all pages in a student record.\n * Only counts answers with non-empty answer strings (excludes placeholder entries).\n *\n * @param pages - Record of page ID to page data\n * @returns Aggregated attempted and correct counts\n */\nexport function recalculateTotalsFromPages(pages: Record): RecalculatedTotals {\n let attempted = 0;\n let correct = 0;\n\n for (const pageId in pages) {\n const pageData = pages[pageId];\n if (pageData && pageData.answers && Array.isArray(pageData.answers)) {\n // Filter to only non-empty answers (matches storage-service.ts behavior)\n const answered = pageData.answers.filter((a) => a.answer.trim() !== '');\n attempted += answered.length;\n correct += answered.filter((a) => a.success).length;\n }\n }\n\n return { attempted, correct };\n}\n\n/**\n * Checks if a session has expired.\n *\n * @param expiresAt - ISO 8601 expiration timestamp\n * @param now - Current time (defaults to new Date())\n * @returns True if session has expired\n */\nexport function isSessionExpired(expiresAt: string, now: Date = new Date()): boolean {\n const expiryDate = new Date(expiresAt);\n // Invalid date -> treat as expired\n if (isNaN(expiryDate.getTime())) {\n return true;\n }\n return now >= expiryDate;\n}\n\n/**\n * Masks a service ID for display (shows last N digits).\n *\n * @param serviceId - Full service ID\n * @param visibleDigits - Number of digits to show (default 4)\n * @returns Masked string like \"...1234\"\n */\nexport function maskServiceId(serviceId: string, visibleDigits: number = 4): string {\n if (!serviceId) {\n return '';\n }\n if (serviceId.length <= visibleDigits) {\n return serviceId;\n }\n if (visibleDigits === 0) {\n return '...';\n }\n return '...' + serviceId.slice(-visibleDigits);\n}\n","/**\n * Event helper utilities\n *\n * Provides type-safe custom event emission and handling, with consistent\n * configuration for bubbling and composition. Saves ~8 lines per event emission.\n */\n\nimport type { QuizEvents } from '../types/contracts.js';\n\n/**\n * Emit a custom event on the document\n *\n * Events bubble by default and are composed (cross shadow DOM boundaries).\n *\n * @param name - Event name (should use 'qd:' namespace)\n * @param detail - Event detail data\n * @param options - Optional event configuration\n *\n * @example\n * ```typescript\n * // Emit login event\n * emitCustomEvent('qd:login', {\n * serviceId: 'RN2344',\n * name: 'John Doe',\n * loginTime: new Date().toISOString(),\n * });\n * ```\n */\nexport function emitCustomEvent(\n name: K,\n detail: QuizEvents[K]['detail'],\n options?: {\n bubbles?: boolean;\n composed?: boolean;\n cancelable?: boolean;\n },\n): boolean {\n const event = new CustomEvent(name, {\n detail,\n bubbles: options?.bubbles ?? true,\n composed: options?.composed ?? true,\n cancelable: options?.cancelable ?? false,\n });\n\n return document.dispatchEvent(event);\n}\n\n/**\n * Add event listener for custom event\n *\n * @param name - Event name\n * @param handler - Event handler function\n * @param options - Optional event listener options\n *\n * @example\n * ```typescript\n * // Listen for login events\n * const unsubscribe = addEventListener('qd:login', (event) => {\n * console.log('User logged in:', event.detail.serviceId);\n * });\n *\n * // Later: remove listener\n * unsubscribe();\n * ```\n */\nexport function addEventListener(\n name: K,\n handler: (event: CustomEvent) => void,\n options?: AddEventListenerOptions,\n): () => void {\n const listener = handler as EventListener;\n document.addEventListener(name, listener, options);\n\n // Return unsubscribe function\n return () => {\n document.removeEventListener(name, listener, options);\n };\n}\n\n/**\n * Remove event listener for custom event\n *\n * @param name - Event name\n * @param handler - Event handler function\n * @param options - Optional event listener options\n *\n * @example\n * ```typescript\n * function handleLogin(event) {\n * console.log('Logged in:', event.detail.serviceId);\n * }\n *\n * addEventListener('qd:login', handleLogin);\n * // Later...\n * removeEventListener('qd:login', handleLogin);\n * ```\n */\nexport function removeEventListener(\n name: K,\n handler: (event: CustomEvent) => void,\n options?: EventListenerOptions,\n): void {\n const listener = handler as EventListener;\n document.removeEventListener(name, listener, options);\n}\n\n/**\n * Add one-time event listener that auto-removes after first trigger\n *\n * @param name - Event name\n * @param handler - Event handler function\n *\n * @example\n * ```typescript\n * // Wait for login, then perform action once\n * addEventListenerOnce('qd:login', (event) => {\n * console.log('First login detected');\n * });\n * ```\n */\nexport function addEventListenerOnce(\n name: K,\n handler: (event: CustomEvent) => void,\n): void {\n const listener = handler as EventListener;\n document.addEventListener(name, listener, { once: true });\n}\n\n/**\n * Wait for a specific event to occur\n *\n * Returns a promise that resolves when the event is emitted.\n *\n * @param name - Event name to wait for\n * @param timeout - Optional timeout in milliseconds\n * @returns Promise that resolves with event detail\n *\n * @example\n * ```typescript\n * // Wait for login\n * const session = await waitForEvent('qd:login', 5000);\n * console.log('User logged in:', session.serviceId);\n * ```\n */\nexport function waitForEvent(\n name: K,\n timeout?: number,\n): Promise {\n return new Promise((resolve, reject) => {\n let timeoutId: ReturnType | undefined;\n\n const handler = (event: Event) => {\n if (timeoutId !== undefined) {\n clearTimeout(timeoutId);\n }\n const customEvent = event as CustomEvent;\n resolve(customEvent.detail);\n };\n\n document.addEventListener(name, handler, { once: true });\n\n if (timeout !== undefined) {\n timeoutId = setTimeout(() => {\n document.removeEventListener(name, handler);\n reject(new Error(`Timeout waiting for event: ${name}`));\n }, timeout);\n }\n });\n}\n\n/**\n * Dispatch event on a specific element\n *\n * @param element - Element to dispatch event on\n * @param name - Event name\n * @param detail - Event detail\n * @param options - Optional event configuration\n *\n * @example\n * ```typescript\n * const button = document.querySelector('button');\n * if (button) {\n * dispatchEventOn(button, 'qd:custom', { data: 'test' });\n * }\n * ```\n */\nexport function dispatchEventOn(\n element: Element,\n name: string,\n detail: T,\n options?: {\n bubbles?: boolean;\n composed?: boolean;\n cancelable?: boolean;\n },\n): boolean {\n const event = new CustomEvent(name, {\n detail,\n bubbles: options?.bubbles ?? true,\n composed: options?.composed ?? true,\n cancelable: options?.cancelable ?? false,\n });\n\n return element.dispatchEvent(event);\n}\n","/**\n * Shared persist-and-notify step for the enhancers.\n *\n * The quiz and analysis persistence paths share the same tail: save the\n * student record to IndexedDB (warn on failure), rebuild the session cache,\n * persist it to sessionStorage, apply any DOM update, then emit events. This\n * helper centralizes that sequence.\n */\n\nimport type { StudentRecord, QuizEvents } from '../types/contracts.js';\nimport { STORAGE_KEYS } from '../types/contracts.js';\nimport { getStorageService } from '../services/storage-service.js';\nimport { setJSON } from '../utils/storage-helpers.js';\nimport { emitCustomEvent } from '../utils/event-helpers.js';\nimport { warn } from '../utils/logger.js';\n\n/** A custom event to emit after the record is persisted. */\nexport interface NotifyEvent {\n name: keyof QuizEvents;\n detail: unknown;\n}\n\n/** Options controlling the DOM update and events for {@link persistAndNotify}. */\nexport interface PersistAndNotifyOptions {\n /** Optional DOM update run after the cache is saved, before events fire. */\n onSavedDom?: () => void;\n /** Events to emit (in order) once the cache is saved. */\n events: NotifyEvent[];\n}\n\n/**\n * Persist a student record, refresh the session cache, update the DOM, and\n * emit events.\n *\n * @param record - The updated student record to persist\n * @param options - DOM update and events to fire\n */\nexport async function persistAndNotify(\n record: StudentRecord,\n options: PersistAndNotifyOptions,\n): Promise {\n const storageService = getStorageService();\n\n try {\n await storageService.saveStudentRecord(record);\n } catch (err) {\n warn('Failed to save student record to IndexedDB', err);\n }\n\n // Rebuild cache from the updated record and persist to sessionStorage\n const cache = storageService.buildCache(record);\n setJSON(STORAGE_KEYS.CACHE, cache);\n\n // Apply any DOM update, then emit events\n options.onSavedDom?.();\n const emit = emitCustomEvent as (name: keyof QuizEvents, detail: unknown) => void;\n for (const event of options.events) {\n emit(event.name, event.detail);\n }\n}\n","/**\n * Accessibility helpers for progressively enhanced DITA content\n * (SRD 013 A11Y-01, A11Y-02, A11Y-03).\n */\n\n/** Class that hides text visually but keeps it for screen readers. */\nexport const SR_ONLY_CLASS = 'qd-sr-only';\n\n/** Id of the shared polite live region. */\nexport const LIVE_REGION_ID = 'qd-live-region';\n\nlet idCounter = 0;\n\n/**\n * Return the element's id, assigning a unique one first if it has none.\n *\n * DITA output gives some cells ids (table headers) but not body cells, so\n * `aria-labelledby` targets are created on demand.\n *\n * @param el - Element that needs an id\n * @param prefix - Prefix for a generated id\n * @returns The element's id\n */\nexport function ensureId(el: Element, prefix: string): string {\n if (!el.id) {\n idCounter++;\n el.id = `${prefix}-${idCounter}`;\n }\n return el.id;\n}\n\n/**\n * Announce a short message to screen-reader users through a shared, visually\n * hidden polite live region. The region is created on first use.\n *\n * @param message - Text to announce\n */\nexport function announce(message: string): void {\n let region = document.getElementById(LIVE_REGION_ID);\n if (!region) {\n region = document.createElement('div');\n region.id = LIVE_REGION_ID;\n region.className = SR_ONLY_CLASS;\n region.setAttribute('role', 'status');\n region.setAttribute('aria-live', 'polite');\n region.setAttribute('aria-atomic', 'true');\n document.body.appendChild(region);\n }\n // Clear first so repeating the same message is announced again\n region.textContent = '';\n region.textContent = message;\n}\n","/**\n * Quiz answer persistence.\n *\n * Handles user input → validation → IndexedDB save → cache update → events,\n * plus the DOM-only validation styling. Extracted from `quiz-table.ts` so the\n * persistence path is independently testable from the table lifecycle.\n */\n\nimport type { AnswerRecord, SessionData } from '../types/contracts.js';\nimport { STORAGE_KEYS } from '../types/contracts.js';\nimport type { QuizTableMetadata } from './quiz-table.js';\nimport { validateAnswer } from '../services/quiz-parser.js';\nimport { getStorageService } from '../services/storage-service.js';\nimport { getJSON } from '../utils/storage-helpers.js';\nimport { addClass, removeClass } from '../utils/dom-helpers.js';\nimport { persistAndNotify } from './persist-and-notify.js';\nimport { announce, ensureId, SR_ONLY_CLASS } from '../utils/a11y.js';\nimport { info, error as logError, warn } from '../utils/logger.js';\n\n/**\n * Handle user answer input (debounced save).\n *\n * @param table - Quiz table element\n * @param metadata - Table metadata\n * @param questionIndex - Question index\n * @param answer - User's answer\n */\nexport function handleAnswerInput(\n table: HTMLTableElement,\n metadata: QuizTableMetadata,\n questionIndex: number,\n answer: string,\n commit = false,\n): void {\n const { debouncer, pageId, parsed } = metadata;\n\n if (!debouncer || !pageId) {\n return;\n }\n\n const question = parsed.questions[questionIndex];\n if (!question) {\n return;\n }\n\n // Debounce the save operation (200ms delay). A commit shares the key, so\n // it supersedes a provisional save still waiting.\n debouncer.debounce(\n `save-answer-${questionIndex}`,\n () => {\n void saveAnswer(table, metadata, questionIndex, answer, commit);\n },\n 200,\n );\n}\n\n/**\n * Save answer to storage and update the UI.\n *\n * @param table - Quiz table element\n * @param metadata - Table metadata\n * @param questionIndex - Question index\n * @param answer - User's answer\n */\nexport async function saveAnswer(\n table: HTMLTableElement,\n metadata: QuizTableMetadata,\n questionIndex: number,\n answer: string,\n commit = false,\n): Promise {\n const { pageId, parsed, inputs } = metadata;\n\n if (!pageId || !inputs) {\n return;\n }\n\n const question = parsed.questions[questionIndex];\n if (!question) {\n return;\n }\n\n // Get session\n const session = getJSON(STORAGE_KEYS.SESSION);\n if (!session) {\n logError('No active session found');\n return;\n }\n\n // Validate answer\n const success = validateAnswer(question, answer);\n\n // Create answer record\n const answerRecord: AnswerRecord = {\n answer: answer.trim(),\n success,\n timestamp: new Date().toISOString(),\n };\n\n // Load student record from IndexedDB\n const storageService = getStorageService();\n let studentRecord;\n try {\n studentRecord = await storageService.loadStudentRecord(session);\n } catch (err) {\n warn('Failed to load student record, answer not saved', err);\n return;\n }\n\n // Update record with new answer\n const totalQuestions = parsed.questions.length;\n const updatedRecord = storageService.updateRecordWithAnswer(\n studentRecord,\n pageId,\n questionIndex,\n answerRecord,\n totalQuestions,\n { commit },\n );\n\n // Persist, refresh cache, apply validation styling, then emit events\n const pageData = updatedRecord.pages[pageId];\n await persistAndNotify(updatedRecord, {\n onSavedDom: () => {\n const row = table.querySelector(`tbody tr:nth-child(${questionIndex + 1})`);\n const answerCell = row?.querySelector('td:nth-child(2)');\n if (answerCell) {\n applyValidationStyling(answerCell, success);\n }\n // Say the result as well as colouring it (SRD 013 A11Y-02)\n announce(`Question ${questionIndex + 1}: ${success ? 'correct' : 'incorrect'}`);\n },\n events: [\n { name: 'qd:answer-saved', detail: { pageId, answer: answerRecord } },\n ...(pageData\n ? [{ name: 'qd:state-changed' as const, detail: { pageId, state: pageData.state } }]\n : []),\n ],\n });\n\n info(\n `Answer saved for question ${questionIndex + 1} on page ${pageId}: ${success ? 'correct' : 'incorrect'}`,\n );\n}\n\n/**\n * Apply validation styling to an answer cell (DOM-only).\n *\n * Colour alone fails WCAG 1.4.1, so the cell also gets a visible mark (✓ or\n * ✗) with hidden \"Correct\"/\"Incorrect\" text, and the input is described by it\n * (SRD 013 A11Y-02).\n *\n * @param cell - Answer cell element\n * @param success - Whether the answer is correct\n */\nexport function applyValidationStyling(cell: Element, success: boolean): void {\n removeClass(cell, 'qd-answer-correct', 'qd-answer-incorrect');\n addClass(cell, success ? 'qd-answer-correct' : 'qd-answer-incorrect');\n\n let feedback = cell.querySelector('.qd-answer-feedback');\n if (!feedback) {\n feedback = document.createElement('span');\n feedback.className = 'qd-answer-feedback';\n cell.appendChild(feedback);\n }\n feedback.replaceChildren();\n const mark = document.createElement('span');\n mark.setAttribute('aria-hidden', 'true');\n mark.textContent = success ? '✓ Correct' : '✗ Incorrect';\n const text = document.createElement('span');\n text.className = SR_ONLY_CLASS;\n text.textContent = success ? 'Correct' : 'Incorrect';\n feedback.append(mark, text);\n\n const control = cell.querySelector('select, input');\n if (control) {\n control.setAttribute('aria-describedby', ensureId(feedback, 'qd-feedback'));\n }\n}\n\n/**\n * Remove correctness styling and the feedback mark from an answer cell.\n *\n * @param cell - Answer cell element\n */\nexport function clearValidationFeedback(cell: Element): void {\n removeClass(cell, 'qd-answer-correct', 'qd-answer-incorrect');\n cell.querySelector('.qd-answer-feedback')?.remove();\n cell.querySelector('select, input')?.removeAttribute('aria-describedby');\n}\n\n/**\n * Show an inline error under an answer input and mark it invalid\n * (SRD 013 UX-03).\n *\n * @param cell - Answer cell element\n * @param input - The input to mark\n * @param message - Error text\n */\nexport function showInputError(cell: Element, input: HTMLElement, message: string): void {\n let error = cell.querySelector('.qd-input-error');\n if (!error) {\n error = document.createElement('span');\n error.className = 'qd-input-error';\n error.setAttribute('role', 'alert');\n input.insertAdjacentElement('afterend', error);\n }\n error.textContent = message;\n input.setAttribute('aria-invalid', 'true');\n input.setAttribute('aria-errormessage', ensureId(error, 'qd-input-error'));\n}\n\n/**\n * Remove an inline input error.\n *\n * @param cell - Answer cell element\n * @param input - The input to unmark\n */\nexport function clearInputError(cell: Element, input: HTMLElement): void {\n cell.querySelector('.qd-input-error')?.remove();\n input.removeAttribute('aria-invalid');\n input.removeAttribute('aria-errormessage');\n}\n","/**\n * Validation Helpers\n *\n * Pure functions for form validation and input sanitization.\n * Feature: 007-lit-component-refactor\n *\n * These functions have no side effects and no DOM dependencies,\n * making them easy to unit test.\n */\n\n/**\n * Validation error messages (array - empty if valid).\n */\nexport type ValidationErrors = string[];\n\n/** Per-field validation messages for the student login form. */\nexport interface StudentFieldErrors {\n name?: string;\n serviceId?: string;\n pin?: string;\n}\n\n/**\n * Validate each student login field separately, so the form can mark the\n * faulty fields and report all of them at once (SRD 013 UX-10).\n *\n * @param name - Student name\n * @param serviceId - Service ID (2-10 alphanumeric characters)\n * @param pin - 4-digit PIN\n * @returns Message per invalid field; empty object when all are valid\n */\nexport function validateStudentFields(\n name: string,\n serviceId: string,\n pin: string,\n): StudentFieldErrors {\n const errors: StudentFieldErrors = {};\n if (!name || name.trim() === '') {\n errors.name = 'Name required';\n }\n if (!serviceId) {\n errors.serviceId = 'Service ID required';\n } else if (!/^[a-zA-Z0-9]{2,10}$/.test(serviceId)) {\n errors.serviceId = 'Service ID must be 2-10 alphanumeric characters';\n }\n if (!pin) {\n errors.pin = 'PIN required';\n } else if (!/^\\d{4}$/.test(pin)) {\n errors.pin = 'PIN must be exactly 4 digits';\n }\n return errors;\n}\n\n/**\n * Validates student login form fields.\n *\n * @param name - Student name\n * @param serviceId - Service ID (2-10 alphanumeric characters)\n * @param pin - 4-digit PIN\n * @returns Array of validation error messages (empty if valid)\n */\nexport function validateStudentForm(\n name: string,\n serviceId: string,\n pin: string,\n): ValidationErrors {\n const errors: ValidationErrors = [];\n\n // Validate name\n if (!name || name.trim() === '') {\n errors.push('Name required');\n }\n\n // Validate service ID - empty check first\n if (!serviceId) {\n errors.push('Service ID required');\n } else {\n // Then format check (2-10 alphanumeric)\n const serviceIdRegex = /^[a-zA-Z0-9]{2,10}$/;\n if (!serviceIdRegex.test(serviceId)) {\n errors.push('Service ID must be 2-10 alphanumeric characters');\n }\n }\n\n // Validate PIN - empty check first\n if (!pin) {\n errors.push('PIN required');\n } else {\n // Then format check (exactly 4 digits)\n const pinRegex = /^\\d{4}$/;\n if (!pinRegex.test(pin)) {\n errors.push('PIN must be exactly 4 digits');\n }\n }\n\n return errors;\n}\n\n/**\n * Sanitizes PIN input to only allow digits.\n *\n * @param input - Raw input string\n * @returns String with non-digit characters removed\n */\nexport function sanitizePinInput(input: string): string {\n return input.replace(/\\D/g, '');\n}\n\n/**\n * Validates that PIN and confirmation match.\n *\n * @param pin - Original PIN\n * @param confirmPin - Confirmation PIN\n * @returns True if they match\n */\nexport function validatePinMatch(pin: string, confirmPin: string): boolean {\n return pin === confirmPin;\n}\n\n/**\n * Whether a numeric answer is a complete number: optional sign, digits and an\n * optional decimal point (SRD 013 UX-03).\n *\n * @param value - Trimmed input value\n * @returns True for values such as \"1500\", \"-5\", \"2.5\", \".5\"\n */\nexport function isNumericAnswer(value: string): boolean {\n return /^[+-]?(\\d+(\\.\\d*)?|\\.\\d+)$/.test(value);\n}\n\n/**\n * Whether a numeric input contains a character no number can contain, so the\n * error can show at once rather than waiting for the field to lose focus.\n *\n * @param value - Raw input value\n * @returns True when the value has characters other than digits, sign, point\n * and spaces\n */\nexport function hasNonNumericCharacters(value: string): boolean {\n return /[^0-9+\\-.\\s]/.test(value);\n}\n\n/** Message shown under a numeric input that is not a number. */\nexport const NUMERIC_INPUT_ERROR = 'Enter a number, for example 1500';\n","/**\n * Date formatting utilities for consistent timestamp display across the application.\n * Provides both display formatting (24-hour, month/date/time) and CSV export formatting (ISO 8601).\n */\n\n/**\n * Format options for timestamp display\n */\nexport type TimestampFormat = 'display' | 'csv';\n\n/**\n * Format a date for display in the instructor interface\n * @param date - Date to format\n * @returns Formatted string in \"Nov 19 14:23\" or \"11/19 14:23:45\" format (24-hour time)\n */\nfunction formatDisplayTimestamp(date: Date): string {\n // Use short month name format: \"Nov 19 14:23\"\n const month = date.toLocaleDateString('en-US', { month: 'short' });\n const day = date.getDate();\n const hours = date.getHours().toString().padStart(2, '0');\n const minutes = date.getMinutes().toString().padStart(2, '0');\n\n return `${month} ${day} ${hours}:${minutes}`;\n}\n\n/**\n * Format a date for CSV export\n * @param date - Date to format\n * @returns ISO 8601 formatted string for spreadsheet compatibility\n */\nfunction formatCSVTimestamp(date: Date): string {\n return date.toISOString();\n}\n\n/**\n * Main timestamp formatting function\n * @param date - Date to format (can be Date object or ISO string)\n * @param format - Format type ('display' for UI, 'csv' for export)\n * @returns Formatted timestamp string\n */\nexport function formatTimestamp(date: Date | string, format: TimestampFormat = 'display'): string {\n // Handle null/undefined\n if (date == null) {\n console.warn('Invalid date provided to formatTimestamp:', date);\n return 'Invalid Date';\n }\n\n const dateObj = typeof date === 'string' ? new Date(date) : date;\n\n // Validate date\n if (isNaN(dateObj.getTime())) {\n console.warn('Invalid date provided to formatTimestamp:', date);\n return 'Invalid Date';\n }\n\n return format === 'csv' ? formatCSVTimestamp(dateObj) : formatDisplayTimestamp(dateObj);\n}\n\n/**\n * Parse an ISO 8601 timestamp from storage and format for display\n * @param isoString - ISO 8601 timestamp string from IndexedDB\n * @returns Formatted display string\n */\nexport function formatStoredTimestamp(isoString: string): string {\n return formatTimestamp(isoString, 'display');\n}\n\n/**\n * Get current timestamp in ISO 8601 format for storage\n * @returns Current time as ISO 8601 string\n */\nexport function getCurrentTimestamp(): string {\n return new Date().toISOString();\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,css,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),b={attribute:!0,type:String,converter:u,reflect:!1,useDefault:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=!0),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h)}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...r(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e;const r=h.fromAttribute(s,t.type);this[e]=r??this._$Ej?.get(e)??r,this._$Em=null}}requestUpdate(t,s,i){if(void 0!==t){const e=this.constructor,h=this[t];if(i??=e.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(e._$Eu(t,i))))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),!0!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),!0===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];!0!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e)}}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach((t=>this._$ET(t,this[t]))),this._$EM()}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:\"open\"},y[d(\"elementProperties\")]=new Map,y[d(\"finalized\")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push(\"2.1.1\");export{y as ReactiveElement,s as adoptStyles,u as defaultConverter,t as getCompatibleStyle,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t.trustedTypes,s=i?i.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,e=\"$lit$\",h=`lit$${Math.random().toFixed(9).slice(2)}$`,o=\"?\"+h,n=`<${o}>`,r=document,l=()=>r.createComment(\"\"),c=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,a=Array.isArray,u=t=>a(t)||\"function\"==typeof t?.[Symbol.iterator],d=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,v=/-->/g,_=/>/g,m=RegExp(`>|${d}(?:([^\\\\s\"'>=/]+)(${d}*=${d}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),p=/'/g,g=/\"/g,$=/^(?:script|style|textarea|title)$/i,y=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=y(1),b=y(2),w=y(3),T=Symbol.for(\"lit-noChange\"),E=Symbol.for(\"lit-nothing\"),A=new WeakMap,C=r.createTreeWalker(r,129);function P(t,i){if(!a(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==s?s.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,o=[];let r,l=2===i?\"\":3===i?\"\":\"\",c=f;for(let i=0;i\"===u[0]?(c=r??f,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?m:'\"'===u[3]?g:p):c===g||c===p?c=m:c===v||c===_?c=f:(c=m,r=void 0);const x=c===m&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===f?s+n:d>=0?(o.push(a),s.slice(0,d)+e+s.slice(d)+h+x):s+h+(-2===d?i:x)}return[P(t,l+(t[s]||\"\")+(2===i?\"\":3===i?\"\":\"\")),o]};class N{constructor({strings:t,_$litType$:s},n){let r;this.parts=[];let c=0,a=0;const u=t.length-1,d=this.parts,[f,v]=V(t,s);if(this.el=N.createElement(f,n),C.currentNode=this.el.content,2===s||3===s){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=C.nextNode())&&d.length0){r.textContent=i?i.emptyScript:\"\";for(let i=0;i2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=E}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=S(this,t,i,0),o=!c(t)||t!==this._$AH&&t!==T,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new R(i.insertBefore(l(),t),t,void 0,s??{})}return h._$AI(t),h};export{Z as _$LH,x as html,w as mathml,T as noChange,E as nothing,B as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as r}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=globalThis;class i extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(r,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return r}}i._$litElement$=!0,i[\"finalized\"]=!0,s.litElementHydrateSupport?.({LitElement:i});const o=s.litElementPolyfillSupport;o?.({LitElement:i});const n={_$AK:(t,e,r)=>{t._$AK(e,r)},_$AL:t=>t._$AL};(s.litElementVersions??=[]).push(\"4.2.1\");export{i as LitElement,n as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=t=>(e,o)=>{void 0!==o?o.addInitializer((()=>{customElements.define(t,e)})):customElements.define(t,e)};export{t as customElement};\n//# sourceMappingURL=custom-element.js.map\n","import{defaultConverter as t,notEqual as e}from\"../reactive-element.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o={attribute:!0,type:String,converter:t,reflect:!1,hasChanged:e},r=(t=o,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),\"setter\"===n&&((t=Object.create(t)).wrapped=!0),s.set(r.name,t),\"accessor\"===n){const{name:o}=r;return{set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t)},init(e){return void 0!==e&&this.C(o,void 0,t,e),e}}}if(\"setter\"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t)}}throw Error(\"Unsupported decorator location: \"+n)};function n(t){return(e,o)=>\"object\"==typeof o?r(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}export{n as property,r as standardProperty};\n//# sourceMappingURL=property.js.map\n","import{property as t}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function r(r){return t({...r,state:!0,attribute:!1})}export{r as state};\n//# sourceMappingURL=state.js.map\n","import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function e(e,r){return(n,s,i)=>{const o=t=>t.renderRoot?.querySelector(e)??null;if(r){const{get:e,set:r}=\"object\"==typeof s?n:i??(()=>{const t=Symbol();return{get(){return this[t]},set(e){this[t]=e}}})();return t(n,s,{get(){let t=e.call(this);return void 0===t&&(t=o(this),(null!==t||this.hasUpdated)&&r.call(this,t)),t}})}return t(n,s,{get(){return o(this)}})}}export{e as query};\n//# sourceMappingURL=query.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=(e,t,c)=>(c.configurable=!0,c.enumerable=!0,Reflect.decorate&&\"object\"!=typeof t&&Object.defineProperty(e,t,c),c);export{e as desc};\n//# sourceMappingURL=base.js.map\n","/**\n * Student Answers Component\n *\n * Reusable, Shadow-DOM-isolated display of student quiz answers for the\n * instructor overlay. Bindings are auto-escaped (no `innerHTML`), and all\n * styles live in `static styles` (no global CSS).\n *\n * @element qd-student-answers\n */\n\nimport { LitElement, html, css } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport type { StudentAnswerDisplay } from '../services/answer-display.js';\n\n/**\n * Renders the list of student answers for a single question.\n */\n@customElement('qd-student-answers')\nexport class QdStudentAnswers extends LitElement {\n /** Formatted student answers to display. */\n @property({ attribute: false })\n answers: StudentAnswerDisplay[] = [];\n\n static override styles = css`\n :host {\n display: block;\n margin-top: 12px;\n padding: 8px;\n background: #f8f9fa;\n border-radius: 4px;\n border: 1px solid #dee2e6;\n }\n\n .qd-student-answer {\n font-size: 12px;\n padding: 4px 0;\n line-height: 1.4;\n }\n\n .qd-student-answer.qd-correct {\n color: #28a745;\n }\n\n .qd-student-answer.qd-incorrect {\n color: #dc3545;\n }\n\n .qd-student-name {\n font-weight: 600;\n }\n\n .qd-student-answer-text {\n margin: 0 4px;\n }\n\n .qd-timestamp {\n color: #6c757d;\n font-size: 11px;\n margin-left: 8px;\n }\n `;\n\n override render() {\n return this.answers.map(\n (sa) =>\n html`
                                          \n ${sa.name} (${sa.maskedServiceId}):\n ${sa.answer}\n ${sa.formattedTimestamp}\n
                                          `,\n );\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'qd-student-answers': QdStudentAnswers;\n }\n}\n","/**\n * Quiz instructor overlay.\n *\n * Renders (and clears) the per-question list of student answers shown when an\n * instructor toggles \"show answers\". Extracted from `quiz-table.ts`.\n *\n * SECURITY (FR-004): student-controlled name/answer fields are rendered via\n * `textContent`, never `innerHTML`, so any HTML they contain is inert text.\n */\n\nimport type { SessionData } from '../types/contracts.js';\nimport { STORAGE_KEYS } from '../types/contracts.js';\nimport type { QuizTableMetadata } from './quiz-table.js';\nimport { getStorageService } from '../services/storage-service.js';\nimport { formatStudentAnswersForDisplay } from '../services/answer-display.js';\nimport { getJSON } from '../utils/storage-helpers.js';\nimport { info, error as logError } from '../utils/logger.js';\nimport '../components/qd-student-answers.js';\n\n/**\n * Show student answers for all questions in a table (instructor mode).\n *\n * @param table - Quiz table element\n * @param metadata - Table metadata\n */\nexport async function showStudentAnswersForTable(\n table: HTMLTableElement,\n metadata: QuizTableMetadata,\n): Promise {\n const { pageId, parsed } = metadata;\n if (!pageId) return;\n\n const session = getJSON(STORAGE_KEYS.SESSION);\n if (!session) return;\n\n // Get storage service to load all student records\n const storageService = getStorageService();\n\n try {\n // Load all student records for current release\n const students = await storageService.getStudentsByRelease(session.release);\n\n // Check if there are any students\n if (students.length === 0) {\n info('No student data available for this release');\n alert(\n 'No student data available for this release. Students need to log in and answer questions first.',\n );\n return;\n }\n\n // Get tbody rows\n const tbody = table.querySelector('tbody');\n if (!tbody) return;\n\n const rows = Array.from(tbody.querySelectorAll('tr'));\n\n // For each question, collect student answers and display\n parsed.questions.forEach((_question, questionIndex) => {\n const row = rows[questionIndex];\n if (!row) return;\n\n const cells = Array.from(row.querySelectorAll('td'));\n const answerCell = cells[1];\n if (!answerCell) return;\n\n // Remove any existing student answers display\n const existingDisplay = answerCell.querySelector('.qd-student-answers');\n if (existingDisplay) {\n existingDisplay.remove();\n }\n\n // Use pure helper function to format student answers\n const studentAnswers = formatStudentAnswersForDisplay(students, pageId, questionIndex);\n\n // Render via the reusable, auto-escaped component\n // (FR-004: student-controlled fields are never rendered as live markup).\n if (studentAnswers.length > 0) {\n const display = document.createElement('qd-student-answers');\n display.classList.add('qd-student-answers');\n display.answers = studentAnswers;\n answerCell.appendChild(display);\n }\n });\n\n info(`Displayed student answers for ${students.length} students on page ${pageId}`);\n } catch (err) {\n logError('Failed to load student answers', err as Error);\n }\n}\n\n/**\n * Hide student answers for all questions in a table.\n *\n * @param table - Quiz table element\n */\nexport function hideStudentAnswersForTable(table: HTMLTableElement): void {\n const displays = table.querySelectorAll('.qd-student-answers');\n displays.forEach((display) => display.remove());\n info('Hid student answers from quiz table');\n}\n","/**\n * Answer Display Service\n *\n * Pure functions for formatting student answer data for display.\n * No DOM dependencies - returns data structures that can be tested\n * without browser environment.\n *\n * Feature: 007-lit-component-refactor\n */\n\nimport type { StudentRecord, PageId } from '../types/contracts.js';\nimport { formatStoredTimestamp } from '../utils/date-helpers.js';\n\n/**\n * Formatted student answer for display\n */\nexport interface StudentAnswerDisplay {\n /** Student name */\n name: string;\n /** Last 4 digits of service ID */\n maskedServiceId: string;\n /** Answer value */\n answer: string;\n /** Whether answer is correct */\n success: boolean;\n /** Formatted timestamp for display (24-hour format) */\n formattedTimestamp: string;\n /** CSS class based on success: 'qd-correct' or 'qd-incorrect' */\n cssClass: 'qd-correct' | 'qd-incorrect';\n}\n\n/**\n * Format student answers for a specific question for display\n *\n * Collects and formats answers from all students for a specific\n * question, ready for rendering in instructor view.\n *\n * @param students - Array of student records\n * @param pageId - Page identifier\n * @param questionIndex - 0-based question index\n * @returns Array of formatted student answers\n */\nexport function formatStudentAnswersForDisplay(\n students: StudentRecord[],\n pageId: PageId,\n questionIndex: number,\n): StudentAnswerDisplay[] {\n const result: StudentAnswerDisplay[] = [];\n\n for (const student of students) {\n const pageData = student.pages[pageId];\n if (!pageData || !pageData.answers) continue;\n\n const answerRecord = pageData.answers[questionIndex];\n if (!answerRecord) continue;\n\n result.push({\n name: student.name,\n maskedServiceId: student.serviceId.slice(-4),\n answer: answerRecord.answer,\n success: answerRecord.success,\n formattedTimestamp: formatStoredTimestamp(answerRecord.timestamp),\n cssClass: answerRecord.success ? 'qd-correct' : 'qd-incorrect',\n });\n }\n\n return result;\n}\n","/**\n * Quiz Table Enhancer\n *\n * Implements single-phase progressive enhancement for quiz tables.\n * Replaces the old two-phase (prepare/activate) pattern with a simpler\n * conditional approach based on interactive flag.\n *\n * Features:\n * - Non-interactive mode: Hide answer column for security\n * - Interactive mode: Inject input controls, validation, auto-save\n * - Uses WeakMap for metadata (not DOM attributes)\n * - Debounced auto-save to prevent excessive writes\n * - Event emission for state changes\n */\n\nimport type { ParsedQuizTable, PageId, SessionData, SessionCache } from '../types/contracts.js';\nimport { parseQuizTable } from '../services/quiz-parser.js';\nimport { readAnswerKey, tableNeedsMissingKey } from '../services/answer-encoding.js';\nimport { registerPageQuestions } from '../services/session-cache.js';\nimport { Debouncer } from '../utils/debouncer.js';\nimport { addClass, removeClass } from '../utils/dom-helpers.js';\nimport { getJSON, setJSON, INSTRUCTOR_SHOW_ANSWERS_KEY } from '../utils/storage-helpers.js';\nimport { STORAGE_KEYS } from '../types/contracts.js';\nimport { isInstructor } from '../utils/session-state.js';\nimport { info, error as logError } from '../utils/logger.js';\nimport {\n removeColgroup,\n hideAnswerColumn,\n showAnswerColumn,\n hideDetailColumn,\n setStudentAnswerHeader,\n setLoginNotice,\n} from './quiz-table-columns.js';\nimport { createQuestionInput } from './quiz-input-factory.js';\nimport {\n handleAnswerInput,\n applyValidationStyling,\n clearValidationFeedback,\n showInputError,\n clearInputError,\n} from './quiz-answer-persistence.js';\nimport { ensureId } from '../utils/a11y.js';\nimport {\n isNumericAnswer,\n hasNonNumericCharacters,\n NUMERIC_INPUT_ERROR,\n} from '../utils/validation-helpers.js';\nimport {\n showStudentAnswersForTable,\n hideStudentAnswersForTable,\n} from './quiz-instructor-overlay.js';\n\n/**\n * Enhancement options\n */\nexport interface EnhanceQuizTableOptions {\n /** Whether to enable interactive controls */\n interactive: boolean;\n /** Current page ID (required for interactive mode) */\n pageId?: PageId;\n}\n\n/**\n * Quiz table metadata (stored in WeakMap)\n */\nexport interface QuizTableMetadata {\n /** Parsed quiz data */\n parsed: ParsedQuizTable;\n /** Enhancement mode */\n interactive: boolean;\n /** Page ID (if interactive) */\n pageId?: PageId;\n /** Row input elements (if interactive) - can be text inputs or select dropdowns */\n inputs?: (HTMLInputElement | HTMLSelectElement)[];\n /** Debouncer for auto-save */\n debouncer?: Debouncer;\n /** Cleanup function for instructor event listeners */\n cleanupInstructorListeners?: () => void;\n}\n\n// WeakMap to store table metadata without polluting DOM\nconst tableMetadata = new WeakMap();\n\n/**\n * Enhance a quiz table with single-phase enhancement.\n *\n * Non-interactive mode hides the answer/detail columns; interactive mode\n * (requires `pageId`) injects input controls, validation, and auto-save.\n *\n * @param table - The quiz table element\n * @param options - Enhancement options\n * @returns true if enhancement succeeded, false if errors occurred\n */\nexport function enhanceQuizTable(\n table: HTMLTableElement,\n options: EnhanceQuizTableOptions,\n): boolean {\n // Check if already enhanced\n const existing = tableMetadata.get(table);\n let parsed: ParsedQuizTable;\n\n if (existing) {\n // If upgrading from non-interactive to interactive, proceed\n if (!existing.interactive && options.interactive) {\n info('Upgrading quiz table from non-interactive to interactive mode');\n // Reuse existing parsed data (answers already extracted before clearing DOM)\n parsed = existing.parsed;\n } else {\n // Already enhanced in same or higher mode, skip\n info('Quiz table already enhanced, skipping');\n return true;\n }\n } else {\n // Encoded answers with no usable key: leave the table as published rather\n // than show garbled answers (SRD 013 ANS-09)\n const answerKey = readAnswerKey();\n if (tableNeedsMissingKey(table, answerKey)) {\n logError(\n 'Quiz table has encoded answers but #qd-answer-key is missing or invalid; table not enhanced',\n );\n return false;\n }\n\n // Parse the table (first enhancement)\n parsed = parseQuizTable(table, answerKey);\n\n // Check for parsing errors\n if (parsed.errors && parsed.errors.length > 0) {\n logError('Quiz table has validation errors:', parsed.errors);\n // Still continue enhancement to show errors visually\n }\n }\n\n // Store metadata in WeakMap\n const metadata: QuizTableMetadata = {\n parsed,\n interactive: options.interactive,\n pageId: options.pageId,\n };\n\n if (options.interactive) {\n // Validate pageId is provided for interactive mode\n if (!options.pageId) {\n logError('Interactive mode requires pageId option');\n return false;\n }\n\n info(`Preparing interactive enhancement for pageId: ${options.pageId}`);\n\n // Initialize debouncer for auto-save\n metadata.debouncer = new Debouncer();\n metadata.inputs = [];\n }\n\n tableMetadata.set(table, metadata);\n\n // Apply enhancement based on mode\n if (options.interactive) {\n const result = enhanceInteractive(table, metadata);\n if (result) {\n info(`Interactive enhancement succeeded for table with ${parsed.questions.length} questions`);\n } else {\n logError('Interactive enhancement failed');\n }\n return result;\n } else {\n return enhanceNonInteractive(table);\n }\n}\n\n/**\n * Enhance table in non-interactive mode\n * - Hide answer column (security: don't show correct answers before login)\n * - Hide detail column (security: don't show MCQ options or tolerances before login)\n *\n * @param table - Quiz table element\n * @returns true if successful\n */\nfunction enhanceNonInteractive(table: HTMLTableElement): boolean {\n // Remove colgroup (auto-size), then hide answer + detail columns for security\n removeColgroup(table);\n hideAnswerColumn(table);\n hideDetailColumn(table);\n\n // Tell a logged-out student why there is nothing to answer yet (UX-05);\n // the instructor reveal and the interactive upgrade remove it again\n setLoginNotice(table, true);\n\n addClass(table, 'qd-quiz-non-interactive');\n info('Quiz table enhanced in non-interactive mode');\n\n return true;\n}\n\n/**\n * Enhance table in interactive mode\n * - Inject input controls for each question\n * - Setup validation and auto-save\n * - Load existing answers from storage\n *\n * @param table - Quiz table element\n * @param metadata - Table metadata\n * @returns true if successful\n */\nfunction enhanceInteractive(table: HTMLTableElement, metadata: QuizTableMetadata): boolean {\n const { parsed, pageId, debouncer } = metadata;\n\n if (!pageId || !debouncer) {\n logError('Interactive mode requires pageId and debouncer');\n return false;\n }\n\n // Show answer column (remove qd-hidden class from non-interactive mode)\n showAnswerColumn(table);\n\n // The column now holds the student's input, whatever the author called it\n setStudentAnswerHeader(table);\n setLoginNotice(table, false);\n\n // Hide detail column in interactive mode\n // - MCQ options are now in the select dropdown\n // - Numeric tolerance is applied automatically\n hideDetailColumn(table);\n\n // Get session data\n const session = getJSON(STORAGE_KEYS.SESSION);\n if (!session) {\n logError('No active session found');\n return false;\n }\n\n // Get session cache\n let cache = getJSON(STORAGE_KEYS.CACHE);\n if (!cache) {\n info('No cache found, creating empty cache');\n cache = {\n totals: { total: 0, answered: 0, correct: 0 },\n pages: {},\n };\n } else {\n info(\n `Cache loaded: ${cache.totals.total} total questions, ${Object.keys(cache.pages).length} pages`,\n );\n }\n\n // Register page questions (updates total count in cache)\n const totalQuestions = parsed.questions.length;\n cache = registerPageQuestions(cache, pageId, totalQuestions);\n setJSON(STORAGE_KEYS.CACHE, cache);\n\n const pageCache = cache?.pages[pageId];\n const existingAnswers = pageCache?.answers || [];\n info(\n `Page ${pageId}: ${existingAnswers.length} existing answers, state: ${pageCache?.state || 'none'}`,\n );\n\n // Get all tbody rows\n const tbody = table.querySelector('tbody');\n if (!tbody) {\n logError('Quiz table has no tbody element');\n return false;\n }\n\n const rows = Array.from(tbody.querySelectorAll('tr'));\n const inputs: (HTMLInputElement | HTMLSelectElement)[] = [];\n\n // Inject controls for each question\n parsed.questions.forEach((question, index) => {\n const row = rows[index];\n if (!row) return;\n\n const cells = Array.from(row.querySelectorAll('td'));\n if (cells.length !== 3) return;\n\n const questionCell = cells[0];\n const answerCell = cells[1];\n\n if (!questionCell || !answerCell) return;\n\n // Get existing answer for this question\n const existingAnswer = existingAnswers[index];\n if (existingAnswer && existingAnswer.answer) {\n info(\n `Q${index + 1}: Pre-filling with \"${existingAnswer.answer}\" (${existingAnswer.success ? 'correct' : 'incorrect'})`,\n );\n }\n\n // Create input control based on question type\n const input = createQuestionInput(question, existingAnswer);\n inputs.push(input);\n\n // Name the control after its question for screen readers (A11Y-01)\n input.setAttribute('aria-labelledby', ensureId(questionCell, 'qd-question'));\n\n // Clear answer cell styling from any previous user session\n removeClass(answerCell, 'qd-answer-correct', 'qd-answer-incorrect');\n\n // Clear answer cell and inject input\n answerCell.textContent = '';\n answerCell.appendChild(input);\n\n // Apply validation styling if answer exists\n if (existingAnswer) {\n applyValidationStyling(answerCell, existingAnswer.success);\n }\n\n if (input instanceof HTMLSelectElement) {\n // MCQ: each choice is a committed answer\n input.addEventListener('change', () => {\n handleAnswerInput(table, metadata, index, input.value, true);\n });\n return;\n }\n\n // Numeric: only numbers are saved or counted (UX-03). Characters no\n // number can contain are flagged at once; an incomplete number such as\n // \"-\" is flagged when the field loses focus.\n input.inputMode = 'decimal';\n input.addEventListener('input', () => {\n const value = input.value.trim();\n if (hasNonNumericCharacters(value)) {\n showInputError(answerCell, input, NUMERIC_INPUT_ERROR);\n return;\n }\n clearInputError(answerCell, input);\n if (value === '' || isNumericAnswer(value)) {\n handleAnswerInput(table, metadata, index, input.value);\n }\n });\n input.addEventListener('blur', () => {\n const value = input.value.trim();\n if (value !== '' && !isNumericAnswer(value)) {\n showInputError(answerCell, input, NUMERIC_INPUT_ERROR);\n }\n });\n // Leaving a changed field commits the number as an attempt (SCO-01).\n // Typing saves along the way without counting each keystroke.\n input.addEventListener('change', () => {\n const value = input.value.trim();\n if (isNumericAnswer(value)) {\n handleAnswerInput(table, metadata, index, input.value, true);\n }\n });\n });\n\n // Store input references\n metadata.inputs = inputs;\n\n // Setup instructor answer display listeners\n const showAnswersHandler = () => {\n void showStudentAnswersForTable(table, metadata);\n };\n const hideAnswersHandler = () => {\n hideStudentAnswersForTable(table);\n };\n\n document.addEventListener('qd:instructor-show-answers', showAnswersHandler);\n document.addEventListener('qd:instructor-hide-answers', hideAnswersHandler);\n\n // Check if instructor mode with toggle already enabled\n const instructorActive = isInstructor();\n const showAnswers = sessionStorage.getItem(INSTRUCTOR_SHOW_ANSWERS_KEY) === 'true';\n if (instructorActive && showAnswers) {\n void showStudentAnswersForTable(table, metadata);\n }\n\n // Reset UI state - used on both logout and login (new user)\n const resetUIState = () => {\n // Clear student-specific feedback: colour, marks and input errors\n table.querySelectorAll('tbody tr').forEach((row) => {\n const cell = row.querySelectorAll('td')[1];\n if (!cell) return;\n clearValidationFeedback(cell);\n const control = cell.querySelector('select, input');\n if (control) clearInputError(cell, control);\n });\n\n // Reset input values to default state\n if (metadata.inputs) {\n for (const input of metadata.inputs) {\n if (input instanceof HTMLSelectElement) {\n // Reset select to first option (\"Select an answer...\")\n input.selectedIndex = 0;\n } else if (input instanceof HTMLInputElement) {\n // Clear text input\n input.value = '';\n }\n }\n }\n\n // Clear any displayed student answers\n hideStudentAnswersForTable(table);\n };\n\n // Add logout listener to clear student-specific UI state (FR-001, FR-002)\n const logoutHandler = () => {\n resetUIState();\n // Nobody is logged in now, so prompt again (UX-05)\n setLoginNotice(table, true);\n info('Cleared student UI state from quiz table on logout');\n };\n\n // Add login listener to reset UI for new user (handles migration retry case)\n const loginHandler = () => {\n resetUIState();\n setLoginNotice(table, false);\n info('Reset quiz table UI on login');\n };\n\n document.addEventListener('qd:logout', logoutHandler);\n document.addEventListener('qd:login', loginHandler);\n\n // Store cleanup function in metadata\n metadata.cleanupInstructorListeners = () => {\n document.removeEventListener('qd:instructor-show-answers', showAnswersHandler);\n document.removeEventListener('qd:instructor-hide-answers', hideAnswersHandler);\n document.removeEventListener('qd:logout', logoutHandler);\n document.removeEventListener('qd:login', loginHandler);\n };\n\n addClass(table, 'qd-quiz-interactive');\n info(`Quiz table enhanced in interactive mode for page ${pageId}`);\n\n return true;\n}\n/**\n * Get quiz table metadata\n *\n * @param table - Quiz table element\n * @returns Metadata if table has been enhanced, undefined otherwise\n */\nexport function getQuizTableMetadata(table: HTMLTableElement): QuizTableMetadata | undefined {\n return tableMetadata.get(table);\n}\n\n/**\n * Check if table is enhanced\n *\n * @param table - Quiz table element\n * @returns true if table has been enhanced\n */\nexport function isQuizTableEnhanced(table: HTMLTableElement): boolean {\n return tableMetadata.has(table);\n}\n\n/**\n * Reset quiz table to non-interactive mode\n * Called on logout to allow re-enhancement on next login\n *\n * @param table - Quiz table element\n */\nexport function resetQuizTableToNonInteractive(table: HTMLTableElement): void {\n const metadata = tableMetadata.get(table);\n if (!metadata) return;\n\n // Update metadata to mark as non-interactive\n metadata.interactive = false;\n metadata.pageId = undefined;\n metadata.inputs = undefined;\n\n // Cleanup event listeners if they exist\n metadata.cleanupInstructorListeners?.();\n metadata.cleanupInstructorListeners = undefined;\n\n // Hide answer and detail columns\n hideAnswerColumn(table);\n hideDetailColumn(table);\n\n // Remove interactive class\n removeClass(table, 'qd-quiz-interactive');\n\n // Nobody is logged in now. The table's own logout listener, which would\n // show the prompt, was removed above before it could run (UX-05)\n setLoginNotice(table, true);\n\n info('Quiz table reset to non-interactive mode');\n}\n","/**\n * Analysis Table Parser\n *\n * Parses analysis tables and generates stable identifiers for table and cells.\n *\n * Key concepts:\n * - TableId: 16-char hash based on table structure (rows × cols + className)\n * - CellKey: Format \"R{row}C{col}#f:{hash}\" where hash is 8-char from normalized content\n * - Editable cells: Cells WITH 'interactive' class\n * - Read-only cells: Cells WITHOUT 'interactive' class\n *\n * Author constraints:\n * - Add class=\"interactive\" to cells that should be editable in interactive mode\n * - Cells without this class will always be read-only\n *\n * @example\n * ```typescript\n * const table = document.querySelector('table.qd-analysis');\n * if (table instanceof HTMLTableElement) {\n * const parsed = parseAnalysisTable(table);\n * console.log(`Table ID: ${parsed.tableId}`);\n * console.log(`Editable cells: ${parsed.editableCells.length}`);\n * }\n * ```\n */\n\nimport type { ParsedAnalysisTable, TableId, CellKey } from '../types/contracts.js';\nimport { getTableRows, getRowCells, getTextContent } from '../utils/dom-helpers.js';\n\n/**\n * Generate a hash from a string using a simple but stable hash algorithm\n *\n * Uses a modified DJB2 hash algorithm for simplicity and stability.\n * Not cryptographically secure, but suitable for generating stable identifiers.\n *\n * @param input - String to hash\n * @param length - Desired hash length (default: 16)\n * @returns Hex-encoded hash of specified length\n */\nfunction hashString(input: string, length = 16): string {\n let hash = 5381;\n\n for (let i = 0; i < input.length; i++) {\n const char = input.charCodeAt(i);\n hash = (hash << 5) + hash + char; // hash * 33 + char\n hash = hash & hash; // Convert to 32-bit integer\n }\n\n // Convert to positive hex string\n const hexHash = Math.abs(hash).toString(16).padStart(8, '0');\n\n // Repeat and truncate to desired length\n const repeatedHash = hexHash.repeat(Math.ceil(length / hexHash.length));\n return repeatedHash.substring(0, length);\n}\n\n/**\n * Generate stable table ID based on structure\n *\n * Format: 16-character hash from \"{rows}x{cols}:{className}\"\n *\n * @param table - Analysis table element\n * @returns Stable table identifier\n *\n * @example\n * ```typescript\n * const table = document.querySelector('table.qd-analysis');\n * if (table instanceof HTMLTableElement) {\n * const tableId = generateTableId(table);\n * console.log(tableId); // \"8e2b4a1c9f3d7b6e\"\n * }\n * ```\n */\nexport function generateTableId(table: HTMLTableElement): TableId {\n const rows = getTableRows(table);\n const firstRow = rows[0];\n const cols = firstRow ? getRowCells(firstRow).length : 0;\n const className = table.className || 'qd-analysis';\n\n // Create structure signature: \"3x4:qd-analysis\"\n const signature = `${rows.length}x${cols}:${className}`;\n\n return hashString(signature, 16);\n}\n\n/**\n * Generate stable cell key\n *\n * Format: \"R{row}C{col}#f:{hash}\"\n * - Row and column are 0-indexed\n * - Hash is 8-char from normalized cell content (whitespace collapsed)\n *\n * @param row - Row index (0-based)\n * @param col - Column index (0-based)\n * @param content - Cell content\n * @returns Stable cell key\n *\n * @example\n * ```typescript\n * const key = generateCellKey(2, 4, 'Sample content');\n * console.log(key); // \"R2C4#f:abc123de\"\n * ```\n */\nexport function generateCellKey(row: number, col: number, content: string): CellKey {\n // Normalize content: collapse whitespace, trim\n const normalized = content.replace(/\\s+/g, ' ').trim();\n\n // Generate 8-char hash from normalized content\n const contentHash = hashString(normalized, 8);\n\n return `R${row}C${col}#f:${contentHash}`;\n}\n\n/**\n * Check if a cell is editable\n *\n * A cell is editable if it HAS the 'interactive' class.\n * Cells without this class are considered read-only (headers or pre-filled content).\n *\n * Author constraint: Add class=\"interactive\" to cells that should be editable.\n *\n * @param cell - Table cell element\n * @returns true if cell has 'interactive' class, false otherwise\n *\n * @example\n * ```typescript\n * const cell = row.cells[0];\n * if (isCellEditable(cell)) {\n * // Cell has class=\"interactive\", make it editable\n * } else {\n * // Cell is read-only\n * }\n * ```\n */\nexport function isCellEditable(cell: HTMLTableCellElement): boolean {\n // Check for 'interactive' class\n return cell.classList.contains('interactive');\n}\n\n/**\n * Parse an analysis table\n *\n * Extracts table structure, generates stable identifiers, and identifies editable cells.\n *\n * @param table - Analysis table element\n * @returns Parsed analysis table data\n *\n * @example\n * ```typescript\n * const table = document.querySelector('table.qd-analysis');\n * if (table instanceof HTMLTableElement) {\n * const parsed = parseAnalysisTable(table);\n *\n * if (parsed.errors && parsed.errors.length > 0) {\n * console.error('Validation errors:', parsed.errors);\n * }\n *\n * console.log(`Table ID: ${parsed.tableId}`);\n * console.log(`Editable cells: ${parsed.editableCells.length}`);\n * }\n * ```\n */\nexport function parseAnalysisTable(table: HTMLTableElement): ParsedAnalysisTable {\n const errors: string[] = [];\n\n // Validate table structure\n if (!table.querySelector('tbody')) {\n errors.push('Analysis table must have a tbody element');\n }\n\n const rows = getTableRows(table);\n if (rows.length === 0) {\n errors.push('Analysis table must have at least one row');\n }\n\n // Generate table ID\n const tableId = generateTableId(table);\n\n // Identify editable cells\n const editableCells: ParsedAnalysisTable['editableCells'] = [];\n\n rows.forEach((row, rowIndex) => {\n const cells = getRowCells(row);\n\n cells.forEach((cell, colIndex) => {\n if (isCellEditable(cell)) {\n const content = getTextContent(cell);\n const key = generateCellKey(rowIndex, colIndex, content);\n\n editableCells.push({\n row: rowIndex,\n col: colIndex,\n key,\n });\n }\n });\n });\n\n return {\n element: table,\n tableId,\n editableCells,\n errors: errors.length > 0 ? errors : undefined,\n };\n}\n","/**\n * Analysis cell persistence.\n *\n * Handles cell edit → debounce → IndexedDB save → cache update → event for\n * analysis tables. Extracted from `analysis-table.ts`; the record-mutation\n * logic now lives in `storage-service.updateRecordWithAnalysis`.\n */\n\nimport type { SessionData, CellKey } from '../types/contracts.js';\nimport { STORAGE_KEYS } from '../types/contracts.js';\nimport type { AnalysisTableMetadata } from './analysis-table.js';\nimport { getStorageService } from '../services/storage-service.js';\nimport { getJSON } from '../utils/storage-helpers.js';\nimport { getTextContent } from '../utils/dom-helpers.js';\nimport { persistAndNotify } from './persist-and-notify.js';\nimport { info, error as logError, warn } from '../utils/logger.js';\n\n/**\n * Handle a cell edit (debounced save).\n *\n * @param metadata - Table metadata\n * @param cell - Edited cell element\n * @param cellKey - Cell key\n */\nexport function handleCellEdit(\n metadata: AnalysisTableMetadata,\n cell: HTMLTableCellElement,\n cellKey: CellKey,\n): void {\n const { debouncer, pageId } = metadata;\n\n if (!debouncer || !pageId) {\n return;\n }\n\n const content = getTextContent(cell);\n const label = cellLabel(cell);\n\n // Debounce the save (500ms - longer than quiz for thoughtful editing)\n debouncer.debounce(\n `save-cell-${cellKey}`,\n () => {\n void saveCellData(metadata, cellKey, content, label);\n },\n 500,\n );\n}\n\n/**\n * Row label of an analysis cell, from the element that names it for screen\n * readers (set by analysis-table.ts), without a trailing colon. Stored with\n * the entry so exports can say which row it belongs to (SRD 013 ANA-03).\n *\n * @param cell - Editable analysis cell\n * @returns The label, or undefined when the row has none\n */\nexport function cellLabel(cell: HTMLTableCellElement): string | undefined {\n const labelId = cell.getAttribute('aria-labelledby');\n const text = labelId ? document.getElementById(labelId)?.textContent : undefined;\n const label = text?.replace(/\\s+/g, ' ').trim().replace(/:$/, '').trim();\n return label || undefined;\n}\n\n/**\n * Save cell data to storage (sessionStorage cache + IndexedDB).\n *\n * @param metadata - Table metadata\n * @param cellKey - Cell key\n * @param content - Cell content\n */\nexport async function saveCellData(\n metadata: AnalysisTableMetadata,\n cellKey: CellKey,\n content: string,\n label?: string,\n): Promise {\n const { pageId, parsed } = metadata;\n\n if (!pageId) {\n return;\n }\n\n // Get session\n const session = getJSON(STORAGE_KEYS.SESSION);\n if (!session) {\n logError('No active session found');\n return;\n }\n\n // Load student record from IndexedDB\n const storageService = getStorageService();\n let studentRecord;\n try {\n studentRecord = await storageService.loadStudentRecord(session);\n } catch (err) {\n warn('Failed to load student record, analysis not saved', err);\n return;\n }\n\n // Apply the cell edit to the record\n const updatedRecord = storageService.updateRecordWithAnalysis(\n studentRecord,\n pageId,\n parsed.tableId,\n cellKey,\n content,\n { totalCells: parsed.editableCells.length, label },\n );\n\n // Persist, refresh cache, and emit the saved event\n await persistAndNotify(updatedRecord, {\n events: [\n { name: 'qd:analysis-saved', detail: { pageId, tableId: parsed.tableId, cellKey, content } },\n ],\n });\n\n info(`Analysis cell saved for ${cellKey} on page ${pageId}`);\n}\n","/**\n * Student Entries Component\n *\n * Reusable, Shadow-DOM-isolated display of student analysis-cell entries for\n * the instructor view. Replaces the previous raw-DOM builder that set inline\n * `style.cssText` hex colors (Constitution V) — all styles now live in\n * `static styles`, and all bindings are auto-escaped (no `innerHTML`).\n *\n * @element qd-student-entries\n */\n\nimport { LitElement, html, css } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport type { CellEntry } from '../services/analysis-display.js';\nimport { sortByTimestamp } from '../services/analysis-display.js';\nimport { formatStoredTimestamp } from '../utils/date-helpers.js';\n\n/**\n * Renders a cell's student entries (newest first) or an empty-state placeholder.\n */\n@customElement('qd-student-entries')\nexport class QdStudentEntries extends LitElement {\n /** Entries to display (unsorted; sorted newest-first internally). */\n @property({ attribute: false })\n entries: CellEntry[] = [];\n\n static override styles = css`\n :host {\n display: block;\n margin-top: 12px;\n padding-top: 8px;\n border-top: 2px solid #3b82f6;\n }\n\n :host([data-empty]) {\n margin-top: 0;\n padding-top: 0;\n border-top: none;\n }\n\n .qd-no-entries {\n color: #9ca3af;\n font-style: italic;\n font-size: 13px;\n padding: 8px 0;\n }\n\n .qd-entry {\n padding: 8px 0;\n border-bottom: 1px solid #e5e7eb;\n font-size: 13px;\n color: #1f2937;\n }\n\n .qd-entry-name {\n font-weight: 600;\n color: #374151;\n }\n\n .qd-entry-content {\n white-space: pre-wrap;\n }\n `;\n\n override render() {\n if (this.entries.length === 0) {\n this.setAttribute('data-empty', '');\n return html`
                                          (No entries yet)
                                          `;\n }\n this.removeAttribute('data-empty');\n\n return sortByTimestamp(this.entries).map((entry) => {\n const last4 = entry.serviceId.slice(-4);\n const timestamp = formatStoredTimestamp(entry.timestamp);\n return html`
                                          \n ${entry.name} (${last4}) • ${timestamp}: \n ${entry.content}\n
                                          `;\n });\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'qd-student-entries': QdStudentEntries;\n }\n}\n","/**\n * Analysis display logic (pure).\n *\n * DOM-free helpers for collecting and ordering instructor-view student entries\n * for analysis tables. Extracted from `analysis-table.ts`.\n */\n\nimport type { StudentRecord, PageId, CellKey, ServiceId } from '../types/contracts.js';\n\n/**\n * A single student's entry for an analysis cell (instructor view).\n */\nexport interface CellEntry {\n serviceId: ServiceId;\n name: string;\n content: string;\n timestamp: string;\n}\n\n/**\n * Group student entries by cell key (FR-012).\n *\n * @param students - All student records\n * @param pageId - Page ID to filter by\n * @returns Map of cell key to array of student entries\n */\nexport function groupEntriesByCell(\n students: StudentRecord[],\n pageId: PageId,\n): Record {\n const grouped: Record = {};\n\n students.forEach((student) => {\n const pageData = student.pages[pageId];\n if (!pageData || !pageData.analysis) {\n return;\n }\n\n const { cells } = pageData.analysis;\n const timestamp = pageData.analysis.lastEdited || student.updated;\n\n Object.entries(cells).forEach(([cellKey, content]) => {\n if (!grouped[cellKey]) {\n grouped[cellKey] = [];\n }\n\n grouped[cellKey].push({\n serviceId: student.serviceId,\n name: student.name,\n content,\n timestamp,\n });\n });\n });\n\n return grouped;\n}\n\n/**\n * Sort entries by timestamp in descending order (newest first) (FR-012).\n *\n * @param entries - Cell entries to sort\n * @returns Sorted entries (newest first)\n */\nexport function sortByTimestamp(entries: CellEntry[]): CellEntry[] {\n return [...entries].sort((a, b) => {\n const dateA = new Date(a.timestamp).getTime();\n const dateB = new Date(b.timestamp).getTime();\n return dateB - dateA; // Descending (newest first)\n });\n}\n","/**\n * Analysis instructor overlay.\n *\n * Renders (and clears) the per-cell list of student entries shown when an\n * instructor toggles \"show answers\" on an analysis table. Extracted from\n * `analysis-table.ts`.\n */\n\nimport type { SessionData, PageId, StudentRecord } from '../types/contracts.js';\nimport { STORAGE_KEYS } from '../types/contracts.js';\nimport type { AnalysisTableMetadata } from './analysis-table.js';\nimport type { CellEntry } from '../services/analysis-display.js';\nimport { groupEntriesByCell } from '../services/analysis-display.js';\nimport { getStorageService } from '../services/storage-service.js';\nimport { getTableRows, getRowCells } from '../utils/dom-helpers.js';\nimport { getJSON } from '../utils/storage-helpers.js';\nimport { info, error as logError, warn } from '../utils/logger.js';\nimport '../components/qd-student-entries.js';\nimport type { QdStudentEntries } from '../components/qd-student-entries.js';\n\n/**\n * Create the reusable {@link QdStudentEntries} component for a cell's entries\n * (FR-012, FR-013). Styles and escaping are handled by the component.\n *\n * @param entries - Student entries for a cell (sorted internally)\n * @returns A `` element\n */\nexport function createStudentEntriesDisplay(entries: CellEntry[]): QdStudentEntries {\n const el = document.createElement('qd-student-entries');\n el.entries = entries;\n return el;\n}\n\n/**\n * Show student entries for all editable cells in the table (instructor view).\n *\n * @param table - Analysis table element\n * @param metadata - Table metadata for the table\n */\nexport async function showStudentEntriesForTable(\n table: HTMLTableElement,\n metadata: AnalysisTableMetadata,\n): Promise {\n // Get current page ID from metadata (if interactive) or from document\n const pageId = metadata.pageId || getCurrentPageId();\n if (!pageId) {\n warn('Cannot show student entries: page ID not found');\n return;\n }\n\n // Get session to determine release\n const session = getJSON(STORAGE_KEYS.SESSION);\n if (!session) {\n warn('Cannot show student entries: no active session');\n return;\n }\n\n // Load all students for this release\n const storageService = getStorageService();\n let students: StudentRecord[];\n try {\n students = await storageService.getStudentsByRelease(session.release);\n } catch (err) {\n logError('Failed to load students for instructor view:', err);\n return;\n }\n\n // Group entries by cell\n const grouped = groupEntriesByCell(students, pageId);\n\n // Get all editable cells from parsed data\n const { editableCells } = metadata.parsed;\n const rows = getTableRows(table);\n\n // Display entries for each editable cell\n editableCells.forEach(({ row, col, key }) => {\n const rowElement = rows[row];\n if (!rowElement) return;\n\n const cells = getRowCells(rowElement);\n const cell = cells[col];\n if (!cell) return;\n\n // Get entries for this cell\n const entries = grouped[key] || [];\n\n // Create and append display element\n const displayElement = createStudentEntriesDisplay(entries);\n displayElement.setAttribute('data-qd-student-entries', 'true');\n\n // Remove any existing display\n const existing = cell.querySelector('[data-qd-student-entries]');\n if (existing) {\n existing.remove();\n }\n\n cell.appendChild(displayElement);\n });\n\n info(`Displayed student entries for ${editableCells.length} cells`);\n}\n\n/**\n * Hide student entries for all cells in the table.\n *\n * @param table - Analysis table element\n */\nexport function hideStudentEntriesForTable(table: HTMLTableElement): void {\n const displays = table.querySelectorAll('[data-qd-student-entries]');\n displays.forEach((display) => display.remove());\n\n info('Hidden student entries from analysis table');\n}\n\n/**\n * Get the current page ID from the document (body data attribute or URL).\n *\n * @returns Page ID or undefined\n */\nexport function getCurrentPageId(): PageId | undefined {\n // Try body data attribute first\n const bodyPageId = document.body.dataset.pageId;\n if (bodyPageId) {\n return bodyPageId;\n }\n\n // Fallback: extract from URL filename\n const path = window.location.pathname;\n const filename = path.split('/').pop() || '';\n const pageId = filename.replace('.html', '');\n\n return pageId || undefined;\n}\n","/**\n * Analysis Table Enhancer\n *\n * Implements single-phase progressive enhancement for analysis tables.\n * Similar to quiz-table enhancer but for free-form editable content.\n *\n * Features:\n * - Non-interactive mode: Read-only display\n * - Interactive mode: Enable editing for cells with 'interactive' class\n * - Debounced auto-save to prevent excessive writes\n * - Stable cell keys for persistence across page reloads\n * - Uses WeakMap for metadata (not DOM attributes)\n * - Event emission for data changes\n *\n * Author constraints:\n * - Cells WITH class=\"interactive\" = editable (in interactive mode)\n * - Cells WITHOUT 'interactive' class = read-only (always)\n * - Maximum ONE analysis table per page\n */\n\nimport type {\n ParsedAnalysisTable,\n PageId,\n SessionData,\n SessionCache,\n CellKey,\n} from '../types/contracts.js';\nimport { parseAnalysisTable, isCellEditable } from '../services/analysis-parser.js';\nimport { Debouncer } from '../utils/debouncer.js';\nimport { getTableRows, getRowCells, addClass } from '../utils/dom-helpers.js';\nimport { getJSON } from '../utils/storage-helpers.js';\nimport { STORAGE_KEYS } from '../types/contracts.js';\nimport { info, error as logError } from '../utils/logger.js';\nimport { ensureId } from '../utils/a11y.js';\nimport { handleCellEdit } from './analysis-persistence.js';\nimport {\n showStudentEntriesForTable,\n hideStudentEntriesForTable,\n} from './analysis-instructor-overlay.js';\n\n/**\n * Enhancement options\n */\nexport interface EnhanceAnalysisTableOptions {\n /** Whether to enable interactive editing */\n interactive: boolean;\n /** Current page ID (required for interactive mode) */\n pageId?: PageId;\n}\n\n/**\n * Analysis table metadata (stored in WeakMap)\n */\nexport interface AnalysisTableMetadata {\n /** Parsed analysis data */\n parsed: ParsedAnalysisTable;\n /** Enhancement mode */\n interactive: boolean;\n /** Page ID (if interactive) */\n pageId?: PageId;\n /** Debouncer for auto-save */\n debouncer?: Debouncer;\n /** Cell element to cell key mapping */\n cellKeyMap?: Map;\n}\n\n// WeakMap to store table metadata without polluting DOM\nconst tableMetadata = new WeakMap();\n\n/**\n * Enhance an analysis table with single-phase enhancement\n *\n * @param table - The analysis table element\n * @param options - Enhancement options\n * @returns true if enhancement succeeded, false if errors occurred\n *\n * @example\n * ```typescript\n * // Non-interactive mode (read-only)\n * const table = document.querySelector('table.qd-analysis');\n * if (table instanceof HTMLTableElement) {\n * enhanceAnalysisTable(table, { interactive: false });\n * }\n *\n * // Interactive mode (enable editing)\n * enhanceAnalysisTable(table, { interactive: true, pageId: 'gram-1' });\n * ```\n */\nexport function enhanceAnalysisTable(\n table: HTMLTableElement,\n options: EnhanceAnalysisTableOptions,\n): boolean {\n // Parse the table\n const parsed = parseAnalysisTable(table);\n\n // Check for parsing errors\n if (parsed.errors && parsed.errors.length > 0) {\n logError('Analysis table has validation errors:', parsed.errors);\n // Still continue enhancement to show errors visually\n }\n\n // Store metadata in WeakMap\n const metadata: AnalysisTableMetadata = {\n parsed,\n interactive: options.interactive,\n pageId: options.pageId,\n };\n\n if (options.interactive) {\n // Validate pageId is provided for interactive mode\n if (!options.pageId) {\n logError('Interactive mode requires pageId option');\n return false;\n }\n\n // Initialize debouncer for auto-save\n metadata.debouncer = new Debouncer();\n metadata.cellKeyMap = new Map();\n }\n\n tableMetadata.set(table, metadata);\n\n // Apply enhancement based on mode\n if (options.interactive) {\n return enhanceInteractive(table, metadata);\n } else {\n return enhanceNonInteractive(table);\n }\n}\n\n/**\n * Enhance table in non-interactive mode\n * - Read-only display (no contenteditable)\n * - Listen for instructor view events to display student entries\n *\n * @param table - Analysis table element\n * @returns true if successful\n */\nfunction enhanceNonInteractive(table: HTMLTableElement): boolean {\n addClass(table, 'qd-analysis-non-interactive');\n\n // Add event listeners for instructor view\n const showHandler = () => {\n const metadata = tableMetadata.get(table);\n if (metadata) {\n void showStudentEntriesForTable(table, metadata);\n }\n };\n\n const hideHandler = () => {\n hideStudentEntriesForTable(table);\n };\n\n document.addEventListener('qd:instructor-show-answers', showHandler);\n document.addEventListener('qd:instructor-hide-answers', hideHandler);\n\n info('Analysis table enhanced in non-interactive mode with instructor view support');\n\n return true;\n}\n\n/**\n * Enhance table in interactive mode\n * - Enable editing for cells without background-color\n * - Setup auto-save with debouncing\n * - Load existing data from storage\n *\n * @param table - Analysis table element\n * @param metadata - Table metadata\n * @returns true if successful\n */\nfunction enhanceInteractive(table: HTMLTableElement, metadata: AnalysisTableMetadata): boolean {\n const { parsed, pageId, debouncer, cellKeyMap } = metadata;\n\n if (!pageId || !debouncer || !cellKeyMap) {\n logError('Interactive mode requires pageId, debouncer, and cellKeyMap');\n return false;\n }\n\n // Get session data\n const session = getJSON(STORAGE_KEYS.SESSION);\n if (!session) {\n logError('No active session found');\n return false;\n }\n\n // Get session cache\n const cache = getJSON(STORAGE_KEYS.CACHE);\n const pageCache = cache?.pages[pageId];\n const existingAnalysis = pageCache?.analysis;\n\n // Load existing cell data if available\n const existingCells = existingAnalysis?.cells || {};\n\n // Get all rows\n const rows = getTableRows(table);\n\n // Enable editing for editable cells\n parsed.editableCells.forEach(({ row, col, key }) => {\n const rowElement = rows[row];\n if (!rowElement) return;\n\n const cells = getRowCells(rowElement);\n const cell = cells[col];\n if (!cell) return;\n\n // Verify cell is still editable (defensive check)\n if (!isCellEditable(cell)) {\n logError(`Cell at R${row}C${col} is no longer editable`);\n return;\n }\n\n // Store cell key mapping\n cellKeyMap.set(cell, key);\n\n // Load existing content if available\n if (existingCells[key]) {\n cell.textContent = existingCells[key];\n }\n\n // Make cell editable\n cell.contentEditable = 'true';\n addClass(cell, 'qd-editable');\n\n // Expose it as a named text box (SRD 013 A11Y-03)\n cell.setAttribute('role', 'textbox');\n cell.setAttribute('aria-multiline', 'true');\n const label = findCellLabel(cells, col);\n if (label) {\n cell.setAttribute('aria-labelledby', ensureId(label, 'qd-analysis-label'));\n }\n\n // Setup auto-save on input\n cell.addEventListener('input', () => {\n handleCellEdit(metadata, cell, key);\n });\n\n // Prevent Enter key from creating line breaks (optional - may want multi-line)\n // For now, allow multi-line editing\n });\n\n addClass(table, 'qd-analysis-interactive');\n info(`Analysis table enhanced in interactive mode for page ${pageId}`);\n\n return true;\n}\n\n/**\n * Find the cell that labels an editable analysis cell: the nearest\n * non-editable cell to its left in the same row (the row header, as in\n * \"Threat Assessment:\").\n *\n * @param cells - Cells of the row\n * @param col - Column index of the editable cell\n * @returns The labelling cell, or undefined when the row has none\n */\nfunction findCellLabel(\n cells: HTMLTableCellElement[],\n col: number,\n): HTMLTableCellElement | undefined {\n for (let i = col - 1; i >= 0; i--) {\n const candidate = cells[i];\n if (candidate && !isCellEditable(candidate) && candidate.textContent?.trim()) {\n return candidate;\n }\n }\n return undefined;\n}\n\n/**\n * Get analysis table metadata\n *\n * @param table - Analysis table element\n * @returns Metadata if table has been enhanced, undefined otherwise\n */\nexport function getAnalysisTableMetadata(\n table: HTMLTableElement,\n): AnalysisTableMetadata | undefined {\n return tableMetadata.get(table);\n}\n\n/**\n * Check if table is enhanced\n *\n * @param table - Analysis table element\n * @returns true if table has been enhanced\n */\nexport function isAnalysisTableEnhanced(table: HTMLTableElement): boolean {\n return tableMetadata.has(table);\n}\n\n/**\n * Reset analysis table to non-interactive mode\n * Called on logout to clear student/instructor UI state\n *\n * @param table - Analysis table element\n */\nexport function resetAnalysisTableToNonInteractive(table: HTMLTableElement): void {\n const metadata = tableMetadata.get(table);\n if (!metadata) return;\n\n // Hide any displayed student entries (instructor view)\n hideStudentEntriesForTable(table);\n\n // If table was interactive, disable editing and clear content\n if (metadata.interactive) {\n // Find all editable cells, clear content, and disable contentEditable\n const editableCells = table.querySelectorAll('.qd-editable');\n editableCells.forEach((cell) => {\n if (cell instanceof HTMLTableCellElement) {\n cell.contentEditable = 'false';\n cell.classList.remove('qd-editable');\n // Clear student-entered content on logout\n cell.textContent = '';\n }\n });\n\n // Remove interactive class from table\n table.classList.remove('qd-analysis-interactive');\n\n // Cancel any pending saves\n metadata.debouncer?.cancelAll();\n }\n\n // Update metadata to mark as non-interactive\n metadata.interactive = false;\n metadata.pageId = undefined;\n metadata.debouncer = undefined;\n metadata.cellKeyMap = undefined;\n\n info('Reset analysis table to non-interactive mode');\n}\n","/**\n * Instructor answer-reveal enhancer (single shared, security-sensitive).\n *\n * For a non-interactive quiz table, restores the answer/detail columns that are\n * hidden from students and re-injects the correct answers into the DOM, then\n * wires the instructor \"show/hide student answers\" toggle listeners.\n *\n * This is the ONLY place correct answers are re-injected into the DOM. It\n * consolidates the previously duplicated instructor branches in `bootstrap.ts`\n * (`revealQuizAnswersForInstructor`) and `event-coordinator.ts`\n * (`upgradeTablesAfterLogin`).\n */\n\nimport type { QuizTableMetadata } from './quiz-table.js';\nimport {\n showStudentAnswersForTable,\n hideStudentAnswersForTable,\n} from './quiz-instructor-overlay.js';\nimport { INSTRUCTOR_SHOW_ANSWERS_KEY } from '../utils/storage-helpers.js';\nimport { restoreDetailColumn, restoreAnswerHeader, setLoginNotice } from './quiz-table-columns.js';\n\n/**\n * Options controlling reveal behavior. Defaults preserve the historical\n * per-caller behavior exactly.\n */\nexport interface RevealInstructorAnswersOptions {\n /**\n * When true, adds the `qd-quiz-instructor` CSS class to the table (the\n * bootstrap/initial-load path did this; the post-login path did not).\n */\n addInstructorClass?: boolean;\n}\n\n/**\n * Reveal correct answers and wire instructor toggles for a single quiz table.\n *\n * @param table - The quiz table to reveal\n * @param metadata - Parsed metadata for the table (must include `pageId`)\n * @param options - Behavior toggles (see {@link RevealInstructorAnswersOptions})\n */\nexport function revealInstructorAnswers(\n table: HTMLTableElement,\n metadata: QuizTableMetadata,\n options: RevealInstructorAnswersOptions = {},\n): void {\n if (options.addInstructorClass) {\n // Add instructor class for CSS visibility override\n table.classList.add('qd-quiz-instructor');\n }\n\n // Remove qd-hidden class from answer column (column 1)\n const answerCells = table.querySelectorAll('td:nth-child(2), th:nth-child(2)');\n answerCells.forEach((cell) => {\n cell.classList.remove('qd-hidden');\n });\n\n // Restore answer text to data cells only (not header)\n const answerDataCells = table.querySelectorAll('tbody td:nth-child(2)');\n answerDataCells.forEach((cell, index) => {\n const question = metadata.parsed.questions[index];\n if (question && cell instanceof HTMLTableCellElement) {\n cell.textContent = question.correctAnswer;\n }\n });\n\n // Show the detail column (column 2) again and restore its content from memory\n restoreDetailColumn(table);\n\n // Instructors see the author's own header and no \"log in to answer\" prompt\n restoreAnswerHeader(table);\n setLoginNotice(table, false);\n\n // Set up instructor toggle event listeners (since table is non-interactive)\n const showAnswersHandler = (): void => {\n void showStudentAnswersForTable(table, metadata);\n };\n const hideAnswersHandler = (): void => {\n hideStudentAnswersForTable(table);\n };\n\n document.addEventListener('qd:instructor-show-answers', showAnswersHandler);\n document.addEventListener('qd:instructor-hide-answers', hideAnswersHandler);\n\n // Check if toggle already enabled\n const showAnswers = sessionStorage.getItem(INSTRUCTOR_SHOW_ANSWERS_KEY) === 'true';\n if (showAnswers) {\n void showAnswersHandler();\n }\n}\n\n/**\n * Remove any rendered student-answer overlays from a quiz table.\n *\n * Inverse of the toggle's \"show\" action; provided for callers that need to\n * tear the overlay down without re-hiding the answer columns.\n *\n * @param table - The quiz table to clear overlays from\n */\nexport function hideInstructorAnswers(table: HTMLTableElement): void {\n hideStudentAnswersForTable(table);\n}\n","/**\n * Page ID extraction utility\n *\n * Derives the `PageId` for the current document from a URL by taking the final\n * path segment (the filename) and stripping its `.html`/`.htm` extension.\n * Consolidates the inline pathname→filename→strip-extension parses previously\n * duplicated across `bootstrap.ts` and `event-coordinator.ts`.\n */\n\nimport type { PageId } from '../types/contracts.js';\n\n/**\n * Extract the page ID from a URL.\n *\n * @param url - Optional URL or path to parse. When omitted, the current\n * document's `window.location.pathname` is used (preserving the original\n * inline behavior). Query strings and hash fragments are ignored.\n * @returns The filename without its `.html`/`.htm` extension. Returns an empty\n * string when the URL ends in a trailing slash (no filename).\n *\n * @example\n * getPageIdFromUrl('/training/gram-1.html'); // 'gram-1'\n * getPageIdFromUrl('quiz-index.html?x=1#top'); // 'quiz-index'\n */\nexport function getPageIdFromUrl(url?: string): PageId {\n // Strip query string and hash fragment, then isolate the path portion.\n // window.location.pathname never contains '?' or '#', so this is a no-op for\n // the default (current-document) case and preserves the original behavior.\n const path = (url ?? window.location.pathname).split(/[?#]/)[0] ?? '';\n const filename = path.substring(path.lastIndexOf('/') + 1);\n return filename.replace(/\\.html?$/i, '');\n}\n","/**\n * Post-login table upgrade.\n *\n * Upgrades quiz/analysis tables to interactive mode after a student logs in, or\n * reveals answers + wires instructor toggles for an instructor. Extracted from\n * `event-coordinator.ts` so the coordinator only routes events.\n */\n\nimport { enhanceQuizTable, getQuizTableMetadata } from './quiz-table.js';\nimport { enhanceAnalysisTable } from './analysis-table.js';\nimport { revealInstructorAnswers } from './instructor-answer-reveal.js';\nimport { getPageIdFromUrl } from '../utils/page-id.js';\nimport { isInstructor } from '../utils/session-state.js';\nimport { info } from '../utils/logger.js';\n\n/**\n * Upgrade all tables to interactive mode after login.\n *\n * Instructors keep non-interactive tables but get answers revealed; students\n * get interactive quiz/analysis tables for the current page.\n */\nexport function upgradeTablesAfterLogin(): void {\n const pageId = getPageIdFromUrl();\n\n if (!pageId) {\n info('No pageId found, skipping table upgrade to interactive mode');\n return;\n }\n\n const instructorActive = isInstructor();\n if (instructorActive) {\n revealTablesForInstructor(pageId);\n return;\n }\n\n const quizTables = document.querySelectorAll('table.qd-quiz');\n if (quizTables.length > 0) {\n info(`Upgrading ${quizTables.length} quiz table(s) to interactive mode...`);\n quizTables.forEach((table) => enhanceQuizTable(table, { interactive: true, pageId }));\n }\n\n const analysisTables = document.querySelectorAll('table.qd-analysis');\n if (analysisTables.length > 0) {\n info(`Upgrading ${analysisTables.length} analysis table(s) to interactive mode...`);\n analysisTables.forEach((table) => enhanceAnalysisTable(table, { interactive: true, pageId }));\n }\n}\n\n/**\n * Reveal answers and wire instructor toggles on the current page's quiz tables.\n */\nfunction revealTablesForInstructor(pageId: string): void {\n info('Instructor session detected, tables remain in non-interactive mode with answers visible');\n const quizTables = document.querySelectorAll('table.qd-quiz');\n\n quizTables.forEach((table) => {\n const metadata = getQuizTableMetadata(table);\n if (!metadata) return;\n metadata.pageId = pageId;\n // Post-login path does not add the qd-quiz-instructor visibility class.\n revealInstructorAnswers(table, metadata);\n });\n}\n","/**\n * Event Coordinator\n * Registers and coordinates custom events across the application\n */\n\nimport { info } from '../utils/logger.js';\nimport { resetQuizTableToNonInteractive } from '../enhancers/quiz-table.js';\nimport { resetAnalysisTableToNonInteractive } from '../enhancers/analysis-table.js';\nimport { upgradeTablesAfterLogin } from '../enhancers/table-upgrade.js';\nimport { getStorageService } from '../services/storage-service.js';\nimport { STORAGE_KEYS } from '../types/contracts.js';\nimport { getJSON } from '../utils/storage-helpers.js';\nimport type { SessionData } from '../types/contracts.js';\n\n/**\n * Custom event detail types\n */\nexport interface LoginEventDetail {\n serviceId: string;\n name: string;\n release: string;\n loginTime: string;\n}\n\nexport interface LogoutEventDetail {\n serviceId: string;\n}\n\nexport interface AnswerSavedEventDetail {\n pageId: string;\n questionIndex: number;\n answer: string;\n success: boolean;\n}\n\nexport interface StateChangedEventDetail {\n pageId: string;\n state: string;\n}\n\nexport interface InstructorUnlockEventDetail {\n unlockTime: string;\n}\n\nexport interface DataClearedEventDetail {\n timestamp: string;\n}\n\n/**\n * Event coordinator for managing application events\n */\nexport class EventCoordinator {\n private listeners: Map = new Map();\n\n /**\n * Register all event listeners\n */\n initialize(): void {\n this.registerLoginHandlers();\n this.registerLogoutHandlers();\n this.registerAnswerHandlers();\n this.registerStateHandlers();\n this.registerInstructorHandlers();\n this.registerDataHandlers();\n\n info('Event coordinator initialized');\n }\n\n /**\n * Register handlers for login events.\n *\n * On a student login: rebuild the cache from IndexedDB (delegated to\n * StorageService) and upgrade tables to interactive mode (delegated to the\n * table-upgrade enhancer). Instructor logins skip student-record handling.\n */\n private registerLoginHandlers(): void {\n this.addEventListener('qd:login', (event) => {\n void (async () => {\n const detail = (event as CustomEvent).detail;\n info(`Login event: ${detail.serviceId} (${detail.name})`);\n\n if (detail.serviceId === 'INSTRUCTOR') {\n info('Instructor login - skipping student record handling');\n return;\n }\n\n const session = getJSON(STORAGE_KEYS.SESSION);\n if (!session) {\n info('No session found in storage, skipping cache rebuild');\n return;\n }\n\n await getStorageService().refreshCacheOnLogin(session);\n this.dispatchEvent('qd:cache-rebuild', {});\n upgradeTablesAfterLogin();\n })();\n });\n }\n\n /**\n * Register handlers for logout events\n */\n private registerLogoutHandlers(): void {\n this.addEventListener('qd:logout', (event) => {\n const detail = (event as CustomEvent).detail;\n info(`Logout event: ${detail.serviceId}`);\n\n // Reset all quiz tables to non-interactive mode\n const quizTables = document.querySelectorAll('table.qd-quiz');\n quizTables.forEach((table) => {\n resetQuizTableToNonInteractive(table);\n });\n\n // Reset all analysis tables to non-interactive mode\n const analysisTables = document.querySelectorAll('table.qd-analysis');\n analysisTables.forEach((table) => {\n resetAnalysisTableToNonInteractive(table);\n });\n\n // Clear any cached data\n this.dispatchEvent('qd:cache-clear', {});\n });\n }\n\n /**\n * Register handlers for answer saved events\n */\n private registerAnswerHandlers(): void {\n this.addEventListener('qd:answer-saved', (event) => {\n const detail = (event as CustomEvent).detail;\n info(\n `Answer saved: ${detail.pageId} Q${detail.questionIndex} = ${detail.answer} (${detail.success ? 'correct' : 'incorrect'})`,\n );\n\n // Trigger cache update\n this.dispatchEvent('qd:cache-update', { pageId: detail.pageId });\n });\n }\n\n /**\n * Register handlers for state changed events\n */\n private registerStateHandlers(): void {\n this.addEventListener('qd:state-changed', (event) => {\n const detail = (event as CustomEvent).detail;\n info(`State changed: ${detail.pageId} → ${detail.state}`);\n\n // Update badge state\n this.dispatchEvent('qd:badge-update', { pageId: detail.pageId, state: detail.state });\n });\n }\n\n /**\n * Register handlers for instructor events\n */\n private registerInstructorHandlers(): void {\n this.addEventListener('qd:instructor-unlock', (event) => {\n const detail = (event as CustomEvent).detail;\n info(`Instructor mode unlocked at ${detail.unlockTime}`);\n });\n\n this.addEventListener('qd:instructor-lock', () => {\n info('Instructor mode locked');\n });\n }\n\n /**\n * Register handlers for data management events\n */\n private registerDataHandlers(): void {\n this.addEventListener('qd:data-cleared', (event) => {\n const detail = (event as CustomEvent).detail;\n info(`All data cleared at ${detail.timestamp}`);\n\n // Clear cache\n this.dispatchEvent('qd:cache-clear', {});\n });\n }\n\n /**\n * Add event listener\n */\n private addEventListener(eventName: string, handler: EventListener): void {\n document.addEventListener(eventName, handler);\n\n // Track listeners for cleanup\n const handlers = this.listeners.get(eventName) || [];\n handlers.push(handler);\n this.listeners.set(eventName, handlers);\n }\n\n /**\n * Dispatch custom event\n */\n private dispatchEvent(eventName: string, detail: T): void {\n const event = new CustomEvent(eventName, {\n detail,\n bubbles: true,\n composed: true,\n });\n document.dispatchEvent(event);\n }\n\n /**\n * Cleanup event listeners\n */\n cleanup(): void {\n for (const [eventName, handlers] of this.listeners) {\n for (const handler of handlers) {\n document.removeEventListener(eventName, handler);\n }\n }\n this.listeners.clear();\n info('Event coordinator cleaned up');\n }\n}\n","/**\n * Session Management Service\n *\n * Handles user session lifecycle, timeout management, and instructor mode.\n * Integrates with encrypted session storage for secure session data.\n */\n\nimport type { SessionData, SessionCache, ServiceId, ReleaseId } from '../types/contracts.js';\nimport { STORAGE_KEYS, SESSION_TIMEOUT_MS } from '../types/contracts.js';\nimport { info, warn, error } from '../utils/logger.js';\nimport { INSTRUCTOR_SHOW_ANSWERS_KEY } from '../utils/storage-helpers.js';\nimport { isSessionExpired } from '../utils/calculation-helpers.js';\nimport { endInstructorSession } from './auth/instructor-session.js';\n\n/**\n * Session Service for managing user sessions\n */\nexport class SessionService {\n /**\n * Create a new session\n *\n * @param serviceId - Student service ID\n * @param name - Student name\n * @param release - Current release ID\n * @returns Created session data\n */\n createSession(serviceId: ServiceId, name: string, release: ReleaseId): SessionData {\n const now = new Date();\n const loginTime = now.toISOString();\n const expiresAt = new Date(now.getTime() + SESSION_TIMEOUT_MS).toISOString();\n\n const session: SessionData = {\n serviceId,\n name,\n release,\n loginTime,\n lastActivity: loginTime,\n expiresAt,\n instructorUnlocked: false,\n };\n\n this.saveSession(session);\n info(`Session created for ${serviceId} (${name})`);\n\n // Emit login event\n this.emitEvent('qd:login', { serviceId, name, release, loginTime });\n\n return session;\n }\n\n /**\n * Get the current session\n *\n * @returns Session data or null if no session exists\n */\n getSession(): SessionData | null {\n try {\n const sessionData = sessionStorage.getItem(STORAGE_KEYS.SESSION);\n if (!sessionData) {\n return null;\n }\n\n const session = JSON.parse(sessionData) as SessionData;\n\n // Validate required fields\n if (!session.serviceId || !session.release || !session.expiresAt) {\n warn('Invalid session data, missing required fields');\n return null;\n }\n\n return session;\n } catch (err) {\n error('Failed to parse session data', err as Error);\n return null;\n }\n }\n\n /**\n * Update last activity time and extend session expiry\n */\n updateActivity(): void {\n const session = this.getSession();\n if (!session) {\n return;\n }\n\n const now = new Date();\n session.lastActivity = now.toISOString();\n session.expiresAt = new Date(now.getTime() + SESSION_TIMEOUT_MS).toISOString();\n\n this.saveSession(session);\n }\n\n /**\n * Check if the current session is expired\n *\n * @returns True if session is expired or doesn't exist\n */\n isExpired(): boolean {\n const session = this.getSession();\n if (!session) {\n return true;\n }\n\n return isSessionExpired(session.expiresAt);\n }\n\n /**\n * Clear the current session\n */\n clearSession(): void {\n const session = this.getSession();\n sessionStorage.removeItem(STORAGE_KEYS.SESSION);\n sessionStorage.removeItem(STORAGE_KEYS.CACHE);\n endInstructorSession();\n\n // Clear instructor-specific state (FR-001)\n sessionStorage.removeItem(INSTRUCTOR_SHOW_ANSWERS_KEY);\n\n if (session) {\n info(`Session cleared for ${session.serviceId}`);\n\n // Emit logout event\n this.emitEvent('qd:logout', {\n serviceId: session.serviceId,\n timestamp: new Date().toISOString(),\n });\n }\n }\n\n /**\n * Unlock instructor mode\n */\n unlockInstructor(): void {\n const session = this.getSession();\n if (!session) {\n return;\n }\n\n session.instructorUnlocked = true;\n session.unlockTime = new Date().toISOString();\n\n this.saveSession(session);\n\n info('Instructor mode unlocked');\n\n // Emit custom event\n this.emitEvent('qd:instructor-unlock', { timestamp: session.unlockTime });\n }\n\n /**\n * Lock instructor mode\n */\n lockInstructor(): void {\n const session = this.getSession();\n if (!session) {\n return;\n }\n\n session.instructorUnlocked = false;\n delete session.unlockTime;\n\n this.saveSession(session);\n\n info('Instructor mode locked');\n\n // Emit custom event\n this.emitEvent('qd:instructor-lock', { timestamp: new Date().toISOString() });\n }\n\n /**\n * Check if instructor mode is unlocked\n *\n * @returns True if instructor mode is unlocked\n */\n isInstructorUnlocked(): boolean {\n const session = this.getSession();\n return session?.instructorUnlocked === true;\n }\n\n /**\n * Get session cache from sessionStorage\n *\n * @returns Session cache or null if not found\n */\n getCache(): SessionCache | null {\n try {\n const cacheData = sessionStorage.getItem(STORAGE_KEYS.CACHE);\n if (!cacheData) {\n return null;\n }\n\n return JSON.parse(cacheData) as SessionCache;\n } catch (err) {\n error('Failed to parse cache data', err);\n return null;\n }\n }\n\n /**\n * Save session cache to sessionStorage\n *\n * @param cache - Cache data to save\n */\n saveCache(cache: SessionCache): void {\n try {\n sessionStorage.setItem(STORAGE_KEYS.CACHE, JSON.stringify(cache));\n } catch (err) {\n error('Failed to save cache', err);\n }\n }\n\n /**\n * Clear the session cache\n */\n clearCache(): void {\n sessionStorage.removeItem(STORAGE_KEYS.CACHE);\n }\n\n /**\n * Save session to sessionStorage\n *\n * @param session - Session data to save\n */\n private saveSession(session: SessionData): void {\n try {\n sessionStorage.setItem(STORAGE_KEYS.SESSION, JSON.stringify(session));\n } catch (err) {\n error('Failed to save session', err);\n }\n }\n\n /**\n * Emit a custom event\n *\n * @param eventName - Name of the event\n * @param detail - Event detail data\n */\n private emitEvent(eventName: string, detail: unknown): void {\n try {\n const event = new CustomEvent(eventName, { detail, bubbles: true });\n document.dispatchEvent(event);\n } catch (err) {\n error(`Failed to emit event ${eventName}`, err);\n }\n }\n}\n\n// ============================================================================\n// SINGLETON PATTERN\n// ============================================================================\n\n/**\n * Create and return a singleton instance of the session service\n */\nlet sessionInstance: SessionService | null = null;\n\nexport function getSessionService(): SessionService {\n if (!sessionInstance) {\n sessionInstance = new SessionService();\n }\n return sessionInstance;\n}\n\n/**\n * Reset the singleton instance (useful for testing)\n */\nexport function resetSessionService(): void {\n sessionInstance = null;\n}\n","/**\n * Session Coordinator\n * Manages session lifecycle and coordinates session-related events\n */\n\nimport { SessionService } from '../services/session.js';\nimport { info, warn } from '../utils/logger.js';\nimport type { SessionData } from '../types/contracts.js';\nimport { STORAGE_KEYS } from '../types/contracts.js';\n\n/**\n * Session coordinator for managing session lifecycle\n */\nexport class SessionCoordinator {\n private sessionService: SessionService;\n private expiryTimeoutId?: number;\n private activityTrackingActive = false;\n\n constructor() {\n this.sessionService = new SessionService();\n }\n\n /**\n * Initialize session coordinator\n * - Load existing session from storage\n * - Schedule expiry check\n * - Setup activity tracking\n */\n initialize(): void {\n const session = this.sessionService.getSession();\n\n if (session) {\n info(`Existing session loaded for ${session.serviceId}`);\n\n // Check if session is expired\n if (this.sessionService.isExpired()) {\n warn('Session expired, clearing');\n this.expireSession();\n return;\n }\n\n // Schedule expiry check\n this.scheduleExpiryCheck(session);\n\n // Setup activity tracking\n this.setupActivityTracking();\n } else {\n info('No existing session found');\n }\n\n // A login on this page starts a session that the checks above never saw,\n // so start the timer and activity tracking for it too\n document.addEventListener('qd:login', this.handleLogin);\n }\n\n /** Start expiry and activity tracking for a session created on this page. */\n private handleLogin = (): void => {\n const session = this.sessionService.getSession();\n if (!session) {\n return;\n }\n this.scheduleExpiryCheck(session);\n this.setupActivityTracking();\n };\n\n /**\n * End a session that timed out, leaving a marker so the login form can\n * explain why the student was logged out (SRD 013 SEC-10).\n */\n private expireSession(): void {\n sessionStorage.setItem(STORAGE_KEYS.SESSION_EXPIRED, new Date().toISOString());\n document.dispatchEvent(\n new CustomEvent('qd:session-expired', { bubbles: true, composed: true }),\n );\n this.sessionService.clearSession();\n }\n\n /**\n * Schedule expiry check based on session timeout\n */\n private scheduleExpiryCheck(session: SessionData): void {\n // Clear existing timeout\n if (this.expiryTimeoutId !== undefined) {\n window.clearTimeout(this.expiryTimeoutId);\n }\n\n // Calculate time until expiry\n const now = new Date().getTime();\n const expiresAt = new Date(session.expiresAt).getTime();\n const timeUntilExpiry = expiresAt - now;\n\n if (timeUntilExpiry <= 0) {\n // Session already expired\n this.expireSession();\n return;\n }\n\n // Schedule expiry\n this.expiryTimeoutId = window.setTimeout(() => {\n info('Session expired (timeout)');\n this.expireSession();\n }, timeUntilExpiry);\n }\n\n /**\n * Setup activity tracking to extend session on user interaction\n */\n private setupActivityTracking(): void {\n if (this.activityTrackingActive) {\n return;\n }\n this.activityTrackingActive = true;\n const activityHandler = (): void => {\n const session = this.sessionService.getSession();\n if (!session) {\n return;\n }\n\n // Update activity timestamp and extend expiry\n this.sessionService.updateActivity();\n\n // Reschedule expiry check\n const updatedSession = this.sessionService.getSession();\n if (updatedSession) {\n this.scheduleExpiryCheck(updatedSession);\n }\n };\n\n // Track common user activities\n const events = ['click', 'keydown', 'scroll', 'mousemove'];\n\n // Debounce activity updates to avoid excessive writes\n let activityDebounceTimeout: number | undefined;\n const debouncedHandler = (): void => {\n if (activityDebounceTimeout !== undefined) {\n window.clearTimeout(activityDebounceTimeout);\n }\n\n activityDebounceTimeout = window.setTimeout(() => {\n activityHandler();\n }, 5000); // Update activity at most once per 5 seconds\n };\n\n events.forEach((event) => {\n document.addEventListener(event, debouncedHandler, { passive: true });\n });\n }\n\n /**\n * Cleanup session coordinator\n */\n cleanup(): void {\n if (this.expiryTimeoutId !== undefined) {\n window.clearTimeout(this.expiryTimeoutId);\n }\n document.removeEventListener('qd:login', this.handleLogin);\n }\n\n /**\n * Get the session service instance\n */\n getSessionService(): SessionService {\n return this.sessionService;\n }\n}\n","/**\n * Styles for the component.\n *\n * Extracted from qd-login.ts to keep the component focused on behavior.\n */\n\nimport { css } from 'lit';\n\nexport const loginStyles = css`\n :host {\n display: none; /* Hidden if already logged in */\n font-family:\n system-ui,\n -apple-system,\n sans-serif;\n }\n\n :host([data-show]) {\n display: block;\n }\n\n .login-container {\n padding: 8px 12px;\n background: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n /* Wide enough to keep every control on one row, including the PIN field\n with its \"PIN (4 digits)\" placeholder. The surrounding header has\n ample horizontal space; this panel was the constraint, not the page. */\n max-width: 560px;\n }\n\n .title {\n margin: 0 0 8px 0;\n font-size: 15px;\n font-weight: 600;\n color: #333;\n }\n\n .login-form {\n display: flex;\n gap: 6px;\n align-items: flex-start;\n flex-wrap: wrap;\n }\n\n input {\n padding: 6px 10px;\n border: 1px solid #ccc;\n border-radius: 4px;\n font-size: 11px;\n width: 110px;\n min-width: 75px;\n max-width: 110px;\n }\n\n input.pin-input {\n /* Sized to show the \"PIN (4 digits)\" placeholder in full, so the field\n states its own rule rather than reading as an unexplained box. */\n width: 88px;\n min-width: 88px;\n max-width: 88px;\n text-align: center;\n letter-spacing: 1px;\n }\n\n input:focus {\n outline: none;\n border-color: #0066cc;\n box-shadow: 0 0 0 2px rgba(0, 102, 204, 0.1);\n }\n\n input:disabled {\n background-color: #f5f5f5;\n cursor: not-allowed;\n }\n\n button {\n padding: 6px 12px;\n border: none;\n border-radius: 4px;\n font-size: 11px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s;\n white-space: nowrap;\n }\n\n .login-btn {\n background: #0066cc;\n color: white;\n }\n\n .login-btn:hover:not(:disabled) {\n background: #0052a3;\n }\n\n .login-btn:disabled {\n background: #ccc;\n cursor: not-allowed;\n }\n\n .instructor-btn {\n background: #6c757d;\n color: white;\n }\n\n .instructor-btn:hover {\n background: #5a6268;\n }\n\n /*\n * Reserve the message row so typing does not make the header grow and\n * shrink (SRD 013 UX-11)\n */\n .message-slot {\n width: 100%;\n min-height: 22px;\n }\n\n input[aria-invalid='true'] {\n border-color: #d32f2f;\n }\n\n .hint-message {\n width: 100%;\n /* Padding inside the 100% width, so long messages stay in the panel */\n box-sizing: border-box;\n color: #555;\n font-size: 11px;\n margin-top: 3px;\n padding: 4px 8px;\n background: #f1f3f4;\n border-radius: 3px;\n border-left: 3px solid #9aa0a6;\n }\n\n .notice-message {\n color: #0b4f8a;\n font-size: 11px;\n margin: 0 0 6px;\n padding: 4px 8px;\n background: #e8f1fb;\n border-radius: 3px;\n border-left: 3px solid #1d6fb8;\n }\n\n .error-message {\n width: 100%;\n /* Padding inside the 100% width, so long messages stay in the panel */\n box-sizing: border-box;\n color: #d32f2f;\n font-size: 11px;\n margin-top: 3px;\n padding: 4px 8px;\n background: #ffebee;\n border-radius: 3px;\n border-left: 3px solid #d32f2f;\n }\n\n .lockout-message {\n width: 100%;\n /* Padding inside the 100% width, so long messages stay in the panel */\n box-sizing: border-box;\n color: #f57c00;\n font-size: 11px;\n margin-top: 3px;\n padding: 4px 8px;\n background: #fff3e0;\n border-radius: 3px;\n border-left: 3px solid #f57c00;\n }\n\n /* Responsive */\n @media (max-width: 600px) {\n .login-form {\n flex-direction: column;\n }\n\n input,\n button {\n width: 100%;\n }\n`;\n","/**\n * Schema Migration Service\n *\n * Handles lazy migration of student records from v1 to v2.\n * Migration occurs on first login for existing students.\n */\n\nimport type { StudentRecord } from '../../types/contracts.js';\nimport { SCHEMA_VERSION, PIN_SCHEMA_VERSION } from '../../types/contracts.js';\nimport type { PinCredential } from '../auth/pin-service.js';\n\n/**\n * Check if a student record needs migration to v2\n *\n * @param record - Student record to check\n * @returns true if record needs PIN migration\n */\nexport function needsMigration(record: StudentRecord): boolean {\n // Compare with the PIN-era schema, not the current one: a later schema bump\n // must never send PIN-bearing records back through PIN setup, which would\n // let whoever logs in next choose a new PIN for someone else's account.\n return record.schema < PIN_SCHEMA_VERSION;\n}\n\n/**\n * Check if a student has a PIN set\n *\n * @param record - Student record to check\n * @returns true if student has a PIN hash\n */\nexport function hasPinSet(record: StudentRecord): boolean {\n return Boolean(record.pinHash && record.pinHash.length > 0);\n}\n\n/**\n * Migrate a student record from v1 to v2\n *\n * Updates schema version but does NOT set PIN - that happens\n * after the student creates their PIN.\n *\n * @param record - Student record to migrate\n * @returns Updated record with v2 schema (pinHash empty)\n */\nexport function migrateToV2(record: StudentRecord): StudentRecord {\n if (record.schema >= PIN_SCHEMA_VERSION) {\n return record;\n }\n\n return {\n ...record,\n schema: SCHEMA_VERSION,\n // PIN fields left empty - student will create PIN on login\n pinHash: '',\n pinCreatedAt: undefined,\n pinResetAt: undefined,\n };\n}\n\n/**\n * Complete PIN setup for a migrated or new student\n *\n * @param record - Student record\n * @param pinHash - Hashed PIN\n * @returns Updated record with PIN set\n */\nexport function completePinSetup(record: StudentRecord, credential: PinCredential): StudentRecord {\n return {\n ...record,\n schema: SCHEMA_VERSION,\n ...credential,\n pinCreatedAt: new Date().toISOString(),\n };\n}\n\n/**\n * Replace a legacy PIN verifier with a salted KDF one (SRD 013 SEC-07).\n *\n * Called after the student's PIN has been verified against the legacy hash.\n * Keeps `pinCreatedAt`, since the PIN itself has not changed.\n *\n * @param record - Student record holding a legacy SHA-256 PIN hash\n * @param credential - New salted verifier for the same PIN\n * @returns Updated record stamped with the current schema\n */\nexport function upgradePinCredential(\n record: StudentRecord,\n credential: PinCredential,\n): StudentRecord {\n return { ...record, schema: SCHEMA_VERSION, ...credential };\n}\n\n/**\n * Reset a student's PIN (instructor action)\n *\n * @param record - Student record\n * @returns Updated record with PIN cleared\n */\nexport function resetPin(record: StudentRecord): StudentRecord {\n const { pinSalt: _salt, pinIterations: _iterations, pinKdf: _kdf, ...rest } = record;\n return {\n ...rest,\n pinHash: '',\n pinResetAt: new Date().toISOString(),\n };\n}\n","/**\n * PIN Authentication Service\n *\n * Provides secure PIN hashing and verification using Web Crypto API.\n * Implements constant-time comparison to prevent timing attacks.\n */\n\nimport { PIN_CONSTANTS } from '../../types/contracts.js';\nimport type { StudentRecord } from '../../types/contracts.js';\n\n/**\n * Salted PIN verifier as stored on a student record (SRD 013 SEC-06).\n */\nexport interface PinCredential {\n /** Hex PBKDF2-SHA-256 output (32 bytes) */\n pinHash: string;\n /** Hex random salt */\n pinSalt: string;\n /** Iteration count used */\n pinIterations: number;\n /** KDF identifier */\n pinKdf: 'pbkdf2-sha256';\n}\n\n/** Result of checking a PIN against a stored record. */\nexport interface StoredPinCheck {\n /** Whether the PIN matched */\n valid: boolean;\n /** Present when the record held a legacy hash: the salted verifier to store instead */\n upgrade?: PinCredential;\n}\n\n/** Hex-encode bytes. */\nfunction toHex(bytes: Uint8Array): string {\n return Array.from(bytes)\n .map((b) => b.toString(16).padStart(2, '0'))\n .join('');\n}\n\n/** Decode a hex string to bytes. */\nfunction fromHex(hex: string): Uint8Array {\n const out = new Uint8Array(new ArrayBuffer(hex.length / 2));\n for (let i = 0; i < out.length; i++) {\n out[i] = parseInt(hex.substring(i * 2, i * 2 + 2), 16);\n }\n return out;\n}\n\n/**\n * Derive a PIN verifier with PBKDF2-SHA-256.\n *\n * @param pin - 4-digit PIN\n * @param saltHex - Hex-encoded salt\n * @param iterations - PBKDF2 iteration count\n * @returns Hex-encoded 32-byte derived key\n */\nexport async function derivePinHash(\n pin: string,\n saltHex: string,\n iterations: number,\n): Promise {\n const key = await crypto.subtle.importKey('raw', new TextEncoder().encode(pin), 'PBKDF2', false, [\n 'deriveBits',\n ]);\n const bits = await crypto.subtle.deriveBits(\n { name: 'PBKDF2', hash: 'SHA-256', salt: fromHex(saltHex), iterations },\n key,\n 256,\n );\n return toHex(new Uint8Array(bits));\n}\n\n/**\n * Create a new salted verifier for a PIN.\n *\n * A 4-digit PIN has only 10,000 values, so this cannot make a PIN secret from\n * someone holding the database. The per-student salt and iteration count turn\n * a lookup that took milliseconds into minutes of work per PIN.\n *\n * @param pin - 4-digit PIN\n * @param iterations - Iteration count (defaults to the current policy)\n * @returns Credential fields to store on the student record\n */\nexport async function createPinCredential(\n pin: string,\n iterations: number = PIN_CONSTANTS.KDF_ITERATIONS,\n): Promise {\n const salt = toHex(crypto.getRandomValues(new Uint8Array(PIN_CONSTANTS.SALT_BYTES)));\n return {\n pinHash: await derivePinHash(pin, salt, iterations),\n pinSalt: salt,\n pinIterations: iterations,\n pinKdf: 'pbkdf2-sha256',\n };\n}\n\n/**\n * Check a PIN against whatever verifier a student record holds.\n *\n * Salted records are checked with PBKDF2. Legacy records (unsalted SHA-256)\n * still verify, and a match returns a salted replacement so the caller can\n * upgrade the record (SRD 013 SEC-07).\n *\n * @param pin - PIN the student typed\n * @param record - Stored PIN fields\n * @returns Whether it matched, plus an upgrade credential for legacy records\n */\nexport async function verifyStoredPin(\n pin: string,\n record: Pick,\n): Promise {\n const stored = record.pinHash ?? '';\n if (!stored) {\n return { valid: false };\n }\n\n if (record.pinKdf === 'pbkdf2-sha256' && record.pinSalt && record.pinIterations) {\n const derived = await derivePinHash(pin, record.pinSalt, record.pinIterations);\n return { valid: constantTimeCompare(derived, stored) };\n }\n\n if (!(await verifyPin(pin, stored))) {\n return { valid: false };\n }\n return { valid: true, upgrade: await createPinCredential(pin) };\n}\n\n/**\n * PIN validation result\n */\nexport interface PinValidationResult {\n valid: boolean;\n error?: string;\n}\n\n/**\n * Hash a PIN using unsalted SHA-256 (legacy v2 verifier).\n *\n * Kept only to verify records written before SRD 013. New verifiers come from\n * {@link createPinCredential}.\n *\n * @param pin - 4-digit PIN to hash\n * @returns Promise resolving to hex-encoded hash\n */\nexport async function hashPin(pin: string): Promise {\n const encoder = new TextEncoder();\n const data = encoder.encode(pin);\n const hashBuffer = await crypto.subtle.digest('SHA-256', data);\n const hashArray = Array.from(new Uint8Array(hashBuffer));\n return hashArray.map((b) => b.toString(16).padStart(2, '0')).join('');\n}\n\n/**\n * Verify a PIN against a stored hash\n *\n * Uses constant-time comparison to prevent timing attacks.\n *\n * @param pin - PIN to verify\n * @param storedHash - Stored SHA-256 hash\n * @returns Promise resolving to true if PIN matches\n */\nexport async function verifyPin(pin: string, storedHash: string): Promise {\n const inputHash = await hashPin(pin);\n return constantTimeCompare(inputHash, storedHash);\n}\n\n/**\n * Constant-time string comparison\n *\n * Compares strings in constant time to prevent timing attacks.\n * XORs each character and accumulates differences.\n *\n * @param a - First string\n * @param b - Second string\n * @returns true if strings are equal\n */\nfunction constantTimeCompare(a: string, b: string): boolean {\n if (a.length !== b.length) {\n return false;\n }\n\n let result = 0;\n for (let i = 0; i < a.length; i++) {\n result |= a.charCodeAt(i) ^ b.charCodeAt(i);\n }\n return result === 0;\n}\n\n/**\n * Validate PIN format\n *\n * @param pin - PIN to validate\n * @returns Validation result with error message if invalid\n */\nexport function validatePinFormat(pin: string): PinValidationResult {\n if (!pin) {\n return { valid: false, error: 'PIN is required' };\n }\n\n if (pin.length !== PIN_CONSTANTS.PIN_LENGTH) {\n return { valid: false, error: `PIN must be exactly ${PIN_CONSTANTS.PIN_LENGTH} digits` };\n }\n\n if (!/^\\d+$/.test(pin)) {\n return { valid: false, error: 'PIN must contain only digits' };\n }\n\n return { valid: true };\n}\n\n/**\n * Validate PIN confirmation matches\n *\n * @param pin - Original PIN\n * @param confirm - Confirmation PIN\n * @returns Validation result with error message if mismatch\n */\nexport function validatePinConfirmation(pin: string, confirm: string): PinValidationResult {\n if (pin !== confirm) {\n return { valid: false, error: 'PINs do not match' };\n }\n return { valid: true };\n}\n","/**\n * Rate Limiter Service for PIN Authentication\n *\n * Tracks failed PIN attempts using sessionStorage.\n * Implements lockout after 3 failed attempts for 30 seconds.\n */\n\nimport type { PinAttemptState, ServiceId } from '../../types/contracts.js';\nimport { PIN_CONSTANTS, STORAGE_KEYS } from '../../types/contracts.js';\nimport { info, warn, maskServiceId } from '../../utils/logger.js';\n\n/**\n * Get the storage key for a service ID's PIN attempts\n */\nfunction getAttemptKey(serviceId: ServiceId): string {\n return `${STORAGE_KEYS.PIN_ATTEMPTS}:${serviceId}`;\n}\n\n/**\n * Get the current PIN attempt state for a service ID\n *\n * @param serviceId - Student service ID\n * @returns Current attempt state or null if none\n */\nexport function getAttemptState(serviceId: ServiceId): PinAttemptState | null {\n const key = getAttemptKey(serviceId);\n const data = sessionStorage.getItem(key);\n if (!data) {\n return null;\n }\n try {\n return JSON.parse(data) as PinAttemptState;\n } catch {\n return null;\n }\n}\n\n/**\n * Check if a service ID is currently locked out\n *\n * @param serviceId - Student service ID\n * @returns Object with isLocked status and remainingMs if locked\n */\nexport function checkLockout(serviceId: ServiceId): { isLocked: boolean; remainingMs: number } {\n const state = getAttemptState(serviceId);\n if (!state || !state.lockoutUntil) {\n return { isLocked: false, remainingMs: 0 };\n }\n\n const lockoutTime = new Date(state.lockoutUntil).getTime();\n const now = Date.now();\n\n if (lockoutTime > now) {\n return { isLocked: true, remainingMs: lockoutTime - now };\n }\n\n // Lockout expired, clear state\n clearAttemptState(serviceId);\n return { isLocked: false, remainingMs: 0 };\n}\n\n/**\n * Record a failed PIN attempt\n *\n * Increments attempt counter and sets lockout if threshold reached.\n *\n * @param serviceId - Student service ID\n * @returns Updated attempt state\n */\nexport function recordFailedAttempt(serviceId: ServiceId): PinAttemptState {\n const now = new Date().toISOString();\n let state = getAttemptState(serviceId);\n\n if (!state) {\n state = {\n serviceId,\n attempts: 0,\n lockoutUntil: null,\n lastAttempt: now,\n };\n }\n\n state.attempts += 1;\n state.lastAttempt = now;\n\n // Check if lockout threshold reached\n if (state.attempts >= PIN_CONSTANTS.MAX_ATTEMPTS) {\n const lockoutTime = new Date(Date.now() + PIN_CONSTANTS.LOCKOUT_MS);\n state.lockoutUntil = lockoutTime.toISOString();\n warn(\n `PIN lockout triggered for ${maskServiceId(serviceId)} after ${state.attempts} failed attempts`,\n );\n } else {\n info(\n `Failed PIN attempt ${state.attempts}/${PIN_CONSTANTS.MAX_ATTEMPTS} for ${maskServiceId(serviceId)}`,\n );\n }\n\n // Save to sessionStorage\n const key = getAttemptKey(serviceId);\n sessionStorage.setItem(key, JSON.stringify(state));\n\n return state;\n}\n\n/**\n * Clear PIN attempt state on successful login\n *\n * @param serviceId - Student service ID\n */\nexport function clearAttemptState(serviceId: ServiceId): void {\n const state = getAttemptState(serviceId);\n if (state && state.attempts > 0) {\n info(\n `Cleared ${state.attempts} failed PIN attempts for ${maskServiceId(serviceId)} on successful login`,\n );\n }\n const key = getAttemptKey(serviceId);\n sessionStorage.removeItem(key);\n}\n\n/**\n * Get remaining attempts before lockout\n *\n * @param serviceId - Student service ID\n * @returns Number of attempts remaining (0 if locked out)\n */\nexport function getRemainingAttempts(serviceId: ServiceId): number {\n const state = getAttemptState(serviceId);\n if (!state) {\n return PIN_CONSTANTS.MAX_ATTEMPTS;\n }\n\n const lockout = checkLockout(serviceId);\n if (lockout.isLocked) {\n return 0;\n }\n\n return Math.max(0, PIN_CONSTANTS.MAX_ATTEMPTS - state.attempts);\n}\n","/**\n * Student authentication service.\n *\n * The single source of student login logic. Previously the ~100-line login\n * flow (lockout check → storage init → student lookup → PIN setup/verify →\n * rate-limiting → new-student creation) was duplicated verbatim in\n * `qd-login.ts` across `handleStudentLogin` and `retryLoginAfterMigration`.\n * Both paths now delegate to {@link AuthService}, which performs all storage,\n * crypto, and rate-limit calls and returns a discriminated {@link LoginResult}.\n *\n * The component is left to translate the result into session creation, custom\n * events, and UI state — it performs no storage/crypto/rate-limit work itself\n * (contracts/module-boundaries.md → Auth).\n */\n\nimport { SCHEMA_VERSION } from '../../types/contracts.js';\nimport type { StudentRecord } from '../../types/contracts.js';\nimport { getStorageAdapter } from '../storage/indexeddb.js';\nimport {\n needsMigration,\n hasPinSet,\n completePinSetup,\n upgradePinCredential,\n} from '../storage/migration.js';\nimport { createPinCredential, verifyStoredPin } from './pin-service.js';\nimport {\n checkLockout,\n recordFailedAttempt,\n clearAttemptState,\n getRemainingAttempts,\n} from './rate-limiter.js';\nimport { StorageFormatError } from '../storage/adapter-utils.js';\n\n/**\n * Discriminated result of a student login attempt.\n *\n * - `pin-created` — a new PIN was stored (new student, migrated student, or a\n * student who had no PIN). The caller should surface the \"PIN stored\"\n * confirmation and complete the login.\n * - `pin-verified` — an existing student's PIN matched. The caller completes\n * the login without a confirmation dialog.\n * - `lockout` — the account is (or just became) locked; `lockoutMs` is the\n * remaining lockout window in milliseconds.\n * - `bad-pin` — the PIN was wrong but the account is not yet locked;\n * `remaining` is the number of attempts left.\n * - `needs-migration` — stored data is in an incompatible format and must be\n * migrated before login can proceed.\n * - `error` — login failed for another reason; `message` is user-facing.\n */\nexport type LoginResult =\n | { kind: 'pin-created'; serviceId: string; name: string; release: string }\n | { kind: 'pin-verified'; serviceId: string; name: string; release: string }\n | { kind: 'lockout'; lockoutMs: number }\n | { kind: 'bad-pin'; remaining: number }\n | { kind: 'needs-migration'; error: StorageFormatError }\n | { kind: 'error'; message: string };\n\n/**\n * Inputs required to authenticate a student.\n */\nexport interface StudentLoginInput {\n serviceId: string;\n name: string;\n pin: string;\n release: string;\n dbName: string;\n}\n\ninterface RunOptions {\n /** Whether to enforce the lockout window before attempting login. */\n checkLock: boolean;\n /** Surface a {@link StorageFormatError} as `needs-migration` (initial login only). */\n surfaceMigration: boolean;\n /** User-facing message used when an unexpected error occurs. */\n errorMessage: string;\n /** Console label used when logging an unexpected error. */\n errorLabel: string;\n}\n\n/**\n * Service encapsulating all student authentication logic.\n */\nexport class AuthService {\n /**\n * Authenticate a student (initial login path).\n *\n * Enforces the lockout window and surfaces storage-format mismatches as\n * `needs-migration` so the caller can offer migration.\n */\n loginStudent(input: StudentLoginInput): Promise {\n return this.runLogin(input, {\n checkLock: true,\n surfaceMigration: true,\n errorMessage: 'Login failed. Please try again.',\n errorLabel: 'Student login error:',\n });\n }\n\n /**\n * Authenticate a student immediately after a successful data migration.\n *\n * Skips the lockout pre-check (the user just completed migration) and treats\n * any remaining error as a generic post-migration failure.\n */\n retryAfterMigration(input: StudentLoginInput): Promise {\n return this.runLogin(input, {\n checkLock: false,\n surfaceMigration: false,\n errorMessage: 'Login failed after migration. Please try again.',\n errorLabel: 'Post-migration login error:',\n });\n }\n\n /**\n * Whether a service ID already has an account with a usable PIN.\n *\n * Used by the login form to label its submit button \"Login\" or \"Create\", so\n * a first-time user is told they are about to create an account rather than\n * guessing why their credentials are not accepted. Accounts are keyed on\n * `{release, serviceId}`, so the name is not part of this check.\n *\n * Never throws: any storage problem resolves to `null` (\"unknown\"), leaving\n * the form to fall back to its neutral label rather than blocking the user.\n *\n * @param serviceId - Service ID being entered\n * @param release - Release the account would belong to\n * @param dbName - IndexedDB database name from page config\n * @returns true when a PIN-bearing record exists, false when it does not,\n * null when the lookup could not be completed\n */\n async isRegistered(serviceId: string, release: string, dbName: string): Promise {\n try {\n const storage = getStorageAdapter(dbName);\n await storage.init();\n const existing = await storage.getStudent(release, serviceId);\n if (!existing) {\n return false;\n }\n // A record awaiting PIN setup still needs the create-and-confirm flow\n return hasPinSet(existing) && !needsMigration(existing);\n } catch {\n return null;\n }\n }\n\n /**\n * Shared login implementation for both the initial and post-migration paths.\n */\n private async runLogin(input: StudentLoginInput, opts: RunOptions): Promise {\n const { serviceId, name, pin, release, dbName } = input;\n\n if (opts.checkLock) {\n const lockout = checkLockout(serviceId);\n if (lockout.isLocked) {\n return { kind: 'lockout', lockoutMs: lockout.remainingMs };\n }\n }\n\n try {\n const storage = getStorageAdapter(dbName);\n await storage.init();\n const existingStudent = await storage.getStudent(release, serviceId);\n\n if (existingStudent) {\n // Existing student needing PIN setup (legacy schema or never set a PIN)\n if (needsMigration(existingStudent) || !hasPinSet(existingStudent)) {\n const credential = await createPinCredential(pin);\n const updatedStudent = completePinSetup(existingStudent, credential);\n await storage.saveStudent(updatedStudent);\n return { kind: 'pin-created', serviceId, name, release };\n }\n\n // Existing student with a PIN — verify it\n const check = await verifyStoredPin(pin, existingStudent);\n if (!check.valid) {\n const state = recordFailedAttempt(serviceId);\n if (state.lockoutUntil) {\n const lockoutMs = new Date(state.lockoutUntil).getTime() - Date.now();\n return { kind: 'lockout', lockoutMs };\n }\n return { kind: 'bad-pin', remaining: getRemainingAttempts(serviceId) };\n }\n\n clearAttemptState(serviceId);\n // Legacy unsalted hash: replace it now that we know the PIN (SEC-07)\n if (check.upgrade) {\n await storage.saveStudent(upgradePinCredential(existingStudent, check.upgrade));\n }\n return { kind: 'pin-verified', serviceId, name, release };\n }\n\n // New student — derive a salted PIN verifier and create the record\n const credential = await createPinCredential(pin);\n const newStudent: StudentRecord = {\n schema: SCHEMA_VERSION,\n docId: '',\n release,\n serviceId,\n name,\n attempted: 0,\n correct: 0,\n updated: new Date().toISOString(),\n pages: {},\n ...credential,\n pinCreatedAt: new Date().toISOString(),\n };\n await storage.saveStudent(newStudent);\n return { kind: 'pin-created', serviceId, name, release };\n } catch (err) {\n if (opts.surfaceMigration && err instanceof StorageFormatError) {\n return { kind: 'needs-migration', error: err };\n }\n console.error(opts.errorLabel, err);\n return { kind: 'error', message: opts.errorMessage };\n }\n }\n}\n","/**\n * Build Info Component\n *\n * Displays a small info icon (i) that shows build information on hover.\n * Tooltip shows: app name and build date.\n *\n * @element qd-build-info\n *\n * @example\n * ```html\n * \n * ```\n */\n\nimport { LitElement, html, css } from 'lit';\nimport { customElement } from 'lit/decorators.js';\n\n// Type declaration for Vite build-time constant\ndeclare const __BUILD_DATE__: string;\n\n/**\n * Build info component with tooltip\n */\n@customElement('qd-build-info')\nexport class QdBuildInfo extends LitElement {\n static styles = css`\n :host {\n display: inline-block;\n position: relative;\n }\n\n .info-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n border-radius: 50%;\n background: #6c757d;\n color: white;\n font-size: 10px;\n font-weight: bold;\n font-style: italic;\n font-family: Georgia, serif;\n cursor: help;\n user-select: none;\n }\n\n .info-icon:hover {\n background: #5a6268;\n }\n\n .tooltip {\n position: absolute;\n top: 50%;\n right: 100%;\n transform: translateY(-50%);\n margin-right: 8px;\n padding: 8px 12px;\n background: #333;\n color: white;\n font-size: 11px;\n font-style: normal;\n font-family:\n system-ui,\n -apple-system,\n sans-serif;\n border-radius: 4px;\n white-space: nowrap;\n opacity: 0;\n visibility: hidden;\n transition:\n opacity 0.2s,\n visibility 0.2s;\n z-index: 1000;\n pointer-events: none;\n }\n\n .tooltip::after {\n content: '';\n position: absolute;\n top: 50%;\n left: 100%;\n transform: translateY(-50%);\n border: 5px solid transparent;\n border-left-color: #333;\n }\n\n .info-icon:hover + .tooltip,\n .info-icon:focus + .tooltip {\n opacity: 1;\n visibility: visible;\n }\n\n .tooltip-line {\n display: block;\n line-height: 1.4;\n }\n `;\n\n render() {\n const buildDate = typeof __BUILD_DATE__ !== 'undefined' ? __BUILD_DATE__ : 'Development';\n\n return html`\n i\n
                                          \n BrowserTest, from Deep Blue C Ltd\n Built ${buildDate}\n
                                          \n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'qd-build-info': QdBuildInfo;\n }\n}\n","/**\n * Base Modal Component\n *\n * Reusable modal with backdrop, keyboard handling, and focus trap.\n * Uses fixed positioning with high z-index for proper stacking.\n * Used as base for scores modal, password modal, and confirm dialogs.\n *\n * @element qd-modal\n * @fires {CustomEvent} qd:modal-close - Emitted when modal closes via Escape or backdrop click\n *\n * @slot - Default slot for modal content\n * @slot header - Optional header slot for modal title\n *\n * Feature: 007-lit-component-refactor\n */\n\nimport { LitElement, html, css } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\n// Track currently open modal for collision handling\n// Using globalThis to ensure state persists across module re-imports in test environments\nconst MODAL_STATE_KEY = '__qdModalCurrentRef__';\n\nfunction getCurrentModal(): QdModal | null {\n return ((globalThis as Record)[MODAL_STATE_KEY] as QdModal) ?? null;\n}\n\nfunction setCurrentModal(modal: QdModal | null): void {\n (globalThis as Record)[MODAL_STATE_KEY] = modal;\n}\n\n/**\n * Base modal component with common modal behavior\n * Moves entire element to document.body when open to escape stacking context issues\n */\n@customElement('qd-modal')\nexport class QdModal extends LitElement {\n static override styles = css`\n :host {\n display: contents;\n }\n\n .backdrop {\n display: none;\n }\n\n :host([open]) .backdrop {\n display: flex;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n align-items: center;\n justify-content: center;\n z-index: 99999;\n font-family:\n system-ui,\n -apple-system,\n sans-serif;\n animation: qd-modal-fadeIn 0.15s ease-out;\n }\n\n @keyframes qd-modal-fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n .content {\n background: white;\n border-radius: 8px;\n box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n max-width: 90vw;\n max-height: 90vh;\n overflow: auto;\n animation: qd-modal-slideIn 0.15s ease-out;\n }\n\n @keyframes qd-modal-slideIn {\n from {\n transform: translateY(-20px);\n opacity: 0;\n }\n to {\n transform: translateY(0);\n opacity: 1;\n }\n }\n\n .header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px;\n border-bottom: 1px solid #eee;\n font-weight: 600;\n font-size: 18px;\n }\n\n .header ::slotted(*) {\n margin: 0;\n }\n\n .close-button {\n background: none;\n border: none;\n cursor: pointer;\n padding: 4px 8px;\n font-size: 20px;\n color: #666;\n line-height: 1;\n border-radius: 4px;\n transition:\n background-color 0.2s,\n color 0.2s;\n margin-left: auto;\n }\n\n .close-button:hover {\n background: #f0f0f0;\n color: #333;\n }\n\n .close-button:focus {\n outline: 2px solid #0066cc;\n outline-offset: 2px;\n }\n\n .body {\n padding: 20px;\n }\n `;\n\n /**\n * Whether the modal is open\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n /**\n * Whether the modal can be closed via Escape/backdrop click\n */\n @property({ type: Boolean })\n closable = true;\n\n /**\n * Previously focused element (for focus restoration)\n */\n private previouslyFocused: Element | null = null;\n\n /**\n * Original parent element (for restoration when closing)\n */\n private originalParent: ParentNode | null = null;\n\n /**\n * Original next sibling (to restore position in DOM)\n */\n private originalNextSibling: Node | null = null;\n\n /**\n * Whether we're currently in body (to prevent double-moves)\n */\n private isInBody = false;\n\n connectedCallback() {\n super.connectedCallback();\n document.addEventListener('keydown', this.handleKeyDown);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n document.removeEventListener('keydown', this.handleKeyDown);\n\n // Clean up if this was the open modal\n // But NOT if we're just moving to body (isInBody will be true during that move)\n if (getCurrentModal() === this && !this.isInBody) {\n setCurrentModal(null);\n }\n }\n\n override updated(changedProperties: Map) {\n if (changedProperties.has('open')) {\n if (this.open) {\n this.handleOpen();\n } else {\n this.handleClose();\n }\n }\n }\n\n /**\n * Move this element to document.body to escape stacking contexts\n */\n private moveToBody(): void {\n if (this.isInBody) return;\n\n // Store original location for restoration\n this.originalParent = this.parentNode;\n this.originalNextSibling = this.nextSibling;\n\n // Set flag BEFORE move so disconnectedCallback knows we're just relocating\n this.isInBody = true;\n\n // Move to body\n document.body.appendChild(this);\n }\n\n /**\n * Restore this element to its original position in the DOM\n */\n private restorePosition(): void {\n if (!this.isInBody || !this.originalParent) return;\n\n // Restore to original position\n if (this.originalNextSibling) {\n this.originalParent.insertBefore(this, this.originalNextSibling);\n } else {\n this.originalParent.appendChild(this);\n }\n\n this.originalParent = null;\n this.originalNextSibling = null;\n this.isInBody = false;\n }\n\n override render() {\n return html`\n
                                          \n
                                          \n
                                          \n \n ${this.closable\n ? html`\n ×\n `\n : ''}\n
                                          \n
                                          \n \n
                                          \n
                                          \n
                                          \n `;\n }\n\n /**\n * Open the modal\n */\n show() {\n this.open = true;\n }\n\n /**\n * Close the modal\n */\n close() {\n this.open = false;\n }\n\n /**\n * Handle modal opening\n */\n private handleOpen() {\n // Modal collision: close any existing open modal\n const currentModal = getCurrentModal();\n if (currentModal && currentModal !== this) {\n currentModal.close();\n }\n setCurrentModal(this);\n\n // Store currently focused element for restoration\n this.previouslyFocused = document.activeElement;\n\n // Move element to body to escape stacking contexts\n this.moveToBody();\n\n // Focus first element after render\n requestAnimationFrame(() => {\n this.focusFirstElement();\n });\n }\n\n /**\n * Handle modal closing\n */\n private handleClose() {\n if (getCurrentModal() === this) {\n setCurrentModal(null);\n }\n\n // Restore element to original position\n this.restorePosition();\n\n // Restore focus\n if (this.previouslyFocused instanceof HTMLElement) {\n this.previouslyFocused.focus();\n }\n }\n\n /**\n * Focus the first focusable element in the modal\n */\n private focusFirstElement() {\n const content = this.shadowRoot?.querySelector('.content');\n if (!content) return;\n\n // Check slotted content for focusable elements\n const slot = this.shadowRoot?.querySelector('slot:not([name])') as HTMLSlotElement;\n if (slot) {\n const assignedElements = slot.assignedElements({ flatten: true });\n for (const el of assignedElements) {\n const focusable = el.querySelector(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])',\n );\n if (focusable) {\n focusable.focus();\n return;\n }\n // Check if element itself is focusable\n if (\n el instanceof HTMLElement &&\n el.matches('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])')\n ) {\n el.focus();\n return;\n }\n }\n }\n\n // Fall back to close button\n const closeBtn = this.shadowRoot?.querySelector('.close-button');\n if (closeBtn) {\n closeBtn.focus();\n }\n }\n\n /**\n * Handle keyboard events\n */\n private handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape' && this.open && this.closable) {\n this.emitCloseEvent();\n this.close();\n }\n };\n\n /**\n * Handle backdrop click\n */\n private handleBackdropClick = () => {\n if (this.closable) {\n this.emitCloseEvent();\n this.close();\n }\n };\n\n /**\n * Handle close button click\n */\n private handleCloseClick = () => {\n this.emitCloseEvent();\n this.close();\n };\n\n /**\n * Stop propagation for content clicks\n */\n private stopPropagation = (event: Event) => {\n event.stopPropagation();\n };\n\n /**\n * Emit close event\n */\n private emitCloseEvent() {\n const event = new CustomEvent('qd:modal-close', {\n bubbles: true,\n composed: true,\n });\n this.dispatchEvent(event);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'qd-modal': QdModal;\n }\n}\n","/**\n * Password modal component\n *\n * Reusable password entry modal using qd-modal base.\n * Used by qd-login for instructor authentication.\n *\n * Feature: 007-lit-component-refactor\n *\n * @element qd-password-modal\n * @fires {CustomEvent<{password: string}>} qd:password-submit - Emitted on form submission\n * @fires {CustomEvent} close - Emitted when modal closes\n */\n\nimport { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, state, query } from 'lit/decorators.js';\nimport './qd-modal.js';\n\n@customElement('qd-password-modal')\nexport class QdPasswordModal extends LitElement {\n static override styles = css`\n :host {\n display: contents;\n }\n\n .password-form {\n display: flex;\n flex-direction: column;\n gap: 16px;\n padding: 8px 0;\n }\n\n .form-field {\n display: flex;\n flex-direction: column;\n gap: 4px;\n }\n\n label {\n font-size: 13px;\n font-weight: 500;\n color: #333;\n }\n\n input[type='password'] {\n padding: 8px 12px;\n border: 1px solid #ccc;\n border-radius: 4px;\n font-size: 14px;\n width: 100%;\n box-sizing: border-box;\n }\n\n input[type='password']:focus {\n outline: none;\n border-color: #0066cc;\n box-shadow: 0 0 0 2px rgba(0, 102, 204, 0.1);\n }\n\n .error-message {\n color: #d32f2f;\n font-size: 12px;\n padding: 8px;\n background: #ffebee;\n border-radius: 4px;\n border-left: 3px solid #d32f2f;\n }\n\n .button-row {\n display: flex;\n gap: 8px;\n justify-content: flex-end;\n margin-top: 8px;\n }\n\n button {\n padding: 8px 16px;\n border: none;\n border-radius: 4px;\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n transition: background-color 0.2s;\n }\n\n button[type='submit'] {\n background: #0066cc;\n color: white;\n }\n\n button[type='submit']:hover {\n background: #0052a3;\n }\n\n button[type='button'] {\n background: #e0e0e0;\n color: #333;\n }\n\n button[type='button']:hover {\n background: #d0d0d0;\n }\n `;\n\n /**\n * Whether modal is open\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n /**\n * Modal title\n */\n @property({ type: String })\n title = 'Enter Password';\n\n /**\n * Error message to display\n */\n @property({ type: String })\n error = '';\n\n /**\n * Internal password value\n */\n @state()\n private password = '';\n\n /**\n * Reference to password input\n */\n @query('input[type=\"password\"]')\n private passwordInput!: HTMLInputElement;\n\n /**\n * Show the modal\n */\n show(): void {\n this.open = true;\n this.password = '';\n this.error = '';\n }\n\n /**\n * Close the modal\n */\n close(): void {\n this.open = false;\n this.password = '';\n this.error = '';\n this.dispatchEvent(new CustomEvent('close', { bubbles: true, composed: true }));\n }\n\n /**\n * Handle modal close from qd-modal\n */\n private handleModalClose = (): void => {\n this.close();\n };\n\n /**\n * Handle password input\n */\n private handleInput = (e: Event): void => {\n const input = e.target as HTMLInputElement;\n this.password = input.value;\n // Clear error on input\n if (this.error) {\n this.error = '';\n }\n };\n\n /**\n * Handle form submission\n */\n private handleSubmit = (e: Event): void => {\n e.preventDefault();\n\n if (!this.password.trim()) {\n return;\n }\n\n this.dispatchEvent(\n new CustomEvent('qd:password-submit', {\n detail: { password: this.password },\n bubbles: true,\n composed: true,\n }),\n );\n };\n\n /**\n * Handle cancel button\n */\n private handleCancel = (): void => {\n this.close();\n };\n\n /**\n * Focus password input when modal opens\n */\n override updated(changedProps: Map): void {\n if (changedProps.has('open') && this.open) {\n // Reset state when opening\n this.password = '';\n // Focus input after render\n void this.updateComplete.then(() => {\n this.passwordInput?.focus();\n });\n }\n }\n\n override render() {\n // Always render qd-modal so it can properly restore position when closing\n // Only render form content when open\n return html`\n \n ${this.title}\n\n ${this.open\n ? html`\n
                                          \n
                                          \n \n \n
                                          \n\n ${this.error ? html`
                                          ${this.error}
                                          ` : ''}\n\n
                                          \n \n \n
                                          \n
                                          \n `\n : nothing}\n
                                          \n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'qd-password-modal': QdPasswordModal;\n }\n}\n","/**\n * Instructor Login Component\n *\n * Encapsulates the instructor authentication flow: the \"Instructor\" button, the\n * password modal, and verification. Extracted from `qd-login` so the login\n * component only owns the student flow.\n *\n * @element qd-instructor-login\n * @fires {CustomEvent<{serviceId:'INSTRUCTOR', name:'Instructor', release:string, role:'instructor'}>} qd:login - On successful instructor auth\n */\n\nimport { LitElement, html, css } from 'lit';\nimport { customElement, state, property } from 'lit/decorators.js';\nimport { PIN_CONSTANTS } from '../types/contracts.js';\nimport { SessionService } from '../services/session.js';\nimport { readRelease } from '../config/dom-config-reader.js';\nimport { RateLimiter } from '../utils/security.js';\nimport { getExpectedInstructorHash } from '../services/auth/instructor-auth.js';\nimport { startInstructorSession } from '../services/auth/instructor-session.js';\nimport './qd-password-modal.js';\n\n/**\n * Instructor login button + password modal.\n */\n@customElement('qd-instructor-login')\nexport class QdInstructorLogin extends LitElement {\n /** Disable the button (e.g. while the parent form is submitting). */\n @property({ type: Boolean })\n disabled = false;\n\n @state()\n private showModal = false;\n\n @state()\n private error = '';\n\n // Same allowance as the student PIN policy (PIN_CONSTANTS.MAX_ATTEMPTS): the\n // third consecutive wrong password starts the exponential lockout.\n private rateLimiter = new RateLimiter(PIN_CONSTANTS.MAX_ATTEMPTS - 1);\n\n static styles = css`\n button {\n padding: 6px 12px;\n border: none;\n border-radius: 4px;\n font-size: 11px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s;\n white-space: nowrap;\n background: #6c757d;\n color: white;\n }\n\n button:hover:not(:disabled) {\n background: #5a6268;\n }\n\n button:disabled {\n cursor: not-allowed;\n opacity: 0.7;\n }\n `;\n\n render() {\n return html`\n \n\n \n `;\n }\n\n private open = (): void => {\n this.showModal = true;\n this.error = '';\n };\n\n private handleClose = (): void => {\n this.showModal = false;\n this.error = '';\n };\n\n private handleSubmit = (e: CustomEvent<{ password: string }>): void => {\n void this.login(e.detail.password);\n };\n\n /**\n * Verify the password and, on success, create the instructor session and\n * emit `qd:login`.\n */\n private async login(password: string): Promise {\n const expectedHash = getExpectedInstructorHash();\n if (!expectedHash) {\n this.error = 'Instructor password not configured';\n return;\n }\n\n // Rate limit guesses (same limiter as the toolbar unlock path)\n if (!this.rateLimiter.attempt()) {\n this.error = `Too many attempts. Try again in ${this.rateLimiter.getRemainingSeconds()}s`;\n return;\n }\n\n try {\n // Verifies the password and stores the secret that later page loads\n // re-check (SRD 013 SEC-01)\n if (!(await startInstructorSession(password))) {\n this.rateLimiter.recordFailure();\n this.error = 'Incorrect password';\n return;\n }\n this.rateLimiter.reset();\n\n const release = readRelease();\n\n const sessionService = new SessionService();\n sessionService.createSession('INSTRUCTOR', 'Instructor', release || '');\n\n this.dispatchEvent(\n new CustomEvent('qd:login', {\n detail: {\n serviceId: 'INSTRUCTOR',\n name: 'Instructor',\n release: release || '',\n role: 'instructor',\n },\n bubbles: true,\n composed: true,\n }),\n );\n\n this.showModal = false;\n this.error = '';\n } catch (err) {\n this.error = 'Login failed. Please try again.';\n console.error('Instructor login error:', err);\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'qd-instructor-login': QdInstructorLogin;\n }\n}\n","/**\n * Lockout Banner Component\n *\n * Self-contained countdown banner shown while a student account is locked out\n * after too many failed PIN attempts. Owns its own 1s timer and emits\n * `qd:lockout-expired` when the countdown reaches zero. Extracted from\n * `qd-login`.\n *\n * @element qd-lockout-banner\n * @fires {CustomEvent} qd:lockout-expired - When the lockout window ends\n */\n\nimport { LitElement, html, css } from 'lit';\nimport { customElement, state, property } from 'lit/decorators.js';\n\n/**\n * Countdown banner for PIN lockout.\n */\n@customElement('qd-lockout-banner')\nexport class QdLockoutBanner extends LitElement {\n /** Epoch milliseconds when the lockout ends (0 = not locked). */\n @property({ type: Number })\n untilMs = 0;\n\n @state()\n private seconds = 0;\n\n private interval: number | null = null;\n\n static styles = css`\n .lockout-message {\n width: 100%;\n color: #f57c00;\n font-size: 11px;\n margin-top: 3px;\n padding: 4px 8px;\n background: #fff3e0;\n border-radius: 3px;\n border-left: 3px solid #f57c00;\n }\n `;\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this.clearTimer();\n }\n\n willUpdate(changed: Map): void {\n if (changed.has('untilMs')) {\n // Reflect the remaining seconds in the same render the property changes.\n const remainingMs = this.untilMs - Date.now();\n this.seconds = remainingMs > 0 ? Math.ceil(remainingMs / 1000) : 0;\n }\n }\n\n updated(changed: Map): void {\n if (changed.has('untilMs')) {\n this.startTimer();\n }\n }\n\n render() {\n if (this.seconds <= 0) {\n return html``;\n }\n return html`
                                          \n Too many attempts. Try again in ${this.seconds}s\n
                                          `;\n }\n\n /** (Re)start the 1s countdown timer based on the current `seconds`. */\n private startTimer(): void {\n this.clearTimer();\n if (this.seconds <= 0) {\n return;\n }\n\n this.interval = window.setInterval(() => {\n this.seconds--;\n if (this.seconds <= 0) {\n this.clearTimer();\n this.dispatchEvent(\n new CustomEvent('qd:lockout-expired', { bubbles: true, composed: true }),\n );\n }\n }, 1000);\n }\n\n private clearTimer(): void {\n if (this.interval) {\n clearInterval(this.interval);\n this.interval = null;\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'qd-lockout-banner': QdLockoutBanner;\n }\n}\n","/**\n * Help Trigger Component\n *\n * A small help icon button (?) that triggers contextual help popups.\n * Emits qd:help-open event when activated via click or keyboard (Enter/Space).\n *\n * @element qd-help-trigger\n * @fires {CustomEvent<{panelType: string}>} qd:help-open - Emitted when help is requested\n *\n * @example\n * ```html\n * \n * ```\n *\n * Feature: 008-user-guidance-popups\n */\n\nimport { LitElement, html, css } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\n/**\n * Help trigger button component\n */\n@customElement('qd-help-trigger')\nexport class QdHelpTrigger extends LitElement {\n static styles = css`\n :host {\n display: inline-block;\n }\n\n .help-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n border-radius: 50%;\n background: #0066cc;\n color: white;\n font-size: 12px;\n font-weight: bold;\n font-family:\n system-ui,\n -apple-system,\n sans-serif;\n cursor: pointer;\n border: none;\n padding: 0;\n transition: background 0.15s ease;\n }\n\n .help-icon:hover {\n background: #0052a3;\n }\n\n .help-icon:focus {\n outline: 2px solid #0066cc;\n outline-offset: 2px;\n }\n\n .help-icon:active {\n background: #004080;\n }\n `;\n\n /**\n * Which panel this trigger belongs to\n */\n @property({ type: String })\n panelType: 'login' | 'status' | 'instructor' = 'login';\n\n /**\n * Handle click/activation\n */\n private handleClick = () => {\n this.dispatchEvent(\n new CustomEvent('qd:help-open', {\n detail: { panelType: this.panelType },\n bubbles: true,\n composed: true,\n }),\n );\n };\n\n render() {\n return html`\n \n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'qd-help-trigger': QdHelpTrigger;\n }\n}\n","/**\n * Help Popup Component\n *\n * A modal popup that displays contextual help content.\n * Wraps qd-modal to provide help-specific styling and behavior.\n *\n * @element qd-help-popup\n * @fires {CustomEvent} qd:modal-close - Emitted when popup closes\n *\n * @example\n * ```html\n * this.helpOpen = false}\n * >\n * ```\n *\n * Feature: 008-user-guidance-popups\n */\n\nimport { LitElement, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\n\n// Help popup styles for portal rendering\nconst HELP_POPUP_STYLES = `\n.qd-help-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:99999;font-family:system-ui,-apple-system,sans-serif}\n.qd-help-content{background:#fff;border-radius:8px;box-shadow:0 4px 20px rgba(0,0,0,.3);max-width:450px;max-height:80vh;overflow:auto}\n.qd-help-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #eee}\n.qd-help-title{font-weight:600;font-size:18px;color:#333;margin:0}\n.qd-help-close{background:none;border:none;font-size:24px;color:#666;cursor:pointer;padding:0;line-height:1;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:4px}\n.qd-help-close:hover{background:#f0f0f0;color:#333}\n.qd-help-close:focus{outline:2px solid #0066cc;outline-offset:2px}\n.qd-help-body{padding:20px;line-height:1.6;color:#444}\n.qd-help-body h3{margin-top:0;margin-bottom:12px;color:#333;font-size:16px}\n.qd-help-body p{margin:0 0 12px 0}\n.qd-help-body p:last-child{margin-bottom:0}\n.qd-help-body strong{color:#333}`;\n\n/**\n * Help popup modal component\n */\n@customElement('qd-help-popup')\nexport class QdHelpPopup extends LitElement {\n /**\n * Style element for help popup CSS (injected once)\n */\n private static styleElement: HTMLStyleElement | null = null;\n\n /**\n * Portal element appended to body\n */\n private portalElement: HTMLDivElement | null = null;\n\n /**\n * Previously focused element for restoration\n */\n private previouslyFocused: Element | null = null;\n\n /**\n * Whether the popup is open\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n /**\n * Popup title\n */\n @property({ type: String })\n title = 'Help';\n\n /**\n * HTML content to display (from readHelpContent)\n */\n @property({ type: String })\n content = '';\n\n /**\n * Track internal open state for portal management\n */\n @state()\n private _isOpen = false;\n\n connectedCallback() {\n super.connectedCallback();\n document.addEventListener('keydown', this.handleKeyDown);\n this.ensureStyles();\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n document.removeEventListener('keydown', this.handleKeyDown);\n this.removePortal();\n }\n\n updated(changedProperties: Map) {\n if (changedProperties.has('open')) {\n if (this.open && !this._isOpen) {\n this.handleOpen();\n } else if (!this.open && this._isOpen) {\n this.handleClose();\n }\n }\n }\n\n /**\n * Ensure help popup styles are added to document head (once)\n */\n private ensureStyles() {\n if (!QdHelpPopup.styleElement) {\n QdHelpPopup.styleElement = document.createElement('style');\n QdHelpPopup.styleElement.textContent = HELP_POPUP_STYLES;\n document.head.appendChild(QdHelpPopup.styleElement);\n }\n }\n\n /**\n * Create and show the portal\n */\n private createPortal() {\n this.removePortal();\n\n // Create backdrop\n this.portalElement = document.createElement('div');\n this.portalElement.className = 'qd-help-backdrop';\n this.portalElement.addEventListener('click', this.handleBackdropClick);\n\n // Create content container\n const contentEl = document.createElement('div');\n contentEl.className = 'qd-help-content';\n contentEl.setAttribute('role', 'dialog');\n contentEl.setAttribute('aria-modal', 'true');\n contentEl.setAttribute('aria-labelledby', 'qd-help-title');\n contentEl.addEventListener('click', this.stopPropagation);\n\n // Create header\n const headerEl = document.createElement('div');\n headerEl.className = 'qd-help-header';\n\n const titleEl = document.createElement('h2');\n titleEl.className = 'qd-help-title';\n titleEl.id = 'qd-help-title';\n titleEl.textContent = this.title;\n\n const closeBtn = document.createElement('button');\n closeBtn.className = 'qd-help-close';\n closeBtn.setAttribute('aria-label', 'Close');\n closeBtn.innerHTML = '×';\n closeBtn.addEventListener('click', this.handleCloseClick);\n\n headerEl.appendChild(titleEl);\n headerEl.appendChild(closeBtn);\n\n // Create body\n const bodyEl = document.createElement('div');\n bodyEl.className = 'qd-help-body';\n bodyEl.innerHTML = this.content;\n\n contentEl.appendChild(headerEl);\n contentEl.appendChild(bodyEl);\n this.portalElement.appendChild(contentEl);\n document.body.appendChild(this.portalElement);\n\n // Focus close button\n requestAnimationFrame(() => {\n closeBtn.focus();\n });\n }\n\n /**\n * Remove portal from DOM\n */\n private removePortal() {\n if (this.portalElement) {\n this.portalElement.remove();\n this.portalElement = null;\n }\n }\n\n /**\n * Handle opening\n */\n private handleOpen() {\n this._isOpen = true;\n this.previouslyFocused = document.activeElement;\n this.createPortal();\n }\n\n /**\n * Handle closing\n */\n private handleClose() {\n this._isOpen = false;\n this.removePortal();\n\n // Restore focus\n if (this.previouslyFocused instanceof HTMLElement) {\n this.previouslyFocused.focus();\n }\n }\n\n /**\n * Handle keyboard events\n */\n private handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape' && this._isOpen) {\n this.close();\n }\n };\n\n /**\n * Handle backdrop click\n */\n private handleBackdropClick = () => {\n this.close();\n };\n\n /**\n * Handle close button click\n */\n private handleCloseClick = () => {\n this.close();\n };\n\n /**\n * Stop propagation for content clicks\n */\n private stopPropagation = (event: Event) => {\n event.stopPropagation();\n };\n\n /**\n * Close the popup and emit event\n */\n close() {\n this.open = false;\n this.dispatchEvent(\n new CustomEvent('qd:modal-close', {\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n render() {\n // Portal renders to body, component renders nothing\n return nothing;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'qd-help-popup': QdHelpPopup;\n }\n}\n","/**\n * Obfuscation Migration Utility\n *\n * Provides functions to migrate IndexedDB data between plain and obfuscated formats.\n * Call from browser console or test setup.\n */\n\nimport type { StudentRecord } from '../../types/contracts.js';\nimport { encode, decode, deriveKey, isObfuscated } from './obfuscation.js';\nimport { info as logInfo, warn as logWarn, error as logError } from '../../utils/logger.js';\n\n/** Migration direction */\nexport type ObfuscationMigrationDirection = 'encrypt' | 'decrypt';\n\n/** Migration options */\nexport interface ObfuscationMigrationOptions {\n /** Release ID for key derivation */\n releaseId: string;\n /** If true, report what would change without modifying data */\n dryRun?: boolean;\n}\n\n/** Migration result */\nexport interface ObfuscationMigrationResult {\n /** Number of records migrated */\n migrated: number;\n /** Number of records skipped (already in target format) */\n skipped: number;\n /** Errors encountered during migration */\n errors: Array<{ key: string; error: string }>;\n /** Total time in milliseconds */\n durationMs: number;\n}\n\n/** Object store name for students */\nconst STORE_STUDENTS = 'students';\n\n/**\n * Migrate storage between plain and obfuscated formats\n *\n * @param dbName - IndexedDB database name\n * @param direction - 'encrypt' to obfuscate, 'decrypt' to restore plain\n * @param options - Migration options including releaseId and optional dryRun\n * @returns Migration result with counts and any errors\n */\nexport async function migrateObfuscation(\n dbName: string,\n direction: ObfuscationMigrationDirection,\n options: ObfuscationMigrationOptions,\n): Promise {\n const startTime = performance.now();\n const result: ObfuscationMigrationResult = {\n migrated: 0,\n skipped: 0,\n errors: [],\n durationMs: 0,\n };\n\n const { releaseId, dryRun = false } = options;\n const obfKey = deriveKey(releaseId);\n\n logInfo(`Starting obfuscation migration: direction=${direction}, dryRun=${dryRun}`);\n\n // Open database\n const db = await openDatabase(dbName);\n\n try {\n // Get all records\n const allRecords = await getAllRawRecords(db);\n\n for (const { key, value } of allRecords) {\n try {\n const currentlyObfuscated = isObfuscated(value);\n\n if (direction === 'encrypt') {\n if (currentlyObfuscated) {\n result.skipped++;\n continue;\n }\n\n // Convert plain to obfuscated\n const plainRecord = value as StudentRecord;\n const obfuscatedValue = encode(plainRecord, obfKey);\n\n if (!dryRun) {\n await putRawRecord(db, key, obfuscatedValue);\n }\n result.migrated++;\n } else {\n // decrypt\n if (!currentlyObfuscated) {\n result.skipped++;\n continue;\n }\n\n // Convert obfuscated to plain\n const plainRecord = decode(value, obfKey);\n\n if (!dryRun) {\n await putRawRecord(db, key, plainRecord);\n }\n result.migrated++;\n }\n } catch (err) {\n const errorMessage = err instanceof Error ? err.message : String(err);\n result.errors.push({ key, error: errorMessage });\n logWarn(`Migration error for key ${key}: ${errorMessage}`);\n }\n }\n } finally {\n db.close();\n }\n\n result.durationMs = performance.now() - startTime;\n logInfo(\n `Migration complete: migrated=${result.migrated}, skipped=${result.skipped}, errors=${result.errors.length}, duration=${result.durationMs.toFixed(2)}ms`,\n );\n\n return result;\n}\n\n/**\n * Open IndexedDB database\n */\nasync function openDatabase(dbName: string): Promise {\n return new Promise((resolve, reject) => {\n const request = indexedDB.open(dbName);\n\n request.onsuccess = () => resolve(request.result);\n request.onerror = () => {\n logError(`Failed to open database: ${request.error?.message}`);\n reject(new Error(`Failed to open database: ${request.error?.message}`));\n };\n });\n}\n\n/**\n * Get all raw records from the students store\n */\nasync function getAllRawRecords(db: IDBDatabase): Promise> {\n return new Promise((resolve, reject) => {\n const transaction = db.transaction(STORE_STUDENTS, 'readonly');\n const store = transaction.objectStore(STORE_STUDENTS);\n const request = store.openCursor();\n const records: Array<{ key: string; value: unknown }> = [];\n\n request.onsuccess = () => {\n const cursor = request.result;\n if (cursor) {\n // cursor.key is IDBValidKey - could be string, number, Date, array, etc.\n // We use out-of-line keys which are always strings in this app\n const keyStr = typeof cursor.key === 'string' ? cursor.key : JSON.stringify(cursor.key);\n records.push({ key: keyStr, value: cursor.value });\n cursor.continue();\n } else {\n resolve(records);\n }\n };\n\n request.onerror = () => {\n reject(new Error(`Failed to read records: ${request.error?.message}`));\n };\n });\n}\n\n/**\n * Put a raw record into the students store\n */\nasync function putRawRecord(db: IDBDatabase, key: string, value: unknown): Promise {\n return new Promise((resolve, reject) => {\n const transaction = db.transaction(STORE_STUDENTS, 'readwrite');\n const store = transaction.objectStore(STORE_STUDENTS);\n const request = store.put(value, key);\n\n request.onsuccess = () => resolve();\n request.onerror = () => {\n reject(new Error(`Failed to save record: ${request.error?.message}`));\n };\n });\n}\n","/**\n * Styles for the component.\n *\n * Extracted from qd-migration-dialog.ts to keep the component focused on\n * behavior. Combined with the shared spinnerStyles at the component.\n */\n\nimport { css } from 'lit';\n\nexport const migrationDialogStyles = css`\n :host {\n display: contents;\n }\n\n .migration-content {\n display: flex;\n flex-direction: column;\n gap: 16px;\n padding: 8px 0;\n }\n\n .warning-banner {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n padding: 12px;\n background: #fff3cd;\n border-radius: 4px;\n border-left: 4px solid #ffc107;\n }\n\n .warning-icon {\n font-size: 20px;\n line-height: 1;\n }\n\n .warning-text {\n flex: 1;\n }\n\n .warning-text strong {\n display: block;\n margin-bottom: 4px;\n color: #856404;\n }\n\n .format-info {\n font-size: 13px;\n color: #666;\n }\n\n .format-row {\n display: flex;\n gap: 8px;\n margin: 4px 0;\n }\n\n .format-label {\n font-weight: 500;\n min-width: 100px;\n }\n\n .format-value {\n font-family: monospace;\n background: #f5f5f5;\n padding: 2px 6px;\n border-radius: 3px;\n }\n\n .form-field {\n display: flex;\n flex-direction: column;\n gap: 4px;\n }\n\n label {\n font-size: 13px;\n font-weight: 500;\n color: #333;\n }\n\n input[type='password'] {\n padding: 8px 12px;\n border: 1px solid #ccc;\n border-radius: 4px;\n font-size: 14px;\n width: 100%;\n box-sizing: border-box;\n }\n\n input[type='password']:focus {\n outline: none;\n border-color: #0066cc;\n box-shadow: 0 0 0 2px rgba(0, 102, 204, 0.1);\n }\n\n .error-message {\n color: #d32f2f;\n font-size: 12px;\n padding: 8px;\n background: #ffebee;\n border-radius: 4px;\n border-left: 3px solid #d32f2f;\n }\n\n .success-message {\n color: #2e7d32;\n font-size: 13px;\n padding: 12px;\n background: #e8f5e9;\n border-radius: 4px;\n border-left: 3px solid #4caf50;\n }\n\n .migrating-state {\n text-align: center;\n padding: 20px;\n }\n\n .button-row {\n display: flex;\n gap: 8px;\n justify-content: flex-end;\n margin-top: 8px;\n }\n\n button {\n padding: 8px 16px;\n border: none;\n border-radius: 4px;\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n transition: background-color 0.2s;\n }\n\n button:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n button.primary {\n background: #0066cc;\n color: white;\n }\n\n button.primary:hover:not(:disabled) {\n background: #0052a3;\n }\n\n button.secondary {\n background: #e0e0e0;\n color: #333;\n }\n\n button.secondary:hover:not(:disabled) {\n background: #d0d0d0;\n }\n`;\n","/**\n * Shared CSS-in-JS style fragments for top-level Lit components.\n *\n * These are reusable `css` fragments that can be composed into a component's\n * `static styles` array. Only genuinely identical, single-source declarations\n * live here so that adopting a fragment never changes a component's rendering.\n *\n * Note: instructor sub-components share a separate, instructor-specific bundle\n * in `qd-instructor/shared-styles.ts`.\n */\n\nimport { css } from 'lit';\n\n/**\n * Loading spinner plus its keyframes. Adopted by components that show an\n * in-progress indicator (e.g. the migration dialog) and, going forward, the\n * reusable `` component.\n */\nexport const spinnerStyles = css`\n .spinner {\n display: inline-block;\n width: 24px;\n height: 24px;\n border: 3px solid #e0e0e0;\n border-top-color: #0066cc;\n border-radius: 50%;\n animation: spin 1s linear infinite;\n margin-bottom: 12px;\n }\n\n @keyframes spin {\n to {\n transform: rotate(360deg);\n }\n }\n`;\n","/**\n * Spinner Component\n *\n * Reusable loading indicator with encapsulated styles (Shadow DOM). Shares the\n * spinner CSS fragment from `shared-styles.ts` so its appearance matches the\n * inline spinners it replaces.\n *\n * @element qd-spinner\n */\n\nimport { LitElement, html } from 'lit';\nimport { customElement } from 'lit/decorators.js';\nimport { spinnerStyles } from './shared-styles.js';\n\n/**\n * Standalone loading spinner.\n */\n@customElement('qd-spinner')\nexport class QdSpinner extends LitElement {\n static override styles = [spinnerStyles];\n\n override render() {\n return html`
                                          `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'qd-spinner': QdSpinner;\n }\n}\n","/**\n * Migration dialog component\n *\n * Shows when storage format mismatch is detected during login.\n * Allows instructor to migrate database to match current build mode.\n *\n * Feature: 009-encrypt-stored-data\n *\n * @element qd-migration-dialog\n * @fires {CustomEvent<{migrated: number, skipped: number}>} qd:migration-complete - Emitted on successful migration\n * @fires {CustomEvent} qd:migration-cancel - Emitted when user cancels\n */\n\nimport { LitElement, html, nothing } from 'lit';\nimport { customElement, property, state, query } from 'lit/decorators.js';\nimport { migrateObfuscation } from '../services/storage/obfuscation-migration.js';\nimport { ENCRYPT_STORAGE } from '../config/feature-flags.js';\nimport {\n getExpectedInstructorHash,\n verifyInstructorPassword,\n} from '../services/auth/instructor-auth.js';\nimport { migrationDialogStyles } from './qd-migration-dialog.styles.js';\nimport './qd-modal.js';\nimport './qd-spinner.js';\n\n/** Migration dialog state */\ntype MigrationState = 'password' | 'migrating' | 'error' | 'success';\n\n@customElement('qd-migration-dialog')\nexport class QdMigrationDialog extends LitElement {\n static override styles = [migrationDialogStyles];\n\n /**\n * Whether dialog is open\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n /**\n * What format was expected based on ENCRYPT_STORAGE\n */\n @property({ type: String })\n expected: 'obfuscated' | 'plain' = 'plain';\n\n /**\n * What format was actually found\n */\n @property({ type: String })\n found: 'obfuscated' | 'plain' = 'plain';\n\n /**\n * Database name for migration\n */\n @property({ type: String })\n dbName = '';\n\n /**\n * Release ID for key derivation\n */\n @property({ type: String })\n releaseId = '';\n\n /**\n * Internal state\n */\n @state()\n private dialogState: MigrationState = 'password';\n\n /**\n * Password input value\n */\n @state()\n private password = '';\n\n /**\n * Error message\n */\n @state()\n private error = '';\n\n /**\n * Migration result\n */\n @state()\n private migrationResult: { migrated: number; skipped: number } | null = null;\n\n /**\n * Reference to password input\n */\n @query('input[type=\"password\"]')\n private passwordInput!: HTMLInputElement;\n\n /**\n * Reset state when dialog opens\n */\n override updated(changedProps: Map): void {\n if (changedProps.has('open') && this.open) {\n this.dialogState = 'password';\n this.password = '';\n this.error = '';\n this.migrationResult = null;\n void this.updateComplete.then(() => {\n this.passwordInput?.focus();\n });\n }\n }\n\n /**\n * Handle modal close\n */\n private handleModalClose = (): void => {\n this.dispatchEvent(\n new CustomEvent('qd:migration-cancel', {\n bubbles: true,\n composed: true,\n }),\n );\n };\n\n /**\n * Handle password input\n */\n private handleInput = (e: Event): void => {\n const input = e.target as HTMLInputElement;\n this.password = input.value;\n if (this.error) {\n this.error = '';\n }\n };\n\n /**\n * Handle form submission\n */\n private handleSubmit = async (e: Event): Promise => {\n e.preventDefault();\n\n if (!this.password.trim()) {\n return;\n }\n\n // Validate instructor password\n const isValid = await this.validatePassword(this.password);\n if (!isValid) {\n // Only set generic error if validatePassword didn't set a specific one\n if (!this.error) {\n this.error = 'Incorrect instructor password';\n }\n return;\n }\n\n // Start migration\n await this.runMigration();\n };\n\n /**\n * Validate instructor password against configured hash\n */\n private async validatePassword(password: string): Promise {\n if (!getExpectedInstructorHash()) {\n this.error = 'Instructor password not configured';\n return false;\n }\n return verifyInstructorPassword(password);\n }\n\n /**\n * Run the migration\n */\n private async runMigration(): Promise {\n this.dialogState = 'migrating';\n this.error = '';\n\n try {\n // Determine direction based on ENCRYPT_STORAGE flag\n const direction = ENCRYPT_STORAGE ? 'encrypt' : 'decrypt';\n\n const result = await migrateObfuscation(this.dbName, direction, {\n releaseId: this.releaseId,\n dryRun: false,\n });\n\n if (result.errors.length > 0) {\n this.dialogState = 'error';\n this.error = `Migration completed with ${result.errors.length} error(s). Some records may not have been migrated.`;\n return;\n }\n\n this.migrationResult = {\n migrated: result.migrated,\n skipped: result.skipped,\n };\n this.dialogState = 'success';\n } catch (err) {\n this.dialogState = 'error';\n this.error = `Migration failed: ${err instanceof Error ? err.message : 'Unknown error'}`;\n }\n }\n\n /**\n * Handle continue after success\n */\n private handleContinue = (): void => {\n this.dispatchEvent(\n new CustomEvent('qd:migration-complete', {\n detail: this.migrationResult,\n bubbles: true,\n composed: true,\n }),\n );\n };\n\n /**\n * Handle cancel button\n */\n private handleCancel = (): void => {\n this.dispatchEvent(\n new CustomEvent('qd:migration-cancel', {\n bubbles: true,\n composed: true,\n }),\n );\n };\n\n override render() {\n return html`\n \n Database Migration Required\n\n ${this.open ? this.renderContent() : nothing}\n \n `;\n }\n\n private renderContent() {\n switch (this.dialogState) {\n case 'password':\n return this.renderPasswordForm();\n case 'migrating':\n return this.renderMigrating();\n case 'error':\n return this.renderError();\n case 'success':\n return this.renderSuccess();\n }\n }\n\n private renderPasswordForm() {\n return html`\n
                                          \n
                                          \n ⚠\n
                                          \n Storage format mismatch detected\n
                                          \n
                                          \n Current data:\n ${this.found}\n
                                          \n
                                          \n Build expects:\n ${this.expected}\n
                                          \n
                                          \n
                                          \n
                                          \n\n

                                          Enter the instructor password to migrate all stored records to the new format.

                                          \n\n
                                          \n
                                          \n \n \n
                                          \n\n ${this.error ? html`
                                          ${this.error}
                                          ` : nothing}\n\n
                                          \n \n \n
                                          \n
                                          \n
                                          \n `;\n }\n\n private renderMigrating() {\n return html`\n
                                          \n
                                          \n \n

                                          Migrating database records...

                                          \n

                                          Please wait, do not close this window.

                                          \n
                                          \n
                                          \n `;\n }\n\n private renderError() {\n return html`\n
                                          \n
                                          ${this.error}
                                          \n\n
                                          \n \n \n
                                          \n
                                          \n `;\n }\n\n private renderSuccess() {\n return html`\n
                                          \n
                                          \n Migration completed successfully!
                                          \n \n ${this.migrationResult?.migrated ?? 0} record(s) migrated,\n ${this.migrationResult?.skipped ?? 0} already in correct format.\n \n
                                          \n\n
                                          \n \n
                                          \n
                                          \n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'qd-migration-dialog': QdMigrationDialog;\n }\n}\n","/**\n * Help Content Configuration\n *\n * Centralized help text for all panels. Edit this file to update help content.\n * Feature: 008-user-guidance-popups\n */\n\nexport type HelpPanelType = 'login' | 'status' | 'instructor';\n\nexport interface HelpContent {\n title: string;\n body: string;\n}\n\n/**\n * Help content for each panel type\n */\nexport const HELP_CONTENT: Record = {\n login: {\n title: 'Login Help',\n body: '

                                          Enter Name and Service ID to log in. Provide a new 4-digit PIN if this is your first visit to this release of this document, otherwise use the PIN you previously created. Your instructor is able to reset PINs. See the Feedback page for more support.

                                          Instructors: click \"Instructor\" for instructor login page (password accompanies distribution).

                                          ',\n },\n\n status: {\n title: 'Student View',\n // Each colour has one meaning, matching the state calculator (SRD 013 UX-09)\n body: '

                                          Page badges in the contents:

                                          • Green: every question on the page answered correctly
                                          • Amber: started, with some questions unanswered or incorrect
                                          • Red: not started

                                          On a quiz page, each answer shows ✓ Correct or ✗ Incorrect. You can change an answer at any time.

                                          The Test progress panel counts the questions you have answered and how many are correct.

                                          ',\n },\n\n instructor: {\n title: 'Instructor Tools',\n body: '

                                          • Show current answers: Toggle for display of student answers for the current page.
                                          • View All Scores: View table scores for all students.
                                          • Reset PIN: Reset student PINs.
                                          • Export CSV: CSV download of all scores/answers.
                                          • Erase All Data: Clear all stored student data.

                                          ',\n },\n};\n\n/**\n * Get help content for a panel type\n */\nexport function getHelpContent(panelType: HelpPanelType): HelpContent {\n return HELP_CONTENT[panelType];\n}\n","/**\n * Login Component\n *\n * Presentational student-login view: renders the form and maps\n * {@link AuthService} results to UI state. The instructor flow and lockout\n * countdown live in the `` and ``\n * child components. Release is read from the document title.\n *\n * @element qd-login\n * @fires {CustomEvent<{serviceId,name,release,role}>} qd:login - On successful auth\n */\n\nimport { LitElement, html } from 'lit';\nimport { customElement, state, property } from 'lit/decorators.js';\nimport { loginStyles } from './qd-login.styles.js';\nimport { hasActiveSession, isInstructor } from '../utils/session-state.js';\nimport { STORAGE_KEYS, SESSION_TIMEOUT_MS } from '../types/contracts.js';\nimport {\n validateStudentForm,\n validateStudentFields,\n sanitizePinInput,\n type StudentFieldErrors,\n} from '../utils/validation-helpers.js';\nimport { SessionService } from '../services/session.js';\nimport { readRelease, readDbName } from '../config/dom-config-reader.js';\nimport { AuthService } from '../services/auth/auth-service.js';\nimport type { LoginResult } from '../services/auth/auth-service.js';\nimport './qd-build-info.js';\nimport './qd-instructor-login.js';\nimport './qd-lockout-banner.js';\nimport './qd-help-trigger.js';\nimport './qd-help-popup.js';\nimport './qd-migration-dialog.js';\nimport { getHelpContent } from '../config/help-content.js';\nimport { StorageFormatError } from '../services/storage/adapter-utils.js';\n\n/** Login event data */\ninterface LoginData {\n serviceId: string;\n name: string;\n release: string;\n role: 'student' | 'instructor';\n}\n\n/** Login component for student and instructor authentication */\n@customElement('qd-login')\nexport class QdLogin extends LitElement {\n /** Title text (configurable via init()) */\n @property({ type: String })\n title = 'Sonar Quiz System';\n\n /** Form field: Student name */\n @state() private name = '';\n /** Form field: Service ID (2-10 alphanumeric) */\n @state() private serviceId = '';\n /** Error message to display */\n @state() private errorMessage = '';\n /** Whether the form is currently submitting */\n @state() private isSubmitting = false;\n /** PIN input */\n @state() private pin = '';\n /** Epoch milliseconds when the current lockout ends (0 = not locked) */\n @state() private lockoutUntil = 0;\n /**\n * Fields the student has typed in or left, so validation only reports on\n * fields they have touched (SRD 013 UX-10). Submitting touches all three.\n */\n @state() private touched: ReadonlySet<'name' | 'serviceId' | 'pin'> = new Set();\n /**\n * Whether the entered service ID already has an account.\n * `null` means not looked up yet, or the lookup failed.\n */\n @state() private isRegistered: boolean | null = null;\n /** First PIN entry, held while the user re-types it to confirm (create flow) */\n @state() private pendingPin = '';\n /** Whether the help popup is open */\n @state() private helpOpen = false;\n /** Why the student was logged out, shown above the form (SRD 013 SEC-10) */\n @state() private sessionNotice = '';\n /** Whether the migration dialog is shown */\n @state() private showMigrationDialog = false;\n /** Storage format error that triggered the migration dialog */\n @state() private migrationError: StorageFormatError | null = null;\n /** Pending login data to retry after migration */\n @state() private pendingLoginData: {\n serviceId: string;\n name: string;\n release: string;\n pin: string;\n dbName: string;\n } | null = null;\n\n /** Student authentication service (storage/crypto/rate-limit logic) */\n private authService = new AuthService();\n\n /** Pending debounce for the \"is this service ID known?\" lookup */\n private registrationTimer?: number;\n\n static styles = loginStyles;\n\n connectedCallback() {\n super.connectedCallback();\n this.updateVisibility();\n this.takeSessionExpiredNotice();\n document.addEventListener('qd:logout', this.handleLogoutEvent);\n // Instructor login is emitted by the child ; hide on it.\n document.addEventListener('qd:login', this.handleLoginEvent);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n window.clearTimeout(this.registrationTimer);\n document.removeEventListener('qd:logout', this.handleLogoutEvent);\n document.removeEventListener('qd:login', this.handleLoginEvent);\n }\n\n /** Hide the form whenever a login succeeds (student or instructor). */\n private handleLoginEvent = (): void => {\n this.sessionNotice = '';\n this.updateVisibility();\n };\n\n /**\n * Show, once, why the last session ended if it timed out. The marker is\n * written by the session coordinator before it clears the session.\n */\n private takeSessionExpiredNotice(): void {\n if (sessionStorage.getItem(STORAGE_KEYS.SESSION_EXPIRED) === null) {\n return;\n }\n sessionStorage.removeItem(STORAGE_KEYS.SESSION_EXPIRED);\n const minutes = Math.round(SESSION_TIMEOUT_MS / 60000);\n this.sessionNotice = `Your session ended after ${minutes} minutes without activity. Log in again to continue.`;\n }\n\n /** Lifecycle: signal readiness once the shadow DOM is rendered. */\n firstUpdated() {\n this.setAttribute('data-ready', '');\n }\n\n /**\n * Show the form only when nobody is logged in. An instructor session hides\n * it too, so the form and the instructor panel never render together\n * (SRD 013 SEC-05).\n */\n private updateVisibility(): void {\n this.toggleAttribute('data-show', !hasActiveSession() && !isInstructor());\n }\n\n /** On logout, reset state and show the login form again. */\n private handleLogoutEvent = (): void => {\n this.name = '';\n this.serviceId = '';\n this.errorMessage = '';\n this.isSubmitting = false;\n this.pin = '';\n this.lockoutUntil = 0;\n this.touched = new Set();\n this.helpOpen = false;\n this.isRegistered = null;\n this.pendingPin = '';\n this.takeSessionExpiredNotice();\n this.updateVisibility();\n };\n\n /** Whether the account is currently within its lockout window. */\n private isLockedOut(): boolean {\n return this.lockoutUntil > Date.now();\n }\n\n /** Clear the lockout once the banner's countdown ends. */\n private handleLockoutExpired = (): void => {\n this.lockoutUntil = 0;\n };\n\n render() {\n return html`\n
                                          \n
                                          \n ${this.title}\n \n \n
                                          \n\n ${this.sessionNotice\n ? html`
                                          ${this.sessionNotice}
                                          `\n : ''}\n
                                          this.handleStudentLogin(e)}>\n this.handleNameInput(e)}\n @blur=${() => this.touch('name')}\n ?disabled=${this.isSubmitting}\n required\n />\n this.handleServiceIdInput(e)}\n @blur=${() => this.touch('serviceId')}\n ?disabled=${this.isSubmitting}\n pattern=\"[A-Za-z0-9]{2,10}\"\n title=\"2-10 alphanumeric characters\"\n required\n />\n this.handlePinInput(e)}\n @blur=${() => this.touch('pin')}\n ?disabled=${this.isSubmitting || this.isLockedOut()}\n required\n />\n \n ${this.submitLabel}\n \n \n
                                          \n ${this.errorMessage\n ? html`
                                          ${this.errorMessage}
                                          `\n : this.validationHint\n ? html`
                                          ${this.validationHint}
                                          `\n : ''}\n
                                          \n \n \n
                                          \n \n
                                          \n `;\n }\n\n private handleHelpOpen = (): void => {\n this.helpOpen = true;\n };\n private handleHelpClose = (): void => {\n this.helpOpen = false;\n };\n\n private handleNameInput(e: Event) {\n this.name = (e.target as HTMLInputElement).value;\n this.errorMessage = '';\n this.touch('name');\n }\n private handleServiceIdInput(e: Event) {\n this.serviceId = (e.target as HTMLInputElement).value;\n this.errorMessage = '';\n this.touch('serviceId');\n // The identity changed, so a PIN captured for the previous one is void\n this.pendingPin = '';\n this.scheduleRegistrationCheck();\n }\n\n /**\n * Debounced lookup of whether the entered service ID already has an account,\n * used to label the submit button \"Login\" or \"Create\".\n */\n private scheduleRegistrationCheck(): void {\n window.clearTimeout(this.registrationTimer);\n this.isRegistered = null;\n\n const serviceId = this.serviceId.trim();\n if (!/^[a-zA-Z0-9]{2,10}$/.test(serviceId)) {\n return;\n }\n\n this.registrationTimer = window.setTimeout(() => {\n void this.checkRegistration(serviceId);\n }, 300);\n }\n\n /** Resolve {@link isRegistered} for one service ID, ignoring stale answers. */\n private async checkRegistration(serviceId: string): Promise {\n let known: boolean | null = null;\n try {\n const release = readRelease();\n known = release\n ? await this.authService.isRegistered(serviceId, release, readDbName())\n : null;\n } catch {\n known = null;\n }\n // Discard a late answer for a service ID the user has since edited\n if (serviceId === this.serviceId.trim()) {\n this.isRegistered = known;\n }\n }\n\n /**\n * Label for the submit button.\n *\n * A first-time user sees \"Create\" rather than a \"Login\" that cannot succeed,\n * and \"Confirm\" while re-entering their new PIN. Unknown registration falls\n * back to \"Login\".\n */\n private get submitLabel(): string {\n if (this.pendingPin) {\n return 'Confirm';\n }\n return this.isRegistered === false ? 'Create' : 'Login';\n }\n private handlePinInput(e: Event) {\n // Filter to digits only using validation helper\n this.pin = sanitizePinInput((e.target as HTMLInputElement).value);\n this.errorMessage = '';\n this.touch('pin');\n }\n\n /** Mark a field as touched so its validation message may show. */\n private touch(field: 'name' | 'serviceId' | 'pin'): void {\n if (!this.touched.has(field)) {\n this.touched = new Set([...this.touched, field]);\n }\n }\n\n /** Validation messages for touched fields only. */\n private get fieldErrors(): StudentFieldErrors {\n const all = validateStudentFields(this.name, this.serviceId, this.pin);\n const shown: StudentFieldErrors = {};\n for (const field of this.touched) {\n if (all[field]) {\n shown[field] = all[field];\n }\n }\n return shown;\n }\n\n /** Whether the student form passes validation. */\n private isValid(): boolean {\n return validateStudentForm(this.name, this.serviceId, this.pin).length === 0;\n }\n\n /**\n * First outstanding validation problem, for display while the user types.\n *\n * The Login button is disabled until the form is valid, which on its own\n * leaves no way to discover what is missing: the submit handler's error\n * message is unreachable because submitting is exactly what is blocked.\n * This surfaces the same message live instead. A pristine form stays quiet\n * so the user is not scolded before typing anything.\n *\n * @returns The first validation error, or an empty string when the form is\n * untouched or valid\n */\n private get validationHint(): string {\n if (this.pendingPin) {\n return 'Re-enter your PIN to confirm';\n }\n if (!this.name && !this.serviceId && !this.pin) {\n return '';\n }\n // Every outstanding problem at once, not just the first (UX-10), so the\n // disabled Login button is always explained. Only touched fields are\n // also marked invalid, so the student is not scolded field by field.\n return Object.values(validateStudentFields(this.name, this.serviceId, this.pin)).join(' · ');\n }\n\n /**\n * Handle student login: validate, resolve release/db-name, delegate to\n * {@link AuthService}, and apply the result (or open the migration dialog).\n */\n private async handleStudentLogin(e: Event) {\n e.preventDefault();\n\n if (!this.isValid()) {\n this.touched = new Set(['name', 'serviceId', 'pin']);\n this.errorMessage = 'Please enter name, service ID, and 4-digit PIN';\n return;\n }\n\n // The debounced lookup may not have answered yet (fast typist, fast click),\n // so settle it here rather than letting timing decide whether an account\n // is created with or without confirmation.\n if (this.isRegistered === null && !this.pendingPin) {\n await this.checkRegistration(this.serviceId.trim());\n }\n\n // Creating an account takes the PIN twice, so a typo cannot silently\n // become the stored PIN and lock the student out of their own record.\n if (this.pendingPin) {\n if (this.pin !== this.pendingPin) {\n this.pendingPin = '';\n this.pin = '';\n this.errorMessage = 'PINs did not match. Please enter your PIN again.';\n return;\n }\n this.pendingPin = '';\n } else if (this.isRegistered === false) {\n this.pendingPin = this.pin;\n this.pin = '';\n this.errorMessage = '';\n return;\n }\n\n this.isSubmitting = true;\n this.errorMessage = '';\n\n const release = readRelease();\n if (!release) {\n this.errorMessage = 'Release not found (missing publication title element)';\n this.isSubmitting = false;\n return;\n }\n\n const serviceId = this.serviceId.trim();\n const name = this.name.trim();\n const dbName = readDbName();\n const pin = this.pin;\n\n const result = await this.authService.loginStudent({ serviceId, name, pin, release, dbName });\n\n if (result.kind === 'needs-migration') {\n this.migrationError = result.error;\n this.pendingLoginData = { serviceId, name, release, pin, dbName };\n this.showMigrationDialog = true;\n this.isSubmitting = false;\n return;\n }\n\n this.applyLoginResult(result);\n }\n\n /** Map an {@link AuthService} result to session/events/UI state. */\n private applyLoginResult(result: LoginResult): void {\n switch (result.kind) {\n case 'pin-created':\n // No \"PIN stored\" dialog: the student has just confirmed the PIN and\n // the status panel shows they are in (SRD 013 UX-02)\n this.dispatchPinEvent('qd:pin-created', result.serviceId);\n this.completeLogin(result.serviceId, result.name, result.release);\n break;\n case 'pin-verified':\n this.dispatchPinEvent('qd:pin-verified', result.serviceId);\n this.completeLogin(result.serviceId, result.name, result.release);\n break;\n case 'lockout':\n this.lockoutUntil = Date.now() + result.lockoutMs;\n this.errorMessage = '';\n this.isSubmitting = false;\n break;\n case 'bad-pin':\n this.errorMessage = `Incorrect PIN. ${result.remaining} attempt${\n result.remaining !== 1 ? 's' : ''\n } remaining`;\n this.pin = '';\n this.isSubmitting = false;\n break;\n case 'error':\n this.errorMessage = result.message;\n this.isSubmitting = false;\n break;\n }\n }\n\n /** Dispatch a PIN lifecycle event (`qd:pin-created` / `qd:pin-verified`). */\n private dispatchPinEvent(name: 'qd:pin-created' | 'qd:pin-verified', serviceId: string): void {\n this.dispatchEvent(\n new CustomEvent(name, {\n detail: { serviceId, timestamp: new Date().toISOString() },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n /** On successful migration, retry login with the pending (validated) data. */\n private handleMigrationComplete = (): void => {\n this.showMigrationDialog = false;\n this.migrationError = null;\n\n if (this.pendingLoginData) {\n const { serviceId, name, release } = this.pendingLoginData;\n this.pendingLoginData = null;\n void this.retryLoginAfterMigration(serviceId, name, release);\n }\n };\n\n /** Retry login after migration (skips the lockout pre-check). */\n private async retryLoginAfterMigration(\n serviceId: string,\n name: string,\n release: string,\n ): Promise {\n this.isSubmitting = true;\n this.errorMessage = '';\n\n const result = await this.authService.retryAfterMigration({\n serviceId,\n name,\n pin: this.pin,\n release,\n dbName: readDbName(),\n });\n\n this.applyLoginResult(result);\n }\n\n /** On migration cancel, show a contact-instructor message. */\n private handleMigrationCancel = (): void => {\n this.showMigrationDialog = false;\n this.migrationError = null;\n this.pendingLoginData = null;\n this.errorMessage = 'Data migration cancelled. Please contact your instructor for assistance.';\n this.isSubmitting = false;\n };\n\n /** Create the student session, emit `qd:login`, and hide the form. */\n private completeLogin(serviceId: string, name: string, release: string): void {\n new SessionService().createSession(serviceId, name, release);\n\n const loginData: LoginData = { serviceId, name, release, role: 'student' };\n this.dispatchEvent(\n new CustomEvent('qd:login', { detail: loginData, bubbles: true, composed: true }),\n );\n\n this.pin = '';\n this.isSubmitting = false;\n this.updateVisibility();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'qd-login': QdLogin;\n }\n}\n","/**\n * Status Component\n *\n * Compact single-line display of student quiz progress and logout button.\n * Shows: \"X/Y Correct (Z%)\" format.\n *\n * @element qd-status\n * @fires {CustomEvent} qd:logout - Emitted when user clicks logout\n *\n * @example\n * ```html\n * \n * ```\n */\n\nimport { LitElement, html, css } from 'lit';\nimport { customElement, state } from 'lit/decorators.js';\nimport { STORAGE_KEYS } from '../types/contracts.js';\nimport type { SessionCache, SessionData } from '../types/contracts.js';\nimport { getJSON } from '../utils/storage-helpers.js';\nimport { isStudentLoggedIn } from '../utils/session-state.js';\nimport { calculateProgressIndicator, formatProgress } from '../utils/calculation-helpers.js';\nimport { readQuestionTotal } from '../config/dom-config-reader.js';\nimport { SessionService } from '../services/session.js';\nimport './qd-build-info.js';\nimport './qd-help-trigger.js';\nimport './qd-help-popup.js';\nimport { getHelpContent } from '../config/help-content.js';\n\n/**\n * Status panel component for student progress tracking\n */\n@customElement('qd-status')\nexport class QdStatus extends LitElement {\n /**\n * Questions answered, from the stored record. Unlike the old \"registered\n * questions\" figure it does not change with the page being viewed\n * (SRD 013 SCO-02).\n */\n @state()\n private answered = 0;\n\n /**\n * Total correct answers\n */\n @state()\n private correct = 0;\n\n /**\n * Publication question total from #qd-question-total, when known (SCO-03)\n */\n @state()\n private questionTotal: number | undefined = undefined;\n\n /**\n * Overall status indicator color\n */\n @state()\n private statusColor: 'red' | 'amber' | 'green' = 'red';\n\n /**\n * Student name\n */\n @state()\n private name = '';\n\n /**\n * Service ID (last 4 digits displayed)\n */\n @state()\n private serviceId = '';\n\n /**\n * Whether help popup is open\n */\n @state()\n private helpOpen = false;\n\n static styles = css`\n :host {\n display: none; /* Hidden by default, shown when logged in */\n font-family:\n system-ui,\n -apple-system,\n sans-serif;\n }\n\n :host([data-show]) {\n display: block;\n }\n\n .status-panel {\n display: flex;\n flex-direction: column;\n gap: 4px;\n padding: 6px 12px;\n background: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n }\n\n .top-row {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .bottom-row {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .user-info {\n font-size: 13px;\n color: #333;\n white-space: nowrap;\n }\n\n .user-label {\n font-weight: 500;\n color: #555;\n }\n\n .status-indicator {\n width: 12px;\n height: 12px;\n border-radius: 50%;\n flex-shrink: 0;\n }\n\n .status-indicator.red {\n background: #d32f2f;\n }\n\n .status-indicator.amber {\n background: #ff9800;\n }\n\n .status-indicator.green {\n background: #4caf50;\n }\n\n .progress-label {\n font-size: 13px;\n font-weight: 500;\n color: #555;\n white-space: nowrap;\n }\n\n .progress-text {\n font-size: 13px;\n color: #333;\n white-space: nowrap;\n }\n\n .logout-button {\n padding: 5px 10px;\n background: #d32f2f;\n color: white;\n border: none;\n border-radius: 3px;\n font-size: 12px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s;\n white-space: nowrap;\n }\n\n .logout-button:hover {\n background: #b71c1c;\n }\n `;\n\n connectedCallback() {\n super.connectedCallback();\n this.updateVisibility();\n this.loadCache();\n\n // Listen for state changes and login/logout\n document.addEventListener('qd:state-changed', this.handleStateChanged);\n document.addEventListener('qd:login', this.handleLogin);\n document.addEventListener('qd:logout', this.handleLogoutEvent);\n // Listen for cache rebuild (fires after async IndexedDB load completes)\n document.addEventListener('qd:cache-rebuild', this.handleCacheRebuild);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n document.removeEventListener('qd:state-changed', this.handleStateChanged);\n document.removeEventListener('qd:login', this.handleLogin);\n document.removeEventListener('qd:logout', this.handleLogoutEvent);\n document.removeEventListener('qd:cache-rebuild', this.handleCacheRebuild);\n }\n\n render() {\n const last4 = this.serviceId.slice(-4);\n return html`\n
                                          \n
                                          \n \n Test progress:\n ${this.name} **${last4}\n \n \n \n \n
                                          \n
                                          \n
                                          \n
                                          \n ${formatProgress(this.answered, this.correct, this.questionTotal)}\n
                                          \n
                                          \n
                                          \n \n `;\n }\n\n /**\n * Load cache from storage and update state\n */\n private loadCache() {\n // Load session data for name/serviceId\n const session = getJSON(STORAGE_KEYS.SESSION);\n if (session) {\n this.name = session.name || '';\n this.serviceId = session.serviceId || '';\n } else {\n this.name = '';\n this.serviceId = '';\n }\n\n this.questionTotal = readQuestionTotal();\n const cache = getJSON(STORAGE_KEYS.CACHE);\n this.answered = cache?.totals.answered ?? 0;\n this.correct = cache?.totals.correct ?? 0;\n this.statusColor = calculateProgressIndicator(this.answered, this.correct, this.questionTotal);\n }\n\n /**\n * Update visibility based on session state\n * Show only if logged in as student (not instructor)\n */\n private updateVisibility() {\n this.toggleAttribute('data-show', isStudentLoggedIn());\n }\n\n /**\n * Handle state changed event\n */\n private handleStateChanged = () => {\n this.loadCache();\n };\n\n /**\n * Handle login event\n */\n private handleLogin = () => {\n this.updateVisibility();\n this.loadCache();\n };\n\n /**\n * Handle cache rebuild event (fired after async IndexedDB load completes)\n */\n private handleCacheRebuild = () => {\n this.loadCache();\n };\n\n /**\n * Handle logout event\n */\n private handleLogoutEvent = () => {\n this.updateVisibility();\n };\n\n /**\n * Handle help open event\n */\n private handleHelpOpen = (): void => {\n this.helpOpen = true;\n };\n\n /**\n * Handle help close event\n */\n private handleHelpClose = (): void => {\n this.helpOpen = false;\n };\n\n /**\n * Handle logout button click\n */\n private handleLogout() {\n const session = getJSON(STORAGE_KEYS.SESSION);\n\n // Clear session from storage\n const sessionService = new SessionService();\n sessionService.clearSession();\n\n const event = new CustomEvent('qd:logout', {\n detail: {\n serviceId: session?.serviceId || 'unknown',\n },\n bubbles: true,\n composed: true,\n });\n this.dispatchEvent(event);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'qd-status': QdStatus;\n }\n}\n","/**\n * Shared styles for instructor components\n * CSS-in-JS styles used across qd-instructor sub-components\n */\n\nimport { css } from 'lit';\n\n/**\n * Common styles shared across all instructor sub-components\n */\nexport const sharedStyles = css`\n :host {\n display: inline-block;\n font-family:\n system-ui,\n -apple-system,\n sans-serif;\n font-size: 14px;\n line-height: 1.5;\n }\n\n /* When showing modal, host should not constrain size */\n :host([showmodal]) {\n display: block;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none; /* Let clicks through except on modal */\n }\n\n :host([showmodal]) .modal-overlay {\n pointer-events: auto; /* Re-enable on overlay */\n }\n\n .instructor-panel {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 8px;\n }\n\n .instructor-title {\n font-weight: 600;\n font-size: 14px;\n color: var(--qd-text-on-dark, #fff);\n margin-right: 8px;\n }\n\n .toggle-label {\n display: flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n font-size: 13px;\n color: var(--qd-text-on-dark, #fff);\n user-select: none;\n }\n\n .toggle-label input[type='checkbox'] {\n width: 16px;\n height: 16px;\n cursor: pointer;\n }\n\n button {\n padding: 8px 16px;\n border: 1px solid #ccc;\n border-radius: 4px;\n background: #fff;\n cursor: pointer;\n font-size: 14px;\n transition: all 0.2s;\n }\n\n button:hover {\n background: #f5f5f5;\n border-color: #999;\n }\n\n button:active {\n background: #e5e5e5;\n }\n\n button:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n button.compact {\n padding: 6px 12px;\n font-size: 13px;\n }\n\n /* #0062cc keeps white text above WCAG AA 4.5:1 (#007bff was 3.98:1; SRD 013 A11Y-04) */\n button.primary {\n background: #0062cc;\n color: white;\n border-color: #0062cc;\n }\n\n button.primary:hover {\n background: #004c9e;\n border-color: #004c9e;\n }\n\n button.secondary {\n background: #ff9800;\n color: white;\n border-color: #ff9800;\n }\n\n button.secondary:hover {\n background: #f57c00;\n border-color: #f57c00;\n }\n\n button.danger {\n background: #dc3545;\n color: white;\n border-color: #dc3545;\n }\n\n button.danger:hover {\n background: #c82333;\n border-color: #c82333;\n }\n\n /*\n * Destructive actions sit apart from routine ones and stay quiet until used\n * (SRD 013 UX-08): an outline on the dark toolbar, filled only on hover.\n */\n .danger-zone {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n padding-left: 12px;\n margin-left: 4px;\n border-left: 1px solid rgba(255, 255, 255, 0.35);\n }\n\n button.outline-danger {\n background: transparent;\n color: #ffcdd2;\n border-color: #e57373;\n }\n\n button.outline-danger:hover {\n background: #c62828;\n color: white;\n border-color: #c62828;\n }\n\n button.logout {\n background: #6c757d;\n color: white;\n border-color: #6c757d;\n }\n\n button.logout:hover {\n background: #5a6268;\n border-color: #5a6268;\n }\n\n input,\n textarea {\n padding: 8px;\n border: 1px solid #ccc;\n border-radius: 4px;\n font-size: 14px;\n font-family: inherit;\n }\n\n input:focus,\n textarea:focus {\n outline: none;\n border-color: #007bff;\n box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.1);\n }\n\n .error {\n color: #dc3545;\n font-size: 12px;\n margin-top: 4px;\n }\n\n .success {\n color: #28a745;\n font-size: 12px;\n margin-top: 4px;\n }\n\n table {\n width: 100%;\n border-collapse: collapse;\n margin: 16px 0;\n }\n\n th,\n td {\n padding: 8px;\n text-align: left;\n border-bottom: 1px solid #ddd;\n color: #333; /* Explicit dark text */\n }\n\n th {\n background: #f5f5f5;\n font-weight: 600;\n color: #000; /* Explicit black for headers */\n }\n\n tr:hover {\n background: #f9f9f9;\n }\n\n .correct {\n color: #28a745;\n }\n\n .incorrect {\n color: #dc3545;\n }\n\n .modal-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: var(--qd-modal-overlay-z-index, 9999);\n pointer-events: auto; /* Ensure overlay catches all clicks */\n }\n\n .modal-content {\n position: relative;\n background: white;\n padding: 24px;\n border-radius: 8px;\n max-width: 800px;\n max-height: 80vh;\n overflow: auto;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);\n z-index: var(--qd-modal-z-index, 10000);\n color: #333; /* Explicit dark text color */\n }\n\n .modal-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n }\n\n .modal-title {\n font-size: 18px;\n font-weight: 600;\n margin: 0;\n color: #000; /* Explicit black for title */\n }\n\n .close-button {\n padding: 4px 8px;\n border: none;\n background: transparent;\n font-size: 20px;\n cursor: pointer;\n color: #666;\n }\n\n .close-button:hover {\n color: #000;\n }\n`;\n","/**\n * Instructor unlock component with password verification and rate limiting\n */\n\nimport { LitElement, html } from 'lit';\nimport { customElement, state } from 'lit/decorators.js';\nimport { sharedStyles } from './shared-styles.js';\nimport { RateLimiter } from '../../utils/security.js';\nimport { getExpectedInstructorHash } from '../../services/auth/instructor-auth.js';\nimport { startInstructorSession } from '../../services/auth/instructor-session.js';\nimport { PIN_CONSTANTS } from '../../types/contracts.js';\nimport { dispatchEventOn } from '../../utils/event-helpers.js';\n\n/**\n * Password unlock UI with rate limiting for instructor access\n *\n * Features:\n * - Password input with masked field\n * - Rate limiting: 2s, 4s, 8s, 16s, 30s lockout on failures\n * - Constant-time password comparison\n * - Emits 'qd:instructor-unlock' on success\n *\n * @fires qd:instructor-unlock - Emitted when password verified successfully\n */\n@customElement('qd-instructor-unlock')\nexport class QdInstructorUnlock extends LitElement {\n static override styles = sharedStyles;\n\n @state()\n private password = '';\n\n @state()\n private error = '';\n\n @state()\n private remainingSeconds = 0;\n\n // Same allowance as the student PIN policy (PIN_CONSTANTS.MAX_ATTEMPTS): the\n // third consecutive wrong password starts the exponential lockout.\n private rateLimiter = new RateLimiter(PIN_CONSTANTS.MAX_ATTEMPTS - 1);\n private countdownInterval?: number;\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n if (this.countdownInterval) {\n window.clearInterval(this.countdownInterval);\n }\n }\n\n private handlePasswordInput = (e: Event): void => {\n const input = e.target as HTMLInputElement;\n this.password = input.value;\n this.error = '';\n };\n\n private handleSubmit = async (e: Event): Promise => {\n e.preventDefault();\n\n // Check rate limit\n const allowed = this.rateLimiter.attempt();\n if (!allowed) {\n this.remainingSeconds = this.rateLimiter.getRemainingSeconds();\n this.startCountdown();\n this.error = `Too many attempts. Try again in ${this.remainingSeconds}s`;\n return;\n }\n\n // Validate password\n try {\n // Same config element and hash format as the login modal (#qd-instructor-hash,\n // SHA-256 truncated to 12 hex chars) so the two unlock paths cannot disagree.\n const expectedHash = getExpectedInstructorHash();\n if (!expectedHash) {\n throw new Error('Instructor password hash not configured');\n }\n // Verifies against the configured hash and stores the secret that later\n // page loads re-check (SRD 013 SEC-01)\n const valid = await startInstructorSession(this.password);\n\n if (valid) {\n // Success - reset limiter and emit event\n this.rateLimiter.reset();\n this.password = '';\n this.error = '';\n dispatchEventOn(this, 'qd:instructor-unlock', {});\n } else {\n // Failure - count it (this path previously never recorded failures, so\n // the limiter never engaged) and show the error\n this.rateLimiter.recordFailure();\n this.error = 'Invalid password';\n this.password = '';\n }\n } catch {\n this.error = 'Authentication failed';\n this.password = '';\n }\n };\n\n private startCountdown(): void {\n if (this.countdownInterval) {\n window.clearInterval(this.countdownInterval);\n }\n\n this.countdownInterval = window.setInterval(() => {\n this.remainingSeconds = this.rateLimiter.getRemainingSeconds();\n if (this.remainingSeconds === 0) {\n if (this.countdownInterval) {\n window.clearInterval(this.countdownInterval);\n this.countdownInterval = undefined;\n }\n this.error = '';\n } else {\n this.error = `Too many attempts. Try again in ${this.remainingSeconds}s`;\n }\n }, 1000);\n }\n\n override render() {\n const isLocked = this.remainingSeconds > 0;\n\n return html`\n
                                          \n

                                          Instructor Access

                                          \n

                                          Enter the instructor password to unlock administrative features.

                                          \n\n
                                          \n
                                          \n \n \n
                                          \n\n ${this.error\n ? html`
                                          ${this.error}
                                          `\n : ''}\n\n \n
                                          \n
                                          \n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'qd-instructor-unlock': QdInstructorUnlock;\n }\n}\n","/**\n * Scores Modal Component\n *\n * Displays student scores in a modal with expandable per-page breakdown.\n * Uses qd-modal as base for modal behavior.\n *\n * @element qd-scores-modal\n * @fires {CustomEvent} close - Emitted when modal closes\n * @fires {CustomEvent} qd:modal-close - Bubbles from qd-modal\n *\n * Feature: 007-lit-component-refactor\n */\n\nimport { LitElement, html, css } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport type { StudentRecord, AnalysisData } from '../types/contracts.js';\nimport { countFilledCells } from '../services/state-calculator.js';\nimport './qd-modal.js';\nimport { summariseFirstAttempts } from '../services/scores-service.js';\nimport { readQuestionTotal } from '../config/dom-config-reader.js';\n\ninterface StudentSummary {\n serviceId: string;\n name: string;\n attempted: number;\n correct: number;\n percentage: number;\n}\n\n/**\n * Modal component for displaying student scores with expandable details\n */\n@customElement('qd-scores-modal')\nexport class QdScoresModal extends LitElement {\n /**\n * Whether the modal is open\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n /**\n * Student records to display\n */\n @property({ type: Array })\n students: StudentRecord[] = [];\n\n // Styles are in light DOM (render method) since content is slotted into qd-modal which moves to body\n static styles = css`\n :host {\n display: contents;\n }\n `;\n\n render() {\n // Styles must be in light DOM since content is slotted into qd-modal which moves to body\n return html`\n \n Student Scores\n \n
                                          \n ${this.students.length === 0\n ? html`

                                          No student data available.

                                          `\n : this.renderScoresTable()}\n
                                          \n
                                          \n `;\n }\n\n private renderScoresTable() {\n const sortedStudents = [...this.students].sort((a, b) => a.name.localeCompare(b.name));\n\n return html`\n \n \n \n \n \n \n \n \n \n \n \n \n ${sortedStudents.map((student) => this.renderStudentRow(student))}\n \n
                                          StudentService IDAnsweredCorrectRight first timeAnswers
                                          \n `;\n }\n\n private renderStudentRow(student: StudentRecord) {\n const summary = this.calculateSummary(student);\n const pages = Object.entries(student.pages);\n\n return html`\n \n ${summary.name}\n ${summary.serviceId}\n ${this.answeredText(summary.attempted)}\n \n ${summary.attempted > 0 ? `${summary.correct} (${summary.percentage}% of answered)` : '0'}\n \n ${this.firstTimeText(student)}\n \n ${pages.length === 0\n ? html`—`\n : html`\n
                                          \n ${pages.map(\n ([pageId, pageData]) => html`\n
                                          \n ${pageId}\n
                                          \n ${pageData.analysis\n ? html`${this.analysisSummary(pageData.analysis)}`\n : ''}\n ${pageData.answers.map((answer, idx) =>\n // Skipped questions are padded with empty\n // placeholders; they are not wrong answers\n !answer || answer.answer.trim() === ''\n ? ''\n : html`\n \n Q${idx + 1}:\n ${answer?.answer ?? '—'}${answer?.attempts &&\n answer.attempts > 1\n ? ` (${answer.attempts} tries)`\n : ''}\n \n `,\n )}\n
                                          \n
                                          \n `,\n )}\n
                                          \n `}\n \n \n `;\n }\n\n /**\n * \"2 of 6 cells\" for a page's analysis table, so analysis work shows in the\n * scores view (SRD 013 ANA-05). Older records lack the cell count.\n */\n private analysisSummary(analysis: AnalysisData): string {\n const filled = countFilledCells(analysis);\n return analysis.totalCells !== undefined\n ? `Analysis: ${filled} of ${analysis.totalCells} cells`\n : `Analysis: ${filled} cell${filled === 1 ? '' : 's'}`;\n }\n\n /**\n * Questions answered, against the publication total when it is known\n * (SRD 013 SCO-04). Scores used to divide by answered questions only, so\n * one right answer read as 100%.\n */\n private answeredText(answered: number): string {\n const total = readQuestionTotal();\n return total !== undefined ? `${answered} of ${total}` : String(answered);\n }\n\n /**\n * Right-first-time count. Answers from before attempts were tracked show\n * as unknown rather than guessed (SCO-04, SCO-07).\n */\n private firstTimeText(student: StudentRecord): string {\n const { tracked, correctFirstTime, untracked } = summariseFirstAttempts(student);\n if (tracked === 0) {\n return '–';\n }\n const text = `${correctFirstTime} of ${tracked}`;\n return untracked > 0\n ? `${text} (${untracked} older answer${untracked === 1 ? '' : 's'} –)`\n : text;\n }\n\n private getScoreClass(summary: StudentSummary): string {\n if (summary.attempted === 0) return '';\n if (summary.percentage === 100) return 'score-perfect';\n if (summary.percentage === 0) return 'score-zero';\n return '';\n }\n\n private calculateSummary(student: StudentRecord): StudentSummary {\n const percentage =\n student.attempted > 0 ? Math.round((student.correct / student.attempted) * 100) : 0;\n\n return {\n serviceId: student.serviceId,\n name: student.name,\n attempted: student.attempted,\n correct: student.correct,\n percentage,\n };\n }\n\n private handleModalClose = () => {\n this.open = false;\n this.dispatchEvent(new CustomEvent('close'));\n };\n\n /**\n * Open the modal\n */\n show() {\n this.open = true;\n }\n\n /**\n * Close the modal\n */\n close() {\n this.open = false;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'qd-scores-modal': QdScoresModal;\n }\n}\n","/**\n * Scores calculation service\n * Calculates student scores and summaries from StudentRecord data\n */\n\nimport type { StudentRecord } from '../types/contracts.js';\n\nexport interface StudentSummary {\n serviceId: string;\n name: string;\n attempted: number;\n correct: number;\n percentage: number;\n}\n\nexport interface PageSummary {\n pageId: string;\n attempted: number;\n correct: number;\n percentage: number;\n}\n\n/** Right-first-time figures for one student (SRD 013 SCO-04). */\nexport interface FirstAttemptSummary {\n /** Answered questions whose attempts are tracked (answered since v3) */\n tracked: number;\n /** Tracked questions answered correctly at the first attempt */\n correctFirstTime: number;\n /** Answered questions from before v3, whose first attempt is unknown */\n untracked: number;\n}\n\n/**\n * Count right-first-time answers across a student's pages.\n *\n * @param student - Student record\n * @returns Tracked, correct-first-time and untracked counts\n */\nexport function summariseFirstAttempts(student: StudentRecord): FirstAttemptSummary {\n let tracked = 0;\n let correctFirstTime = 0;\n let untracked = 0;\n for (const page of Object.values(student.pages)) {\n for (const answer of page.answers ?? []) {\n if (!answer || answer.answer.trim() === '') continue;\n if (answer.firstSuccess === undefined) {\n untracked++;\n } else {\n tracked++;\n if (answer.firstSuccess) correctFirstTime++;\n }\n }\n }\n return { tracked, correctFirstTime, untracked };\n}\n\n/**\n * Service for calculating student scores and summaries\n */\nexport class ScoresService {\n /**\n * Calculate summary statistics for a single student\n */\n calculateStudentSummary(student: StudentRecord): StudentSummary {\n const percentage =\n student.attempted > 0 ? Math.round((student.correct / student.attempted) * 100) : 0;\n\n return {\n serviceId: student.serviceId,\n name: student.name,\n attempted: student.attempted,\n correct: student.correct,\n percentage,\n };\n }\n\n /**\n * Calculate summary statistics for a specific page\n */\n calculatePageSummary(pageId: string, student: StudentRecord): PageSummary {\n const pageData = student.pages[pageId];\n if (!pageData) {\n return {\n pageId,\n attempted: 0,\n correct: 0,\n percentage: 0,\n };\n }\n\n const answers = pageData.answers || [];\n const attempted = answers.filter((a) => a !== null).length;\n const correct = answers.filter((a) => a?.success === true).length;\n const percentage = attempted > 0 ? Math.round((correct / attempted) * 100) : 0;\n\n return {\n pageId,\n attempted,\n correct,\n percentage,\n };\n }\n\n /**\n * Get all page summaries for a student\n */\n getPageSummaries(student: StudentRecord): PageSummary[] {\n const pageIds = Object.keys(student.pages);\n return pageIds.map((pageId) => this.calculatePageSummary(pageId, student));\n }\n\n /**\n * Sort students by name (alphabetical)\n */\n sortStudentsByName(students: StudentRecord[]): StudentRecord[] {\n return [...students].sort((a, b) => a.name.localeCompare(b.name));\n }\n\n /**\n * Sort students by percentage (descending)\n */\n sortStudentsByPercentage(students: StudentRecord[]): StudentRecord[] {\n return [...students].sort((a, b) => {\n const percentA = a.attempted > 0 ? (a.correct / a.attempted) * 100 : 0;\n const percentB = b.attempted > 0 ? (b.correct / b.attempted) * 100 : 0;\n return percentB - percentA;\n });\n }\n}\n","/**\n * Instructor scores view component\n * Displays student scores with expandable per-page breakdown\n *\n * Refactored to use qd-scores-modal component.\n * Feature: 007-lit-component-refactor\n */\n\nimport { LitElement, html } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { sharedStyles } from './shared-styles.js';\nimport type { StudentRecord } from '../../types/contracts.js';\nimport '../qd-scores-modal.js';\n\n/**\n * Scores table component showing all student progress\n *\n * Features:\n * - Summary view with attempted/correct/percentage\n * - Expandable per-student breakdown\n * - Color-coded correct/incorrect answers\n * - Modal display with close button\n *\n * Now delegates to qd-scores-modal component.\n */\n@customElement('qd-instructor-scores')\nexport class QdInstructorScores extends LitElement {\n static override styles = sharedStyles;\n\n @property({ type: Array })\n students: StudentRecord[] = [];\n\n @property({ type: Boolean })\n showModal = false;\n\n private handleClose = () => {\n this.dispatchEvent(new CustomEvent('close'));\n };\n\n override render() {\n return html`\n \n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'qd-instructor-scores': QdInstructorScores;\n }\n}\n","/**\n * Instructor CSV export component\n * Generates and downloads CSV export of all student data\n */\n\nimport { LitElement, html } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { sharedStyles } from './shared-styles.js';\nimport { countFilledCells } from '../../services/state-calculator.js';\nimport type { StudentRecord } from '../../types/contracts.js';\n\n/**\n * CSV export controls for instructor\n *\n * Features:\n * - Generates RFC 4180 compliant CSV\n * - Includes all student answers with timestamps\n * - Downloads as file with timestamp in filename\n * - Proper escaping of special characters\n */\n@customElement('qd-instructor-export')\nexport class QdInstructorExport extends LitElement {\n static override styles = sharedStyles;\n\n @property({ type: Array })\n students: StudentRecord[] = [];\n\n private escapeCSVField(field: string | number | boolean): string {\n let str = String(field);\n\n // Formula injection: a field beginning with = + - @ or a control character is\n // executed as a formula by Excel/Sheets. Student names and free-text answers are\n // untrusted, so prefix a single quote to force text interpretation.\n if (/^[=+\\-@\\t\\r]/.test(str)) {\n str = `'${str}`;\n }\n\n // If field contains comma, quote, or newline, wrap in quotes and escape quotes\n if (str.includes(',') || str.includes('\"') || str.includes('\\n')) {\n return `\"${str.replace(/\"/g, '\"\"')}\"`;\n }\n return str;\n }\n\n /**\n * Build the CSV.\n *\n * The first eight columns keep their original order so existing\n * spreadsheets still line up; new columns are appended (SRD 013 ANA-02).\n * Analysis entries get one row each, with the row label (or the cell key\n * when no label was stored) in the Question Index column, an empty Success\n * and the table's last-edited time (SRD 013 ANA-01).\n */\n generateCSV(): string {\n const rows: string[] = [];\n\n // Header row\n rows.push(\n 'Service ID,Name,Release,Page ID,Question Index,Answer,Success,Timestamp,Kind,Attempts,First Attempt Correct',\n );\n\n // Data rows\n for (const student of this.students) {\n const who = [student.serviceId, student.name, student.release];\n for (const [pageId, pageData] of Object.entries(student.pages)) {\n const answers = pageData.answers || [];\n answers.forEach((answer, index) => {\n // Skipped questions are padded with empty placeholders; not answers\n if (answer && answer.answer.trim() !== '') {\n rows.push(\n this.csvRow([\n ...who,\n pageId,\n index,\n answer.answer,\n answer.success,\n answer.timestamp,\n 'quiz',\n // Empty for answers from before attempts were tracked (SCO-06, SCO-07)\n answer.attempts ?? '',\n answer.firstSuccess ?? '',\n ]),\n );\n }\n });\n\n const analysis = pageData.analysis;\n if (analysis) {\n for (const [cellKey, text] of Object.entries(analysis.cells)) {\n if (text.trim() === '') continue;\n rows.push(\n this.csvRow([\n ...who,\n pageId,\n analysis.labels?.[cellKey] ?? cellKey,\n text,\n '',\n analysis.lastEdited ?? '',\n 'analysis',\n '',\n '',\n ]),\n );\n }\n }\n }\n }\n\n return rows.join('\\n');\n }\n\n private csvRow(fields: (string | number | boolean)[]): string {\n return fields.map((field) => this.escapeCSVField(field)).join(',');\n }\n\n private handleExport = (): void => {\n const csv = this.generateCSV();\n const blob = new Blob([csv], { type: 'text/csv;charset=utf-8;' });\n const url = URL.createObjectURL(blob);\n\n // Create download link\n const link = document.createElement('a');\n link.href = url;\n\n // Generate filename with timestamp\n const now = new Date();\n const timestamp = now.toISOString().replace(/[:.]/g, '-').slice(0, 19);\n link.download = `quiz-data-${timestamp}.csv`;\n\n // Trigger download\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n\n // Clean up\n URL.revokeObjectURL(url);\n };\n\n override render() {\n // Check if any student has answered at least one question (FR-006)\n // Analysis entries count as data too (SRD 013 ANA-01)\n const hasData =\n this.students.length > 0 &&\n this.students.some(\n (student) =>\n student.attempted > 0 ||\n Object.values(student.pages).some((page) => countFilledCells(page.analysis) > 0),\n );\n\n const tooltip = hasData\n ? `Export ${this.students.length} student${this.students.length === 1 ? '' : 's'} to CSV`\n : this.students.length > 0\n ? 'No answers to export (students have not answered any questions)'\n : 'No data to export';\n\n return html`\n \n Export CSV\n \n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'qd-instructor-export': QdInstructorExport;\n }\n}\n","/**\n * Instructor data management component\n * Handles clearing/backing up student data\n */\n\nimport { LitElement, html, render } from 'lit';\nimport { customElement, state } from 'lit/decorators.js';\nimport { sharedStyles } from './shared-styles.js';\nimport { clearQuizData } from '../../utils/storage-helpers.js';\nimport { getStorageService } from '../../services/storage-service.js';\nimport { dispatchEventOn } from '../../utils/event-helpers.js';\nimport {\n confirmInstructorPassword,\n reauthErrorMessage,\n} from '../../services/auth/instructor-session.js';\n\n/**\n * Data management controls for instructor\n *\n * Features:\n * - Clear all quiz data with confirmation\n * - Safety confirmation dialog\n * - Emits 'qd:data-cleared' event on success\n *\n * @fires qd:data-cleared - Emitted when all data successfully cleared\n */\n@customElement('qd-instructor-manage')\nexport class QdInstructorManage extends LitElement {\n static override styles = sharedStyles;\n\n @state()\n private showConfirmDialog = false;\n\n @state()\n private confirmText = '';\n\n /** Instructor password, re-entered for this action (SRD 013 SEC-03) */\n @state()\n private password = '';\n\n /** Whether the password re-check is in progress */\n @state()\n private checking = false;\n\n @state()\n private error = '';\n\n @state()\n private success = '';\n\n private modalContainer: HTMLDivElement | null = null;\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeModalFromBody();\n document.removeEventListener('keydown', this.handleKeydown);\n }\n\n /** Close the dialog on Escape, like the other dialogs (SRD 013 UX-07). */\n private handleKeydown = (e: KeyboardEvent): void => {\n if (e.key === 'Escape' && this.showConfirmDialog) {\n this.handleCancelClear();\n }\n };\n\n override updated(changedProperties: Map): void {\n super.updated(changedProperties);\n if (changedProperties.has('showConfirmDialog')) {\n if (this.showConfirmDialog) {\n this.renderModalToBody();\n document.addEventListener('keydown', this.handleKeydown);\n this.modalContainer?.querySelector('input')?.focus();\n } else {\n this.removeModalFromBody();\n document.removeEventListener('keydown', this.handleKeydown);\n }\n }\n // Re-render the modal when its inputs or messages change while it is open\n if (\n this.showConfirmDialog &&\n (changedProperties.has('confirmText') ||\n changedProperties.has('password') ||\n changedProperties.has('checking') ||\n changedProperties.has('error'))\n ) {\n this.renderModalToBody();\n }\n }\n\n private renderModalToBody(): void {\n if (!this.modalContainer) {\n this.modalContainer = document.createElement('div');\n this.modalContainer.className = 'qd-manage-modal-container';\n document.body.appendChild(this.modalContainer);\n }\n render(this.renderConfirmDialog(), this.modalContainer);\n }\n\n private removeModalFromBody(): void {\n if (this.modalContainer) {\n this.modalContainer.remove();\n this.modalContainer = null;\n }\n }\n\n private handleClearRequest = (): void => {\n this.showConfirmDialog = true;\n this.confirmText = '';\n this.password = '';\n this.error = '';\n this.success = '';\n };\n\n private handleCancelClear = (): void => {\n this.showConfirmDialog = false;\n this.confirmText = '';\n this.password = '';\n this.error = '';\n };\n\n private handleConfirmInput = (e: Event): void => {\n const input = e.target as HTMLInputElement;\n this.confirmText = input.value;\n };\n\n private handlePasswordInput = (e: Event): void => {\n this.password = (e.target as HTMLInputElement).value;\n this.error = '';\n };\n\n private handleConfirmClear = async (): Promise => {\n // Require exact match\n if (this.confirmText !== 'DELETE ALL DATA') {\n this.error = 'Confirmation text does not match';\n return;\n }\n\n // Re-enter the instructor password at the moment of the action, so a\n // faked or abandoned instructor session cannot erase the class (SEC-03)\n this.checking = true;\n const reauth = await confirmInstructorPassword(this.password);\n this.checking = false;\n if (!reauth.ok) {\n this.error = reauthErrorMessage(reauth);\n this.password = '';\n return;\n }\n\n try {\n // Clear persisted data (IndexedDB: students, backups, audit log) ...\n await getStorageService().clearAll();\n // ... then the session cache (sessionStorage qd/* keys)\n clearQuizData();\n\n // Emit event\n dispatchEventOn(this, 'qd:data-cleared', {});\n\n // Show success\n this.success = 'All quiz data cleared successfully';\n this.showConfirmDialog = false;\n this.confirmText = '';\n this.password = '';\n this.error = '';\n\n // Clear success message after 3 seconds\n setTimeout(() => {\n this.success = '';\n }, 3000);\n } catch {\n this.error = 'Failed to clear data';\n }\n };\n\n override render() {\n return html`\n \n Erase All Data\n \n\n ${this.success\n ? html`\n \n ${this.success}\n
                                    \n `\n : ''}\n `;\n }\n\n private renderConfirmDialog() {\n const isValid =\n this.confirmText === 'DELETE ALL DATA' && this.password.length > 0 && !this.checking;\n\n return html`\n {\n if (e.target === e.currentTarget) this.handleCancelClear();\n }}\n >\n e.stopPropagation()}\n >\n \n \n Confirm Data Deletion\n

                                    \n \n ✕\n \n \n\n

                                    \n ⚠️ This will permanently delete all student quiz data, answers, and progress.\n

                                    \n\n

                                    \n This action cannot be undone. All students will need to start over.\n

                                    \n\n \n\n \n\n \n\n \n\n ${this.error\n ? html`
                                    \n ${this.error}\n
                                    `\n : ''}\n\n
                                    \n \n Cancel\n \n \n Delete All Data\n \n
                                    \n \n \n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'qd-instructor-manage': QdInstructorManage;\n }\n}\n","/**\n * PIN reset service.\n *\n * Encapsulates the storage init, PIN reset, save, and audit-event construction\n * for an instructor-initiated PIN reset. Extracted from `qd-pin-reset-dialog`\n * so the dialog only renders the result.\n */\n\nimport type { StudentRecord, PinResetEvent } from '../types/contracts.js';\nimport { getStorageAdapter } from './storage/indexeddb.js';\nimport { resetPin } from './storage/migration.js';\nimport { readDbName, CONFIG_IDS } from '../config/dom-config-reader.js';\n\n/**\n * Result of a PIN reset.\n */\nexport interface PinResetResult {\n ok: boolean;\n /** User-facing error message when `ok` is false. */\n error?: string;\n /** The updated student record when `ok` is true. */\n updated?: StudentRecord;\n}\n\n/**\n * Reset a student's PIN and write an audit event.\n *\n * @param student - Student whose PIN to reset\n * @returns Success with the updated record, or failure with a message\n */\nexport async function resetStudentPin(student: StudentRecord): Promise {\n const dbName = readDbName();\n if (!dbName) {\n return {\n ok: false,\n error: `Database name not configured. Add dbName to page.`,\n };\n }\n\n try {\n const storage = getStorageAdapter(dbName);\n await storage.init();\n\n const updated = resetPin(student);\n await storage.saveStudent(updated);\n\n const auditEvent: PinResetEvent = {\n eventId: crypto.randomUUID(),\n serviceId: student.serviceId,\n resetBy: 'instructor',\n resetAt: new Date().toISOString(),\n release: student.release,\n };\n await storage.saveAuditEvent(auditEvent);\n\n return { ok: true, updated };\n } catch (err) {\n console.error('PIN reset error:', err);\n return { ok: false, error: 'Failed to reset PIN. Please try again.' };\n }\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","import{nothing as t,noChange as i}from\"../lit-html.js\";import{Directive as r,PartType as s,directive as n}from\"../directive.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class e extends r{constructor(i){if(super(i),this.it=t,i.type!==s.CHILD)throw Error(this.constructor.directiveName+\"() can only be used in child bindings\")}render(r){if(r===t||null==r)return this._t=void 0,this.it=r;if(r===i)return r;if(\"string\"!=typeof r)throw Error(this.constructor.directiveName+\"() called with a non-string value\");if(r===this.it)return this._t;this.it=r;const s=[r];return s.raw=s,this._t={_$litType$:this.constructor.resultType,strings:s,values:[]}}}e.directiveName=\"unsafeHTML\",e.resultType=1;const o=n(e);export{e as UnsafeHTMLDirective,o as unsafeHTML};\n//# sourceMappingURL=unsafe-html.js.map\n","/**\n * Confirmation dialog component\n *\n * Reusable confirmation modal using qd-modal base.\n * Supports confirm/cancel buttons with optional destructive styling.\n *\n * Feature: 007-lit-component-refactor\n *\n * @element qd-confirm-dialog\n * @fires {CustomEvent} qd:confirm - Emitted when confirm button is clicked\n * @fires {CustomEvent} qd:cancel - Emitted when cancel button is clicked or dialog is dismissed\n */\n\nimport { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js';\nimport './qd-modal.js';\n\n/** Inline styles for the slotted dialog body (see the note on `styles`). */\nconst CONTENT_STYLES = {\n content: 'padding: 8px 0;',\n message: 'font-size: 14px; color: #333; line-height: 1.5; margin-bottom: 16px;',\n label: 'display: block; font-size: 13px; color: #333; margin: 0 0 4px;',\n input:\n 'width: 100%; box-sizing: border-box; padding: 8px 10px; border: 1px solid #ccc; border-radius: 4px; font-size: 14px; margin-bottom: 16px;',\n row: 'display: flex; gap: 8px; justify-content: flex-end;',\n button:\n 'padding: 8px 16px; border: none; border-radius: 4px; font-size: 13px; font-weight: 500; cursor: pointer;',\n cancel: 'background: #e0e0e0; color: #333;',\n confirm: 'background: #0066cc; color: white;',\n destructive: 'background: #d32f2f; color: white;',\n disabled: 'background: #ccc; color: white; cursor: not-allowed;',\n} as const;\n\n@customElement('qd-confirm-dialog')\nexport class QdConfirmDialog extends LitElement {\n /*\n * The dialog body is slotted into , which moves itself to\n * document.body when it opens. Slotted light DOM then leaves this\n * component's shadow root, so shadow-scoped styles stop applying and the\n * dialog rendered with browser-default buttons (SRD 013 UX-01). The body is\n * therefore styled inline (see CONTENT_STYLES), which survives the move and\n * adds no global CSS.\n */\n static override styles = css`\n :host {\n display: contents;\n }\n `;\n\n /**\n * Whether dialog is open\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n /**\n * Dialog title\n */\n @property({ type: String })\n title = 'Confirm';\n\n /**\n * Message to display (supports HTML)\n */\n @property({ type: String })\n message = '';\n\n /**\n * Text for confirm button\n */\n @property({ type: String })\n confirmText = 'Confirm';\n\n /**\n * Text for cancel button\n */\n @property({ type: String })\n cancelText = 'Cancel';\n\n /**\n * Whether this is a destructive action (red confirm button)\n */\n @property({ type: Boolean })\n destructive = false;\n\n /**\n * Ask for the instructor password before confirming (SRD 013 SEC-03).\n * The typed password is sent in the `qd:confirm` event detail; the caller\n * verifies it.\n */\n @property({ type: Boolean })\n requirePassword = false;\n\n /** Password typed into the dialog when {@link requirePassword} is set */\n @state()\n private password = '';\n\n /**\n * Show the dialog\n */\n show(): void {\n this.open = true;\n }\n\n /**\n * Close the dialog\n */\n close(): void {\n this.open = false;\n }\n\n /**\n * Handle modal close from qd-modal (backdrop click, Escape)\n */\n private handleModalClose = (): void => {\n this.close();\n this.dispatchEvent(\n new CustomEvent('qd:cancel', {\n bubbles: true,\n composed: true,\n }),\n );\n };\n\n /**\n * Handle confirm button click\n */\n private handleConfirm = (): void => {\n if (this.requirePassword && !this.password) {\n return;\n }\n const password = this.password;\n this.password = '';\n this.close();\n this.dispatchEvent(\n new CustomEvent('qd:confirm', {\n detail: this.requirePassword ? { password } : undefined,\n bubbles: true,\n composed: true,\n }),\n );\n };\n\n private handlePasswordInput = (e: Event): void => {\n this.password = (e.target as HTMLInputElement).value;\n };\n\n /**\n * Handle cancel button click\n */\n private handleCancel = (): void => {\n this.password = '';\n this.close();\n this.dispatchEvent(\n new CustomEvent('qd:cancel', {\n bubbles: true,\n composed: true,\n }),\n );\n };\n\n /** Confirm stays disabled until a required password has been typed. */\n private get confirmBlocked(): boolean {\n return this.requirePassword && !this.password;\n }\n\n override render() {\n return html`\n \n ${this.title}\n\n
                                    \n
                                    ${unsafeHTML(this.message)}
                                    \n\n ${this.requirePassword\n ? html`Instructor password\n e.key === 'Enter' && this.handleConfirm()}\n style=${CONTENT_STYLES.input}\n />`\n : nothing}\n\n
                                    \n ${this.cancelText\n ? html`\n ${this.cancelText}\n `\n : nothing}\n \n ${this.confirmText}\n \n
                                    \n
                                    \n
                                    \n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'qd-confirm-dialog': QdConfirmDialog;\n }\n}\n","/**\n * Student Table Component\n *\n * Reusable, searchable table of students that emits a per-row action event.\n * Shadow-DOM-isolated (styles in `static styles`, auto-escaped bindings).\n * Extracted from `qd-pin-reset-dialog` for reuse.\n *\n * @element qd-student-table\n * @fires {CustomEvent} select - Emitted when a row's action button is clicked\n */\n\nimport { LitElement, html, css } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport type { StudentRecord } from '../types/contracts.js';\n\n/**\n * Searchable student list with a per-row action button.\n */\n@customElement('qd-student-table')\nexport class QdStudentTable extends LitElement {\n /** Students to display. */\n @property({ type: Array })\n students: StudentRecord[] = [];\n\n /** Label for the per-row action button. */\n @property({ type: String })\n actionLabel = 'Select';\n\n @state()\n private searchText = '';\n\n static override styles = css`\n :host {\n display: block;\n }\n\n .search-input {\n width: 100%;\n box-sizing: border-box;\n padding: 8px 12px;\n border: 1px solid #ccc;\n border-radius: 4px;\n margin-bottom: 12px;\n font-size: 12px;\n }\n\n .search-input:focus {\n outline: none;\n border-color: #0066cc;\n box-shadow: 0 0 0 2px rgba(0, 102, 204, 0.1);\n }\n\n .student-table-container {\n max-height: 300px;\n overflow-y: auto;\n border: 1px solid #e0e0e0;\n border-radius: 4px;\n }\n\n .student-table {\n width: 100%;\n border-collapse: collapse;\n font-size: 12px;\n }\n\n .student-table th {\n text-align: left;\n padding: 8px 12px;\n background: #f5f5f5;\n border-bottom: 1px solid #e0e0e0;\n font-weight: 500;\n position: sticky;\n top: 0;\n }\n\n .student-table td {\n padding: 6px 12px;\n border-bottom: 1px solid #f0f0f0;\n }\n\n .student-table tbody tr:nth-child(even) {\n background: #f8f8f8;\n }\n\n .student-table tbody tr:hover {\n background: #f0f0f0;\n }\n\n .student-table tr:last-child td {\n border-bottom: none;\n }\n\n .action-btn {\n background: #ff5722;\n color: white;\n border: none;\n border-radius: 4px;\n padding: 4px 8px;\n font-size: 10px;\n cursor: pointer;\n }\n\n .action-btn:hover {\n background: #e64a19;\n }\n\n .empty-message {\n padding: 16px;\n text-align: center;\n color: #666;\n font-size: 12px;\n }\n `;\n\n private get filteredStudents(): StudentRecord[] {\n const search = this.searchText.toLowerCase().trim();\n if (!search) {\n return this.students;\n }\n return this.students.filter(\n (s) => s.name.toLowerCase().includes(search) || s.serviceId.toLowerCase().includes(search),\n );\n }\n\n private handleSearchInput = (e: Event): void => {\n this.searchText = (e.target as HTMLInputElement).value;\n };\n\n private emitSelect(student: StudentRecord): void {\n this.dispatchEvent(\n new CustomEvent('select', { detail: student, bubbles: true, composed: true }),\n );\n }\n\n override render() {\n const filtered = this.filteredStudents;\n return html`\n \n
                                    \n ${filtered.length === 0\n ? html`
                                    \n ${this.searchText ? 'No matching students' : 'No students found'}\n
                                    `\n : html`\n \n \n \n \n \n \n \n \n ${filtered.map(\n (s) =>\n html`\n \n \n \n `,\n )}\n \n
                                    NameService ID${this.actionLabel}
                                    ${s.name}${s.serviceId}\n \n
                                    `}\n
                                    \n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'qd-student-table': QdStudentTable;\n }\n}\n","/**\n * PIN Reset Dialog Component\n *\n * Modal dialog for instructors to reset student PINs.\n * Shows student list with search and reset confirmation.\n * Uses qd-modal base for consistent modal behavior.\n *\n * @element qd-pin-reset-dialog\n * @fires {CustomEvent<{serviceId: string}>} qd:pin-reset - Emitted when PIN is reset\n * @fires {CustomEvent} close - Emitted when dialog is closed\n *\n * Feature: 007-lit-component-refactor\n */\n\nimport { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport type { StudentRecord } from '../types/contracts.js';\nimport { resetStudentPin } from '../services/pin-reset-service.js';\nimport './qd-modal.js';\nimport './qd-confirm-dialog.js';\nimport './qd-student-table.js';\nimport { escapeHtml } from '../utils/dom-helpers.js';\nimport {\n confirmInstructorPassword,\n reauthErrorMessage,\n} from '../services/auth/instructor-session.js';\n\n@customElement('qd-pin-reset-dialog')\nexport class QdPinResetDialog extends LitElement {\n /**\n * Students available for PIN reset\n */\n @property({ type: Array })\n students: StudentRecord[] = [];\n\n /**\n * Whether dialog is visible\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n /**\n * Student being confirmed for reset\n */\n @state()\n private confirmingStudent: StudentRecord | null = null;\n\n /**\n * Whether confirmation dialog is open\n */\n @state()\n private confirmDialogOpen = false;\n\n /**\n * Error message to display\n */\n @state()\n private errorMessage = '';\n\n static styles = css`\n :host {\n display: contents;\n }\n\n .pin-reset-content {\n min-width: 400px;\n max-width: 500px;\n }\n\n .error-message {\n color: #d32f2f;\n font-size: 11px;\n margin-top: 8px;\n padding: 8px;\n background: #ffebee;\n border-radius: 4px;\n }\n `;\n\n /**\n * Backward compatibility: Support both 'open' and 'showModal' props\n */\n @property({ type: Boolean })\n set showModal(value: boolean) {\n this.open = value;\n }\n get showModal(): boolean {\n return this.open;\n }\n\n /**\n * Close the modal\n */\n close(): void {\n this.open = false;\n this.confirmingStudent = null;\n this.confirmDialogOpen = false;\n this.errorMessage = '';\n }\n\n /**\n * Show the modal\n */\n show(): void {\n this.open = true;\n }\n\n /**\n * Handle modal close from qd-modal\n */\n private handleModalClose = (): void => {\n // Don't close main modal if confirm dialog is open\n if (this.confirmDialogOpen) {\n return;\n }\n this.close();\n this.dispatchEvent(new CustomEvent('close'));\n };\n\n /**\n * Show confirmation dialog for PIN reset\n */\n private handleResetClick = (student: StudentRecord): void => {\n this.confirmingStudent = student;\n this.confirmDialogOpen = true;\n };\n\n /**\n * Handle confirm button click in confirmation dialog\n */\n private handleConfirmReset = (e: CustomEvent<{ password?: string } | undefined>): void => {\n const student = this.confirmingStudent;\n if (!student) {\n return;\n }\n void this.verifyThenReset(student, e.detail?.password ?? '');\n };\n\n /**\n * Re-check the instructor password at the moment of the reset\n * (SRD 013 SEC-03), then reset the PIN.\n */\n private async verifyThenReset(student: StudentRecord, password: string): Promise {\n const reauth = await confirmInstructorPassword(password);\n if (!reauth.ok) {\n this.confirmDialogOpen = false;\n this.confirmingStudent = null;\n this.errorMessage = `${reauthErrorMessage(reauth)}. The PIN was not reset.`;\n return;\n }\n await this.executeReset(student);\n }\n\n /**\n * Handle cancel button click in confirmation dialog\n */\n private handleCancelReset = (): void => {\n this.confirmDialogOpen = false;\n this.confirmingStudent = null;\n };\n\n private async executeReset(student: StudentRecord) {\n const result = await resetStudentPin(student);\n\n this.confirmDialogOpen = false;\n this.confirmingStudent = null;\n\n if (!result.ok) {\n this.errorMessage = result.error ?? 'Failed to reset PIN. Please try again.';\n return;\n }\n\n // Update local data to trigger reactivity\n if (result.updated) {\n const index = this.students.findIndex((s) => s.serviceId === student.serviceId);\n if (index >= 0) {\n this.students[index] = result.updated;\n this.students = [...this.students];\n }\n }\n\n this.errorMessage = '';\n this.dispatchEvent(\n new CustomEvent('qd:pin-reset', {\n detail: {\n serviceId: student.serviceId,\n resetBy: 'instructor',\n timestamp: new Date().toISOString(),\n },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n override render() {\n const student = this.confirmingStudent;\n // Student name and service ID come from stored records: escape them before\n // they reach qd-confirm-dialog, which renders the message with unsafeHTML.\n const confirmMessage = student\n ? `Reset PIN for ${escapeHtml(student.name)} (${escapeHtml(student.serviceId)})?
                                    They will need to create a new PIN on next login.`\n : '';\n\n // Always render qd-modal so it can properly restore position when closing\n return html`\n \n Reset Student PIN\n\n ${this.open\n ? html`\n
                                    \n ) => this.handleResetClick(e.detail)}\n >\n\n ${this.errorMessage\n ? html`\n ${this.errorMessage}\n
                                    `\n : ''}\n \n `\n : nothing}\n
                                    \n\n \n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'qd-pin-reset-dialog': QdPinResetDialog;\n }\n}\n","/**\n * Instructor component orchestrator\n * Delegates to sub-components based on unlock state\n */\n\nimport { LitElement, html, css } from 'lit';\nimport { customElement, state } from 'lit/decorators.js';\nimport { sharedStyles } from './shared-styles.js';\nimport type { StudentRecord, SessionData } from '../../types/contracts.js';\nimport { STORAGE_KEYS } from '../../types/contracts.js';\nimport { getJSON, INSTRUCTOR_SHOW_ANSWERS_KEY } from '../../utils/storage-helpers.js';\nimport { isInstructor } from '../../utils/session-state.js';\nimport { SessionService } from '../../services/session.js';\nimport { getStorageService } from '../../services/storage-service.js';\nimport './qd-instructor-unlock.js';\nimport './qd-instructor-scores.js';\nimport './qd-instructor-export.js';\nimport './qd-instructor-manage.js';\nimport '../qd-build-info.js';\nimport '../qd-pin-reset-dialog.js';\nimport '../qd-help-trigger.js';\nimport '../qd-help-popup.js';\nimport { getHelpContent } from '../../config/help-content.js';\n\n/**\n * Main instructor panel orchestrating all sub-components\n *\n * State management:\n * - unlocked: false → shows unlock component\n * - unlocked: true → shows scores/export/manage controls\n *\n * @fires qd:instructor-unlock - Forwarded from unlock component\n * @fires qd:data-cleared - Forwarded from manage component\n */\n@customElement('qd-instructor')\nexport class QdInstructor extends LitElement {\n static override styles = [\n sharedStyles,\n css`\n :host {\n display: none; /* Hidden by default, shown when instructor logged in */\n }\n\n :host([data-show]) {\n display: block;\n }\n `,\n ];\n\n @state()\n private unlocked = false;\n\n @state()\n private showScores = false;\n\n @state()\n private students: StudentRecord[] = [];\n\n @state()\n private showStudentAnswers = false;\n\n @state()\n private showPinReset = false;\n\n @state()\n private helpOpen = false;\n\n connectedCallback() {\n super.connectedCallback();\n this.updateVisibility();\n\n // Auto-unlock if instructor is already logged in\n const instructorActive = isInstructor();\n if (instructorActive) {\n this.unlock();\n // Load students data for export button\n void this.refreshStudents();\n }\n\n // Restore toggle state from sessionStorage\n const savedState = sessionStorage.getItem(INSTRUCTOR_SHOW_ANSWERS_KEY);\n if (savedState !== null) {\n this.showStudentAnswers = savedState === 'true';\n\n // If toggle was enabled and instructor is logged in, dispatch event to show answers\n if (this.showStudentAnswers && instructorActive) {\n // Dispatch after tables are enhanced (use setTimeout to defer)\n setTimeout(() => {\n this.dispatchEvent(\n new CustomEvent('qd:instructor-show-answers', {\n bubbles: true,\n composed: true,\n }),\n );\n }, 100);\n }\n }\n\n document.addEventListener('qd:login', this.handleLoginEvent);\n document.addEventListener('qd:logout', this.handleLogoutEvent);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n document.removeEventListener('qd:login', this.handleLoginEvent);\n document.removeEventListener('qd:logout', this.handleLogoutEvent);\n }\n\n /**\n * Update visibility based on instructor session state\n */\n private updateVisibility(): void {\n this.toggleAttribute('data-show', isInstructor());\n }\n\n private handleLoginEvent = (event: Event): void => {\n const customEvent = event as CustomEvent<{ role?: string }>;\n const role = customEvent.detail?.role;\n\n this.updateVisibility();\n\n // Auto-unlock if instructor logged in\n if (role === 'instructor') {\n this.unlock();\n // Load students data for export button\n void this.refreshStudents();\n }\n };\n\n private handleLogoutEvent = (): void => {\n this.updateVisibility();\n this.lock();\n };\n\n /**\n * Set student data for display\n */\n setStudents(students: StudentRecord[]): void {\n this.students = students;\n }\n\n /**\n * Load all students for the current release into `this.students`.\n *\n * The single source for loading students; every panel/handler that needs a\n * fresh list calls this instead of duplicating the load/try-catch.\n */\n private async refreshStudents(): Promise {\n const session = getJSON(STORAGE_KEYS.SESSION);\n if (!session) return;\n\n try {\n const storageService = getStorageService();\n this.students = await storageService.getStudentsByRelease(session.release);\n } catch (err) {\n console.error('Failed to load students:', err);\n this.students = [];\n }\n }\n\n /**\n * Unlock instructor panel (call after successful auth)\n */\n unlock(): void {\n this.unlocked = true;\n }\n\n /**\n * Lock instructor panel (call on logout)\n */\n lock(): void {\n this.unlocked = false;\n this.showScores = false;\n this.showPinReset = false;\n }\n\n private handleResetPins = async (): Promise => {\n // Load all students for current release before showing reset dialog\n await this.refreshStudents();\n this.showPinReset = true;\n };\n\n private handleClosePinReset = (): void => {\n this.showPinReset = false;\n };\n\n private handlePinReset = (): void => {\n // Forward event to parent\n this.dispatchEvent(\n new CustomEvent('qd:pin-reset', {\n bubbles: true,\n composed: true,\n }),\n );\n };\n\n private handleUnlock = (): void => {\n this.unlocked = true;\n // Forward event to parent\n this.dispatchEvent(\n new CustomEvent('qd:instructor-unlock', {\n bubbles: true,\n composed: true,\n }),\n );\n };\n\n private handleViewScores = async (): Promise => {\n // Load all students for current release before showing scores\n await this.refreshStudents();\n this.showScores = true;\n };\n\n private handleCloseScores = (): void => {\n this.showScores = false;\n };\n\n private handleDataCleared = (): void => {\n // Forward event to parent\n this.dispatchEvent(\n new CustomEvent('qd:data-cleared', {\n bubbles: true,\n composed: true,\n }),\n );\n // Refresh students list\n this.students = [];\n };\n\n private handleLogout = (): void => {\n const session = getJSON(STORAGE_KEYS.SESSION);\n\n // Clear session from storage (this will also emit qd:logout event)\n const sessionService = new SessionService();\n sessionService.clearSession();\n\n // Dispatch event for any additional listeners\n this.dispatchEvent(\n new CustomEvent('qd:logout', {\n detail: {\n serviceId: session?.serviceId || 'unknown',\n },\n bubbles: true,\n composed: true,\n }),\n );\n };\n\n private handleToggleStudentAnswers = async (e: Event): Promise => {\n const checkbox = e.target as HTMLInputElement;\n this.showStudentAnswers = checkbox.checked;\n\n // FR-004: Load student data in fresh session when toggle is enabled\n if (this.showStudentAnswers && this.students.length === 0) {\n await this.refreshStudents();\n }\n\n // Emit event to notify table enhancers\n const eventName = this.showStudentAnswers\n ? 'qd:instructor-show-answers'\n : 'qd:instructor-hide-answers';\n\n this.dispatchEvent(\n new CustomEvent(eventName, {\n bubbles: true,\n composed: true,\n }),\n );\n\n // Persist toggle state in sessionStorage\n sessionStorage.setItem(INSTRUCTOR_SHOW_ANSWERS_KEY, String(this.showStudentAnswers));\n };\n\n private handleHelpOpen = (): void => {\n this.helpOpen = true;\n };\n\n private handleHelpClose = (): void => {\n this.helpOpen = false;\n };\n\n override render() {\n if (!this.unlocked) {\n return html`\n \n `;\n }\n\n return html`\n
                                    \n
                                    \n Instructor Mode\n \n \n
                                    \n\n \n\n \n\n \n\n \n \n \n \n\n \n\n \n\n \n\n \n
                                    \n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'qd-instructor': QdInstructor;\n }\n}\n","/**\n * Component Injector\n * Injects UI components into the DOM during initialization\n */\n\nimport '../components/qd-login.js';\nimport '../components/qd-status.js';\nimport '../components/qd-instructor/qd-instructor.js';\nimport { info } from '../utils/logger.js';\n\n/**\n * Default container selectors for component injection\n */\nexport const DEFAULT_CONTAINERS = {\n /** Where to inject status panel (Oxygen WebHelp default) */\n statusPanel: '.wh_top_menu_and_indexterms_link',\n} as const;\n\n/**\n * Configuration for component injection\n */\nexport interface ComponentInjectorConfig {\n /** Selector for status panel container */\n statusPanelContainer?: string;\n /** Database name for storage service */\n dbName?: string;\n}\n\n/**\n * Inject login component into status panel container\n */\nexport function injectLoginComponent(containerSelector: string): HTMLElement | null {\n const container = document.querySelector(containerSelector);\n if (!container) {\n info(`Login component not injected: container '${containerSelector}' not found`);\n return null;\n }\n\n const login = document.createElement('qd-login');\n container.appendChild(login);\n info('Login component injected');\n return login;\n}\n\n/**\n * Inject status component into status panel container\n */\nexport function injectStatusComponent(containerSelector: string): HTMLElement | null {\n const container = document.querySelector(containerSelector);\n if (!container) {\n info(`Status component not injected: container '${containerSelector}' not found`);\n return null;\n }\n\n const status = document.createElement('qd-status');\n container.appendChild(status);\n info('Status component injected');\n return status;\n}\n\n/**\n * Inject instructor component (shown when instructor unlocked)\n */\nexport function injectInstructorComponent(containerSelector: string): HTMLElement | null {\n const container = document.querySelector(containerSelector);\n if (!container) {\n info(`Instructor component not injected: container '${containerSelector}' not found`);\n return null;\n }\n\n const instructor = document.createElement('qd-instructor');\n container.appendChild(instructor);\n info('Instructor component injected');\n return instructor;\n}\n\n/**\n * Inject all UI components based on configuration\n */\nexport function injectComponents(config: ComponentInjectorConfig = {}): void {\n const statusPanelContainer = config.statusPanelContainer || DEFAULT_CONTAINERS.statusPanel;\n\n // Always inject login component (handles showing/hiding based on session state)\n injectLoginComponent(statusPanelContainer);\n\n // Always inject status component (handles showing/hiding based on session state)\n injectStatusComponent(statusPanelContainer);\n\n // Always inject instructor component (hidden until unlocked)\n injectInstructorComponent(statusPanelContainer);\n\n markPanelHost(statusPanelContainer);\n}\n\n/** Class on the element that hosts the panels. */\nexport const PANEL_HOST_CLASS = 'qd-panel-host';\n/** Class on the host's parent, so narrow screens can give the host its own row. */\nexport const PANEL_HOST_PARENT_CLASS = 'qd-panel-host-parent';\n\n/**\n * Tag the panel container and its parent so the global stylesheet can move\n * the panels onto their own full-width header row on narrow screens. Oxygen's\n * header row does not wrap, so at 768 px the panel ran off the right edge and\n * hid Logout (SRD 013 UX-06).\n *\n * @param containerSelector - Selector for the panel container\n */\nfunction markPanelHost(containerSelector: string): void {\n const container = document.querySelector(containerSelector);\n if (!container) {\n return;\n }\n container.classList.add(PANEL_HOST_CLASS);\n container.parentElement?.classList.add(PANEL_HOST_PARENT_CLASS);\n}\n","/**\n * Home Page Badge Enhancer\n *\n * Applies R/A/G (Red/Amber/Green) badges to navigation links based on\n * page completion states. Updates badges in real-time when states change.\n *\n * Features:\n * - Queries links with class .quizPageBtn\n * - Reads completion state from SessionCache\n * - Applies CSS classes: qd-badge-red, qd-badge-amber, qd-badge-green\n * - Listens for qd:state-changed events for real-time updates\n * - Handles missing data gracefully\n *\n * Badge Colors:\n * - Red: Unstarted (no answers provided)\n * - Amber: Incomplete (some answered OR any incorrect)\n * - Green: Complete (all answered AND all correct)\n */\n\nimport type { PageId, SessionCache, CompletionState } from '../types/contracts.js';\nimport { getJSON } from '../utils/storage-helpers.js';\nimport { STORAGE_KEYS } from '../types/contracts.js';\nimport { isInstructor } from '../utils/session-state.js';\nimport { info } from '../utils/logger.js';\n\n/**\n * CSS class constants for badges\n */\nconst BADGE_CLASSES = {\n red: 'qd-badge-red',\n amber: 'qd-badge-amber',\n green: 'qd-badge-green',\n} as const;\n\n/**\n * Map completion states to badge colors\n */\nconst STATE_TO_BADGE: Record = {\n unstarted: 'red',\n incomplete: 'amber',\n complete: 'green',\n};\n\n/**\n * Remove all R/A/G badge classes from a link, reverting it to native styling.\n *\n * @param link - Link element to strip badge classes from\n */\nfunction clearBadges(link: HTMLElement): void {\n Object.values(BADGE_CLASSES).forEach((className) => {\n link.classList.remove(className);\n });\n}\n\n/**\n * Apply badge class to a link element\n *\n * @param link - Link element to apply badge to\n * @param state - Completion state\n */\nfunction applyBadge(link: HTMLElement, state: CompletionState): void {\n // Remove all existing badge classes\n clearBadges(link);\n\n // Apply new badge class based on state\n const badgeColor = STATE_TO_BADGE[state];\n const badgeClass = BADGE_CLASSES[badgeColor];\n link.classList.add(badgeClass);\n}\n\n/**\n * Get completion state for a page from session cache\n *\n * @param pageId - Page ID to look up\n * @param cache - Session cache\n * @returns Completion state (defaults to 'unstarted' if not found)\n */\nfunction getPageState(pageId: PageId | null, cache: SessionCache | null): CompletionState {\n if (!pageId || !cache?.pages) {\n return 'unstarted';\n }\n\n const pageData = cache.pages[pageId];\n return pageData?.state ?? 'unstarted';\n}\n\n/**\n * Update badge for a single link\n *\n * @param link - Link element with data-page-id attribute\n */\nfunction updateLinkBadge(link: HTMLElement): void {\n const pageId = link.getAttribute('data-page-id');\n const cache = getJSON(STORAGE_KEYS.CACHE);\n const state = getPageState(pageId, cache);\n\n applyBadge(link, state);\n}\n\n/**\n * Update all badges from current session cache\n * If no session exists, remove all badges\n */\nfunction updateAllBadges(): void {\n const links = document.querySelectorAll('.quizPageBtn');\n const cache = getJSON(STORAGE_KEYS.CACHE);\n const instructorActive = isInstructor();\n\n // If instructor mode OR no cache, remove all badge styling\n if (!cache || instructorActive) {\n links.forEach((link) => {\n clearBadges(link);\n });\n if (instructorActive) {\n info(`Removed badge styling from ${links.length} page links (instructor mode)`);\n } else {\n info(`Removed badge styling from ${links.length} page links (no session)`);\n }\n return;\n }\n\n // Cache exists and not instructor, apply badges based on state\n links.forEach((link) => {\n updateLinkBadge(link);\n });\n\n info(`Updated ${links.length} page badges`);\n}\n\n/**\n * Handle qd:state-changed event\n *\n * @param event - Custom event with pageId and state\n */\nfunction handleStateChanged(event: Event): void {\n const customEvent = event as CustomEvent<{ pageId: PageId; state: CompletionState }>;\n const { pageId } = customEvent.detail;\n\n // Find link with matching pageId\n const link = document.querySelector(`[data-page-id=\"${pageId}\"]`);\n\n if (link && link.classList.contains('quizPageBtn')) {\n updateLinkBadge(link);\n info(`Updated badge for page ${pageId}`);\n }\n}\n\n/**\n * Handle qd:cache-rebuild event - refresh all badges after cache is ready\n */\nfunction handleCacheRebuild(): void {\n info('Cache rebuilt, refreshing all badges');\n updateAllBadges();\n}\n\n/**\n * Handle qd:logout event - remove all badge styling\n */\nfunction handleLogout(): void {\n info('Logout detected, removing all badge styling');\n const links = document.querySelectorAll('.quizPageBtn');\n\n links.forEach((link) => {\n // Remove all badge classes to revert to native button styling\n clearBadges(link);\n });\n\n info(`Removed badge styling from ${links.length} page links`);\n}\n\n/**\n * Extract pageId from link href attribute\n *\n * @param link - Link element with href\n * @returns PageId extracted from href, or null if invalid\n *\n * @example\n * href=\"Pages/quiz-mcq.html\" → \"quiz-mcq\"\n * href=\"gram-1.html\" → \"gram-1\"\n */\nfunction extractPageIdFromHref(link: HTMLAnchorElement): PageId | null {\n const href = link.getAttribute('href');\n if (!href) {\n return null;\n }\n\n // Extract filename from href (last segment after /)\n const filename = href.substring(href.lastIndexOf('/') + 1);\n\n // Remove .html or .htm extension\n const pageId = filename.replace(/\\.html?$/i, '');\n\n return pageId || null;\n}\n\n/**\n * Enhance home page with R/A/G badges on navigation links\n *\n * This function:\n * 1. Queries all links with class .quizPageBtn\n * 2. Extracts pageId from href attribute and sets data-page-id\n * 3. Reads SessionCache to determine page completion states\n * 4. Applies appropriate badge CSS classes\n * 5. Sets up event listener for real-time updates\n *\n * @example\n * ```html\n * MCQ Questions\n * ```\n *\n * After enhancement:\n * - data-page-id attribute set: data-page-id=\"quiz-mcq\"\n * - Unstarted pages: class=\"quizPageBtn qd-badge-red\"\n * - Incomplete pages: class=\"quizPageBtn qd-badge-amber\"\n * - Complete pages: class=\"quizPageBtn qd-badge-green\"\n */\nexport function enhanceHomeBadges(): void {\n // Find all navigation links\n const links = document.querySelectorAll('.quizPageBtn');\n\n // Extract pageId from href and set data-page-id attribute\n links.forEach((link) => {\n const pageId = extractPageIdFromHref(link);\n if (pageId) {\n link.setAttribute('data-page-id', pageId);\n info(`Set data-page-id=\"${pageId}\" for link: ${link.textContent?.trim()}`);\n } else {\n info(`Failed to extract pageId from href: ${link.getAttribute('href')}`);\n }\n });\n\n // Apply initial badges\n updateAllBadges();\n\n // Listen for state changes and update badges in real-time\n document.addEventListener('qd:state-changed', handleStateChanged);\n\n // Listen for cache rebuild (after login) to refresh badges\n document.addEventListener('qd:cache-rebuild', handleCacheRebuild);\n\n // Listen for logout events to reset badges\n document.addEventListener('qd:logout', handleLogout);\n\n info('Home page badges enhanced with event listeners');\n}\n","/**\n * Bootstrap Module\n * Main initialization logic for the Sonar Quiz System\n */\n\nimport { info, warn } from '../utils/logger.js';\nimport { EventCoordinator } from './event-coordinator.js';\nimport { SessionCoordinator } from './session-coordinator.js';\nimport { injectComponents, type ComponentInjectorConfig } from './component-injector.js';\nimport { enhanceQuizTable, getQuizTableMetadata } from '../enhancers/quiz-table.js';\nimport { revealInstructorAnswers } from '../enhancers/instructor-answer-reveal.js';\nimport { enhanceAnalysisTable } from '../enhancers/analysis-table.js';\nimport { enhanceHomeBadges } from '../enhancers/home-badges.js';\nimport { getStorageService } from '../services/storage-service.js';\nimport { getJSON, setJSON } from '../utils/storage-helpers.js';\nimport { getPageIdFromUrl } from '../utils/page-id.js';\nimport { injectGlobalStyles } from './global-styles.js';\nimport { STORAGE_KEYS, type SessionData, type SessionCache } from '../types/contracts.js';\nimport { isInstructor } from '../utils/session-state.js';\nimport { restoreInstructorSession } from '../services/auth/instructor-session.js';\n\n/**\n * Bootstrap configuration options\n */\nexport interface BootstrapConfig extends ComponentInjectorConfig {\n /** Auto-enhance quiz tables on init */\n autoEnhanceQuizTables?: boolean;\n /** Auto-enhance analysis tables on init */\n autoEnhanceAnalysisTables?: boolean;\n /** Auto-enhance home page badges on init */\n autoEnhanceHomeBadges?: boolean;\n}\n\n/**\n * Bootstrap state\n */\ninterface BootstrapState {\n initialized: boolean;\n eventCoordinator?: EventCoordinator;\n sessionCoordinator?: SessionCoordinator;\n}\n\nconst state: BootstrapState = {\n initialized: false,\n};\n\n/**\n * Initialize the Sonar Quiz System\n *\n * @param config - Bootstrap configuration\n */\nexport async function bootstrap(config: BootstrapConfig = {}): Promise {\n if (state.initialized) {\n warn('Bootstrap already initialized, skipping');\n return;\n }\n\n info('Bootstrapping Sonar Quiz System...');\n\n // 0. Inject required global styles\n injectGlobalStyles();\n\n // 1. Initialize storage service (IndexedDB)\n // dbName is REQUIRED - readDOMConfig() throws if missing\n if (!config.dbName) {\n const msg = 'FATAL: dbName not provided in bootstrap config. Processing stopped.';\n console.error(msg);\n throw new Error(msg);\n }\n const storageService = getStorageService(config.dbName);\n await storageService.init();\n\n // 1b. Re-verify any stored instructor secret before components or enhancers\n // ask whether this is an instructor (SRD 013 SEC-01, SEC-02)\n await restoreInstructorSession();\n\n // 2. Initialize event coordinator\n const eventCoordinator = new EventCoordinator();\n eventCoordinator.initialize();\n state.eventCoordinator = eventCoordinator;\n\n // 3. Initialize session coordinator\n const sessionCoordinator = new SessionCoordinator();\n sessionCoordinator.initialize();\n state.sessionCoordinator = sessionCoordinator;\n\n // 4. Inject UI components\n injectComponents({\n statusPanelContainer: config.statusPanelContainer,\n dbName: config.dbName,\n });\n\n // 5. Auto-enhance tables if enabled\n if (config.autoEnhanceQuizTables !== false) {\n enhanceAllTables('table.qd-quiz', 'quiz', (table) =>\n enhanceQuizTable(table, { interactive: false }),\n );\n }\n\n if (config.autoEnhanceAnalysisTables !== false) {\n enhanceAllTables('table.qd-analysis', 'analysis', (table) =>\n enhanceAnalysisTable(table, { interactive: false }),\n );\n }\n\n if (config.autoEnhanceHomeBadges !== false) {\n enhanceHomeBadgesIfPresent();\n }\n\n // 6. Check for existing session and upgrade tables if logged in\n await checkExistingSessionAndUpgradeTables();\n\n // 7. Listen for instructor login events to dynamically reveal answers\n // qd:login with role='instructor' is dispatched by qd-login component\n document.addEventListener('qd:login', (event) => {\n const detail = (event as CustomEvent<{ role?: string }>).detail;\n if (detail?.role === 'instructor') {\n info('Instructor login event received, revealing quiz answers');\n revealQuizAnswersForInstructor();\n }\n });\n\n state.initialized = true;\n info('Bootstrap complete');\n}\n\n/**\n * Enhance all tables matching a selector in non-interactive mode.\n *\n * Shared by quiz and analysis enhancement (they differ only in selector,\n * label, and enhancer). Tables start non-interactive (answers hidden /\n * read-only) and are upgraded to interactive after login.\n *\n * @param selector - CSS selector for the tables\n * @param label - Human-readable label for logging\n * @param enhance - Per-table non-interactive enhancer\n */\nfunction enhanceAllTables(\n selector: string,\n label: string,\n enhance: (table: HTMLTableElement) => void,\n): void {\n const tables = document.querySelectorAll(selector);\n\n if (tables.length === 0) {\n info(`No ${label} tables found to enhance`);\n return;\n }\n\n info(`Enhancing ${tables.length} ${label} table(s) in non-interactive mode...`);\n\n let enhanced = 0;\n for (const table of Array.from(tables)) {\n try {\n enhance(table);\n enhanced++;\n } catch (err) {\n warn(`Failed to enhance ${label} table: ${(err as Error).message}`);\n }\n }\n\n info(`Enhanced ${enhanced} of ${tables.length} ${label} table(s) (non-interactive)`);\n}\n\n/**\n * Enhance home page badges if .quizPageBtn links exist\n */\nfunction enhanceHomeBadgesIfPresent(): void {\n const links = document.querySelectorAll('.quizPageBtn');\n\n if (links.length === 0) {\n info('No .quizPageBtn links found, skipping badge enhancement');\n return;\n }\n\n info(`Enhancing home page badges for ${links.length} link(s)...`);\n\n try {\n enhanceHomeBadges();\n info('Home page badges enhanced');\n } catch (err) {\n warn(`Failed to enhance home badges: ${(err as Error).message}`);\n }\n}\n\n/**\n * Reveal quiz answers for instructor mode\n * Called when instructor logs in (either on page load or dynamically via event)\n * Shows answer and detail columns that were hidden for security\n */\nfunction revealQuizAnswersForInstructor(): void {\n const pageId = getPageIdFromUrl();\n\n // Reveal answer and detail columns for instructor (they're hidden by default in non-interactive mode)\n const quizTables = document.querySelectorAll('table.qd-quiz');\n\n if (quizTables.length === 0) {\n info('No quiz tables found to reveal answers for');\n return;\n }\n\n quizTables.forEach((table) => {\n // Get parsed metadata (contains correct answers)\n const metadata = getQuizTableMetadata(table);\n if (!metadata) return;\n\n // Update metadata with pageId\n metadata.pageId = pageId;\n\n // Reveal answers + wire instructor toggles via the shared enhancer.\n // The initial-load path adds the qd-quiz-instructor CSS visibility class.\n revealInstructorAnswers(table, metadata, { addInstructorClass: true });\n });\n\n info(`Revealed answers for instructor on ${quizTables.length} quiz table(s)`);\n}\n\n/**\n * Check for existing session and upgrade tables to interactive mode\n * Called during bootstrap to handle page navigation with active session\n */\nasync function checkExistingSessionAndUpgradeTables(): Promise {\n // Check if instructor mode FIRST - instructors don't need student session\n const instructorActive = isInstructor();\n if (instructorActive) {\n info('Instructor session detected, revealing answers in non-interactive tables');\n revealQuizAnswersForInstructor();\n return;\n }\n\n // Check if student session exists\n const session = getJSON(STORAGE_KEYS.SESSION);\n if (!session) {\n info('No existing session, tables remain in non-interactive mode');\n return;\n }\n\n info(`Existing session detected for ${session.serviceId}, upgrading tables to interactive mode`);\n\n // Load or rebuild cache from IndexedDB\n const storageService = getStorageService();\n let cache = getJSON(STORAGE_KEYS.CACHE);\n\n if (!cache) {\n info('Cache not found, rebuilding from IndexedDB...');\n try {\n const studentRecord = await storageService.loadStudentRecord(session);\n cache = storageService.buildCache(studentRecord);\n setJSON(STORAGE_KEYS.CACHE, cache);\n info(`Cache rebuilt from IndexedDB: ${cache.totals.total} total questions`);\n } catch {\n warn('Failed to rebuild cache from IndexedDB, using empty cache');\n cache = {\n totals: { total: 0, answered: 0, correct: 0 },\n pages: {},\n };\n setJSON(STORAGE_KEYS.CACHE, cache);\n }\n }\n\n const pageId = getPageIdFromUrl();\n\n if (!pageId) {\n info('No pageId found, skipping table upgrade');\n return;\n }\n\n // Upgrade quiz tables to interactive mode\n const quizTables = document.querySelectorAll('table.qd-quiz');\n if (quizTables.length > 0) {\n info(`Upgrading ${quizTables.length} quiz table(s) to interactive mode...`);\n quizTables.forEach((table) => {\n enhanceQuizTable(table, { interactive: true, pageId });\n });\n }\n\n // Upgrade analysis tables to interactive mode\n const analysisTables = document.querySelectorAll('table.qd-analysis');\n if (analysisTables.length > 0) {\n info(`Upgrading ${analysisTables.length} analysis table(s) to interactive mode...`);\n analysisTables.forEach((table) => {\n enhanceAnalysisTable(table, { interactive: true, pageId });\n });\n }\n}\n\n/**\n * Cleanup bootstrap resources\n */\nexport function cleanup(): void {\n if (!state.initialized) {\n warn('Bootstrap not initialized, nothing to cleanup');\n return;\n }\n\n info('Cleaning up bootstrap resources...');\n\n state.eventCoordinator?.cleanup();\n state.sessionCoordinator?.cleanup();\n\n state.initialized = false;\n state.eventCoordinator = undefined;\n state.sessionCoordinator = undefined;\n\n info('Bootstrap cleanup complete');\n}\n\n/**\n * Check if bootstrap is initialized\n */\nexport function isInitialized(): boolean {\n return state.initialized;\n}\n\n/**\n * Get the event coordinator instance\n */\nexport function getEventCoordinator(): EventCoordinator | undefined {\n return state.eventCoordinator;\n}\n\n/**\n * Get the session coordinator instance\n */\nexport function getSessionCoordinator(): SessionCoordinator | undefined {\n return state.sessionCoordinator;\n}\n","/**\n * Global style injection.\n *\n * Owns the single global CSS literal required by the quiz system (the only\n * non-Shadow-DOM CSS) and injects it once. Extracted from `bootstrap.ts` so the\n * bootstrap module stays a thin sequencer.\n */\n\nimport { info } from '../utils/logger.js';\n\n/** Global CSS injected once into . */\nconst GLOBAL_CSS = `\n /* Sonar Quiz System - Global Styles */\n .qd-hidden {\n display: none !important;\n }\n\n /* Quiz table interactive mode styles */\n .qd-quiz-interactive .qd-quiz-input {\n width: 100%;\n padding: 0.5rem;\n font-size: inherit;\n border: 1px solid #ccc;\n border-radius: 4px;\n }\n\n /* Ensure select elements inherit font properly */\n .qd-quiz-interactive select.qd-quiz-input {\n font-family: inherit;\n font-size: inherit;\n }\n\n /* Visually hidden text that screen readers still announce (SRD 013 A11Y-02) */\n .qd-sr-only {\n position: absolute !important;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n\n /* Validation styling for answer cells */\n .qd-quiz-interactive .qd-answer-correct {\n background-color: #d4edda !important;\n border-color: #28a745 !important;\n }\n\n .qd-quiz-interactive .qd-answer-incorrect {\n background-color: #f8d7da !important;\n border-color: #dc3545 !important;\n }\n\n /* Non-colour correctness cue: a mark plus hidden text (SRD 013 A11Y-02) */\n .qd-answer-feedback {\n display: inline-block;\n margin-top: 4px;\n font-size: 0.9em;\n font-weight: 600;\n }\n\n .qd-answer-correct .qd-answer-feedback {\n color: #1e7b34;\n }\n\n .qd-answer-incorrect .qd-answer-feedback {\n color: #b02a37;\n }\n\n /* Invalid numeric input message (SRD 013 UX-03) */\n .qd-input-error {\n display: block;\n margin-top: 4px;\n font-size: 0.85em;\n color: #b02a37;\n }\n\n .qd-quiz-interactive .qd-quiz-input[aria-invalid='true'] {\n border-color: #b02a37;\n outline-color: #b02a37;\n }\n\n /* Prompt shown above quiz tables while nobody is logged in (SRD 013 UX-05) */\n .qd-login-notice {\n margin: 0 0 8px;\n padding: 6px 10px;\n border-left: 3px solid #1d6fb8;\n background: #e8f1fb;\n color: #0b4f8a;\n font-size: 0.9em;\n }\n\n /*\n * Narrow screens: give the header's panel container its own full-width row\n * so the login and status panels stay on screen (SRD 013 UX-06)\n */\n /* !important: Oxygen's c-no-wrap and Bootstrap's navbar-collapse rules\n outrank a single class; these only touch elements we marked */\n @media (max-width: 1000px) {\n .qd-panel-host-parent {\n flex-wrap: wrap !important;\n }\n\n .qd-panel-host-parent > .qd-panel-host {\n flex: 1 1 100% !important;\n max-width: 100% !important;\n justify-content: flex-end;\n }\n\n .qd-panel-host qd-login,\n .qd-panel-host qd-status,\n .qd-panel-host qd-instructor {\n max-width: 100%;\n }\n }\n\n /* Home page badge styles (R/A/G indicators) */\n .qd-badge-red {\n border-left: 4px solid #d32f2f !important;\n background-color: #ffebee !important;\n }\n\n .qd-badge-amber {\n border-left: 4px solid #ff9800 !important;\n background-color: #fff3e0 !important;\n }\n\n .qd-badge-green {\n border-left: 4px solid #4caf50 !important;\n background-color: #e8f5e9 !important;\n }\n\n /* Instructor-mode student answers/entries are now rendered by the\n Shadow-DOM / components, which\n own their styles. No global rules are needed here. */\n\n /* Modal error message styles (needed because qd-modal moves to body) */\n .error-message {\n color: #d32f2f;\n font-size: 12px;\n padding: 8px;\n background: #ffebee;\n border-radius: 4px;\n border-left: 3px solid #d32f2f;\n }\n `;\n\n/**\n * Inject the global CSS once. Must be called before any table enhancement.\n */\nexport function injectGlobalStyles(): void {\n // Check if styles already injected\n if (document.getElementById('qd-global-styles')) {\n return;\n }\n\n const style = document.createElement('style');\n style.id = 'qd-global-styles';\n style.textContent = GLOBAL_CSS;\n\n document.head.appendChild(style);\n info('Global styles injected');\n}\n","/**\n * Sonar Quiz System - Entry Point\n *\n * Offline-first interactive quiz and analysis platform for DITA-published content.\n *\n * @packageDocumentation\n */\n\nimport { bootstrap } from './init/bootstrap.js';\nimport { info } from './utils/logger.js';\nimport { readDOMConfig } from './config/dom-config-reader.js';\n\n// Export quiz table enhancer (Phase 2.1)\nexport {\n enhanceQuizTable,\n getQuizTableMetadata,\n isQuizTableEnhanced,\n} from './enhancers/quiz-table.js';\nexport type { EnhanceQuizTableOptions } from './enhancers/quiz-table.js';\n\n// Export analysis table enhancer (Phase 2.2)\nexport {\n enhanceAnalysisTable,\n getAnalysisTableMetadata,\n isAnalysisTableEnhanced,\n} from './enhancers/analysis-table.js';\nexport type { EnhanceAnalysisTableOptions } from './enhancers/analysis-table.js';\n\n// Export types\nexport type {\n ParsedQuizTable,\n QuizQuestion,\n AnswerRecord,\n CompletionState,\n PageId,\n SessionData,\n SessionCache,\n StudentRecord,\n PageData,\n ReleaseId,\n ServiceId,\n TableId,\n CellKey,\n QuestionKind,\n} from './types/contracts.js';\n\n// Export constants\nexport { STORAGE_KEYS, SCHEMA_VERSION, SESSION_TIMEOUT_MS } from './types/contracts.js';\n\n// Export services\nexport { parseQuizTable, validateAnswer } from './services/quiz-parser.js';\nexport {\n parseAnalysisTable,\n generateTableId,\n generateCellKey,\n isCellEditable,\n} from './services/analysis-parser.js';\nexport { calculateCompletionState } from './services/state-calculator.js';\n\n// Export utilities\nexport { Debouncer } from './utils/debouncer.js';\nexport { getJSON, setJSON, clearQuizData } from './utils/storage-helpers.js';\nexport { info, warn, error, setDebugMode } from './utils/logger.js';\n\n// Export obfuscation utilities for console access\nexport { migrateObfuscation } from './services/storage/obfuscation-migration.js';\nexport type {\n ObfuscationMigrationResult,\n ObfuscationMigrationDirection,\n ObfuscationMigrationOptions,\n} from './services/storage/obfuscation-migration.js';\nexport {\n deriveKey,\n encode,\n decode,\n isObfuscated,\n OBFUSCATION_PREFIX,\n} from './services/storage/obfuscation.js';\nexport type { ObfuscatedString } from './services/storage/obfuscation.js';\n\n// Export bootstrap (Phase 3)\nexport { bootstrap, cleanup, isInitialized } from './init/bootstrap.js';\nexport type { BootstrapConfig } from './init/bootstrap.js';\n\n// Export component injector\nexport { injectComponents, DEFAULT_CONTAINERS } from './init/component-injector.js';\nexport type { ComponentInjectorConfig } from './init/component-injector.js';\n\n/**\n * Version information\n */\nexport const VERSION = typeof __APP_VERSION__ !== 'undefined' ? __APP_VERSION__ : 'development';\nexport const BUILD_DATE = typeof __BUILD_DATE__ !== 'undefined' ? __BUILD_DATE__ : 'development';\n\n// Declared globals injected by Vite `define` at build time (see vite.config.ts).\n// VERSION comes from package.json so it cannot drift from the release tag.\ndeclare const __BUILD_DATE__: string;\ndeclare const __APP_VERSION__: string;\n\n/**\n * Auto-initialize on DOMContentLoaded\n *\n * System always initializes when script loads. Configuration is read from\n * hidden DOM elements injected by DITA publishing (see dom-config-reader.ts).\n */\nif (typeof window !== 'undefined') {\n const init = () => {\n info('Auto-initializing Sonar Quiz System');\n\n // Read configuration from hidden DOM elements\n const domConfig = readDOMConfig();\n\n // Bootstrap with DOM config\n bootstrap({\n dbName: domConfig.dbName,\n statusPanelContainer: domConfig.statusPanelContainer,\n autoEnhanceQuizTables: true,\n autoEnhanceAnalysisTables: true,\n autoEnhanceHomeBadges: true,\n }).catch((err) => {\n console.error('[FATAL] Bootstrap failed:', err);\n });\n };\n\n // Initialize when DOM is ready\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', () => void init());\n } else {\n // DOM already loaded\n void init();\n }\n}\n"],"names":["debugEnabled","maskServiceId","serviceId","length","slice","repeat","sanitize","obj","sanitized","key","value","Object","entries","info","message","data","console","log","error","Error","errorObj","name","stack","warn","DEFAULT_CONFIG","CONFIG_IDS","readQuestionTotal","text","document","getElementById","textContent","trim","test","total","Number","readConfigElement","elementId","defaultValue","element","querySelector","readDOMConfig","dbName","msg","readRequiredConfigElement","config","statusPanelContainer","titleSelector","instructorHash","readDbName","readRelease","titleElement","ANSWER_ALPHABET","ENCODED_PREFIX","isEncodedAnswer","startsWith","isValidAnswerKey","Set","size","readAnswerKey","AnswerDecodeError","decodeAnswer","plain","ch","index","indexOf","parseQuizTable","table","answerKey","errors","questions","classList","contains","push","rows","Array","from","querySelectorAll","forEach","row","cells","questionCell","answerCell","detailCell","questionText","correctAnswer","err","olElement","options","ol","map","li","filter","kind","toleranceText","tolerance","parseFloat","isNaN","validateAnswer","question","answer","trimmedAnswer","userValue","correctValue","Math","abs","buildPageCache","_pageId","pageData","answers","answered","a","correct","success","state","last","lastAttempted","analysis","Debouncer","constructor","this","timers","Map","debounce","fn","delay","existing","get","clearTimeout","timer","setTimeout","delete","set","cancel","cancelAll","count","values","clear","isPending","has","getPendingCount","getTableRows","tbody","getRowCells","getTextContent","createElement","tag","className","addClass","classNames","add","removeClass","remove","escapeHtml","replace","INSTRUCTOR_SHOW_ANSWERS_KEY","getJSON","sessionStorage","getItem","JSON","parse","setJSON","json","stringify","setItem","clearQuizData","keysToRemove","i","removeItem","SESSION_TIMEOUT_MS","STORAGE_KEYS","SESSION","CACHE","INSTRUCTOR","PIN_ATTEMPTS","SESSION_EXPIRED","PIN_CONSTANTS","RateLimiter","freeFailures","failureCount","lockoutUntil","attempt","Date","now","recordFailure","delays","min","reset","getRemainingSeconds","remaining","max","ceil","isLockedOut","getExpectedInstructorHash","hashElement","async","verifyInstructorPassword","expectedHash","toLowerCase","fullHash","TextEncoder","encode","hashBuffer","crypto","subtle","digest","Uint8Array","b","toString","padStart","join","hashPasswordFull","encoder","aBuffer","bBuffer","importKey","hash","signature","sign","expectedKey","expectedSignature","byteLength","sigView","expView","result","constantTimeCompare","substring","verified","reauthLimiter","confirmInstructorPassword","password","ok","reason","retryInSeconds","reauthErrorMessage","startInstructorSession","hasActiveSession","isInstructor","detailCellContent","WeakMap","hideAnswerColumn","headerCells","hideDetailColumn","cell","innerHTML","authorAnswerHeader","loginNotices","setLoginNotice","visible","notice","setAttribute","anchor","parentElement","isConnected","parentNode","insertBefore","createQuestionInput","existingAnswer","spec","optionText","String","type","placeholder","getQuestionInputSpec","select","placeholderOption","disabled","appendChild","opt","option","input","getStorageKey","release","StorageError","operation","cause","super","logError","StorageNotInitializedError","StorageQuotaError","StorageFormatError","expected","found","storageKey","STORE_STUDENTS","STORE_BACKUPS","STORE_AUDIT_LOG","openDatabase","Promise","resolve","reject","timeoutId","resolved","cleanup","window","logWarn","deleteReq","indexedDB","deleteDatabase","onsuccess","then","catch","onerror","onblocked","request","open","db","objectStoreNames","isCorrupted","close","deleteRequest","onupgradeneeded","event","target","transaction","onabort","studentsStore","createObjectStore","keyPath","createIndex","unique","backupsStore","auditStore","createSchema","promisifyRequest","op","toStorageError","runTransaction","store","mode","objectStore","OBFUSCATION_PREFIX","deriveKey","releaseId","split","c","charCodeAt","stringToUtf8Bytes","str","xorBytes","dataByte","keyByte","base64","bytes","binary","byte","fromCharCode","btoa","bytesToBase64","decode","encoded","xoredBytes","atob","base64ToBytes","jsonBytes","TextDecoder","isObfuscated","IndexedDBStorageAdapter","initPromise","init","finally","ensureInitialized","getStudent","rawValue","storedIsObfuscated","obfKey","decodeStoredValue","saveStudent","record","valueToStore","encodeForStore","put","getStudentsByRelease","getStudentsByReleaseEncrypted","openCursor","results","cursor","tryDecodeCursorValue","continue","clearAll","all","backup","timestamp","toISOString","backupKey","originalKey","backupRecord","createBackup","saveAuditEvent","persistAuditEvent","storageInstance","currentDbName","getStorageAdapter","calculateCompletionState","totalQuestions","isPageUnstarted","every","isPageComplete","countFilledCells","calculatePageState","page","filled","quizComplete","analysisComplete","totalCells","createEmptyStudentRecord","session","schema","docId","attempted","updated","pages","StorageService","adapter","loadStudentRecord","newRecord","saveStudentRecord","totals","pageId","isArray","recalculateTotalsFromPages","updateRecordWithAnswer","questionIndex","previous","next","commit","attempts","priorAttempts","firstSuccess","withAttempts","firstAttempted","updateRecordWithAnalysis","tableId","cellKey","content","details","analysisData","label","labels","firstEdited","lastEdited","buildCache","cache","pageCache","buildCacheFromRecord","refreshCacheOnLogin","storageServiceInstance","currentServiceDbName","getStorageService","emitCustomEvent","detail","CustomEvent","bubbles","composed","cancelable","dispatchEvent","dispatchEventOn","persistAndNotify","storageService","onSavedDom","emit","events","SR_ONLY_CLASS","LIVE_REGION_ID","idCounter","ensureId","el","prefix","id","handleAnswerInput","metadata","debouncer","parsed","inputs","answerRecord","studentRecord","updatedRecord","applyValidationStyling","region","body","announce","saveAnswer","feedback","replaceChildren","mark","append","control","showInputError","insertAdjacentElement","clearInputError","removeAttribute","validateStudentFields","pin","isNumericAnswer","NUMERIC_INPUT_ERROR","formatStoredTimestamp","isoString","date","format","dateObj","getTime","formatCSVTimestamp","toLocaleDateString","month","getDate","getHours","getMinutes","formatDisplayTimestamp","formatTimestamp","t","globalThis","e","ShadowRoot","ShadyCSS","nativeShadow","Document","prototype","CSSStyleSheet","s","Symbol","o","n$3","_$cssResult$","cssText","styleSheet","replaceSync","reduce","n","cssRules","r","is","defineProperty","getOwnPropertyDescriptor","h","getOwnPropertyNames","getOwnPropertySymbols","getPrototypeOf","trustedTypes","l","emptyScript","p","reactiveElementPolyfillSupport","d","u","toAttribute","Boolean","fromAttribute","f","attribute","converter","reflect","useDefault","hasChanged","litPropertyMetadata","HTMLElement","addInitializer","_$Ei","observedAttributes","finalize","_$Eh","keys","createProperty","hasOwnProperty","create","wrapped","elementProperties","noAccessor","getPropertyDescriptor","call","requestUpdate","configurable","enumerable","getPropertyOptions","finalized","properties","_$Eu","elementStyles","finalizeStyles","styles","flat","reverse","unshift","_$Ep","isUpdatePending","hasUpdated","_$Em","_$Ev","_$ES","enableUpdating","_$AL","_$E_","addController","_$EO","renderRoot","hostConnected","removeController","createRenderRoot","shadowRoot","attachShadow","shadowRootOptions","adoptedStyleSheets","litNonce","connectedCallback","disconnectedCallback","hostDisconnected","attributeChangedCallback","_$AK","_$ET","_$Ej","hasAttribute","C","_$EP","_$Eq","scheduleUpdate","performUpdate","shouldUpdate","willUpdate","hostUpdate","update","_$EM","_$AE","hostUpdated","firstUpdated","updateComplete","getUpdateComplete","y","ReactiveElement","reactiveElementVersions","createPolicy","createHTML","random","toFixed","createComment","v","_","m","RegExp","g","$","x","_$litType$","strings","T","for","E","A","createTreeWalker","P","N","parts","lastIndex","exec","V","currentNode","firstChild","replaceWith","childNodes","nextNode","nodeType","hasAttributes","getAttributeNames","endsWith","getAttribute","ctor","H","I","L","k","tagName","S","_$Co","_$Cl","_$litDirective$","_$AO","_$AT","_$AS","M","_$AV","_$AN","_$AD","_$AM","_$AU","creationScope","importNode","R","nextSibling","z","_$AI","_$Cv","_$AH","_$AA","_$AB","startNode","endNode","_$AR","iterator","O","createTextNode","_$AC","_$AP","setConnected","fill","j","arguments","toggleAttribute","capture","once","passive","removeEventListener","addEventListener","handleEvent","host","litHtmlPolyfillSupport","litHtmlVersions","B","renderBefore","_$litPart$","renderOptions","_$Do","render","_$litElement$","litElementHydrateSupport","LitElement","litElementPolyfillSupport","litElementVersions","customElements","define","Reflect","decorate","QdStudentAnswers","sa","html","cssClass","maskedServiceId","formattedTimestamp","showStudentAnswersForTable","students","alert","_question","existingDisplay","studentAnswers","student","formatStudentAnswersForDisplay","display","hideStudentAnswersForTable","css","__decorateClass","property","customElement","tableMetadata","enhanceQuizTable","interactive","some","tableNeedsMissingKey","showAnswerColumn","header","setStudentAnswerHeader","existingPage","delta","updatedPage","registerPageQuestions","existingAnswers","HTMLSelectElement","inputMode","hasNonNumericCharacters","showAnswersHandler","hideAnswersHandler","instructorActive","showAnswers","resetUIState","clearValidationFeedback","selectedIndex","HTMLInputElement","logoutHandler","loginHandler","cleanupInstructorListeners","enhanceInteractive","colgroup","removeColgroup","enhanceNonInteractive","getQuizTableMetadata","hashString","hexHash","generateTableId","firstRow","cols","generateCellKey","col","isCellEditable","parseAnalysisTable","editableCells","rowIndex","colIndex","handleCellEdit","labelId","cellLabel","saveCellData","QdStudentEntries","sort","dateA","entry","last4","showStudentEntriesForTable","bodyPageId","dataset","path","location","pathname","pop","getCurrentPageId","grouped","groupEntriesByCell","rowElement","displayElement","createStudentEntriesDisplay","hideStudentEntriesForTable","enhanceAnalysisTable","cellKeyMap","existingAnalysis","existingCells","contentEditable","candidate","findCellLabel","showHandler","hideHandler","revealInstructorAnswers","addInstructorClass","HTMLTableCellElement","original","restoreDetailColumn","restoreAnswerHeader","getPageIdFromUrl","url","lastIndexOf","upgradeTablesAfterLogin","quizTables","revealTablesForInstructor","analysisTables","EventCoordinator","listeners","initialize","registerLoginHandlers","registerLogoutHandlers","registerAnswerHandlers","registerStateHandlers","registerInstructorHandlers","registerDataHandlers","resetQuizTableToNonInteractive","resetAnalysisTableToNonInteractive","unlockTime","eventName","handler","handlers","SessionService","createSession","loginTime","lastActivity","expiresAt","instructorUnlocked","saveSession","emitEvent","getSession","sessionData","updateActivity","isExpired","expiryDate","isSessionExpired","clearSession","unlockInstructor","lockInstructor","isInstructorUnlocked","getCache","cacheData","saveCache","clearCache","SessionCoordinator","activityTrackingActive","handleLogin","sessionService","scheduleExpiryCheck","setupActivityTracking","expireSession","expiryTimeoutId","timeUntilExpiry","activityHandler","updatedSession","activityDebounceTimeout","debouncedHandler","getSessionService","loginStyles","needsMigration","hasPinSet","pinHash","toHex","fromHex","hex","out","ArrayBuffer","parseInt","derivePinHash","saltHex","iterations","bits","deriveBits","salt","createPinCredential","getRandomValues","pinSalt","pinIterations","pinKdf","verifyStoredPin","stored","valid","storedHash","inputHash","hashPin","verifyPin","upgrade","getAttemptKey","getAttemptState","checkLockout","isLocked","remainingMs","lockoutTime","clearAttemptState","getRemainingAttempts","AuthService","loginStudent","runLogin","checkLock","surfaceMigration","errorMessage","errorLabel","retryAfterMigration","isRegistered","storage","opts","lockout","lockoutMs","existingStudent","updatedStudent","credential","pinCreatedAt","completePinSetup","check","lastAttempt","recordFailedAttempt","upgradePinCredential","newStudent","QdBuildInfo","MODAL_STATE_KEY","getCurrentModal","setCurrentModal","modal","QdModal","closable","previouslyFocused","originalParent","originalNextSibling","isInBody","handleKeyDown","emitCloseEvent","handleBackdropClick","handleCloseClick","stopPropagation","changedProperties","handleOpen","handleClose","moveToBody","restorePosition","show","currentModal","activeElement","requestAnimationFrame","focusFirstElement","focus","slot","assignedElements","flatten","focusable","matches","closeBtn","QdPasswordModal","title","handleModalClose","handleInput","handleSubmit","preventDefault","handleCancel","changedProps","passwordInput","nothing","query","QdInstructorLogin","showModal","rateLimiter","login","role","QdLockoutBanner","untilMs","seconds","interval","clearTimer","changed","startTimer","setInterval","clearInterval","QdHelpTrigger","panelType","handleClick","QdHelpPopup","portalElement","_isOpen","ensureStyles","removePortal","styleElement","head","createPortal","contentEl","headerEl","titleEl","bodyEl","migrateObfuscation","direction","startTime","performance","migrated","skipped","durationMs","dryRun","logInfo","allRecords","records","keyStr","getAllRawRecords","currentlyObfuscated","obfuscatedValue","putRawRecord","plainRecord","migrationDialogStyles","spinnerStyles","QdSpinner","QdMigrationDialog","dialogState","migrationResult","validatePassword","runMigration","handleContinue","renderContent","renderPasswordForm","renderMigrating","renderError","renderSuccess","HELP_CONTENT","status","instructor","getHelpContent","QdLogin","isSubmitting","touched","pendingPin","helpOpen","sessionNotice","showMigrationDialog","migrationError","pendingLoginData","authService","handleLoginEvent","updateVisibility","handleLogoutEvent","takeSessionExpiredNotice","handleLockoutExpired","handleHelpOpen","handleHelpClose","handleMigrationComplete","retryLoginAfterMigration","handleMigrationCancel","registrationTimer","minutes","round","handleStudentLogin","fieldErrors","handleNameInput","touch","handleServiceIdInput","handlePinInput","isValid","submitLabel","validationHint","scheduleRegistrationCheck","checkRegistration","known","field","shown","validateStudentForm","applyLoginResult","dispatchPinEvent","completeLogin","loginData","QdStatus","questionTotal","statusColor","handleStateChanged","loadCache","handleCacheRebuild","handleLogout","sharedStyles","QdInstructorUnlock","remainingSeconds","handlePasswordInput","startCountdown","countdownInterval","QdScoresModal","renderScoresTable","sortedStudents","localeCompare","renderStudentRow","summary","calculateSummary","answeredText","getScoreClass","percentage","firstTimeText","analysisSummary","idx","tracked","correctFirstTime","untracked","summariseFirstAttempts","QdInstructorScores","QdInstructorExport","handleExport","csv","generateCSV","blob","Blob","URL","createObjectURL","link","href","download","click","removeChild","revokeObjectURL","escapeCSVField","includes","who","csvRow","fields","hasData","tooltip","QdInstructorManage","showConfirmDialog","confirmText","checking","modalContainer","handleKeydown","handleCancelClear","handleClearRequest","handleConfirmInput","handleConfirmClear","reauth","removeModalFromBody","renderModalToBody","renderConfirmDialog","currentTarget","resetStudentPin","_salt","_iterations","_kdf","rest","pinResetAt","resetPin","auditEvent","eventId","randomUUID","resetBy","resetAt","_$Ct","_$Ci","it","directiveName","_t","raw","resultType","CONTENT_STYLES","QdConfirmDialog","cancelText","destructive","requirePassword","handleConfirm","confirmBlocked","unsafeHTML","QdStudentTable","actionLabel","searchText","handleSearchInput","filteredStudents","search","emitSelect","filtered","QdPinResetDialog","confirmingStudent","confirmDialogOpen","handleResetClick","handleConfirmReset","verifyThenReset","handleCancelReset","executeReset","findIndex","confirmMessage","QdInstructor","unlocked","showScores","showStudentAnswers","showPinReset","customEvent","unlock","refreshStudents","lock","handleResetPins","handleClosePinReset","handlePinReset","handleUnlock","handleViewScores","handleCloseScores","handleDataCleared","handleToggleStudentAnswers","checkbox","checked","savedState","setStudents","DEFAULT_CONTAINERS","statusPanel","injectComponents","containerSelector","container","injectLoginComponent","injectStatusComponent","injectInstructorComponent","PANEL_HOST_CLASS","PANEL_HOST_PARENT_CLASS","markPanelHost","BADGE_CLASSES","red","amber","green","STATE_TO_BADGE","unstarted","incomplete","complete","clearBadges","updateLinkBadge","getPageState","badgeClass","applyBadge","updateAllBadges","links","initialized","bootstrap","style","injectGlobalStyles","restoreInstructorSession","eventCoordinator","sessionCoordinator","autoEnhanceQuizTables","enhanceAllTables","autoEnhanceAnalysisTables","autoEnhanceHomeBadges","extractPageIdFromHref","enhanceHomeBadgesIfPresent","revealQuizAnswersForInstructor","checkExistingSessionAndUpgradeTables","selector","enhance","tables","enhanced","domConfig","readyState","enabled"],"mappings":"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","x_google_ignoreList":[34,35,36,37,38,39,40,41,42,87,88]} \ No newline at end of file diff --git a/dita-demo/page-index.html b/dita-demo/page-index.html index 21833c2a..c9246028 100644 --- a/dita-demo/page-index.html +++ b/dita-demo/page-index.html @@ -7,7 +7,6 @@ - @@ -43,7 +42,7 @@ - + - + diff --git a/dita-demo/search.html b/dita-demo/search.html index 03c71daf..c592cf88 100644 --- a/dita-demo/search.html +++ b/dita-demo/search.html @@ -17,14 +17,6 @@ - - - - - - - - @@ -61,7 +53,7 @@ - + - + @@ -84,39 +76,7 @@
                                    - -
                                    -
                                    -
                                      -
                                    • -
                                      -
                                      -
                                      -
                                      -
                                      -
                                      -
                                    • -
                                    • -
                                      -
                                      -
                                      -
                                      -
                                      -
                                      -
                                    • -
                                    • -
                                      -
                                      -
                                      -
                                      -
                                      -
                                      -
                                    • -
                                    -
                                    -
                                    -
                                    - +

                                    Search is turned off for this publication.

                                    diff --git a/dita-demo/welcome.html b/dita-demo/welcome.html index 5fe7ff0a..44cd4cf8 100644 --- a/dita-demo/welcome.html +++ b/dita-demo/welcome.html @@ -7,7 +7,6 @@ - @@ -43,7 +42,7 @@ - + - + diff --git a/tests/e2e/workflows/dita-instructor-flow.spec.ts b/tests/e2e/workflows/dita-instructor-flow.spec.ts index bcdc5b12..56ba01b4 100644 --- a/tests/e2e/workflows/dita-instructor-flow.spec.ts +++ b/tests/e2e/workflows/dita-instructor-flow.spec.ts @@ -94,7 +94,7 @@ test.describe('DITA Instructor Flow', () => { await expect(statusPanel).toBeVisible({ timeout: 3000 }); // Verify student status shows progress - await expect(statusPanel.locator('.progress-text')).toContainText('0 answered'); + await expect(statusPanel.locator('.progress-text')).toContainText('0 of 37 answered'); // dita-demo publishes its question total (SCO-05) // Navigate to a quiz page await page.click('a.quizPageBtn[href*="quiz-mcq"]'); diff --git a/tests/e2e/workflows/dita-student-flow.spec.ts b/tests/e2e/workflows/dita-student-flow.spec.ts index 5d21bea0..dbd0f184 100644 --- a/tests/e2e/workflows/dita-student-flow.spec.ts +++ b/tests/e2e/workflows/dita-student-flow.spec.ts @@ -90,7 +90,7 @@ test.describe('DITA Student Flow', () => { await expect(loginForm).not.toBeVisible(); // Verify status shows initial progress (0 correct) - await expect(statusPanel.locator('.progress-text')).toContainText('0 answered'); + await expect(statusPanel.locator('.progress-text')).toContainText('0 of 37 answered'); // dita-demo publishes its question total (SCO-05) await expect(statusPanel.locator('.progress-text')).toContainText('correct'); // Verify status indicator is red (no progress) @@ -355,7 +355,7 @@ test.describe('DITA Student Flow', () => { await statusPanel.waitFor(); // Verify new session created (progress starts at 0) - await expect(statusPanel.locator('.progress-text')).toContainText('0 answered'); + await expect(statusPanel.locator('.progress-text')).toContainText('0 of 37 answered'); // dita-demo publishes its question total (SCO-05) // Navigate to quiz page await page.click('a.quizPageBtn[href*="quiz-mcq"]'); From dd6ea1057ec707e11888167bad382e8fd20ea516 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 1 Nov 2026 10:18:12 +0000 Subject: [PATCH 4/4] docs(walkthrough): recapture from the regenerated demo Screenshots now show the question total ("2 of 37 answered") and the template's header without search, so the capture no longer hides the search box and the intro slide no longer says it does. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_019erPampkiqiri3Gab6oSHB --- docs/walkthrough/img/05-mcq.png | Bin 72622 -> 72996 bytes docs/walkthrough/img/06-numeric.png | Bin 77512 -> 77875 bytes docs/walkthrough/img/07-analysis.png | Bin 77028 -> 77394 bytes docs/walkthrough/img/08-badges.png | Bin 90565 -> 90885 bytes docs/walkthrough/img/09-help.png | Bin 98581 -> 98968 bytes docs/walkthrough/img/10-narrow.png | Bin 71550 -> 71885 bytes docs/walkthrough/img/15-student-answers.png | Bin 116170 -> 114424 bytes .../img/16-analysis-instructor.png | Bin 86630 -> 85544 bytes docs/walkthrough/img/17-scores.png | Bin 96444 -> 96811 bytes docs/walkthrough/img/18-reset-pin.png | Bin 92155 -> 91826 bytes docs/walkthrough/img/19-erase.png | Bin 98669 -> 98457 bytes docs/walkthrough/img/shots.js | 10 ++++----- docs/walkthrough/index.html | 5 ++--- docs/walkthrough/sample-export.csv | 20 +++++++++--------- scripts/capture-walkthrough.mjs | 16 -------------- 15 files changed, 17 insertions(+), 34 deletions(-) diff --git a/docs/walkthrough/img/05-mcq.png b/docs/walkthrough/img/05-mcq.png index 53c61297cfa36833488861756c83cb6fce825e28..63e2c5bd1eb028de98a1ff0c9bb183fb3c95eee6 100644 GIT binary patch literal 72996 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 literal 72622 zcmcG$Wmr{R*e#5JfTXmv(%qdZ4bt5L(k0z&rMnve>F#b2K~ki>iA zIqQ#Hu=ZMO&w0lf;~vWpMR`dyWI|*Z7#K8ZDKTXjnCIX}xYtOq;Ggq5%~BYcmoU;| z?^NBs9V|ZA#IYiKe)5LO2D1vc<-eoN#r5AoQ$ItFM8D|u%lkN8U>Of38-M29^Qb#L zJ$-4``S*P$tH{2+F8O~)=s4TE9Sq0;5ov_|4w8_ zM(zCXyiYi${ex z4ScMw2fW=%A{}$u>kw^{+xQqcKU|2k9D4=eOsdOk=WrJ}-m`p%#Q|TWLWWdO|T5iEVPIzRy{)!fqKI;i^i^>$&rEUNmhiU zI5cRQ)bOK$oyg`vuXE}|k*=!=8KYOkg)`M+{5YnS$NdAzCd`iG?GElRrd>u8SN@}a zAYWP?{hXmGw24el#G-w&>3x)YH=g(T4KrPRZuxGQYXa1{YzF1=RO_O2N&{68a$|I= zzQ`EChLWVCu(8``*AJE3Lf}h% znlxQV54*llhz<^>HBFHPOWM)3N4Jk|$It(1sk4>JL8R^6dUpmlbGa!(mmSB>Mz7L% zyL!=$!JuD|g|t0&$qdg(r^BLc!#>JRVAfDm$1w~7jp47q^q;#R(}O(B^>C^D4i7by zA9$zzinT_enbBf13B5?==Kf~z(YyU#pWngVXu2pQj)qy28e%TBQ|PkJ*7=?9k$616 z)n{+(TNeuJ=RW7xOvp07V%n~UpfGw7-5bn_CF8*^&wRcr*oyS@?((%;ZT8|O*!7DV5rsyQ zWr%E{>G2vaz8Ws_zFiUiz7$Q4i!!pnH~Dj7qc7i>LMKAY!MgqCrL)}Ml|^6!fvGek ziuQSYp=^CRl3A(ll|CN5#>=lRx&{4@W*6LSY&|;O1(#TMn+!2#I}cys_AqSba+HcM zB4b11`E#(b@YhUc`SW@vqVH@o+R|%2qhn)FT1`Sv&ib~D+i0#|c7v^ZO}R}UOCiXp ztB<<9kiwSi&?N?wc%M|Hw%4*9H7HsB8pc4_V{$Wbuy@}oPJp^wN6KS_tW~h;5eK$% z3pr!Xo7*hw0NsLE{(#rS4MyD$$~=$#~0%x|KfF*lt>C>IO@K!q}j2O!_MX zGWD#p=ZIXyfytp$&o*@|*|!JW9xvon4+f_hO0K3NsaoRrsEOF^z7*|_VE^HdG!J?+ za==FeTUq`B3lp>Fbq1`Qm>ApfXvD7@onns{O$sr{h4*r7F&{|vAUHU$RI{Esc9E)R zv<7k;p7^wQ-p3YmmpFYIw0DQ0oPWqW&y(4Hg?W0+Sj<@-j6+C_!>GU1<^)aq)lls` zAf<$V>X;#t#HSJSjrThw;dN208Ubmb^gUY3IcMMMd$~gN89LA%ipJ1qH#;*MU#Na?70?o> zu>9G)`13&Y-dsPCN8r10u>nrHc?_GH&l}2&O>-?bJ5}W1?hqyt^&+L`pt9{K7(NG; z(1?`26C_S@N?O0SVg$~mPy@zMaCPDf#)NJGlh1c&PhmR}8KsNO5-rMliZ|j_Y=VLh zGxc#u+1nWUs*$l3s`@RP^@W_|0W#z<+~vWa^HBT4B$#S$w-1()F9#)iiz!ACbJUMS4QVWOqrIZ(E{ z`r=-~!dO#T`-ix5KP*Wz7D^vq`q#W4;hk`l6@LY-2(<9;$NW)8w$M4GM#T;xxxQ za`NotAIP8?^a#dvD5y`7GjgJ)sFxKq1*BXkd=^*Yan7Fz7{KLizBR*qMfEHCd-R#} zAOd0_t>n9_lF{lpCAF-ZpzSD>Am+(^P06xX``-i{m$2M_LZlWQp!!^QgRa`CRmP!G zTONs8!~N+6veS$fNqy)!uYK0@aL@_`Bp(*gNrD z0kg|;FbMJ@GGPynsSt>~)Zkft4&CO23od)-Nx3L;%Aa}d zb9XcK*j(D`;%uN{T^whr5inBTn88Std)_}R4%al)Y>%X}c?QZ#J{{u?Or~ilwIFC} zdO4Bab-36cY8Po_e}W_lsqj)kZg1)wSXB)~ntcXT1RJVp)He>=&!uB&@HS;KkK0F% zJ6`r!(rK3-mLd)x@wE1s4~Ln)F(E{Jc-%S_NeN zep$g0uQJ&r1EpxB#KdqYW?E&y3b7bpT?9As$S=p=>k2p|zT9F+p&=JsTlk7{ zrZaLR1Uc3s3|qzOk&ubg<-*4)(vRgh4Azz@Lpt*fMe50)R zb?nvwXQ=!etV}!Y2{UP3t$ELnY~*6K;i<{%3Za|fb)A5_&D_F$*4DDY!vb=Bb!$c8 z0F}_wbm})cPbX&*<-)b6Qe{(zp!0g=z!PNlO*D7lJagIw~U}iwhzi=H4iI z6MBPJqzj*aPS0c18N{n$F7{Z=M>KQs)~@ax;d+8b{yjA`0OJLEQF-(8+ST!>_+yOa zanIlK`vNU$9b1LtguIEMy++@{WiEMBUt7$ToQ?~O;Du|3kMW20mr$39e{GW)mjM-i zH1mhb_mJS7h8?b^`w4vxM6SF0dI{(G={>gglAR-gvLsQ$ppeDm)18vD!MdoRSQ>bn8sjPw7cG7hgdQ&q~s^4;@{%4l|1mLOPoq#!_37j&cP4h!nmL zh2S^pF0!wyN5!IkO!`wl5>L7=pfKfC;t^JSlqtA{ni>Vo&Ey&W9kz+HuT!RFqM{P# z%)!HSXGNf&Sgz%;^rU5O6g+lu`L;{FR30mca@do{VlF3UOXvNlOhAF1O6JXo&S&TH z2D3?@Q>?tR5TaiBT{iFIVmP-H`Zfyv{E^h(Cx5%(BY9j6=`R48vzOsQFav%$X^oM8 zDQd$d#yPmVu$dbwQo>6#ia0qr8L<=2nM!4oM5xnIgEmx39UHVOB(kT7?%`P48Kx-J z$;S#-O?j&S;=Wl}ZoB!I(n&72HPJeb3vOZf|KaPIGmwpckN>NX{NDw;#Qq2Ov%{AD z|6%w4H+TNO$u9n%J|XP@x82giMnASmW;~rrxlY5;`SwVAd;4^S0gHBR;m&fYR!tg@ z9RfUjtM|Rj(Lz)9b_$0XIZnIxJzfOe&HX)%T&ijlY8XCC?*zSCajq2}HjVtn)z$BK zx;Q~(Q%=hX+KZ?^tj>F?bX$yC)nYbxD0qyD=pQXD`5m{0B%??lZ%)@Iid1mvRbM_L zVvu?rFA2F<4yAAy>pqC{)PHgC1?Py5{0KlH6L1;&_3PK-;^Rt}ADwb;C&H+13kp8- z#}y1R;aa<8{SO2br2I}uj*!!}o^0{3($dmg2salVOc)IdoCJ$jb?%hAG@FcLzkuse z=`42U_wuqg9)W>@OC1ohG!1qI$(tp^U%lxe{z>C*SXn3)t|_?* z)7L#&thT@00RazF=<=T< zBBs%nYS+osZ0AbH)!L#p6+}d!xuk&;?G~HWGOA~UDo@O9XWBd)9P-Pw>+YT&1?v44 z3T)=<&0ltL_ea0!1}lq*PCV1%YF8)TlVNOSHD75cx?w|CZ}cCr4wcDBh5KJEAa$xt zC+8vTff^spkfX!hqhKQs9-E3?`xx za?)y6e$SmVr;-2m_RCL19E$V1^Own(6GU8={!aArFQc=lU~SN5p3dB#X;puEXF@~- zpQS;Hn)w@q^{CU?=3o+t8}cAyY`OwJAv|NSiGw2}3ZXs!8(9dKY^pI=W%GN>OsJ>G+e7UOdr$q;&ujMK>qzTWM9ODhzA8e`#)#)X2_~ENt#_$Z40+%C>2f_sM@LaE%?mP4^FJUHm1wc4*!>YN#DeK{ z>PwrN_;6D%Q$^to?*jvLM&()qdWUI#8V+QVIHPB@@d zyfL=QaVtMq-`!22RU*Ho(nbRh64WtZn9Wl`+l5GPFy(oBW->bd=xxK)r{5hfYzCdgM2AQ$_(Yt2VtxeRe4Fh~Vy<=HBgF_U6S-dV{;67x~Ze+#B2 z;xv@1BK=R0Qo?cCpE}$fFQCoIataiq&qN}8`I6OQEEiNqjUr_#o4MLT#JSm7>Ef0T zlVv*id2`}ncs5I|TEf?_=xS#~!~#Rca9#>xQA&OJsZ$`Iu3Dsgxi@JA_Bxn$0H%}= z#on2g-{blyqKVUDOzdu5@ky`M%^rk$HBGfj^{4)L?`R*T(nu#uI7IaLX-qm*Wn8<_ z;4gRF^eHpyB^nips4Lss1ul|o)(>PNK2lI?PN(bLakGb;(*d1eaXWpb?AC<_aMNrv zDXHMrseyd7;j%0Q&zNtX6NP*ifPl} zJ_T>iD852PduBcnJlxQM^*_0QYGP?Q*Xr(Q??)>YM~ya6qg7)%oFQ}%)})733RW(S zdpKRd6?A|Y4p8AjGM1K>kV=AyEj8o^ve}+9_WB`Wyo~x=)JwHE>eA@l$ zZG1_mJ;K$^R<4{UL%?DBGqmus!*LtkvT}e(Wpg;~8l+jQWlzGaCJuK81X}KV*XLl4 z@)i*}HVA{P*DTk{uf+Z8AmuFF%D)ZNra@c{!|mVczoN(_J)k}Aj~bP`ie*BsN8hxe zAXwWyujLmsTfFbDY;A2t15vy7CJL3{?j_Q=ZT>((H8`{BrQC39)WKcXvr^M zf_YKqnfMCz*;{aPg5W+yuLvyE)rx5|tAgFQVxB0di{>%XE_yMw|oN8cFChhQ0T=D)UH zXdGQ$Hn<%kO_^ilM0`8(0u?p>DgJ!`asq>f?eA}V+RHu7e?JPYAf+DM4ua~P)~iQM z*Zrxod2kP_>GC(NeEj_MBMZVV2gzqxS~wh@7dusk-3TAx({QLZf2Rw`BD^KQp2fH& z&ilyN3j!(r`fZ|N>X~t2worvZK`ZO44M)U@`oLkyNZ>y>z_xPqd@y~{|~1lNRSj#c~7B6qg8-_0u3*as`Wf3AUt z@R(Wme^$J6EU0=3^zYFQWl&7mjC+ZAY~c|R2ZfX-#GNt4<;#*xdT(&nI8|FY0C-?E zd@shR%9sH7N(#p|z?5iSy^J!OeODlyqO%LdLa?Mdj+Z-lyyDGA7=Cy8Xy!`A6lPex zEctl|V{K%Mg-K{=X-G(l#oS|0zLVWurRs3KuP;Zcfq@ZHSqXKA{lGgly6{KAQXvcb ztAQWoU!0%aI5ayu+uy$nx+<2^P>A!h#)rGL?KwS;1~!aK=xl8qqk+-L{W7+h!VZ-0 zHMwrFeeOZOMAE)N$-(`bPUeWZkd*%Y^kWV#=@zE*)ssKGDPLojP{Idxt2a#ih}3co zdN2M;*kWS2vIoeWOv_VB?cqpaZ+~)q`nmW#64Cv+ti4=K0oO2U<7b{5$zT(56eoC( z=Q>n%f|D0AO?Bc1wm$p!zsVlSSUe1qmU^$tI{sZvOsu&l8>TeTCuigC&wWLGN8B1t z*)9(w@50d7g;=-jt|hO~@=9p1Rr(nHitKCT9?UF}3X`Of`2S`Q*|Z@{BXknw-3H*h z#cj$mUZZ}-sCB7~HCRg9iiNoSE?_Xoqy2VqnSsH=-EMK(T>pvFC%OED~m)F1B zbtS%F@@*5%g&etFI=XMdn3LCeox6_SC?C%sqx;0J#jn+zn^}Il+TJS^_Ag687x!md z0PGSRkIeS>%zw_b#=mB~^F+>I^%BFzjw26n3@01!>1X595A+W#*LM847})*wU6*`O zY!vBimDs5uHMO#sztef*U}H#$u+Levk@oQVCbn4(ekKfZt0v{d*Z-OF+zEZiYdkoj z#2>XUK20bLr%6dojb~7)bn5p?VbAM@%vR^yP3Nn}QeL?Y@;RpFM=+R4K*Nhp8|=G7 z!QbM1{3s@W2i!cij&qGw6b0=5sxcVC67vyd{EtkAX7Cb!k^3Nr96mtT95(WsrRSxp z5yc_4ipv&1A>IYYqfgs4lN|0Z!e0abLu@ZRf3Ct1W0IaeHO`MjBGI{bQQBWvAKi0g zc<~=+2tu&v-peHSGpoea{x+-LubqZ6~-Aiw0^by{$Fh3prpv! zr~Ep!Q}4(250XgMPR6@o*siH7*G8*Gin&+`|y|x2;r943;^)ZG)GQU)7 zoJubCq-6VAqe8e*&>j2bt51E6)YR1du~Y*oLZWlEkuMHyguS2k?zYC$8Zz739)H5P zQVabaxo(S$MwhiFM@^6%)cW%rl1iL^0g)etwgn=0(-C&HS8%@T~} z-X2~0cm_^abtvktibebV(_>Qq_|)O7EBd>;_ep6c8h9@-Zkx!tA`|CRPZh=77FtVF z{#!%!(6k15b@Qj<`jFXW1^T(zr|&x!hKBkD>bv6Si1YKaJA|XZevK?WEx*0rIo%JG z3-We3XVl2=%pe(OVnVYaL_$a36>(d-N~iJj6P;YDuBjp5FI0mH4_}H%?Ox34q_-%% zQ)}8-@FgJ3#S-xiRBKZ&U1!f5D;ug2axmOqLEdFnjT#?6KMjSUu zbQ_K4Pr^-ORtcRBA3N{@a}BbT{E(fk5@yq&{tE?XSFuxcZUW{Y&)As(MR|KCm&!>u z&Ju(91E0(Q3Wzj1nXvAi(3%$vHyejNV}h;|jg+N@o!xkW88#6SlfwApX*WJpy5lt` z=fUCp2&qAbReJ#c$;z{`SfHTV0>Nw`A@u5SQp_fKW#v!KuX1MndQWHWIG#fV+8$O`WuJ%E+05-#tU{P<7kzX`l}T81n+u3v+Ykn| zx_`4n^?Y44#xl?W!vAlzh+#84ObQkw(FDuVeQt_vdUtQRG!i64ILT~g`vhsS-wQ{} z>1Fi1yc5;bnXE7~EwCKzBMSGU zG?uE;r8f3ongr8Q{|tipmM4cWdTO}(t5_|RVcEfbt=axusSXi(cl*3l53)1QL)Onq zqp&>Vx*{0bIglYN{A4vncBUk5L_psO@*1BhcJRj<)usXV|7rotXDrA)R#T)8H~pe~ zpTxxAl~2nA6cU7LOyrVYf6c>r6L1rds*@(}FR4jg8~r2z#G{Bme}x&KVc{*Blek?U zEdq=PID@67<=)m-z1OY7rkKM<-`6hf2HP_3QvmM(^F0P|5I{R#*CXBTK(st)a9Nqn z!xvZw*pMn8}2lCL|uV0As5Wum{nl%a)SHXRrJ$nYU z6@d8hghpX`ocAUQ6f(1+m;2NElO;3?X5e84NQ}FDpZ}}-N{o2h$FOL>nZ{*{&ojpb z@?_$7pv;7`ZP%qOzj%g~beFyO9S$5y@Fw&6Rw{jtpHQ?}NPRBv);9++iZ$+e913K& zlLg(gTbno-5Ji{Tea_iJM=Wz7&?7%{z2;B)w^Lfl`1~XFO;bPfdPi(k;`V|DY)3pa z@1i~=v%brnH62b(pi{|rJzmQ0=zxyQKu=b?0nB@Sfybm>3y4+lPw`NkcUZP#xzZrp zH$rM{=JDQq{uN0wK({@Va=y_Yw>^?sp_C(`si_%7DpYSXA9&#mXz^~8qm$DD(0YoL z^MD>k-cz_WoHjo@`$mt#`2O~Gm#h)czP=RcSjrfm8XP+1gM}vSGNPVPT-i+FM}Xz< zS@ajO#ZegPVGjWb1L#@@TnH#1f*u!0ItbE@qCx0jZ(2Mq>7Uke#MYlL{m50$|IlQ= z-YevJ6-?LR^Qip~9u^`!-c8yZ=`NROh_bnF@_!WSkfl7puw+{3L5)mKWaCWC1MI4%#2FxBZLAOe)X=Z7))^xz@fk-xrO=Ui$ zs&7iGRZU3^8r?nE%YKw-pvKPCSs5zjx?EGLVBLWuN;`C~j+n!?wk*=bjC`{&On z5&@ULlB`7Grh1t+E*plUK7JD5 zcv+9Ik8E=BrI_|@ZEZZ(Ghaq^>a9ay!Y6-<{i*$G2-xF9m9ZqJdoWCRJzQ&Ez42cT z6SFEj^6hp#lVWM+MgPP7YBy$9mPLU=(poz&1lg&^43f!}N?WFvI)OgW;4AuG>1i^R zbo4x^;hn2LIx6zj>FM+xUTCweE%drppP>X^8f(5lDnoPj{7`_$paX`EUhFObUoDj4 z<@`&zC`joHLKn=b(P&+A4f$mlxVQTe~!uAbS%T1Q5+hIr9v^Hlo?*j_|)eB3QRh` zGri(>n7uY2F-_>A4BY_@f%YqTyncsI8wilI@aU8lm%~>3C8M9Q~AIE%r-fSyi% zLs#asoC{8(Z3y+Jd;LDFkEsZjm3sf+pp=_=3KKiYfIOJIPNta1IFg75eU%#s_OwIf z?naAjTuOrY`;mcuU4DoZs2V^R)oXDnUgI;vM@2;JS4*0(Eazn+P zaOW*1ui+1<02-0B&iRAc;}wqJ=!v}AXnIXc&0uwsGGibougihvCvhbUF-vh6(IPzD z8&IipXe@J6a~hkP=9k6r`u<7zz^7E7p&lU}mAz zjg#{lp8Sh+v8*!Yt>U|$9oj;238SOF@|!TE&}4q^J10hcAOW$lCfWcwiuREFhP+?)e^I=pU1Xz3*12s2NQCDMi4f#Obd(nDB|FAT!U0aje#2{7=M1p>EF6 zVvC5^&CC7GwVT*=IJK8t@SE zWG>uETy?Y~(JtOaJdgH_sO&}GNbsBP}_&_7Yk*>;^v>LCM(&f6ZwF;YVO_1 zNu`!Wny~R41@GfIxpR(FcyCw~85)0;FKFttq@8R}qmm-!Eq9CV+mP*avRLshC+?dH zbA)-qChQafbxYLi$2`QkCpLQ%J_=lbMNJd)$sc`Hs1WPES(sW{+U7q>zn>8(D`ljR z>xkWZ)}j8wX(?=Zs#k^&ZQ`5g`|b&=dZmgL1o!8N9#15Te(i{|Rmv&sCO^xf+P!Yq zHaFE8Z1qMVpd|+@gC?4!dMhKw&ec3HCzSx67$@)J+siYckJF}vCYg<7h~Fis_DFx? z$YmJ?t*nD3P67+tS!%)#Y$QMf`iv5wQ;&9lN}9~;o5!1gAB_P@nTd@}nJ&x_%C1s- z)HHy8Rm`t6T3g*tvv(RH(Ds4?nyq=D9E$1U)J~37ZlO_A7zRJ(5@8i3GYRXvDj$;W| z=>0(@|ARCDyT0Xax9h(!tO-64>)ZI`aX8hcIev%~AK5uBGt<(skty*)RJ{{(cQ zaMf@8&U*kGnMZ~-7A6ja;xUCfY=V~8)8YWJmXnl}qzjFXi1FXFGN)40#=hp4Akeya zN2hkarWPMoHFLJx_4Vu5onGxiw5_!@<#JuVi6G3|N?!)`(w7N31j??x;RH$^xOvv# z*9qc9-1)Q$ucHvGGr{QbJ8u*!uq+?zsChDTCWCqMooNbYDr{!f`}x0XzT@G0PlEIsY5

                                    K$ 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 Ap8x;= diff --git a/docs/walkthrough/img/06-numeric.png b/docs/walkthrough/img/06-numeric.png index 019e63baee3ea61774905a1b24d009bc4d13266e..c83d8ec497f5eae5d92dcdf971aacb564f18d105 100644 GIT binary patch literal 77875 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˱)F8U$a=(;4d<`zaVIPuQF*{_n%geLyi;sF z&&z*T8KYY%Xov&3d+mb6ZpZL!;}9h8i4~#Fk4>V%buUHgTF@W#ZAfJ^blY(8^Ov)l zDBaof@{>iZCC=7w_~@pcnS|^wPF9U)%Kx;Y%ksrihBc|P^{SG4q?~|KTu;Y)4TCo< zBKiSU3<;N^YR=5HxWQO_*pv76?67&m&>7cz5g(33+lRVfD4tGej$huQz0ZA(*4%G; zh;Gt}Y7|H@PN8yR%uRi(@+^VzCdz%j<%cTwLyHu7Tzf&8fFpatW@Tk1^#1FQK-YkP z0G(rg=l*p7WUMm+N8e$>OoCuK6w%38IXV5ejr-8P0LakL(2RwehuugCydu|oR$&7) zSkJaPii?8?bQ6;>Kc{qu^K~G^RR!k$ApLV5IulDc^F@*`d;*jOyuA&e4k@SpGot~< z&x6DA3P}c}oGONf@IM075|bXL{+dA?+=lAh22TqHXdz_)5>Y-uu!K}Dh){B(=YOSD>! zY#qZey6a0oq;eFp0;$b}cg$mCo#a9SId{Ci8N^zB0i#v1W%*ghDIZWHl~iXL$&Bw~ zCh8fxCidAX+-EKx_p;D53cIN;W&%Vk#^()g+GLSQQFCCO?GbUCKvVJ4t}gva?Nl&Y zSrSC;#cJU@(g6z0q|)>KGbi;?!ZldK(TyhmSi%SsH;WuOMv?QZa45=5-sE6bse;M} z-FIAuT-*nT$}&Gru)99xl(TJdN+wK%9H7q3_dWw(B}ap}z;o#)eOG`zKstSLdAvfE zdd}x(2FN#S84-9Pz)>WSRkmP=R48%Yujn96XITEUGVtirIIj}Ra-PWA1*#Gekr$Af zZ03y(O_?Ey@eMUft`!hs3vw1L@*emj+rOS7YtPX8bjS99k5hE7Dc^CUinKN59V8Dr z*fsgJdq2qh)@>>A^N+{mO;=7>YBuTqY@wR!ZLyC_ck@y@3^{<0xlr)q>@yy=4{JW@ zdh6C0qBraj&1M$GdmTZ7bk)vaD^f?p|L+ZIZ@-;gvTl@6bQo6&tk^ppTPEdrCNOdm zX_K=Ses%>%$2r`A-1d?rAEKS+EsmXAw$se(=#M=621KPQiHa9#AkZ8X|)qg|_sQLGA#x@%e8*VJm)&hF<4p!bS&rV*W&W3=;2FVR1{ z)}fi3&Go+aRBnIs#S{_jr=)b}jE(iDb1k_jkuXqmk(qd-39 zLI^~sIeQA}qwl*I`lL#jBr0TY)W+Y|JV5u=qPc@Js|tE6tMAd71a^%aFVU; z*GEFR@9lM3pIJOtIFCkpSb(2XO8U@;uy^{jDHc@>PWdTa@rX7Y57<&2uxGnM%g#}z zn6>h5?Hooj;g=3Mb93HG_X-OOdwdGKZng&mxT{B`zaa&H7Jr!1qoF|?XLQ;vgdpzYvvU4#D@F=>85_8H&p15wT1 zL}Nd4+EMUt8}kSmBibq(lUNjRG$;pQQH#=&0u5r}^Q`@;Tq@pq_4O-A%1~+w8Eqjq zoY(F8tFhotYA116MiNNfgCBl+91@c;zprYfceYORe<}Bb#5(trg1t$9vGV=*o0I>4 zPj!(#;QvW7?&$45MG$xWectQFu*l$lt@HWNwy^#YVPhd`@B1$G$45A$^1Y_cB5r#6 zs{sAq`GMCrfut3TRYgE+m_|QxR8y(^>Icq#Fh{QX2iuQNrG=jqmP?>QZx=YJp~~=kDFiq zC@CnA$VQ1KV{wrvPGl`(7IX9{N;*J7yC#|#5RkDudI3NnTA#(q%H?pwm>WzDy0sfd zStk&ZeTku%tHB@t3baA^JiJTXl`S9_-ZqD8fFb5`KY0>5ppy;l%YX>D^9p&s^#zRq+UXXrZQ)ay z1N6r;#LZ7LP!9$kUQdm!X*S0hhOxz-TVupTV4?^0I_j2uBo1Jr3tIcOR3BI36%XD4bBl z1zO)0d7;>>|-dNqA z^oaW-!f-2GDpg&+Bh+bB=TO5{NNS>8a*kL+RerMp&DvRvK|03?KLE6F6lBJQsjYSC z@~&At5~ONJ0MoCr=TBfXVd1G>@9+DWO`kOZ)v6Q4TBWw!w^w&_FR`o#pb>z}=E}S-7>u5xV(CBFfofL-%r)wYnfIiE#CxLzeT)1P`CfPE*tU+& zl!G}%GW@eE%4(nj&E$HG(!&60lSJrxb$l2Tcoe8vtcS)G zEHR0d`T!PP(nOm0=aJ!O$bH0c4?uU-^6sDomm&w9K`8YMD)G%}xc%{z5%0Lbm6@4t z0E^K0$B&f|^nk{Gc1`VY7?#m#5SQa+UkA(%+?>liP6(aJ)jWSy*pn8E+ zya-e_E{knRbQCkhJ>7df-i0guoopi-GOH_7%7R{N6|zlO4ngfxccS;uC4HTP82R3D zXihod1-yixeif44BwWI{0B9+oUY~FG>OWjSU__h^40?o|`SUEummzy!?ZHU{DXrA> z3tW_@Y4I8Y^*1Ewu}%S#SVmpjmYB^!3`TrT4VN!puBk`oJa-!PYk@0g?+CIt;3~jx zEV(G80sDv-mXXTA7d6a;g!x0pM_pW^$ukR;_l9oXe<7~Bg@H?+jGU{#5)KZhq>XT; zOr&)fA4|G>7coZuEVc-H7M{Ay(d_S;~q|AtmuN9Op{}v9B}6yb>$l7< zef2x8Z58|IauN*#7CvM^vb`@%O?LZDnWB<)6duq$8;Es;b^$`4OX`Qg*9xcyn%;9U zG(XXzm;$b>(d9gz#?8UN!_aW{!f2%h}yMz9Km(IXk0( zl0^$`8K%!`{cHg%2_aGFFiBy>gyjAmagSlMBef6nUfw9Hf7oGdb@KcAa?3HBoMG7` z_o%*bI>VYpN>61FV#gBNatmgp7!10zTpzhlL6D6Br?+0*;DHH8u{StZKdv!t%f#E! z{Z@-Z5sXR4UnSbg2NbrB13sik80RtErf}er{738))Ia+ww{#tyqL`Y0uWJx}EA$tz zVKRnaYhNt5UB(hj_v_mm+ySAmII9c+ixy{iPkTUpd|6`p^5yLgdyy$y)L}4m9>%o` zn7@!@gjN+T?d>{idr%8jndUvx;x?G5)4(?uL--xEjMG*{D^qY}4N{5raSRM@Jstc0 z{SN>D$a2YSFQRo2%wO0<7PDphI);0DO~z#(Ss9?t1|H($7TOqR)!_N#=JtDk@fN9; z?#c(>$t^!YE%51+CCHkUj2WwsZP*;LJsk$EtY6MGv*_q(uv5yX(->4B9sI=LjV--D z#6(svFQ;x!SKQEJW?45U**zB>#x&$~dX{;$NNDN*n4v^Id2r|-s3S&_J`g^bN4qQ; zZcZb`Akc04lKrQS`SGwI{{R1Nm`>6M_#rK$>4Woj)DKjU9nErN=(&%>h&T{F(QNl{ z15I=Ni5F5?>5w%%1a*-~z*u$)GsEferMEH2;3Wx`R>?_^mLIJ;=P|iBF58VR{@=A(8LZ zzQ4cT-;6L~AX4U)X8eouPtN!7&Iz_|*TsHbTU#6YunPAE3d-5gP#6-ouFtZ5%)c6e zePRxU8;;7tSD&!6{vvVlU^?aqY4egf_?@8>nP;uGba40p2o#sS>*U)OD%eu8$4amn zrVVK>JK{uuAbH+i+ZMas1xi7)x58ZjOeU)bkjH--Qt1ab<2`;qM|X*ok|~vzIY|GA zqFEVbNGVi4`8E*7g6UJZ^0vRX7q;57q;a{#V^w$o_Tuk;W2)K*nX=u^|N3Y*2AHH_ zWa#~aJ5EV3t-HG$ucDyEA2l6Xr?Gc{jvtHF=P@Ml8H*!}2t0c7q?{fubLG0=Xs-!CkRb+fx|F1cgJjs_jCpCEx=zIn?^7hp6A#}xvdG8h1%lgklUKW@-q}W zn=nandJpwL0qb=f+6;vPVIVP3WHO;3GwDEV0mvB5nBBn2Knj)j?q&ErxDydt5}IDo znfwPJ9MHVtH^2^RrZV6?fwNE~3r2?g{S@o8xGigCbxC?;o4R@fEb4A-lm5bWJiNTn z>6t1i{wxO4;o87;F?i>Fv{s^L1l3Z~aS0;QnY?U*9O2Exwt1zg@&pgZ@9-nM-YK zcJ@6cOv!Iz<%FN6h&wOCrRhfR^HhUm)aH{v8d0P-o?lui{({MluX5R~??{Ar!`a^) z&008ux@HR>K@L!|mMF8CfuUX79=F&wZ!3tIR35v_mZDS@5BXVVTnv&-APKRi$&H%| z?|*6QW`mnDKR<8w`(oB_gcRAfT(zp*XY@(!H*QBFH+hA$2OlFTIX|7J_bVz|3@hq{ zm>)6u>~FICiAsV&rRE*Y$kyF%ett@NB0oph7EpC)_XAwC?&trieea6ABZY~hct^a7 znV`vOAImGdPTA+&`ug4^*`w>Sl1U7X^Qb%v0!ulu5>gqTEI;<9N?tTK!0y4kip zQeg+oGSK^CW-N~m52el^VellCZW)11s2TJzU1{eRWj)+Q%Opu4XNcFG$=r!e)0 zq#|EqpKaGW@iwr^1wJPnaFOdBbZ2ovX?y#yNf9m5M0rWG;F!@&{#;ILre`Um`3K*_YRTIiKRg-be84TF?De*5labl6^Aa3Vl)p`SO#0!132dV(6jmQoco-rv0)m- zna@b%3lX*_iP2O9z<~}ruaKRepqqe z0^2@0QmomJjy~G!WdC#+0%ktzk(w?1djRO!zP9Q|eIvAyLg|V5O;J2dcFD50=KI(M zw}jpICL2v7-J1iIUjMNu`y?>RsVUt1WwPtrDQ`(m@6Aeo61G z&>jSwWpY<~^^{tkQxczb)U#u`IRYb%)(eyIPSNO5sd-_)2fZ9^)QL~j2Yj)2C<*^aA|C2}#*yW}ka z*OsgB^k1l;cVn+b8{RjNlr?t^5Q*XStXz- ztG#tEe~}IxNqiJL|i0 zi)+Fx?+gp_@2TIcf%D=!yj*$@7y}2ble%TH0NaY`BVk#mP_Q*b$}ZQU!upAy>969x zY5n2+{?~kO#LBvrOjI||G`1vyD@i6{D0+GfyM{O{X>pq{mV1dIi@S)xFgn5N`WYvC zo4m;l%%iRR z+we$=+0)xBWic@)^~ZP2Z{z1tO9+%IEL~FGdUyCDSQtn;@B;qcS1fl(22z9g_LN$b z%k#c$mgON`n8?X7<@v>0QE%7Q$+wWJbvh?e zE`68rP3l~%c;P|v@@RV+Pgx52omP{t%_Tx0inCObF(WUCTwB}0PMbE?>R-mFdsxPD zrPn)2D{eqVbZc7!muAeCJ)C0|@&1$$qNOH>=L<Sy;_+{lOC_qpZ14~8C@Cn z$XeX2qBt)d`#@>>XI#+mA-^5Bwp%vdN{_B?R*aqb4;R3HYAPUYaC@GD?gNbMR3?}S z3Ti0|4C7PU&uRcCtQ1$(OgC{XIr8O-G~E__FlE^{oPnw||3pHNcUXOmVyu>_&5E&L z?}%2=he|bwW~!lZyJJ?IFm*`{j*Bp5c{AgvV8sEIRolKLQOVXCuGDAyqzx19ho+9Ptb`LqS9;nEY->k_f$dGXuPMV0&$(JQ_z9}OkVw5A7#{62Q?B+ed(F<(9kdD`Rxi_j(;2?HNT)^Z`cu_<-=y_{Nw#3_Rt6_J zDff~qA|rrLbnAqYq<9&reL99$ca|@<^;OXBG<)m*hAc_{nAwVgIb?=9v)W||{!z-k ziO*TS?eusl6C|dpD5kqFe;V%h<9;beBXLL<>gyRFEy{D&RUykfHP-QnjgPO)cdbOz zl}hS8?l#bA&0OS29Y64PF1X#C_@5B7F1`2OS8Zri!dzSSDXXX`06%{vqo279&>)sRY;0Wmc8i>o(rX^h`|6 zXTI^YawU|iY}fa4MFfn``VEJi5s_hBNX~s zZu`}v`vd|>RaMmjw^&sHlRjN`^IzAV_f*_3x!}w`vQvQFASXRhjYu@KdEj@8u-!^# zFOSYIjg4i>`~uB$6aY|~)rWRJ-JkH;SCrB~gW*ZP4`t0PxAIA{&ceKH^btL2Vf{0{ zN6g+RzWA)GATK2~4NNMPD*f>EXGW0^AjRQmPcl8Pc!Mv3xbfnhWK?yWRLLB$vJ(Bs zjV}Gvh~$&B^9)kNyqB9&&esW?Qmxt2{LbwM&ggG%>)H6}mnS>OB~$k4QzviEWU^Db z+j$Y`k-e#c4~F&I-#w-;`B`|A?Af3Z?c{Jn)A~1nr_akNRwwU`@Ohs!nP|;sX$@rFPNs7< z=n5Qpc`8YE_Q=)NmW<8Hj<8l}4MGdrq5GtpE{=TI!~AlE3*m;Tx*zU)3%Zy}ZydEG z5+{;UP_y-<{!rb#m7+B(HyO1>|JA&Z$0J8KrIYtv6aGo?KWaWuAu4qNF{M0Lqxld9 zZHoA?ZIhpmejVIUEJ{Z^ng0omtD>Y_l^0pCo+;(q8ZTb!$8X;7X0<>V?dSmiO#F$R zidMjX=Ck`Qy614}s|1tBG6|*}MBIJU7MsMq6nsBQxJUu`xtp(8uc+uy_N1O2FbIt# z8361!)0t$|Azw>A%t1TWdVH-(h^&y3w%BBnH_1Ql>->$7H{Q!1h4kmz^kpRFC>+pR zEmU+)mIyvr##UjQ=+m|136JYjS&r+NS=ND{Bl?4y-vwERCcf?chUX6W`uZZNC@rk4 z-qhIg&y#(0676k2+TKSwm|Xu6{#Ar!ox_vwzH6C{s7GSw<3aJ3r9-6DO?a1xe=^%r zi&XZ9!RNB@Er#c#n3eit9A@UAw?jbG_bU5bx4Ubwy ztLTVs*{;2Yypw8&&qH^hY9w;S9XdVq2zT8WxI94vTBt4Vett)w4r69{1%1v~Vu+CP zN%aigod?C(=1mLW59$t({K~|g2T6Y1>e%cg+MXnVJ=W_AcHQsM`OOX#Z@#B+;@wzc z`oxXI>h)u8RznwA3jEaRj77b8g_;y$gL>~KGP7A#s6A$Ntn#^&mF@MsjXC?|A7ch@ zaD&B&R*|VvFA@XfBifwjMjxs4`mBwg*0E>Z90cnCYv!_|yjR5&xB>J9_UG>1Gg1$= z;PSGcaVq6;(CyuyOCDmx(2P`u2TZ)&JJn3OuFiT%o+gj=MukI%op_4ZYA8_hbw z?GJ8qDPSn6oGJ6Mp8>EewVj&%`Ze)6C$CVK`y!_h>(_cU=ry!{CD5L))F$%i9t|B+ zJ<-9_@g*?vLyddUeBX=V3_Aa*g311Gk=^BMdCG=9MAf~Pdrsx1IGiS`yZ!E(e9^Pi zpH2+gv`88|Z9iOgp`bun;JwCozr?t>A|2L<3-m=P;25A3`UQdJ!mS3{7E+@&)g=^H zkPwL2B=h^lxuk0>475sKj}6YeZ&XV-7ySN=z%~hO%t5B$N+G2(#2IY!`cs#4YUpCM z!>V0AW2o!@BJC}ps$So1VL}lBMH&R@B_WN{AxL*A(n<-^h;$fqNG%B|X;74qloXH- zDJkjh?z+!%pZ_`Mj(hL<&i$@q?7<#;3#|29@B74@^O?^g&A{~yEuWBVJpei%zA?bC z!G?i9*q;^*(*SqKir~GIW-n|-@iAk89P}G7ZGcxqcz=Lb!LS9~Q6HEMa+kx!=~ev& zycU$`yk~@G*o>F5;1^5{%_pq^Fn#sWD;9^IEzu77mW@I(sapS1AN}hj%zcN$%0Y|# znQPb!OQa}%3x^BAQ7da}`p+PXf^X=*t*)oXtV8?jrTSmZq9}~OC{&h8((%#GGZbem z#{}M+^a>+4UNI@f{qy~W#{W!5qKtJ=b#q$ArT62InA}`l1q21(v+Ml^;5jrrI9LcC zDIoIzYv=-U?dA?$GZex9U^`sUmZJbM3NDnBBy(#y^s)c+-`jAA;X#8{fP}XdjKraA z2my@03Q6w@$q$Vsexu7=ge5dAAFx)f_eh=p78*xhC+k_U=G}C z*Q7HKKurYL7W}WxotOI*CO<$nMDnv*edpH|&Th2KDy#K$?mj_4`P0%OH7QKtYVkoY)9e2(2I-90r(t%9VCjDR5CTq zaJBmJ<}xHK)ZS}oZ((dK1-1&Aj=|g?_-|ouU|qfpGyE^WiQzxL5a4YOpm)N>1^*$9 z!0+qeH`%BM@(~nS4AW|98xY*Mv52fkimx^RNDd!MQE_o1pUq!06|4?sAtBufR6ODa zb5*h8vl+*n`|(ZPwx7b`K!D4NJV0*XB$d7$Q&v_6Luxz)+j7W2ZZEh5k*^VHQV&K6 zy877Z(^7&Dz~59|1D2EO1M?DQm-$GI!qV7Squ4_Iua*JWO*lUAOJ4ui?yMO9H;NW@ zW7CFxU6&*Eh}v7BWq4iyG2-3czUku>K*RJ%VPy77clmgPIG+L&AIoDGNUD346>{%nbD z|1A<<-NG8(P-){~i+>Yk4R-cVyxCIFp|z`#sD9tI;MqdUX8_kJL^t6tNHR~nQ@ z6{&e^>8ID%{}LeQ;^S|2^fanc(QA^ojyrhUoKrKR{UtEg0zv$wQ!~q6)TfnIvkC9s zr;l|fd;JytKZ7S3ZmbkJbeta@TJlmRDD7EM#K+}$YCI06*M0?`vA7(KV$;p6le)nrKr;6Gm^4IIsr>0^@oXWaB2v$^&WtNVyTI*WA zM?{xCM8=6O?G*N*bI?d3e!KNu$MvWbIdc~=sv_LF_p;}W#Mg;Le%t1>g8QLIPKQzz zC5jnwv*?yR4YZ7SACNoCoY zE9{CKaGSXvYj6^&-X}ofQDN*g{2o_>geCCh@O-PE_iMY@uiz}NZrnvYhd*~tqq)hF z!J)A^@IiS(2xfLat}T#`KL9uuk{XmzIE{xjiD>`Q_$S3N2BDea8%}*k2B8Bmh^y@DR1M? z0}p&saht+oC9NYezC^Ft|P}O7>lkxxQb+X=FkkO_30v zRutUJfm7Su{`=HpB0WukGv!&7h>l~W6Nm8mC%0`*;_oD&8pE#Rw&5wqr*{aHE$h3N zFuOiB(D7R)k2qxS`_9MXEzumw%GHsB=X3s1xLGR}ck^0W`iVtxvtmd&wQZS&o@&kC z-fO_boTD$5FEX7%e@%e?I;zm2!w08{n*kH0=b>pp6>mYYUUN9o*{7*Iy&bo2yQf~d zxj!a5$DV&B{B5nR{=1RGV-spa6zTdN7kTO(V_C7V%{)#;RtQN!e zlJ!)|xuihVZYECDe5gZ-eYqoHTl}*Dryl{uIY`y zcl}{)U&tSE=)bLP_n2+E;-f;uscu0MdyR~od-Hs#m89$|DIL+5B7lKE z;VLQa7|)6~yM1MgF!gSKgQgdc?{_^+nHU{D{)vxbU6iF*l@-lJ`V8rdJ^_USR}T(g zxxrV59Wff=%x=O)(fCFp|w?VC=L zVfkAa_S?ml5m=Fm;L8&B=#%Jk(?~Icj$0K|Q-|FP!;13aHJpY&MLGq9Zq7|WkX{@Y zVH8ct<}7AsHK1T3wpJ&&cCh19d+-s0%T1TCVoIYs2_cUg25|?RP@S8n;VT7jd8L(cL^pdR5Rj#u+e8 zGJg*jHGMDUqM6Xcl$Dlk6e&3w{rQ=Ne??4f=C^QG*T$FK8SZO!2QlAQz49yk}^?72tk5TgGF4ufH3fT9!Yxz5yf$0m6 z;1gcSKcZowCKthD+MoHQ*>!FmE-9YVoke9UQf{kSj`5iI8*5&8-gVck#1@ zURuD&$-Mf98|oPnh&J_9Ez>}pR3(HaJfc5Dqg|!c2MGzIx`Q>p z?^Wd=lpLJ6RevpsK@#EBMKQ`pWh6d9i-E6Q&`PK~#KUF*@To`-D;-zS z8yX~CCaVW()^pUR>we?tro$hNdO|eb~^cChX%GP%NMT2quoB$hQ4mGlTZp)Fi<5SY{)wOVG?WL zywsE4ygzDJ`$O^2isbpp1?$Dh#6_Tn`V@DI82sRA?)8_02B2ZB%(-OTZdX3#4?bmE z<)A45fIF10@S5!oak%LI5GKCJ{hvG+;R4*MVn?$~DW2OyCgEYhxUJD6mKkZ9S_YY} z_H;|>;bQLl!_OwX4h%Rh#@rT?A{pg-jbKZj%OCYR9g50~q<8_@o?OsYd#n~V1NqHS zF&kBTakc?^D$&!;hNGqGgK>||A6KG7m@7_?SMp7RK#h8KI1>)w6Uu$;aXrXGCcID9 zIBQR%6063XN7e1zW+P?A&JRtNn~+4{iAtIu5+@4tg)v63G&xyAKaF;0%w>XrEt=Q) z9AT<+0*7M4=fZ0m-EReil#ClU5z1Kh;B7EHw^4mSEi8TJ45k+S?{cQihc9Q@Uwt)v zU1YPas!HU!ES$fK-+Fe++#=)W;3Vt~Vo&RimHb*Umvw#JaQA!REc)MKzLbsx`+34! z0QP>|W24%wW2BW3oF~kLakoc^!Gp+itz^(!^`qI>iun&*sLf;6Ob?6T-~_eECPk!) zUQ@gVM9@g8M0wqhUC`I70m!|4;nQOZKFYw+r;UAL@`UveoYlL8CAmCTE7wX#LBnO~ zsmo$5!du|yYwAr*T5o090XQ8PUJ1{Ayws0xo4~Bh0G`NRgln8+c?) z72~f_8PWn7ygDw)e(53@0Uum{(a@^R^nyL9i&@ay+rndqHAnbAVW&D(lUaP4$9T6KTS#fXFX#uO-FRCjuffk3c?&vCo= zv9N3~d#as1)zQmFY6puJ?+&GfpoP=(lMTT?pkSFQ=#7o5&(DVt6KO>J6zjVX*$o}Z zk@H8JeJ_Bk0~3?kLE>5tf#ZwwgIZ12i&f%OWXzO^aWb1;+#GSc&;5oCB^8P;&g;MU zMy+48v1C(0C_Ih-sQBXie8uP@c)NACS-MR*nINiIoi~*wpQC3JqTK@5`S) zlOJs%)d@^?U9Dv=Pqr|Go0c~{*$rfPM_Vr)lq&f4C00J(b8s~2=wn-X>ujI`!YpI0WJLg09 zxChQsGwtEm%JpgV1Oi0V)u4CF%nl(dxQ%a5IZfLwBbXx}FJi_Ty0fq(mAo+X%^*NX zwsi7OBwl=MB=_UJE-)MMK#pg&xOlBY1dkZy(#vh^5l6l5@vQi)toCdzh$;EwPk}dO zW6qQT0^@O3`PKUYG~Q2y-tHkgZ<7?r>wm&lrGa~DS9@0aO0PX8@kN)QX)46QUOkT5 zQ^()!?W!VMQigh)e5%6uSIz)vUBDnpipjPXVY(@vX4v_?URX!*CqcT!I8%+*D*w<;zEy}vO)@-Hl) znd(J{_{C8-SJIiW;?O-u1E6_l{1rwmd2Qs|VxBE;wr*cYek2h1DIni~=leiqGzYDI zB){hPxi|0TWGHW!z?3ghV92ig2R~{O^BJu)-agf#IS`ZjdjFK^ZJw5PSZrA1U0Ji+ z;@L?_)^D@~F@x2D$lSrhb8UyKK|3z6^W@Zf93If3xlSopA4|;sEB}djnEi0uZe^;t z@nSyyS(6Ku{XO3q5=ixDnQc{k!6>4lpN zpROInMmVoQHt@L`@f5Ai@Q-6Vd*cX_gn+YwHY!qdkHY^gP(kKLd1kPcX4PQC;G@6; zw5&}@u?*rSE^efz#z>gLJ$&Y|g6CK@N>eP9O)bJFloq(>y31U6@+_HAooQ0a$<44e zTk(ytxyBV$d0Kp?P1K6r)h9^uZyNL_kBvS*V&`~fpZXeORh}tHs*>Bsf+ma-Uey<9@@o8+$DF%)l0_ zcZi1LLb()FcRsmkSL?K*bHuqY7_g$1N{7uUaiUOJP~<0?XpPak0)lk`Gwk*!{8gHf z({z~WAdS=H_{iKmS@Pp3+;+%4M5Q!9L$&Ywd_bVMI$sqZ_|dN)#1`JR|N z)S+Kdn|PAZZX%NyIzqAgZ1{2$5=eo#=~ zFHTF|h^G^w<%w*TqkVeNx&y_Ke4DQS^;>Obes)A@QbY3(S8-o6;d!Pv4#jTWb)av1 zRo??oocj5vyF3hzq?FT-MmQovj~*O{@s#oI_|7A|BZ%rHhq_?df!H4!#eh7h?y6*^ z8VlNUbW2#TB#GU~kL-2uY}Cwiv5J>FotUw>3UCBQd)w_Kvb(`b{<|4DY z{JRZx(+JrqAp}};)C6JB4e6o{jJ5kEtTxB&Em63})%j-pK|V*~0io#)RvS>YyDC5- zpgI3kO88k9)pLt2VnPO@bg55xn%E{R8v@D_$?_b9j+g251(@?BUy|$#nf4H`-t+4_ zd|Qrc0+19fU-jn$`E<8m2hxybbmH=;Ld7OeO#BDPG>MWhUG9>~8@C(27rCU?Qxo94 zVoJ2fu*?Puw{^oJEV4*$3B(GS`vPWd#Md>M)o(Lo5ai^@sAz?|B&qV~kqIOdyoVDYvC}LydrRZKNXNlI z>Wqu)eSZRK(Qn;i!Zqeh@=?2FtRK)i9)APb8D29Bt?#a!TMU8V!;r%y?|3!8@~tMy ze5g8@x6DV1H*R-^yU##3gdIbiPoAlsR}P6B_vCUm-bV^fs5By{o)i=Ctbvi%Hrl;H z7z(sEc!K$f1{{R1+I9UQ?=Q)TQZJUL9+L?wBFvQBb{oO(3^r0!=g9on{29BtKfXb9 z!Fmd+>12%^`A6U@vQcxw;oVkVQ9vgA1|D;%$e+lBHxEHV&n3v4L2HwBMm$Ha9>K@i zBBE7q*?Wg5@P48T(5gWA^vU(K zM&Sr6M&B2na5((FuadyCmN?D~iV_#&`Wb8FE#G>KTKNXuOnJW~dn{U_B`z;}#^jY< zD34p6N+hEgbK^*q(cTdrRB=<|7$pURQX@(c)=w0U<8Y}jL(4mj&Z{{cvT-%zMzfk& z-)C|*jY^Bbueap=i|aPIk9a+BihN&rdJh`7+yh5CItE1KLbAtKkmjq?nT_~`aC{H6 zIDN4O@Lm zx$9^&u|+}nR|}K}bb|x~(@`F&rq36OyC7~rRiC5`y**SWrxcdYl3tRgM$#0XC{;mg zknald{3Nb+0*Fd~uScb!epNctFIu*z zunv=~a^hM0_7NuR4daefICKpwnl3tvpB98a{rLZF(ak3kOLV|xlx%y6g zUYT`CAmk{aD~F+K??IGSM=%c>uZH}&^9@!;c*rl$4~Vj!AZf(>gKMv3Cpxx)nw&zK zd)e5uoBSQ!O@^M+d}Ar;#WYvSrf0HL4pOHv{g3w%m+%g|L=XN%_%Me=@}<`+R^s{w zgK?wZ!Td|0w?Sgx@ooIKoWx!nh9Yxu)G*IjLbV}d9Tcz67Lr_UM-(KgO=T>B227q7 z&*v?^_^Ex75I*_+zN-Ev%PHP&k?30$yS<8*h^9(w)$*}wuqgp#!MS`P=BNR;!J}4? zl(FN+I0na?-Sx2qDS${8U=-AE&_CRYHLrLr(bD`o{Yxf}$Ow*dG>H!EgDl4}Qy}2= zKL!z|R6Dh^mu2*4G5bYQ$m!_d6j0^?YV4eB>T4RDGN}LJ+SQmdWB#kBQ?f8hXt2S5 zM!FwZzzyR$cpJAxmolPZF!BDdpqqa?XKkXpFhW)#fAw-Rvu6bP!sG*d(MD1*&5q6a z4GTu>-_Jt44I|_h^L(nIYbpHC)y18j3ZSW(jZ$n0*yaAN>>4W-Ik`IdOU){iqqA^+ zH&r68%MR-u!{r@jhsOuQ&r(*~Sz4A_Ih#N&8qmC|a_(oZ_L!yi-C?FOr6UVnJE?ip z{;RC&Za>;i3fU4tRz|*XTp_4F=M|*R@d=O$%wOj>KW{@vF$77kqb^G8bi3EPMCMp$ z2Z#Gbs@j9NyOtW@)fgQhpoJ%PwySyD{D>`uSsgEwunc4VLLEK!24el;d_I9$ip7J> zF~2k(unhHoMY%&zf=-5!gPoaSp&Nw5OB5}B#{y=u0Oonpaq}yu+G|tFeaN23K^{s2 z`lAp%%O+6gZr7hKMG6kTk_o$M(=l;UU&?Ft71S2%(D%aVPL>5#Ek(l8>OD6Go6KEb zB9-#VH@M9C(g`vWBO+@eM}C|*?>O_+yqVk_Eou7}ToHFx3Fv|g9^N(2q6oah7P0+u z`^2sSr|Acd9nsvJ6XQN}dsqoeuk*;Bt$fVjSF+TDla1PJ3jUtTz-*=XqO<+cfbQN9 z^|tHH9CPfAmL!|Ivn~v=IYp=Y>7l1k;mjLZj<73PVP3b;jXy89AM;(hywsr)M8q+k zxi+3)TaJ(q=8HySBdOr5Ih;lzD3B4D9(T62N<}W$e_t6 zX3=*ZHbW9m<1@!7_$vA6mw#wN;91p<(5qjW*EKxHHx8w;mG8Y>dj9;a7NPo>=zN^X z*P7$yx7URNZw>;yhZE-wlX18_FJM$AjnE8i7f$Vt2S`moLz-n|le;)dc|jK&m2vIK z<;Mz~7yOcT^9p~k6eY66IRN8-#xL|!kBknFZ{Eef7=9>-vZ zu1UV_D%KO!R}B>|G)4Ft<@g5uG3x6-n5qpDg!6bbVj}RL5=6x>>qcoAgPlBT5m&2b z>B#fXfZ&PtokEV&1A9ye1nJ5_Xr}U;PBh|Oh0=^V$D1J`;6X`~?Zo7N9J+ zB!LTgYN;5wFp(qgdc0n_p&>snfwFprUG*Sfg7MEWR25|2sbJ{+Sof4QZ5u4MdA|t3 z1N_;AgL;6e<|hE8HmkxMp(Z#KQNuQrrCvqO%nsq_{iu~E5PtRne#t;nw6}qR0GR`l zF5&&G1lu$bMY=MGrm#;18!>TqFmbWjfUj!U4$vz!m0!RDA66s=_bc$({>~dtfd#Kn zG$eYgR|u~a`x^~k`4<*Iv;))Bez54paDy+~;3W*{(aT3^RsH?w7~!J>cxy}3(a!Z3 z7&O{PzX0v4{3rPFtT4s2joYByRm-^P1h8@vj0R%Ywc>_?J0UVo0gam9Rv)BO4Z)}e ze0vilR4hA$W}t_nCb>WIkn$Bmp4A)9r-r-+2)ERF*z-Un&jxTS;P+cdKoZU4YXP$b zxC9+B0Rg8eW%G1C!A=Fd(4j5?VcPTJ)<Tq!Y7~Vu~wp8o*?wcxEdhLa}b4%z^wsk zZ-NNQY8ZMwE-)=|+ymqsHkuM;+0}hQ$oFQ!MUK*n0{k!wgmhbdRaI4xT%LWXfIQo8 zE$p;tzw)I_!(Vi#gBJwk7tmg5e#*>Ie9iAu!Z!>-RT$9ab9~j$4?q8gMQ(6gqH=N< z;g<@Z*DX8-@Mgkw=Gt--Tp^RA)cQo{0RX{So!u^9+{VJ9@V0r&m}_BnJi`NR0i0!7 zN*e%F`|ZFxpCmcTb)h4^LGx2d4_2x#?3JkplEL(tV*)-6a2ySHP26VDr>uQ$Bmb{x zqk|s9Xw#}ula&M4Q+T85MKJ*@!ZaRy{ctR`3%5Q4NkiFs@V^T<{|6EWm>WiU!5?UB z{~oh?=X2nvfs;&l20MXQ0yVXKRB#f6u42JYus;jToarqUr6yn{t}g0b!XfINw?Gja za0TGanB01-M|jLz{h`JHuAN+z*6KFs6}5k%(&RTr`OA@W;q8DJfdpCgO9x&ay9~r! zIL`{lz&==yQ2dSCX23O_y+56yN9=?~WGJ`kef(cvCA{kYLu5t0QMD|!7YlQ9(r~<3 zF3RPiGN#qb(N@X&;H|_=xU(X5+#?umH2!;$`oI0){_Q2j;(<|c5V8yG5ul@mXY^_s zw+`mNz|Txus|uD+oB+fuOSudOyaEDQ4BSZ@4A7R=K-$CMStuDa6tE# zy~ek|9Gyb_62`~$Z+sf>*)FgWYoNE(N;6&32KYkoY_~7uLWul#2{PY+557(HLKhqg863=xmms4LfC;{%$2pC`zo<1dP8YQZkATS8H0xw&SwG?6r(mG?b_H`BJ3t#)Kn4lo2dli$Owvr-S2Ynlz)E4 z#;}JsSaUR=0Ny>m*;?*CCu?QEJKPmHTm9A@hq@x_bOug6(stE*kBZHXAQQQaSZ0%W zdh71J6JEy_bo&qTjD{p~6_;&$z=j_3Yih)K%Ec+uMR*H2+lT#ACJR<=}63*v-3I86G3rPRi&_`3nm7>zzc{GH4BqMrg$GO zEvARtLIxU2hKv|h^tc{ofUwJuF7+L-2PExS`F(iU?8DVTXg=zQ`DP#ui$Nr9u&xUB zl6SLNg;Ne3626o6#bE0iyeQPB1j~Im<5Uif1T37U{?ICG7*AtdQjf8T z1M#pjWKh=UYQ;Wn7&{x*ZK^P--csiUp?aR#?pr6{Q))hxNiYye15laBes0R2dxNcB z3(9He?et+&=JfCMHie`LC_bQI^{GmVclJem+bV`3ij}myE0N`LQ%DXMD1ewY>S3XJ zU^7sT;XE{F%npMG09i^}^tG?#<5eCTVU!;g+4x!-V_C>tJk{FMVq#iD|1^b8y;<4P+!&R8czPV3&mQ8 z_k*H?Ks!w;hL%pMyfcar z@TrK)*7cXunc^f%_q|#oQs4{=bt6J`PVcC)!{Kx z6=`atV~(Dgr}!Chhj5D1ZF~c z1&;G;&xO2_86;^{hpqUwfv}y88U~t3raP6hCkzG`j-bTd0JsT-b!Z(%bF9TDuqhsN z^`5iTHuKm#-(D|Bj5q=Z0}ayxnrV-8L zk=#NgwOo{L;ji!QDPg^7q{EuV>yx(#9pS9nlr*P}=UT0q4!%QP#iJkw?ORlPEqcST zwvpF+9$ZCpu1>3&OHr2#eV3`y?Ww_n{qR97Q2&_VI3MoVJ2l9^i|>p28R z{LCsoLk6O&}_}ERyC?>xj%nl69yeYt} zq!K3h$O_yw-5@h`eO=sy2U(3XocC5EbWU4HeTgmJzWrxzblB3wtu(HauN65ed_T~M zM$f0MY{#i7yVG_5QvBv3LMmsSbpR)31_E75z2nGwk~2em7kAn{$%BuVTb>j@gWA{< zT{p@?_QW@SI2L(u^#z|g=QX>Eg~|2unRkg+sUc0wzJ$s^p6XHeLpA+T?uv;J(@i~B zIQ<3TmfhILykw<;yZUR>pud*t%z)*?PFI&(sT?%;n-8EH3MTaOZ%1$4n|+liug~a# zQf|NihrY4}aF2cQ^;ZccO@63;XWogYR2;327uP)LbB8liZW>{!IWrcdEvvRbk0IRk zGT@)cV}Zey8CALdJ;a@pJC0x$2=oWl4v>Geg0Thl?5bbJg$)s{&zohaOv0%*ay^Co zj^ac@Z-K*@%5Vg2q?bVzR~7erx;>zv^y|uK2_wk2c(0!i)}E8BcZ3qU@bXOOYvmHA zBD2}{0UDJ*+1{ix4Ap5!Bw^K}J@n(8oZ`mZDi96zZ%|P`0IA7LLv>`aOk#;fhL=s~ zcPRAltbkwQen}PApTv&I1iE{AaoaLh`}`u<2b9e&w|K<|#&Wo@@w6@;-+Hiri17m@ z*ckXliz0VyBz@D}8rFWSYC)gM+}*3zL28SGO?f|Y(h|Gw$i-LcM@@=j8_QGgB7N70 zeOj#IP4JlGvGIu^o0lz#h(lF=1g}~p>3n5ZR$QqZ>YsYf+@(m+bc>Kgm1X@sHf>``2{qzMp!x=&)yhunr?7C zgAY{cneC|}OWUvNZ^b_66DImvZAH1QOZ*D@OCS9je$qnuOY#i}Jvx2$W)n2!R89p? zq3aBC%UrE?*OWuHvE$?GIxKit8G{uwLf&+=zIvbP3Bn{)eWs9~7b!%U(2Vv$!9YY0 z8t=ZEL@5FUtMry~LTK#_x9!N$gWe%>yqe*vu!|hnif7E&n-gJirZaTAK&7QvNH=^p>f&u*FLk49cG0SK z3|W@+mt=*d%VhfZUn4&}Kd0Ds5z%E3B(;sbVIy^Ly8=(4A&VyOpN z=^1W$uIY#xr_#T$fEj>av%!?A)ovX6IE_M<4-(`$ejmnhIjihJUlb6DkbaMnqinaJ z)B~&enX4~m!uSm#F{@8si}pJv)Kz$%O59)(g}wqM4o@bnF+T5~`1@l)4nW{0E8Nzp zbY{QGG&l2Rn?e1C9ppvV4(?_~)$B*{&gTZs!-zljmE6pI+;J)_xMZkFtT1x!H$(Rc ztRZ;xtE0+L03&+b8Djua;dh${$4NEjkQ8r_=E2ApxFd?S&H`w4&Fp&f6;mG()?jxs7B*0P8l`Rx0avPIss3%Wc657AF{B=h)PE1=G-sJo~oDlF=3s^)<;n|eqJ?B#1(?1j54{qje?0;euK3s za}S0NS+q9;Z&F2}(paV1n$f0mrWbSni%4)31VLJA%cmQ&@mHu_KSI?u1+|qLM zw@Ee0Bt$Yl)dyzg!Cde$UhNC=v9x=B2B;;fiY2_|FB`LzDF9>9*emn*Fo{8n% zqDv3e9AU@W$jtydsO(XoS=K!bzjR>-Q%F24BdpiMEb)yGd!V+BstpyAjv>RMie=tn z@0?=!ISReoPSos4VxMyrxlZic0how(P7yq^gbpY^F4rTU>`vOwuL-Ey9?+YG9f|X> zQrt+^HlhwGvDph zYbO4J_vMCUiO&!Id!9%qg#%4e{nU@zn#BuMAsOr#J`MmCG}&bo8~vb_AL;+gwp=|B zze4O>1M&XU?vc_DHDOPwYd-jas?ZyoO?Gi@K{~4hm~$K;8Nw&qr^MyZLctnL5}DJ+ zPY?xSfw%m>Ir+++2bWZ1&5kl zlZ)XRk)`bnc1DXaEZr6W=O%&1bdQ?J=@0&PN`lQ)Fh!*>oOH%BP2$G#x%~5QOahxFNLISLta+^LUN zNw~^k7w=t?nP%75zyL|@&Qp@f#P{2KlEImt*`G5AnfhqRo*x3n4{)Pa7WKNlViX@s zZAg(R*O|HT@p}}Ibsw=xYJq~%qWD7pGl%lOAaj&vD5YZnK9C>1=H05VV;J9)gJ(31 zK&x&eL8pr<4Z81MKtTl%tS0a#7Mk>EK0p)$q8$w1Gv5g~D62dOq6dI(IJAuC89tBj zf;Jj7Qo?{)pzu5t?PA*6-u@X}ZQB|n8DvofG`Lp6<^)|JKOpkr--ah2fLg2vVsf~k z?|@Z-+`;PrmZTso%?0!vAhFio{s7p&TLkJza#VnE};6UGQ zIa0g?APJcAwi$oc%B?rg@RUD+m?(C0h za#q#;h!wa6psdD$QaOcoE+gp+lowD56esdA%65fOhy6i~Op{0Z<_4Y)?>47%yA5BKi49X++&`W)B>q*zz+GL-Hl z!go-VlkbN$Ktpbc+d!U$U*@I;gVu_i)kvNVu#AMgB11r`FocUlVX*xu0im>d8a24= z4#9jt&^DXjA24hLcUd~5Cki_QCBKLpJCqe(@DVkI(@cDNct_*Ta5>0mfKpk29d8bx zZ(WC;w4)EC3#4*$Zq=iJzypa8gaX=l018)#0=yqu^q;D&)l(4juGK4dfzbco9|C2gI&3aIbV|Oq^W5fe$ifMR$cl5?~?xJKv!hZD{~CcSeUI(xArE zO$*IZ+XjH@+(QarQxNj-9wnvA3Lw4}0;2;K=#84JkMiQo&Y`41sl$<;0AG>&)bF6s z2N*{HG!&@3Pd&HwN*Luwq)>!U;{9u-@H&z9(M%e5y6*ZwpKR?z4V8;wJ{Pkj)u4mk6a?XrEy9w7RMK9I=47U*%Mv(5G?V2Al?sVLoj>j2yw z8eVgyxEgd6wUF?J1jQMFvDXJ!k=d*YCfi`>oM<@@r&s+ONDUjll#MG;>;pEu3L_4n zlvl}(N#nRYemXE>iURylNJ}oOv4^H7BW{L@bj$TmC=1|7o(SA1< zfb(MHAChp6qWu{ z|JM%+!ubC*M)d#5?YL^{Kp=&4o=#{63Of|H0sK2(ADRd(dWGmEE&Ut@IDlrhD0aB5 zn(PV5@rw(}U=4;)93Tw8Q$P}_2s{OhcO}UN3{s$2IDjLPuAKWyIq6m`-B3RqBye1Mo&Nn_b7FD*-1~tY(-5}$)3&i<8WR}StGE;Vl z=N^zIK)qvl2!_KDl9KmoW&z9-11J`by6}I@ANAZWeY%!7of<$b1ehBbJ4Jc%Vb}w! z%rA|W{LdIt{R{@*%YDBauZH_Onb2N1<57#mU6JnP26;rtwepstAD`dxC-1>}VfGQW zmmA|}b(r{UlO3%FW-q=yy;7zoAPlH-)4+F&8GEx?;I8u^;XndI;rMVyEqNay(aS+s z0URSZX+PVR;#u(j87DcMVa2jqFMhnpu$%)bP4sY=VKcH1W>Cw9^A*xtz6NYQ*>ySy ziVwS8vVV~$(v;b9q(!+T^3COoX(8k8D_?RVg1@MqBTzZ-&BS7%pv(Jf!sUMT_wpL9 z3tK~Q?U8v5Dgadf3NZsU&;+`&itV;LK9Dj|ukOXeV<2OgC-a~eeijoCnRzeY=L}_m z5-LXV{UH!0LHHt@Xb(ETXB>t3T%oeR4~L?m18+5FV-4VTkt|!mCv~r&F5*-O&3uf( zy$ZQ#4$)5pk#!IHy5Hcz?!EROLq$c9>wvyAh$*@B@3T6GFn@%Kvs_72H~m6D3jtd+ zK5FG&RNmMGgnmbtZxv=HvT?pcNLw&Egn)Xu1pQkl57;}Ygt-7gp<)^Q`Rn&(_%Y&# zlW*Osp8UYrU*CW{4ShL^3o3Z}AchZEK2UV}hN(7TaZ#SMvpybo-QN5c7QnFf;A&uV z{~P9Eo05S?PfLM4(kOL@`1lCm_uXRl2p{TCqSkfrtXiZ-D&Q7qdFK?PbQ2x5@T7hH z07pS7DYD}x>2T0(BIRH4A# z_pk(k2n8p@J&DEqvCiwWy)8&(S95gx?6r+KFL~0l=gX%av6ghZ4epa1zsf11Lu4v6q9hqROKfRFR-VDSXZsW%WSmY50&ow3yAe z-a5~hf0IS#>hwS^|B>1{?tcipBaPcE!G}opDS=*t;Yyh8u$#)xui9<{s((n*8Jr`V zHkb;~>2`1D3n^4>c>pp9{OVO<@|e1&U)&(eR$%zW516CfDbyQ78K~03@y;1tV#|}4 z9T9|IaK{BK`RAdq@c>R>CT$)5|1MM*kyG&tK-o=46kbEoMML$>TPL%S!sZX;1wQC> zl_S4uKcxa5k8{^{MPVBN>NN0hyDb@`kOB99mU;s&P?;XlOk>KAPYI{|1s#MSa6VwoF4+fYW(&r;(sasu=$0y{o1 z&az63x#cRv{pycgB5jy&*t5XymbkmyK&KbddlQ?zFU`g6#b62C-StJ9cTb>>up%9v zM3>+K)%Jb3LKJ_#C8AO>91pWVABa}Z>|Ud|8Pbmx?f`5&r@wpKPU8=ETB8G#QZf{z zQXx><-sTkaq0IV;z*C`*X`O*e^Vdtknx`%*Ft+pK?UlYss+t0u*3afU0`zw`pq9C+ zJC#(OXk^XxH0Z@xYG&Tz zxOy|#h+x$~zz5TD2_Pl1v)bz^XQ7IbOM~_9-3okJz#}{1JEExgzum|_GlBBe80&5T zz2w5DupEy`(nlX$7xZ1Zr9a2gvQfP1m3+6Ivvu>Tv-MSvP8K2rPF0m}Xj{8pvBi%P z={KU36#xMGr>D@{_$XRF8<_$|`1V=Ri9Y4@qJ8z-X!;DZuW=EX!y*5~@Y}5Pj7n)3 zd#~Y@#lB%|khmQs=ySZp#Htb+5%tVmt5YDf_XoiG4LQY7OZw6qb`6D$SjGixHfYLp zv-y4?r}K57G*R<+Xw)*N{l=|U3Dq~x7eC!ACKAEyZ1LHDNs@G_j;sPD(dc^YIbwf@ zjDu(up&%NlqJlFTF%2bm(^}$vrY?oTtZ*O!U4z83BJqPbc0-oYRvvj5OTD0Klht<2 zuf$a_b8PwrNil>LEH3g9O*-+(WEXLA(FSp>ZPk{HcUuXXf4h=tweMrn_eGJ=k@%du zN#-s?X1^ZfCqx-bXK{(TFPVz-!)HjcB4(!w!bFKt{Hp-cXDYX_i@@Y;G)0YUkb~gb z1xT{}PO66`jmab5mS|!vusFP1lBx_KViuu>k*cX<>;Wd3Q#f4aRl$E}l%8_7T(wLP zvca`y?&Dz0z}SAS@GW}{Gmp6r>HpFDxG;sOI-Rh?sjzTHPv8Jd}MOvC}+;d~E zq?%{M@T>I9_1%fmR29AFR-G4u2=HxXsWYjkK5=bD#QJ)-)Fe7IQ6vhq?k&tdkl~zT z9RL9I4F2i4lS9=c-q|n8b5CU?EU0K28*E#N{|3#dvq8!IZ&A(q=jq}^7Xq3BZ-<1v ziHc-R=L=-3d=$GYZ z)b=ylmukCF(}vuSvV@BjcLqt+xg_LLb2ysOCV+Yw{NZmPcg#GxYUsgdjb_%{-iFGcuXt(m@( z^I|(?t|2Oix-(BS^EsKC`c?U$V%24AO40-nz;W}`7zkcYzu0`GpxB0ssqx75el_#C zcn8h0hqcJe*wd^16W}#>)Bk5{Q3uh4LK|LQNROc3E&p1rFAt6{GmJrWLvTij+!uqw;ay^6ZRH^GO^oO|wh=id9?eKE!xZ`}X<@l#mr zwbuO3`Kg&U|9aM7w4w^<7Kb%~%R{DDD}^8KJ@PfWC1e_rbXlLaFgZ08d5Sv=-(5^+2bCESJ&r?va|+K9Z(Y{@ zQSU~bTIYvLGlHo%T0G(?QhOujnaV+Y>r@?8h^LVp6Cv-zE@i{fkJe%73Y|Gsz(q(j za+6wY5}c{9BaA!Y%E@dEjtm`7aqtNcZZHTF>V#fZ^5q<+=_4OZl3nJU?<*O=O=YEL>Amw;XBsiPLpW7!rlr;@r$o9FJ>1t_&ryeNJ%RO%Wj$QzAmlURKM%7g8Ry0_H-o5m{?9x{3WvVkKGg^SDO3w zj>uWn3fEtLIdr?-;O*Moi@%>${Y|Dn{XTFzNGEvm2A{zj=gI7jlT$iJNC58A7T}DI z0HPIcIO2lykG0mUT@;Y4A0}<9(AIrtab$Q&HA%{^npiak#v_e<3E)s^1jCE!S1X8^ zS(ZO7LObo@z%PRoGj;`||!HfSd&Lr-$Xk4FO?n z3xo7VC$poriHT2%#8NY{LOgbv1%78?xUbwM*KA(paPA(yu)|IAglsZE7rI8 zzX(Arz{OYjbZ|;@vKv3USOjmno!Fz%UaRHw^dXckXJ=U$-ppHuA~N4T{vZ$^Z`AYc z7nv-m`y0nk+O7Q91SiSK#b405UeqcEVcdN34YPFcBJ2s^k<0^PzJxPvZ-J?yp~`P| z?No}PmWyGxa!-GZktvb%vy{x(1<81LG!M+V8I_mMyc?lGMqm(f#oKGAwTMRsQ4~Ce z&4xKlRLoO{vtJNNiQpKVZuBy|=~o5b;6KtI`|{!3KH_S658Zj^=pPbo_*EDl{)z9= zAm|6;F}LabV;-7D-5u+|z5amXq$ryCRG>5k9F>3pM+QY0Es=wg*vu!>ZaRGg6o2xF zbw*70C`x`3ejOihue#R-p_-x7tUY+ABk99D{E<9h;NBV>JqhmAABBFB_E85Up6dup zEqalP%2(^}U9~V_%MGKM5GE-M^N|Qj!QF+YvjeX#S56`V6+>n|sJI;&lduUERo3qknS#Ue?h5sg=?Jc*A0o}2O%k6EZ2c*g%OOQbaNc4y| zM`W>la{1iGZtPFt3_^TO^KR_CLYPx#6>a6PmZYoYL55$Jik`t8%ih6Gg^+^ltPWkK`dA37r7lwok3*(T)em5ngkdrF zcWk3N78*4^2mrl_f8D}gc8&W9m0L2?3)Zcq*D1kUV*WKQjd?J^!FE87W~Ukbv=xed z?ZwM-&XzrO`8Qd-KC5J$&}u}aC=N{68eWyeD7o_|E##S*Uy2_oMc#f&vkg0Dl5lz> z)&S4AQ!EV&Oy+(mTWTnE6(fLltb5EFtZ_Qmj4Mul%63}8W^Yz5IV7`77V6Q z=RiLCZ23d{lW8k&a*I8N5o8vF0n$eJ7{>k&&dXLNA4Pj}WOK?d<^5QDFWW`*_%nM$ zT|y6T1_zEX4n0^X&P%KLxef8wOpvv|@1jlj%tmi4fG9*OE2>jjH?CMa=_e2-x-++J zsqZcHQ&UvjO&QQhHE~mw%DMo-4Oq=a2LRy!MZlRBRrBKzRL-%wc>LD=DZr*S46nls zh#*_$b`6NcrIuT z&hX0t-C1)K6Nnsd!?RnGD+F*lAT|PB{knH0iaMLT@J&>XWnRA@s>V@$H2($YyW_y} zmhO>9>qtYR|1r!(5u#q@f95t(#j&MIsgR&Gc7fLsrIfS#;kyzA(Fc4P6^WL79Nqn=(7L=AJ(v zy1;A_t~TB%<_(r9u85g4?^v&c=fj+;;eGL_jsg*5v}v#oxeSCuK$$OpAEX&TuuNc0 zw(Omsw>NX0E|AEuiw6zu>EP|+Cwc_Llho)8c^rQ*5ngtRho5q0(S)#k=Q%G~b4?vj z@{T***>{M&$yK62F^@P=FCSxp2+`pMrTB)q5o`jTF%U;WM=9d6hifMWy@0HMr1cnf zy&)+$2E~>Z$-+ptWI##hE&-*YMl00oT=899TCpR0_3M*`;mQDH+v0ocPm|tG4=tX1 zimF`~JE5-k%=+&}iJ=Qz`lMd)yJi@uM%l8eAOB+fc9`yu;Kfew8^AFIK=6MUP{pc> z;Q&^HTE@>C;SPQM39DF2+Ngog0CQ_%ks|m{NdX0?Sd62E-H30VIc{H^XZJq6u3N zfm+OfYfv2CY;Y5jTon0UoEOJs`c{M-+!Dedkp(&rGUn5GG#?`AS%`K3PHk9ncixPe zHR>(M>ZQIv4QUw$(77TLPD&sqJ%PyKsRowP@f4Qbx&6QR!2jX{|BDa&e~k}BSgL=W zmiKp>3qxmEtYZlXMnVID7-OTgP1D7&}8}zNCm>H4rWX!V52Wp9J<~D5DbFoOOn%r-h6;T{|(?p#&X8@znvUuogS!Z}^_{sz#Mn(hC2`_{h^Huz5$R^o!}J_l0gJAVaqlL-4d zbc(a-Ur51#1V~j|xdOrhWyXh9Q=9!6VnC=K{kmnF^#-I3#iP7t4SPUIo58kbG_q03 zbHcTwFI!sjfV($K5{~=FHnd>HWKj*faT0eA+FN^&0vv9Et^(oHOfLHZ8Vn}6W^jeT zxbzx2{J*%U5@b=xGziBkEK5gOrs|Bop{o3A&>()M4xLqd2mu;g_*L4AR`eG zQV73-n+vUr$DiAX%yFQWH~_;Y68V#@=Wqmv3V70o*S5fqX@!v7ieX@cqC&NlI6|TdZ9^#UJH#^uCQ7_fNKCv1vWB~x*Vy6}mSh z&!viUcNaLDq7~EuIA6>TKx~3!e@Ve+;PaNX;3LWm{6~^cRqxbw9a-41>E%elZ(2FF@fj#(6TY{Gt6EPRA~UsS$$5&@n*6Avh15l$9jt02xu<@JS-X8R)Ojg%-`g z{3BY^0+A6|d1}`P6k>eshBMb$anIG8Pr|qyV2Ihw zfEbfu%qcGhc%&liw$mF**6-{<AU5lrUf$JV-OA@v5|8Zf5X*z09WGTLR8=Ekp|6)5PNvW ztlN+(dtbV6_($02TZ&lqJmVIv(@kXW0Gl%e%=m9`k+?^IoJw159kNNJzsTLIn@<5< z|2DK%6ClF*^V%&@Kqy|Q3z#4iZ+mOBLm8VfykUC%WlRxFWT-aANzSW4sv}ST8D$TN znFwb2WnaJvRQatLHm(65Upd*XT4B?Mh3~nx2OtMK`?)z4DwvkpY50G87Me=>guJ_U z`65h^1WCO~8>JwsjsBVrYz?GidLe<7snE!O1Gyg)O^jk6@gYa=1ZW8$Sn?q_&%sK^ z+Ol5CkuZ5T2qCMM>4d$OM>u;A;hiq0aTI+sAs)eIH4d7ET_E7&?K@@ZuX=Pgg&<-a zCQq2Tsw8M)oX!mM*RKk_k^?JmSl_*&d;-_2YKk)m$K%g?n;~jvZVu531t_=%g>ci; z8Ig#j^I|cP0Zi%So8n499`c-yu&HR*d8LuEGg{!p!A2$o=1ciI2&DnQoq3#$>M;;q ztTaL=ToXOzI1 zFHW8`8H4ElIj;};ow@Mgs?w&^C1D+_{AwjTH11XM$a4n#t&Su0)P?$G%$f;gu)vXu zwY#|uX>0Yem{rNfTV6LoD^4+7F+p?y@3pY3;0Cbh$XE?>u%kU?yMKv{V+mEdOqd}@ z!|OxY_7$O)ozTafDh3{1DeHXApnXG3qse-~-2fI6sIUm)5l7##>daK+UtoEk$fUY= z62+AcWHl*)6G-Ut*-C3eiy=*n{L1F9OTNlZ>1;NPky$UI2d>xcC93lg$ZB$8hXSjl zXxBh_Eg(!qk*k<#<=Ytrb&z8{8UK}-O63-ZH%GhsUlzrBW3U zlR#0-+!(Iv;B!(a_tcZ_N@|}|HX*V|N=v7oej_zC>RLM{z<|uCt%?`sZ?2_1nm06| zx`f{OHJKApe35JPZ&&~=pW#5@v%`$}@A^LrYuY~j;#ik);`^Te5>@6Ekf#{#18TP+PS6IKzWj^Lciht9AhFGQ)nW6 zIamG*3&;dGLmIKmlk!ems!&{2f{!QG;DQ=@4grwDBA-6!GDgxcpscqQi~!*yXyY(O zY(_@7^z?Oal((8M3L|$}%=G{)NLRN<^dl{&UzV<33R~Ixd~bu{1_vP2pg;0)I+{!Fv3j_ z3{WD;Qa@l7Zk?lSs+C?f)9~P;UeUVRz7RsB@{8R(VecMdeQ@7=1Sj5XS;WS|755;pnjI_a5e9f)^ zq|6z1jFWpEq4puQJ4sWQ#mR_;>c9>1}EE!jOSSIO2h0Z97vc%>JR^H_(^e>RuKxUc01!0RWuFm#F!8<1-=i#_#OVJrcIuN4Y zn$0JRv?;pZXY?{TE5L7pC<)V2Ib?BqLj;6?OCm zaVwj4ChT-h)`)uEwIo8bZH>1Gw}e*4)gIKWQXh{SB}1>_Z9-K#hH{_KS_TmtcmnwC zwS^a1znw8<4yx56K!0F6{aPcU&#@QeU@FfBm3lnjlcH#hkmq|&LPa!F6M;CG>EeL) z0G(#&R|$~ppE(?HZpDuP-F8qB-00aNsk6?$TIJvJa)MiUc$MTA3amY@~%w;4kAwi?af2wgx~0s^oi zj`KJio*%px^<1KzH+mnBDrHpypfJaJhdtra{$|uaWRC?Z^RC0QwgPLI4u?T1mQ+!E zuD#}LhXWIV{ya(yNkJq#{}`HJ?ZHHOI{n->c52-kmTx)tKi`^L1l83;5ZWDqRKBeK z=hdhximkhXrQO=n+Z4(DRpmJ?;;E-PB}R@ApG|4jdcDGM?s_WEtqpkfbn;LRt%Z;1 z9VeTlDF;D$^eA@*^i`TR8E-jU1sj~w=n=|8*QTC4W$epcC>GQ>U=C zH>_n3I7eNhkge#5Jw8wKDePXXx;DDO;Xt|=OoYFW_(i1Vjg^i+@;lLderc9bF0xX*Sx?#FVSIzqxI{ivE!zeCusH+YKm7P^{30}mBSi9b{! z7?WQExoS+}?3FJjaCd22NbTm}cO;d)Oi~^aswdBnD>Olsm1&7IaBG$-Z6Nn(KbM@R zXu6wn`yRn_UpO85B^EQGvroscmGCz(U!^HY9#wE-W=fL!y}gop#2i=bQ&A!!emWN* z@3s#dx}4CtaD1{*>l491Gl978g|e(WdyBFk*pK#!Yud=`S5{7&?XE#k3D0o3`nXQj z;=7;|t@Ux7n-%8hnO3(mjlgyZljpVBpdoN*2cFh5vHgc&5PjyUrjsA~k>t^hFt4IY zr9@GB{@;WB&0|oxj-W*ZJ>yb>*;s2ycUi z#&OEXVKJ?8O*LzNEZ~6d6@o2l+7Pmm!(~j02B-kRW@HQ||wu3sA6VLr7h}y&lV1!{o zb$FGQ?SAioBk@B)D4g8N*JI-p?*u?*-v*W=fScas9WLCaGhOBwyfyBv4E&_w!>O82 zpSqnv_m`!DnQ^)0IhdoK>!h}b9kdH6JKTBkK7qwJx4~2l`qa<$*E^Cfg}v18|a9mhwoce zfPhMBF(ABS{;>rONgXI%+bqa_!87&^4hDg&3Kzr-F$*t53YXzBfYg_`Ha)=bO+4%a zD-I3pJ0XJ@)Yh0>1RyGD%aHaJEl-&khcO5_`xvo%%4tm&?}Ncu!zINw32=-LSVkZl zW5!MjsS{>!;m}K6fOCl#2@o=vp@#@`c%A{pT7b#<3PAJA?;sD*`oYHU&=YqAK72b= ze|^ZUs>k=|vu*&>3T9I>wp>^jSqbbZlBMa0R=-VU9o_;0Xq3MBDNJ zMr*{V2^JQXc|64C)5bh+249(W@IOsLC+<4ahA7NBuzMY{48Ya{OoHBU?$4G6_-75` z{7V1{S_D25apM5rRAy3F0cIOW#WaFv*)1>!V&S-8Fge_S&%_hD-ly&AO%H**^X}aO zZUK;|-(Vzyh0RN#YeBYr3Sc3s)DNNPPXQ&P*$Sa(c0{`HQbHk}%h6)^nB#xGv<-f!*B(5j@D~2>iu)m6 zN~2Eb--?&ws=vQ~J^I4+p_GUwQ`CxE0wl!wZ0kbslySY`w_N;aA05P}Maiu+bRh`C zzvMOO9R1}JM;5@3Q5k;%s=B%L?M-9v4uYvF>tJO$`8l&)v`(Q3jeRpV)xXD^Dx2j9 z|Bvxv1j`!gq?SBZ7!&ZkDy)2mTQz{POhyfu}#pa@BR}CofxHdhhVQI+apJFSd!^RUP}gDgDS4E>Vr- zkNs-ylkSNJao&yK*);Xp!(VUPWhX9R@ZC=M5$EJ~QhWEX@YpIOhj!;{=kSiCf7iz3 zY3)PrmflE7qcV4sBxbK-Bj1)6&b~3;FSoyi#~!;LPI@_1dyhG{7WuiVZHk7l`FX4} zE#9mABpSj_Oe?#YkyZL@0F{&HaN}znentEZuNG?*$%Sdced)Lb2VXtlDDJX6#t^J~(<8mqAD2&OWuTK13Mb^7}OHBauh z4qNSjc0%fAt>gN3*|+1KMDwmjb1lZ*Z+p*7`+seWZ%nd(Joew{mwjPe`Q)0U?K=PZ zusezPkL()8^t!uRUoT3=?XPDrk;^_jZVB&3bGd7l-KOHZZBS(YV^Fv~HuK=qQh=lk z+(y>;nrm=P`UWQae$$x8&5ShJO;QccD$QbazSm0{u>F%|HUWH#ST$8$3F?hLfuUcr zx3fS02oCrDl=J-9&ub!nEw9nbadf4^R?E@T(ffg0K zNB5h{_Ktd%tim-8Lc^+Lf0o)Ff7+i>IIc6?kMjLAwwcx*zFz81D%HAC2G4A}6U3mYUB8c%pm@&_DT-(xAY;Z7~m$Z2*wj}?14 zo`&81>f?Njbv^Dqcys)#wS4ERU73Ayb>yPdQ~&6wd9Ki!3(ae){KsKSoBpsAdg%_s z$P1GYtoA*BIxG@ID1?~XGB~;3?q+#z_8tAIcb>A6k}iIK{Nr)GP{6^5S65b)CP}cz zi;O#?{$klAPXxBsnflGW*CY(N56uORoyN$H&DVZoAF^F|cD3iCgX2+vtaQP?YoFH` zyGDuWo6pMRva!cyorkBf{kMezc5>^s$sOR#VU7E9Gt8~0e6{P-pZt(Jd#rW9Yg+1o z88a4>@PlW@jAs48?sQqBNQ3s{^JO=kliaO#Aoo9LPxDef5;z#Ml=g0z!j&%naAPAS`*J)&~Em!_*4*N(HV>{V@o^C z4+T)&{lmy-Adk=@8E;;88?v0Jfg7f=BnIzaZ(RMzM9D8I=N+uu)X(uBn5B^nd!tu_ zuRV{rAJ?vpOX&afTY2WZs3BvE)i?g^oM2;mh3iIh)AoG8E93pGfmHMT7n7djjR^zPLK?l%Gn~?3UFYZ z3@~ZBB_P3dx%s&1sb9LAA(xR>_FhL$z+tV+PTZ#z1HNWMxeFC;+oemJ0hqc6S#ZDG z$pb(X+aJC7qvpp=6Tu;+5z2>iR#$fqyf@>p2pSL|CDyUOX8OrD&cVKz$QSTMH(y(i0Po7Yt1Lu{i$un#WO=>krj1q40frPZ!+W57_dq4xv@5E7S zGebkQqbv9pVy^#cTN1;VAVGh$7rIoQwIy@ZQ1;Up=Ys1Ai=f>Vy{{oUl#lEREJX)= z9YDT5&=~H6(-__{Rm>qeGO80K6%kFy7A(peCV~)r1%!)Y8wzG1=wmQQ zFzt)5FHN96gt3Wz7?>OCC}BW57GTcSWI$4f5T_y-zvAd5Hb9etf#36{u{R|-BD96e zriV}&WWoVj6TvYM5K#jllZR=Gz`|jG#vlb4Lm;4AzW6k3A5WLg9Z>d(HPp9@p^ah^ znq30cm;nrupg>uIn+_s41^uTmE)qXQ!m_=O;e&q#a}9-mUfXyesG^1u8y3)v58+uv z*oDtpPNgsdAvxwLc?wt3lq@64*(P5oE=_RML|2S=b6Kr`05Zq z9qopXk%r$r>fs!ZSvG4@kNjjMeiPf!hvR)OL z6n3N@G35IYD>VjwNQnwWl%2v$2m98g)6EdG#LL~)h1#Ob>Mrgq*??mt!NcFv7Odyd z$CG2JJ1)vgZyEbqqHdDdAi+NZ0k(NnJ*S|Fk73I-Tq>|^6j9k@HOf;u>)++EI=T)N z2_#t|`bReyx!{?3Z0QT7s_GVJ1))HzTzeC|xstH`;LGpN!(f?A+-jMHcXxgHc^OI0 zTHC-T-0QPTHW1}EM|0}M9F0;`zYMH?L^|+wA z-7z$_*6-kPz+uQzZ|}J}==B}j!GcO77M@dK9+TbG+LfWH64A=*^O#k5g7k+{l_U(+ z1Pn1P$V;Iisg=znAwX9o!)Wv2l-~wchcd=_OBx92GvRHe=zTlxxUUGKOF2hh zVEeyES!1@po&LDsip#MdVY@84a=m`gXp0e#>ER>s4yGv~T)WtNj6dIyJbWy3jVkv@ z^#M%x7FX+OeqG}2ZAvbA>( zRIVf<1)kWSY8l~;AKhw)J!PMSiNa1j^;#pncOTmybWNK`Gts)I2e!&}07O5o(yTjk zhn%W<^cYb{WaM0aj-%hj!ly^}Y(nwOvnOqeN{#3d4lbdq8rkXM@Anc9xRNjD;<463 z(C3C*J6iFL0O<$5Y@v5HOi&?U;TYYl?gmb)KH-(#HK2&XaXBon3>z2U)C+&+NLg5U zxqXs2kEU`1Eho@=Pib80kHU5^c}oVu?yEy}6iw!eLO-qg9zp4!Ggslztzage@Og(u za`9rBx+`3UMo1)A-%Zs+ozW;NRQ%3Lp!4X?sZ$3~xAhzRPqbNSa=U-ofA^V?f=O!Xf-=5+Mc+-1dcAsdwNebBfhU!&&y6wgl>At#$DOe zSw$ijzLPrY9e=!FztkWlG6)&aFf|MRyE>d`8o9z>5h z`w*c9ARBC-_418D=VU;gU+Yb+`K%BiFGmG$pqLEXk07r_Vk+=NOJg)~1P!jR(Z`B+ zRYU}wf(+66JcNuFHL{}csFqSYOgI6)IQ`thRD?nz7KiR4lg~ayJAvD@|HfhQvq2$C zN-#GUv5vjpE3&4HBTD8=9EEjv6xx6jiG+RLs;L}9w7s2Cc)DUB(k~vIzCN*sL3Hz z$z41bK)1S7@(b6{=Xv!jPEK*?o{9#pTV~gpB8CPm!|B^= zB{1S6Ih<1MImL9}s#IGz4VKt`$O~CcPyhURDK5fV^hvb*1=bGqZ*>Av5gu1Q%%v*! zWW#C~NM#637f8rUGT~zH9oSpfUtkfA*SkA6cRlQZ+ZOg~7N|l*v1$adu5PF5HBJ_^ zcOIT};|f}TJjya8{w%dq886>RgQ4(2CY?|!?`@@Gi*#tRxI3RQX+Z*rs}9~0H@4oh zmFd#)2Lj;B_#1(~eiKZ4B>moHI`vPp^^% zL&M!!>#LkY4BxG{I9^S;JopC9m&y1tkf^anqr5yLV|^`k0u;?YwV>hvot@Qw*RQ?U zL=yOrQ!9FdJw%^?GNnW+TMt4z)&dKyDAy$~BIh#=*rE`@7ou%oc<>YG$QT>WlLdaW zT0(dNHmZ83w`uIK?+%MYn^M|9InP$!Dk3c$9MW^D zigE_9dE|7P?u=E9%Cmi2ly_fX#uIzBGaB{h2=(p0bl%f@6!j;mudNa|B>nP+g(nVg zA^fLKNJ1cxM_E;1q(k%?@JS_3i8Fi+Yc0sy+s4hx5G?qtOR~>f=@nL<dz_a4aNAAmZL2D%b(PU)A%L2yrzPUhj*h;FWn=I#5iwySZ$ z5W(8{)3icS&9DqL0FI1!T8S435}zS=^)1Yx=CJk?braS>y^*;iVHZSlE$PvCeqI~z zSeL_egnsJm)KLBC`8)Q016Cs58$ZTObe@JqPIP%akOjp*OiR?sy)YeReoXPp3d^!d z0w`O4qJSBgmpV{K=3g<=6l2!V3nI1T!IoC`j5tM|luLN70?A*_!-Z#yXsJkA*qzJu z2w!KK7$}a7ZS%43PjtEI&B+c3nyF;ez!)^wJ8h*qeF=qW(Gbe|YNu<9nhyN|r)$(F zQ`ZlabX!Q~hlzi80CKD67|3jXI(i5MKiuoZGk)~^KH3NP>MoA;C3AzA*4xCjTk%7_ zZ`Su5TF&1>JdYi-s;pGadV5E`{Kae86smfH+`%}#wJEh}hcbr#MZy9<#wyuy(=0Y2 zDj`7-ruU3P{OXu1oZg9g)K`=uS;in!X|FX_$a0`75wwVM$KLVmk@hh<1UJ$@C*mvY z01vCf981PXf-Fr6)f)np$;0>fROj}o--tmTUT^P-s49e0MekAMiW3%^suU6;>`b=L zLOKkWLWx!=JcYwJ^UJ5NSMRx(CW6RJuY1v#lJIOxZBB!xq44iaWI=GqaV;*lVW}cR z1ex;+YhA&FP&cEqXpBOyO*G6?)iC#Ju(RlVXNy1AEKxgRMZhqK{Y^IeSJTz}cPuQX zMNS-_Ygw_?Hh{BL5fEvZ5z&XVQ4&_O&|u=>mlBi9Xa8B7ltjtnumAhMv z?e*zw+rlI#y_5k+imZkrtHJRAoTEPPP{QuDnde{8_ky&xA*?=7=zhlKK}hjZn_&6F zc&(gSmET(vxR|1bDn<>L)xtVPiLOPhl%&hppg31_o%J<&60uBj#a7x9nhU%cAh3QmO^x5_T2k-HPY_D1qCT;sFsP z&b#xSb>VH-e#ga?KMB(_;$dp}{Xn+OjEj@{1dnmmcObz2zT2sVDxTu*=LY%S%vGoZ zs8u}!=luN3aH|mhxG*MM)R7m~JUlZ}5+{(5vKZAo8`Z1A@xjUQb4^hxtyGDY#wOcO!}Z;?&4g|vX_$$p^3Eogj8hPZrj2T!(Xa~;&1huX zrnF|_T-3rGXU<>iXxZg0cp)-;p)h%A^H)piRhuS;0I>MrbAgz!SNh^F+25E(~QWF46D!QJWO5|q6aVDG_2dGCUE%$DU zs3p{^>`RPD@c*EB&{f*|4WK<^=ORETOh{Y7BKFlQ_6D_#GFpoJ-2Rvi?^^X-#QJ2^ ziO=Z(o1I**WcE1O$x03bvzK8on3`YBLP1tZK^(0JtF8MXz8tiuBKij(5S>Wf9sq99 zQS_gBKvf9AXWU#&5z@#ObYvLV`#ObQjRTfc_6diwcWn&|j9~(QOiACSNO{mKPQ={r zSe3eKI4Eh=>{lK#masUzh6@3&>Q~4ORKdvGEKifvK-d-6lQKCy!M*2E#)akxYYoRwC3EB6)>N=yCG7JGofKq{!DfxpDERX9`*?+VH z93y<#%AlSg9=^2zPU&NKU&C_>U;JhFk}Nn7$bNxN%^Q}ZLzD{Q9EB-xAA~8YlD7fG zs=vR2=;grf>h%MY{0_9kO;qHSkyhsmw>NAXcp*8 zB8vStJhuHb}lt%h!?V3oC#Xts^@l zQLsl7UWvJVAdt;L$O@2Z(sRUK4gW*n;fX&xsqp`>pw=(}Ao)c(3-j}c_+z*ip59#4 zI6OrlHBS~=g^_j)0^I;k%+lk%Zc5m&|NKoCEQ_DSJ#lI+z}pxwT5!+qg1=c&^Lh>Z z(DlN6ab!(RKZ;BElC)HaLOp2qAMI;ba>giB5U zqtT6!@#-lXSFQsBHwL|9UaSsmDkO$9L6!QbSaT#eQl$xYs6o~F9~dFwul&Q3C;0Eb z5c&UqW)sSvv}jJ&LOvG*xBmrq(?8QauaUz3pD{@N*SGjTDx~=3vAImMpnvsTD0~G+^}3egD|w6H{|3<6j%)w` literal 77512 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�j1;SL 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 V={?^*;!k)^sAwEXJ9PT${{T8G0^a}t literal 77028 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ⅇ+!?RmJ3W`HS}V75ct?)&BJ+iX`0yZjPwI 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

                                    ;_ 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 b<`5Q}zKjOHu=Ft>I%d7tjwzk-x diff --git a/docs/walkthrough/img/08-badges.png b/docs/walkthrough/img/08-badges.png index 13ac27c98fab3e6dfb87df9e387dc025ba4c10f1..bd540b7788cd71f50aa02f5bba1fae5a85aee501 100644 GIT binary patch literal 90885 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 literal 90565 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 z zpRPT}tole@`z5u_i;yVOCETGjl32b_NruU7V{L71cXu{dhGf*^a&OZAn?xd$4AZSB zKjTM+n5qb>AWZ5HqHUggn?QY+VZ=m{N@nxAC@>0)>M;=3%y@2gBch8Ee2Z=;JYlKX z=qQsb{a#!USR^AYK#;&;|B=NOgB^|ngq$=|k++vGSDL~J^*J@b!0t3`Gwo~#tIj_Z zXzosqjw^29HN-#YN43J8JW~#b}~@7XV5Fx zN`LGizkc18BMS+G_SNC(c~U9Y>t(cD;)-rNUTP{ZVnHZ^uEZJ#wV-cm8uW{r@b2bD zYe;J&z983UeUqWn3_$RVwBb)RzeLB0nAA@6#-1GR3EYyG{hH5T&pLD)t~ERC1mw_r zetj*qRt)9$%1@|EY|y>o{FOr*L=!)j{?jJ_+o|TTbqu-dLL{%1x`hi1Gh47D^6~=s z66N-Io}RpxmWX%&bxAn0-K8nwql&@_eby7U)U1)5#por0LqNJcpSvI`yaTG zbD;may0U);GWllXH>PP}Ak_g-?GBW+sQp0-IT!R!Pt+Fw?Q?Tsb0bL7E4^p z7zD&I`r?+BW@Z>w1cjs`G(nhynMdmf2d6``kAte$;t4#4EaKi0jQhFRZ!=35N*sck zn^b#%2da5A_bA1`GtxRtt`1lK;etM3qe%MoWb zzl1IavgKLdx6kP}fcpt6JIZ^#c*S4N$ifnbkCxqA{n(wJl?(u3WA{XVlZ~VSk=IY)yI=#+E&aI z50N4zT=ORW$ZE0R2#^+hF$E)a*&lkgY+^|g#by{+dyMduQ)7Bnfv}81OcM$4`$FXem5ogEE^Sd(IMep z*+!B}(H7g?Q603TYyIMn^%y9HQD}B`LLbbFp0Pf=x+<2*{CNgb*U+HZ?5ezv95Lh4 zb|#N4BhCCp1lC0%w=dVycz1Qx>q&{5N}-UVSXs865E*$vmsh%&O10XoO>6^-Vq>Or zZs9aT)}m>;MXnk4^d@eS?gt-~E9B3mp%PNfz2o7Z9D3zJS zvV%qcgx5-WDWqj2)K?w`VIPNEO~5b}DiSgO{#rj@N zvnv|cmveN!bJ{;`xp1`T@a=jazD*;=kIdyhS^`f|;o9l4kD1~m2t8GOsDXS&_E#2Y zJfM$Q19`Q47&xe?t54T0&#OsHb8+G+9L(UP;hTh&JA<(QA_GQ)fm)kQQ2|@#1E1IE zc+4izWMWttionr21&yD|d9KmvQ#mywd3}VV%x)(owq4pVE3q&|fkbzW|E zi`ROoVuy>{^782kM2l}yfX52wPT#S+##ZSiFw*4WP~`n;W{Ms~W?zuiKmgcW{NoFM zmt_}lC60~FmYWG$Dl$|{GRtQCa5?P@+0O1||L_Ex8Eh7uG|=0|adFrmV9*F$Om+N-U@9$_3EMEELYnZbw~l&$&oUR9HtqrFwCgac6Dq z2eLK${?2G-#NbI)&^OZNY7YAY9P>Bq_89?NU@5;}(-CVw&VVlicujz%D~_`M^dqH8 z`=16~XVj&s63wvQRt8@28Q_o5OKNiIAkqLqQ77WTzs*`XI0&Bg&xCTU6Mm9P)y+xL`9CdyOUC1i z2j|OsV98M=8WihEoo3&hDpi}|A_uKe&fZ}oEDEphGj+7y2=vB&d}q&ma_{9tU7Xnk z7ku^I0nE>1y$*l0444Ld`2q!CoM*Wr@aD~U2*=VSOi3V=ntC-w0~#9OCoBtyy1#zT z!r#6;Qbv6USxD%xWOZk?UeUlu#|C)_uq^W?Wj~vrgXNOZCPt9+ zDK^!)Z4^3MT*iIG1V-Sij2!-4*9EKD45~~8NLr}0uQ;}i=SW%Cs;OJcGo3?o3e510 z;PGTXQM{%|Op-Rbd_Gx)LGD|Z?`fS;2kIJmXoc>!9EBh3Hn0obLNzKfDDkjFBSxnl<`7%tvAK?#5Tm8ESB9vQB~b=-A1AuPAYX|?{m3<_a$ zPa^Z;RY;WW#*Nyh5X;e$%ULx+cW3X6<33O_3zga1sCu_$wU=A2O~-6*VhXNDQgU3b zbTUay`+>9>TFp`N@cX1frqW1;v=xj$Q}xk62vzgJL>{BXI-Pnw(~sh*_f21Y5wzPD z>+Qs@+Tz%4&ET{s-I&*UJiF7ZcS8XWT_9Rs6RRK-c;4&%iue<9QaH`y!^!L< zM=HU~;aHV+3+1HYkvwW zqF$o%-d*fXioMi2MYWX6`$jfE=DH-3Xyk(c$5URbROtSA#|G>50~(<-*B1Z;gjIYm zbSEC5wdKNfOb{7k`63+T1oV#^45x-D7p1UX*|$oR~B-^NTmE=mvXy z$w)|LSUyaw@kE1GuDa`%qWvCBQL280avDMG_MO;szodJMT&c?;X0mQ&<`g~l&uz-6 zL5?|V4lK%y4yyaROBtBbvMRf?MCQTqtaFF&4=1~^)FKF2;tI_VAZ6D6@E|UmjWlv# zGACCM3k1YpiY2bd1cC4fj3CSo%A|3A4*fhR@q}1tKeCf|ng3gLkACdW1NQl_1poFmWq-c=ke#(Fd(JmOdW5R%k z%eV@51HRZ<9y%qEV?_1RcZ|I5ZlPrOE^b=m4tps4w`=I{Sy@%1l&fIuE)36gs9o0W z*pL3rJq5^*_w#ZkPX-IMdh+>t$y~E`r)v}H4T*+*7!P-s1*`3!29u4qR#xhqY|rqR zN1m;Nutd%_M0lMq+V3tI2uB}l<*5rY1SBFqR8gtTuu8hD45zkm*^A~hywojyD}eA= zBe2pz;2AO)B5>!cb&MKqNT*?=_HaD(9%jA(PE5ym^f9jMMz$F`)N-;|x!xX05qY`p z{`+EA`?UNwu?-JThAYF5&L$dG!y8FpYR5s~R$-|G9-&hAZ* zvi*=ovVZ=1=Nb_0grz}UV_lAcSW+Jre#ETRMiWSK)-NQX+I4EW-@YOf^=Sp7FEMP8 zw9nV#+DQ0UtAMD#Zw{39JD3BA(ubCsni|AZ8>cj2Zlz<1FbB=)7!88CL{5NEx?#-%&-0|v$b$KY zG8JuYROxeAB7G=)&sc)9b-i@7CRnU|GOSkr z=#&ZCovr%ia$~1icN1|qD^ya)Ox_ha^t_`x6m+HKIhW7(c*HOzAS;n2hmdYemTK=H zJKoTD&s7~~i;KwA6kivsA0;Z-mD8yCdkl_cRphDRDzkRX&Vpb(%#WoRg%oHO(KI^{nGP3y=AZHC|;~*+mKrALbemhX3Jj__9o~2n4!IY znC@yT-u9QrNu-AZ7G-jQU{z#a*xKF}yV=G=938Kssb-@UA-nTxIa%g`Y|g`8KObLv z&Y+UZ)0%nRQscrk3!emB$2~A>vNiu&iv$5KH@!&@uPM@iKKb_5z$6|;LPjpmeZZ8z z_Su;_hNHl~bYD&v9i{|CKsws|70@>EzaSd3==b%w@j6MAC^%s;Z?lQ#9HA58;|CXp zK73dfwsLS#R8;Fw-4^L08*4L3BOB{|Xtzbg9|7?S z%crASLMNBxKNF%<+J9@rV1wp738rTzzt@iwFbFH>G-Q}MH4apc=c*7Z_Q6`+5nOZ} z`Spc`g++yL&cxpW{{tIH3+q^kL$fhTAV?wv5MN zd7L2iFvrVb@Q9y=<40-iOrE9uWL_LC382kDWV5AFP<}7>XrQ5e8BR;ek)qSY3Dal^ z*(#K0bqG6GEOv1;Sst7098|xRB0Ey}71LAks~z=SNN{uwx!Pz55Ad4rP?D|JCYYPL z&Nm+oAQ&l4j}pXF%gV}X=SD;fZBF1)skUL|^%xz; zK%qp4_}go{xqqriu&^?)$d(F!Oayuca;ySsBp8ZsY-Sb=twV(JC&>)Izq6BUPr_Py zro%|!QDJmr_17=rm+TRr^gU)zKaS_!cj)4Q0Gsb?ER;^Wo*nRg;SQ{FOxMt3CbMFQ zKd42Q_vVSZ7$bpG(dc@6oBH`o>x=kf6qy(c2w{T!6-cT=;i_r`5WoqKQUvS%^bgB3 z!eeQN7m)ox!AvsZesj{++q(;rQA$|rT_M!zt2;aX%7M3eM#W$FBxBbnIP8Bl>^Ye? zKDOr%JAYr7XF3do``NMG^s)W%F{G%Fhlielf$bg#`4$V#J~9Lx zt_&v1M4CbSEQI;vS}V7R4jDYaVzR!ti7~0Vqg88^Ah5_987Xyx8)7zNaeVsoaSt}5 zZNE5dr*?8oQZ?KGhJlb~jl8$Rt` z#bz*U01Ga&I*&QEwY3$v*~FYc{oDhlP?ngf=1V`~z|_BK_1n?*c9?Y`BN~N5B@kOg z#Q?sk`}Pn);|bvH%RDKgSNy5`KI0}GFK6F&YFiVD>NSEOrdH&LIxu-a$hz6(T5^=> z$_tWX#Ko=xpM_&^e{~4@o8oneLJ=N>L8HKE&R&ohTq~CPcPwW95hVU=6i__AX0A-x zPq~9n;HVw32R!hF{GFkzL#3xXZ@@zd`8-@+>{d4?tGrJ)Faib#X&~7R!+Z;DKCF)_ z7x|(<1Eat0u+L@^~e}{DkBw*lE1xVqICt>v(VUEj2p){H{T_`*HEYStSwCqn8 zAz)!pP6HagqF5rm^~U*%CLr6+ngkKiRKmr~D~w3U=ckJ4l!h!PXV5^x>7P;*B5_dq zOxuj41#-LVI5LP#fi9DS15AnIfwtQNp}b_PA{RAZ>e)67s$+@fRgrH`>dMrlhOhr7 zOKz4^Hv2GWJ4S$C( zU$Iz&qot2KD{#mKe`LZ^6i-bv{r0K#M+#F$!^dB!w=;DrCC+~Os8R{y$(q0-5Ej29x->xn(BYxb11~8cH-$R>OG9i_~z@Fg85yS-#P7EQu#ZYya^9o-*lbjS?1} z2Jz0_VtouuiJdK?>z&+&#>;i4$2)z^hAU$~|IbCy7{dE)%XP0@BLrtdqJg1+KFf?%Q9Wcf85``=1KjJ=qpuDXBIxz%o=( zQGq)2zTzBx1h>4wF?0Pd@qxLe{f~P%dj+sKj-;skPXGx~% zG=}`*P`;J+?`11Z&88)W?0I5=Cb+jOUI`wdvz2bczSPrIuv4d!!i{gf1uv!Cxz^j< z-gXXMHWZWEtfm#C*3#d6_?J|SXf8bu;m51;0COADjo&<(lB(zc4-L&Lk`dt#=#YG{ z^A(0t!1>OQXt|RFa3QQ_yna0Fm&GCFP&kUd%g~Fx;=iKGHG^OwFwv*zCH6ZQF0q?s zt0T;qE}R35Ryge6AZAg-^Yo^$j;d`YIiD28YsByt>1Y0-jK0BITYG!9>uf2kkp8uP zwLN8fu%aijGyk*Kb{cIl^7BdC@t%Cq^xblOR!5pmR$v;N?H3J}5`Grwl&OvmQj^2Q zg@s17ytjQGdxl0@d57b$g4q#78;F=Eo9umUOF^*5ub#kPLx9DQIAt_WL*p;q`$SIC7TI5#hOMU#KZE0U!s!_ z)gFOvXivnJ;VMz_)2={)reJ5~UfvV^amvWdWMRwL?e>J6&9HVc=x4^dTn)8lD4P&1 zWbjH~+mvtvH<{7HMpriTdf3(0zQ^V`joisa&% zn*8=F)Q7;u1Kna6)|N5r73CsEWdBR#)>9nMmKvoOR*sH07j;3JEpFKT{o^^dI8!Zg zWo43s^ye5mIKF;A{qFn{R1*CCx(o!hz50fUzvew0Z>!?^`T4v{!YxP>pr>VooV|F= z$mB^~`=+Dwg>?0>6Zw3q?JwxzUw-|<{OzYqp!MFvcG}x!Vu*-uRSwPMnNf8@5lu6IkO1kDN42aZir$CW4+B!=!@H;Cdx&oBju7=4b9D3kHY*0-+so&CN!9YnSM zy!fNSF%`4x;ISzCepLN?s=vQD^;yvz_O4<;woTY1((d)8w&8zZIO90qFl(afocy@{ z?6y~ERI^NpOtIXqMNcAbZQlWtMKV!txhwYxy-Tw}J0>B|c-^@Q0lUZLwC|1KKi@)v zIZHw}t&7KQHd3HMuP>Jr2?U|H_aZMr`1ehyyj|T!M3EEhOWrudBjdigUU8f~Y!efL zK|PX3=k5^-Cy0%0pPTDL*S6`)dN}1dw`LQr8@JrLkS$r$E$?~e;fYS(8g0}Syy%Xl z7rWQruc`kFxw;uDe@jTiN#2hT8`rZEt58+e zMO4;Aj@mR>N5!3b-AH2KRu6mks_u34s6Ogf)I^=cH#Y)kP(rWrtxSTXTU#&`n+5HW z|6=OwoCET1FsMb1$5P6!soBlfttVlBc%^_zx8vS z%e;{#CG$^NtIRS`ajVWiHcGV_r1>U<=D{lqbJI6_tA`I81q|Q+E~8plkDAzj6*yZf z>n3eSUFh)^-|~|;E}|&gS?`zb9~vVfUBdZfr+-pqUf4IEZcYFR=xn9D@_IGX-RA)_PVBAEl6z&aBWr9FdwGX(CqUl56AW?%zzk>w=~SLl2lkAk?OCv~hHt>TqXa}n9%n)hnBvo-*RQXkiXm)3pSjWmNE|q* z;3Cyc5%CRSW;p?X`36_-!~~_(t#i%ZJqga0DE`Inq&VpIaDSM^^E)p{6%>7k zWj9iS>qYgmLW3%E-b{j=p&vgKg;A_)RGe;lFV+ z(CTc3?EO|zLYy`yh3V_M;yBWs@?76@f2t1M3&jm;e5=6pzF;X;)ZZ_|*d>PD@OF!$ z6kjdzHcpFC7;eA->_ScL?damzJpF)$T}MNsBXHXoC!6pfx+u^op%uXORjZXgk#>)w zmF84#me?i+#~Yz1ehID>*%kZ=#yY5((&^+abKw0AGO2doq}orf1HGT;?m~8H>)u$@ zBZrCVy9%Y&@ytH#@CK3+6KT!pN)hA<#MI)obggUi^8q+{JQY`0e#k|N-mhC%@Ml&l8G*4*Jv*<#J@WPFz?AAJwF14h4|R8dhz#wFk_L07BxfPn}Y z^KEd^nQCO8ce1>k*Z=g~>-@xZP;Ooj_CmtwH{0|oDF%BbrKR7SZG0azD{ENdal|ft zgu4OMP1$C$N-6Q==y`g=ErPHKDhNqUlbFfuaHxKIF^qM*(i~bDnNE8GV+XRhGnU9} zN_qM&v0Q7$a#c3hhHoTYBNRJEa_HKfom=D&!IKEaaSuMfGmpDk`wxD;blL{TH>ZS# z%eDgm)%}@D`d~7b67lvvh0lgG$`eL{XckPeCWKCAWNdFcVp&MO=W6*sdh}?}qs2EO zk|F(z)(z9nbP0Yh;QmOnPFyT+sam}_YT1Hx#z6~W`X)lf6^ z^R(EswY3Ylkg8{(zdW@143dB6>v9i%?lUaV;|WuEkOt_Elk_tXLrcEJN&pRE6m1{% zoyK_hMVan%PL=>28_&PgI>)9{ELPrMYu@o5{+sVj6+Jjaex`3~CvI+TGKXLtfBpw0 zRE)4h%}P6{p8KDRi?O7mU#de@u$A`tht{ZT&G|6hwmYFa0cZ!XlYH0X&KM^D^L=13 zYo2w+bbS9#3oly|#%5UUg6>Tz;3AhQQWqGAhN!T$g0j&m=ZlmT@tSUh5V4q}6zW$Z zuR}b{ZDJ!MBjj>GWXKct9PEQg$s#9cnV=3tXX_mf03G$k@`fJaQ&%p#Uk@^rT*o{? z2Rp-Td}YW=v14nxX*(P|)Ghi!?rRe@y!Wngkq+sB(0X|wi*B*)!iY;rXyM_?`q3ZI z--_L#2BU-JQ7&lAK$a~-buk+uN{HBOmHTUmQ6R;w2777dz^6%^7&hsctvl-%newp@ z4~bT>s>5cdn*!UdxOl$Lt*@_xxp{W)Q+!x(ZvuB#RaF&&n=kFMdE;3XElk0HjOS|_cFii-N$sVzY>(%Xv@Ygf?v*$i*JnI(}s6-rU~ zQfL+-f)VD75AajY3;vUxhj=3qfx;@Jmo7Aw^VJ}1O`Vorpjn2bw|2SoD zw!jSF>+6fOaQON8ffi4z9*6F)O@Yy*xUv$65KCxp`2_{t-QDm<^x5aM=P<`q%e=c? zSXkKU{%;`QP4xR)ku;LIU}9p{WDW?z3Jwfx1N~;Ea`H)Xf6@1UUJXn-uSWi-se;HY z|E|7*oqde(-)`FC!_`~Sxm{_{fhJSfI>UPE$bkP7gxWlc?Dzu<}o z@KOjf(EDTD)qvOuksQEh{sKyPcw`w47>(fU2J{YhB7#a7DfE}P*$)*Y&)NfqZsZfg zSFxOQbqgkx@$vB=-QB>vrDf;-vtvm~-R$PQ@g&Lv>6Hb~fQ#+;S1wLY)xXy_G)0dY zsuwUQ)d0QjQr-{R#og`gv06`ORt|o*H63WdPIK)h78bF95kpI*m5_y3qr^|Y{m>RH z3@vMGYmYM(A#`LKuF-n0edb?%Z{NO!o?Z&k8>D=Id;w3GAmZz#s;W9j)Aap2z&9X< zZrNKNfKZdgj_52HdjKena4V0X76pRF47~MR=J54Aie=_;oRJb072W5A8LcSiz-U$~9V56MH_}9Y9q(h10MZbLcLb?l8 z0Sv@hJc@@K6WfCzb0_K^8X*+{v0A)ZycrZNlBYqWKgPy%6(>R6Ek&(}N(Jp*_n&X+ zKBr9If{LMHiV)KND?2JFR90RtmHitqI|u{_r{Kq5--42lbSe*Cc-(yTV5e+t7qmTK z=a5qJ4eCZ8h0#a*aPQzi=H>}7s(RPxzS0^(jD*I4IDH|g2Fpp9k^T7lo0}`hx3mmh zcJN;M{bxNsD}zjDEL32nxfz8|3BVwz*3*W!$he<2zd7G-qlPJF zh0f^E*W{uI8?u8!|MjENUj}KXm z?i$qlkX7MPqNf6WOcedh%!~jZ{}p3UF>~PF?kE>ig<7W zwblq*$bG{giXO23x3}{VxhNw!>S(UEbaZt5&!KtZ{vlGLByFPW?aDeiSPymL65zZ5 z%ql1)9+k$t_z4Dh{ zcV;c&I%-RBxxtD+N_s_QPux{|@R9f4QkrsuDwKS9mNYY191u7mC2|d>LMt>NoW&#L z(%UC(9(>v!DW2>{q!fFKb4y)aeg4r>j&j2t+0hzz2Uie>Yb%9f%gV}*sT=$Z)y>c( zQwE)6s)+ATn%$~52}Q~ckuZG2(8ZWL2JwB!$EzHKD8#nh%>+}9dR9FsK@n2mfpI4E zR@>2R$gu1~EH%J{j(=BSZ*5H7Xj@-FQrH|Od?_?1y8ARCsXI(+Yq8)gqEilp>)SrY zDvY8RhJyLyQK&*+Dl6SxUC$w+VIV_3y*~0QNSD-%Yrr=X^9+`i2p#XI)v z^(Ps|)YR1T1Fj8^L8Y&D-*|%ZNa;D?}po9 z`3lcnfB`cSq4pym7CvNB!bl+{k4&eHDRM);fk|vB4B8wU5WRAA_Q@?TEGz`o!*u3< zu%?SNGcCX>ZFUv3zoa}hA<^&DQj+0Phr5f5H1kSPKQnrpGS%&%+m;p9;9MNE=zBpd zQ8S#c{@|H-D7Ip)07~0V{Yq%+zbHb5@M*j@`Qt}}zC=FipAb6ITk=~JdcUayE^aHf3mx)_1u3R%u ziJ2d;BzGgmt*Wc7mHJ!`KTvyJHZ$0^&R@2Il}!D!!VpyO7*Dt}*+Ey^#s~2pUjan` z(tB-K%s*orzChZWEZf~JEz&OILqS%>*=%P2CIN)+VK>fTJ(E^1AFSTd!azqK{px52 zx7naDG#>$2#F5kHPbwjg=dfh8e;~yg!%xsPC}oL{k9Qe_V2c*;wHyF5?cUr7okPTN z=6XNR`!a;U6;dKALBX2%dwk&3Dy?~i+Brf>lW77sgxqX=E@Ysj&Hxw57R2Y%|_!4 z`50yJyD!P)=#Ed2@R)E_%!o)nh8hPO)ZJ>XV*Dc2y`DIZRK&51V+|Li<{=*~$_*%C zJ}kd9hpjIZ3Sj#{=;i=^79z5-v0=soJI`mHV%xlq&Q1jv_~x!jB3V>5=TD?M*j5e> zQ{`6b($3GGnA;Y-j52G3A4BiM;|J~=Eta4doSB}+Tenp6C+?Qj)zbr07S**-ec=|7 zify^^q9cG?f=={QXc8jGc{lXgQIy})2QNi(zkz)ii07Y6Brl}zDMIyuo@aU+wKpUQ z%Wkw-eB7%Nyt8n%h@*8DFs^r+ug=Wuv{CyrCJG+5*Idww&KeWGxdeGTq# zm6ec0sF7?EtdAW*uYv@q8mpjlj(u^4Mh(UN6?X0Q5;o8Ula@j}8Pdzq3sHNA%LB6Y zc&KnkrUTMtY7Nk7OG_hczS19M^jgc{>%*5^=uP#9UKVn18$!icVNR8+jSqvBnvQ68 z4A9Q5zMgn4Iv5G$lF$)3k3WN$6f2VkTw(Aoo5}!ujCB;IN{ElohgB5r=8(+HcQ~4W z(Q(DOfpQIj9P-j9)#PRQC|=+pV2Yw*bjeam()!Oh>2;l1!{r);+^8HsB+f1k@xBv` z`Ibm&>;PPr0RCz{5QpwK0RK$d+HNS9Xr%=1gXkh@y-8R`A#@3hg?QpH3P;cYXcP;G z8gv%eUa`g1&W+&y16=9ey^fw9c0Rr%sB=)xnlaS^0B0=C_xTQ)M5_Mms-IA*VH0s( z8|6}b8yib>k}Bw~?CWo6F1-i-M&tMN@~92n?dUN0qSTg~SCE$m@Ve$dmyLpLI0acDZpqdE zq~^c+pL`U~kf5NSt2ZDT5-^&Z7#J8hINESqZjq9c>+9%b0D$5NI4{of>CU{MwzjDH zKyfi=KoEYlk2D-7@Xt8{q6FOwsmg)fsX>e;{TwKw5TSNC!_qrG4z@_xZpo-9P;Oyk zw{HIg9sug?5Kym)FTZ~`AZC58Ur&*YeU3KDW1WwyHbX*8MTJYTcJ^%%ypNi>TETw1 z473W3d*~(LlHAO9`<^0!?6&kj(?#Au0) zh=_=ej$VTHM`wXZ1S2bAO?kd-5Ykk5TKkielcS-b zfspjBcs1B50L_(hhqO5F{gu1bV7xB}L54=JKxuIRJ4(Fcw9Qkx+SMr7`4FNW>gfRo4hRdR>ezCjz>i?!a#-y*F6_jgu-5NnOL77-d`m-+UJ)ftix2W&7fryKoT`G;Cz`Q6vF7BO0 z>&cH*!$0&t`S=59Nhvfv>mYmjv>WZK(gU!eM8+%O3<$Tx z!;?eBfEj&D%cah4@;HZaTnY--lQ1&AY{&I#xVELE(3M{v93J|oL6U6nm20Rm%$f?v z4`KEJ7uey>PG_pkq`uPAjmPLj~_xHS`x^91nvRq zkC3`KcKJ+i99)!<6E`pj!9$%QA(|XNJeL}g6-R>D+-M4f$isBXJ9jvr{I0JspR+emhU08RoO+*x zjub%{OTYLl%*M>jOj^S`nV^8{nV2vXnO|6VXg$dICK5EqEK`2~ACqh7ZgZh72qepRnQ@t5E&V{A&F+QelqJ$@4diEedaSI zAlQ}ScX4qp^Uh#vB&NS5gk?|Cpw_MXbikEZhcWvx!fdmTuA$tnh%}6qjC+4&ug*`9 z^U>u;ZtvbGZ+p86%%m{m2@4BLr$U#fUH5r(b7QU}8bi%R zNJz+jvNq>z4U+Gq0}~R+1~yeX#D>jvDlDP}&WCdiJ{t}^^>mt(8vibtdbo*`D!_j_ zbyr+m-1J4lBVs$9ucM>!?qWxH@HH|EP^_)*F8pwv8P|2$6!aSWbal&p|J#Um=F|!i z%jc4^XoipE)1nZ-uPh;YLjbD$P_8D6Vf7xo6TmI#y_A6pf*w5Tu8l*6i(3q{1>kQD z0KeRrgt6vXcVY$95SWqTn!>0>FW`b9l@Wr_!`nh0oC3@m**{?b?i=Xs-2??A_yUP; z&CM7>%w;Sj=4o64F_Y)l1|Sc({taAUzN&(hkq~T`1m$J8O(9g%d+X0P;LZV8gi+@$ zF8~6MDGnxQ9_B*I35BSi!N*rA53C+5T7y^;kOB*P`$8Ub9i36IYPJB$aTE_=-@(BF z7>?Vrnrza;Dej&_qKU~7K#XQPoT)&@PQmj6CzFHLWDdc&hAw72pkIdV%ze7vxOR7o=#oPeU!3Ok2!(qkRQ+y3dL`cupx?_a|1sNq4~dT6(fFQxCNj1|?&wPt38v^b)>9F5W~sHgW|jZxVtvv5S0n=5Asy zX30mR(mDM6^b&z%I7!)MISLB%NCvGZawRu|bP2nTW{Z8MK?NOTVw%f|!)-lSXh_a& zY$Nx>93p>Rp1`V$dZ%Gpm1F^b64SRB@z7>iG2azFaGR6Q(Uysn)OD?RP^%(+`YZaY z6=^Nk9ZCS~wY>pF(dYDljrf+#W4L|8WU0Fvub9zKJKrP~%NMoos zXWmE6BKrRK#cZ2VJv5(bs@udL1T=H8tOneyhBBq5X;&(pUERrrT|<^+2p#%9O}}P{ z(6;^MG0?}w$cJ81>v@jK!=oO==DS)ijHdF@V`scWAXu|-ZLAgNcA~d;8n@L?F(D?-A~`Qy&k9Xx0Qt>r?yy%*yO3)uPbs?RtiuRDy}mp~OwK z_*ahRlSbUBMcPvZRR-h2jv&AGsb=qcuG!6VI_-U>8u#Sd=NHSNi}I{&+?kJfKk4^M z^if{aJ6}%ryhhs)3HkWcSXA^kAya>b@e*24$>zU5DT=+_>Pjr8*T$uUc zV1(2b6Q?Kcw$b+y2X8p<4^Px!YWbb5H>&H<49!NwRVCk-4&l0ns>!VG*3x<_HH+dB zBo{9DZFZ5W8Mp77qti0_VS{nQp_s!6!bL2Vs$SB@6=93D#vF^nBVAPb!`o76Fh4-2vWtRP?-$j1#$lOSXceK3XCLz{d{?B`FuF(tYU;=aM%n)AHQ!GlZmToH-vg=F4+$d7;Q)JJ1aK-4wU zdi#}UfJ(;3vDmdo#M5qn8ebmdCNt+hUAYPPJkKk{i7y~fuT?^dGnT{--P=t2Pr^bL zLQtd!FkDz2@B-&U174-vKVnLhV(xs8++h=27V_=mN%FFFbf|8}KlS7&X}cZI2DIil zh$q0WJ)Z{<-5Zokc>gxZ_=u6W#02>s0Hgze@?nimi=4vl+aXSUl+>CmGbBT2k^X58 zCeXV=%8%9?vXAV+K%nBE@BgYFpQxke4U~cx~4WL4?OzJXyCQ26xYl3cs zXpU0uQD-;G`-|Sp@q2%lGLN4Lz_8*$Tc25QJMU>53)uT@)2#Zed!%bu#h4@B3dSE{ z_xaKjP4vm58jtlvtsbn+m2a={Zz<*AKzbAIaR=SdFHFQoR`vZd-c13cuU?ui+Kifd8OC)B zxrg4=Ra$fBJC$@s3vRCyD^L&Dl3CxTN5TOgnh5?|tbj~1hP4MWqIB9{r&+rUPBt8T zh__PAp#$1pAvm|kxWbyq?Q2Wq=p(JE72>Mw$hWNPwAdYcp>jWA1*er3q59L-3-M~Z zs$yC*3Wv)Y52Ap2zKDz>l1@R!{uStxeC~qY+c9wLf>){5oh+!mk(@pm!2kMY>*GdA zjl8!w)a-{VC?!&vbcA0yo#-hBOQou1S|zPxvnH)!D79|Xrv^a3Sb&Gow( zmRjTqqH592V8ATT!RiRw3vymL&KL2#Qg(HjL=B@UFBCN!KlI10W_5!gao~~EiZ1hs zl)hB#o?$(s=#1EV#fH%hPWgCFyt0xnX8g1jxl`o(mYg&=S+iwVQSHsMlj|_WxaM^Ih{F=hf2!A zGX^cNcdl*F=Jatd1qHkKNz2C{@9&0sS*ryRa~yx*;qPEG*aYW8CKPWfjDIRj_SMwmofO@{3;VZi%caTU6~m z_8%z{_L$*=(9F3G?q}_cr?UmT>ytS?w?4Q=m`F;Uv?Pwz`L>bG-aG3*m`(KDIjd?| z@arp`&EPMSQf@+Nf5#|_z)0R7m?pZ;rdx`dp_I^8YW_o`Qg6SfKrfD6%OL;dsE>?F za#+Y`MA9{e@X&A#CcCZ=j4!Fjnddu0MFN#mf)1XC1su0&3g6*;-nTLoPc>*(=3kYo za{26~*D9a)F?`iWVHP1IZD@+y%l2FGdT$i(YIU#ricBmlk*%{Vs`xRRO1{3$BOPeu z%yV!1ex=$erKkrZa;rANm%X7A*+Ss4GZ(yORPB;usdw%8%4hD9Xu~v#8*8gU!}e-v z-`NFIT8!?!e<4&wcp9(*9>QLs`u|`7fU$)l5|)stnGA~?lWM!fG&*HARVrjy_9!i^ zh$JtGcpv2FKSvP1`O0W-{t6%bT(4D)2F`tFIhoa12qyS2UU1S?!?1DQaCwfCdUd}8 z7LN{orUATgk|%B*+fP*L0Fwy0N0(N3SDB)PwlN>~+LJhRaXI>aq({+#{vOfhWSS(J z;}Z$P{H7!UKE4M)zERKRdGD@}%ru$mh7K5WT|u{<86IGKWV%oZ9iSHVp5i1{6~JuO z<;kJ)u_XG$>;@jN5Yc`yIRsLSiSZ_LqUkcI{*b9FsOs7iBl)_ob;29p=18w&cc9IS zY!8Awuw^{7$i0n%fJG>`$h67~O|R}|vsBT1o~4$nZb)10`q-{nFjj>^h5}Tv0V#rE zYR?z)-#O#KBisB`Ll6@6cs=i+;1TL~11k-NthX-j)Pj92e_V+Poi|~vdsrU-$(Dup z7HdprEZw6}00Nsrcs+N_xz6QUbX@WHAcx6KQ=Lv?rBz!UnCLl=t#>pvHp6FM5A!z< zKBw^4xUGMG8oI3gAYcPdQ+Prt!;4K8v}-z3dyhdzxk!YXzVl$Y@q>|~qKN;aPkQk^ z-_m>s7IZ~@>;BZ3cBKfXzI`xu)cd~Ns{d1sPsiigi_j-joEYq@3M1|HLQv=Fi^Z$1xset;GA*SX71M<&GC27BhEiV2%9r&i57X#;@a( zfy7{pG`_TIr!lAar*n5*(y_*1xt5B^|b#60nh<~kp<3@x6Ya>ucE3Q@$yMI0^&*T~?I4rVCN<@zmN)QQl^UcW9=xZ;qUy#33Xh`E!D z)|kib&!3aTuwNCfzhw*sLbSe>yr}+SmDh~bMR;rw<4H*^^!#v7bxP#$C`-ckv5gJa zx09Zs_~zMhz=7)MGvA60x_^zjLV7v|+XC(cm>?dfb}%{Uy+*m?&I`uVJ{W{l*;jLD zc4Mjp}OjL^~-Gcb@2;`UFg@~ zJ`!crMdE#o?tnlhUGNps1j+`Kfva`Lq&!x~T#v#GKkI>6Y~wfVW5V}FPywQ?dhpml z&&TI(7`d+3HbV014E;#2(Zk$-(A%QlsNrIEC~Kt%-4&12mHEwMeyXb0l^S39czzF# zC?IvM4BuKyR}w8edsRiFqVbkOx77O9*4fY_$KjG;Y7CdY@SlUtF8d#k3&?qyG|P3i zC897{9;Od_h?Zgpl>uZq=7XC4r1O9s4^R9jEAv=Ru1;6Ri*Q%Tj z#wokBsHRE{7s{WdGOyq%ylGfy40#gGI(8?m`^Xs<452P6DY@o`{ zOKtJGn7HC(w4|@f9bXfyomulfRnbs+=>@zBaYri_Yyr!6S3>m-JGHc>k~Q6*A1iMb z($#(7&;lby#Ji$TcXBi>TbKhS0!Mu{jN3nD+J9wHN$DlQpvB44CKYnsAE@x$iBzcd zp?T8UDQOs=r#I4JmP|6jV0^04DDF%8`Ke_gBVTe^;*a;dZB`3h_G?CO2?eU;fg}%{bawZTZzH@Qe9# zRh4HaAye%GHikM!zbq-Vk}svqd&KS0vNH7;pA{G`UGCtoifycoIq*&5;Y1Ca-c*iC zI?LkW)_=OrLlB5EX*sN@n+h=2Zkuk6-D)!0p+2wm<2&wD^q#hF)gFa@NiCH8M*J&Z ze*~4sdMHPaD7~c-V8O?GC7Yvd2dQ|2p+v0o)m$mL(BhAu?|k>Pr7S7$%oO1!3n5`G zx9DxtJWsaPZ2J**FrTBTIbPYrURB!W_MY>DQ*O)`Dx;`(QWS!x$M^q4lZd2Vj&BWc ziTEyBE6zCD6CiuKI?9K4GmMFk-!mrW^adEE;jP=a*1D0@sAnr6<>03SK&+~9Jbv$e zaMJHCF!cGUr(?bkV^b3Q9wkvYYr9T>p<=;O_QLAvcCiL=t7*v&l2?9Bi2Ba36^+N~W_-~89Z(Y94%&Ilk`KWyRvG3j-Bn`}W z*=#D>@UVpsh8*9^&0kp^uOFycl`EQO>0yfyxN_BPOl^ty842AVlU|M$i-Z;J4gzAr z?%Kzj+j*()SD(XWaYwp~jgsbJrjpo~@-PJPLIK}2MGlos%n>?ZO|jRy=mZ@{>j%q+ z&G(%~&IP9zU+}a&v`|n{s(Blq$8K+rUGioAK$E{r=5pU@`J_Tq{~_HHa>ciMK$A&* zK(N&WX@ulwmD3i3$EhDEcII<0;7}uJ8!h4H%*Ew2&G$s# z>AuJ6O#jA$LxE2!6y}zP59f7%GKePsjN+G+q2R@v_**7MkR8bPZl?Mt$W^ARnP)Ez zpRciWzgzLd7f$(-Q-)_anR$76Daps)UqNw& zl-gD+%C0u{oapEQ&{zR60EeSkj~N@y=34$b)Y?mPc=EwEecV_|nAiMV)p+GKrg3uJ z%H!G$`$hR6uh5*$!wrFcn`1xM+`%lTcGQre!Cfgsv0**!^tvEkqk3GIkJ>@BeyImv zfWcuu4NY>I#*{++1F6NIPc?=^o8X47AT(`wf1DM^Wau?^J}iA2cJmGK^_$0sL!K7o z6C+*5&d(0deVgaWM<7x!Z(qDiW$^@K#eKxOv|VGdwPVm-C|r6jarx4*du?PtuCSn@ z=tT>fqtDi#O@HEtYyI1U0lf_CbY5%;2ktUM21KfHlm2U#i&K7-+lx~C3p#6pUK(yi z7Sj zy#>%hLS|JqpNabb=uPrke)0XZ5x~Q=Fd-KFHkzcSjlcEtbU+ESff+mfu?jOS+Itm6 zI_;^P&k&ddP#v;(gUArnd7tVj@g{xY6+pvHJi?xf^KSKb?w8^2RM)^y2-l5r0Yj;z z0hhEwADL6#!A;Y=T_q8MKQ*iMJ`DnzE1K**&n(*L;Wrvo*UXT^+b5dUo9hb!0o0$R zup>*bVSpK#|7pz0*`j5ZDrEU00=Ay-ZnU+wMkMposZ|Ex4|V25XAN~S+p z6z3}&VLNrXt>7AST_3XZXzT={q63vbZixrZ=5Di8Sa-9keU+)vIhJ@tZ2V zY>F|vFsODsUn$T>Ffo1W`t3cMA^MO_kG8i8xTUTScQ1`?fDPs;ol{h zWB$MS^VC|pNM32_qg01ox4~QZ5l$KPj8i~B02LLrbD^mCFyCH=rRO(^v}U^L-7&_& zFX!HZUo4k#i);o<%2LUz=cD9tq-hvmWMS^h_XGu%8oW++a+Sx8rI=4z z7EE60x&vO7G(UwYtn{Ctqy?_-4T(QW`+zD%PI}iHsYAXGp=Z z!dVpW4&HMiX(P_yass=nYP{|g1Tn(%OgSJ%8nOO@L8d>6seO!nlUCN18QwwvG+dDknyH!;4EcX;^vGd{>V>&6(jG_}KZgP4z zad$7E&?Yl5Yq5)$n&Xz(xI}WTP0|;e1@=gyP4~jo-!c8=W%~w3e6OqB*O@i5!fp>B z#3lJ(c;};;3^6?Hy>#9gdM#Ui5pFkmZ&R)Ebc<%5JUi)+7Vow2 zVuCv-0bOzI2B$h#3XSVz24C(c=5ZY#R4GYGIYxfE#@QJQ3?C`K6a7lbj-KFIe;DcZ zao8tVTqC*TuKWiJ=%U3}XkPi~4Eh?Rr_pL)ATpo4@@uG}Tf(bB?O`xTbg1*H zT}*&R$EVZy(lGn0(ldF@922NpPF}c!+p2xC6f&Rf-@3zTMNZl{Wk|mz$cL99;OfJx zcyEYkhWs*D$V)qg;22kV2I3F3o!Um%f>-JcFm&oy9+rS$jim-e4sHfcCDpY%x5#f+*@ zuR;MkqI3~>yZNTV()6MM_P?~C}n7n%>+@U#jIm{PrfMH#*X50uOLFU>k)ro`2I z=1No*j-Eoa*4)}&cE*kbfjsHcT&_F2I)BAAxbpVTY`T9VY zsMw~1!@fnfib%oP1{IZmcM{tv9O%;O@EWhAF_CF=Z+3qDymuvbCuhWAO3P|8LuQq@ z+izLGeXNbgdF-t#QPP9li9*++X~_zFZ{V~&|8PkDaxs1LuEve|cd=1k%7ixqS2o*2fQ4I6LfYJBcqn%vLIUdctvL{K8`^R&3Unvxe_J zH+V9$maww=(pBi-CD|+5;w7Uh&veU2tQH}JdbgBTd9=;&IsO*Od*70;uFuaCJu1sS z;#z_zj9it{h=2fTpyolW%t&Qdl7W#*74oWMl5Ey<|N6GMY$CI_by@EH?chJ(cc z6e*Bc>_No*d1g-WEaMin2po($1B^pG_~uSXKvX>b{Knl1kURlk!v_Y%5D{3R=Wbnh zzUKOaX?hFGIJ!j>;P~xd zUj@9{X52<|cmQfQ9}LA&V4f`^n`A8^?vjGFVqvSH7`#~dH0b!~34N2)kHl~VoENaL z6B!dvXU^aRzj*KX-$#7+e?yM{)n&C~Y`?~u)f%6Y%RtwB_@s!cUr4{C{j4VAXDYBx zr4Smzv8F|n39Q(A6F*J+K~x58Vo1SL5J|u$_}%&iy(iFpj+{MhZ44{SA?7T!%U)lb&P7z{nWwhmY&&-zw0ORyr^_f{|c)Lf!@)H4HB zL_aLaswDLz{3L~HeRff`GEjMJ)`jssMW1C%H7xWLs#oZhn{Z6tTAG~Q`y64ju)>zK zDeN`))h!wD{57cXQX-)C(2LCrdf64ny5E}{yY$@E-C?BCy#j-%^jVLo{ZqHgj#+}m zo{m|IyARy6W%{FeA19U^QERAT!o11ki#o`^Io`nWE8uF(xS1|DPO8XV+0YKo;56T& z+e9qMH9L;vWA1C&8(deBl5HxAP* zcqfA|B6tXuLP1Zi?7Q{nC3<6a$EP;|zULtEXY}f~5!l8}lb*~V`Q{2LRD?J1Oz1?k z6)R2{2Ec@2y}nAADXXCb%rqR-=d;g;XIR|DUJZ6Bq{9H@4HT!co}O?osb!^sh7(ll z(KuYxkz-PMPto!90+v9$+<`)19O<+zKQttFghzx;o|i%+!RLnJv#bn7{a1I zz%{+tK`<-44dyL_Y8NXh^+6SL;epQ1TyVZY6&tp;MB67`8%z;A+(tbdB_e+25E4xV zd?TGQKGIbVhVx?CP%Mae_rmhO7+||HOTn<0sJwO^P6l=XsnASjPRPPu57-w>vA|hC z5@)dDq2LDBlV?4^+(4nG2)HU3P3BnsnzDzZKTjx>rJZd};g|#c$tDlt0>K_h!6mE014VHA;YbyvVj6iyBu`WdC?NWZ`58 z^bL@`s{SQ4tZ{3|n`fHaG-0OfPQMv;=(vTg?Z=09dife~Y~#pzkBsBi-^Q9}X`R;o zB)%9@jJmXnIPXGBwgyce>od=0OeEYL!(mJ{#SbRyTA)I03vO{k@U75Yhe=CoEmH22 zyrk~XoX&!g10pm>{b&Lv))-|reN7f)li~iB?4JnsEZ4EJx@5zaehbxx?wrMU&D`^V?z65S?z6EZY9(v^NG!7g0a74N-Fd0f z6``RVaErRGwCv2U%`7lC#oKkp=)H5w)794nV)10|xZT)<{usb$(;1?3IK`IjqtJel zr*pVXB1>6uakg%bQ@UP7i+;q~A^C@7zGyO0b}h9HeiF7f)?_cZoDp^%y2#q)@bNdW zkk4dH-E~Q_W1bE;Z%&I&gJNcR*(!@h|5p%3(-S$Y^a|cE&bQ}kYYzYz5ng$uS|ZLF z9%r2rJ^-0*0e)Z;Ik0qXICnS;$8f&JMbyyTu2FJHW#+mA5AdmdY&8IH{k--RdQEQj zi(qauaIz9bkaW_@b-5*h#+hw{on=7`6q071botldG^fTlCY-(lbQsGz^2K6Y(f((` zdJTs)Z6?Rei3DC;nxs^#y%7%EI)}H|h|wE$?4Ao@6YYDXmQ*_!pPYQ)(RJth=(s;{ z%WRNBv)~yCpO?h3TJeYKuT^P#B)5q@&Dj!M`^R(hp3Xd!(01qL#fhlpceWy8E};?f zI{48u{7|ymrPKckQfk4=^!|6oqup2@0{&an-v)kTuD-SliQ!|!J>A+A^=WLJ6xoc{ z)1SSTc_gw}+)VN#khf>E^y!a`{g!a0KP3a)tlxZ$^Uf8rce~1#0{53ka@A&aP>0s`GeM4Sr5)9wsfMS% zYlm12AO%(k!yn*jM5=(NUIRgqe>b#FWP-|p9aIOg&^=C9|y{kiMX$l|x?wiOXi zr#ah+rKH;kI$Ff_(7!6*B|5?18vYTKm$T%KcW4pRuctQm20Fom_gfnD7N#AZVK4@FP&?kevIQ4Jwg-bBx)-dgyGq;K7EKLm8a0XX&byp)t^VU*{S9Ibz)yxgFfR^8hMWhBgo zK$CU=Py?T=2~zYE!TjXD^pghMn;@FrSsNQ>)5rcOvi>6#3z7QjweQ@*RQ>D-uRkr~ zjr`_+49qd4+YkSBqWw2|b8xRQOvQ0bRaKuPBtkX;lT^%60_k7*_M?C0+a2Aha_-d* ze=~xcmYk{o6m!Piz#RX;A)6(6dByGBZ5H@90Re$%*U<$1w>-BOlwxx=0dYW(2PKI{ z`MLZm1@-Y#TmLMfB`hs18yxg3I&w6K)T=8R@@#C*8OqL2HYfk;u(9B?`7W1QfQGaW zCsP*XLrudIIPD9!ulKX_F0qYPQSbqi{e_exG30l{WhWX>HG+aB;=@?;j*S(R+g0Y> zF~@zgvV9^g-KmT{rel9!7;S(KCD6;O)1J=R8F>}R7ZeC&&t9$qEVf6L3G!5)- zqz57dC4ZHV-G8Q5-=OU<`Soi}@CLA5nQ|$}`-C<`JNORD>G7#BNb9Df8D5HuBTHJb zywM#MDkuU9rrgfkh|>t_;0bW3iZx3>TQDC>Q&P)4s zfxVSM-L#{H^;vGSZBdx%qJ7;8bdp8v^pL(XEHMczq-&n>YW`^Xx85nyUsqHq1U)at zb1)ZAUEp*(CH(-uJ8L|-0~~9DZi7FsJ|C#w9~Tmms)Vi#rm&wEc59Xe39RF_tD`0U z4eu~Xp2@{2AIp=iEnKd(IJ=$%7zSeB)^FKFO;?QoOmC5bUQSxn<*qT~fGk<6) z;eIA_uKi<*anS1z9vnv+o<}K;T-Tht3REQK+Q)ehjo3dn+CWY&KeF(dGMs;w>2C}sM1W;>^ z!E?;*RKk>8<V+zxy@zVVQZ}+0fYNnJE9DS}k$lIFL z{>_m;-gtDsD`@#t3u zZ5Ur3KI+LIyZ7VlG~_AAv%Z*R{?eyJDl}$me8rbD`!; z9ev$A2CL>&0^z#4zNouqty8BsV%WOX_UoTlM<(io%FNq!(oH|RDJ3N&C7GcNE`3>> z@I9QCT0DgJJGi_?AVG1;vD>aei?h7jWSKT=kco2G>) zf0e9c3)aEk1M~+Sf>?8@nli??jq5#k9c>9N%gf6(RE{futatG`wA(Az+TIxHc}S%7 zrNH|zC=je4|BJV`j*2S&`bG&60TF2>rKG!S5RmR}kZus^MvzWv>F!Rc89JpqhLP@$ zp}EK3^E~%`@B8OncU_i$4u@IC@7ZVXPwj_Wq*JWr2Vib*zW9syN1VxOX4W1EYDf@p z?MZ9=Sr{D+`OUckd;%a=DAFMeI={n8!_kV~LIHUo(OfY(Qu^F!)v-f!MNd!X>Uf4`3Hd@Ag|lDrH~dCr zFR!oRIALw)#Q$;3e)6$@(Gy@jfMJLLYs=U6>kI@|@^jyosiVE)EL7O~M-{g-VafE^ zG~sxrp`;>?8?@&B9w>balXyzP9_R1;!zzGpu=3k^02WCwtd$!x@4Ne#X8MUGl{Y&N z`9(TV5GCj}u3Oyh37&v@B4j+sb_MmV$>;gHl6s+4U1AjTDEDA|T)EJo(ve?nC1%h} z5i~l@(yDZ}>%z^3HLU%T2pfBvc6>G0X`68dZ~)-%nSR9QK9 znri*c$pZq{Y4GB{4%(_$%Edpt2-kK% z3_RBYu=o5`nkg~0Xlw^)8>72F4KEg)!apj-+w?y@eThtR)UV!u4vyyx!TS+xzxD?1 z|ET#i0R555r?}Auy0rBjpzK&Yx4kg`Bt!$>tVwA8vV|^z+J;369hXPfb4r6<(@UKvx*$o}K7bKN=`-#It`Pwfg8}zpIs7o}qZCi_0OuPZ-@?ZhW|x${{U*NwNJ}SyG;$Ws_ZG zks{&G3X8(wOuqy8%_64+F7`7KzwB!&I8yCS#P=ixEuWZTK!+pMf;e=Uy?r%;Q zvxQyP0uLQ-N}u~|=Rc#?jV^g&Y|@VoA|KsdwIVPA@D=Qj zircY|u@)YH6H1TTS*8tCC#N@?8?4MVy^pc+x(;)%Wd*r9JL$*J}C2+^K z-k-cW(#B%{b|n{;I9@(c8cFy^UV$AkkF3oTUS*B36ImQL9(uV?HMLy{c!@v{9^3xg zuix{s8Zy{GH!S4|(|P7rH+IIjR3uhP_SGwSoQEiDgUJLu*XN&I6O`5_l7yJ^#7d{= z2pP|sRd%mB{)HOhMgG7K$cA{)wAEXV zJA=bq6Rc|W$vna;zxJ0`eFyWkCy1se1i?g;(Ptx5CBJ^@gjz87KMG?)7iteCbMs3A zhoQ%vIUf$|Muh#;WouD0dZ#!%If!)(Jnz<9eDbmUz;(p;X;l74unynQ!SD8VE<>i$ z@u5n-?L1ibIc}w(mo)%xpT|*Tb^STJ!y}7%ST*5P()8tP9NdiIxhC(nH|JhrS0>RH zNUGxBUxlk|#sPP17$FLJtVSq8P#TB0iI&0PB|(Q>QapqJ=!!MyxVV^F6zUR()aYs> z23ji3&(dZOnjCSVz*GhxCB+X>ex2K}A}3t+k5uz4BCxdVF-A$|hA*q_d7jiHho@H; z3O1F#qI>R34=9Uu0x=MEdOby#{9a}xHXh;415;fwV)pEuT}N#cTLmQ z3F;NGmKiSAoBf2QR2dN>F7Qams>HeYe1+_>8Z7Zx>y}AR%I|T0pxhow(zD$xRrLeY zx$pL(C5jMxUT>_@~U7r7pksznIF zaaI8@;<2O7CmhWzn=Qt$ITvNY^9wkxf+e*5fR1P$f0`<^S>cR*CGP{QLQm^(eS>p* zFdknPRq#w! z@$WMqRE}shFtUf*}nN16pgqn?HwCIP&)2Ws^q6LA1FLnqEndOISIg4Yh zS(bZPyuS;163v&Xb(qkQV#J@5F)u7vX_Q7B#`-EBB1S6JJ}=bz8Tf}=|Ik$spji7- z*H`fd4O2w~e+Q*tuENk4J7CsQH2cBjJ@dypLx8mT%M+arm{dMzm`1$|dGxN0jQyok z@g;XInrKH0CF`Fgn4o3=28UyxCyPjL;J(C)rtf}y;rD0z`M>pDK6f+FX>rn)!qYJF zX5iLuS8v``7}BzjwQ7`y4?{MBP-`=;PvVvg%YW^vr%lJAT=fSFTwgx|IWWLJsN>_c ztwIM)g^5CTGZLLoLysXFq!P{%+&rEV^`n49M(%aMhSWE&b=&-j1MgU1ET$tsV?>}* z7&#IN z+(Do=0XOP_6L8g>aTWpi#E4}r@?-B1nm^z+QRh{fo{7J{rg%=AJ_ zow-~b==x2GUZYxhx$al^*mu9+RI4uuGS)lbF^jtk)5}=fjepg-@QF;=H;vKT%}(cA z6;H`+3kj(aaj+rG8+dnou9enCUsM z(uA$~D<-a$X>Kv}Vc;v;X7{hG9L@w|5W6{O`SA(r>3JfZ0v;(7fwoyi*U;RuEyhF^ z-NQdyazJSj@!bowBbJ%;=`1{$E0D=-1^(qJsU8$K(>?}wtk$Qn8nn9|T|av7cRWjt zXI+zX+6>essQ?<8W&ekgm|w=Q+I)7DF9y9QNZk&1hlP=oPG@(GadB@G+s(K&4iZ&p zIE*b8>o$$lYio*QL|h|#BevC*I63RXdn9|GVgR!U{-`ISujHGQ3kusJdAXv|n>|*i zht+hEq`*!k>nPRt&uE_<9cDI2zFRJ^ilzH}jMnA&0s>cubBd6@OlE$b|=(O6URD2?!NEfH; z_UZgT^iS0(RK-fs`y!v3V(}vZ+QxCUBLN{_y!A9JFfjZ`l!%iRO&Fr$ApKjDv&G*aU@CbB0Szxg4J&I)0 zaw-vP%3tLRaZ80b<-fgrTm|R=$_NHyC^q&`fp|T^`PyNjT+KM)QCwG7*ZQ%b*UvUt z*-e_j#Tg|7u&4MftC{qD%f9P#t)e9@B}K`&>7Pt0sdCBa`7yoJjcJM4{b?!Sif>C+ zK-~R7!qR4tt`4tfc9-8I+t6aYAjyNP-UyJ4!sSfP#PCzG)|BBsGYjlPyM%(nf%(Z1bu zNMSKLZ5{42D3Q5I+gF1J&I^g>fpqhdXQ#H#l%76YEeW;jlJ&XLJl{X-%e?5K|J@*@ z0u91zQoV*a_x4^zjb;ku=QP24;B2!v{PdO%LzSjacR#TK0^Wg|>=h$e=c&3_3EtZ+ zG7x0-m6gf?|2gy)7fZ13%*o4hxVIdBXu(h8s({rREQ5rNtXc5;V=RuEDktm3A)x(= z5-Ycy1iw}>jgWo6e92^6b%@iv;xqxvgcl62O!)8X+SO9?oi614QVo+EygEIe6nxY( za6sC;?FWG|Lom}ojz$4M()Ba_Z?Yclkj){`7~P+>1>&V}VBCt&(XRtKqY^9V*Y=>h z)Vb`Kozag1FxQJ_%|<-t6H!te91f>zc~@I)5xa{4^ipuMbAwiD3aidA!_dHxB$`%= zW@BE`%-w~hyOVo@<$V4_o5{4~ZQ^mZFu=9dSqREG=OX??fe$`EdMwiY&ykbp7C_Mr zUy*4%o&<0FLoz^sUa-fAiFI#z%U{JY5Qq6{RKgM3A!s*6Zhfct>&HrgX z>GyPh3^FQ5;kYuJlA*!z+HJHl*lM=stOzQIKT77`2JTSS6&;@@WF-;s6q}q8KHvUB zqbtGyK-hM9O#?Mu0BSUpDIA(vd1P8_NeJX1dcsXxDm-#y?NO4L4fR(`^aZe_L_ekFJh%2{3Nod z0I*bB=gmdWf_)u&!1>wfpT#oOntaL&f$5|EIkn)y1$?lb&3v)5996l}&i;XIVjgyK zxFsi@t8g&4?DPfVv7fEM*w)~nM&}56-v>!xZK{Zvbkxz_0-%cz$J3FCF{X&zCVa2( z+Y07nj*brXp;RL^H?n)2-#mVq^i>P4f_?ucg739f-dE$w1CRV*WSRAx zc%if$hd$k~lxQ*7Nk{4zp0aWNfe~|fNom69D5!}fq{kD`ji~7LD{>LWgWmxnUtog z3al*ojyteaK4v}(g=>ET{6Yl03fMCWGqO~7k9X@=2RqeW5{SATuW93*ws;4`TiA{jkT?eFi55Wn= zc^NE7Yz%+uQ&=Sb>T~$^Ye{KW`UC?A|9SsX$)je(IsLkM{=`2}a?GJ>{$wTQn*J(y z!qeGL_yNcsR9R2@tN5Kj`R@|gj^9llu%f_!R-&b|&k8g<2PGFquV-814KlbwAZX}O> zdd3nzub{>42?>vG#u5XAZb_b4m>@qsSk@(Hd>1hYeQTtcn+@dHRy69yq=$V)-{>m^ zF)YBb(NxbyA=SHRuZ;wr63E?7Z{&N`W}B;$o&rVlW&nok-E(>KMkSkQr5qj-9I0AL zv>r1Dh-YxX)7y>~79llSm0}WSZ%rMP>j~n?rdY{h4&mwT90ZY5`+`R9(Lqclr;*39 zg(JQ32y%psA5R+oF&2Cay@WbezB79ad3dXf&+aT(HO;sJft<|0Fg z7iP<1S!g(L#{Xv&e3y%pw~-Sg0h$*_ClStl_>^U6c%pBB#5LNJmX-?Ge|CuBu0Rrt z5yU&xm%g%GfE{oxcpj~7Y0x=>pUvFS@!us<28jnwFBHZ+GMUITSVR^#H)liqhw+Bg z3gyE;kdB-JSA-i1SU5+Lt#PR_zvlZ(-b?eVH;FX7afBNcO)~X?( zNjN(O2mzDn+-G3_-T#vb$zypfoH8ESjG%QFGn|AZ{4nGF0^MBIVRB}`QvsQ%Wt&nAu zpDvJC4yZrk_nHCROdj(2Y#pFD{r}wgWPSy@e;}C$NWl+4O!X71PiE3>_Dye9Qnfwk z682{Ne2ED}kuq}IR?OBbY!tON5CMwf&xvo@5P+nZnHiVvIAay!-;{Zd>Um#(B0|0C z{x#L%FOb6ZJx6HTTjp#%o5JVxiDA#qF|GfgrS*2_OTNvhNW>gIk!i|2FyX3y|Jn z)!5Ex16;XmLw9!%a$r!V$W6P)MUm_*1HiLSV)nv7l#ja&fEM9V>XHv->EzC}78PL# zo#5Z;z~P)Jjn~!Pmd@PnTLp02U?`Gf0s|p20$6K{1bNvq%a4O`4 z<#B{d*NRb4+azaGMU4=v|JZ>f_8I=X*oIM4QpfY=uhw3iBBI10kh*$&>}H@h?{);J zac3JLjcskX#Q50sqH&V+Xpe^5oofP|uQ`7NUOWq5oa!I1{A%HLAM;*y9;dgoEh(;~ zKrl;>o0v#(a9n8UsH{{Im7=&0miqkL+q2Hv7DEnIP!Mn~)Jd_t3ZU93(I-11dWWBW zI;*ZUqOO!Me3{IjubsTroworE%)5oS^$T2!u)fLNb)Q1x<$>nsjTXE_2|k3+oJcQ~RRZo7;JChA_`4!~ABn7N zQ}=Dt4s10BvsvXLt}eOX`}QU&5Z2E;8)etYf=>qyJ^RS+eGOfPrWv_H#`$?_0z1NE zW=tlX!dV}v78_zLR?*#V3kbr(6uv5ywo&v|zLvi%sCHFX_%slxFfBN7KOuGD2)mlp zcwHwjoHx5|RI;9Y=bZ%N8V-wozUyUeSr?b1VnsO>3n6hvTY*ytC{$Z%RfvxLo^oiv zcuKb9OJ9XG>#vckzK2gsNJzDKdbB&a$3C9-^)3wd4*r%8$04xT?yepj80TfgNgNw zce^;V(7Q6zpg*K)QB;J45Fjwrg2)yec;MIpIUpr__n!4iJxfR|Q|#ko`DP09&92j?d5i5o~BRfG{*I{)C&-JuTi&JnxQl zPLy~oT3Vyn5O9$hRp;2Xr{F4E5oMop>)DzG=CAjYJ4Z*{rya+;MD>$-_jGHu60MLJ zXlNa@wec&0UmH62q(9&5Wg*&L84uRP(Kj z>|sQU69hz6j!TUjF&E+y8UX=rTH~GDu`c+s`nrwH_l!~t-uwWg=(vm8oi_@o z5Vt;pG&u@7-%ia}!wgIt8yf{1?S$+6{gHi<5fMHKZ}uYafzFnzq{!Vsr?D|giEW+D zj@=5eUu9ptuC^8_xT~I)4@1A)fxU>_5qf_6{*-_0Bdq$@aq`HdyyKVI2fJ1u9`&#C zf=7PijACwn`rY%G&9M8BfiatHYBOZ?xsMrNH=+}^syeUSjjKVDkINm2l`8$FU+kmX zeNfA0l*PKT;BO+|y8$us$|zk6ttdYZohF$Rr63Kc0x9)%Y!e()NeLl^cJ?y1zJ$*O zB&-IQbia%`a%w#g)2N={d!b5?!6!(6rSgzfCdb&6+%&upN3bJ`~>%32ZK-kb+T$8P!rl~oo>g42PYB}n0 zF=lYAb{|9T3O`?|u?i1)>A-@3&=`k{{P&hnc&z}CuXOAWe2vH+i4JV$SnYIYRAF78Q^bzj46&O#;?vz(vUwh}k|KyCp$9yI zhelr%Syyn?@wJYpiTxC%8QLVBvOAt;}V2 zrmPVGA?M{ceT0WWcmm%YvqhnYqm-;emo(-Y)3hBq=kn3=|H2<_u+C7W0-8)wD2`c2|NfF~G zhet2a?g$w+AK5!Nz=+>GJqpF5i#ogZ9Vb}u{OTV{z-(Vp@k2jm{kC3cT1+CPW-y;aM~0wwS~J4mqAk?q z&}Bm4<;>zCbggj54V`JB-db5ud&&lr6q)6?fBvfO<00Rk8xs=zT{AlHqqxl`@63}! zw!FYC50il6xu{ot8ox^5@ktvP3r6c|qCTOXqFLl-10E&*2yS+tk97)C2psIYRUksM@SU|9?3zDrYXm(vx}5H%XmhYbbQVe!^x20 z$A+Usi-*(O$kHrL6^srYg-kQzu8)3?ZnyTkdswmt|&}gQwQ5o}zRD&f>qy?b{8Jbf2!!qcOu{B4uuDii)i>m5PnAIR!M% z_X?)n7)7V<@r*pl9^=7DcAf|ix-*`tnz?L;3d(rTR!)~AT+9~Nhe4Qq9kuj$ig zg3#)a!>s4GXXbPK@LosQ10}fTc1J%*=U`o>ku-6ym+!CIN|w}9mNENkF1s;1T7xx; z!j-HJ@nxx<9LyZNkSCXQB9`ad4LRkPtMYm;?Qmc))mpL=vVwnjZf&z^%=;}eU#I&% zkio2qkSMb=(AY9tNeH0`de2Y@vAsJ^sfl;qA@+4s*I)NnLaJ&BRXMFFPD)Xnce+9! zycUf6#hQrMN}1`3dHpIpms2QPakZP^&fM-Cvn0(YcqnRzoHDlU1^9JT9`^%D`X@d6 z1f}9SU$6td-EI!u?Z;uq(wQMm5M<31GX5<5#^e3zFGb|CzvYIV9^b^J6n@ME z@4_c`5)KCF449+43A{88qj$^G;98Caiq_-7w)3a{Z4K6fu9uFUpYYvin zDA>TzH9>M}s>juJC8rk4{mrdP2tNh;YUrBW-_J^>L0k6?3VIS?3U<^!1(n$ zvdn+?Hac#qUG0`izjRrf_Sac2thpbjD%V7v~cEq1$V%*1w~Frz|Im2NQpcyG^iNVpPjFkH zeN@7dML71k`M&x?>+7II;n4^cga2LpO}LolS{qpnUH``PdM8u)=FcB6ySs~&7u6H* zq&W8+?6%zMGHLhR<~BQwb1I#>X{^@Fl~&!^NnN~zPM;dUYEFL3U)P&wQhIxf-Q41j zwZz@Vr$=r{LXN(QPK77tygizP#y&K!Ttwn;xzab}qxv47rF?fz$KUQM(EEz#IR58% z@n!!5&06{jyg0QcLqS!WM*7aDC@v~?xtCaou%7GH0|{KZu5A24#J%#%=r#m1B1TSn zl~a9@8vY2O_9J$^Y1G@d@xhD@Cvn=nn&Oc-AXGeJ=T0!9W8rx^C_7k{GAwZO`h0uZ zIT!}?C4{gaOpaO&aXS6?!mCezdqS2^`kWW=V-?Bnu1D<+e{0A@y1+gcGUI3SpY)jS zvcua^{WZ^_SU$ugk4p2Z>!2M<2(=>UDtVRp7WTXMZwcSsuv(_vwW~skxDb%v;jQ z8%ydPAY_!%vRfTAy1J`eo*2SyX3|s9+-uVwFDUS*AFS5O{}}AXgz!Z2-t%be=;PJC z9CLMP?oe|>KxXE0n>$sJLeWIb=e{* zv6?Tn=XPahVMCPt_Md(j{0px)g7CM`!AGO=)>+#cG{X6L@sA2`PreRsPP=tnoC~;~ zA<>*#K7g{wcTbhDA4p{h6gn_M%JBQgf4L6a=H6`3RTZIT@&LpLE^r>rf&4W0o{ud` zeSO7-L)POM2nhQW_2I!462Yb*1$q<|@c>ohW(hRs#ax93iPCslzwAB*!}r7K3jDXp zQV={2S9;67$g#x0bpOeXdtUh`r-<rb{~RF2dit1YYxu57l}nu8rqY zYV8wZ7e#kavHBkBLJI~P5(%;I#F_mo+|p5?k!hvo9cL7MdOFP^kxHVIUeDY zZb5=aRr;pne5c|%P10d))sJz)a)qZNW9|4;;u>|Nj57a&1-urzE1dC4pGt-@E+p0| z9)rWga(;#y4HQk<5*1e~gtH!*Xx^#HK&JCF;e~eUgUgKJnp2Zpwc_xx@XD!2o58#W+S$KA4|#OGIIJAG zJrOjf+E@K}U&WefcNnG|n6~fYrBPR^`JrV{kz!&ZsCu>NM@k>l>w?w#utL!N2hve4 zs%!?7sLy(dOQo~U&zsJ_e;0z3nj%lo3EY2b^cgBj*(U0(`s@fxKpHyM%h1dEw7vQ` z4b|O~Z&~r`|Hh-n`st{c&VLQ zUsqTrmW#nJ-(x7o^QD$5@Klm>pG+)Bq;!-RhO;z<m&2w*0MLZ2=)8u;Jil)KXzXiVMm#xOj&HLrsd(qi zg4HjJN59lzfGQQb2|A(#`Re|57==5g>K7B>61REID-KhtT4*ToULAZr-cJJF#g&V# z5?Wd*S?k|P`aFo;>)Y`i!P6nhU7q&#V`r-bZ7kJfiox zt{Wc%3!F>QF1Bk(9c)a*_%EKIt-KWmp^l_|x0fwqUe}}|!}+iX^I_Em`4%|P0o0I^ zkztFT`PKe+iaqF=yx?buSS)AMbABI0ZrKo?+jhbuW&BfEj zV91MIO`3Z8<-(l844(n2N{7%^4s|r#`2mwOFn;bX=`d<|kw~+KGrn>Zo7%nh+a<$+ z&yt{5^0w1t=d)p5hKPiF19^$Sr!Mq@``I{&;(?~)LVC^OMssJ~#2V!y!dEJ=W0FpjZdRlPoh7&V z+1>Sp4qg`~ydg2K?@$$(W-v9Cz7PEd4J=^i$;`GZ*-0T+n_ikF-7*URQVk{7b{qPG zTcs6W%38#L)`tTYP;5nAA0owP-JTEBLbO&VH3|ogcbI^7ac`imDMC|qmKk45_s|zdx%0E7bBe0V zsw!spAI{^H)sUig>KwV@`DmMiv7!|l#je{BMVf`#C_|3DAH?J@ZnU=65(I2g)ViWx zca56zi%tb|pcEpvy0YpNybF$0L`eYG)3O?dMaeo?PJ%rnbv9_xjU zliC3L&SnHdC4Q)VXtm!;`&KBcQo?W5eIlfveYqnUah#=xKjT6$A4#CfDAEj%TO}{l@G2Q{H4} zaew;ISPsD?>dwv^Mp=z?&9s?atZ8*zZ3zvbnSaHa%^%9^Q53~8`&l27j>mQ);uIA> z?uplQx&u@KOgqEYjPYWnLr#mt58>Zg^&xXro*1J1iT*|CNaP|A;HxQLr;ir+t~Tj7 z{|5`JKv-bp;znSxp&&&-mFn-nl^8ThoQSihlHyNDvX7i+xHLd)u1Y8k3SZq>_%ZH; zrVcjaq+grP38RkV+2rd3ykb*L`Jc{U?=EdbfT!^)MgxrX{oqkxe-kpM_rtKyMz%1d8k~ytJQ_aEIp|d} zBdqajQKzbd?N=I=OT{&kNV)9d%OHtH#R_4;LK5rm3qL+H=+*J7H}@^wo%<>ZPEV?j z6;Go{?n#lQt5CLTpgCvdUdgm5P|1OnH-FG!%kJrb6jEXc`j{8`jEgTq6}Kw5G#t?m ze|e2Q5Rk%?P&+T9mls;h^t*ZQkkSh0x3n#qxIkwI=RAE2o^l5wjXyWc;mU5GdmsIb z;IB4zKKwb`e~U)g~$9NFcTdel*=Rh5wy%(`33}pFK`w9)lsXzY7=16K1<`9t8lS}7~cF?T`VFfH^ z&Z1k{+BREHMV;3M7NBtSWhY8l{!?cqu+A09sPUYQEk}+&kR<8uNv<7}L!wES+G3qR zRJc_6LVHlySUIr?#OL;VvFs9FEC25F?_=@e&L;0wJE%3{dy@-A=c=|=Q(p^zc7yIADADJK9-P4d}ML7{e)I)>G!kFRA25m_Np*r z!H86D@H(DGI)Z)j0WG}zXRu+oSD}r8ssJslpyWNI4?a6k@*1_% zWtVZ2*X-z9X>w>?V&dF3rqiCSG{ywK5;w+4V1nD2DXaj2?_7@3u}!7pQ<`9|^X2_{0Gp7;v`F47n)pU%`=1JZ@&s>&?lev8a8xBR0;6@ z5H?N}J7%AIgE;kchsFlGxEeu|>P91z>hqjjd;6cUPX@+~DlTY(ryp`&#oNf92`;=p zP!N=3KysOoX958RYADzzjBc?&r2nY6IBJ8kkEeAKPT=?GH4l#3vw7sFa~uc?#n zD7!)R!`rl8EWyqOoDDCsi#$?s0BCcnPxcgnkB$1VYJ*<%?(YyT546V3o-}haA_>5J zlyQ;@mB#g33O*ntzbI7bbGA{h`hyIF_#TNj6S@dU}zc`N#2WsS7~dB;H8eU=0vSb-pfzeSdlr*X>2W zNjVL4A$z&)YFCQ&0r0iDr%IW&6NPhBbkuMX(^ecT=6uT2@2YAW0pT}rmY09+p4a6( z(-w+Jp+pp@Xcyp|!rXny+hbqJ>>~+?x_z&!tdwd@U|L zJ`y0ErDmgZ-bOAVD_)Dhw|3B6Umetzm;!q_wWKV?z-{L6!7%isX{So-CMNU=Fx;Sp z$HXSIU;?7YOGoa4ZaS2zahl8(eGgorDnr$Kfu-^Xo)H2XW-c||71haK@w(n*Gy~R& zKIwbeGoIWu&5@}Gyo?U3Efs}XO_HtT0u@Ej9~(oY%4#a!qtOLRUQ4@yMXik_3IGhE z;YwFA>h9CL3g38E{ZZeppknUTnU^>}n)uY(Lcx9L6(LZeD2FM9>-8#LF#E()Lg@Vd za$Vf4pky^vanNaCmE_P!k%z{?x`esWYyG~XZ>YfqUqv`ZmCV;yU)5`BZZKVnC)b`? z_b3HXW%#l)F`407k_n+``nnWGyVU$(p|VQS+-?sdK!C(o%sQ(y8_rIVAq+j;gMTuA zHY!;-fpGtN5Su*qBF^xc%nzs;-oLkIzTJ}x%xPUsvKw!I6BF0ql*4)ScRKd+Ep@ZA zRs&~Vf@V`tM}wK2+y$`=?{{|I2@AxUI2TvhtUdfRFQoJluB{x5rD{@y<>e)?U-~!S z`x}+Pj67?XaJ={UEm!{DCnBCCBt*k`Ao|2FiT7fR7c;D-;ZFO_{bT)_B;4WIIPizW zWB|OoP_mmXVb4}NS*$b82LK0*_*&0Ro<9}rReCnCIBs8X3M)7j538@I5QD#M z-+gO}QB@Mh0sKxHr8`$^%I@NPM8vnNIA8qCbxL(Y7;(rUQe0{teV)k{)fiZLNS zq;KradZ#!KrY(RDm)h|^Rqp^hLDp>d&x?xcIANZin3+P~;mH*^z8y3DNNGf+17bD^ zWM^u_e7?7o*<_p>u?+-*u6yfYeviSIno*NeiLfmH$yRQuu?zx^O11Ji;6dA+Jc72F z1Y^LwP6I;E?9+;h^0~RV=AK%<+^tKflJfb-L=_0}3rFzd8(t2$tYYct(hVr)?yV$^ z6w)sfmugJ!_vB=xz61E^tndLZIs$^t zhn<(5TCiYMc}l-z%kfkZMTq(0WW(Ug?}=Z2ecNY_^-Gry!5ed|5HDOlATvhIvS?Zr zM#h2owNX!})am1Wed!Z}YniLzx^MoLwOci&P|lMP6<1hICeUGjulZ-0Iyx7tG5EZd zm+_~OGgiL#ag5ft?-ez{S?U;u=u881%)py|RH8ZVeib|Rk+KiUt;XCxGktu2m#pBP zlhQ9SYJd^rmR6r{QQ3?K+mFcC1H3 z(ZpMxXEtj+`c6($xcFxWh6U>V+$S?2vX&Pn&10ebq4Mr0lc>~po`~6y&x3NhA>nT_ z`0CRTX)0cq-h~%V7=R>OQ6$d3)CC%Rn`~E=6&b(0g1?FZ00D1PgSi`?p1Ms88pRFb zeJdt=1FlLMjC9MIN)K#|4)Mnkk<0MkNAI2H1-tL>WkYR`b0fLWnd~$^cL|!U6;d&; z<7)HFlaeKj)#$Zk2GR9+Ze3UAcHBo~S8CSc2;V?}2&kgV{6P2V`1gV-9C2!dV>^?M z^>>&IDU6P`=D^Nd*T-Y%a||iAA0L)ubu$^+Fq7xQLrVkF7aEnQfqWwj&I>@yxwyPt zY=a^?#rKO+bqiKz-Eqgr;}~_5s2=O~xJrs1a3ZXDELB#Lfa{1i`i|&bm0r!@?Bh`- zDjbOGyL`A}bc%tFZa^1wIAa`^DZB}r6GIvg)T_1kwuA2BQF!M>dor zImztqin+R`7&cLIqZQBYZ6G44V82NhT5fEuEY?4t1U?MYY^|D>1+UR7 z=uwekARqlLDR|9Kij+lJWtXiqm;pc#*4CT3aU7pHwAm%%XVKqT4n%ug23PJ`sj8`d ze~0%TJ_x_qYR>hcV@k`y&!!`TD##KT3QV0tZ|phpCrO`!j{2rF65~XIADIOvdsJX^eG}dY zIFX+FY3YC*0xKJvCi|r*Oe2?zC*QKNzohidO8Mj#5fOXr1zOp=ySq}XSt7u4n7^gC z72!9b0SG&mO66K*8OJ;O2M4^46LDl*kNwcc#qt!Xv8kB_dlS>~+4*^t z`FVg^oeqpI1nByLF$B*2npXW!#Sva3?0>LC>HO%GCd{yK=#eTEFq}pVnv)br+6*Qz z!U5k&l=vjDwc*FnpZl^-`;=sn%L^eLwZ5S-Yx|h@wsvn@iYZ$X(a-|vi;~KA@$X$0 zWppYCb;(?ymh^tlVj4;(p8CpJ)E62Lbibv~( z8vjX5dFZnKc=EL%#ECGc*9}u1e!>ymoIoNrQr%OlXo{x;5t8OhLqYIN(;#gT& z#^#@cawy5@(PZ3T`MW=Qo?eEZ_5cf)j%ErsugCFJ4MATAKN+>|KmgiRK7%(@A-mOu zf)laEBeB#ZSdBM(egAb-&T^rv9sz>d@#QMj&fkdw9{t2V`^itOV}U#gV*0Z6da@3A zMIV|Ru81z_^y)T&<*{F9;M>qUcG^t`jchHl~hyF=PSaCfIr+}-8w_x+u7$N1lIKb&#yxcgH^SP9u{ zFL~B{<}+tuLkEnCNtj{BMk8s8E~c`~sy04OKq}moqKjG1xaP_^I8MGMo=o5CeXRo# z?2zrK*j4-+g8iVvXCiua1p^+MCm=lQI#fUCvqAD8MCL!tbAD46V=I@jQ^lo4^km^2 z*ZKP5Zxcn@&HWIH?Va8&5vuZ*#76L~6q_Csu8!~9+Lz-s$^0mZi`KUm)Zbmm8fVl# z@8>)>P;SB1^XfUdyMStqAX&=1j{^Ggo};rhZ&UslHBYp*>A$x|yG2|p&1ilad1grq z{XKdxrW1?n(_g^1==~r*UV8lvi`uJD`Li*=B#~IxV2QoP_iX(!w=6$le|UTQ=wO^V zm>h$P0%ScwS`@-Ktq)xY3sBsQ+N<1<3dS3BtP>`4*>wM{o#0k#I&$P#FI;*x6-?Ef zN$vif-TGwzx=^WCYuS^*o`cdgyt>!gP_j@jT2VdJ`(7%>S@(z4;K;Sd)^Ds9c(Pr0 z-cjUaX`{!+c~@56qom~I&E-A!KOIL#xiU=+P1www+_HEasF6Q_$>V-O%^$jzW`$~E zD5G+pVcY1%#6 z*x;X=c(@&)-<~R=n}A*avAz(XoINMw z0vklq$TH*Os-MGJ9sMz!)e7`@M4*SO;gSVPRf*F_M@JN%4gn{F>B8{RQo};A>%9sP z$RCZr%=)>c;{b5(DkSROctyJ4Pe1il?;H~hdCTgzbX6J|Fy2Av6wjBtO9v-qq+BH= zX_scpiD9wHmzSfp3_To(ax0^0K{Nf4V?}NYsTr$jm}!j08JfOhh!y zo7c++zsZ+kJ9XziZt#n0TBqvdLly<+D6mS+wnPpthZ*s(+iCrt9Uc{noXkAOrJk&< zYW*I>=Y1&>gqPQm2Bq{nuf6>&;Bm@W>NnNUYojt<;_c$rD_R{8)Al3}3-xdn9haK! zFL&7)d6QQN_qX@fg*XnhXl#ugh$ih5J2K_^Z(hmxAHaV!8c7mUxUwjx>9;LEm$sEu z7cRBKh$6C3*&*eHW6AfAiX0#hEDJcb@aY9M79{o~swS&p0$X;Lb@*jpL#U|3!@7*s z24F0!%J)eeV!jH$y!ybsMI0LS*t|gPg#2uQic&%w{Q`>~gFi8Q%Tv<>YO9P3ezg13uPwK{jizp76q1S|cbV2#a7hxVx4a%j zMcE(5Vxi;Vox!ydM8xWFb&QkvNXzpZj;NrYrmZ(+(`mCfBj33Sh%e^2eSW^4c^|v_ zB8KgDcdd^J=f0+{qUG=H@Z1G7x;LS95o!Hs@0GA`U0^zN<^^2>*>65BCF8b^0@!#d zgC`mGA^8NtZF>bnoKt~l0)rc&ZQT7VV#h0)&u!)fczF~Vf1UrNLUGJ$_buZ!oIDJm zsA-m}ykFpRSZcv2{@}H-hFbsXTWMvdRi?1aqG-?xwcpHpT9diO_|flvb$j3cepa(C zs;sQcONU7}p*Qj7nyv9Ws)C6SHsP$&^65DaS9N^`)dgTWc|95;tl4P5kKrtFwZZN< zTa}%#l?3UzcHgOUbccM(DthLE?k85i?|rh~koN>6=FuH)Xn$U2v15`WZ;7bbgy_|% z9oa~;C+h6yYSJ-g(lJF=`TrZB#rVnOd_V>6XCr-q(1V(;`BVsdiS6*Hj)HRFhxa*9)oNIKh+Igro&B zl?ygQztNqpX>P_>j6PiNQApj$vj-$$y&IoQ9_e7Zk^aPLQ)F*l(vH<-6>YVJtKrve z#mhvLd3pAYb{@`gT!-bqV$HNqZCnm=7LSz!=u_;iimh@Jy(;oWp2aI#m_B;s?{hGp zBvh~DRs;Kamy>v3&JX3L)}&JvG222c9E$4rTw?YkU1$Bwi-R}(D&|6niQ3|Me zxZH1R(wJsPB;}zx2`C4{(iD?|(JlTz%wqoCW?3P3}) zs2XEJ0XE;ioqH!nMi9oiR(kTh#Z!S&1*^LgEM)kBGN*e1d;63myQ=Fcd_2ZNP^&F7 z)RoLD(SUDMgB$GmH=)sXQ}1~>%?wSS#*yrvS=8kKA|uMiZF!s8vUXo?gU%?~q(=@q zrR2BDg9vg;c8^osItNpqQxe{7oml%nMs0Gx99Oos2LCq}keie>{KfPw71C>eIo;1R z+tYXLe4%wIdS~*-whtcY4{4&L{mnLi3KgZ!w;)a6%;uP48p3Gbfr;W5sR$|(eyMu; zp)i#)h8poqwA_1nZ$W;?)*iRmlw&`1_M@n;Jr=r1m$1C;kV3XOaTs^|)82@aJnRH~ zXRj|$$;_N{noE6|3gX)=25@V9w5#|9vV>5JM9V5~(z_;#bv7fJY|UC&XL!Z(-mQz6&U zc%tnx!UF}cFS-o}B&?cS5(pCb2GTJ=l2x?g;3nyBUMBysVkFreSVMinJ9 zFUBWm(BdM@&d#4{T<(L1@!aGLoNy^CUk_L&Prpj!u~K=vAt>jT2Z=-RV@ca4V?kuS%)5{svPi(_lgr*!=Ky--STt zJZ1_kG#S;chOY4p=jsUS&8-3E1DLwf?A$NMJ|TC=xuwVrPUk-lrT z+Z!dTK3?r<6wLyGbXkV@;Lc^P2$j#uNsSQA%g++IE24haFX(!3RfG(9TQPmNBBGT~ zpWehNYfEkq^39ShF2Dcv{fJ20;`psA>uhJtcNg*R#sF~?ER|Oi_Ct?i+nzs}d5&kK z;!!!(4IL@Cke1EKf}KTmbV}(H-Um>4l#p^^O8C4JUqM6?x$4{ zPiTbVlkjf@k#gMyrKYxprFL%*S(ip@IywX3o&Y+N(Bo31p$V5#x3;#Pxe`68=V0v@ zJv5J^bw?nwb@M-lLnJ9tj5ymn2g=#;8rDdS7l%hDcu#Ryw5v4eMc;JgIO5{sV`D#M z(yd7z@0J`H8F8YbBC)bMzdB*La(Y{!=$$+oFnvGp005;L6`%b4Ze^}lE8bC3I=ZQ= zV+(Q(PXp!cgJHvmhlQIq>V)P#)RMtb8c;R-v`Jb{<{|)Yy{$WONSNfq0sXP=p+tMP zs!;Y>6?#s;6s*xVlFaFkZo%XNQV8FFfIt2Tid}Ox0parh02pGe(lI7u?!{9&!p?0V z+keih`~&5>BRHag@?xu*q(Ya-xAv9?ccUN>NOXavo-d%xsON!lu|5-cqY)e3L?!wI zLytQ^-3!~m0D&%1A7x~wcE*kDtYXe7uMS&4pjiFapwRxJSka}9YYdMUa_zcGSrVWUTdU3jBnk!m zVi596cOfI!h;!OY{~Hje!modyiz*FhlFcYhIpFSC3TSgl=XLEx%A%*SuYS4rsQVqp z5-TV$Qz`^Bof8m1qfEt{{_GVi(C+qy2bBo7$se&s<>h*U*X=}p)j*_9LX2+GPR_%M ziEA=OGe`jRY~cK^o5iX+X_8B|wSPoJi5fg&-tuq`D~s8(O&554@)c+*a-TEytK))7tbU42^eu4hG&FjYBW;pA6XlQ6!$S2^Fnc|3l zKPgni{rMb8Bc!W9w~&{lt4$30GX?ykE*0bAuj$J(V+`r(>1!Nc?9oBDxM0I9;C5D3 z=|KKf-0pfq(jXAeFw%E!q1m%10DtN+=n_HnUrpAi{=^pKOl@HU6(!ijHEwQhKOSC{ zJp~=AGc}0;1E)I|40?6)-d#^p2KW*a8=Gh32z+?xbFf4D zGhaT574SL%5DU;MFHk&ke@wTJV&OYV`yKL1K{0BLefPFQ>b4x}Z%<(_PlGoy^1jSj z*kD2E@87>nFS+=*05GF4PIYFg+_-fq!0Tj^>m6f9WuRf@n{U`6vUK0Ss{+lJ+D=9% zCYZFQzc1uS0^i6cWjy4RosAK6T|mB~+!_mkV*EW{b@Fopc5(M8C@*7leB8kR zDgBT^89~fMo3}h$iq(8U8F02v88WbP6&i}E$sA85T;rJ?bRM+*yIu6I)%+n^aFF^@ zFzN*HNw-1eGw%S!>E?WdmU1_qnVFe!6TKyCqyRBD?;yi%&Zgho;gHcr0moLJerdRk0Q+Z3+#H8=Q)`EuSOY#74 z%o2ZZnd7NDbE*z3EQj*FTdI>2FoIRgpG0HK{>y+%(YN%r8kd~_pkmgQR905@L%vbIiYnZU3}L+>+@f8!bbok+(^w97rD=_QGp*zZ`}T6Wz2oD|dFyHR4SwcK(~XIR zMa^sH^ewk3hgt8{anw@S#Q?GH7#C?dhf!?^{Uk@GX09EE2q2(x?9Rl0&c0jJDFuPiUzDC6$WNvVjQ3X_kPv%uK3 zn;K&A{9CJ`d+UazW%K#rzDehi_QZm9wl9cYb>`RBxE_^?{ny>%^lbr1<-wg$%VOW+ zQ}4TTNfgI?^}}OgXr9&VT0QUZ)XCv7Tr7Uz>X^={fAuP$JVU$9;c1)B&#tWdw*@2W zD^uhzHwC9>8hkGgr_{)fhL28^jT`pwtQ+I%V@of0jD5n#``;*Gh{{NZSN{?@5LHM6 zWTSVF2FNF#yVgZ&A9SZ17yC&0JZUsAGh69?dQ$k6DMJpm34FxQ?=Cmj{8E8A@SKeI z>afgRcX9n$p2L#wmz*Tys_)fi-!S%MaJOkJV8#ayG0}H%lN?eT9s?os95?<&z+m+^ z<>v$O^7fJ*ZB@UPI|l>!F-x1@T_Sx{6s{;VA|C3f@@X?M9qST#zpYy!z2oExJzy!{4O%vj>ttw1#Xt|UeY&-)hLO9 zC-qGKd@w^mFOc& z+AVXt46y(Nys=ipGv>9>dyz<<*!)A+_Q?lDV7Ti4NhrQaRqWy4!*nk?+n$xay{EXJ zx#?fSgJoQFz0{{*IjZ)j7Pn-IT{ zk1U5vP&&WMdT%=eM~mO>rns$l7rMu3Rt%$N&e!p{vGp=sJbAk=B^-s!4{4mLH!&G- z;;a{q8D(X`tpg3u@A?v$GAi*@e~P|7JfOU}LP8+^)FaA%sl@CWCWGVe6Z(=enk|H3 zlGcN8d(TwvLe%|2-OVs`W5Xde{Y$}+u^@E$8djh2G(5a+GSN_wTbYkgisvoxZ~u{D z!qs9;X08P}zP1lxm%R>1<@HZKjI64!HWeNo)h^fXN~DVbVwDUy_YC($&_Ft`^eroN zjDSkMEH=lP5LvFd?U!4=EGkGaA8?vRZ-Y-cZ)B)fz0-51Pk>J)`Y?L72drYRb{z`t zMZOqH<_*`{T-^UHUl0Ojeb|>!b$6rh5*V}fcC2Uc2JbF!Pw<5V5^qPn=F=~4dA^GL zQkeD-+lt2F432iw>k15D{hX+k#6b|`Y@XidTAzmG5R6WZRabH6l5=0Ds!L_ZX7p$7 z$tW8N`5w{3sCctr<50T4_c|Y!LaRTk|2GyOP802x%=@FQh-$H|W*z8(Ep*L%ixGd} z*}lbHN@8N@`RG93)B)yW%(3U$!pfwT=;w88LUbgtOWJ#v$A*5Kbu`!(_XW)6Nm@*&ge~?g2OxNIb;4|rn2F=t{}6C@onWTXyBQ(LL-MlP z(hJm&>gpQfV1G!8dszi%%qb`kysH0Y&2Ch#TZ;}i-7@BVnBMC1OCeF*j))|B1^-AN zL#g2MArka=Wd*^=RpH4%;~0OxHbcxDrW*gIerY5pg!1NMS9XN;=3)~eF9fCC4a^`D>h5Qxw){v8AMO zcWKyT)NG?7vbmoVy&xwe<1zbfun1*IP;dYJw(yPlRpyVK$)dQ=c&dN;Q4|o18SaF@ zt&eeY;Yu(PydlFj_k(5ibB=UTA=<1Htr|iR=X+0Tj_@jB>Cg5iDx2NEgo#TqC!#tS zI>xTr@8RW-=+-)LRLD{Tz=qxh_GR>o8^VJ1`936*14Bi4f^{W#>PPll+_F2gL~#;H zf@@1W<2JOPPpcZRqM zSWefsnk!0|h4hhB1%t-9j4mpfgFqDnK_?Y4W&2cEP+2RMvYJ=Vy=C@WM|9&X3zvd} zdOC~y<7iK6p*6S7aroN8d@C@|WZWG!2pAdTud45Y16~^o&t#Bhw0*KPw3DkfEO@-0 zswjwPiyF#)7u8k(F-3k_JFgODPHI~kE^2(o1D5A2VynNMUF%qn`)s4XUD}8=2-1Ia6 ztgap$@GPX0c*d(WYz4^Kv^tcIZUSZS;y$Ny9(u*4c zzf`a*Hgm-m6ZXfQDMV+ku{h@-4J<2&Ny^N&HPJ`{d3tNiEcXQ4`}*>D3z)nS^6qLr z?%A}Gu4LcA#0To5L}ZfTlXS)P6`M)hIE+uvH%=>AmCvr+#=nrsci1ag`cQFev1&*3 zdJ}z1WYUZ$4nYVBo81~PzXT8sFNCb4qvbDS`6JqaY%IzT7(0Z|kGy{tih7;Ohh@oZ zOvcAq$~|Qc-=7Hx0%xuyZEn&|84qhYEVgAv*wnmR%e_P|dEVS`qrS%X5lxHRLK<%$ z@tWZTR+!1_fB(#JZ(O{T@s||9G00$YX7Xq0eWBi~q*7?UGoIE1tncuQwKMS=_fpst zsXyC_eNbW|y(PvBH!)&t?0d-F_0DxUZyr?ZoXStV!InxK${cNR8I8V!6pg`7`jao+dbminsqXS4Uo4o@4*{fl zxDgPs_Yqcn|2~3L)~9v1E-wLAS+Z)cGZL!1QTM>O_L`*WVb9a`T>3%6fO683>5d?2 z>`F%F+*e*eP~>H7pi%nH&D52%PDNa>2^b1wTLNNk;QT4OKz7Bq4E<{(&aHZyH|I7> zHKvXp=);3~O4vH5wcM0sfWaWvbsb=hUBPMnD|y2bu><6coJQ zQ87k@w?EaqVS>AYEcd3l6CUmEIS{cb%+yU#cvjfD9I3Lq$W?y(%}q%RF4AJ|`!Rh0 zM5&aQ8e~L&9p@7b4s+%?;ljF&b++w#chU;JEM$BM=oM1c3>B99LbCYeh|?DDGogDC zjd$Bz4ppz8QX)8W42z}lwl#9Qng*IZ_XIl=vx}fE9K*KR2HZoa@UBLO9qZ`HE*9$=U}3ifJl0GEywv^ zFKjl-=dT^T>>f){_x|987~RbpN}@XavR5Z6$C4x@+A(?>H43ERyA%Sj!FsnOXQvx` z8qF~k4KAC0h(A~%wYI-=)@&*tE-f8O#5sbHS1o)^mX_yrWYhO%S%ilwEOB(ZVsN13sQYpGO{U#c2D084Z zA-&6sR>aw`k@m^}Z*M8V^Q+=H)rTH-RD2#>gUzr$3~y7!AyCZSk)0`6)>)5-VZj4M zv^8K{7p^#V5q~_?Vk*=+)E(ZVO;NONGn++1ai(}nS@4l%Vq|x=CBAkfD{`W$R)0nv zBAm%>^=#*hE*wwJUbFhV0DL81Y>+<3`?u@p_^i3sUSmah#Fv3$;$}@#Jn_?R<({=v#Y|Q%768S-nn^Qxl@2=jbNvuFUS4oQkgv~; z_=nL$}77+S;o`HKz!fmY}?b zo&uEb-=vQWppcNjYeiYc0lK!G471?yT&$|<93VECU`|?7 zKH4GBteS85F|RNF1Cs~EB<_E@WpnKOMaRJ4HsVU1kvm5xh}ngxK6Gtwo9QJ57wehe zM5Us-{|=L7AMwUf)wzRqoY$PMyWB#nM(}WxuB(3No^MPQ_;EysS8;TA;X&y4-0Lbz z3R3EY>igdC^ax3D6qS(A@}0=l=&$X|OLa>yac&VduVO7tQdwWmP{7p-86KZo{1BjP zNuJ$-j#6h>XJSk45Nh|M%%p5XC!JGHq9zIA{QxT95TrDyHL(2;G{-MCh!=<ja&G(~koTL=o zPb8$n-_jKXEuH1DIc<16sJhB1`gy80<(g-{2hQvH{V!OciOi~BMz@G+^P7*cTReQb z^lNy_j3t?A)R7*V{yPV-dL!4R&)8pA0$8+VTdP(5V3zBAUwW%r1fBGhT_g<}JHl9L z;Z@R65==*>E}G1F>-D0KA7gKA&5G2Pv%37%S)@tJ&i22X)x_Wt^Y#TxRBe?u6G(mZ zBdJpCqen=cbJ9f~+eU<;_CA13bcgg(8AS8=Jg)+YI#e z<%?bvNhcipr3MUCTS$sPl_>AUCNh~DjmhXZN^O@7s{q8Q$M-&Ws0sS;9+toD!1JmJ zfd5?c(?sw;?0nz}u|V{jP9Dx&0A(TMd_dTW&_TDxM9V(e6TTZg!d zzq|_2XsP(%^#0wj_I%|he+rh#zcsP(jn_J=kc%qTBfB{(vpmJAdIY@Y7ji(>{=Jdq zyOMxopqCEss#HR%`}h)ICdOqL3xPMg%st#Ezcc8j zTB(kAz4S}{mj7Y<-Fu~huT@Hax+yNkotHXGALcIa471Wc#4SgVC>4b9e#d`m`uxj|_NtJws#3L`<5t!~CUmGZ+zNm3O`#^H)o%yeBD#jdD9>vsJJkzgE-g7S z4my0b>oGJ{^;@BTTIRIi+fU*3 zaJ-j^>P=u`Cx>o~3Mx~h49hK(FAKv(-z;4?#;s`yA9mJ6gzJ}l>g6+ZxsYv@`u&d3 zJajIAR0Z*=j-^dh_jAnWUts*vKG;wc*`$75HPnYNN!u9_SL_(`eM;Raw&$gbGF}xa zqYGa5oTqD>+R&42oaJTZj8O??S#ICmYdDClWGdjG*occFwLd) z23o{^M{ZzYM<=s8hDeY7dv+>eDUVf!1Pgyj?CA|p|CQhQTd_SJy{PnNi2SqCx=W`a z*6|usHs)8=CV_+fW>VNkWsnFG4+T$^dE@?u?{_u~D(kUDAT8&4rnXE2c0{(*7w$Gr zU0FT|F@VuM1Ic|9*GQAxnSs0C%}%Vc=NG@Vj^$lzClFRGQgLD}r4`g?Su`F8z+~dI zy$z0n^B(0St;XPf=-u@KFaxx!D$6c$GB`4S9g7w`v1QbF*T@`EmXZs2j!agrtpW5# zQ6D8^<)cj}$XPO{HR^t^nE14^Jh>K*fi&qg%9@UCRM4AJqqFpvWc)6#*;?ZA;ZDP_ z`7BWTX-^Y9b^%K~8-ts`TYbn#fzt6qDMegk6A$34>|}m+8gHEy$Xq&n4WLfm3~w|* zE0(Wa(B7=5=k;HA+wMBrJNBFh$BsA6Rk?<6yt z-JY)nD&AIBg$~jqbJbi;R9unydU|>(4o++qK9YJorCm2GIizZx(n2qJWWG-zeF;ti z<^V*L^DDay>lXW*-;biC4gREGYYiYOK z_tiMNf1(+FP>>Z>85GOO)lolam5&59?WZHt3}W0aJ3@f0LB4yP^PJn)hq*$dZTEv4 zoN-TIL0WEuIvn=vZzr>zLz%hE+KlP@ttGgnIx&N#TjEJ$8yrhQZr+ll-dgQa+JjuA zWs%Ke>Q6N@s+w_SKNX&0Fu!B`qHO)4lcaAow8low6M)U9x$iVa2*9(VntYc?h%RB3 z%=3bv)8^aW3B%Y^s1&i7UzYjl1F$*qgO!}o*=QFq)6#Z@-S5d^HU`Mhm82-j#U$ke zLD%(_iMgu27U+gl_*?Nff;?e+#Y5_wC-ZIZOQ{)ojPf-|j*RaB6>%XJ&eZ zCGCRG>56%G|6Gw&<`%F={M~*Y>~kp563tk?Nl*6cYi^d3ldrss(e)Vxf%wzPO5+Yg zYhn()ucJi1b*#CL7H+qqy#y352$9%Z&y&cVmjYN5;+vrd@0Z{qIQ&miek|iHGsm;^ z{9uOQ_a`Hzd2I^J?&2mMDsB=nNOJ3J7%gDzdvVRbbJXaipbk(*(vMQ6;&(ujAY{qB zQD2SY=i&MD(}m>;Mk4L61k{ub`WIABXXI}8e#}{`B|g(;ZiQ}8-a~PPTz}6q;|WxU z%~KJ65SZ{rszd6A^cr|+x$mme@zDab=8ui%L#1N#;xW8Cnl}gZ;U3RR6O_TCb2aGk zR(UMv`^cnY_O{V$qds1=SUM-+4(Ix1udvRb?Y}tPy@#Qnpw0Cg7llBK&2D%Sa? zuB<7J)eIyzuxCP-^2KFtoxo?W41G~hb^zYKg*3hfSN=hQ1?-}dM$u=Y*o7| zqQUg++I+ESE1;|ivWL&oq$;<0xz(3Te@~Xc`541e)T=V^MfZxV`_l3lG)x(;@LEb8 zNX^A$G~G6Dd`h}Uib9W4Ik;R^fJYIpv7F7L8BIXWWj+zQr_rCYi|BAZ)1r4QQU<7cFpEQ)7)W3 zFhkqL87Zx8&3ZcKSieX+z5GIeeDQ!Y2hq}xlI-t3_bnGEq@(IpUZx__PoRv-#!upc z$ctl4@|tKhkm)v^Wr^IzYeH7yoDZB3h8( zU_Jn-@3&VS$QRawP>t3;9Gs#^IX@SP>gBJVGT!U9GM&kPJo8k}U@*=H^1$`#Ucbje z%w&<{Hj`K3@>6Jki8A*V1Z#;rU(kQE;xK3(n0w*teUtCr*V?cW>X}U|`{r;_l7Yu& ztln_wdoIIWPtoi8JrRw1%Y*gw(5U2hNgO@HS3_=@D-*-dc+j2^#3Ydvb*;84r?-7F z^y}W-K|a_VC+lle#-)T(kxf5qgg|OgY!3vKqUDzb5n4AxTS%r9tD$6)=$$H>=EAx) zV6Ahos+)WY3>OQr{RXxI)mCz>m~`_oBHSbn{Wl9qQRMSG%jTpREv=u{0FNqmIi_DJ zKcpizaH*#k&Po}EhSkcvMtYHB*I8sgq{qwE6;;p^LJOj)!AwMTT0~(F2Y;A+x(ypX zzAr!~4iF7x%SNHQQ(Y**n&a+ktGJtQ{xGd!7jAayzdOc#=|~P2zMz(4u2=msW4}oY zrWsXW{#G4=xYVplCTt#PP`gsQ9c(rIYsF`;1AFrchYQeeSiGPT`3q+}I()eTGn{&; z=A-3Ki}<^z&jT*T(Pj1>NdAy>aLD9L)jfv6I zE`3&{zWFZ;4^+ z=oo2P*N{QJNrGkG&P4C-A5CP8Y!hXw8C5EvY(~D;q|aA;@OKA!@kh=dEzfcknh8u1 z0G$g0N-Q$p0J}MGMvnIxs)9!x(GQ#|Ztqubw!AEt7`uwFKy41r-^M<^nfK9AQTsEEJjGvf4C`&@0)q0GIN4?jo!om_?CkATKlz`n zKUyUANQgiz*}M3OIPNnSJ?n?@4OO5mjLkCYWk`T0ZH4xlj>bsUEg22J?F)*EdhatY zrL<#0evnUr>By#IYijJYGVz6}anrVMh;B8a$w#YeY#7UT#U`+TG=%BJvq~Hy%4RLa z9YEg+#4or1B#>gNyywv$ARWb`9;S$zmlT{DG-&8to6yIIBxYG@uw64in9=|=f%-C- zGU~NISB1gpSQ}*jBVDd>Xzx44m&g|(Nm)L2AbIbT_|*K?umAvqzIQMJEM zSiK96nD2my?>u*x+Y+YBz!-10*mm*t60a|wxidJx(Q$9>gdrxqDHc4cah}k;cV@3m zG0xy#6IVpsH>_l`CJ_OjfoYekDgAoMOf)@|d2|!UqhDylBFkxh`iw)R)U~m3tn*1q zECAg9gP#&H18cpKQ~5aV-j_wgIkiea*HeSc!XZ9p$y|;pw_ir3k<<|TGFH}A^{e}z zY5v8@(~+?xhd+!>Q7QvC1n2R#)G##2@;@nQ%Uhjs&*NQ9pF``d=~7)G;U8}=p2RKY zB@V#2t&faLu(trryI$RA$+9p`NyyGc&&GN%O{hv@<^_)SJ=pvHrxDRKYy;AJU;p*cZj zgBSq<1M_s7(Lw@~_v2^y3B9T#eJiX1OPmRkf5%&*d^0&SA^ce<>3jf{1fWVR)~=td zfS{f=Nf6y6LTpneKDsqKOW%qqzHP3}^r#K6@dfhYH#C7#2Cq>5hI4!cX@T=b3QTz^ zy#6nxcmNcz$@MQ4b$ML&W|McW09)$#fS5804kqHS^Sm2qj@fi{1`ancQ$k6}U?6{5 z=b#qjiobI2`vENYYPRv)i#SgzAyc|>bo?u`z(-&^E?Y9h8H(R=WO2obAEy~X~Qt3KW% zuc$@dg-RV8q-Lo`D0T-?#GzGTJcvnSxJ^5Wx3t>q12q7GRsspBi~H)dUWC3UWgIqc zp@kg(8|D+swmx>ck(8NysbC-mt_slSE9bb-P^Dh$B`U~GnKb+-0`;wDHGUXc1ZWTe ziKja-j!f~cNkt}#^Fc26epq**4UKQq%kf|{kieWFP*Zze286fqd3#IMl3MA!JVjd5 z4+q-`6m_D0w-N@V(o;Wmf5jq-5|<(EE!iPTrV6C|+K7H_4VFV!W$>h_ww_Uan+IR#1<1Zv`&8q@7^ zBR&x4T}I&7d!Zip2=@~ufzLt~%QSNd&^|xx^Y=4<;O6EY-7^Se$1x8*%l6aj39agTH8mb_aFtELSv+74x$Y;j2^*X-qZu%By`=YwbDL^2zu&vHAP#D>#UX-LdT zu?*c9s}wKK0B7#{?p%pEBvJ}Z(wT#%K6`Y-SM(t{nZqi-Q!CNR_3vVhN>EN$*3*`! z^Peg0ImaG<%eAqanRS#=rdwi}s4?9`xzRJ8Na+3Ga~9U5bO|$BySslx7YiJo2NV>E zSmmsxY;?SAbUtcmL?ObzH>QLyUp&eLx0Z%Y-IN<6`T1vyYqX!D9*7dvU)m-u2?#nV zsoP49N=Z#r94g1pUcVws7#a>-WGj7MS2Y1h>@f|Rj@{Ik-=k6XYuFCY%*^Nx5;kt9 z9-gNs)g>l+fhMSTfvlKR0pzH%ihHQdJu5ld?B?>z<6J*XR0PorPMS9>C!0M1$0niM zkC{@{)!j9%&Z03}51N3~56&5XjMJP<*u9snl@U`xDQ z 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 Rf$t!Q3QBz{;Q#FTKLB^vP4oZ& diff --git a/docs/walkthrough/img/09-help.png b/docs/walkthrough/img/09-help.png index 6d710307bafe471b7ecd52fce2e9ce2bb3ad7d5a..0d5793a321955f74f1886f30f31658ff821a91b7 100644 GIT binary patch literal 98968 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

                                    Is1E9(#=Mixw_t=t?fAgw~HHA1vcil3n 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 literal 116170 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

                                    aQTRS_n9Kg|YSwC1u;l3x^Sc;1S(jt9DssuBi z&mA-CG2mD*sKgPmtlgQo5TPh|xcgp5^VPqtK=$- zqz2G_4LlqyCw49)ls?%lpdMBd^STs)BBJ$n%b*UC9bkEF{505De&e(6@E9#F`(MqN zw5s0YlUGf{Ra4L80I_jWE9Ij1mgYCpM4jX1j=YQMNGetgt}4beOIXpL+?59Gc?JJ)x90 zhVH-+6yAYVS{6}rR@MWhGOaj}btx&*2fKkub1}PP?(<9jC`fWf%p8WYp-I25r90(P zQGeNG`M2A$w*PR{V36Hz?CvI4n)|^fkW*M`m~#S0gpR*+N`kqo3)-9gYdHW5hi1dk zquu=9oD?l^8o&H9qM-q-%0gXcB^u`Se)pd?A1*>I^A%2?I*9x(TPHkI6A)K{u%fcT zljUY|UTj7^kNrss#|yhqbPAAyfgYi}v<76`WGXPQu;k8Usbmo0%F#|SIuv~r#bj@d zT`<+q$j|qGSKNidwK#6}FVtF?+<4s_g$A%V03s}Dg`=+YVJm@76KJGRp(qIkZ*4L8 zS%!ZKe>+2u!y>8kyfojEldgspr&w6zEy#zeWw)87cOe&`Wl~=2@cq{XwnbPaTOphZ z^su7jw?3)4S6l8;>(p8Lhysx{$0?FIs)Pxl_V>Z>ti4X4_4?$%y%w408bw|Qefbd| z`NZ#evBg~&gcZ2KCWy0w$7=eHsu8isFPE~Cl|Pce?Pxy0N+wK1pkzQck-qCd{D7F% z6b_$BX(Ta3Dg!TB_6L`YgoetZWwU%a(n$W(NPZbs9=U#=(O6UP-;zZ1#++D`W_#Do ze$9*wZxWu1$t7JCAy0XEG@EMl2SNdSL-S1?nYP|C#fOB+Cyrl=i9QT=`p3?Sn!7@t z#1ym9(c|0$A|*)h@Un6Z5fLE~wL$dXg97OkMMcRA;B1YJ%lMIEIdf{_F=3B71l~0% zt?{drd`~TDx}Mk_%W7|LSB}PfZnRzaNIqSNy#kw~P}X;m91{{W6ewm%SgSsdTWs(tDE z^*b176YR{)N||qbuqShUNSLPms_Ahx+r;oRTz)o%;j;u4siQ2L>&rsU2-nrM8>*`;9b7``wDOe3 zHN!dgsjK=fDIBafQ#pPJHF@z|y z*VnElBG@55{A0E((uPGYuR1T)EHgz#|0!3hu}N!0RHH3>SlNhJ!gHSvjZH8Q*~vDqo{?KP%zswIs| z)-?(;N#bNOnYQW_GQ!%ly^q+M^)+ub)F!jF+_&zXrH_fcU)q#kp3d8c>f_bmEB^)l z4b6DWCuNp%6*S=$d#{JZm)$aRA|g8zlOAqKFwL1;&k@ihsP>_*Z{Wj0ZACp4Pb-Ypm_BO^H zgEh>XwgU~R=<{r)A&Ios)dFxrfht)=7G0?n5Fvm7X$tH$$p~E1TjA_GPY37#WV+#2KkZ_5@aJ`1WKeI!o$BO1bf~b;W;@0ajef4hhA&^ z_iw2Vv?L@j-4WU6IS00u-|Yw&VaPZ$5adCQ9K%{40wSyB_)j1i5)1m^c43K|(+J~A z0DUQ4g7NvSmK$a?sBe#RhW>v9#F6oaDDa`3c1Ibq#+Hj!3q3D)>MbWkmLFw`4BB~T z&wzrvW#v_i%q>s-lBDMKB@fR(g-cbrct&BrpMU=zEtI+#$&h)hxn4vLqYkrqQ82&MW&_AQE`n$Rb(#I_|oYZ6U$BF^>sw!25tvD z>mcvV$(%T!bZ6MN7m$lce)r+q=j|0Zsclk4_4a-Q@NWc2&M3bgZ%++tOr=3P2S1VQ zQUi;w!~2#|

                                    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 Nlzk{uDPbYi%anJzjsP8 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 KUZJkTwf_Omf<2@W+jeAJa23 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 LQ7pP(=KntczTuq7 diff --git a/docs/walkthrough/img/17-scores.png b/docs/walkthrough/img/17-scores.png index 2bc5fa7717d73a3948f20f605209a41171258bc0..91140668738bb5de2a864db9af6f673ddcfd9a97 100644 GIT binary patch delta 51157 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 W%qk{kl?(rc?7D)we2J`C(EkBoMI6%r delta 50812 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 template does the rest. No command line.

                                    Screenshots come from the demo publication on the current - code. The demo output predates the template change that removes the search box, so the capture - hides it to match. Open the live demo.

                                    `, + code. Open the live demo.

                                    `, }, { section: 'Student', shot: '01-logged-out', title: 'Arriving at a quiz page', @@ -209,7 +208,7 @@

                                    Sonar Quiz System

                                    { section: 'Student', shot: '05-mcq', title: 'Answering multiple-choice questions', notes: [ - ['progress', '"Answered" and "correct" come from the stored record, so they do not change with the page. With a publication total it reads "2 of 40 answered".', 'SCO-02, SCO-03'], + ['progress', '"Answered" and "correct" come from the stored record, so they do not change with the page. The template counts the questions in the publication, so it reads "2 of 37 answered".', 'SCO-02, SCO-03'], ['header', 'The column is headed "Your answer", whatever the author called it.', 'UX-04'], ['correct', 'Right and wrong are shown with a mark and words, not colour alone, and announced to screen readers.', 'A11Y-02'], ['incorrect', 'Retries are allowed for learning. The first result and the number of tries are kept for the instructor.', 'SCO-01'], diff --git a/docs/walkthrough/sample-export.csv b/docs/walkthrough/sample-export.csv index ab590d66..b856b153 100644 --- a/docs/walkthrough/sample-export.csv +++ b/docs/walkthrough/sample-export.csv @@ -1,11 +1,11 @@ Service ID,Name,Release,Page ID,Question Index,Answer,Success,Timestamp,Kind,Attempts,First Attempt Correct -30012345,Jo Bloggs,TRV Connectors Autumn 2025,quiz-mcq,0,1,true,2026-10-31T17:40:36.019Z,quiz,2,false -30012345,Jo Bloggs,TRV Connectors Autumn 2025,quiz-mcq,1,2,false,2026-10-31T17:40:36.427Z,quiz,1,false -30012345,Jo Bloggs,TRV Connectors Autumn 2025,quiz-numeric,4,1500,true,2026-10-31T17:40:37.861Z,quiz,1,true -30012345,Jo Bloggs,TRV Connectors Autumn 2025,analysis-tactical,Threat Assessment,High: submarine contact bearing 045,,2026-10-31T17:40:39.742Z,analysis,, -30012345,Jo Bloggs,TRV Connectors Autumn 2025,analysis-tactical,Recommended Action,Turn away and increase speed,,2026-10-31T17:40:39.742Z,analysis,, -30067890,Sam Smith,TRV Connectors Autumn 2025,quiz-mcq,0,1,true,2026-10-31T17:40:44.530Z,quiz,1,true -30067890,Sam Smith,TRV Connectors Autumn 2025,quiz-mcq,1,3,true,2026-10-31T17:40:44.790Z,quiz,1,true -30067890,Sam Smith,TRV Connectors Autumn 2025,quiz-mcq,2,1,true,2026-10-31T17:40:45.048Z,quiz,1,true -30067890,Sam Smith,TRV Connectors Autumn 2025,quiz-mcq,3,1,true,2026-10-31T17:40:45.306Z,quiz,1,true -30067890,Sam Smith,TRV Connectors Autumn 2025,quiz-mcq,4,2,true,2026-10-31T17:40:45.566Z,quiz,1,true \ No newline at end of file +30012345,Jo Bloggs,TRV Connectors Autumn 2025,quiz-mcq,0,1,true,2026-11-01T10:13:30.980Z,quiz,2,false +30012345,Jo Bloggs,TRV Connectors Autumn 2025,quiz-mcq,1,2,false,2026-11-01T10:13:31.398Z,quiz,1,false +30012345,Jo Bloggs,TRV Connectors Autumn 2025,quiz-numeric,4,1500,true,2026-11-01T10:13:32.851Z,quiz,1,true +30012345,Jo Bloggs,TRV Connectors Autumn 2025,analysis-tactical,Threat Assessment,High: submarine contact bearing 045,,2026-11-01T10:13:34.788Z,analysis,, +30012345,Jo Bloggs,TRV Connectors Autumn 2025,analysis-tactical,Recommended Action,Turn away and increase speed,,2026-11-01T10:13:34.788Z,analysis,, +30067890,Sam Smith,TRV Connectors Autumn 2025,quiz-mcq,0,1,true,2026-11-01T10:13:39.674Z,quiz,1,true +30067890,Sam Smith,TRV Connectors Autumn 2025,quiz-mcq,1,3,true,2026-11-01T10:13:39.934Z,quiz,1,true +30067890,Sam Smith,TRV Connectors Autumn 2025,quiz-mcq,2,1,true,2026-11-01T10:13:40.197Z,quiz,1,true +30067890,Sam Smith,TRV Connectors Autumn 2025,quiz-mcq,3,1,true,2026-11-01T10:13:40.461Z,quiz,1,true +30067890,Sam Smith,TRV Connectors Autumn 2025,quiz-mcq,4,2,true,2026-11-01T10:13:40.721Z,quiz,1,true \ No newline at end of file diff --git a/scripts/capture-walkthrough.mjs b/scripts/capture-walkthrough.mjs index 186d86ca..72f029ce 100644 --- a/scripts/capture-walkthrough.mjs +++ b/scripts/capture-walkthrough.mjs @@ -117,15 +117,6 @@ async function main() { viewport: { width: WIDTH, height: HEIGHT }, acceptDownloads: true, }); - // The published template no longer has a search box (SRD 013 ANS-01), but - // dita-demo/ predates that template; hide it so screenshots match. - await context.addInitScript(() => { - document.addEventListener('DOMContentLoaded', () => { - const style = document.createElement('style'); - style.textContent = '.wh_search_input { display: none !important; }'; - document.head.appendChild(style); - }); - }); const page = await context.newPage(); console.log('Student journey'); @@ -319,13 +310,6 @@ async function main() { console.log('Shared-machine check'); const forged = await browser.newContext({ viewport: { width: WIDTH, height: HEIGHT } }); - await forged.addInitScript(() => { - document.addEventListener('DOMContentLoaded', () => { - const style = document.createElement('style'); - style.textContent = '.wh_search_input { display: none !important; }'; - document.head.appendChild(style); - }); - }); const intruder = await forged.newPage(); await open(intruder, 'Pages/quiz-mcq.html'); await intruder.evaluate(() => sessionStorage.setItem('qd/instructor', 'true'));

                                    =q{iTa9q`G`0~Y= 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 diff --git a/docs/walkthrough/img/18-reset-pin.png b/docs/walkthrough/img/18-reset-pin.png index 28063cb1805b6175ffc4f7e0881e0f429cf7a9af..175c3fb05c26f18a147ca48eccc6a0cda936b70d 100644 GIT binary patch delta 44739 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%0Ac3J| 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 Quiz System

                                    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 literal 98581 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�>)gv;sT8JU|@zn1M#N zn>%<@?>>lxFgiO@ZeTXO9R(}}QuzMJr&5c~Ek?UQPYeq;1)An7_4t2T2tY*`?d5T1 zU<4+yR|o7EO1`p5TxiWZ^c~B>9)J+TfiebVBSgIw=8aa{(@$8u;Q}IX5tsr6 zg6>zqbHOl-3c&ZpYnnd!%)z?>U=UhXWq`GRZ?t*?tO73%3nLfMLm1XsrtL@;#Kl^( zDYiQ5JTn3hACmUm(SsQEyvELFA)jGf1D*#+5oKZ+49?460^l}Mq}93$IK~)E#{y6k zhJbp2$+YV;!1REq8>N_~x#j@923#9{_@u{aExyiqQfG;g&laPn+2d&yFH<5Xd<6yvdFVLb7nqD{n(9Eu32Y5-lvA|2Q z18B%I9w-`gs$P*^dyfa4frQwL8W&sm@KAl)L!TI(0YKY6^iOE@K`YQhFo^4cHE-vW zN(=aACRsrH|5@DdwoVh(Kk#=Vs)klL-Qe+>rJ-kV50!hJx$O)&xK9JEFbR3g;80)V zg%#|=K&*9xaU9$Zz!L@mV}d$AYnNTfhHX0x8fmDc{_?gO`{2F- zFx?e??>|yLTjys-z=t1-z{xUqhtqfK$&)AW5#^I?DWlzb!Rfx13x3Qj;x5^72?f&T zd&j?*)J{NB59`Y0>IbkyyM{c3tv4m}?I|G3$k+`pi3YXqM#AjTV~B~0`-83C z^l;Gg7i@BPZUcHPgJ2m+lF7d%t+=l66ds}ArA2jpn29C_=P~?2fP?K}Ux5eW7b_5( zAr^|Ti35dqHC$^Vcb|BZUQPy+LM_ZPLDx%|zyNE&gM;Ksn|i?2vyl2h0aT@XE2{j}g6|;^AgSXPX`7%9 z8R%b^95GKmj7wGitqUsJM{n04*Abb_nZksqcg5$UAxCuOne4e%zFiz6${XWGQ)Gf%7S$v z&l`0Pi@p>A0|I-~)6?O%*%WeR6QdwK0d@@>sko-!JN}6UgkKTZY)8+oh8cGIBwrv& z0hZleK^M0C=K(9@nY7X}L=OSFw+6cmTn{KhZ? zn?D?$aS0GK<4NuA|DHIqS%2E-qh(lj*(+3~uJ+FweAY5;fx zLm)bDuo=HX1tMupT_7S6h>*I!WiBx=)))j3H9`;t;iWcalmuduc~!N1(2CZGzg~vR z_6Y1DtBzS75QmTiloix&J1}^g<{ONKECL#F;Rha#M5ziqb(7jr!+&T;gockHvt*TK z_$v(YQ!xa->k%X`zDEJO0BEHJd>?T3STnkULB(JS_%{uT@>g&|k&1w=ERN~zQPP)h zaCj*1QJKx(*P%U2o0fq2&C_rrh_JwDE+MY%b&pmSDS+^`(d2+SGH z7hZ0=%Fc@CN`SW4e8NRqlBDQ8>ZMVx41(RGDUHQ1>6 z=JCE9pmleFbC;oBk)tfW<0iEIJO#aIxNrefT5h0Y274#J!&3dg!0z!2lY^IFd_t=-9~qAY818*YCE!6AM0gQBff!W!!`&R`gd%tBri-u2H0j zc&7|$q`K##|@KH zg!SSAq+|(Gfqg$s?xiYIW zqbF~pGkl4#UVMT}*IxG=9-g8*C?%rYk6JOy-fSI(=|Wip(|#bPg!Lp_Di=0_fa8j| zJ@8r%WHPsBMNmiK2O)4eNs8+`fsV$o+=+7%OixL=8+2KQ;(RpYrQ{4PY&0C*un9Hg zd1SH*ULi-)OaVIrIS>vft6C_L1L7%cSpWuPoD5v^>NM)`@E9JrmT;F%L0Yr%mXu5u zR|BO?gAAJaE&HAO7@r!m>=f8=dbX`YBB@Rh0sGg>MX7~ylP-`9@36E4Xa zICFkyo<6Y+2pa-vPlQYY`P*d>1|4V+Uu5_dN_Vd`M>;l0rNbsJCD4A=mMvm!^k+;! zmllbCHZ^rL$2AY<)Ei2%?`U(*UBv`9#oVrWweR=<0!6lUl+>I}L|w%NW^$tj-8QhlSz6Uy%qg04|Q z>t-ygh59;5=jO*~5;WXHIbaItmjzClm`a~+S`~;>=)awUVO;zbII%0W*Dg^}3@Y|x z*;32fwxQhVWfK&^Oc!)lsrEId-z7JpHVt&o53#ZtN(H$I2Gxwu^u8!!r`PVt8TXrBJf{!d)!hRLiNQO_Fgk$MLl-+hF7Y{Y?ESj> z2TmH4%#t??JBe#j(Lo1ONtRTk4-2@OwUkkutV$p0aFn_@pK@ET3WRCon-jW>`wv#g z;&8AgQhM2miGAhpEZ<#mll85W;Tk$9ciD&kW|<{P7yS%=`O` zUjF%sNv{dSjgN%X)btrJY$g=^N-gp)MC53Dw!yf(o1EoR>S? z9dC;9`6X(`t;=#U8{R&kucynoG@24kgeBxe9?V-#cc$_tKyQ6IYS_;$oCqU`#Yw=d z`bCEdOI=GYiNyRH)tp$9+`iUDb}<(hzErhcwsN^q;+Q{DVzO+&9XTOx+*=A$%DByG6zh1D&f3V6E%tF!*E&pan)Cc>RilfjmwO2?iY~d z?(sf~+qhZ|qj73dOD?CqDE{4_t3Y|&{lGpdl*DVU4KJK`fcXUERWQpj;bsi@wJzSq zBt?V^l7B3`NSO!6RPrq1_&J&f5#-}pTA00{iLk#zu!{8r3^w=Y6CMzR$YxM8m-#H@ zVyKjKuW_O&5C_fC%y%@4Kv*p#lp&j3>YrolW8agZ)ffGSM?I;{C6jZC$#^$~V|&eh zXE0P80r#57miMi|}m)QZT?1VZ$k)sLbc*_*b^eM^o5ir%(Pe&*JSa-k#I zStGh&W~p*94|V| zNY{uKhZ1Stn$`gV6{E_>BZ!R|MSb<&gSYZ#f0<)+HqAVa=Hpe&muTrU06VIJng_%b zp#F(&%~px=c40-_zs?LdL&g`w_j)xhk;hEa@9V!`YljuOe9nUX3R^JjamzG=8_0e& z#dh$=Qd^re2Y=O>bl&cCoMjJNMCZ=0U{jj8>5xiQ2YbH$%PQkId3F0Py;7G?X3SjE zPbHj%g08b%5;-d$dz4o3Uv5^Avmh4mZvVw>qbniXR{KZ|*R!vWKA_kZ@gd zxT<*F@Pc`o$l(;`hV9{cC+JOY(d&Jo#rTtU^uh#Z!RL-NAyh3}BBH~Q@BK^M-Mq25 zoYz=s_y$&Jfe2v}&umDnonIlG9golPX_^)0z>9ky%KWS-8yec0czaJK4B3dl!9nrp zC+Wdf(mlUULwe)M#F)7*EU-HJ(d+XlXPAs3l;!QWu0=IqJcr{pbBk zhF-Olwbf1fbNKn5#^PVGpIuvx0oO8n3Spa!_cuialh$g~dCw5m5mo{o7JrSjIh)8P zmwJsYRb<8~uLxlr$y;Ah<8*W518)12==Lu0(ISemUV(GMClfx^`Vs}UU zGuH@iOEuxNh0wc1S=nF%kF;%4!#(C*IMh8doz-S^{nqceE*^_BD;A@28G33d*b=_ zQ8oP}TOX<*2$$ag_%Q_O8Z9$Fxx1?L!e&d9krf4xis;lWHD! z#UiEli=O0=PK-IvV+pSIXzKXnqnK4tiV>wv#4C&5D1e zeKmkFsPM)<(4dXq_(qgCh*p@@P2htuULx;Q6}?C2(uA!ALhFw(HeprZ8JUOi>YciG zE}}`h(e-&%Xs8Ferno;GVHm+5n;g)lm=z&Y7B7kWEr|jp16%`*GKKdTm2eG@+IeYt z?l*Yl@(9A%i=Yo#loiJ*5Bu2{Q%~k2o2OexX#NAk(27S{1Y+t0N^c?kn05EPm8Z$+ zI8~SYst<7F>W+?Xc8i>0*F;`x1byoN5L+Y_hFBtc;g zU9OXSPbhBI-7)*JB%_=md7+Kc;yfq9O2{V0duiKQ`N}`B0AlkW`LT5Pv@mof{ZB3+ zQZdJTZ?SQ3HbzP)8!d1 zMZ$XqhsOfuw03T$a_TXmX*phd!tVC6Yyl|L*9B7N&5VfyfN{^6U$x z;wkjBw6t)QWKrsQS7}00k(SLl$qFDbM+K{Uy)=L~1%NeN2z>EfvhXEL{sc?9-u!%FMv?kgBxZP6U>*&IkL~_-cQ4RX7`Q>8|Vb&N*B5( z3Migz;h>nKEti3hNqP>$tYtxT3}hZ)Zic=9ASuq?i|IqgL2?rSKFu)iJ}UeGk+9zf zObB?G(DRZ6@3UN3wFE) z+=^ND*n0;LAbrF)?2#_a1F8P&ZS;dCa-H94RVscML>rG$BRZ1BVE#}=fMskrUo}{N z2*mJE=MTEa!pILMw9Vku+6+x##WQOS+nqH8li>^5ntnl07IvpRs(=R$0jX&Co%a1# zGH@P6Z-4QuQzgVt<0%8OfC5Wg2&3J+L1{R%!f6_tQkZ+B(Q^T)o zLI65;rV8*XkQ#t)eaNNUtXE$07cA>(VY{r)-D{9;3}YYA4xPYiAA3BmGtKGg=?Uj} zj?WqV;KfIQ9sLzRY>=h7%b5!4wp_1&#%MQWk?a7`dNYePB&iQNiM*Mc;7?aHk;utv z;#$@-8s1kJ{&?pHJZYlymFpY15+UmG-3z=eNUcJ zW}DDW2#4ZOCG}B)xG{L359SggCtVlG-O3?e59UJ1MuXjg6KyL4%ZoAp!(Jd7ypHCH zuMFh25Tb2zQHr?v8f6(J9K9gCx7HIwAFu4nedmNNupvQDodD@U8}VQ;l*7vd3bcug z2}8wgA0mICkHZfUVgphLL5wnyJuc=Sq_|NDbK|LaE$ zeK8%isNKrp$M(itasiuDASDzQI+Z>&4fe)7Fhsg-kA4*KPPBEIj4X&R5spQ*!>pEH{=f&r0{z(y8D9V zIh2%7SoLd+>WbRTats0$!bdP&rqWxZNb9}jv9PvZAM^70LK`%P=_$6eXGqq!um4oB z9vby;J)y_H|15#VdVhwMs5_1KPGdMZACFu8XdHr9A%&|&F;+H$?QN}!m+4$>KZIiIAU(+sK2?3DV9l0IruK~6^^+zlRrlDa@{}=S z+0mE+v+wZh6DO(y*R!8{?ILnU)Ofix<#Syr-)xEpRHd7PDSNlSf#tuNHyX zYm+(>d+oe2`$qhDZu_rRoHTJG2ol>F*>qX3t{9ipsMTK^6(v}ZPq9ure`MD(%>9c- zM{uIfro-@LxhM2not4N3xgYx@#k!nN?qi>1>g>sv%{CS9I{DS~&S@eY8r_M07A8~# z#rLE>5;58>gs*wbdQoT6iL^$4JA;n%yy|MwCqBp3nE78bFJ(}gr7aZIy;skqc=ijl zMy!mICN{Q_uU(IIn|W@~vv%yru9L~>$)vJ#vwkY+KbkoTe%sYHB4Mv*>Hg>U7cZmP zpl(cl?0of_EsK#L{mHO1q^CenP?yf4{6njw?UUe~hdn2<>lU~2Bh39h1PeQVp$sJA zCdnD852T2wBB{REEq9EpA&U-8kJN-FIiGZ>dPnZKbZ|Pd>Q+MtJ`xA%ne7$pEMoOa zH~W(E!jHw|Sj#=x#DT%))&aD*aGPS7ukArrsL^<7(A2aZwdxi_!G7vzT$kZ&H{G4IYg= z8|UX0(}>W+EQfjcb0f(${DrOIzOl-z@tbLckM0`{@6KDqq&{+st3B;k+$!3BhvHlv zoJMVNhM`_3v)Q(ND1O3VzDGLJsZtSCt5Ru^D$T6xg&^7e9$$o+7>NiqwV!kYI-KHY zZ;ADn$JyY_MmKhb{%qZAOg%Ye>kQgJWa4=1LqWfSq;5-xf`j(7*Y5U2U8Gaxfl^#~ z7isY?#V|DB_#+3a>rNgwG({lmvi)*YY^KNkjwy$2y}8}fUR4I~+-E8E@3ZSA<81Xh z9!VJ6P3{vh#BrTzmla2F-xx{CHEZZCPWt@yap0+1C9OhY2&xxRTaVhIXRR6B*+%Xf zRW9`xuBjK%cy1tQ%+y?o3$cs- z-t30G!?lmLO>(aq_cR^7%Q-;6=oZp3?jY6bo=)%3#OF1qsW+q-^0}5mYPK z|BkxFRj~eKrADt)TX80A|1g{~*EdH#t)TDuaB6`^SOuG!{=U`ZXQSDk38ZHntt&p` z?Lr@&i8cHcMlbwFq<&NB!FGn-JIv=2~VKl$?0A*qbKewCU2& zbPY2_DF#>5j<~1VdhxO%$1@d|8SX zi$z>}cd#%`#9r8Tn|7j+fL>D;JE~8seN*c$X78uRJEq!>4;jIOT932eI!F zyBPIlIB(z=k*Pw0nVuBk<?r(lqIP-Jc1PFi1m$~2Vp=cX;o}l<@*`6o zA-#B3U6vQ?W6PQ6c9h+{bTqx{p2dr83e4)`u8Y;C3W7(zcjBIJSUMb!SB~IS4UZJku4;R3VtLfi9_)hq((nsY5HGWc<-W|M(!zm>OS;7} zyvW$M*N78yai)QUR`*5O1O%f_hm+^8A!|KgBYg z(?PC-{(yv{f=aE=#kw4ZN>hH0A=DTq}(y=E^P{4WSH2lu4%Yt9S zg8^UDjH9u*qyH)VH#X*y_LpS+BwCj z>zFDc+4Eua`4@+KCwi$k6X(u*!?nK-G!LeJIOo&J5^|WG3U0)oTK@v))8{`Y=e`?W zl&6UF6Q@BdWlMtxTLCWi#|jm&UbYE=Kje*Ky{2etFHr+>aKW zJ4xz)J{6==zYb!b47;=2?<^>nz-REoEjG!?@~#MNU8}>=(ee4tH0ucChNXnu{~Jn%s+9It`;1$@eRpua^gGp zF-pt%$%BH|2%hfF&+hO$@q#U!)v{)PCe{7eVZwG7Lk!wlqk;aMr~0O ziopsA=G>NVKi1S)CA2H`KHWO55E&amjqecm9;^+Oc&{GWSJ*MTlF?hGKzVcMwGp@f z7Vi*_E{4EQY^P}!Bh)j~ZFQOPEZRMB0>LNN$*+glsC&}9IrR3W^gNe2mF`PFL#)kQNw&fw4dNV zl|X!l{jP{o?x^K*(Ssps-J^cw9@^BOm-M-#Whl~MIyE&tJ)I2(z0F)e({^;upbNm3 zL|##({r&h#<%y0$Nd?|rk>ZMj9|MjBXnp?sfP>r<6mXzpE9wdEFN;f`vf1stbiR0Dw+ThK=QiSrpcHJ0zH@pvi z*{&$1bQ6ok*Jit!o$fGpI_T+faQX&zvJE$;aK0~eN;W4Uw1k_b!buXWPxXIdQ}ZH& zQLp&NM-h>EzL2J$>B#ZE?6?f0Nwx(x(MwaX_-ZD#oE{>0-aRsQRb+83duhEOR=+3f zI9KjH{a4>*F>WdIV2qb?<$+_gA$F@NuFdNF0zn9KlPPYFY3QgnimREo`rD7YnS)58 z%KSFF^PqI^^U)g9szfYTL$xBuUkV>soiCva-Uo|xQjw7cgK;8jyU)Lg9bPjfXIiN9 z(ejKRc3>nzKYiqM(RlWN*u;D2U4JE|xo*p0t{sW9#7dq{%NUwiqsgWX)0}fLaJ{`I zr*IK+Iy<|h$!~@a=o&n5a=nX@*44D~$~hPEoN#chQ`};QEZR6`64?Am z$0QXt{dv!6H`;aRhAMW^11qmXP z)h#FrdF>B;`|ciJrulU{(*F+kY7lOHNK(2;F5nU%5VC^L7!YCyR&NN~@sm~((dz{} zoA~1MR}_kx?7lyD9`0@zf|~cY5`D_`uYZSM7g;pOdPHu+XJcDZU93|C%<21w`cj0@ zMA%QW-}|HH^SIyFgijJOYYYz!oy?q2P?)Qx+@9X1D`))v{aSjICJ!wrC}4J?M~k0h zCXK}mF)CfZ0=||AHP9FJc>c`dIxSvk@*t_+U9VB;%XL_W_fUct45IDx#D1y$`4|B{ z^R;b|CDEqpCv3N;>(6j$zo^A<9!2g6Zqsqhw7Nm=Vu#+i7OCSUsOQU%7*7{}M-{Gd z`_rZ)-Bkhzze$aIf$^nhQ7L*O~m4$T2m0 znd#hlcKnqj$OIu9l8dtT<@)sm-DL_n3hV~TWCCnf`PD6=Zfp{M9xv`3%Ij#hD8>j$ zp1#!gl?-_$OZA${DBS8>E$s3{aAQAiRDW=Gs5gRE~@m?OzgaS#|>! z<~Cad#ojkYy%P&6XyVzMKGKOS9=P__|6Wiu^;O>(J|5U!=T~Y0u6TRvLNRIeZ`y#b ze4bdpte>!Kf3Ei7r18N+f0nt`y++r zCRiJ|%5S{BCko4rMa*#39xZHE@yWb%NVE|++YbR(=aW7EwOCz57f|2U^Awl5_Rmx5 z#dV5hn}TJTq?7w!#^zC6zM;?3VdlN@8)qY9W<(+<(tC{u#1}( zcrWN3hiq5Qo~y?~N;ZC%|JWB%m}W<-O~y;EG@WmB*EQ*D^I$OP_$_}St3;n0zkxr{ zfCo_(qrRA`(lNL#mRQ32-ERYbKlWDaL7?$r%1iWMrTL~oolx)Nw1D_do;a2C05y_a z$aKe1`R8~f$-|(ZU-WPhaBp-WXoO1XC2o}oC3>FFTn~EegwFIimm;2$m!5k+V9aOt zPMN<%x(#1`5{0<++Vm5PO#S&AK{c+CJD;;jQPi(;^u8`tWX!o|94mqg_THS(`@zmI z(0#-I{fi3J)9^@5o|b`eaAy<$ctYa)?K z+1GA^Wo17f%~kcfnI>8fhmmeoF+lT*){@SM&8S?iDC#!Dy>sTytwmh=?iz>2JCslx zJTA-Ue~4bG9E&`aZu52>iU#pOOs_=zFxY`D^*&Oza98-#m?>tIFE;KDk~67imV08{ zmxoG`QFHk^o7<;bmh~LnSQ)O>mWEr>&L$%fV(JBoru$*ViDd^f%~MGln$>c+ak<^U zwQg%Y`@KfdO$HKt+X#pB`=XB?%zA$~3H`E4LI1_pJzx|;bX)AeFjSzB$;GunBRF?q zVfr>O=Qa{V!ckT{OjxBmTozWdKkEsCba_(40p>w0r^i1Kc?HZnyCnbNK*N87X+_Uo z3B;~=3vQpm}VraaB%OQ=NTq<^G*PGL{ zsiL3>?#)!bcVFgDtU-1S3<}V+(wljOA34RAC}LAK#_cEb0SOB0MR`p z-cQT$p?E2u9hFsKwm&`bMYHSXl}@CAVcs3j&6WYfK&$hH;38Hn>gZs=K}zfNRUL{$ zzSlWyLQ%_3z3?u5S;&br(&ugK9dd*7^=!vZxTvS8cCl9Gzk<;9kG`P@9^bcHzpYsd z<+&xAHSzAl&(1l1Pri=*hfW&Yu36>gq=;+>d55eNqMh4+oBqOyXf|iZVC*AFZTZsm z0^tCcVKn*-7rLw6@HxxW4n0YA=~S84w@X}X@gbmJ4qXWW)4q&fjy3P&*0M02 zngk$sXH$mI5o)*<{qc)(EPslZH+xqsPu9PO^ zAqNy z?OVEl-NhO?&6W9rhea9kInS+b)7$TeD0ly`?hj#nvakxtmeb6;Qyg4wg$<9Vo&WY# zcF})jdSCzAOiyium@=xjj4v~l1umufEo6HhHxdj=ow!`1e0D@jXiDh#P<}sS}yCHftmd!s9Z(Q%F1HEO7Hqc zMZI}iI15435NtfMn2q?tZK8a1itqHVMj@R&zT13qm6-IB#v}4My+RV3jpm>u!K#?V z|0re|^8bB_{r}MDcdU<^9hpK3^Z(M||Bny+?}+&S%@e43{yQpvxJNi5>-M3ACp>xr zY6%~@RbFqDyAH`t+&oP5)|Y7&o{g3@+!RUfx&KrnZCq_Uk|o~u*zS4Su2%a})k)ps z-P4)34V@R`n?1S?YT>(*s|W)hgXx9eh$wggizqd#0y5jbqjpXl%{2{Nzj~w(3mKxs zE~yu0?Hh}mM2?@uz--c+tp59B&(*XiMWN2;jwt?U9lMVwZgm`px+mWWns%>cjaF5TH-vnd@G5Qh zByCrDe9=bXE`}~&Y$&-O9AhXxx~OOxV4n!j@#r)!7n>h~X*8QV za&AyiFwe1+UbppDk~&rGC);9&#?l(ErWV*3zQox_5PDA!W-7!2Pm5k+tQ?kTLCDD= zbh4SOE6+t+D`tITD_hYT=z#}GhJQ7Ud$x)~jrkXhJLld9W6^XsjxbUUptL zuz+^0Lv6^AORJWF?vpE>A<~_`K8-Mnem&HtN_ zi_j%i-UMxT@Dw?xScnzP^zpKFrhI53%WMK zT4nn=-rkzpNj1(3Ki~-eNX6_X!@lee7RT&nt#2ZKK31dir2KCTD^%~iaaRBN3JrAl znXzP7X2eta8f=8oF~@PFFsN$6MLtlPH}RgU7pOqBu20RrEtbgWk2;ud*i_L^kTXYh zhCMf%()ZlDX<=AU6GOqJ=WpGvhETWks(}frr|2?%x}Nx_+_g>8EZH^&UuwBaItf?( z?y84$)vGYmA(h>%IQiG%yuyDA-zd|S)dwv4A5bAD8>#^XEovv>@0(WSm9VZ%^HF?7 zt3Vy5Q^XB7=B7s%9->Vz8vN(3WWRys`R@Wr zhTgd8M;|WDikJCZEy>AbQht1BL6=INn?WUkEfgQCy*nkwCBe!7|KQp-20iq@0MSK% z;(>eSOA$FQ=psZ}0ohI;wtT~_a}qn;l;y!d%GICf{OL<`t)}0fD=)pr8{${FgTJ|| z+T);CNn{*9@hJSe#9Hk!FA+HtL#G(SDV4I`8>`>!x-pO(US}=4CCiOVr*I|LF8myI zT`pGeZv!mx;z+F4cq=Qlj{3Y)*W26s%UC|^nQhtr40oPf##vXd0}@s`zvI<?A* zRndoD-P*#599_lnNZ7|c-hI!OB}T|YPa|vGSh2^RmVtFNmnqlQ+3@gi15B&s`eNJb zHZrh|UH8|=hV|pf#*Mz@nftjMS=F|Om8%_Y0-D?eM?Kx0z0oX}!vnbmfp~^3xH5+q z0T^wg(5riDX;=3LJa0He|KLP>`3x>b{k>lQVFP0dboYZq_qxk2~+!l}O-O2MWM_8jAdevo8 z1z5K6eOMgP#deyp^&4vob29rCU^0+#(7J9L=*3-_avpo%o=EW=7Y`>Hb&<0zW4{eJEZEtI5XPJ_{4d{QtJ@3}LiW+N7Z zMYb{^|9dfSiNVR1(Zj==NMf-#)foLq|HpZ%kZdLt_lA2XldGC1;N_txWe9(nO3YA5 z8Sk8PWH)I2C$?u`duiRX(#bHC(XnE zXLMF=;QeX!Jzkvp(xMeNkm{CjrdWH}{=r9XX6?t!8Sj!YueNT^Q`cJW4_5ycYp!2;t)vif zKXf75t2Dcx|C_dfH0?%7^YV-TdQZopeiI#l@?i7u`Q>-A%e@mk^K^%xz`(4qNvr9N zv@11V(oo#z9}Oqd_goNSu7U%Dp6AP1+`9}Ub2AL!F}=@C;`tJzBSS_mV80$r;mxS_ zQ``>`MI~MEd?V37knsKQ&k~h2)(f+F#~`9WlQ`F|PSz4R3_wt^i=|gCc?dD-jS;zC zkNq;5TVa$!D<7j*Z@V&Q)An6yQ?J2(qF8IFk>kU!_ogcyfm-GIdG~GCnTCmS_B)wUGFM*TelKKJy20T&f^7Nep5hTlQS5x!Mq) zU+M*d3F36BRrIAS49;bs?s~hbzfkh^Yv%8ZXz-K)_Uuz6WpMAJY^NXRA z&lGh!)YD0;qN;_aH7r-Guh7uLhVF|?Gxy!9b)OR4;n5w#U}$K!Hj5$k_8SUS;;LWJ zNw#b_J~f)W&sWWCb=(V9T#!R(IFK$;__Y2F3 zBK#DeQ=O~b;&LVGB1Vm(4>_`tW&)IypSOpzc!*JB*yvT#T(6E-#uHo_-B-`24ETy2 zj~3Ivk46lp@~LJB3mgppHthU1RhC6;v(Wg~7a3>2QKR@!*?LWGWHS>2cMB(Avyhj@ z-xHid{p%mx4cBk;_UisYw$>eKGnS9B6BlZF4lb_WU~k$HfKmb<;2xsHm{CTRn2jlr zjU*ouxztPMG94~SkP0Dq=t<4=z1BFT>BUb=9d3RIzULPEMWpPx`055r zv^#agG0_M+aJIW?g6ENS=d>zmj7~-CJ7anFD#D)Y<28GHrG=lzBR^@dWQf;&=b8C! zh;Uym&!k!M3b$S4ML@P>$*XhYpIHACKWDwqQwYW+lYE=?E{dksnzFMenq~yAUe;A5 zN9KFw;TzXg>xD+Dm`2APKi>fFN@FX>>9)I5MflxyG!6uQU635BVxVHXb-k6zq2GKJ zhR?F-x`uJt@_Fp`;-FZ+MKC)cL=_Ci0Y+A`zUxY$u-mCgPt?=re`IuIs3S=Dpe>{y zUgFTLKX(p)_v!_0T(n+-)RT9tKf?PP_h|y>C~&9?2?)N97ml<+AYICf&2F4#YUKMu zc@exk3mh0-fJjBg!CDK zLOgTeA!n#19|(AmyOZGSkmP{M{fT12@BblHC{Hr52) zl{-zsqSeXLKCgSJA05!w3s_&KmVMoG_71H(^>Qo>^nN z!_H1ABb<X=be7k77nuJ*v3c1(WJ3)IIi5FPpO6SAc zCV!q$^>sGVg7h3#zWp~CoybojFx2l|K+JNE$lDim!P->M-2!3*I;GzrUuS7mn)I$# zMy3loQ7iO#8(vUChlw<=qL3Pb(qXgT$_YajZl8lk1#uof8IQDF(Ak#iq z6n6)QLqDPGEt~rfVs2L7oTI>6@{|#hn%TIJ1aoim>&4@yL1f(0P+?Tyj}%}=Qpz#oPM9P+DI?vI%{n;M<^@)X=SUqh19IR6~^6- z<>7j^JMsN-Oj5$z+ao!fx>m2m+CuLJ9Yd0xVwtbSSa|HT82@SvfI`WBxE)y!1^gM$%+D{MT z$u`;2x^hH=>n#&9M1>4t9j%htRdU~sDW)r1b{5=W7W1JLDv4)emu|!IF|_RO?kFNL z!G3_R|8nS7P3wYIr-pkT?cjj zvHF(``PGW;c&V-nG);g$P`vjsY_gw~^J50m|{E?vmTFrD!LKZ8A^l%%8@HxL_Dq|~8>$s)b8zrRhfJK|Dts~`A1N26CvKzI0? z=V{4YlB1>X7HGQa)pmbD@-L?J1*_~nR%)0C7sU+DIPN=vRXt=vCHj7rbqV!KO$&>0 zzk=uhuWoTc*JH{N7NHSWx&6e7nbXZdkGm@aEL3dyyX~Av-9H+Xl%UbItd>oN*kY?BY|;P>Lsgc z8Ea%b(|TH^`BAiS_t4?A+pqwqM=d(ky@y^ZXk3-|raLl_OvHWjq7;JItWwTTXfE}c zSGU%ZYSMT!`c=Misth4~-eD*!K)8&{^>|q_5S7Y(+f*@uRRDzi{h6vr3b94|fgrcb z1s9Y;oS*G_RL}6g2N#1d8s;qF@H=9)eJ4x2C;%?*l&6%8YsLBbj}K55aZvbdjmJO3 z&4J|WCeLg8GlH)#Le+~tFm<>U(&=_jtIYxhJvg>(=3WD{8KQdL<5P7yyM)aviAKB< z9whibETG12f0`53ygXW`5Y>b2tKaLsB+i@-Y+F{b+x@C5o{$a@RX%bejfO3g;mZv3 z&&g@?0|mCMy{rW`a3ppC3L&+X03w-?vm;Kp-nVKheZqd8=OZ#Oiwxi&&{pqhEj-Ew zdQC6mx|6vdkY8#1dd~$}v}7+{MyHB+pBM1~89jxs7~VtUriY71r!c)78Wx(Ck7S6$ zrdt8DWO4DNr9*A_-Ti$kPtht@bjVNb_&&NS6ZnHaw}rqih36J#|ID5VZzxe;e$6U^ zP20V5hOpaq(V#4~?B<9|B%aUb`TD=b{rTU4)iB_g0JJ?-s@jJuJjWKR z+3J&RDz|Ro?DKXc3d(4m^psaPQrOHOe{ z`w}^t?(y9VjkhGmyy2aQYtxSBMS1i;Abek99)cyy^cvvn>Ryv&bM2>{WUz#7mmyuj zs+&8%O_ma*xSv0NuKo?rc@pxoVZfqYy8VN#CjJOZ=Bq)lXP}u6-E*j6FPS=g=bGKB z(*3q1l#jjlDKX)A?LX6nT-=#5(Lo}U>f=`p52cM1gI|I5I5_8+#uBtq<+$@6Hc7qD z>B(d=*_L*Qr_qLDDT4o9g>-m!n0C?GID|S6HD-&yZ8BN{ziajI7#9Z(D^T zJg>bwngD%S``g54vjDdqohRZ>Tpx(8@M>b{i(_8b|Kak~L_ojz>b9c>IqqyneWDn~ z@5`2m?jPhSv>$r}?1KLc%>BrDp{d5P*QXuUo$Z8jch925xM|IFFZfMot4wNur65ya z{10jJ`H}UK$c4{;= z5k)ECH~WU7m<&3QRXTU6n!-hKZY;2v&TqYHQ}b0+^D2|MK&^fL4puMNxV2~F-Hv#( zS0!~1h&S6clqMJ=U>$t@AGx9FIua1iYKMr>NPXTt8B#=~J(u{Pi*qzWi+=r z$C>xN!xn{ynCI2_-o1?b9T6Acsu*Nk`%U=8wbKrbkpqJ5Wpr{$%b?HVz1Sm5jKDi$ zkXUNL@v}UJRjIHFc5*QVROq`|O=pWu$^J@%h}w__x)73!+E)%%9kCl!{M|5DPGp_C zT2-XT;CF-G?zXqP++y7kkC@HVbY5^=7+P0Ez1H!`gfwHRqXN%h_Z_I$*NOwu>#Q2w zv`TO->7(rm?gJt8E8FdW)C_M_gh9^LDvAv2`vehg;)??@=e5n2fh`U_QRlme^j13< zc~}Y`B>uKP9Hb?Bcb@$#@G4>da5iw~%msgPy)ncJ~xL zm5pH8DrdKDvm~fRU%)58wedz%dW1(D!pMgm+`%MCfkzJT-BXQ5$6tMkUe!v!B!T{a z%Rm(|X)|48JJRT|#jf)XWaKtaw<;~yW{Y3ASOvWU$nrD+%A}uvkdENR>e5(t-O zZGLLE1*A2rVsG8=&TowfdEc_BFg#vF4)^G}nx7A%_fyF8(;{W&z0B#Qu&tMeDNC$~ z8_vzplOsmcY@SPRC7N>@CQuBCf9)oo1--t~J`QYVLZelMS@bot*&lNno(BA{3eKuT z65@iVd5cdjWG90HZK%QFycKRO9s!$5JNykHC0#W_!4>>9@fs_becibbl8rc~I51W0 z|F~3-y0DNKDSJh{))JS?Ma2w!1rNX@?JD@x-1R)}K+k^@V0v_HWR36!RkQxsgB()x_{=xO8X>3nvfWpOvrahfj$+BQZhhDsui79+VsM-dlWUy&vWXT|^F zxO)Fc)NL{vHZrHh)}4``AtUTVYnra~HwUN8sJ`TP@u@6SK7Ml?l+~ywVYxRbXc$$- zhPJCi+~IR&wU0-rsFn4u-?)lF#Kwot@%Um*k+gm z0|KH%|7}t7cF9gQnul#G3;f4DsqK26o~p)Ct~*=!{Xx92X@0zW0Q_$9>>l4-kz#eE z{tSG)PIkcmtu61rL;v6O_5J_v1YK=Lqq*`zE{BdPz5j~>0=wpRFk1rD z5hL&;AfCdWSI5UIoyw~ekUN~sF5pme-gSH@;RAoarWef7dgV7-q*YG7NdE%;l`Tjz zz|Kz>|IPxMA)0*i-%knuk|g8xo@n+B$jwdxln9qr?zQ9gFd%84T0Py`{hkA_{$>Zb z_W9~BvFU6!i_Ind1_@uDZav!?NR~4C^*(PCn(lGFJHc%Zy#wS2B=Q1@`Ah5G7&;SC z=Y4I!6qI{Qt^lK~I0rn*8-Be79DXg_`YW^e`M%(9cOZ;Jtoy^>&3{`2%H&e|$7k14 zL)@dqmL@ltS<2KR+U?o0iE)GFOeJ*gVEoq@NSF4T13PI~qlz4Cy0sB7+o`foX5k5I z5nOC2!2Xyd@!9B$i~HbfMT6GNknLFNw_yw!u6~PU046xEx-5BhFZIQ<5HhNL-W~r1 z?m8DKubf!K{Y>bnITjGG&B4^MUza;$-Rlp49p1y~op#4Z7=7VEKl;kVV`$|+)>;zb z;u;my+dPY5P=y1V*|a~RYtv#{shsqB<@TtJufMzv-iYro>@^#oRmAw>VnhJJy%4~# zg+?b2Al!GFALTo+3o_c4z{%_z0YA}iUCEw}7~MT0F&F{lComuMQowj&kqcWSuxJ#m z>!~EL>Hts|cn4I~aMh5gZneb-5QvlTgh=pG+n@h9hF|>r{qNHrNuA72EK+Msm6 zo8POXGGuz%pRV^h_imp3Jnb0-RVM+PYA~^nl8|gauGVUfI^;_%AjlZx!u1}Pha7Ep zm5Ley4gf+==E~!pCH&7|jx{=c+o!m(nG^N__;V~82>z|EP&^u$h(D!n+gZT?CIxlB z_PDTgmu)6MCl{PO4*UKdC1L?wXtwN=kjFW%)ohx>AFUNDzj9vddF@;|oLrytrI7}Q zEd(UYWrAs@{g+0E4OFVFO`T zO6x~+bw?*_-M^-}hlI!K?bblaP5XyTsu)D{nIFPSnz_aY$|UTsKr+8gf8{^?f-Y<_ z_uk6jH3WXgugim+-3|RWa=l+Q6a_6%%_QfuCKZgJw`ULLPN>+PII&>TJa+bu z1fOuym<{0G$Tbb!0&+$~bh$f$HW!3*Y#b>fGrR&oau+mN)XV*3^=~h%mm#zHX190+ zpJW2}H7}P*kIy$FQ7-)gbE8i|=laa5&6_n-`XpQ?$T)m^Z9a?xEalCTHoIxsWqJZe zoR9WWeX`uZ##ulCyLh(IiDfkunh_~&4h$AfGCr_cy#xo507HrZGhI{3;_tF*bS&+m z`+yH@+DZhVwb|DpiLhJ*Xk$E!7PY+c4H`$Y&$2PZPSC2RtAaA}(+9A-l(C1qM)(;< zmI^7VoAB%Y+bb3wSM`7(p9KP20W|$f>nQo7k(}nPpkwP7_13o@`_H0`i zxg49ns^9SM1f;WGn3(SB_I6B>h$9$|QXcY|$c~dE^)>dloa$&A*^dv;dt@62z{cWd z$XAHp1@Fw{z5`93}ywUYl)oAa4kajgZWUlhF#TsN)e{po>@17?$!!KIQ@GSit-3K=?q z@G%l5DTpA8DQ~`+4P}stQ8F_2*bi`7PyeRU9Nfx;h<+KR6}kvOb=$X5q9Dk_-F5{l zE@1V`@J|U~UYi_uxQzdyH!_+(U2jF<777Riggv=b_4Su_*AXUb@|#bStldfVkh{oKSmMy7J6Cy3}}J=Ut&1l?f?ozGmr1+LT@^ z%eb*rN=v|o!FG1;_pKtWmPi;;Gm%23{LJ2R-H&q4IV zA`={6&tk9u5Eq0bP!S1-7J^(7s#T^ZQ8K(yKalo2R0idP|IZhv+j)ulUq`Y7`=vA% zsTNNrb!~8hCEvOwbH7}}e%}jtkG)_Qt2BDIM3^l5E-wH<|&f* z7jVd;Rr*kIew$?d@y-?Fu;Xx{DV@gJ@j}31vzm+$VWr0nwwbjE->8MNSP0IifIQcf zJCw|glrti%J=N;v;i$xo+4$} zXJLdFOC^AMNJP@fHX+_*Ew*^XZVSJq;feqy5$ke`k?h4S^uMfLH)lj*-p#kdIu~(_ z10aND(#qp1m1Kx`Q13)g>(yH705%_iT21QE;<7(2;n`<={Yo*3$SeizT`KXLucU&G zJzo>*Xp|SOrN$uuO5{KWXi4$5}W4sC43gmC?up1 z*op}@7oX&m+dod-aiyppd^DI{J)aopFfFmcoob-&lU5X z_9j8-qxT!GH0`f4AIfG9LMM_m2|(@uOYj<`?NWobj6xzRlnzF(+lx0Wm7j+W{z!(% zpag+5zF2S9d7W%UlBis7{r`PKCLH3_hP2-ms3Ol1R3ucoR zv=2t6^sNG^XT;6CFRoX>p3mh_Z;Od5i3lv?jMs+G0*7<86+kuaH}zBA7hYmF=qw>$ zNrjvTu89~)`l=12un(;6J<=Fn_#TioRtGsyw?d)mLL-dMR3NprN3#M=)M+F2VE2Pf zuYMTHZ8nf}y3xNilu0p$Nd;wB?*SsIU7rT7_x0~n5a5@lD~!`~0_?uuGF${=cN9?e ziH8Kg(zLbxogVVbzsaX}#qOg_L?U*1`w2CH6n_LeL3hV>Rs(=u2QyU+F-J-5%u;hW z)YaK?;47<%ftdXLj(KEJv)Lc^8wApK=frC-{}Y(2JV563$Iyk}Cm2#0A^y)pB`FC1 z?+=aq|5jW+E77Kr3PJ~4qWE2o45-ur#t)29j~%EA0pf{CA$kW0o96zq`CrV!On}2T zhcd+&85v){9{%t7mJrhR_I3~{=bBt>I)gBb-7W{eq%*y}ya81bH?&ZK^ro#*&m#S@XqzA>NMm_RDG;kP&LjNStsIdt~48wSaGy}JY|I}{Dc_E}S9Iw!tY?^S_C)&QZR z++lhDfY%tSjNf)az;1G~|IRqeGs6Tgvp=1|iy8pgE`)%LXLzE6Nv2z2nA0oS-f1f= zToIqVAMf+z$q9v!xW~mlsP6eI8iA4rF`u<13KCeL4=3FeLXO+m*w`oS*&+{DYgkoj z?4KIJrUaGfLC-tTAAtIjQ4KT*?1=($F%Pm1sLHjg2!Qt>SM5#|n->HG1(j)67%jDW zfhlFzD2jva0x>ZMf+Gmv{fQizl)lB<=8>Q_J5p(?2s;595we0 z<bd+8Rd9@aSim1wtEKeTrOIJ{1Q z)~{7g6J1X2#tW(zdYfX-K7E3peXTvfCISzYWx(nlJ1q!@(uL}(uI;v<>7Bt?TRqX8 z@Lw1M2pnxfGTm<5!&F;$FHl!RGZ<9K`%j9i*4w%4+%_(1zD+?hL=>Ov^>tN?=S2$` z|BG0eh!qB9aw=5-3!52a;z9Z4Q=2!LL01k#9J2;pNSJHqm z>(#le=7$1PPC;j z2mm|&1g6qssRfVNtcJ|v*xk0!!RTTfMMzWWLHp38pnP7Z`gXS-e=EI>&Y{T;De=sm z-!~H<44crL*q=KqG9bLNnFvrDm42+@YPkwP!P_Rjo?KdLb3fmGg}~8rhWid5 zmylKa`2KQfj&9h?h;6(?#{ql+)-eZ{y~*#k5%T3~SA+?3|T4BIIbU6 z>JAjt#kYE68LFay=mdQ%hGm}M7eEHz09rk`tDM3E;z@G1JMP#u=nFs|{;dZjR>XJE zjpL>y{q*xE(0w4ng~Q%q2*#Ug(mz156`h1P!oGQ3matLwM+Zy5*R#U~A>br=a6X!h z7rx_3Pdo$S7!;!LOx;e`<(=<91=e{{q2}wva9j^ZN?>OID@}9)1azMa$FY5^rbJ+h z6usF-qVW98oD3`-@zbN=4H-OhCW07@^%_cH5%r-w$Zu< zEfH{C@LC)y)D-wesKDv`_d0tfrkW|0m(q7>svpjIZhj5lE79gvQhT#_$FcQhB0R) zt5I39H+LP()!9t{ej3{uhM4JfL1c~UOCBbv)O@{}3a$Jj{%()d^Y)+)G18*2=cOMj zjXBuP^3sz(CzLjiM^6I&eJ2UNk{b0o?PWk@SKjX1?B{43h@z6pQ;4@9HPS6)&+P>y z=8MU?ajoS{k9aM}sK%7Z8WwIQngE9!NP_8>YAyjPVVgFLD|DOrBHVbZ@-3Ho@5h?2 zS)7~M>li3a)BqXCx5`fhY? z*QfcURcVao&;TNCdUiER!+Z;cScKpotase+ZBVF5^ud!M*e416%s$%|BdD)v5sQ%H zmM^kP_vcUyB6oHmHc_adiLX++ifSdyz&yfR0K<9SaB(mucT{ zKXGa2=DuTd7$~|45{91{`apNd_r9EBlYDG)W|Itd7d;!6TA^z_?PF2TS31G%aCk8> z3Lrskhy7T-GH6W+IkoNeXTR%fKie6bk=-RomJG2y!Lj=y;O$ih3_ZPr>rM!kf_TVp z_ElV(?=S2Y`@npF61s5!CKvJ;BPfNvQbDHo3j)m+LWgOY_EEA|Qcx&HD6-lQe$m)y zp*y;(KMZ6<%7dTD+jK&*dCK`c8j3n{1gO)wdhHviA8Xo>ls0qSnIpG%+kP zsXVG8PWD&FF!lU2V&46moAX~Jd@6A)S}`4gk!Ocq-lMr=2A?2K~1OzxjHyA_N? zFL}8*?@#k6r@FI#7j_jRG#{vMbuPtcn=Dycr)J4AYT&ZDaGjxxwp7$A1Gt-d5m#2~ z^VzC2k0s|*29-4N5NxG(iLBII?y~oJeXt?1qtT$hXN7ME8B8111jgy*hdaXo^Bd2@~yljDC#t6yJ9wpG+|AE zeoK0vr9+Al1s2_yMf*FNu}^@c@5#Aw0wIUKQuxaJG#6vDBr>;v7X89f8~)o{SEYjI zi{7^fMBHYSLbm?XZxXSSe4pegDgaG0BEufq9Z69@O59~?P{jY|0}XpJFg}iRzzl@o zOxIfJURurUjXrxh0VvYI>qL1)-r^3oLy_Sn8@J5hSO$gTNe%|ln|sG~tq5`yZj;w1 zto1cE2HEos6@EYh655|oGx70Sp*kQUo;a1U>fdSAE;NnRd^P=x*)5zbh=fUTa(Twy zGiHAN^$C@~15Jjh}x2N&RyQ zPywExcuvwEqNl9=CwDJXBCuodMGKK6-vWX_8DR3>kF=i9?ET-icw{*!_f5zA9hg3Oay?V4fK<8a6_6wmFChNrj-`(xJ9^ zi=0ie5h#Tjtaf?-Fr_wtLlmbGL-B$aZEN!H=IOI!BgY^H9K7(<6Z%yd0haT}v*1X7{cLHJ(a`+TTat0w3w*RqPLWkp>Fz?@y-I&l2@VbB1d(6e zX9(steB?C`O%q!=jYenn4aVIDFxR`g7y=G&ueE=3NSL&8DLfTx=<+&M`5Q^85aYR8 z6VtvV4ek0B*B+Mj**CD9Lto$);X?o1Ieaz<^FUY4dbEID_dxCc@%l9VjwUBr2BeDIt56pKtK6d`aw`pn0|9< z-u+rGf<(IVZYVnq^LpPAms#5IG_3k9LGiZa9v!j_}`z8p3ut3#(W&C(WXL@gV zxVS$daG?Q@fY{x8wd*IB>8Wyh*rk-uepeKgiO@qQ*36VX+LEnLNE=f-{vSiw)+P4yc%Fr$0@)RWnYLW**zQ6wi>t7bOT@F&*28*MBx% z?~Csj$oBPXN41BPN8UCvrj~tbT0L>~#ERnH#_Dr)!x{$Lc|S4G$&;4zYWl%oaXXXxZAXdD zfsS-^w@$DCtbhL+jo@L;w_6sKVEfE+j}HkQbe20^xO`{EC!Q!aMWK?ml+^p{t<7&1 zIwlsRP?xxL^7%LSS&ieIW^Vgp$ZN69?+)61_GdZ#GN6m0Te>}yQgBn$Y05+79r_{e zu(6SAuHABm^+V&|w)PfmPgYMdOJ>rSq&24yF(Wel#tjQT4$k^l?cP4@F#%H+>^zJy zyCWs?wd8F(G4Pdn^*c11QduqrYi%AunM6WtzNz#@GsGES>@K2dK>1q^Hm*)+4n@Be z5_a!Dz}TVEDmxwu6X;81YOvT**di1$?~RLI%MjF1Abi?os@njW;grvhHt*v z%>i)S!IU>r?b;)&p!YtOLG|B)1Pk_IDBW{nm!E&VuQw9GP5}M*(b%{n?A*ch&1YAb zy9ML7LjF=6)X8EXmr1orMw+0wEahxHar-kA`A0KGmZAlOjfpl2c$iLygU|BiTSaqd z=oR7H6rMue8l$@_Q!Fa!X8H@#pGcbEkzA@wR$>lDrskx?vt#^?ro#Jw@tNy*wiv1B2RO5la4=O^W^AmAS=9V*N9>ceW*Kd zaMKdQLhngA~bXBpk2C8F;wu`7#=vlKe!0RAI{m3~QF>je!{CK<%yB%_#| z`vX&y=P0b9Dp%o^;X4#RKgsgH>mJ$0p@=wxjH<7&hYR&fL7!aN$EK6<T*JsJJQszmd2#ShXrV&doK0EjTJD8G`f*FtWpUl*ZI>r$X#|KDg=OL_Y`R@@!wc z%LDvxe7%f#3XjA_pQ-!78!&;MTH%CF$(~lC9eMmabF!(W!LseH%Lpz zp*uxDkQS6S0O++@;b5Y=(pmBAn`$88!5PhD@TKmg`Fuq!LntXJdk_CoJ!=6RV zTJ_@m?BQgM7%;E2LdK?bUcE7l;FMUZ-)^cxLwGgXOvqr`>Pj7v!^A+BrVsBwd~f1Srzz~jFKga0eVNRo@ct;k8fj{8XnH7soG_O>=rALMHgD6X6C!N7Pk z2)Ms84bQDf8P%>_8PCz@^@sJOKxCc*RR(j`{lnZpw0TtU6>hq^_X9IcW$t?91H%{cr>gIL=F5e8BiAKU8%rmTT-S(ysD3@=zYpVy*)qy;Bz# zHXqcgmnlPF@_;e=_|K-v^IJ5dnrZydTCM|`2uxE9%M+lrdoI_VLh(!_W%dO65EC1Z zTEKur?f0LFhrnUbQ|NtBD!BfHcMe$G&$%-DXdZ4A*m83~FlzyaDoMC5>$R$v4kKG5 zurEN0&kdf!&thU?!s7$x9SH*M#LLj$-LTZ}0Vm1@jPc98Dfl8$8tF7Llsr18@Gmp| z#@-06UsfE{)Ai1617UmYZAk{_t~mOyqF~gx`vPz&NrL&$&p)Cv!3=Tx90X%KSs?OS zuh?7Mo~plkEeGl+sG~^%q=ioeXdkTwdk-u>irAOFsH__cl9@w^g9BIB0EkK8gMI|ZLzv3=tZhqg&@j$oq2}s{h-poWg|*eP zK&mztzFl9c7$VHBSQEvr#U>kg>_G|qI$FI*YfxsSU+?YO&rXIS)#t9nSO~`gcu_}o zi@-T+AXu)AT)ZEZ14??}I;$p&)reE^ozGx-1HOc2^>1>rEx8{{WS2mX1w+tb&4TLs zjy>=^^Vd%p*S^5;Q>DgXZDdq~ENWB>fKHAfX|VBQdb^H9J*)ZBxcdfTRGXzk4+s-9 zGLOjLVLN4zOS&wWWf6E35lpQwb(q}klKb@M0TZ2>@5q?RAB*9!}q zl2V*3Dg=3HZz=53b;~1=sDqvBeM9K8_e{Ha>?)B5+cT_B5=E`rfXSU*FVunmgr{dK z1f2u2Yy8PgTc=G6g@Kb28;sv!d#;)BA}na5q8kvPN|0s(>$86^1Phm(9xO~BnX)m?7Uc$eUI3J0 z5wMHvM${HDfb&vN9qEdOw7fUoGg*D$m2X#Y9A--$pKT3mr!ogf&^ne^=A*RJSKdGU z9;#=sX&oiW8Mc6%yP_n&?Nb(jcJ|zXb@F_Cx9Q0Va5(zQ zymg1t zhl6#Jt%O}v4$4|ONNcLtIVp(B;EV*a@CE{)kD-NyRW$fYiK(B=fA2Mz5*segPdJx* zlCWF90{3tWE#!gH_IUHBof?)ZiBkgZ*UX#jg1^5RTF9)dP1Z_$u#R;h3sDwGLd|@6 zXVDDA0Tcyd72?lvc~6m^ECRXl5Ee>HIH_-G z?4sL&`KH3|Otcv7ztdd*QHESRaAlW;O$o@z{-u^H##P3WvFaqN;0lIWIbicAx&?yY zZ)^%SHb5E;HpopLh7KjNw}Z+E{n`ZYSGKe${_8J!%$^knqFWX?gFyXcRH5iX$ktyJ z;`e9cJ^-0;44{_{WG^g$1Or$XW;q|E;44-E1KfYYG*l;5bwkjk-Tz+n9h?pS`Ru&- zU?6w?`P6M0iT@K-st$>K@Jzj8NI!Y7XA@4wf7KyTIrQ#5S0$jC_Ji}*~TO$CRU z;cbtme`5hnPYePg?^wfvgo-W?+E$V-ClK0gtgK{ksFR_8+dE1-%!99YbdO{TFHmu+ zbdrvVGc#yX-XY55IMy5le`3qy_b%< zJbI_6!TScng}tMB!6KriA(k;yA*d;XS4%@f1AYo*Yxw6j2A!ap!NyFp!f1E|d^srY_7fjn!M~gjf*JrGZy+MT6EFuDxxpg(V@bd< z^X^x$W0I#I*erQ;^H0HO8OI|3GsaL33>(t&f^0Vd0qr>oqdWuD2wemauTgnwS55x; zj4dLs?+6ft02`=_Hiu%c^1_3hvjf}M5g?9^K^?bx(*!ckb^$r^UrIAHQrrSYYY1wm$-7NTQ&Y#)m>J!|6WdlUApxnjjzE=v%k6+-nwzOm;26@H%2FgufF0L@w zd=3?Nm*1gdJzYppAioDaxK0W;sV_93VV(=_^>jLb`mpmyk+CVzQtz@&l&hF#za66x z4iLZo5m->+5WCycK^IRB+oFX)Dfs~iU*M5^7L(MGzop~1%xA&0``{yZ@Ms1ot1V%n zg7gx-sGyBPzX66ThgeTls$+5G-a`5D8L&AhT|%9m_51ydW0DyyLp%BoALdB8_8I2l zfq)x@kHQczCZ{RJN4o?E@2-MAw2doF{w%9W)U3|SyEv~kQ^hhoRehKUeuphPYPK9RIY6S0`)%8U2yKv8)2 zVc}Pgg2)WiQZm5P$fGTmCkyQOs_WcZnTpN}h9l?p0#Yc9b6P>8VV(QHix7R57rxQ2 zuskNGCkn#?^1bcx1&5hntsv7T221=)`$y!O`qITYIlSBnj{W}E< zjobR~)OkH{LSZaTa=0*T`pJgjY>Yl9CWaMug8lmviYpI}dV{}~ayyq5 zS{5>=x$QOghd_m7_4QJ{ip;^FG?#{e?87pK75u?KI4(-q6YT^H%GjWu3lI_*lMUMX zIob{)@a?e@myoJ|QR~Z%45hiyR3lYE3DE$fFymD>L6eUIUKiBy-;^9jp9nFDhqKXu zCrmu*(b#({X~~{e2n+ZuV`A&Hg}cy&i-R-E;@fKvo=m&g`rmZDes#fSwqzAmZ)_F8 zF#7np0Gy@fRCbuQrcAOr)+R9JR5In^P|#<%%mnO{2I*@YM3izJdhmucqlIS0Sj>z; zYu~gIXjp)j6(io#P3$y(U~bgt_Z#9GdfH%TuEz0+!od$cwhAq@x41IaFI4CUs$WBU zGRm4EU>KhZ1@{a_Z*t-9GaeFfI^JU%d&I%Rs(;t~bqMnwXv^-$^L5oQ!^v+m1A3%g zh$#pFF+n;9_v(iJxMcyGRZ9Q10wy@R~#SiSCOok&k!<$GuW{*ynQwdI;f!#lk2p zujs9)p@9+%YoYU>BNZCf2>EFuA!l!1F=L;&qe80 z;s%7N+D~9F`yk?JHy=w-&b6h@p#ly@)S0AL-VO7j_20gehD=Z@WAzP-lyR%x18JN2 zx^|?4;ufh$6i4!JuN5E*uMq#Cibww4vEocx^4UXA`n#69?{LUNGNB``fcVdNb+N@u0`J@M-%tyEKWIxcn_4Df(*t441zWA&WRML>Tezt_W&zEJcy1*AZx2Z>9lpe$;tO%HZJSWch*%2|yo zuA6Vslsf4g{D_HUy+xb=l{N==APv`TtQpf<;gSVNj{wbR1d%cU)>jN~2KG#t48N$T z|5g3;IIcHU#?wAw=I7_2anJUWKKOhxOcYIC6S)%bMdK+HdSAd9(q$s&w3N1d z=Kw@p;vJz@^cF=?NMS$e7c={+N0HVhHK( zlYQh-o#tfcw71^3<;ISPI=X4L{iU%)>Gj=L43dtPXJ>+RD-tjC z_4M=>x}Kuv>Pt))zdp5)5U^pf+Ve{`X87i40t(f5feb&J{RV2aw*Gx6U)ij6l|g!C zP>AeX5a##wPDrb+ri67Be6lythZbAz5L02 z{taraWFkDp`4A2~9P%Ur2~BEDN&5l1RC2$b0n$CJ5?6_p1?XgmMG}1L&0x|T#JShM zi_!yu)BQqE(rv?5wDwaX;Te>~bi-n^Y-Tltp0!$db8~Z+SKQZFB*Sk20q~`3e0GaH zW&P%127k{))FPKnO*+8n1)AzD_xz_>oe|!Y2tXO2au6e)|D34^ zyi`dVfgkiVKhWn98>Ivms-k`^abV*q!6vH;^tpq&SIJfV!4m6w7NQN(hEzZ{MhQW2 z(;2AKr?}DXn8c--4uVAb-RdVN-qr#K+2I2k>?9eG3C86=%3Hc{`fa5z>2zoP&PYb0u*)N^XG>EO)poJfx#vK9*+HTj0C!- z-dYEl{PaiHoUG7Ik{1LPGN1YW=p5Wq=_Y4Z`C$2mypoWBpfKelQ*+lNC=MfrK-Z1B=fpxL)zr3i#oLenEXV0UBGHYsX2zxKQ!2EJJ>w)FcX2h$nU zNQ5xNczkRN(Zq{uhq@nr$a&G+eJU7vWJlTA42v3*+n$Nd5fpKR{`3j#$MJ?pI9VY;;-CVaIf1VwM-$!`W83J;K z6gHe>^4p+cXLQvVd^^_BKu)k;0aNNf#f`d|&ezZ*PO&9+D3gUbn*6A{Y}EpE{^-8n zfYU&Y03G;{z7U;{Mi5`?dZ~YqG~Nb_4?y69z=nZ198sGFLuawnu&>uI0O80)7}@z7 z=(9tUJ(mX_=pMR973)3dAm4qsTKl#~=~;pkTl9`x!-bCj-ROY9#&#BcYRp$K{n!oV zj-N<85ySmM!!E}J&VWet;K`zgwg^(d%KToW0v*@ikR=f5AD{&!zdk>ORt&KfmfP8@ zqE`+xo1bnw3^b_A9YzF#@#Fw$!_K7OxG^g$2O`mn+vuSUv4vjWMS+k=C4>fwFG*ce zE{YHQHx`hMZR>e{>bsv`ByE(9a)wGBxyq9y(ow$T^Q;`GlYgFA#y_N-F9OH%eQg+f07(^X_^a3y79Qy*+GRP!UCINn4I zv{XK4gI)k&8RNs)E6(4U6aptTBTp=zgB5MCKw&0E8=Zj$rje-{_pl{^rO*JyGj)3h zh2zx{AR>%Ma4`>ncu_aUn7a6rKsmI6PAG!z&Uxx_)7hU1uo6uQZjVIo-h+nfPnO^ zbZwP;!&%JOez36bv2&A z!w3YZ+6^XXFttE9PI&m@P~JrCSpDPed7Zh8@Q4UIFx=@Vz-b5Vq2XI&H9NpLY-CKM zz-U!y*&6Eg2Let^U~81}3-!r3Mqv zAy_eG!H^Yy?P(VDw0qLqWzEeBG%v0L`-cX2$G3)yRM5hqFMOj6HR{z;Zx+7z$kl@( zvMaty?Ta`Q@#_OXX1;v=Q?WC8YiRRxH-LtNdDk*#a zZig-OUKnsbmjY!Uo*J^d91y#~J+dVCSRu&KoOUBbX)!?>Ngy2ron_}E2Ucrr{8VLW z6gT5reTX_qM@t?V4MAG{#||s+=_uMzRDG-}iXuy)t50+Q;kZOhgzo^`BIIyLJ zT!vDpcyz!`(9#rI(<0OOPPXtB(1iCgez}WzkbT*6K|lpw#_?<()3%Q%E2lepfG@88 z!WAM-7Mm{HQ{~EVCa0VP`}ZoNE)wZ-aL#}g{N(&2zFq|)1<_ezDH z{8hqP3{S%*cCzGX)s!opkia^PLInBXDV$oz03t4%$KmTikmF(Pl}sG3@<}JYkheK6 z7B~=T(^x-9)t?H<;xE*sj1CT~WF{QQdMS{6-z2gB4HR2sAj6mVO=ttMT4*D#I(_Z= zD%9Xjb}1w82@sRlPc|fsGns9Fn2LYlaaVLtfX-PLuMX!B%jAQTT2%^WM$$rO(bcuP zj{p@C?ryUYkTHzjN=$kB(YQHKKD1p@C;Z!v51w)Sk?XTeIgkTzP6>Jv75#Ax(6O&m zp?Vv;BZsdeHN+%xLOD&bQeAfM4XuOpJ>`+&+}v2T?6GTV51=7XOE4x|kEbmRa}Xi- zOy?nB`(CP#?b@1lyV38F=hLx5OAT8|>xcw1AD^_9TdHd8tQ1MQ*N>htPagP~)=1T6 zWqxO~?h&@Rp0$iNj5DmmjX5@$gGvYof^Q{Pr1vS-w;nCrR;y>bHZ};O1S96<=}w&z z8X@CU)nE5vNQLbNi$s1aVq6u*-*M+5rUWix_H&hDa;$x_1)eRoxaQhJ01En_hgl7T z8!8pF?tx!-6~nmNaV|F`|58Y3N{4uH2aBzLRI7YRK$RA20&b_!s0{Xkgxk#IOR$}q z1GG9BflgMcXKzKJ-5vlbd|+zV-g2BI8sz^=3-(B1;;~C030ygkFjX`{u5%_@$!xI3 zJpbX4RZo|f>+cwM@Sdq*4=yP$G>~vk=NQnPl<)!&jQl-Ap z2`YxSC{cW8Fak?PEM+?VIu$z6;ISoB0=(x{P8Fg0;F{iAxY4q}F$Tl;zxVJY@nb@U zqQ%6np=gwAPJ zp52vuEED8X?AO7E^8_}QZom7yd)ZSStHOYTc~D*@HRt+|l~?nt<3xAyZ8n(QZ3C&q z&cMJ(HPfAdp2&?^0k9y7pBK=W$rfXXH0u|&unSM%SB)4`3EVyBCGO7$H@ClmrX^ySq@{Ff5%N)32;_E ziYHjs4tHI57lCqPPv#8Zr%_9?mxxS5Vlnyrb#fal)Jb0Sbx}e4>Zn(sq$Y=I(ste+(V3@q5RZvYvaV&C&EJaK1dwn*K4S^0a1y?5zN)OKDSk>6 zg$Y2rqC11yGX}~VsP67Ex_t`qmR;++-N6a~?fjD|c~8;#JeIT%kbxwhE! z@G;5V1To`YS(M~lUOOyrTE7o=m*$6{3@5om#a}4u2uY^UjQDOT-%XJIbIBY_oyrU~ z=E3(=s@tvTdMRS)su!iu4W7Yhin(0aPF4NX%16RHnd;;>3AC#=ti628-Lz z@j(pV9f84HPEr|WCMBDeyYW*8Kj7IEZ_25(0Ki{jZ*nxA6UXVI(l|_qv&ZzAoDIZ6 zWDcp~`b0HmjVzVijk9-Y#5?^b{3eM@iZ*NKSTt#sPop|AG4{w*cyF}(d_DL+NgGAV z*rh#rp57E*pPa={O^WhDYR==W$Q54ARLVIUIXIhagEQXx^VIT-0n&Ik>Ex1W=%~cc z%Z)$0?ziRGCV!)RAbRjD%s~(3*|Iv5FO4->lDD4lF5aqLRK6{_Htnj*SYlgkEp%K3 zLj#)jD~geag*Ofge+oZZCTEM@Sg9f)xlg7Uy*24^V03^ivs<|uiov{4aY|s)+rhmN zHl+WeitrtSl)gMR-_tLD!RAwahy1&N>Wc5(!%ke195i-%+_*nRZgutrs;0LM_G3QB|464%4TOKKbOOIn+K5@EQfK3Kx>c z&hth4!pDeMD&H&ZfAg(a&l{GI`5Q-9r>#8ey*Gc&2fvj#P$!hZ-=GWo$)V9NCdBbJ ztcP0XaqOoKZe$e@k6GUFBy>VG*1{!7hIDC^XY&#kGd8y43CG)TBgs2&rwHGrIo?ib zdl0!Q^XOM9;iZZ@OkOwUrr%IZ(>uyAbT``ZKK(lcIx(%x_O26Omfk13nOW#$5Sb~V zcy3uj4l8ii32$!~r7SP1o>EXgzqb|{-8iozoq%agWE++AK8X`LE$-t5WmulOB*Mgf z`BIYJd|boU!d<<9xYYX8c1__cNWsWqwP@qQuT}W@`pEzh>odZr6EpnG&~UG$YnfN4 zC%!M3*P#CH+yeglg5q#Zdl)2F+`L1~AsRB=%~_4BT9AhtNyh94g$IU*vHhqWsbO9( ziDx#C>zm7;dO&7JZ(fpEMfYa$QveYhZrH0btrGCXj7WTvs3Ui~3H>hjU41B%`$pJy`+**+}UE_86jDI4*$Ir+$8vx9BatL~sO zSIGV~l_k$G?w{3>g>r1H+u<%{JD)vQ_IdVB=1IJn#WP|eWD5fhV^LHtfSl5?2pYv7 z=@NKlv|F`^TOFElU+d;KwWG7iEzVU22>`;|WmKN!@<2X%0Lo*QuqWYZ2b%GSb}8zI z^NSU#PtO%eXv*z`odoZdyLUY89wE3aC=~a%&?u#~|4KiNF^n$4uImLqULAgXy0fu& zTin(9QzZF(php1?c?CwBJaoWw=hs2BiW8xP^>K?cpw8yw(eAuT#G{t66|$||kRr}Twi~iEDg|PS9sHjV_-FJ} z*fzsGnWrqf)9`k%TX0Y@=Ksb5h?Qn)6vk7*p*euDFNK4*HRLYeKc`bf2t0!h-ZB3% z30UUEMEq3Aav$8@%OQNr60IdL;$Cc1if4@)cySW?R3v0&Xa~LN)2nP5%YMtN}Wx!zVK3HtJ+b%k~^H^VW`JQfonhuGwcRF3xQcZf& z%SA|muI~O6Kl0jEF>G|!-abDgBfCD@?4oL7L)*LZI>G1}0P-3vUeYeUnH0?VsP zCpOt{7zr_gu9m`-ri+J$5?DP8Cx-JPve*%T&aYh84vnW=7W?U# zDbPgt{TRBNX^>Z5EKXI@DJNA7&tLx6-{TRM{pZF=@`}DE**NF`dIE~a|B=w=KMm{r z{|A=-!%u*tdi_m7LBT(YRfo2=HbM4c&S1g3tI8dibTO;9s1bgSoFXpNSX2N5hW{_G z)BH~XU-0?ZEiGq3L;@Ij0VomxDmghhF=;y-UgB`U5~PTtzv4vw z>m_go05GitPC<@V*EvdFayy@ib$=xjeBvhy`fndgjDXmy$4o!8G1OjLqgIxzt0N^JNgOoNd z3CH0=5H_PFD+xef0itCB`6uu;UV|Mt{f!71;z6BcTRPj21~Z+A$w!i>_iB(6-R>L!i?r@cYGQn{qPY?58 zCS~!)5brw+Z-b91Wo_#5%m?Bu$UDioaqxZw6kN%h&<+Ls26ez3-TnFNumWz;QK5)! zLAAchJ~Rz^2gUkdC~6b~BKJ4c{n(!W`*Z7NVjYbaby)JtQY7Jk|5h=6erGv*7@ zc|nAo|60Teb5Nt!y&K(yfiMTO6(*XT0s;$0Z6(>OkH22}^r)+T(v{x*c3JI%$`p2UNfC={tlNN7_G4#%pI-%G~IM-D7L(5>CM?#6Hi@n~ctGV|xgY&e7j4#)pN0 zHNp@|j~kB5Bih9M%XYRUgoLu;vYHMahOjxYa~j_rGfc>H#hI5w|?DkWDD9-nqkWEA@iE`*fRt13ZV-@C;0W2cIMzy(BAx%^b(H2=- zs3*+{{!?Wlr!aCP$ZiNkcPZ3DSrEgfpu!bdy8G6cW_Kn>$T$Gt-pW!@QGvH7nyJVe4T|U{*xEiq z&n#Pv@`sSyOGw;Wp5nWZSkf(82w1!~+W?0tADnZUuq&bIcDFr39fsj{ey31@1Gr6C znT3LYV-|fuO64sO+Y3ddbXaI{*Yld#_?9KZm1Dd(v@gZlyMbwq2oHac1U^TCcF~)j z9I4xY<}*C#lX_K z2ZzCK11OFtoqU&SfbK+uj`&O90`{)ydGYq(qGLI?XD5B$VxCeMp4CJgsFC4}g;;^Z z{45P7O8gN|P@=c>p>cLdS{Lf38MGLM6Xxlw6e(BZ^qXR2iLW+?@~#c4X^S$@fSK-` z*&}#f61K_ta?ZmV&H3C6s2sq?pyid5Xo!}?_K4_mo*3`pohqWM!*IAP93bB;ZOOnm zz$D{gnQW7}us%CV)uk-w9=pO3B6_313;SWiF5ZZkfBjR2EA#pNKB>D)U|QqFG09(T z0W-cJ`@Dj*7+hk(^g4o^uJ0V^s`?xF=~ z-ZAQ^j^FT=ppF1{EH08$6L?m)g!HQ^uH{_+`l@}Y*Fty>;3Gf+vmd^qTiQ=DHmgB~ zh>?hiOW?rLVw6#IXTXbfBy-C^hiw336UWs~%CO(%AuSJjiB8O8D7`fgA?2dPJ`KW@ z0Xcx{T~NEL@HYpv(LS2)J*yrRs;Cr?lmWStCvHbnqSf>Sa>i?aOT=(#**^r_Dhkr7 zu9sgsr%H}ZptdI5Eevi_j|Gczm}Vh3RyETF#kTlX8fsBB2XVOTdEjlTItD}?Y)*q* zHZu2LZi$*&m88ZEh8?1V4ut_x8>f6(buRUULh<{|pG)AFeGalFl0dqa0kCk(+lm9e zN$N*(JrGKc8crWnPW0s>;RIKmOMFDzVJF-S@269if&_ds0*=%~PuU|~pt*n)lU`{C zdKgsLHP7p)tz}*?u(hFym1ya(@(wy2>_~w&u7=q4UYb@e+Fp7oxLnaR$J99~pcX+p z0@{ON6K@S+aq=o|q8o2(IE5(8(C08=p%0#pwD2*+cC85;geMdV=%XA<`qjtKw|ssc zPUBUr9)WgY5rGzW|34IOt1G5@oE#n92XcVHEE)tABGK6xqY0}-y9Hs#e@bMgBy=719d8&nWZH(ecND=2C@8yHxA`T4jP=KoDE=6?7+sFzVwR+ zFtT*=CZf?9Q>-8FruQ_3FgY8F_Ek{$I0y?RC8c!o>z6KLWrT5s8$t$@k0L=WRdG)S zT=9!PDk)9DeyEFac7C!A=VGOGDo8PxfLZ(4(Yy@X0TKtHtcGgJV*Umyt`zuAXyVYf zjiK-(=*ZFH6Ms+)E zVLaNNMtkaDfGe?15_}Df931Z4Bo?3Crhr%am)iu?OM2)k>pJ0$X4WZQu0Z<$^VAhq z0D^8t0*7Ow{|wDpak?QE;W$C%1BomQqdzbMf;J(L%aHzV>>X_JyI`mRxzB3t*~#IL zS9jo#*Z$O@<&ps4G*X{KnMMTvT~D3{MY~j#d6~i6pAaMfKWD3kWq=Orp>c-mC@!8} zou&f=Ly>X>A|(i-CQGmWv4hY6=)$%^==#qvB5ys*_dc0R0l&E9-&la==(jl)NtZEE zPEK3UeegyC(N+Soy8vgL@Vq0S3=fi^UOB?8S@IT`^${**v3L1RYeWtDz-<3?w#AwK z(ybm}PuRB5ouUU0&x%NRu?rG&3Q(R!VAAlGJtiqi6f%)=THW5(C7OW#n}+)i_=NOC zxkv0_je@kF6}+E{EscMCp^Iz+@*S2A{ABbJ)SJdXKb@c1c$`8w5xmVM6UxE5G3A3} zYPau?KuAFfrJ;x%Coxt6+&SgYOuyFyun=H}bC9PS@eR>Wu4}R2P~GG5`vx|)QLwJ| z}e+BU%`&PEWZL{oA>{^jQA9x&<)NEk~x&1Ou&9tXEBF%g?GofZKxnd}3k zD+DoeoI`TH1;iSrc*0rBbVW{RgSQWzs+#Y=B{OQ_x5hPu8E+VhlkEg|b0XX*u;r=b z&p>C_WZg-WzE%{ShSorF|50Ki!ACvR9)gkz5lPrGdoZQ|OCv8R7^jL5^!f%(jLH`I zt%Z`qK`S4aY-mzm008H8;Vt_M=VtZeZF6g+YU=83))Wn&*jwO-B;mUQ zgx~R_6>ZzTRKhzeux%>ukQ1ebakJ5W2XXv0=A|h1@L$$h7_>pV3NRANLt~SWRsdEs zD2>rdp}{3~WjkU|7vc_Ov42I4eE~^|7XZOhA=LHm3wUdHFJ10#TpB4u8OBq0#~0?) zP-M!2dRU1Da1}bf@t3-+DLP>QZJbA3HfO_rjfxastETy#bWA}3f|Bphx7Z z5=@j)nQZp5Jh_a|5|-eP;!fYoqD#VD6%nD>pIU5H?#+_8zbsid`{?-h$j%&4RA2J24=7!D3=HF*0Kr`8{^1&L*JN+a_-j!_+ zsl-m3cZbgH`8lJh?WtLVlfd#AT#&bL+wDm@C`ZLOf_Hps3Ou@>9WI%x;6#n#SBT>1 zfr4Y>aSFANu_VN{2@dP>Xk{j9X4tt^X7Z{g?dT*j0OoK|$^Nm;6%wTul<)RG;|La2 zBgb5}f#z0&-9CI8@P#O37{Me`gaez497DNyB(F+em5?a-yv0t%NVjcy+MUT}D z@5c+bdW09}dRB6D=~Y}H+#tddl*OOxYotNn`;u==vLB6`HU+GI7dkPa&dI{p<|1Ti zM2B0g-*_?910IBBwp*n_kH_E`o_M-8y|+P3ItqbFDXjtPxRWA3$@Lwtk4mspZORNW zQQHL5qq{$97XT|s#G ztZ>-lBxaF`L;kBscs+O3vUd1u-cbZ<@;PQq+u(q zQz@q%Vbd3k&s0G23m2`h-&aEYjWRR#LDvnXrn?)PamxU@gsAN@p5R!M_z|K z=GjW&Pb7CQA9A46t9fqgx(G3>z&K{hw$5b7DCZ*@8tqh~4^#55G9EVZNA{(+d}3d- z00I<4V4#le>!OvASz=?{qR3Go=R0a+|1+k%&8#^3f)0jVzr}dA z0a4mV=+e~oeQET3K30UlWMToc{4r-!UI=>!(6NH*V;K`|$G_KiujCcHsAi(Vsl8z| zB0uYlw!YByN~_o9jRVF4dpY*Erpwf`S-YS88s5KB znO0TS-&T;7#D*%(hN|XeI!Dt(g@&~X+@3DATNMDM6b;d7u)KMC(WjBH{`Ecvh3!kp zEkdK&vaJn&tLF<$L7*|Jd2AqUIf{I_WJ&)e-lXE@%GLp#)0G^nhIe$G?6M=WtJM5o z2aod^a8jg1mwax@Ot&)I%GEa$Gq5tTKXqwWSJPL!8%>WHJ|4{40JpKD$| zelV}C8f#jt4<%vIz&dDgC{&ztYN{HRALnz6uFH5SzZ0Mr%h4g&rb(!2>wd7RF=?aR@s z!!;Z^39B@r?&wy~BuD}|tB6DIzgdYmvjRC|N~f4X6(-TfY-j@^G0(^iiywdD8LHn0eIrL_jk)P)ZKWQg z(RI_Q@VKW(9dIp+NOR^E>+ddg2cER2qY)E~YOgZAOe;VVhlVCiy*4i2Ahy?qky5Nt zP<`8t#qq=LC>AgKT{cWU3C!SRv)514+6ZDOuokFrm}CdeV`4Li=n6+-qpS%Zd8UZ30V=u}sA@6Pn5ZzgEAK#%@(A~!4b3y2@xzIQDv<%#yp3h+a` zZ7blx?w^Q65<9e|poy~2`mmwCL`pIwTE2<-MjI~6)tZ?-W$D@Z700jaimYGMiD^{L z@pNX3sOKq9JKROcCPx-4A#vMcm88R<{Es`-ej4qOKJC~ZeW|-G#&d=#BScZ4^zO^2 zBCoY8Nm!-^_S}L*bPvNMW<2Q94{rR?Y;G$7ttaG|flOwY{9Y+eDkh5q2-~zG!9`v3 zj%GR7iX?-vIHXTHsNX2Go^-ABDUi_!H$nBqyn8!5?*+&e|4?5I>%Xx{A8z_HHO#by zeBRIYrPhPFx#zg3@j2uB@eUkgc8Batm$?yLy!^sO!U%r^n_8AW?PH8`_bTBg5x8aJ zRnllkH^2K_j_>f8++_X0`+Z0u=r&f#V+$^2XMflrkWwI;bzf0(jB(!EiT|@Uw;VIo zCXEgGmIANG5SOa1E56`PlKz`z{%Bqbn`XQON93AnwC%N^j@d`&j`%%d1@1}&#zj0k z5*r`r_T8_sjo7Iy-+vrBSSsLYcm=tx6uWZ|CP9~R%%00zdW+}_D>m20@|elvR_cE9 zj$}*E#(zG`PR_IV6*kea8kNIW*XpZ7(l0F3Vm1(OJEvU#5XMs>VPZV~jq}v{Zdr~e zHJJK01+Uf-O+MEF3yoX;qH3wK5u_SQyh_bc|HssP@Cfdf>ykYm8LsRqne zdWnTT%3UVeuP>R9VjhzfB>FU7V?%8j&VBK!sw}2dI#U`=tZDk>qXkyz7|sn<5=K0k zg98oHYe|e)qv6v@`7HXKnf&66oqlsM%XOA2Nm(?94~>IEh#2Qz*k1PtvQ&*?r#27# zrFAeKg90y8i88XY#^L8t?TVgwNg23z)Qzx&XtPK=XJan#Y-u;Uo{SFksGb!H=52Q= zt47jMDPG{Y-4y=B-!Deu5%jGHQ${&xdsiSKL)PZXNrSI@w7vO7JWjMx zoqt^KAh3q}r@*;pjfBmS<%OuIP0)7OJ|~OZL9#4+05dg)KIaPc{uV11@A7@d1DuaB zgu~>1++}eo?m(77PZ)pB*lHz%x71PSjt_arE7r1gDu&t{G#2*W7hn&PoXn;zaffgc&~!+DrJxJ5dEVB#hZnMO^jkS#mgOs8$Sr zPsAZPFk&9G4=^df1wC4!2O6-%AhW6gyrF#qOQN;=aQ#e9Mql=stp6Xu*VF~Q)$cQI zhJ+J8pgpybM2vLxH1G1lxAT`?vX@CbrWjGd(jc&iGXHX>zYly~z9N4J4VG2h$F*Au zOtmI^|HcB2S2_BNM4Qf!ojJ+OInJ(*psf`5@{vWZ#2VK2wo;-6hs<(h;!cLFc|+i?_yCD5HbWI^sqt_O~#Z zL-tHkCc~}H+Qc1WHf6B3Y@D+A_U~SUqXcMi04Z;Bsd+p zHD<%B>>}ZvJ|#(&To!br+Kequ?Mk9!H6ue3X>CI^N0(t7#n_bu?nd&YRuSz0QAVKx?i0S3M8aww?GTO73)~(&3+nGxWdFZcs#Bx<@_N&Kn78o9wkrFjZT4&K0@S-&oq*-Tq#H$aAO6;6XuQM$G-zlXbN|Z zjP3w4boE_pHA1P{ka}K09oEF002+?~(EbU4_=ELnW`XXXGn69H(%<1}xbDRpFfeFy z)b@5!j_-Iog5s4el{+N190;^fJ~7Ic2<87~|A4sT|4L?eV21`NU+e^im=Y9(5{LA+ zQnm@e%>Z(2IGn@{-kaH6;h)dab8jNon40e$22(5*JJ%(M1YGR>7-44+{0@{*Ewj)-TLufhZ2_u&4YX8 z53+4vl^NMwWT_asnLm;AFAByv2T#rEj~-0QdCV1^o+kQAJ%xeOdAlQ#?IwG6J@+aU z?_Yb;7Q-60jTbaxulN0H*3sXQN&TP=qq@VdA*We;Otr{>x%lV!pP76)okRROow#*V zH!?^)(>Kk&JhMHkHM#6vHfjGWJL}W-v~bGHj#2qH#|q=?zc$zRKM7BJc$xf>yuW_= zZJNwIJfdf%Svku^b+=ad4NgY*UEF5Yu%8`X_^!VBV9}Gr{RTeb1t0p&>J`d_QgU7C zFD*Eih;)-{_@McFCHLE<4VhX6{WjGbXNsR?^NzaPUT{ntfBw7b)-!d``=$I^^@Fwi zZw1v1KJ%k%o86DMWj+*OP2BVGo5>1O7s;J{Q`n*OSb6Ipd-7tnlS<}`{RGlyVtXPZ z-q&sHm8OH=>5k5Pu&UC{P=jrYpw-DF&gf(#5T0a!@MOLfQ`3I2%{?rqIgP_riiBk& zU0eNAN#L)`Z|9Qtm-BLZu~O@pV=2_C*P+?36GXLb(49> zjva@3Jb#EZm^I?(56eILR&zP}pC$0m(hMf0vXA(EY}JB4Xnx_b8}8ce{pjscz?Ax% z`W3A-&ZXx$hLc}DTh!Chk^j~B9(7+h`HTW*xX816z;J0V1DM&KeV?XLkm)`CT6eYC zf%0O&(4jp4THvnjd`riT)q}E=Wb~T3geC--L<1uwgX#~z9@YgO;;~-4=e(_dra0s^ zuERR!vv?|IFt;!)V==oF=VNc#_l!@YfhA5Mb#d|oaX=dP{nrwPLy@04tCbE}n4E7{ zn)jNjY2RADOMjJR+WYTmMg4za?Jc9KY`4ErKpH_hq!+DpcP_dF3{oToL0Y;*knRrY zFi=XR1XQ|91tg?H>2A(k`~U9u{dQuEv%k2<-p`}5)_q^soWCq!M#nq9kt5@AuzXM` z!GOwf<}H9a3-5gSAz}>8T=A3Wdy^vE_iul3)J=8z`sZ7XTwbOBExj5!ulId<0=msH z^_olEil=Qha@BT09I&aAJsYGub!yk`CS~KwEpjn5 z9Pe~jB_a4H_H>(ypwpO$x&61YU;VLaC&n41@6Ng<^t)YR=lg-?)oRb#Z2+L#e=AzQaX8vxBUMUweYP2~URJis2-$&sbk= z=p9^C^(L`w1ge7R{|ylq@!Jo6AlFQ(f&wZBac1m)G?Q&lq~OEhZwp4d3E4FeeE1{?ihvve=-ZrWa*!R!5MTi<0)UVZzVZ!b zsHq1)=~w~B)q2|>3eKQU?&BuGzNCcPA_%BnFA+b4tP?NYcoIm!1bY*zP!MH`V`B2u zu7g}iRNxRduN>!lTJ=Nn$P#z{&p8jXb`Wj^eGb4bzd0@Ev8ifF1%PcMkK|jHU zo)$sp?FfZFQa-!I6a;0lKq*qQV$xv~MjZT_Xa=yrv0cND7$ zP@w3~N99*QBZxa=4bef=5lRtI`*d>o3o0nIGlmA$EAlzSsg;Wv`?=9~&K&1%t1{I< z6ZpCT_hA2UO(#h+Y(ny1^>)A5pUO0KX&?u{o^}N0Sv{KgXEkFNz#4H*h>rI))H#9V zOSMYEIYK%`ezKayHu^OzHouIB5>ElCt&9inY5^C1qXViZG;P-f=^Ao$g z4U|20{(C9CqOgquF7qaf08=pTyfhf|RH}!}*wm92LAW9sAWDCYi1<%d4ki{vd@0oK z{2ywo4SZ=R{Y_dC3kZ0H&6$%R;PV&cMJ7MzEe1G+T#W-+z5$Z#0h2OXKWL{w{qur% zbb!_YKhyz`y+i%`@GXEatkj%F!p%DM*1grsZY5^_k7Fn`#PrCw7dRk0Xzv7JRo#02 zD~9f;!>OS2qFM|7&S~;_9oF0?F{bJlhIq{1K`=+or5}pzT0zSNEh}$LYI&1hLsFtJ zxlFB*81N|`dHc=qCl@LmR5M2j>hXU*08y3;_iI{XObg@^MEr$)_Xe<_s`Lx_cMHoh z&c9%XLYd5(+QBpKmcJwSnpxXgnxnWCdhzT9nd}UKZfoky85jyiF=o$!F{=ZRRosxB z{uP+G2MZ*`l?+L?h6c7~X6Js6c6{VtO3texr*}5aef85S zc@D|Ck;v0AV5_qo)o5~Al*%RyZ#FB2c4r#RTY9VB^)FrxkIO`b(n1t1{!r>K|21R#~a~4uN}k zoC{9B()3$~m9xOwEnOOFhfabZimGV=1ZOJY{VEWopuO@llCud6VQDOfM-WF>fc+4d z)IJ_hVzP*vKmz~F^|2az3a=))n%_KSLK3GQV%O?czR0k=Bd(7^-qRe0Yu{5&M=ke9 z;VkiT7WSYGe?i|CQ79-Z)d*#8no)|9)IJLLCbU;Rje806`k|6;@7Lxvs#Gu;uKgh4 zM227!(M6brYZbV#SntRkudb}D2$b!yk9&arM?C#C>B#eCkR`;PLtt}HK*vZ;v?$?W!;`FC<>r03w}Oad&k@u|rc4((>v zXzS%MfbDm5k7ynst0dCP>r~;i69rxGseWSuC6Vp(NqiPRMK|upzq&hhS?Mv+`*sFVR?a!u zK$0ixEUm5S-I{y$bzS7oNKkgXS}5q<9HEpCgc<|STIs%rcV&sZvkwR8F`sptXH^j7 zBu_po7bW&b(E$vgk<1=z)N!ex4^denPZqfgq`#}6oXhSR`V#zW5!ZW!MFh;N7G7Jh zVx2`4BAo2}72+lA1@;nu&EA&!t2!1Pyv)Ku%BW3%7MY{DnhhMBpX2uS-!(X#cGyM&|vfDP@DRicCEkiNh7{@3Q8wK*X!jXp7;ToGJc-v72;as zj`ydot;IaG2kD!Xr3%_`(@wgHgiI}svjy#tJvfUdd@vHcx?H-I#sKYLX zsjp|~{+NTi;^Syy%>5tVs=lTdMpCPgEfq*H6H`94^+aX8ZLZPDE=I^;icPZ?;-?d= zwHm7tDk{${eN-SbBocUBR=J?k-XMPp4`HhVd|EUNr9OB$_5bTL+U9qbtQ>qAC(qvv(SR!b8%Zt8GDA_IJ%*xUvGy$r?&Ndav(0vw{vH?2smhamMv8yn$u zT$j_NCK(hIq<>6F`_hgniR4pT0~nyVRj7U^;<9)}f)247KP#2KcJKrghDAmKzTLrs zpXp{;@3FB*9L|fAmZES^@3VH-GADRi1kc(ViiMy4CYM1zN)!r>we-#G^KYA7d^;y< za{~=G39(N7_0Da@oKU0wJvurjOvD4;%>KC|tb`g1H@4EINu@5@B;0kyBBL9N~05n&c(ufBiv z2IV4X89#?c2m@VCEg*!r0=y0+DAvBd9dT_ebyCPc+ZQ{2>+w@emM)>lp#o4&W5#fI z`ZEdPv52aH_M-J4u$|f2&epqRF)%M-9wF~9vQ!7lcAJ&Vd5-V(Sil|bAz{t(T^xM< z?%}Zvh9se)#DwF{Q!YD&(9ANs6srw~fLm^dgOW{M3o5pPcg@=vskS`;?7HgFY9I&lTP#U$KiqF2PkYe|6NqTnl(vbEu+XF4 z&VHO*7fA}Un}syTU?O?SN*VNeFX9 zttmgyiXfXSwOoFAKHNA(D|l?_Q*MLv#3=n`iN=1MFrTY?kHV;7oY7xoEv>NK*MOIT zk@9nMuG~YbQ_Xdg#IM@kx8W?YvaUu3TdBTAyLN4nyfghtC1n|9<^)w?nrUzsazMp1 zp>&qj`UtM(0SQz+Ur08cZx513LX0SN&c&U1NIWIdvh@lktD9jpW|!3tj#MN@P}w}- zVx066@q&#mK7Rk-So~#}rw|JpFYmy;Q0|SX4`x!D5nUu!e2R-N2VDAzYTb86vq#<_ zXVB+G+n)APU%Ot($^Sil2+822RBDB)JhVE+&8t%waa9!+QY^&JiVx1;A*JpTq&`TZ z=?u$euYU0vg2}xAldSjqy+ehH;C3kzmLZl>>}-vt-9tMIbpjt;;e%msd)8Xx&6+6- zCHl(Vb2b@3DAN|&MR`x&%)uk2No%3_Q+0RM_cnvgY88>v$qab1sx0x-8%E zapJR;l`@$dcp*AZ>XQ4Rvo54HwCTw?>!up}EA$yynd*kdF%PfXGE_&B3sag^FAY`4 zEG4L>Xe|uI945!`#x9u7L0A$IRN0wuX7;zf^W>ZZ8`&8*#Ltk+Mr^4gDuUW3N+5dijx_!-j>jZw!K0Aum7jsMjtTNC27@S`1 z&tHGo&&y;~cOVojYV|9WsLnujK^+m|G}X)%I#O3Jq$qN$M{7|rmS(T@rBYv0hK1xb zsn_E#bjdoYYRF@KB^~VI$eoYe;qwabCIWNQbFd|EDRNv-v8Oy`?wIhz-gM1*P~OFv za3LaO`#)bfIt9=?zlz8N=`#ra^L4-I6VLxxHc{x#?D1iL^+%del#VN?qge%`+DYYw zhJP&IGvw73?;!ng1uIQSfOvP4bq(WeEuFyT528vuo=$SkEK8ItQ`%#kd!a2Or;B7| z?T#mBvd49PA&WR~%33U|qr%^B@S;LD8JU&WM;29uv*nq2Is(3$L8^56H3b_e-x6E# z__eg|)~!Vd#SjV(eC}W0gkdNh>jz2RP43Jk#vbQcp2op7Esmi#DcEH{ycoBN-x(wN zV6l?nrwm8qIDHPs05OqpYL!<{iK`=ZN5+IEC&vIL3q&{OWR`xe^I8oQ&S9e?;}z(( zbNOFfB5jEK9jyr5o#-#!-%4m@R9Q8K*yv>a$8E5+V!q0R%~8=8?1&;lrHCYoWaM6S z$(+rf$2o4fj5P+FeLmyXd7Pjcli}L_Do?w$vf#F2qxhfZB6Ongr3ktSt{-{*!|8S5 z1o$KQGIXa_(u> zT86zppMg!Q6bvmyzB^!m8nv@EjuG;2rwDynV<7H{loWTd9Z_esFn8LRTF7nQI8E(B z#)3Br8LoiYa~3Awq7R=51SYrYto>=Zf{SfObbG~c`ea1@1f{bq4|%O6&-ktt7I@Bua|%-*4T*Bq0tC0dx2EQr5KZG^E) z{xL)Ihe~K6|LB*VZ4Z>v<^!0Y7<7xI^N% z0Ad=pYKaK{K)zAwr**Uqs-4vF9bMeUUM;cLNFHJeK~*E&GNtPDqI?}FxQ znYgX@E;psW_)3z^aZ$~n=K4j?*($mtkGNNBzFV}f36a;${6bsNa;{6Jf?=+{Z)4l;dl=3W?1Pw_t<&~nAL#XNqUI7C>MvYbu&TYKEni*oDY zxetM%5!WHO|4!I(dcNNmDQmruGh1*%orD3m4ATG{=<#q&j4XNw+Rc&>`!UE91S!Z#Y-`9k@yS6>+L0G0xLg z2|4y8g!Nzll0n!o1ki!ht+n^X3_Wy-kqqt=Mf8&x)zFa*Y&U?&RK2TPtJ)%6AkD=I zfP^spHhZQEkWYO^;0%8N;d4Q)iz{GBny+u)+{1l7%fe3luEq;OQhavWsd(nFJ7!w0 zUl5qH5A>sxDtfP&51>cg0;uZir2|F)!%v*Z+Nm|3>}4oV))Ug{jCrzcp<^HRv>?LfCv95)F= zMQ^rTynMjB=KfW*Jgjvx12sEjp@`1~uWv( z$O^sIMrZHNFe`^8&mB zi+DRKAWqr(KJy@41XUp_adardg-Ki)CBV8@%y;88{)+_w)?F0%>w{Ue5Nuq+eq=D8 zD(zrmV`s&K!NYm-^Tunvq6FlBKl$hCL#rrY58(x7M18=aV6HMIQc&8CCQj{62J39$ zBY$p#((8<_9w=;h1mqJ?S^PdfpQ+Fc*%bhOSU=VT>2^|DW3LSkMl-m)8gIP8&(U+aai(N` zI+A@Co)+E_g)ICCgmy9RNHi{PEdn2LFO-&?LK$;SgCyZ$31^dsAS$$Cv5fMlo^1H$Kl-$Sg<$A$03-Ss`MTFW-A6TQQ z!EGysFSq{${Ai6pI+=;TDiwn9q594_e&cT3$<<=|V*!{HTzUZ`wuGTU%R?_#@AMT$_ z4NR+2@zhwh&7!ZB$(M;XkHkN#u=M!1J|J@*ohP^yt4XCK_B4`0%;{Iw&)VzsK9>Cr z$U$rInt;x#rJ&~hpHvU7Wa=-Y`L?DSDCCr*MrmtvOfMdEU*=8YHg@?9ZcPtv7Z1wN ze%_ibS?JU)zm(D`L>6bZ$eyl`3fx91NU~SP zwL9|#EY@6_$i+khG}6e2mTjEJfsIdHTcjFX?BSfj4;YetR`vZTz+l(kCn{i<`BSFI zv|PQ%{&)#Xrmy9Wc)Uv?&*N-45m-TZttJ9iSjHC3lqzNOmjzBDfTS5@#==F_W; zS`I(i2bV=6Lj7$FSShBdv$7L{!T}1O72e_v)QY2ht_G6 z+TIujQV!R`r>&}HQhvPCnrsz0;-9?cKdv9lsF_s1W<%_%aiT>c#XO|Vq&>FMj6JMg z{i)$gKqKb}B<|+&3^|r=cE9K-DLQgeBuPPp*;MN_`_&3fOIaBA)ww3G4EQ)dnvurL zk5-NA@S2WAC^t(NGYY*i+?g-s(hJ2&Ct{qtnzrKD9sJ@Uvfr1wz+s7nl^E!qRiShn zJ}m(~__Xdjnc|+k8(SIE$>aLf*jYvK?ojvY)rZ%n+O#Tm2-oB(0?yhGrXpA7xD)A2 zPqXUOlkd>Yb4je7PPl&|=Mx_vM9#A{j%}qaeR}c+e@RR!qbrkV(wR|0gM?FM-H_@A z9pW7u6a$bXs%o`hkVW2KO>1!7^dFv)!KFO;{khBZVu|eCRYTyWVkmnOt3z5{BpJQg zm-X?HRKE^gqoXynTk2c{OA94UWMvE{pLd6HeD3-tt@JNFM%Zgo6j^%spS@n~CJ72gf?rT4Idps@W#mgw? zW4HO;j|CHJy7BYrOhC)wNfvI!vh&rI?Tian})YJ}o{IcnMk$8Ks-u2(OZ? zdr$p)y{Lt>cMyK;T5OJb`WmN>_u&hei|&z9i0)$9?%KrE{xi|8q)PhO_oZT-OoHXe z&(X4E>u&PVgQGKyOttZEt&zFvx+k3s-ta}fq8;nk{dXlc^NIk6Xgd4BqhyLmx@kOP z$G2#aYR6p&^}OC?0se>8#pg8`9mtRxxqkxufp5tlF0|j>P(?DZnO$Q=AP{jyX#fBJ zLRQs+&B&s1T@%SrTNFEKj6m$7Sx!L+_K=m1r_hH&=zSGd0cXa7AbAxA3&-u$IQ$O zDoIF2)dL|U56MbB%${JM6i0{1c)vOtHNwpCA6V?9+IP;FFIaVRP1jWEqF?02qdm(9 zV%QiF$OSJY8Mq*e4#6hOz=$as!b8&HL71Q>?0Rwf>}Md7`vHAK{0p}Ev7&cqJm7GL zL8of*8&ux7KveEb>loylL&E(Hx$_}6>V|X3m^6ip9mXKT4^H{0z-4eIa&z~Ql922$ z<6{f~t_*k8W4Vi+PR186UN}!T*yN%pcc?xE0M-O}90&u($Xf@mXaF#vx8Ei*z>MLs z*hTWMo2={B=r~L#qgJz!;tWlOn%!b>kN#51SSunQUP1*2f)VK7O0FMo;Q297z;FJ? zz6vwZz<3qQ{b~P^&o3e(r0?nx2LtC-0@!z+gnNf{$%s4j@j#|ZRv9WHJQSv*+aWVx z0Y?o}da)5GEnk^-_AlREq;Dz&e5XNJ2XNG=3;I5$Oz{StJ&9Q^76Ik{`h+{=mI31^ z0aGV1RH!Urs8(WEOZXZU!SPfoBBD!);vJX^(c?6VNH@DeBOwj@Eu@R&c*6A32=qJ< zIxD7MK%V&pRSyUBRw?+o?*@am0JwE!$?vZXtpVl%S*I<&urYXd3(3NBkV?==90{KY zuX%G$!!SfNqJV&SiKJTK>-_;m0zZFSj1OOHEQ3sz1ZaIdfDQxKY&T4D*J#3N1mb+C zo`ryVQZO1Uzcr!Kn`0G!ph92|dWc|L9Qa}bcBd~6pnZVRytwdd0?c_s`6G1@t(-cd zh|-=uD_#5ovAjd0(qQ$6nLXUJ9fMc_I>d6IHV5K^PmGNl95bB3@(Ob%sAwHk4nOsj z51`U+th-5j?7{TP?;r`GEvO96rK&PH2#^7T-squulW(exZC^AM-vFo|j;bF@f2trr zHB7@3XSln_J2$Wogt}t_%tQJeR&>2TI~SV@u8T@#C&u=5oWK$xfyP<5o$&QSid7hS|tN+!2SWtIU0sd|B12~h-l+IEcfzX5$Bi?3hBIAMIb(4)I}{| zS=qk+elfr$E0W(pqnKOTlKE|*myO|My_Mj^ddv~qTpxnyK!`| zLxK|(f=}G93mQ{9J#Q^3RazA6?H0WB#NLj>`)7>$kpT>=xR_vDDmSbutf#qFUko9> z{%fOOhEqEXu4;<9P-$~+-H-DEI<93=_Ws;D1fo*Jek9cM9||~R{VE@&e<&g#d>5X5 zT^QTnn*mR47j9?ejoNgK`$6530o|v_Q;R2X_=w49OD~Nol0=J~f(_kBaa2!Hs?#*X zR!t4}1_V=|{dTAr?hrBtf3e+I0MGkOXV?Hi?VcR9pr`BgQb~* zIt0TaC07vf02UB1pm+5M=Fq1=Ddc^WxA@}@gvRX#Zo%@5%Uk{%l6(v+!I^CI0d29W zz|oQOegXyachKup!UD=_7KfhYFG{Z6Y{Wo>c1Sb{e3nz2rF*>WE^n_A<{~b0c>)Pb zmHuUwq(>}?Nv1a}nti*(ks0KwOjQeD-L?aE^oZ7|2#&JM{njW{WRKyxfFiWDa#+`H1;XvWXL6prC|8QM3w)*N#}Bb}#w=NezxA^4 zn|JKH?XJO(3np@*-e)p6{X%8!(xvFjC4eW@4Mx1h(u z8VM8@Ds>6sc}sq``P0POM*4Q66feL_qB1R{QPD#cZpL}yu9h=1V0r8PxlMe>@R5PQ zli@(y3*JocFF2dPb`UwcjPKQf+ z+8Vz(0*eC?GX?J*bmt`{citky?0)#MRJzn!`D>w7;!W(55a;HTQaBSfv%?bcgo}w8 zYQiSymq*@#j#@9A$$BU!S#ey0Jb^mAnc=t9=lC-%JenN-;X|>fzfh4m!Ex*=z1vZf%}_e{?^jo+pwDF&lL4HHDO=ukSFWh@SN*mlG^h zPIrCl3v>N0Bkp4b`x&%&nnP+-$7A%jkP=YqY#w*pjbm*{m#1@#1J0knhRv?Tq-zkcVT=Er}Dp8 zfJWGhiU*d&geri`*1eL$z^;td71K9z3AgqPfr_R- zj0VQqH=hZzO{V3LcRk}-yuq%Pn=ipSTDk40pJj4Op8ZWmeT|V_$<$U#j|p`wg_v$6 zA81fMW3N zylr#RURtWrM#++H^5K=TQExeW?<3wsTPB(?C++wn()XNRRjv^V*6i^Q)&ky{)(d`O zEaW#yN^z`jpvp|-^3VFoakTw|jso6YMtoWB6l`@?R?)+XfJsuKvG5-4{RNlAP{l(o?W`x)MgY_M@uOP7YtPUaPcy}>yau<0Qe zBzqot*Q4dcFceKvffIXN33?4KVsvj0JdkFi*(Lnb8`#16^iEk-9=m!{C|ST+kJFVj z?~mE*EN+_r;`)#nEdF=IsuA-r4&_wWNbb8&q$4u_gpz6X8)UgO(96uIz08HOrU&7K0nfN3z(>x6h}NMgiwC4QK}%|_`LfhT#r zw)VvmrO7nPX#l>Tr7l*)9sR;TLjinkQ54ZbN(wuGN0sWUg+=~OtzU~cYd@eQD2_>H_uKTspSeEpya!W5-TZ)AmPV0B?Kz0EF_?b+ltsxChAI}uOV7B87A(uk=E zA63?zdQ5TL<=!{spu(24s{TGPP$mA1RBx}yIeibmS)lKkV@kC6_0_p0|46&uhov2B z0uCJ<&46Xari*I|uq2q$aq*inE_}IE@p=eXWI>|$u&YhCB z%*dtF9!uw}3U1l;P{%l$+$^*nZZ)@@LE?$E^|;k7{G~aNsj*&+ZJKlEr0d(422GLT z8UC2Ui4bxd@H(-b``7)$Pdt1%G@DP=JoOr_2%0Y&WPYd;Myd>7b$JMEFEtLuu07ig z6HSd{9auKvKP&veJdyQ7#l6XlpfAgpK-aepE{%1Hz8W&d8n`4PX;+gg%y-J!L ziu#8|j6+3(w-Zu#q z-!by;k^4A7XZCTGm6?bl%i@d(>&Ljy`pO5)a*@pV80Ch-^zC5}>fuL29g|`aMZX_Y zX0R%}(eE+te8i8LPYef!~YASinl_LuM7*Ul*2hPAO->F_MX zS=cMZEAAUz^81?lBp*$8YT;V`k=>u7ZomK9_`|grip58>WUAkV#!e<`nDAr{|5deh zB%+E`T>Hk&?WAY9aQMR$*hnim8%YpP^ht#nQgr zE0K30^{Fdzb)=y}FgvW1l_E-PImE`V_qdbxP5O|UkZdYm^G)xsK0LR@fpYQ0-@w!+ zD$^)6=*Z3W%5-15*AZWOZJwKrvYMROxcr3rM9UZ#f9 z@g4EM5~XFJc|y;B#`T`#R`cb%^yh_G`M)5lmLwZ@o_TWUam{_SPSXCxoTw~)8GQ0e@p zVyJh`>~gMYzjZf~2^wsjUe;W^Ng{Q^rAtu@y1MW>@^TGzS#-e_AY#-ye6!~M(NrS0 zb5X6?r;FEv(&PheysM+ZNl}9msU?-k2RAC(3GNz@B>rPj&t+K?B#=F3<@n_Un<^dY zrd)e|MMC{5<)ki=r3c`g&|Y8;V_q_^^sGHRf9u$4ti*aW!Q#(6)a$wT(xJ(2$OH)mbTyt1GVv^NX#TgR#rvCEa5$a8S*Ec1RS9;I(o0b*L?9Ol+h;7)4bf$pkBB%;Wf<{udE(E-@LT^CKJ?FQhaJ|N#UMXN{aG6;2kmea zc2Zg{*Y?Bv;gwx3H&IbrBayA5#WcC1PqXr7Bq@V)6p*%vyW$zk0b{G*5;ZxUNCs95 z5o|6w+2$Q2E#7OoR8bG<+?F})U%sJoL(3+?mHeV%$1k@n+#>btIenxV|2erosP%^YXCHko)_2juHm zg)(JHq9obT62r%}S?%$oxaAtNm&$TGvFB=R?if2C zJGjihV_K>mxq16ZAl6~<@yn9l$cJd||L9-TJh{n??Q2dZPnee_9lPIpJR1K)Zk1mn zN4$zc8N=K-{@yZ|bMXoX%eLo{gUI!p44#E&P5xhMg$VI_={`}F@*DW_M%>>_ zH#7Ob8wr_CBq|4sTTL=O_qz>{9dfoNyMrAJHm zNAVmhJeW7x=L78NKjpdbg|K%L|HErrq+rL=UfM7ASf?bs6B^7#&GP7+VXa}|b zxDC}uEhW2>e`7{uf#A=<{SSFd>0dScVwVE{Eb z4UUDzmUL!TyuG3>fJ(9(Rhyw|GR39OtWoU&xwFpU3Bzi#*;ieFgdgw5>Z(ceC4qpu`yMjjQ{+kiIzfKU+`qmlvhQx z+L_vdo_me76Hr_ZwF9e^_0u_Bj-;(oqPzV z1oX?X{==^z7$Dbht;9*5-$nlHyod$Bq&VWcA58%$0U>oOcjOTOc4+ z@#Rtj7WSJ6#ptt&4eqfUv}-z+*0+So_kihQ=z8{N@iWlu!cTrgh=EyjVrq3{tgD#q ziRL2fX{Dh;p*pPaeVW|NJ}5VD+U+RVw&t;%eDAq5% z3A>${W7<32&kzpBF5Y9Ma4>K+=%;+{jrf30n)p>_Rzx1?JutoC@Pw;!JTf$-Rwf~R zSwTAkKAFBt76(z^EYOL!%OCwwe>&ZeDwz;qqDM<&4VU9}ua+E6VicN)3yJ5sXnbjc zauq_gW`x8PMF|PSzTfWZL@)rjIF*i(&}G1`!5cyuIYS=2*bETm{~b2aEiGaX6AKGf01Npy3_)H-ZIcTvB=hi*$(<~c?WNb|;Un{4 zR}X*(0elmPi*mT+QG|I{QK3|QBr;1@)-pN-4cYAqcp)Gf5WGbrQ3|jhpokyMry-gL zn9)3+YwTe1S1BF@iOobltH6Y3k-6gKWzlg9KLITpt7uV*e1Q8#roFm<$=$( zl+c&?NFNg1*rt;evxMy-{HPotG+?<8>Q{1sRhQkn1@HjDBU{+-Hy}p?2ucZ%nqL>D z7zQ=L%djw%JphtaUX{yTh}nWZN}zsubqvM*DwFQXw# zgMlRAMfCsrxoopNMgaBw4o@8cJbwldR0vQ`X1W?4#MJ$P)A2v>)ZXJ9h+0vt)&#qK zB*}~cP|Bt-BT(`fBR#wG#*W}AGyJZ$AxMSjLR3E3DfosU zrjO%!DSWxM`T#jwql3$77mP7UnSh?O$(Q!wk~>F;09?jum3gBToDh-s0a(5Os3t-c zg*Sb|2R8@*8V;DQ%2ssNRFTNVHBy@~G{D}w&v{lMWIBXfAH)oASx}GOY_(Mz<*$3 zvR<+P(yBG?YQXt=1HNO`rAR?iK0OtX$`}Cz%*FHy>cqe~usrw;3^VgIJVgJ+0v6#Y zERnUYzw}=KC9irP;BO}Iyl23lJ_oQp|V*40XkfQ9ZFf z#t@QMYIRGD^WNJO8CxLq)#Rij80BQ=I`&^Z|8Tn$;-V%XR%LiH6;LMMDNso$`AY;{ zexWIoe~z&{h&0%>kc3lUk>_qOYQq=8NOXXI2Dpv=8hmaFbq84ZwEBSbvj0~OR~KpuIDhRXB1ENcTZ8|7bt6bpqLJtVgjUY4=9_oAO@08#|%6aK(+?}sJ2Zz1j( zip#g<5&_r0_eMXAmtX$}=r4RUK^C(%SB)5$!kmZb*z=YrKX0L4&!^@rDEk|v`N87T z428g8x`FbH^0slQPlebhWy$P(2?J5?QF4Zz^qj_A5J zB37qXytcsdnX?WzYhDBJ?!NdIB>X4WKmN-3d8AtCYBDFO{poRpc2KJV{O@$C=xYBz z{K8=wbRBirq(w+Oow7znNasgjFG3IRQXptLAd@bg z6ZG4z3&w~6cj)Vb-O&{TMY*^LCEOIOdPAVanw5X3bc(9N7>O6B#F1k}|0@r#*+=BL zKCs;EsONX1lhjpO78k~LMBv&@pn&H=wDtBP!tjG6F(VHAxvCG)QL*fNE$5cXLqHTl z=NZAj?i$cg!cBsTJTm%e}D^R zm#;w-mSR`~I$dhg*Y6_V6-Y%gU6>A zUJ=HTw&@4v5ZLpU6IY(EX`i(05)L#0-8cKDfXc%Azq|&*C~9U-&aSaZdoHdL!yCca zYt77DPk^f8hTjahLI+r=xm^nu;jW|qjGCjs1#GF@0}enbFc|M0f4gzr9MuAt+2bqD zU_HP2jt_x=v=P&5cj3bW-J|<26bAzLwI4`)?y5p_xIXCG9$tW;&ihHc|Mu)Rh(=6c zfYaUn!vmC_9-?ro9}f;#{Z)Y+kdi=%@ZW)goZ-L+Fk}&4yBhrnn`1}7CcGxV<}Lsw z2?wSD9K%ssaEV!md_m$CwHCs$05z15R>SH1*aAdA&;@w!Yy-@^xxl6XBo3X6KjHT9 zuApbBRMBbyvnR^@qhxrAx~qt6m(?`QA^qfN=Z*4v!zu)rogHK0kIj0{dd*gw5)51% z?(r12)0Q-%xJL;1zVHJgaYPsb9E+eVZSr~-hRKIpRG&V=1C`AG&}S(X=+=Q4b^E6f zUPi7tQmWl+AbJMJ=#0+_Jp(v9ePBiaZIdNplYnOP76cn6-R;yAdGceM(_tDSB4Pf4 zX(ittEMT`MzquWF?(Ani&b1IRqW_FX&|!Q8P2o}(p;D^x0RcdA0%IsEEbIX&h9gd4 z@Y(a{a2gsQi|Y)5x`C@9^Qj<^i;ARVN8+OAK@za&^IHz|K0+Bn1CT(Z&hz%=Wd=da8I7+lfiT z4Dp;F8?A5pdK%vC<$IzBFRNhYi!N06$8Se$Aj}hawt?NNS_I+qyE_FT_3HG=8xu8U zN7yHjSk#+(yEgE`SCrsiuR-rmieuoRN!iM@GTk8K(JxLbDvF@L%tvFM22ul;qGDi; zeB^^Fmn1s_rti$iMjyBPCI7bpU$};Sx&umZ<@-Wd1uWYl;K}3P+n#GPQY zxyRY?^=t)fT&SFV<#)H9p1@t#@I;06^oy=dH;U~HER1irNHX|u(0jo`Y_(M>2DEsu z_~iqhgr6&|-$|?cXhj{F(Br{FyMjIpw|*2D->SlI$djc(^81NS zIr1828b+1Sp20y?O04YAGx2%p$!B}njRD-WgjIPmo%%3Cd8Gj^afR5!NYMi@vF8V{ z@z?8SmR7-(4bP7Cui_}+FVZYYIgXI%QFJgZSjI6d<-zHm^uaJN1ds;yUin+XT2c2i zKRt@|)*=^LK(W`7QJvTY=dGoWJYjcz{KWH2yS4Aukf(2-uxZR8JkI)!mZ|E-cMah4 zT5(9tBx#J9D`#JrtZJoKX791T%WgOe4*9U37Cgs6FdsU)m`}Ei(KQ{3bO#>^VwEoF zT|GMSk)qj$7(B$kgp~%bEvJW;Uf1a*fBffDC%1*oCKY97^)O4S&BeBFUun{O zW)K*Q%7nc2E?ZoL6sfS$~Z3K-*(HH@~-YRZvAz?L!z7ch6dH4!zwyJSRNja zKzz$;O-h)qFqfl@AAhVYV!Ol7ej7phsc>0V9=4H6Q>xB{8+{a_IU%DT;U;@Nq8UtP zVSQFegQ>r=-QmCXB6~%VmTdEY4(4UJU9P|9dv6P?<;EPtQ+|qckP=LeE%D3Jgj7f6 z)w`4G{?6CggJ6Xr79~a;dJC=2iv~8!%&W+4Pv3I2gkr?)>aKe!T6R&;kHFFpmBG~8 zK}qD5`bP2&dqGeci~}+9|CA+nL~KUB0?3Z{_%LC1_K`WuS(a7kp~yY_Bf_rDA~#!e zk1Za>ckU3jq8)Lu89>oe0YAIAqddd-yFql7__71F1Syo*8Y+>tGjwDy0^m_z3;%TK zm3dRS8J0x2H%HEz9Nh)!!X)Fg&PauOe^zJ{l@_IP?x76ryBUBZ|wcgS|kmSRnwt-@n1ohh&*$OLZo)7gM=O_|y!ZE5oH<3%V zma`+VCCFj5j`h}S-z`h?8rSkp2{NMA)ZEBlIirF*j`OX@I$th47E^s8qw%n$rfF#% zj4eL%A-$7vRL78#oCg=^dl>lB)V>y$Vj%bAZNi)>n{&0A!i{kW`OV`zmu8#oXs6yu z<=hT``O=uAZHy*B7sN+7FcQ_tb*nmSqFh>hWN~DTFv2H85Nu|HNu`V}prva4gH`ZuS0qC1&?zi?z)&nN+3&Qz4 z29Dvqb#5?TZL=^xHnx!rw!6DZQ#||Qi;uhH<$0d~Xrw*{5lmNpZB{uH>BQY|u+ zD+%+xta?N|HoXf&z_+x2>G&SPqd(PTV)Cu1x>u>$Y<77=$ba5%G^XKgX6$-s%{?