From 8340b2c84fc96bdc608a6721a05b396c1019b105 Mon Sep 17 00:00:00 2001 From: sindoring Date: Sun, 23 Aug 2026 00:35:32 +0400 Subject: [PATCH] dbc editor vscode extentsion --- vscode-dbc-editor/.gitignore | 4 + vscode-dbc-editor/.vscodeignore | 9 + vscode-dbc-editor/LICENSE | 22 + vscode-dbc-editor/README.md | 55 + vscode-dbc-editor/THIRD_PARTY_NOTICES.md | 20 + vscode-dbc-editor/esbuild.mjs | 22 + vscode-dbc-editor/media/editor.css | 210 + vscode-dbc-editor/media/editor.js | 201 + vscode-dbc-editor/package-lock.json | 4869 +++++++++++++++++ vscode-dbc-editor/package.json | 77 + vscode-dbc-editor/schemas/12340.json | 1 + vscode-dbc-editor/schemas/README.md | 12 + .../scripts/build-schema-bundle.mjs | 121 + vscode-dbc-editor/src/dbc/codec.ts | 179 + vscode-dbc-editor/src/dbc/document.ts | 70 + vscode-dbc-editor/src/dbc/schema.ts | 55 + vscode-dbc-editor/src/dbc/table.ts | 232 + vscode-dbc-editor/src/dbc/types.ts | 68 + vscode-dbc-editor/src/editorProvider.ts | 322 ++ vscode-dbc-editor/src/extension.ts | 15 + vscode-dbc-editor/test/codec.test.ts | 81 + vscode-dbc-editor/test/project-files.test.ts | 73 + vscode-dbc-editor/tsconfig.json | 17 + 23 files changed, 6735 insertions(+) create mode 100644 vscode-dbc-editor/.gitignore create mode 100644 vscode-dbc-editor/.vscodeignore create mode 100644 vscode-dbc-editor/LICENSE create mode 100644 vscode-dbc-editor/README.md create mode 100644 vscode-dbc-editor/THIRD_PARTY_NOTICES.md create mode 100644 vscode-dbc-editor/esbuild.mjs create mode 100644 vscode-dbc-editor/media/editor.css create mode 100644 vscode-dbc-editor/media/editor.js create mode 100644 vscode-dbc-editor/package-lock.json create mode 100644 vscode-dbc-editor/package.json create mode 100644 vscode-dbc-editor/schemas/12340.json create mode 100644 vscode-dbc-editor/schemas/README.md create mode 100644 vscode-dbc-editor/scripts/build-schema-bundle.mjs create mode 100644 vscode-dbc-editor/src/dbc/codec.ts create mode 100644 vscode-dbc-editor/src/dbc/document.ts create mode 100644 vscode-dbc-editor/src/dbc/schema.ts create mode 100644 vscode-dbc-editor/src/dbc/table.ts create mode 100644 vscode-dbc-editor/src/dbc/types.ts create mode 100644 vscode-dbc-editor/src/editorProvider.ts create mode 100644 vscode-dbc-editor/src/extension.ts create mode 100644 vscode-dbc-editor/test/codec.test.ts create mode 100644 vscode-dbc-editor/test/project-files.test.ts create mode 100644 vscode-dbc-editor/tsconfig.json diff --git a/vscode-dbc-editor/.gitignore b/vscode-dbc-editor/.gitignore new file mode 100644 index 0000000..2dea912 --- /dev/null +++ b/vscode-dbc-editor/.gitignore @@ -0,0 +1,4 @@ +node_modules/ +dist/ +*.vsix + diff --git a/vscode-dbc-editor/.vscodeignore b/vscode-dbc-editor/.vscodeignore new file mode 100644 index 0000000..4d2c92e --- /dev/null +++ b/vscode-dbc-editor/.vscodeignore @@ -0,0 +1,9 @@ +.github/** +.vscode/** +.gitignore +scripts/** +src/** +test/** +tsconfig.json +esbuild.mjs +package-lock.json diff --git a/vscode-dbc-editor/LICENSE b/vscode-dbc-editor/LICENSE new file mode 100644 index 0000000..bf02df9 --- /dev/null +++ b/vscode-dbc-editor/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2026 MoonWell contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/vscode-dbc-editor/README.md b/vscode-dbc-editor/README.md new file mode 100644 index 0000000..967e889 --- /dev/null +++ b/vscode-dbc-editor/README.md @@ -0,0 +1,55 @@ +# MoonWell DBC Editor + +A VS Code Custom Editor for World of Warcraft 3.3.5a `WDBC` files, targeting client +build `12340`. + +## Features + +- Opens `.dbc` files as a paged table instead of loading the whole grid into the Webview. +- Includes 246 build-specific schemas with named and typed columns. +- Edits signed/unsigned integers, floats, UTF-8 strings, arrays and localized strings. +- Supports add, duplicate and delete row operations. +- Integrates with VS Code undo/redo, Save, Save As, Revert and hot-exit backups. +- Rebuilds and deduplicates the WDBC string block when saving. +- Creates `.dbc.bak` before an in-place save by default. +- Falls back to raw 32-bit columns when a schema is missing or its record size differs. + +The editor intentionally supports `WDBC` only. Later `DB2`, `WDB` and cache formats are +outside the current build-12340 scope. + +## Development + +```powershell +cd vscode-dbc-editor +npm install +npm run check +``` + +Open this directory in VS Code and press `F5` to launch an Extension Development Host. +Open any `.dbc` file there; the custom editor is registered as the default editor. + +To produce an installable VSIX: + +```powershell +npm run package +code --install-extension .\moonwell-dbc-editor-0.1.0.vsix +``` + +## Editing notes + +- Click a row number to select it for duplicate/delete operations. +- Cell values can be edited inline. The lower text area is useful for long strings; + press `Ctrl+Enter` or click **Apply cell**. +- Search is performed on the ID plus ordinary, `enUS`, and `ruRU` string columns. +- An unknown or structurally different table opens in raw mode to avoid applying the + wrong string offsets or field types. +- ID edits are rejected when they would create a duplicate key. + +## Schema provenance + +The schema bundle is derived from WoWDBDefs under CC BY-SA 4.0. See +`THIRD_PARTY_NOTICES.md` and `schemas/README.md`. + +WDBXEditor was used as a behavioral reference only. Its source and XML definitions are +not redistributed here. + diff --git a/vscode-dbc-editor/THIRD_PARTY_NOTICES.md b/vscode-dbc-editor/THIRD_PARTY_NOTICES.md new file mode 100644 index 0000000..3dde49e --- /dev/null +++ b/vscode-dbc-editor/THIRD_PARTY_NOTICES.md @@ -0,0 +1,20 @@ +# Third-party notices + +## WoWDBDefs + +The build `3.3.5.12340` schema bundle in `schemas/12340.json` is derived from +[WoWDBDefs](https://github.com/wowdev/WoWDBDefs) by the WoWDBDefs contributors. +WoWDBDefs definition data is licensed under +[Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). + +The source commit used to generate the bundle is recorded inside `schemas/12340.json`. +The transformation retains only the build 12340 layouts and expands arrays and localized +strings into physical WDBC columns. The resulting schema data remains available under +CC BY-SA 4.0. + +## WDBXEditor + +[WDBXEditor](https://github.com/WowDevTools/WDBXEditor) was used as a behavioral +reference for the definition-driven editor workflow and WDBC string-table handling. +No WDBXEditor source code or definition files are included in this extension. + diff --git a/vscode-dbc-editor/esbuild.mjs b/vscode-dbc-editor/esbuild.mjs new file mode 100644 index 0000000..88fed1c --- /dev/null +++ b/vscode-dbc-editor/esbuild.mjs @@ -0,0 +1,22 @@ +import * as esbuild from "esbuild"; + +const watch = process.argv.includes("--watch"); +const options = { + entryPoints: ["src/extension.ts"], + bundle: true, + outfile: "dist/extension.js", + external: ["vscode"], + format: "cjs", + platform: "node", + target: "node20", + sourcemap: true, + logLevel: "info" +}; + +if (watch) { + const context = await esbuild.context(options); + await context.watch(); +} else { + await esbuild.build(options); +} + diff --git a/vscode-dbc-editor/media/editor.css b/vscode-dbc-editor/media/editor.css new file mode 100644 index 0000000..1778844 --- /dev/null +++ b/vscode-dbc-editor/media/editor.css @@ -0,0 +1,210 @@ +:root { + color-scheme: light dark; +} + +* { + box-sizing: border-box; +} + +html, +body { + width: 100%; + height: 100%; + margin: 0; + overflow: hidden; + color: var(--vscode-editor-foreground); + background: var(--vscode-editor-background); + font-family: var(--vscode-font-family); + font-size: var(--vscode-font-size); +} + +body { + display: grid; + grid-template-rows: auto minmax(0, 1fr) auto; +} + +button, +input, +textarea { + color: var(--vscode-input-foreground); + background: var(--vscode-input-background); + border: 1px solid var(--vscode-input-border, transparent); + font: inherit; +} + +button { + min-height: 26px; + padding: 3px 10px; + color: var(--vscode-button-foreground); + background: var(--vscode-button-background); + border: none; + cursor: pointer; +} + +button:hover:not(:disabled) { + background: var(--vscode-button-hoverBackground); +} + +button:disabled { + cursor: default; + opacity: 0.5; +} + +.toolbar { + padding: 8px; + border-bottom: 1px solid var(--vscode-panel-border); +} + +.file-info, +.actions { + display: flex; + align-items: center; + gap: 8px; +} + +.file-info { + margin-bottom: 7px; +} + +#file-meta, +#row-count { + color: var(--vscode-descriptionForeground); +} + +#search { + width: min(420px, 35vw); + min-height: 26px; + padding: 3px 7px; +} + +.separator { + align-self: stretch; + border-left: 1px solid var(--vscode-panel-border); +} + +.warning { + margin-top: 7px; + padding: 6px 8px; + color: var(--vscode-inputValidation-warningForeground); + background: var(--vscode-inputValidation-warningBackground); + border: 1px solid var(--vscode-inputValidation-warningBorder); +} + +main { + display: grid; + grid-template-rows: minmax(0, 1fr) auto; + min-height: 0; +} + +.grid { + overflow: auto; +} + +table { + border-collapse: separate; + border-spacing: 0; + min-width: 100%; +} + +th, +td { + height: 29px; + padding: 0; + border-right: 1px solid var(--vscode-panel-border); + border-bottom: 1px solid var(--vscode-panel-border); + white-space: nowrap; +} + +thead th { + position: sticky; + top: 0; + z-index: 2; + height: 30px; + padding: 0 7px; + text-align: left; + color: var(--vscode-editorGroupHeader-tabsBackground); + background: var(--vscode-editorGroupHeader-tabsBackground); + color: var(--vscode-editor-foreground); +} + +.row-number { + position: sticky; + left: 0; + z-index: 1; + min-width: 58px; + padding: 0 7px; + text-align: right; + color: var(--vscode-descriptionForeground); + background: var(--vscode-editorGutter-background); + cursor: pointer; +} + +thead .row-number { + z-index: 3; +} + +tbody tr.selected .row-number, +tbody tr.selected td { + background: var(--vscode-list-activeSelectionBackground); +} + +td input { + width: 150px; + height: 28px; + padding: 3px 6px; + background: transparent; + border: 1px solid transparent; +} + +td input:focus { + outline: 1px solid var(--vscode-focusBorder); + outline-offset: -1px; + background: var(--vscode-input-background); +} + +.id-column { + color: var(--vscode-symbolIcon-keyForeground, var(--vscode-editor-foreground)); +} + +.cell-editor { + display: grid; + grid-template-columns: minmax(180px, 1fr) auto; + gap: 6px; + padding: 7px 8px; + border-top: 1px solid var(--vscode-panel-border); +} + +.cell-editor label { + grid-column: 1 / -1; + color: var(--vscode-descriptionForeground); +} + +.cell-editor textarea { + min-height: 52px; + padding: 5px 7px; + resize: vertical; +} + +footer { + display: flex; + align-items: center; + gap: 10px; + min-height: 38px; + padding: 6px 8px; + border-top: 1px solid var(--vscode-panel-border); +} + +#page-number { + width: 64px; + padding: 3px 5px; +} + +#status { + margin-left: auto; + color: var(--vscode-descriptionForeground); +} + +#status.error { + color: var(--vscode-errorForeground); +} + diff --git a/vscode-dbc-editor/media/editor.js b/vscode-dbc-editor/media/editor.js new file mode 100644 index 0000000..aa721d2 --- /dev/null +++ b/vscode-dbc-editor/media/editor.js @@ -0,0 +1,201 @@ +const vscode = acquireVsCodeApi(); + +const state = { + columns: [], + page: 0, + totalPages: 1, + query: "", + rowIndices: [], + rows: [], + selectedRow: null, + selectedCell: null +}; + +const elements = { + fileName: document.getElementById("file-name"), + fileMeta: document.getElementById("file-meta"), + warning: document.getElementById("warning"), + search: document.getElementById("search"), + grid: document.getElementById("grid"), + previous: document.getElementById("previous"), + next: document.getElementById("next"), + pageNumber: document.getElementById("page-number"), + pageCount: document.getElementById("page-count"), + rowCount: document.getElementById("row-count"), + status: document.getElementById("status"), + duplicateRow: document.getElementById("duplicate-row"), + deleteRow: document.getElementById("delete-row"), + cellLabel: document.getElementById("cell-label"), + cellValue: document.getElementById("cell-value"), + applyCell: document.getElementById("apply-cell") +}; + +document.getElementById("find").addEventListener("click", () => requestPage(0, elements.search.value)); +document.getElementById("clear-search").addEventListener("click", () => { + elements.search.value = ""; + requestPage(0, ""); +}); +elements.search.addEventListener("keydown", (event) => { + if (event.key === "Enter") requestPage(0, elements.search.value); +}); +elements.previous.addEventListener("click", () => requestPage(state.page - 1, state.query)); +elements.next.addEventListener("click", () => requestPage(state.page + 1, state.query)); +elements.pageNumber.addEventListener("change", () => { + requestPage(Number(elements.pageNumber.value) - 1, state.query); +}); +document.getElementById("add-row").addEventListener("click", () => vscode.postMessage({ type: "addRow" })); +elements.duplicateRow.addEventListener("click", () => { + if (state.selectedRow !== null) vscode.postMessage({ type: "duplicateRow", rowIndex: state.selectedRow }); +}); +elements.deleteRow.addEventListener("click", () => { + if (state.selectedRow !== null && window.confirm(`Delete row ${state.selectedRow + 1}?`)) { + vscode.postMessage({ type: "deleteRow", rowIndex: state.selectedRow }); + } +}); +elements.applyCell.addEventListener("click", applyInspectorValue); +elements.cellValue.addEventListener("keydown", (event) => { + if ((event.ctrlKey || event.metaKey) && event.key === "Enter") applyInspectorValue(); +}); + +window.addEventListener("message", (event) => { + const message = event.data; + if (message.type === "init") { + state.columns = message.columns; + elements.fileName.textContent = message.fileName; + elements.fileMeta.textContent = `${message.schemaName} · WDBC · ${message.header.recordCount.toLocaleString()} rows · ${message.header.fieldCount} fields · ${message.schemaCount} schemas`; + if (message.warning) { + elements.warning.hidden = false; + elements.warning.textContent = message.warning; + } + } else if (message.type === "page") { + Object.assign(state, { + page: message.page, + totalPages: message.totalPages, + query: message.query, + rowIndices: message.rowIndices, + rows: message.rows, + selectedRow: null, + selectedCell: null + }); + renderGrid(); + renderFooter(message); + clearInspector(); + } else if (message.type === "error") { + elements.status.textContent = message.message; + elements.status.className = "error"; + if ( + state.selectedCell && + state.selectedCell.rowIndex === message.rowIndex && + state.selectedCell.columnIndex === message.columnIndex && + message.currentValue !== undefined + ) { + state.selectedCell.input.value = message.currentValue; + elements.cellValue.value = message.currentValue; + } + } +}); + +function requestPage(page, query) { + elements.status.textContent = "Loading…"; + elements.status.className = ""; + vscode.postMessage({ type: "page", page, query }); +} + +function renderGrid() { + const table = document.createElement("table"); + const head = document.createElement("thead"); + const headRow = document.createElement("tr"); + const rowHeader = document.createElement("th"); + rowHeader.textContent = "#"; + rowHeader.className = "row-number"; + headRow.append(rowHeader); + + state.columns.forEach((column) => { + const th = document.createElement("th"); + th.textContent = column.name; + th.title = `${column.kind}${column.bits}${column.isId ? " · ID" : ""}${column.locale ? ` · ${column.locale}` : ""}`; + if (column.isId) th.classList.add("id-column"); + headRow.append(th); + }); + head.append(headRow); + table.append(head); + + const body = document.createElement("tbody"); + state.rows.forEach((row, pageRowIndex) => { + const absoluteRowIndex = state.rowIndices[pageRowIndex]; + const tr = document.createElement("tr"); + tr.dataset.row = String(absoluteRowIndex); + const selector = document.createElement("th"); + selector.className = "row-number"; + selector.textContent = String(absoluteRowIndex + 1); + selector.addEventListener("click", () => selectRow(absoluteRowIndex, tr)); + tr.append(selector); + + row.forEach((value, columnIndex) => { + const td = document.createElement("td"); + const input = document.createElement("input"); + input.type = "text"; + input.value = value; + input.title = value; + input.setAttribute("aria-label", `${state.columns[columnIndex].name}, row ${absoluteRowIndex + 1}`); + input.addEventListener("focus", () => selectCell(absoluteRowIndex, columnIndex, input)); + input.addEventListener("change", () => editCell(absoluteRowIndex, columnIndex, input.value)); + td.append(input); + tr.append(td); + }); + body.append(tr); + }); + table.append(body); + elements.grid.replaceChildren(table); +} + +function renderFooter(message) { + elements.pageNumber.value = String(message.page + 1); + elements.pageNumber.max = String(message.totalPages); + elements.pageCount.textContent = String(message.totalPages); + elements.previous.disabled = message.page <= 0; + elements.next.disabled = message.page >= message.totalPages - 1; + elements.rowCount.textContent = `${message.totalRows.toLocaleString()} matching rows`; + elements.status.textContent = ""; + elements.status.className = ""; +} + +function selectRow(rowIndex, rowElement) { + state.selectedRow = rowIndex; + document.querySelectorAll("tbody tr.selected").forEach((row) => row.classList.remove("selected")); + rowElement.classList.add("selected"); + elements.duplicateRow.disabled = false; + elements.deleteRow.disabled = false; +} + +function selectCell(rowIndex, columnIndex, input) { + state.selectedCell = { rowIndex, columnIndex, input }; + state.selectedRow = rowIndex; + elements.cellLabel.textContent = `${state.columns[columnIndex].name} · row ${rowIndex + 1} · ${state.columns[columnIndex].kind}${state.columns[columnIndex].bits}`; + elements.cellValue.value = input.value; + elements.cellValue.disabled = false; + elements.applyCell.disabled = false; +} + +function clearInspector() { + elements.cellLabel.textContent = "Select a cell"; + elements.cellValue.value = ""; + elements.cellValue.disabled = true; + elements.applyCell.disabled = true; + elements.duplicateRow.disabled = true; + elements.deleteRow.disabled = true; +} + +function applyInspectorValue() { + if (!state.selectedCell) return; + state.selectedCell.input.value = elements.cellValue.value; + editCell(state.selectedCell.rowIndex, state.selectedCell.columnIndex, elements.cellValue.value); +} + +function editCell(rowIndex, columnIndex, value) { + elements.status.textContent = "Applying edit…"; + elements.status.className = ""; + vscode.postMessage({ type: "edit", rowIndex, columnIndex, value }); +} + +vscode.postMessage({ type: "ready" }); diff --git a/vscode-dbc-editor/package-lock.json b/vscode-dbc-editor/package-lock.json new file mode 100644 index 0000000..a094109 --- /dev/null +++ b/vscode-dbc-editor/package-lock.json @@ -0,0 +1,4869 @@ +{ + "name": "moonwell-dbc-editor", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "moonwell-dbc-editor", + "version": "0.1.0", + "license": "MIT", + "devDependencies": { + "@types/node": "^22.15.0", + "@types/vscode": "^1.90.0", + "@vscode/vsce": "^3.6.0", + "esbuild": "^0.25.0", + "tsx": "^4.20.0", + "typescript": "^5.8.0" + }, + "engines": { + "vscode": "^1.90.0" + } + }, + "node_modules/@azu/format-text": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@azu/format-text/-/format-text-1.0.2.tgz", + "integrity": "sha512-Swi4N7Edy1Eqq82GxgEECXSSLyn6GOb5htRFPzBDdUkECGXtlf12ynO5oJSpWKPwCaUssOu7NfhDcCWpIC6Ywg==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@azu/style-format": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@azu/style-format/-/style-format-1.0.1.tgz", + "integrity": "sha512-AHcTojlNBdD/3/KxIKlg8sxIWHfOtQszLvOpagLTO+bjC3u7SAszu1lf//u7JJC50aUSH+BVWDD/KvaA6Gfn5g==", + "dev": true, + "license": "WTFPL", + "dependencies": { + "@azu/format-text": "^1.0.1" + } + }, + "node_modules/@azure/abort-controller": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.2.0.tgz", + "integrity": "sha512-fNAjWnA/nZ2jz31kxR/AqRaUT8ewHBw/WuBIosK0moMy1C9e5ValbDfFdIxJzVOOYaYkV/b2F1S4H/aHiqfVQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=22.0.0" + } + }, + "node_modules/@azure/core-auth": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.11.0.tgz", + "integrity": "sha512-IUZydyTUkDnYdstOW9pFOOUQlBjAepK5teihDE3x6yxsPJs/hsAaaYpeGxdxrgtOiJbBKSjKW7MDk7AEhb4LRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^2.1.2", + "@azure/core-util": "^1.13.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=22.0.0" + } + }, + "node_modules/@azure/core-client": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@azure/core-client/-/core-client-1.11.0.tgz", + "integrity": "sha512-JjQWO6akOck45PH/XBrxzsQGAiKrfFl4m5iggJ0ItMIz5omRufOXWpqCPpdjKN3vKDzlSUvFjaMb7Zwf0gvAdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^2.1.2", + "@azure/core-auth": "^1.10.0", + "@azure/core-rest-pipeline": "^1.22.0", + "@azure/core-tracing": "^1.3.0", + "@azure/core-util": "^1.13.0", + "@azure/logger": "^1.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=22.0.0" + } + }, + "node_modules/@azure/core-process": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@azure/core-process/-/core-process-1.0.0.tgz", + "integrity": "sha512-/shnJ+ooO8WPxDhPEeI/2oRQuubn16gZ6CvlbpWbEswZfzwI9tI/sMAHmF3x1LuQ9yZYXfLW3TjzGMLEC5blKg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=22.0.0" + } + }, + "node_modules/@azure/core-rest-pipeline": { + "version": "1.25.0", + "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.25.0.tgz", + "integrity": "sha512-bMs8ekJLjX8wPV+9IPBges1SLPyuDtE9g5gLDWOpxzKcoOFQnpLGkbcT1tdw3FaAmDS1gnPmMmJ6y/T5B96kIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^2.1.2", + "@azure/core-auth": "^1.10.0", + "@azure/core-tracing": "^1.3.0", + "@azure/core-util": "^1.13.0", + "@azure/logger": "^1.3.0", + "@typespec/ts-http-runtime": "^0.3.4", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=22.0.0" + } + }, + "node_modules/@azure/core-tracing": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.4.0.tgz", + "integrity": "sha512-eGwxD0AtncrxeBM4tG8R55Pc3rdX1hNW2WibJAgYpCVA6E93mvvVH+LcssoVjOBrSKWS55yEIHsk0X8ctHmfOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=22.0.0" + } + }, + "node_modules/@azure/core-util": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.14.0.tgz", + "integrity": "sha512-9n2pWK61veAuN0V20t9lOuoV4CFMdyAZ1ygZzvBGk/pBBJRib/PjL9PLXa/aI2CcPpyHfqVsxxqLCYl6uZlfDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^2.1.2", + "@typespec/ts-http-runtime": "^0.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=22.0.0" + } + }, + "node_modules/@azure/identity": { + "version": "4.13.2", + "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.13.2.tgz", + "integrity": "sha512-NXL2/pCJctLxgw8bvrwwgge743kEq8LBT+O1pmV0vyUwetzFPH9auP6jhkU/cgZCPPtWoewAe3ncaGCgPo07fA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^2.0.0", + "@azure/core-auth": "^1.9.0", + "@azure/core-client": "^1.9.2", + "@azure/core-process": "^1.0.0", + "@azure/core-rest-pipeline": "^1.17.0", + "@azure/core-tracing": "^1.0.0", + "@azure/core-util": "^1.11.0", + "@azure/logger": "^1.0.0", + "@azure/msal-browser": "^5.5.0", + "@azure/msal-node": "^5.1.5", + "open": "^10.1.0", + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=22.0.0" + } + }, + "node_modules/@azure/logger": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.4.0.tgz", + "integrity": "sha512-rbAE25KUfjU/s3XHUdJgceoCP5dEOpMx85J04kF+QMdta73XkuG9JGHHinch+XIoKpBdqljin+KqURpJriSzLA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typespec/ts-http-runtime": "^0.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=22.0.0" + } + }, + "node_modules/@azure/msal-browser": { + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-5.19.0.tgz", + "integrity": "sha512-DHe9iRcyByGJuLPkl0K31a1JjOdRY2zX38Q07mQpSbR8zOj1EIgsWfTXhSQVyyijUxlcofVy/br7qWJbrMwVXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@azure/msal-common": "16.13.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@azure/msal-common": { + "version": "16.13.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-16.13.0.tgz", + "integrity": "sha512-rOAy0KUcyBbdwVJ+f3uPpthXatFLLZN+/KWAsTLzk1aB23Xl9DRmmXYwSvBFOZyXj4jUQQ5FKxxRkhAFW1fOow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@azure/msal-node": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-5.6.0.tgz", + "integrity": "sha512-uFY9NxrWHw8PwZx7gAX6PDn+9vdfS05+levc/kwkx77IkjfaldnQbbcQzzDIZ5Hq5Zdr6/z92oAIoRWKp6MnOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@azure/msal-common": "16.13.0", + "jsonwebtoken": "^9.0.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.29.7", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", + "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", + "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", + "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", + "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", + "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", + "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", + "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", + "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", + "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", + "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", + "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", + "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", + "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", + "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", + "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", + "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", + "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", + "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", + "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", + "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", + "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", + "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", + "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", + "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", + "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", + "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@secretlint/config-creator": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/config-creator/-/config-creator-10.2.2.tgz", + "integrity": "sha512-BynOBe7Hn3LJjb3CqCHZjeNB09s/vgf0baBaHVw67w7gHF0d25c3ZsZ5+vv8TgwSchRdUCRrbbcq5i2B1fJ2QQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@secretlint/types": "^10.2.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@secretlint/config-loader": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/config-loader/-/config-loader-10.2.2.tgz", + "integrity": "sha512-ndjjQNgLg4DIcMJp4iaRD6xb9ijWQZVbd9694Ol2IszBIbGPPkwZHzJYKICbTBmh6AH/pLr0CiCaWdGJU7RbpQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@secretlint/profiler": "^10.2.2", + "@secretlint/resolver": "^10.2.2", + "@secretlint/types": "^10.2.2", + "ajv": "^8.17.1", + "debug": "^4.4.1", + "rc-config-loader": "^4.1.3" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@secretlint/core": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/core/-/core-10.2.2.tgz", + "integrity": "sha512-6rdwBwLP9+TO3rRjMVW1tX+lQeo5gBbxl1I5F8nh8bgGtKwdlCMhMKsBWzWg1ostxx/tIG7OjZI0/BxsP8bUgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@secretlint/profiler": "^10.2.2", + "@secretlint/types": "^10.2.2", + "debug": "^4.4.1", + "structured-source": "^4.0.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@secretlint/formatter": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/formatter/-/formatter-10.2.2.tgz", + "integrity": "sha512-10f/eKV+8YdGKNQmoDUD1QnYL7TzhI2kzyx95vsJKbEa8akzLAR5ZrWIZ3LbcMmBLzxlSQMMccRmi05yDQ5YDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@secretlint/resolver": "^10.2.2", + "@secretlint/types": "^10.2.2", + "@textlint/linter-formatter": "^15.2.0", + "@textlint/module-interop": "^15.2.0", + "@textlint/types": "^15.2.0", + "chalk": "^5.4.1", + "debug": "^4.4.1", + "pluralize": "^8.0.0", + "strip-ansi": "^7.1.0", + "table": "^6.9.0", + "terminal-link": "^4.0.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@secretlint/formatter/node_modules/chalk": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@secretlint/node": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/node/-/node-10.2.2.tgz", + "integrity": "sha512-eZGJQgcg/3WRBwX1bRnss7RmHHK/YlP/l7zOQsrjexYt6l+JJa5YhUmHbuGXS94yW0++3YkEJp0kQGYhiw1DMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@secretlint/config-loader": "^10.2.2", + "@secretlint/core": "^10.2.2", + "@secretlint/formatter": "^10.2.2", + "@secretlint/profiler": "^10.2.2", + "@secretlint/source-creator": "^10.2.2", + "@secretlint/types": "^10.2.2", + "debug": "^4.4.1", + "p-map": "^7.0.3" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@secretlint/profiler": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/profiler/-/profiler-10.2.2.tgz", + "integrity": "sha512-qm9rWfkh/o8OvzMIfY8a5bCmgIniSpltbVlUVl983zDG1bUuQNd1/5lUEeWx5o/WJ99bXxS7yNI4/KIXfHexig==", + "dev": true, + "license": "MIT" + }, + "node_modules/@secretlint/resolver": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/resolver/-/resolver-10.2.2.tgz", + "integrity": "sha512-3md0cp12e+Ae5V+crPQYGd6aaO7ahw95s28OlULGyclyyUtf861UoRGS2prnUrKh7MZb23kdDOyGCYb9br5e4w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@secretlint/secretlint-formatter-sarif": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/secretlint-formatter-sarif/-/secretlint-formatter-sarif-10.2.2.tgz", + "integrity": "sha512-ojiF9TGRKJJw308DnYBucHxkpNovDNu1XvPh7IfUp0A12gzTtxuWDqdpuVezL7/IP8Ua7mp5/VkDMN9OLp1doQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "node-sarif-builder": "^3.2.0" + } + }, + "node_modules/@secretlint/secretlint-rule-no-dotenv": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/secretlint-rule-no-dotenv/-/secretlint-rule-no-dotenv-10.2.2.tgz", + "integrity": "sha512-KJRbIShA9DVc5Va3yArtJ6QDzGjg3PRa1uYp9As4RsyKtKSSZjI64jVca57FZ8gbuk4em0/0Jq+uy6485wxIdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@secretlint/types": "^10.2.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@secretlint/secretlint-rule-preset-recommend": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/secretlint-rule-preset-recommend/-/secretlint-rule-preset-recommend-10.2.2.tgz", + "integrity": "sha512-K3jPqjva8bQndDKJqctnGfwuAxU2n9XNCPtbXVI5JvC7FnQiNg/yWlQPbMUlBXtBoBGFYp08A94m6fvtc9v+zA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@secretlint/source-creator": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/source-creator/-/source-creator-10.2.2.tgz", + "integrity": "sha512-h6I87xJfwfUTgQ7irWq7UTdq/Bm1RuQ/fYhA3dtTIAop5BwSFmZyrchph4WcoEvbN460BWKmk4RYSvPElIIvxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@secretlint/types": "^10.2.2", + "istextorbinary": "^9.5.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@secretlint/types": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/types/-/types-10.2.2.tgz", + "integrity": "sha512-Nqc90v4lWCXyakD6xNyNACBJNJ0tNCwj2WNk/7ivyacYHxiITVgmLUFXTBOeCdy79iz6HtN9Y31uw/jbLrdOAg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@sindresorhus/merge-streams": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", + "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@textlint/ast-node-types": { + "version": "15.8.0", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-15.8.0.tgz", + "integrity": "sha512-5CiH9COYmovWmExQgs7763DzX6Gy9zjkjJ7JxCC95wyTcjwQn/8poNF6fv3qzRlmx8CRRde8DHr9FcgAAiPzgw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@textlint/linter-formatter": { + "version": "15.8.0", + "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-15.8.0.tgz", + "integrity": "sha512-+oU3A235NATv6Lzi4xa4kJ65PuNJlIxesaO4AvDhDWA9FWm7y4XKWaoQCW1esgaQQ6dwnUiFKArQ8TcJ86mC4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@azu/format-text": "^1.0.2", + "@azu/style-format": "^1.0.1", + "@textlint/module-interop": "15.8.0", + "@textlint/resolver": "15.8.0", + "@textlint/types": "15.8.0", + "debug": "^4.4.3", + "js-yaml": "^4.3.0", + "lodash": "^4.18.1", + "pluralize": "^2.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "table": "^6.9.0", + "text-table": "^0.2.0" + }, + "engines": { + "node": ">=20.18.0" + } + }, + "node_modules/@textlint/linter-formatter/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@textlint/linter-formatter/node_modules/pluralize": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-2.0.0.tgz", + "integrity": "sha512-TqNZzQCD4S42De9IfnnBvILN7HAW7riLqsCyp8lgjXeysyPlX5HhqKAcJHHHb9XskE4/a+7VGC9zzx8Ls0jOAw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@textlint/linter-formatter/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@textlint/module-interop": { + "version": "15.8.0", + "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-15.8.0.tgz", + "integrity": "sha512-rt+OR1WYGoLOY8HkA/aBPrqufF6yUUEsKEAh7XohTsT3lp9IyZFT6zOIbjul9P4FAzsmSPkcrYjVx3Bz/IUfkg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@textlint/resolver": { + "version": "15.8.0", + "resolved": "https://registry.npmjs.org/@textlint/resolver/-/resolver-15.8.0.tgz", + "integrity": "sha512-E88tzfX3K8Jykk+38aJ9cy8RquD8ABVOPTO2rFEESq0wcg8x6/ypdAS8ZgR7OKiGqlRF0hkO/m5PbQwVfKM3VA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@textlint/types": { + "version": "15.8.0", + "resolved": "https://registry.npmjs.org/@textlint/types/-/types-15.8.0.tgz", + "integrity": "sha512-Anhc6y5736YIsvqae0U6k0YmB2M/QVHkEeOv2aydAn/WIkdI69dCOiDbe3/+RagS3qstFTSFWJzNRA2lUjv19w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@textlint/ast-node-types": "15.8.0" + } + }, + "node_modules/@types/node": { + "version": "22.20.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.20.1.tgz", + "integrity": "sha512-EANqOCF9QFyra+4pfxUcX9STKJpCLjMbObVzljIJomAWSnuSIEAvyzEU53GaajbXJEgdh0iEcPL+DGvpUd4k1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/sarif": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@types/sarif/-/sarif-2.1.7.tgz", + "integrity": "sha512-kRz0VEkJqWLf1LLVN4pT1cg1Z9wAuvI6L97V3m2f5B76Tg8d413ddvLBPTEHAZJlnn4XSvu0FkZtViCQGVyrXQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/vscode": { + "version": "1.134.0", + "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.134.0.tgz", + "integrity": "sha512-NDEu0hg4sF7+vvFsADsktqUJ6f80LHSZvVK2Ovo1XiQ0/VHck1O3zst+ZZyVA/uvz6vo6LcuoqU2q48YMqOwWw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@typespec/ts-http-runtime": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@typespec/ts-http-runtime/-/ts-http-runtime-0.3.8.tgz", + "integrity": "sha512-bLMpVcWZNzq6lYOybwFwOAR1IXKcHnhUNqYeHjl1bET/qE3jFPFH+p8Wrh3rU4xwdnifPxmKNESBYnvnmc75aA==", + "dev": true, + "license": "MIT", + "dependencies": { + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=22.0.0" + } + }, + "node_modules/@vscode/vsce": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@vscode/vsce/-/vsce-3.9.2.tgz", + "integrity": "sha512-XSxMosEEDO6vLxELAHVkwmhC0qe0ijZni2jB9Rcs8kQsW4lhTDQ/wMzmwFs/buotAWSnpmUp/dRWD2ufG3UYKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@azure/identity": "^4.1.0", + "@secretlint/node": "^10.1.2", + "@secretlint/secretlint-formatter-sarif": "^10.1.2", + "@secretlint/secretlint-rule-no-dotenv": "^10.1.2", + "@secretlint/secretlint-rule-preset-recommend": "^10.1.2", + "@vscode/vsce-sign": "^2.0.0", + "azure-devops-node-api": "^12.5.0", + "chalk": "^4.1.2", + "cheerio": "^1.0.0-rc.9", + "cockatiel": "^3.1.2", + "commander": "^12.1.0", + "form-data": "^4.0.0", + "glob": "^13.0.6", + "hosted-git-info": "^4.0.2", + "jsonc-parser": "^3.2.0", + "leven": "^3.1.0", + "markdown-it": "^14.1.0", + "mime": "^1.3.4", + "minimatch": "^10.2.2", + "parse-semver": "^1.1.1", + "read": "^1.0.7", + "secretlint": "^10.1.2", + "semver": "^7.5.2", + "tmp": "^0.2.3", + "typed-rest-client": "^1.8.4", + "url-join": "^4.0.1", + "xml2js": "^0.5.0", + "yauzl": "^3.2.1", + "yazl": "^2.2.2" + }, + "bin": { + "vsce": "vsce" + }, + "engines": { + "node": ">= 20" + }, + "optionalDependencies": { + "keytar": "^7.7.0" + } + }, + "node_modules/@vscode/vsce-sign": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign/-/vsce-sign-2.1.0.tgz", + "integrity": "sha512-9AQrqazrBgTgRSuwleLVXUrIUphY02/SFCh2TKYoLV/xifJAdblhdmEmw5gUrYSPQ3sRwNs9iyCMD14sATEE6g==", + "dev": true, + "hasInstallScript": true, + "license": "SEE LICENSE IN LICENSE.txt", + "optionalDependencies": { + "@vscode/vsce-sign-alpine-arm64": "2.0.6", + "@vscode/vsce-sign-alpine-x64": "2.0.6", + "@vscode/vsce-sign-darwin-arm64": "2.0.6", + "@vscode/vsce-sign-darwin-x64": "2.0.6", + "@vscode/vsce-sign-linux-arm": "2.0.6", + "@vscode/vsce-sign-linux-arm64": "2.0.6", + "@vscode/vsce-sign-linux-x64": "2.0.6", + "@vscode/vsce-sign-win32-arm64": "2.0.6", + "@vscode/vsce-sign-win32-x64": "2.0.6" + } + }, + "node_modules/@vscode/vsce-sign-alpine-arm64": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-alpine-arm64/-/vsce-sign-alpine-arm64-2.0.6.tgz", + "integrity": "sha512-wKkJBsvKF+f0GfsUuGT0tSW0kZL87QggEiqNqK6/8hvqsXvpx8OsTEc3mnE1kejkh5r+qUyQ7PtF8jZYN0mo8Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "SEE LICENSE IN LICENSE.txt", + "optional": true, + "os": [ + "alpine" + ] + }, + "node_modules/@vscode/vsce-sign-alpine-x64": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-alpine-x64/-/vsce-sign-alpine-x64-2.0.6.tgz", + "integrity": "sha512-YoAGlmdK39vKi9jA18i4ufBbd95OqGJxRvF3n6ZbCyziwy3O+JgOpIUPxv5tjeO6gQfx29qBivQ8ZZTUF2Ba0w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "SEE LICENSE IN LICENSE.txt", + "optional": true, + "os": [ + "alpine" + ] + }, + "node_modules/@vscode/vsce-sign-darwin-arm64": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-darwin-arm64/-/vsce-sign-darwin-arm64-2.0.6.tgz", + "integrity": "sha512-5HMHaJRIQuozm/XQIiJiA0W9uhdblwwl2ZNDSSAeXGO9YhB9MH5C4KIHOmvyjUnKy4UCuiP43VKpIxW1VWP4tQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "SEE LICENSE IN LICENSE.txt", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@vscode/vsce-sign-darwin-x64": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-darwin-x64/-/vsce-sign-darwin-x64-2.0.6.tgz", + "integrity": "sha512-25GsUbTAiNfHSuRItoQafXOIpxlYj+IXb4/qarrXu7kmbH94jlm5sdWSCKrrREs8+GsXF1b+l3OB7VJy5jsykw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "SEE LICENSE IN LICENSE.txt", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@vscode/vsce-sign-linux-arm": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-arm/-/vsce-sign-linux-arm-2.0.6.tgz", + "integrity": "sha512-UndEc2Xlq4HsuMPnwu7420uqceXjs4yb5W8E2/UkaHBB9OWCwMd3/bRe/1eLe3D8kPpxzcaeTyXiK3RdzS/1CA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "SEE LICENSE IN LICENSE.txt", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@vscode/vsce-sign-linux-arm64": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-arm64/-/vsce-sign-linux-arm64-2.0.6.tgz", + "integrity": "sha512-cfb1qK7lygtMa4NUl2582nP7aliLYuDEVpAbXJMkDq1qE+olIw/es+C8j1LJwvcRq1I2yWGtSn3EkDp9Dq5FdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "SEE LICENSE IN LICENSE.txt", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@vscode/vsce-sign-linux-x64": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-x64/-/vsce-sign-linux-x64-2.0.6.tgz", + "integrity": "sha512-/olerl1A4sOqdP+hjvJ1sbQjKN07Y3DVnxO4gnbn/ahtQvFrdhUi0G1VsZXDNjfqmXw57DmPi5ASnj/8PGZhAA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "SEE LICENSE IN LICENSE.txt", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@vscode/vsce-sign-win32-arm64": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-win32-arm64/-/vsce-sign-win32-arm64-2.0.6.tgz", + "integrity": "sha512-ivM/MiGIY0PJNZBoGtlRBM/xDpwbdlCWomUWuLmIxbi1Cxe/1nooYrEQoaHD8ojVRgzdQEUzMsRbyF5cJJgYOg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "SEE LICENSE IN LICENSE.txt", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@vscode/vsce-sign-win32-x64": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-win32-x64/-/vsce-sign-win32-x64-2.0.6.tgz", + "integrity": "sha512-mgth9Kvze+u8CruYMmhHw6Zgy3GRX2S+Ed5oSokDEK5vPEwGGKnmuXua9tmFhomeAnhgJnL4DCna3TiNuGrBTQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "SEE LICENSE IN LICENSE.txt", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-escapes": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.3.0.tgz", + "integrity": "sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "environment": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.3.0.tgz", + "integrity": "sha512-WpDfL7NO6j7tH88IDBNVdUJxDh9nmCteAVW9dsep846XdwF4naCBK+/tGLX3KJgcpgMRXCFlTM2hKGoK9FsdrQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/azure-devops-node-api": { + "version": "12.5.0", + "resolved": "https://registry.npmjs.org/azure-devops-node-api/-/azure-devops-node-api-12.5.0.tgz", + "integrity": "sha512-R5eFskGvOm3U/GzeAuxRkUsAl0hrAwGgWn6zAd2KrZmrEhWZVqLew4OOupbQlXUuojUzpGtq62SmdhJ06N88og==", + "dev": true, + "license": "MIT", + "dependencies": { + "tunnel": "0.0.6", + "typed-rest-client": "^1.8.4" + } + }, + "node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "optional": true + }, + "node_modules/binaryextensions": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-6.11.0.tgz", + "integrity": "sha512-sXnYK/Ij80TO3lcqZVV2YgfKN5QjUWIRk/XSm2J/4bd/lPko3lvk0O4ZppH6m+6hB2/GTu+ptNwVFe1xh+QLQw==", + "dev": true, + "license": "Artistic-2.0", + "dependencies": { + "editions": "^6.21.0" + }, + "engines": { + "node": ">=4" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, + "node_modules/boundary": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/boundary/-/boundary-2.0.0.tgz", + "integrity": "sha512-rJKn5ooC9u8q13IMCrW0RSp31pxBCHE3y9V/tp3TdWSLf8Em3p6Di4NBpfzbJge9YjjFEsD0RtFEjtvHL5VyEA==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/brace-expansion": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.9.tgz", + "integrity": "sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/cheerio": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.2.0.tgz", + "integrity": "sha512-WDrybc/gKFpTYQutKIK6UvfcuxijIZfMfXaYm8NMsPQxSYvf+13fXUJ4rztGGbJcBQ/GF55gvrZ0Bc0bj/mqvg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.2.2", + "encoding-sniffer": "^0.2.1", + "htmlparser2": "^10.1.0", + "parse5": "^7.3.0", + "parse5-htmlparser2-tree-adapter": "^7.1.0", + "parse5-parser-stream": "^7.1.2", + "undici": "^7.19.0", + "whatwg-mimetype": "^4.0.0" + }, + "engines": { + "node": ">=20.18.1" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/cockatiel": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/cockatiel/-/cockatiel-3.2.1.tgz", + "integrity": "sha512-gfrHV6ZPkquExvMh9IOkKsBzNDk6sDuZ6DdBGUBkvFnTCqCxzpuq48RySgP0AnaqQkw2zynOFj9yly6T1Q2G5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/css-select": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/default-browser": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.5.1.tgz", + "integrity": "sha512-m1pAzaJgZ/gssEqlOhJkPJp8Xly7QyW6xcrkUa2KKcDeDSEMP7X8xipU3snUcfisTQx0w1AGae+9UtJSfVnXGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz", + "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/editions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/editions/-/editions-6.22.0.tgz", + "integrity": "sha512-UgGlf8IW75je7HZjNDpJdCv4cGJWIi6yumFdZ0R7A8/CIhQiWUjyGLCxdHpd8bmyD1gnkfUNK0oeOXqUS2cpfQ==", + "dev": true, + "license": "Artistic-2.0", + "dependencies": { + "version-range": "^4.15.0" + }, + "engines": { + "ecmascript": ">= es5", + "node": ">=4" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/encoding-sniffer": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.1.tgz", + "integrity": "sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "^0.6.3", + "whatwg-encoding": "^3.1.1" + }, + "funding": { + "url": "https://github.com/fb55/encoding-sniffer?sponsor=1" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/environment": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", + "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.12", + "@esbuild/android-arm": "0.25.12", + "@esbuild/android-arm64": "0.25.12", + "@esbuild/android-x64": "0.25.12", + "@esbuild/darwin-arm64": "0.25.12", + "@esbuild/darwin-x64": "0.25.12", + "@esbuild/freebsd-arm64": "0.25.12", + "@esbuild/freebsd-x64": "0.25.12", + "@esbuild/linux-arm": "0.25.12", + "@esbuild/linux-arm64": "0.25.12", + "@esbuild/linux-ia32": "0.25.12", + "@esbuild/linux-loong64": "0.25.12", + "@esbuild/linux-mips64el": "0.25.12", + "@esbuild/linux-ppc64": "0.25.12", + "@esbuild/linux-riscv64": "0.25.12", + "@esbuild/linux-s390x": "0.25.12", + "@esbuild/linux-x64": "0.25.12", + "@esbuild/netbsd-arm64": "0.25.12", + "@esbuild/netbsd-x64": "0.25.12", + "@esbuild/openbsd-arm64": "0.25.12", + "@esbuild/openbsd-x64": "0.25.12", + "@esbuild/openharmony-arm64": "0.25.12", + "@esbuild/sunos-x64": "0.25.12", + "@esbuild/win32-arm64": "0.25.12", + "@esbuild/win32-ia32": "0.25.12", + "@esbuild/win32-x64": "0.25.12" + } + }, + "node_modules/expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "dev": true, + "license": "(MIT OR WTFPL)", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-uri": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.5.tgz", + "integrity": "sha512-gHwA1O9LDIcKunMKhObS/HimwtehO1nPUECKAu5TpKgaO19fcWEl4bliWe1jWxVFvIXztJjjQ4L8XQ1EU9f7Jw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/form-data": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", + "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.4", + "mime-types": "^2.1.35" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/fs-extra": { + "version": "11.4.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.4.0.tgz", + "integrity": "sha512-EQsFzMUJkCKGr1ePqlYADkIUmHW1s3ZXr5Yqy6wbGrfUCphpl2maM/kyOIRA2HpP3AaFQTZXD4ldjek+nccddA==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/glob": { + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globby": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.1.0.tgz", + "integrity": "sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.3", + "ignore": "^7.0.3", + "path-type": "^6.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/htmlparser2": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.1.0.tgz", + "integrity": "sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.2.2", + "entities": "^7.0.1" + } + }, + "node_modules/htmlparser2/node_modules/entities": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", + "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/ignore": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.6.tgz", + "integrity": "sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/index-to-position": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/index-to-position/-/index-to-position-1.2.0.tgz", + "integrity": "sha512-Yg7+ztRkqslMAS2iFaU+Oa4KTSidr63OsFGlOrJoW981kIYO3CGCS3wA95P1mUi/IVSJkn0D479KTJpVpvFNuw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-wsl": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz", + "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/istextorbinary": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-9.5.0.tgz", + "integrity": "sha512-5mbUj3SiZXCuRf9fT3ibzbSSEWiy63gFfksmGfdOzujPjW3k+z8WvIBxcJHBoQNlaZaiyB25deviif2+osLmLw==", + "dev": true, + "license": "Artistic-2.0", + "dependencies": { + "binaryextensions": "^6.11.0", + "editions": "^6.21.0", + "textextensions": "^6.11.0" + }, + "engines": { + "node": ">=4" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.1.tgz", + "integrity": "sha512-CY6crGq313MX8GkwvB7tzgp99vjQxY1++5y10/BKN/GUfHqWaOGQMNZkBvqSzsZKWk/ijwHlWzzkLulsGHhjWQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/jsonfile": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.1.tgz", + "integrity": "sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonwebtoken": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.3.tgz", + "integrity": "sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g==", + "dev": true, + "license": "MIT", + "dependencies": { + "jws": "^4.0.1", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/jwa": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz", + "integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-equal-constant-time": "^1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.1.tgz", + "integrity": "sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==", + "dev": true, + "license": "MIT", + "dependencies": { + "jwa": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/keytar": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/keytar/-/keytar-7.9.0.tgz", + "integrity": "sha512-VPD8mtVtm5JNtA2AErl6Chp06JBfy7diFQ7TQQhdpWOl6MrCRB+eRbvAZUsbGQS9kiMq0coJsy0W0vHpDCkWsQ==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "node-addon-api": "^4.3.0", + "prebuild-install": "^7.0.1" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/linkify-it": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.2.tgz", + "integrity": "sha512-ONTm2jCMAVZjgQa/Fy1kScXsuOoF5NPTsoFBdE1KVIZ2vAh/r9+Bqo+0jINCBYnavTPQZz38QzFTme79ENoN3Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/markdown-it" + } + ], + "license": "MIT", + "dependencies": { + "uc.micro": "^2.0.0" + } + }, + "node_modules/lodash": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/markdown-it": { + "version": "14.3.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.3.0.tgz", + "integrity": "sha512-RCEsPjR+sr0x+AuYp601tKTkgFG4YEPLCzHST3cQ/fhlJkqAkz1L2/Qbp1j9qw5SBwQHFBoW8+hoN5xssOF0Tw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/markdown-it" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1", + "entities": "^4.5.0", + "linkify-it": "^5.0.2", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" + }, + "bin": { + "markdown-it": "bin/markdown-it.mjs" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mdurl": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.1.0.tgz", + "integrity": "sha512-1+HBaOx0zi/dQWht8rNv9MYf9qqpqL/kxI0hXImU6Y547zM6Sni8BQibt7ifgMcYtQg41ao3Ivd6cnSM86inpg==", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "10.2.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", + "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.8" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "optional": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true, + "license": "ISC" + }, + "node_modules/napi-build-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-2.0.0.tgz", + "integrity": "sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/node-abi": { + "version": "3.94.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.94.0.tgz", + "integrity": "sha512-W5ZNO5KRPB5TkYmGVD9F6YqhsglXJzE6etpbmT+f6EQElhiX/UTG551cnsRGvLG3fyZEg9HwaDmNmj5nwJ4z9g==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-addon-api": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", + "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/node-sarif-builder": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/node-sarif-builder/-/node-sarif-builder-3.4.0.tgz", + "integrity": "sha512-tGnJW6OKRii9u/b2WiUViTJS+h7Apxx17qsMUjsUeNDiMMX5ZFf8F8Fcz7PAQ6omvOxHZtvDTmOYKJQwmfpjeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/sarif": "^2.1.7", + "fs-extra": "^11.1.1" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/normalize-package-data": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz", + "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^7.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/normalize-package-data/node_modules/hosted-git-info": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/normalize-package-data/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "optional": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/open": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/open/-/open-10.2.0.tgz", + "integrity": "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "wsl-utils": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.6.tgz", + "integrity": "sha512-I4Prw6ivkd6p8PiYR1tXASOAOBzIJwu0TB7fqaX0c/8c3QAehNYmX57EijyGGGBt3c/BIowGwV03RVBtXvHEVg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-json": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.3.0.tgz", + "integrity": "sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "index-to-position": "^1.1.0", + "type-fest": "^4.39.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-semver": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/parse-semver/-/parse-semver-1.1.1.tgz", + "integrity": "sha512-Eg1OuNntBMH0ojvEKSrvDSnwLmvVuUOSdylH/pSCPNMIspLlweJyIWXCE+k/5hm3cj/EBUYwmWkjhBALNP4LXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^5.1.0" + } + }, + "node_modules/parse-semver/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", + "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "domhandler": "^5.0.3", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-parser-stream": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz", + "integrity": "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==", + "dev": true, + "license": "MIT", + "dependencies": { + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/path-scurry": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", + "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "11.5.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz", + "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/path-type": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-6.0.0.tgz", + "integrity": "sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/prebuild-install": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.3.tgz", + "integrity": "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==", + "deprecated": "No longer maintained. Please contact the author of the relevant native addon; alternatives are available.", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "detect-libc": "^2.0.0", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^2.0.0", + "node-abi": "^3.3.0", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^4.0.0", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" + }, + "bin": { + "prebuild-install": "bin.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/pump": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.4.tgz", + "integrity": "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.15.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.3.tgz", + "integrity": "sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "es-define-property": "^1.0.1", + "side-channel": "^1.1.1" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "optional": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc-config-loader": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/rc-config-loader/-/rc-config-loader-4.1.4.tgz", + "integrity": "sha512-3GiwEzklkbXTDp52UR5nT8iXgYAx1V9ZG/kDZT7p60u2GCv2XTwQq4NzinMoMpNtXhmt3WkhYXcj6HH8HdwCEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.4.3", + "js-yaml": "^4.1.1", + "json5": "^2.2.3", + "require-from-string": "^2.0.2" + } + }, + "node_modules/read": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", + "integrity": "sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "mute-stream": "~0.0.4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/read-pkg": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-9.0.1.tgz", + "integrity": "sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.3", + "normalize-package-data": "^6.0.0", + "parse-json": "^8.0.0", + "type-fest": "^4.6.0", + "unicorn-magic": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg/node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/run-applescript": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz", + "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/sax": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.1.tgz", + "integrity": "sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } + }, + "node_modules/secretlint": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/secretlint/-/secretlint-10.2.2.tgz", + "integrity": "sha512-xVpkeHV/aoWe4vP4TansF622nBEImzCY73y/0042DuJ29iKIaqgoJ8fGxre3rVSHHbxar4FdJobmTnLp9AU0eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@secretlint/config-creator": "^10.2.2", + "@secretlint/formatter": "^10.2.2", + "@secretlint/node": "^10.2.2", + "@secretlint/profiler": "^10.2.2", + "debug": "^4.4.1", + "globby": "^14.1.0", + "read-pkg": "^9.0.1" + }, + "bin": { + "secretlint": "bin/secretlint.js" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/semver": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/side-channel": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz", + "integrity": "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4", + "side-channel-list": "^1.0.1", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "optional": true + }, + "node_modules/simple-get": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.23", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.23.tgz", + "integrity": "sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/structured-source": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/structured-source/-/structured-source-4.0.0.tgz", + "integrity": "sha512-qGzRFNJDjFieQkl/sVOI2dUjHKRyL9dAJi2gCPGJLbJHBIkyOHxjuocpIEfbLioX+qSJpvbYdT49/YCdMznKxA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boundary": "^2.0.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.2.0.tgz", + "integrity": "sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=14.18" + }, + "funding": { + "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" + } + }, + "node_modules/table": { + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.9.0.tgz", + "integrity": "sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/table/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar-fs": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.5.tgz", + "integrity": "sha512-OboTd8mmMhZDNPV+UjQcK9yKAatXu2aJ+r1w4im1Otd4M4fl2hwvdoXUxIYHFTHWK/3y3FarBP70v3vwmGlOxw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/terminal-link": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-4.0.0.tgz", + "integrity": "sha512-lk+vH+MccxNqgVqSnkMVKx4VLJfnLjDBGzH16JVZjKE2DoxP57s6/vt6JmXV5I3jBcfGrxNrYtC+mPtU7WJztA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^7.0.0", + "supports-hyperlinks": "^3.2.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/textextensions": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-6.11.0.tgz", + "integrity": "sha512-tXJwSr9355kFJI3lbCkPpUH5cP8/M0GGy2xLO34aZCjMXBaK3SoPnZwr/oWmo1FdCnELcs4npdCIOFtq9W3ruQ==", + "dev": true, + "license": "Artistic-2.0", + "dependencies": { + "editions": "^6.21.0" + }, + "engines": { + "node": ">=4" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, + "node_modules/tmp": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.7.tgz", + "integrity": "sha512-e0votIpp4Uo2AJYSzVHV6xCcawuiez3DzqDAbrTc3YxBkplN6e+dM13ZeIcZnDg/QpSuU2zfZ3rzwY8ukEnaXw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.14" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/tsx": { + "version": "4.23.12", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.23.12.tgz", + "integrity": "sha512-FDf4L4sYzKtzWYhU/Xm0AQFdTjdIxNo9ElTf2mxXM6k8YMHXzYUe4yODVaXP4V9uMFbVg8c0qyBccK2OOxb45Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "~0.28.0" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, + "node_modules/tsx/node_modules/@esbuild/aix-ppc64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.2.tgz", + "integrity": "sha512-XExcO+dvLKvVtNTibSTBej1NCAbaGhWn9Ww1ZPx80qsahhPFe/8jgWP0IchNe0F3HwkU7n8ejhH8bjonqht8mQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-arm": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.2.tgz", + "integrity": "sha512-kXXoiPVVGQcnIYGOeaovwOURpniDBpSq4A03qkQ+BMQqtGG6HYap3xne9C1O1yo4TR3qxlCX5IqqmX6fFo2Lqg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.2.tgz", + "integrity": "sha512-5YfKeeI8qWfBZIX+u2xZC3Zlb3Os/gLS2sbEKM+I4ZOcsWmHS2WLysCcQZDAFRslDUU5Oiq44gf6PYN1vGwG5A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.2.tgz", + "integrity": "sha512-O387ite7SzUyCcy3JQX4P4bLtEA7bLLkx+esve5JHnyYfNTxcVpXZo9jhdB0lTKN44gztELTdU7nS8Nr16Fs1Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/darwin-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.2.tgz", + "integrity": "sha512-n4KqkOQrraxHJcgjM1RvwbigfQKIKJVpM7xp+KsxiyUSrRdIXnt73VhrPAx0fV44hgfmIVKjxMN9J1t5jySVkw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/darwin-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.2.tgz", + "integrity": "sha512-uq6suIWYP37qzGddBKPw5QEQPi6HiLGsO7UmkpfyaYNQ3D+rN6w6WfwH+nuqcGXWvawGwxOEroO4YGnFh95azw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/freebsd-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.2.tgz", + "integrity": "sha512-n+I0BTSRIoy+d6RPKnEVwql5UwBJolytvY4mAOIEJorKlqgPII8ix6slVVrfZ5Tnj7glIZvloylbB/EJPMWEXw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/freebsd-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.2.tgz", + "integrity": "sha512-78XJTJkvPs0kz2w61301PJjXl4g7q3JqiYMZ/M/yVI73EHBrCRTgkhu9oqG7vPqq+a/yadEW8aD+agKlk5xrmg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-arm": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.2.tgz", + "integrity": "sha512-XlDnu2q5yoqems+xay6wSAcg9DDD7K9RLKZEBOMZm3ckNpJBvOX20tSfby8KfrrhINDyv9V2YVZKY/SpoGJI8w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.2.tgz", + "integrity": "sha512-pW4AC0P3it8c7do9MVM4p51FzHzdM/TZrerurgRcHJ2WTa1VQ1CIq18xncfpBJw4ojkiZZrKW2yIBWBP92j6Ug==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-ia32": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.2.tgz", + "integrity": "sha512-CYbnj78HsIeA+DhgUKgFCfvNsTHFhMMrinUrMZpDXJXKN8T3XViTZ/+wtHeVxEWY8ewSzTFN+nRmSwO2tZaLUQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-loong64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.2.tgz", + "integrity": "sha512-buwkd8nsph4R+ajRvw0qM5Hja/TXQow3ptzWO2EbG/cqcIkHloRrdlBtQlshyYGTNFvfkfJ5tpPLVkY4DtsPfQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-mips64el": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.2.tgz", + "integrity": "sha512-ZVykbDyk7519VwiNb9Lcj9m8XM6v5V9uKPvrEMkkEedVewf+0itkhahp4HDpgERXhwLRpWFypsGbG/J8s0QjJA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-ppc64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.2.tgz", + "integrity": "sha512-CAXl+Dtd9UUuJd8pKKdwh6MLm3MUMiqMPmhZ3tTSXPqfyQ3vDl6R5hZdZ/kYojK4ofXtdfSv1tFq8XzWx3heNQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-riscv64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.2.tgz", + "integrity": "sha512-GeXCej4IQtU1B+QlDV8W/RRvbzI3O/Stss+/bCXv4lZls5WGRtu2a+3JkA3i4qIUlMXpcHebWpF8AkJhATowuA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-s390x": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.2.tgz", + "integrity": "sha512-3H1weTYZPxt/WOhByszQZybS9w5lKzUn1FDMsgEChbHWQwHYQQRfBxgCcZvPhjHfKyJjIievvMmEUawJrdY9Dg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.2.tgz", + "integrity": "sha512-4xTZr1FUmSoQW4XIWmit3tzQrUTZM+N3P0XV8xROKYF50XfI7xeO90+1bZvNwxIufQ9hDQVRJH5YhgPVF8A/HQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/netbsd-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.2.tgz", + "integrity": "sha512-sSATRjPeDBg3pdgHoQfoYBob11Kk1FGa9lui5RIHZCoCkJa9QKlvl3/vKz2usCmYYjs7ymJR/2Nnsqe+Hjt5nw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/netbsd-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.2.tgz", + "integrity": "sha512-lqnzCV+mM0gIADaKihiCg6ifgfU2L3h5E33rNQBN1Y4MaVGnzryzmvvf7UHxprpQdE8hpqLolJ9Rl+SkIRDpyw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/openbsd-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.2.tgz", + "integrity": "sha512-AL2qJILH7lNjrDmCQDvdxMfAUIv8KMNZOvrwAQ8i8//ntL9FflhOyMJ8OZSMBb8/AWXe3/5v5S20y3zCoZWKoQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/openbsd-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.2.tgz", + "integrity": "sha512-QtiuPytchRyC4rwUKhexJdQKvDuZ6hWloi3igqPQNUJCS1/v9EiO3UTOXR6A3FoMo4fnAKbWJdqaIwhOzh8qEw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/openharmony-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.2.tgz", + "integrity": "sha512-WkhYDmpTjLvGlScA1rwjRUmhl4k8oXR3cIbtqWmELgU/dFeHHlEllxDvdWcNJV9rbzCexB5vz8gtNewWLgCT7Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/sunos-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.2.tgz", + "integrity": "sha512-GPMSkTOtMnv2U2F8gxe4Io6qmVs+YKyp832Etqqxr0hFngmXQ3rzwytelm3GIn7T4VviRUlf3sOgBOiTdvaf7g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.2.tgz", + "integrity": "sha512-PIhhEkE9uPBleRBrQEJpUn7MBnibZzbGzYWPmY3x+YoVg/95zbjB4CxPPOQ8l5tYYM4mMaCthF8/1DIfBQQyWQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-ia32": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.2.tgz", + "integrity": "sha512-YmJbfTlvU7Sdn9BB+4PRES4oB6pxgS37MAONj+hBr/cpXS1aBPKXxNnDbu+QCWPj0o9dgyxeq79g6c5P8KeuYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.2.tgz", + "integrity": "sha512-5ebpxr3nWMzrL/rnUI755Jkuee0bHL/Gq0WTF9lvcpv73wAp5eu8MfBUgWK9bhWvZjj7yX8etf/8tI8Ney695g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/esbuild": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.2.tgz", + "integrity": "sha512-HKVLS8dvII+xoKW9kmqxbRKrnWEXfJJr/FZhhJmiqIB0e053QNYFqOBouTMO/k5sID4MvCiUCvv8b9M4h32wIA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.28.2", + "@esbuild/android-arm": "0.28.2", + "@esbuild/android-arm64": "0.28.2", + "@esbuild/android-x64": "0.28.2", + "@esbuild/darwin-arm64": "0.28.2", + "@esbuild/darwin-x64": "0.28.2", + "@esbuild/freebsd-arm64": "0.28.2", + "@esbuild/freebsd-x64": "0.28.2", + "@esbuild/linux-arm": "0.28.2", + "@esbuild/linux-arm64": "0.28.2", + "@esbuild/linux-ia32": "0.28.2", + "@esbuild/linux-loong64": "0.28.2", + "@esbuild/linux-mips64el": "0.28.2", + "@esbuild/linux-ppc64": "0.28.2", + "@esbuild/linux-riscv64": "0.28.2", + "@esbuild/linux-s390x": "0.28.2", + "@esbuild/linux-x64": "0.28.2", + "@esbuild/netbsd-arm64": "0.28.2", + "@esbuild/netbsd-x64": "0.28.2", + "@esbuild/openbsd-arm64": "0.28.2", + "@esbuild/openbsd-x64": "0.28.2", + "@esbuild/openharmony-arm64": "0.28.2", + "@esbuild/sunos-x64": "0.28.2", + "@esbuild/win32-arm64": "0.28.2", + "@esbuild/win32-ia32": "0.28.2", + "@esbuild/win32-x64": "0.28.2" + } + }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-rest-client": { + "version": "1.8.11", + "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.11.tgz", + "integrity": "sha512-5UvfMpd1oelmUPRbbaVnq+rHP7ng2cE4qoQkQeAqxRL6PklkxsM0g32/HL0yfvruK6ojQ5x8EE+HF4YV6DtuCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "qs": "^6.9.1", + "tunnel": "0.0.6", + "underscore": "^1.12.1" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "dev": true, + "license": "MIT" + }, + "node_modules/underscore": { + "version": "1.13.8", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.8.tgz", + "integrity": "sha512-DXtD3ZtEQzc7M8m4cXotyHR+FAS18C64asBYY5vqZexfYryNNnDc02W4hKg3rdQuqOYas1jkseX0+nZXjTXnvQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/undici": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.29.0.tgz", + "integrity": "sha512-IDxfleLmmbSskfWSUATiN1nfn2rDuvnMOqb5CWR92iIfojA0Ud+ulOAAEQ57LPr9rWmsreUyf5lwyao+7GNNVw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.18.1" + } + }, + "node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/unicorn-magic": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", + "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/url-join": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", + "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", + "dev": true, + "license": "MIT" + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/version-range": { + "version": "4.15.0", + "resolved": "https://registry.npmjs.org/version-range/-/version-range-4.15.0.tgz", + "integrity": "sha512-Ck0EJbAGxHwprkzFO966t4/5QkRuzh+/I1RxhLgUKKwEn+Cd8NwM60mE3AqBZg5gYODoXW0EFsQvbZjRlvdqbg==", + "dev": true, + "license": "Artistic-2.0", + "engines": { + "node": ">=4" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, + "node_modules/whatwg-encoding": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "deprecated": "Use @exodus/bytes instead for a more spec-conformant and faster implementation", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/wsl-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.1.0.tgz", + "integrity": "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-wsl": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/xml2js": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", + "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/yauzl": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-3.4.0.tgz", + "integrity": "sha512-jIH9yLR9wqr0wOS0TpBvo/g/2UgZH5qePVbjgRliiF0BYvOZyaBknKsF+x9Iht0O6sqgnB93rCICdOZFecJuDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yazl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz", + "integrity": "sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3" + } + } + } +} diff --git a/vscode-dbc-editor/package.json b/vscode-dbc-editor/package.json new file mode 100644 index 0000000..4c8c51d --- /dev/null +++ b/vscode-dbc-editor/package.json @@ -0,0 +1,77 @@ +{ + "name": "moonwell-dbc-editor", + "displayName": "MoonWell DBC Editor", + "description": "Table editor for World of Warcraft 3.3.5a (build 12340) WDBC files.", + "version": "0.1.0", + "publisher": "moonwell", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://git.moon-well.online/sindoring/moonwell-client.git", + "directory": "vscode-dbc-editor" + }, + "engines": { + "vscode": "^1.90.0" + }, + "categories": [ + "Other" + ], + "keywords": [ + "wow", + "wotlk", + "dbc", + "wdbc" + ], + "activationEvents": [ + "onCustomEditor:moonwell.dbcEditor" + ], + "main": "./dist/extension.js", + "contributes": { + "customEditors": [ + { + "viewType": "moonwell.dbcEditor", + "displayName": "MoonWell DBC Editor", + "selector": [ + { + "filenamePattern": "*.dbc" + } + ], + "priority": "default" + } + ], + "configuration": { + "title": "MoonWell DBC Editor", + "properties": { + "moonwellDbc.pageSize": { + "type": "number", + "default": 100, + "minimum": 25, + "maximum": 500, + "description": "Number of DBC records shown on one editor page." + }, + "moonwellDbc.createBackupOnSave": { + "type": "boolean", + "default": true, + "description": "Copy the previous file contents to .dbc.bak before saving." + } + } + } + }, + "scripts": { + "compile": "node esbuild.mjs", + "watch": "node esbuild.mjs --watch", + "typecheck": "tsc --noEmit", + "test": "tsx --test test/**/*.test.ts", + "check": "npm run typecheck && npm test && npm run compile", + "package": "npm run check && vsce package", + "schemas": "node scripts/build-schema-bundle.mjs" + }, + "devDependencies": { + "@types/node": "^22.15.0", + "@types/vscode": "^1.90.0", + "@vscode/vsce": "^3.6.0", + "esbuild": "^0.25.0", + "tsx": "^4.20.0", + "typescript": "^5.8.0" + } +} diff --git a/vscode-dbc-editor/schemas/12340.json b/vscode-dbc-editor/schemas/12340.json new file mode 100644 index 0000000..4e80522 --- /dev/null +++ b/vscode-dbc-editor/schemas/12340.json @@ -0,0 +1 @@ +{"build":12340,"version":"3.3.5.12340","source":{"project":"WoWDBDefs","url":"https://github.com/wowdev/WoWDBDefs","license":"CC BY-SA 4.0","commit":"8d621ba9e7186458489a2b5aab0d2c303b104362"},"tables":{"achievement":{"name":"Achievement","build":12340,"recordSize":248,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Faction","kind":"int","bits":32,"offset":4},{"name":"Instance_ID","kind":"int","bits":32,"offset":8},{"name":"Supercedes","kind":"int","bits":32,"offset":12},{"name":"Title_lang_enUS","kind":"string","bits":32,"offset":16,"locale":"enUS"},{"name":"Title_lang_enGB","kind":"string","bits":32,"offset":20,"locale":"enGB"},{"name":"Title_lang_koKR","kind":"string","bits":32,"offset":24,"locale":"koKR"},{"name":"Title_lang_frFR","kind":"string","bits":32,"offset":28,"locale":"frFR"},{"name":"Title_lang_deDE","kind":"string","bits":32,"offset":32,"locale":"deDE"},{"name":"Title_lang_enCN","kind":"string","bits":32,"offset":36,"locale":"enCN"},{"name":"Title_lang_zhCN","kind":"string","bits":32,"offset":40,"locale":"zhCN"},{"name":"Title_lang_enTW","kind":"string","bits":32,"offset":44,"locale":"enTW"},{"name":"Title_lang_zhTW","kind":"string","bits":32,"offset":48,"locale":"zhTW"},{"name":"Title_lang_esES","kind":"string","bits":32,"offset":52,"locale":"esES"},{"name":"Title_lang_esMX","kind":"string","bits":32,"offset":56,"locale":"esMX"},{"name":"Title_lang_ruRU","kind":"string","bits":32,"offset":60,"locale":"ruRU"},{"name":"Title_lang_ptPT","kind":"string","bits":32,"offset":64,"locale":"ptPT"},{"name":"Title_lang_ptBR","kind":"string","bits":32,"offset":68,"locale":"ptBR"},{"name":"Title_lang_itIT","kind":"string","bits":32,"offset":72,"locale":"itIT"},{"name":"Title_lang_Unk","kind":"string","bits":32,"offset":76,"locale":"Unk"},{"name":"Title_lang_Mask","kind":"uint","bits":32,"offset":80},{"name":"Description_lang_enUS","kind":"string","bits":32,"offset":84,"locale":"enUS"},{"name":"Description_lang_enGB","kind":"string","bits":32,"offset":88,"locale":"enGB"},{"name":"Description_lang_koKR","kind":"string","bits":32,"offset":92,"locale":"koKR"},{"name":"Description_lang_frFR","kind":"string","bits":32,"offset":96,"locale":"frFR"},{"name":"Description_lang_deDE","kind":"string","bits":32,"offset":100,"locale":"deDE"},{"name":"Description_lang_enCN","kind":"string","bits":32,"offset":104,"locale":"enCN"},{"name":"Description_lang_zhCN","kind":"string","bits":32,"offset":108,"locale":"zhCN"},{"name":"Description_lang_enTW","kind":"string","bits":32,"offset":112,"locale":"enTW"},{"name":"Description_lang_zhTW","kind":"string","bits":32,"offset":116,"locale":"zhTW"},{"name":"Description_lang_esES","kind":"string","bits":32,"offset":120,"locale":"esES"},{"name":"Description_lang_esMX","kind":"string","bits":32,"offset":124,"locale":"esMX"},{"name":"Description_lang_ruRU","kind":"string","bits":32,"offset":128,"locale":"ruRU"},{"name":"Description_lang_ptPT","kind":"string","bits":32,"offset":132,"locale":"ptPT"},{"name":"Description_lang_ptBR","kind":"string","bits":32,"offset":136,"locale":"ptBR"},{"name":"Description_lang_itIT","kind":"string","bits":32,"offset":140,"locale":"itIT"},{"name":"Description_lang_Unk","kind":"string","bits":32,"offset":144,"locale":"Unk"},{"name":"Description_lang_Mask","kind":"uint","bits":32,"offset":148},{"name":"Category","kind":"int","bits":32,"offset":152},{"name":"Points","kind":"int","bits":32,"offset":156},{"name":"Ui_order","kind":"int","bits":32,"offset":160},{"name":"Flags","kind":"int","bits":32,"offset":164},{"name":"IconID","kind":"int","bits":32,"offset":168},{"name":"Reward_lang_enUS","kind":"string","bits":32,"offset":172,"locale":"enUS"},{"name":"Reward_lang_enGB","kind":"string","bits":32,"offset":176,"locale":"enGB"},{"name":"Reward_lang_koKR","kind":"string","bits":32,"offset":180,"locale":"koKR"},{"name":"Reward_lang_frFR","kind":"string","bits":32,"offset":184,"locale":"frFR"},{"name":"Reward_lang_deDE","kind":"string","bits":32,"offset":188,"locale":"deDE"},{"name":"Reward_lang_enCN","kind":"string","bits":32,"offset":192,"locale":"enCN"},{"name":"Reward_lang_zhCN","kind":"string","bits":32,"offset":196,"locale":"zhCN"},{"name":"Reward_lang_enTW","kind":"string","bits":32,"offset":200,"locale":"enTW"},{"name":"Reward_lang_zhTW","kind":"string","bits":32,"offset":204,"locale":"zhTW"},{"name":"Reward_lang_esES","kind":"string","bits":32,"offset":208,"locale":"esES"},{"name":"Reward_lang_esMX","kind":"string","bits":32,"offset":212,"locale":"esMX"},{"name":"Reward_lang_ruRU","kind":"string","bits":32,"offset":216,"locale":"ruRU"},{"name":"Reward_lang_ptPT","kind":"string","bits":32,"offset":220,"locale":"ptPT"},{"name":"Reward_lang_ptBR","kind":"string","bits":32,"offset":224,"locale":"ptBR"},{"name":"Reward_lang_itIT","kind":"string","bits":32,"offset":228,"locale":"itIT"},{"name":"Reward_lang_Unk","kind":"string","bits":32,"offset":232,"locale":"Unk"},{"name":"Reward_lang_Mask","kind":"uint","bits":32,"offset":236},{"name":"Minimum_criteria","kind":"int","bits":32,"offset":240},{"name":"Shares_criteria","kind":"int","bits":32,"offset":244}],"source":"WoWDBDefs"},"achievement_category":{"name":"Achievement_Category","build":12340,"recordSize":80,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Parent","kind":"int","bits":32,"offset":4},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":8,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":12,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":16,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":20,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":24,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":28,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":32,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":36,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":40,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":44,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":48,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":52,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":56,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":60,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":64,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":68,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":72},{"name":"Ui_order","kind":"int","bits":32,"offset":76}],"source":"WoWDBDefs"},"achievement_criteria":{"name":"Achievement_Criteria","build":12340,"recordSize":124,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Achievement_ID","kind":"int","bits":32,"offset":4},{"name":"Type","kind":"int","bits":32,"offset":8},{"name":"Asset_ID","kind":"int","bits":32,"offset":12},{"name":"Quantity","kind":"int","bits":32,"offset":16},{"name":"Start_event","kind":"int","bits":32,"offset":20},{"name":"Start_asset","kind":"int","bits":32,"offset":24},{"name":"Fail_event","kind":"int","bits":32,"offset":28},{"name":"Fail_asset","kind":"int","bits":32,"offset":32},{"name":"Description_lang_enUS","kind":"string","bits":32,"offset":36,"locale":"enUS"},{"name":"Description_lang_enGB","kind":"string","bits":32,"offset":40,"locale":"enGB"},{"name":"Description_lang_koKR","kind":"string","bits":32,"offset":44,"locale":"koKR"},{"name":"Description_lang_frFR","kind":"string","bits":32,"offset":48,"locale":"frFR"},{"name":"Description_lang_deDE","kind":"string","bits":32,"offset":52,"locale":"deDE"},{"name":"Description_lang_enCN","kind":"string","bits":32,"offset":56,"locale":"enCN"},{"name":"Description_lang_zhCN","kind":"string","bits":32,"offset":60,"locale":"zhCN"},{"name":"Description_lang_enTW","kind":"string","bits":32,"offset":64,"locale":"enTW"},{"name":"Description_lang_zhTW","kind":"string","bits":32,"offset":68,"locale":"zhTW"},{"name":"Description_lang_esES","kind":"string","bits":32,"offset":72,"locale":"esES"},{"name":"Description_lang_esMX","kind":"string","bits":32,"offset":76,"locale":"esMX"},{"name":"Description_lang_ruRU","kind":"string","bits":32,"offset":80,"locale":"ruRU"},{"name":"Description_lang_ptPT","kind":"string","bits":32,"offset":84,"locale":"ptPT"},{"name":"Description_lang_ptBR","kind":"string","bits":32,"offset":88,"locale":"ptBR"},{"name":"Description_lang_itIT","kind":"string","bits":32,"offset":92,"locale":"itIT"},{"name":"Description_lang_Unk","kind":"string","bits":32,"offset":96,"locale":"Unk"},{"name":"Description_lang_Mask","kind":"uint","bits":32,"offset":100},{"name":"Flags","kind":"int","bits":32,"offset":104},{"name":"Timer_start_event","kind":"int","bits":32,"offset":108},{"name":"Timer_asset_ID","kind":"int","bits":32,"offset":112},{"name":"Timer_time","kind":"int","bits":32,"offset":116},{"name":"Ui_order","kind":"int","bits":32,"offset":120}],"source":"WoWDBDefs"},"animationdata":{"name":"AnimationData","build":12340,"recordSize":32,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Name","kind":"string","bits":32,"offset":4},{"name":"Weaponflags","kind":"int","bits":32,"offset":8},{"name":"Bodyflags","kind":"int","bits":32,"offset":12},{"name":"Flags","kind":"int","bits":32,"offset":16},{"name":"Fallback","kind":"int","bits":32,"offset":20},{"name":"BehaviorID","kind":"int","bits":32,"offset":24},{"name":"BehaviorTier","kind":"int","bits":32,"offset":28}],"source":"WoWDBDefs"},"areagroup":{"name":"AreaGroup","build":12340,"recordSize":32,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"AreaID_1","kind":"int","bits":32,"offset":4},{"name":"AreaID_2","kind":"int","bits":32,"offset":8},{"name":"AreaID_3","kind":"int","bits":32,"offset":12},{"name":"AreaID_4","kind":"int","bits":32,"offset":16},{"name":"AreaID_5","kind":"int","bits":32,"offset":20},{"name":"AreaID_6","kind":"int","bits":32,"offset":24},{"name":"NextAreaID","kind":"int","bits":32,"offset":28}],"source":"WoWDBDefs"},"areapoi":{"name":"AreaPOI","build":12340,"recordSize":216,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Importance","kind":"int","bits":32,"offset":4},{"name":"Icon_1","kind":"int","bits":32,"offset":8},{"name":"Icon_2","kind":"int","bits":32,"offset":12},{"name":"Icon_3","kind":"int","bits":32,"offset":16},{"name":"Icon_4","kind":"int","bits":32,"offset":20},{"name":"Icon_5","kind":"int","bits":32,"offset":24},{"name":"Icon_6","kind":"int","bits":32,"offset":28},{"name":"Icon_7","kind":"int","bits":32,"offset":32},{"name":"Icon_8","kind":"int","bits":32,"offset":36},{"name":"Icon_9","kind":"int","bits":32,"offset":40},{"name":"FactionID","kind":"int","bits":32,"offset":44},{"name":"Pos_1","kind":"float","bits":32,"offset":48},{"name":"Pos_2","kind":"float","bits":32,"offset":52},{"name":"Pos_3","kind":"float","bits":32,"offset":56},{"name":"ContinentID","kind":"int","bits":32,"offset":60},{"name":"Flags","kind":"int","bits":32,"offset":64},{"name":"AreaID","kind":"int","bits":32,"offset":68},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":72,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":76,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":80,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":84,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":88,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":92,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":96,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":100,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":104,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":108,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":112,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":116,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":120,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":124,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":128,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":132,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":136},{"name":"Description_lang_enUS","kind":"string","bits":32,"offset":140,"locale":"enUS"},{"name":"Description_lang_enGB","kind":"string","bits":32,"offset":144,"locale":"enGB"},{"name":"Description_lang_koKR","kind":"string","bits":32,"offset":148,"locale":"koKR"},{"name":"Description_lang_frFR","kind":"string","bits":32,"offset":152,"locale":"frFR"},{"name":"Description_lang_deDE","kind":"string","bits":32,"offset":156,"locale":"deDE"},{"name":"Description_lang_enCN","kind":"string","bits":32,"offset":160,"locale":"enCN"},{"name":"Description_lang_zhCN","kind":"string","bits":32,"offset":164,"locale":"zhCN"},{"name":"Description_lang_enTW","kind":"string","bits":32,"offset":168,"locale":"enTW"},{"name":"Description_lang_zhTW","kind":"string","bits":32,"offset":172,"locale":"zhTW"},{"name":"Description_lang_esES","kind":"string","bits":32,"offset":176,"locale":"esES"},{"name":"Description_lang_esMX","kind":"string","bits":32,"offset":180,"locale":"esMX"},{"name":"Description_lang_ruRU","kind":"string","bits":32,"offset":184,"locale":"ruRU"},{"name":"Description_lang_ptPT","kind":"string","bits":32,"offset":188,"locale":"ptPT"},{"name":"Description_lang_ptBR","kind":"string","bits":32,"offset":192,"locale":"ptBR"},{"name":"Description_lang_itIT","kind":"string","bits":32,"offset":196,"locale":"itIT"},{"name":"Description_lang_Unk","kind":"string","bits":32,"offset":200,"locale":"Unk"},{"name":"Description_lang_Mask","kind":"uint","bits":32,"offset":204},{"name":"WorldStateID","kind":"int","bits":32,"offset":208},{"name":"WorldMapLink","kind":"int","bits":32,"offset":212}],"source":"WoWDBDefs"},"areatable":{"name":"AreaTable","build":12340,"recordSize":144,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"ContinentID","kind":"int","bits":32,"offset":4},{"name":"ParentAreaID","kind":"int","bits":32,"offset":8},{"name":"AreaBit","kind":"int","bits":32,"offset":12},{"name":"Flags","kind":"int","bits":32,"offset":16},{"name":"SoundProviderPref","kind":"int","bits":32,"offset":20},{"name":"SoundProviderPrefUnderwater","kind":"int","bits":32,"offset":24},{"name":"AmbienceID","kind":"int","bits":32,"offset":28},{"name":"ZoneMusic","kind":"int","bits":32,"offset":32},{"name":"IntroSound","kind":"int","bits":32,"offset":36},{"name":"ExplorationLevel","kind":"int","bits":32,"offset":40},{"name":"AreaName_lang_enUS","kind":"string","bits":32,"offset":44,"locale":"enUS"},{"name":"AreaName_lang_enGB","kind":"string","bits":32,"offset":48,"locale":"enGB"},{"name":"AreaName_lang_koKR","kind":"string","bits":32,"offset":52,"locale":"koKR"},{"name":"AreaName_lang_frFR","kind":"string","bits":32,"offset":56,"locale":"frFR"},{"name":"AreaName_lang_deDE","kind":"string","bits":32,"offset":60,"locale":"deDE"},{"name":"AreaName_lang_enCN","kind":"string","bits":32,"offset":64,"locale":"enCN"},{"name":"AreaName_lang_zhCN","kind":"string","bits":32,"offset":68,"locale":"zhCN"},{"name":"AreaName_lang_enTW","kind":"string","bits":32,"offset":72,"locale":"enTW"},{"name":"AreaName_lang_zhTW","kind":"string","bits":32,"offset":76,"locale":"zhTW"},{"name":"AreaName_lang_esES","kind":"string","bits":32,"offset":80,"locale":"esES"},{"name":"AreaName_lang_esMX","kind":"string","bits":32,"offset":84,"locale":"esMX"},{"name":"AreaName_lang_ruRU","kind":"string","bits":32,"offset":88,"locale":"ruRU"},{"name":"AreaName_lang_ptPT","kind":"string","bits":32,"offset":92,"locale":"ptPT"},{"name":"AreaName_lang_ptBR","kind":"string","bits":32,"offset":96,"locale":"ptBR"},{"name":"AreaName_lang_itIT","kind":"string","bits":32,"offset":100,"locale":"itIT"},{"name":"AreaName_lang_Unk","kind":"string","bits":32,"offset":104,"locale":"Unk"},{"name":"AreaName_lang_Mask","kind":"uint","bits":32,"offset":108},{"name":"FactionGroupMask","kind":"int","bits":32,"offset":112},{"name":"LiquidTypeID_1","kind":"int","bits":32,"offset":116},{"name":"LiquidTypeID_2","kind":"int","bits":32,"offset":120},{"name":"LiquidTypeID_3","kind":"int","bits":32,"offset":124},{"name":"LiquidTypeID_4","kind":"int","bits":32,"offset":128},{"name":"MinElevation","kind":"float","bits":32,"offset":132},{"name":"Ambient_multiplier","kind":"float","bits":32,"offset":136},{"name":"LightID","kind":"int","bits":32,"offset":140}],"source":"WoWDBDefs"},"areatrigger":{"name":"AreaTrigger","build":12340,"recordSize":40,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"ContinentID","kind":"int","bits":32,"offset":4},{"name":"Pos_1","kind":"float","bits":32,"offset":8},{"name":"Pos_2","kind":"float","bits":32,"offset":12},{"name":"Pos_3","kind":"float","bits":32,"offset":16},{"name":"Radius","kind":"float","bits":32,"offset":20},{"name":"Box_length","kind":"float","bits":32,"offset":24},{"name":"Box_width","kind":"float","bits":32,"offset":28},{"name":"Box_height","kind":"float","bits":32,"offset":32},{"name":"Box_yaw","kind":"float","bits":32,"offset":36}],"source":"WoWDBDefs"},"attackanimkits":{"name":"AttackAnimKits","build":12340,"recordSize":20,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"ItemSubclassID","kind":"int","bits":32,"offset":4},{"name":"AnimTypeID","kind":"int","bits":32,"offset":8},{"name":"AnimFrequency","kind":"int","bits":32,"offset":12},{"name":"WhichHand","kind":"int","bits":32,"offset":16}],"source":"WoWDBDefs"},"attackanimtypes":{"name":"AttackAnimTypes","build":12340,"recordSize":8,"columns":[{"name":"AnimID","kind":"int","bits":32,"offset":0},{"name":"AnimName","kind":"string","bits":32,"offset":4}],"source":"WoWDBDefs"},"auctionhouse":{"name":"AuctionHouse","build":12340,"recordSize":84,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"FactionID","kind":"int","bits":32,"offset":4},{"name":"DepositRate","kind":"int","bits":32,"offset":8},{"name":"ConsignmentRate","kind":"int","bits":32,"offset":12},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":16,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":20,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":24,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":28,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":32,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":36,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":40,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":44,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":48,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":52,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":56,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":60,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":64,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":68,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":72,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":76,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":80}],"source":"WoWDBDefs"},"bankbagslotprices":{"name":"BankBagSlotPrices","build":12340,"recordSize":8,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Cost","kind":"int","bits":32,"offset":4}],"source":"WoWDBDefs"},"bannedaddons":{"name":"BannedAddons","build":12340,"recordSize":44,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"NameMD5_1","kind":"int","bits":32,"offset":4},{"name":"NameMD5_2","kind":"int","bits":32,"offset":8},{"name":"NameMD5_3","kind":"int","bits":32,"offset":12},{"name":"NameMD5_4","kind":"int","bits":32,"offset":16},{"name":"VersionMD5_1","kind":"int","bits":32,"offset":20},{"name":"VersionMD5_2","kind":"int","bits":32,"offset":24},{"name":"VersionMD5_3","kind":"int","bits":32,"offset":28},{"name":"VersionMD5_4","kind":"int","bits":32,"offset":32},{"name":"LastModified","kind":"int","bits":32,"offset":36},{"name":"Flags","kind":"int","bits":32,"offset":40}],"source":"WoWDBDefs"},"barbershopstyle":{"name":"BarberShopStyle","build":12340,"recordSize":160,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Type","kind":"int","bits":32,"offset":4},{"name":"DisplayName_lang_enUS","kind":"string","bits":32,"offset":8,"locale":"enUS"},{"name":"DisplayName_lang_enGB","kind":"string","bits":32,"offset":12,"locale":"enGB"},{"name":"DisplayName_lang_koKR","kind":"string","bits":32,"offset":16,"locale":"koKR"},{"name":"DisplayName_lang_frFR","kind":"string","bits":32,"offset":20,"locale":"frFR"},{"name":"DisplayName_lang_deDE","kind":"string","bits":32,"offset":24,"locale":"deDE"},{"name":"DisplayName_lang_enCN","kind":"string","bits":32,"offset":28,"locale":"enCN"},{"name":"DisplayName_lang_zhCN","kind":"string","bits":32,"offset":32,"locale":"zhCN"},{"name":"DisplayName_lang_enTW","kind":"string","bits":32,"offset":36,"locale":"enTW"},{"name":"DisplayName_lang_zhTW","kind":"string","bits":32,"offset":40,"locale":"zhTW"},{"name":"DisplayName_lang_esES","kind":"string","bits":32,"offset":44,"locale":"esES"},{"name":"DisplayName_lang_esMX","kind":"string","bits":32,"offset":48,"locale":"esMX"},{"name":"DisplayName_lang_ruRU","kind":"string","bits":32,"offset":52,"locale":"ruRU"},{"name":"DisplayName_lang_ptPT","kind":"string","bits":32,"offset":56,"locale":"ptPT"},{"name":"DisplayName_lang_ptBR","kind":"string","bits":32,"offset":60,"locale":"ptBR"},{"name":"DisplayName_lang_itIT","kind":"string","bits":32,"offset":64,"locale":"itIT"},{"name":"DisplayName_lang_Unk","kind":"string","bits":32,"offset":68,"locale":"Unk"},{"name":"DisplayName_lang_Mask","kind":"uint","bits":32,"offset":72},{"name":"Description_lang_enUS","kind":"string","bits":32,"offset":76,"locale":"enUS"},{"name":"Description_lang_enGB","kind":"string","bits":32,"offset":80,"locale":"enGB"},{"name":"Description_lang_koKR","kind":"string","bits":32,"offset":84,"locale":"koKR"},{"name":"Description_lang_frFR","kind":"string","bits":32,"offset":88,"locale":"frFR"},{"name":"Description_lang_deDE","kind":"string","bits":32,"offset":92,"locale":"deDE"},{"name":"Description_lang_enCN","kind":"string","bits":32,"offset":96,"locale":"enCN"},{"name":"Description_lang_zhCN","kind":"string","bits":32,"offset":100,"locale":"zhCN"},{"name":"Description_lang_enTW","kind":"string","bits":32,"offset":104,"locale":"enTW"},{"name":"Description_lang_zhTW","kind":"string","bits":32,"offset":108,"locale":"zhTW"},{"name":"Description_lang_esES","kind":"string","bits":32,"offset":112,"locale":"esES"},{"name":"Description_lang_esMX","kind":"string","bits":32,"offset":116,"locale":"esMX"},{"name":"Description_lang_ruRU","kind":"string","bits":32,"offset":120,"locale":"ruRU"},{"name":"Description_lang_ptPT","kind":"string","bits":32,"offset":124,"locale":"ptPT"},{"name":"Description_lang_ptBR","kind":"string","bits":32,"offset":128,"locale":"ptBR"},{"name":"Description_lang_itIT","kind":"string","bits":32,"offset":132,"locale":"itIT"},{"name":"Description_lang_Unk","kind":"string","bits":32,"offset":136,"locale":"Unk"},{"name":"Description_lang_Mask","kind":"uint","bits":32,"offset":140},{"name":"Cost_Modifier","kind":"float","bits":32,"offset":144},{"name":"Race","kind":"int","bits":32,"offset":148},{"name":"Sex","kind":"int","bits":32,"offset":152},{"name":"Data","kind":"int","bits":32,"offset":156}],"source":"WoWDBDefs"},"battlemasterlist":{"name":"BattlemasterList","build":12340,"recordSize":128,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"MapID_1","kind":"int","bits":32,"offset":4},{"name":"MapID_2","kind":"int","bits":32,"offset":8},{"name":"MapID_3","kind":"int","bits":32,"offset":12},{"name":"MapID_4","kind":"int","bits":32,"offset":16},{"name":"MapID_5","kind":"int","bits":32,"offset":20},{"name":"MapID_6","kind":"int","bits":32,"offset":24},{"name":"MapID_7","kind":"int","bits":32,"offset":28},{"name":"MapID_8","kind":"int","bits":32,"offset":32},{"name":"InstanceType","kind":"int","bits":32,"offset":36},{"name":"GroupsAllowed","kind":"int","bits":32,"offset":40},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":44,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":48,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":52,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":56,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":60,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":64,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":68,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":72,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":76,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":80,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":84,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":88,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":92,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":96,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":100,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":104,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":108},{"name":"MaxGroupSize","kind":"int","bits":32,"offset":112},{"name":"HolidayWorldState","kind":"int","bits":32,"offset":116},{"name":"MinLevel","kind":"int","bits":32,"offset":120},{"name":"MaxLevel","kind":"int","bits":32,"offset":124}],"source":"WoWDBDefs"},"camerashakes":{"name":"CameraShakes","build":12340,"recordSize":32,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"ShakeType","kind":"int","bits":32,"offset":4},{"name":"Direction","kind":"int","bits":32,"offset":8},{"name":"Amplitude","kind":"float","bits":32,"offset":12},{"name":"Frequency","kind":"float","bits":32,"offset":16},{"name":"Duration","kind":"float","bits":32,"offset":20},{"name":"Phase","kind":"float","bits":32,"offset":24},{"name":"Coefficient","kind":"float","bits":32,"offset":28}],"source":"WoWDBDefs"},"cfg_categories":{"name":"Cfg_Categories","build":12340,"recordSize":84,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"LocaleMask","kind":"int","bits":32,"offset":4},{"name":"Create_charsetMask","kind":"int","bits":32,"offset":8},{"name":"Flags","kind":"int","bits":32,"offset":12},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":16,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":20,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":24,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":28,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":32,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":36,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":40,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":44,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":48,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":52,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":56,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":60,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":64,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":68,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":72,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":76,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":80}],"source":"WoWDBDefs"},"cfg_configs":{"name":"Cfg_Configs","build":12340,"recordSize":16,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"RealmType","kind":"int","bits":32,"offset":4},{"name":"PlayerKillingAllowed","kind":"int","bits":32,"offset":8},{"name":"Roleplaying","kind":"int","bits":32,"offset":12}],"source":"WoWDBDefs"},"characterfacialhairstyles":{"name":"CharacterFacialHairStyles","build":12340,"recordSize":32,"columns":[{"name":"RaceID","kind":"int","bits":32,"offset":0},{"name":"SexID","kind":"int","bits":32,"offset":4},{"name":"VariationID","kind":"int","bits":32,"offset":8},{"name":"Geoset_1","kind":"int","bits":32,"offset":12},{"name":"Geoset_2","kind":"int","bits":32,"offset":16},{"name":"Geoset_3","kind":"int","bits":32,"offset":20},{"name":"Geoset_4","kind":"int","bits":32,"offset":24},{"name":"Geoset_5","kind":"int","bits":32,"offset":28}],"source":"WoWDBDefs"},"charbaseinfo":{"name":"CharBaseInfo","build":12340,"recordSize":2,"columns":[{"name":"RaceID","kind":"int","bits":8,"offset":0},{"name":"ClassID","kind":"int","bits":8,"offset":1}],"source":"WoWDBDefs"},"charhairgeosets":{"name":"CharHairGeosets","build":12340,"recordSize":24,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"RaceID","kind":"int","bits":32,"offset":4},{"name":"SexID","kind":"int","bits":32,"offset":8},{"name":"VariationID","kind":"int","bits":32,"offset":12},{"name":"GeosetID","kind":"int","bits":32,"offset":16},{"name":"Showscalp","kind":"int","bits":32,"offset":20}],"source":"WoWDBDefs"},"charhairtextures":{"name":"CharHairTextures","build":12340,"recordSize":32,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Field_0_5_3_3368_001_race","kind":"int","bits":32,"offset":4},{"name":"Field_0_5_3_3368_002_gender","kind":"int","bits":32,"offset":8},{"name":"Field_0_5_3_3368_003","kind":"int","bits":32,"offset":12},{"name":"Field_0_5_3_3368_004_mayberacemask","kind":"int","bits":32,"offset":16},{"name":"Field_0_5_3_3368_005_the_x_in_hair_xy_blp","kind":"int","bits":32,"offset":20},{"name":"Field_0_5_3_3368_006","kind":"int","bits":32,"offset":24},{"name":"Field_0_5_3_3368_007","kind":"int","bits":32,"offset":28}],"source":"WoWDBDefs"},"charsections":{"name":"CharSections","build":12340,"recordSize":40,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"RaceID","kind":"int","bits":32,"offset":4},{"name":"SexID","kind":"int","bits":32,"offset":8},{"name":"BaseSection","kind":"int","bits":32,"offset":12},{"name":"TextureName_1","kind":"string","bits":32,"offset":16},{"name":"TextureName_2","kind":"string","bits":32,"offset":20},{"name":"TextureName_3","kind":"string","bits":32,"offset":24},{"name":"Flags","kind":"int","bits":32,"offset":28},{"name":"VariationIndex","kind":"int","bits":32,"offset":32},{"name":"ColorIndex","kind":"int","bits":32,"offset":36}],"source":"WoWDBDefs"},"charstartoutfit":{"name":"CharStartOutfit","build":12340,"recordSize":296,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"RaceID","kind":"int","bits":8,"offset":4},{"name":"ClassID","kind":"int","bits":8,"offset":5},{"name":"SexID","kind":"int","bits":8,"offset":6},{"name":"OutfitID","kind":"int","bits":8,"offset":7},{"name":"ItemID_1","kind":"int","bits":32,"offset":8},{"name":"ItemID_2","kind":"int","bits":32,"offset":12},{"name":"ItemID_3","kind":"int","bits":32,"offset":16},{"name":"ItemID_4","kind":"int","bits":32,"offset":20},{"name":"ItemID_5","kind":"int","bits":32,"offset":24},{"name":"ItemID_6","kind":"int","bits":32,"offset":28},{"name":"ItemID_7","kind":"int","bits":32,"offset":32},{"name":"ItemID_8","kind":"int","bits":32,"offset":36},{"name":"ItemID_9","kind":"int","bits":32,"offset":40},{"name":"ItemID_10","kind":"int","bits":32,"offset":44},{"name":"ItemID_11","kind":"int","bits":32,"offset":48},{"name":"ItemID_12","kind":"int","bits":32,"offset":52},{"name":"ItemID_13","kind":"int","bits":32,"offset":56},{"name":"ItemID_14","kind":"int","bits":32,"offset":60},{"name":"ItemID_15","kind":"int","bits":32,"offset":64},{"name":"ItemID_16","kind":"int","bits":32,"offset":68},{"name":"ItemID_17","kind":"int","bits":32,"offset":72},{"name":"ItemID_18","kind":"int","bits":32,"offset":76},{"name":"ItemID_19","kind":"int","bits":32,"offset":80},{"name":"ItemID_20","kind":"int","bits":32,"offset":84},{"name":"ItemID_21","kind":"int","bits":32,"offset":88},{"name":"ItemID_22","kind":"int","bits":32,"offset":92},{"name":"ItemID_23","kind":"int","bits":32,"offset":96},{"name":"ItemID_24","kind":"int","bits":32,"offset":100},{"name":"DisplayItemID_1","kind":"int","bits":32,"offset":104},{"name":"DisplayItemID_2","kind":"int","bits":32,"offset":108},{"name":"DisplayItemID_3","kind":"int","bits":32,"offset":112},{"name":"DisplayItemID_4","kind":"int","bits":32,"offset":116},{"name":"DisplayItemID_5","kind":"int","bits":32,"offset":120},{"name":"DisplayItemID_6","kind":"int","bits":32,"offset":124},{"name":"DisplayItemID_7","kind":"int","bits":32,"offset":128},{"name":"DisplayItemID_8","kind":"int","bits":32,"offset":132},{"name":"DisplayItemID_9","kind":"int","bits":32,"offset":136},{"name":"DisplayItemID_10","kind":"int","bits":32,"offset":140},{"name":"DisplayItemID_11","kind":"int","bits":32,"offset":144},{"name":"DisplayItemID_12","kind":"int","bits":32,"offset":148},{"name":"DisplayItemID_13","kind":"int","bits":32,"offset":152},{"name":"DisplayItemID_14","kind":"int","bits":32,"offset":156},{"name":"DisplayItemID_15","kind":"int","bits":32,"offset":160},{"name":"DisplayItemID_16","kind":"int","bits":32,"offset":164},{"name":"DisplayItemID_17","kind":"int","bits":32,"offset":168},{"name":"DisplayItemID_18","kind":"int","bits":32,"offset":172},{"name":"DisplayItemID_19","kind":"int","bits":32,"offset":176},{"name":"DisplayItemID_20","kind":"int","bits":32,"offset":180},{"name":"DisplayItemID_21","kind":"int","bits":32,"offset":184},{"name":"DisplayItemID_22","kind":"int","bits":32,"offset":188},{"name":"DisplayItemID_23","kind":"int","bits":32,"offset":192},{"name":"DisplayItemID_24","kind":"int","bits":32,"offset":196},{"name":"InventoryType_1","kind":"int","bits":32,"offset":200},{"name":"InventoryType_2","kind":"int","bits":32,"offset":204},{"name":"InventoryType_3","kind":"int","bits":32,"offset":208},{"name":"InventoryType_4","kind":"int","bits":32,"offset":212},{"name":"InventoryType_5","kind":"int","bits":32,"offset":216},{"name":"InventoryType_6","kind":"int","bits":32,"offset":220},{"name":"InventoryType_7","kind":"int","bits":32,"offset":224},{"name":"InventoryType_8","kind":"int","bits":32,"offset":228},{"name":"InventoryType_9","kind":"int","bits":32,"offset":232},{"name":"InventoryType_10","kind":"int","bits":32,"offset":236},{"name":"InventoryType_11","kind":"int","bits":32,"offset":240},{"name":"InventoryType_12","kind":"int","bits":32,"offset":244},{"name":"InventoryType_13","kind":"int","bits":32,"offset":248},{"name":"InventoryType_14","kind":"int","bits":32,"offset":252},{"name":"InventoryType_15","kind":"int","bits":32,"offset":256},{"name":"InventoryType_16","kind":"int","bits":32,"offset":260},{"name":"InventoryType_17","kind":"int","bits":32,"offset":264},{"name":"InventoryType_18","kind":"int","bits":32,"offset":268},{"name":"InventoryType_19","kind":"int","bits":32,"offset":272},{"name":"InventoryType_20","kind":"int","bits":32,"offset":276},{"name":"InventoryType_21","kind":"int","bits":32,"offset":280},{"name":"InventoryType_22","kind":"int","bits":32,"offset":284},{"name":"InventoryType_23","kind":"int","bits":32,"offset":288},{"name":"InventoryType_24","kind":"int","bits":32,"offset":292}],"source":"WoWDBDefs"},"chartitles":{"name":"CharTitles","build":12340,"recordSize":148,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Condition_ID","kind":"int","bits":32,"offset":4},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":8,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":12,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":16,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":20,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":24,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":28,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":32,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":36,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":40,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":44,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":48,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":52,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":56,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":60,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":64,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":68,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":72},{"name":"Name1_lang_enUS","kind":"string","bits":32,"offset":76,"locale":"enUS"},{"name":"Name1_lang_enGB","kind":"string","bits":32,"offset":80,"locale":"enGB"},{"name":"Name1_lang_koKR","kind":"string","bits":32,"offset":84,"locale":"koKR"},{"name":"Name1_lang_frFR","kind":"string","bits":32,"offset":88,"locale":"frFR"},{"name":"Name1_lang_deDE","kind":"string","bits":32,"offset":92,"locale":"deDE"},{"name":"Name1_lang_enCN","kind":"string","bits":32,"offset":96,"locale":"enCN"},{"name":"Name1_lang_zhCN","kind":"string","bits":32,"offset":100,"locale":"zhCN"},{"name":"Name1_lang_enTW","kind":"string","bits":32,"offset":104,"locale":"enTW"},{"name":"Name1_lang_zhTW","kind":"string","bits":32,"offset":108,"locale":"zhTW"},{"name":"Name1_lang_esES","kind":"string","bits":32,"offset":112,"locale":"esES"},{"name":"Name1_lang_esMX","kind":"string","bits":32,"offset":116,"locale":"esMX"},{"name":"Name1_lang_ruRU","kind":"string","bits":32,"offset":120,"locale":"ruRU"},{"name":"Name1_lang_ptPT","kind":"string","bits":32,"offset":124,"locale":"ptPT"},{"name":"Name1_lang_ptBR","kind":"string","bits":32,"offset":128,"locale":"ptBR"},{"name":"Name1_lang_itIT","kind":"string","bits":32,"offset":132,"locale":"itIT"},{"name":"Name1_lang_Unk","kind":"string","bits":32,"offset":136,"locale":"Unk"},{"name":"Name1_lang_Mask","kind":"uint","bits":32,"offset":140},{"name":"Mask_ID","kind":"int","bits":32,"offset":144}],"source":"WoWDBDefs"},"charvariations":{"name":"CharVariations","build":12340,"recordSize":24,"columns":[{"name":"RaceID","kind":"int","bits":32,"offset":0},{"name":"SexID","kind":"int","bits":32,"offset":4},{"name":"TextureHoldLayer_1","kind":"int","bits":32,"offset":8},{"name":"TextureHoldLayer_2","kind":"int","bits":32,"offset":12},{"name":"TextureHoldLayer_3","kind":"int","bits":32,"offset":16},{"name":"TextureHoldLayer_4","kind":"int","bits":32,"offset":20}],"source":"WoWDBDefs"},"chatchannels":{"name":"ChatChannels","build":12340,"recordSize":148,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Flags","kind":"int","bits":32,"offset":4},{"name":"FactionGroup","kind":"int","bits":32,"offset":8},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":12,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":16,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":20,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":24,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":28,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":32,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":36,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":40,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":44,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":48,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":52,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":56,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":60,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":64,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":68,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":72,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":76},{"name":"Shortcut_lang_enUS","kind":"string","bits":32,"offset":80,"locale":"enUS"},{"name":"Shortcut_lang_enGB","kind":"string","bits":32,"offset":84,"locale":"enGB"},{"name":"Shortcut_lang_koKR","kind":"string","bits":32,"offset":88,"locale":"koKR"},{"name":"Shortcut_lang_frFR","kind":"string","bits":32,"offset":92,"locale":"frFR"},{"name":"Shortcut_lang_deDE","kind":"string","bits":32,"offset":96,"locale":"deDE"},{"name":"Shortcut_lang_enCN","kind":"string","bits":32,"offset":100,"locale":"enCN"},{"name":"Shortcut_lang_zhCN","kind":"string","bits":32,"offset":104,"locale":"zhCN"},{"name":"Shortcut_lang_enTW","kind":"string","bits":32,"offset":108,"locale":"enTW"},{"name":"Shortcut_lang_zhTW","kind":"string","bits":32,"offset":112,"locale":"zhTW"},{"name":"Shortcut_lang_esES","kind":"string","bits":32,"offset":116,"locale":"esES"},{"name":"Shortcut_lang_esMX","kind":"string","bits":32,"offset":120,"locale":"esMX"},{"name":"Shortcut_lang_ruRU","kind":"string","bits":32,"offset":124,"locale":"ruRU"},{"name":"Shortcut_lang_ptPT","kind":"string","bits":32,"offset":128,"locale":"ptPT"},{"name":"Shortcut_lang_ptBR","kind":"string","bits":32,"offset":132,"locale":"ptBR"},{"name":"Shortcut_lang_itIT","kind":"string","bits":32,"offset":136,"locale":"itIT"},{"name":"Shortcut_lang_Unk","kind":"string","bits":32,"offset":140,"locale":"Unk"},{"name":"Shortcut_lang_Mask","kind":"uint","bits":32,"offset":144}],"source":"WoWDBDefs"},"chatprofanity":{"name":"ChatProfanity","build":12340,"recordSize":12,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Text","kind":"string","bits":32,"offset":4},{"name":"Language","kind":"int","bits":32,"offset":8}],"source":"WoWDBDefs"},"chrclasses":{"name":"ChrClasses","build":12340,"recordSize":240,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"DamageBonusStat","kind":"int","bits":32,"offset":4},{"name":"DisplayPower","kind":"int","bits":32,"offset":8},{"name":"PetNameToken","kind":"string","bits":32,"offset":12},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":16,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":20,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":24,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":28,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":32,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":36,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":40,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":44,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":48,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":52,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":56,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":60,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":64,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":68,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":72,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":76,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":80},{"name":"Name_female_lang_enUS","kind":"string","bits":32,"offset":84,"locale":"enUS"},{"name":"Name_female_lang_enGB","kind":"string","bits":32,"offset":88,"locale":"enGB"},{"name":"Name_female_lang_koKR","kind":"string","bits":32,"offset":92,"locale":"koKR"},{"name":"Name_female_lang_frFR","kind":"string","bits":32,"offset":96,"locale":"frFR"},{"name":"Name_female_lang_deDE","kind":"string","bits":32,"offset":100,"locale":"deDE"},{"name":"Name_female_lang_enCN","kind":"string","bits":32,"offset":104,"locale":"enCN"},{"name":"Name_female_lang_zhCN","kind":"string","bits":32,"offset":108,"locale":"zhCN"},{"name":"Name_female_lang_enTW","kind":"string","bits":32,"offset":112,"locale":"enTW"},{"name":"Name_female_lang_zhTW","kind":"string","bits":32,"offset":116,"locale":"zhTW"},{"name":"Name_female_lang_esES","kind":"string","bits":32,"offset":120,"locale":"esES"},{"name":"Name_female_lang_esMX","kind":"string","bits":32,"offset":124,"locale":"esMX"},{"name":"Name_female_lang_ruRU","kind":"string","bits":32,"offset":128,"locale":"ruRU"},{"name":"Name_female_lang_ptPT","kind":"string","bits":32,"offset":132,"locale":"ptPT"},{"name":"Name_female_lang_ptBR","kind":"string","bits":32,"offset":136,"locale":"ptBR"},{"name":"Name_female_lang_itIT","kind":"string","bits":32,"offset":140,"locale":"itIT"},{"name":"Name_female_lang_Unk","kind":"string","bits":32,"offset":144,"locale":"Unk"},{"name":"Name_female_lang_Mask","kind":"uint","bits":32,"offset":148},{"name":"Name_male_lang_enUS","kind":"string","bits":32,"offset":152,"locale":"enUS"},{"name":"Name_male_lang_enGB","kind":"string","bits":32,"offset":156,"locale":"enGB"},{"name":"Name_male_lang_koKR","kind":"string","bits":32,"offset":160,"locale":"koKR"},{"name":"Name_male_lang_frFR","kind":"string","bits":32,"offset":164,"locale":"frFR"},{"name":"Name_male_lang_deDE","kind":"string","bits":32,"offset":168,"locale":"deDE"},{"name":"Name_male_lang_enCN","kind":"string","bits":32,"offset":172,"locale":"enCN"},{"name":"Name_male_lang_zhCN","kind":"string","bits":32,"offset":176,"locale":"zhCN"},{"name":"Name_male_lang_enTW","kind":"string","bits":32,"offset":180,"locale":"enTW"},{"name":"Name_male_lang_zhTW","kind":"string","bits":32,"offset":184,"locale":"zhTW"},{"name":"Name_male_lang_esES","kind":"string","bits":32,"offset":188,"locale":"esES"},{"name":"Name_male_lang_esMX","kind":"string","bits":32,"offset":192,"locale":"esMX"},{"name":"Name_male_lang_ruRU","kind":"string","bits":32,"offset":196,"locale":"ruRU"},{"name":"Name_male_lang_ptPT","kind":"string","bits":32,"offset":200,"locale":"ptPT"},{"name":"Name_male_lang_ptBR","kind":"string","bits":32,"offset":204,"locale":"ptBR"},{"name":"Name_male_lang_itIT","kind":"string","bits":32,"offset":208,"locale":"itIT"},{"name":"Name_male_lang_Unk","kind":"string","bits":32,"offset":212,"locale":"Unk"},{"name":"Name_male_lang_Mask","kind":"uint","bits":32,"offset":216},{"name":"Filename","kind":"string","bits":32,"offset":220},{"name":"SpellClassSet","kind":"int","bits":32,"offset":224},{"name":"Flags","kind":"int","bits":32,"offset":228},{"name":"CinematicSequenceID","kind":"int","bits":32,"offset":232},{"name":"Required_expansion","kind":"int","bits":32,"offset":236}],"source":"WoWDBDefs"},"chrraces":{"name":"ChrRaces","build":12340,"recordSize":276,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Flags","kind":"int","bits":32,"offset":4},{"name":"FactionID","kind":"int","bits":32,"offset":8},{"name":"ExplorationSoundID","kind":"int","bits":32,"offset":12},{"name":"MaleDisplayID","kind":"int","bits":32,"offset":16},{"name":"FemaleDisplayID","kind":"int","bits":32,"offset":20},{"name":"ClientPrefix","kind":"string","bits":32,"offset":24},{"name":"BaseLanguage","kind":"int","bits":32,"offset":28},{"name":"CreatureType","kind":"int","bits":32,"offset":32},{"name":"ResSicknessSpellID","kind":"int","bits":32,"offset":36},{"name":"SplashSoundID","kind":"int","bits":32,"offset":40},{"name":"ClientFileString","kind":"string","bits":32,"offset":44},{"name":"CinematicSequenceID","kind":"int","bits":32,"offset":48},{"name":"Alliance","kind":"int","bits":32,"offset":52},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":56,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":60,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":64,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":68,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":72,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":76,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":80,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":84,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":88,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":92,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":96,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":100,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":104,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":108,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":112,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":116,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":120},{"name":"Name_female_lang_enUS","kind":"string","bits":32,"offset":124,"locale":"enUS"},{"name":"Name_female_lang_enGB","kind":"string","bits":32,"offset":128,"locale":"enGB"},{"name":"Name_female_lang_koKR","kind":"string","bits":32,"offset":132,"locale":"koKR"},{"name":"Name_female_lang_frFR","kind":"string","bits":32,"offset":136,"locale":"frFR"},{"name":"Name_female_lang_deDE","kind":"string","bits":32,"offset":140,"locale":"deDE"},{"name":"Name_female_lang_enCN","kind":"string","bits":32,"offset":144,"locale":"enCN"},{"name":"Name_female_lang_zhCN","kind":"string","bits":32,"offset":148,"locale":"zhCN"},{"name":"Name_female_lang_enTW","kind":"string","bits":32,"offset":152,"locale":"enTW"},{"name":"Name_female_lang_zhTW","kind":"string","bits":32,"offset":156,"locale":"zhTW"},{"name":"Name_female_lang_esES","kind":"string","bits":32,"offset":160,"locale":"esES"},{"name":"Name_female_lang_esMX","kind":"string","bits":32,"offset":164,"locale":"esMX"},{"name":"Name_female_lang_ruRU","kind":"string","bits":32,"offset":168,"locale":"ruRU"},{"name":"Name_female_lang_ptPT","kind":"string","bits":32,"offset":172,"locale":"ptPT"},{"name":"Name_female_lang_ptBR","kind":"string","bits":32,"offset":176,"locale":"ptBR"},{"name":"Name_female_lang_itIT","kind":"string","bits":32,"offset":180,"locale":"itIT"},{"name":"Name_female_lang_Unk","kind":"string","bits":32,"offset":184,"locale":"Unk"},{"name":"Name_female_lang_Mask","kind":"uint","bits":32,"offset":188},{"name":"Name_male_lang_enUS","kind":"string","bits":32,"offset":192,"locale":"enUS"},{"name":"Name_male_lang_enGB","kind":"string","bits":32,"offset":196,"locale":"enGB"},{"name":"Name_male_lang_koKR","kind":"string","bits":32,"offset":200,"locale":"koKR"},{"name":"Name_male_lang_frFR","kind":"string","bits":32,"offset":204,"locale":"frFR"},{"name":"Name_male_lang_deDE","kind":"string","bits":32,"offset":208,"locale":"deDE"},{"name":"Name_male_lang_enCN","kind":"string","bits":32,"offset":212,"locale":"enCN"},{"name":"Name_male_lang_zhCN","kind":"string","bits":32,"offset":216,"locale":"zhCN"},{"name":"Name_male_lang_enTW","kind":"string","bits":32,"offset":220,"locale":"enTW"},{"name":"Name_male_lang_zhTW","kind":"string","bits":32,"offset":224,"locale":"zhTW"},{"name":"Name_male_lang_esES","kind":"string","bits":32,"offset":228,"locale":"esES"},{"name":"Name_male_lang_esMX","kind":"string","bits":32,"offset":232,"locale":"esMX"},{"name":"Name_male_lang_ruRU","kind":"string","bits":32,"offset":236,"locale":"ruRU"},{"name":"Name_male_lang_ptPT","kind":"string","bits":32,"offset":240,"locale":"ptPT"},{"name":"Name_male_lang_ptBR","kind":"string","bits":32,"offset":244,"locale":"ptBR"},{"name":"Name_male_lang_itIT","kind":"string","bits":32,"offset":248,"locale":"itIT"},{"name":"Name_male_lang_Unk","kind":"string","bits":32,"offset":252,"locale":"Unk"},{"name":"Name_male_lang_Mask","kind":"uint","bits":32,"offset":256},{"name":"FacialHairCustomization_1","kind":"string","bits":32,"offset":260},{"name":"FacialHairCustomization_2","kind":"string","bits":32,"offset":264},{"name":"HairCustomization","kind":"string","bits":32,"offset":268},{"name":"Required_expansion","kind":"int","bits":32,"offset":272}],"source":"WoWDBDefs"},"cinematiccamera":{"name":"CinematicCamera","build":12340,"recordSize":28,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Model","kind":"string","bits":32,"offset":4},{"name":"SoundID","kind":"int","bits":32,"offset":8},{"name":"Origin_1","kind":"float","bits":32,"offset":12},{"name":"Origin_2","kind":"float","bits":32,"offset":16},{"name":"Origin_3","kind":"float","bits":32,"offset":20},{"name":"OriginFacing","kind":"float","bits":32,"offset":24}],"source":"WoWDBDefs"},"cinematicsequences":{"name":"CinematicSequences","build":12340,"recordSize":40,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"SoundID","kind":"int","bits":32,"offset":4},{"name":"Camera_1","kind":"int","bits":32,"offset":8},{"name":"Camera_2","kind":"int","bits":32,"offset":12},{"name":"Camera_3","kind":"int","bits":32,"offset":16},{"name":"Camera_4","kind":"int","bits":32,"offset":20},{"name":"Camera_5","kind":"int","bits":32,"offset":24},{"name":"Camera_6","kind":"int","bits":32,"offset":28},{"name":"Camera_7","kind":"int","bits":32,"offset":32},{"name":"Camera_8","kind":"int","bits":32,"offset":36}],"source":"WoWDBDefs"},"creaturedisplayinfo":{"name":"CreatureDisplayInfo","build":12340,"recordSize":64,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"ModelID","kind":"int","bits":32,"offset":4},{"name":"SoundID","kind":"int","bits":32,"offset":8},{"name":"ExtendedDisplayInfoID","kind":"int","bits":32,"offset":12},{"name":"CreatureModelScale","kind":"float","bits":32,"offset":16},{"name":"CreatureModelAlpha","kind":"int","bits":32,"offset":20},{"name":"TextureVariation_1","kind":"string","bits":32,"offset":24},{"name":"TextureVariation_2","kind":"string","bits":32,"offset":28},{"name":"TextureVariation_3","kind":"string","bits":32,"offset":32},{"name":"PortraitTextureName","kind":"string","bits":32,"offset":36},{"name":"SizeClass","kind":"int","bits":32,"offset":40},{"name":"BloodID","kind":"int","bits":32,"offset":44},{"name":"NPCSoundID","kind":"int","bits":32,"offset":48},{"name":"ParticleColorID","kind":"int","bits":32,"offset":52},{"name":"CreatureGeosetData","kind":"int","bits":32,"offset":56},{"name":"ObjectEffectPackageID","kind":"int","bits":32,"offset":60}],"source":"WoWDBDefs"},"creaturedisplayinfoextra":{"name":"CreatureDisplayInfoExtra","build":12340,"recordSize":84,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"DisplayRaceID","kind":"int","bits":32,"offset":4},{"name":"DisplaySexID","kind":"int","bits":32,"offset":8},{"name":"SkinID","kind":"int","bits":32,"offset":12},{"name":"FaceID","kind":"int","bits":32,"offset":16},{"name":"HairStyleID","kind":"int","bits":32,"offset":20},{"name":"HairColorID","kind":"int","bits":32,"offset":24},{"name":"FacialHairID","kind":"int","bits":32,"offset":28},{"name":"NPCItemDisplay_1","kind":"int","bits":32,"offset":32},{"name":"NPCItemDisplay_2","kind":"int","bits":32,"offset":36},{"name":"NPCItemDisplay_3","kind":"int","bits":32,"offset":40},{"name":"NPCItemDisplay_4","kind":"int","bits":32,"offset":44},{"name":"NPCItemDisplay_5","kind":"int","bits":32,"offset":48},{"name":"NPCItemDisplay_6","kind":"int","bits":32,"offset":52},{"name":"NPCItemDisplay_7","kind":"int","bits":32,"offset":56},{"name":"NPCItemDisplay_8","kind":"int","bits":32,"offset":60},{"name":"NPCItemDisplay_9","kind":"int","bits":32,"offset":64},{"name":"NPCItemDisplay_10","kind":"int","bits":32,"offset":68},{"name":"NPCItemDisplay_11","kind":"int","bits":32,"offset":72},{"name":"Flags","kind":"int","bits":32,"offset":76},{"name":"BakeName","kind":"string","bits":32,"offset":80}],"source":"WoWDBDefs"},"creaturefamily":{"name":"CreatureFamily","build":12340,"recordSize":112,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"MinScale","kind":"float","bits":32,"offset":4},{"name":"MinScaleLevel","kind":"int","bits":32,"offset":8},{"name":"MaxScale","kind":"float","bits":32,"offset":12},{"name":"MaxScaleLevel","kind":"int","bits":32,"offset":16},{"name":"SkillLine_1","kind":"int","bits":32,"offset":20},{"name":"SkillLine_2","kind":"int","bits":32,"offset":24},{"name":"PetFoodMask","kind":"int","bits":32,"offset":28},{"name":"PetTalentType","kind":"int","bits":32,"offset":32},{"name":"CategoryEnumID","kind":"int","bits":32,"offset":36},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":40,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":44,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":48,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":52,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":56,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":60,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":64,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":68,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":72,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":76,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":80,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":84,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":88,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":92,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":96,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":100,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":104},{"name":"IconFile","kind":"string","bits":32,"offset":108}],"source":"WoWDBDefs"},"creaturemodeldata":{"name":"CreatureModelData","build":12340,"recordSize":112,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Flags","kind":"int","bits":32,"offset":4},{"name":"ModelName","kind":"string","bits":32,"offset":8},{"name":"SizeClass","kind":"int","bits":32,"offset":12},{"name":"ModelScale","kind":"float","bits":32,"offset":16},{"name":"BloodID","kind":"int","bits":32,"offset":20},{"name":"FootprintTextureID","kind":"int","bits":32,"offset":24},{"name":"FootprintTextureLength","kind":"float","bits":32,"offset":28},{"name":"FootprintTextureWidth","kind":"float","bits":32,"offset":32},{"name":"FootprintParticleScale","kind":"float","bits":32,"offset":36},{"name":"FoleyMaterialID","kind":"int","bits":32,"offset":40},{"name":"FootstepShakeSize","kind":"int","bits":32,"offset":44},{"name":"DeathThudShakeSize","kind":"int","bits":32,"offset":48},{"name":"SoundID","kind":"int","bits":32,"offset":52},{"name":"CollisionWidth","kind":"float","bits":32,"offset":56},{"name":"CollisionHeight","kind":"float","bits":32,"offset":60},{"name":"MountHeight","kind":"float","bits":32,"offset":64},{"name":"GeoBoxMinX","kind":"float","bits":32,"offset":68},{"name":"GeoBoxMinY","kind":"float","bits":32,"offset":72},{"name":"GeoBoxMinZ","kind":"float","bits":32,"offset":76},{"name":"GeoBoxMaxX","kind":"float","bits":32,"offset":80},{"name":"GeoBoxMaxY","kind":"float","bits":32,"offset":84},{"name":"GeoBoxMaxZ","kind":"float","bits":32,"offset":88},{"name":"WorldEffectScale","kind":"float","bits":32,"offset":92},{"name":"AttachedEffectScale","kind":"float","bits":32,"offset":96},{"name":"MissileCollisionRadius","kind":"float","bits":32,"offset":100},{"name":"MissileCollisionPush","kind":"float","bits":32,"offset":104},{"name":"MissileCollisionRaise","kind":"float","bits":32,"offset":108}],"source":"WoWDBDefs"},"creaturemovementinfo":{"name":"CreatureMovementInfo","build":12340,"recordSize":8,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"SmoothFacingChaseRate","kind":"float","bits":32,"offset":4}],"source":"WoWDBDefs"},"creaturesounddata":{"name":"CreatureSoundData","build":12340,"recordSize":152,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"SoundExertionID","kind":"int","bits":32,"offset":4},{"name":"SoundExertionCriticalID","kind":"int","bits":32,"offset":8},{"name":"SoundInjuryID","kind":"int","bits":32,"offset":12},{"name":"SoundInjuryCriticalID","kind":"int","bits":32,"offset":16},{"name":"SoundInjuryCrushingBlowID","kind":"int","bits":32,"offset":20},{"name":"SoundDeathID","kind":"int","bits":32,"offset":24},{"name":"SoundStunID","kind":"int","bits":32,"offset":28},{"name":"SoundStandID","kind":"int","bits":32,"offset":32},{"name":"SoundFootstepID","kind":"int","bits":32,"offset":36},{"name":"SoundAggroID","kind":"int","bits":32,"offset":40},{"name":"SoundWingFlapID","kind":"int","bits":32,"offset":44},{"name":"SoundWingGlideID","kind":"int","bits":32,"offset":48},{"name":"SoundAlertID","kind":"int","bits":32,"offset":52},{"name":"SoundFidget_1","kind":"int","bits":32,"offset":56},{"name":"SoundFidget_2","kind":"int","bits":32,"offset":60},{"name":"SoundFidget_3","kind":"int","bits":32,"offset":64},{"name":"SoundFidget_4","kind":"int","bits":32,"offset":68},{"name":"SoundFidget_5","kind":"int","bits":32,"offset":72},{"name":"CustomAttack_1","kind":"int","bits":32,"offset":76},{"name":"CustomAttack_2","kind":"int","bits":32,"offset":80},{"name":"CustomAttack_3","kind":"int","bits":32,"offset":84},{"name":"CustomAttack_4","kind":"int","bits":32,"offset":88},{"name":"NPCSoundID","kind":"int","bits":32,"offset":92},{"name":"LoopSoundID","kind":"int","bits":32,"offset":96},{"name":"CreatureImpactType","kind":"int","bits":32,"offset":100},{"name":"SoundJumpStartID","kind":"int","bits":32,"offset":104},{"name":"SoundJumpEndID","kind":"int","bits":32,"offset":108},{"name":"SoundPetAttackID","kind":"int","bits":32,"offset":112},{"name":"SoundPetOrderID","kind":"int","bits":32,"offset":116},{"name":"SoundPetDismissID","kind":"int","bits":32,"offset":120},{"name":"FidgetDelaySecondsMin","kind":"float","bits":32,"offset":124},{"name":"FidgetDelaySecondsMax","kind":"float","bits":32,"offset":128},{"name":"BirthSoundID","kind":"int","bits":32,"offset":132},{"name":"SpellCastDirectedSoundID","kind":"int","bits":32,"offset":136},{"name":"SubmergeSoundID","kind":"int","bits":32,"offset":140},{"name":"SubmergedSoundID","kind":"int","bits":32,"offset":144},{"name":"CreatureSoundDataIDPet","kind":"int","bits":32,"offset":148}],"source":"WoWDBDefs"},"creaturespelldata":{"name":"CreatureSpellData","build":12340,"recordSize":36,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Spells_1","kind":"int","bits":32,"offset":4},{"name":"Spells_2","kind":"int","bits":32,"offset":8},{"name":"Spells_3","kind":"int","bits":32,"offset":12},{"name":"Spells_4","kind":"int","bits":32,"offset":16},{"name":"Availability_1","kind":"int","bits":32,"offset":20},{"name":"Availability_2","kind":"int","bits":32,"offset":24},{"name":"Availability_3","kind":"int","bits":32,"offset":28},{"name":"Availability_4","kind":"int","bits":32,"offset":32}],"source":"WoWDBDefs"},"creaturetype":{"name":"CreatureType","build":12340,"recordSize":76,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":4,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":8,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":12,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":16,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":20,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":24,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":28,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":32,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":36,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":40,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":44,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":48,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":52,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":56,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":60,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":64,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":68},{"name":"Flags","kind":"int","bits":32,"offset":72}],"source":"WoWDBDefs"},"currencycategory":{"name":"CurrencyCategory","build":12340,"recordSize":76,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Flags","kind":"int","bits":32,"offset":4},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":8,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":12,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":16,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":20,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":24,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":28,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":32,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":36,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":40,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":44,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":48,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":52,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":56,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":60,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":64,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":68,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":72}],"source":"WoWDBDefs"},"currencytypes":{"name":"CurrencyTypes","build":12340,"recordSize":16,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"ItemID","kind":"int","bits":32,"offset":4},{"name":"CategoryID","kind":"int","bits":32,"offset":8},{"name":"BitIndex","kind":"int","bits":32,"offset":12}],"source":"WoWDBDefs"},"dancemoves":{"name":"DanceMoves","build":12340,"recordSize":96,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Type","kind":"int","bits":32,"offset":4},{"name":"Param","kind":"int","bits":32,"offset":8},{"name":"Fallback","kind":"int","bits":32,"offset":12},{"name":"Racemask","kind":"int","bits":32,"offset":16},{"name":"Internal_name","kind":"string","bits":32,"offset":20},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":24,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":28,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":32,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":36,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":40,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":44,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":48,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":52,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":56,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":60,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":64,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":68,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":72,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":76,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":80,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":84,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":88},{"name":"LockID","kind":"int","bits":32,"offset":92}],"source":"WoWDBDefs"},"deaththudlookups":{"name":"DeathThudLookups","build":12340,"recordSize":20,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"SizeClass","kind":"int","bits":32,"offset":4},{"name":"TerrainTypeSoundID","kind":"int","bits":32,"offset":8},{"name":"SoundEntryID","kind":"int","bits":32,"offset":12},{"name":"SoundEntryIDWater","kind":"int","bits":32,"offset":16}],"source":"WoWDBDefs"},"declinedword":{"name":"DeclinedWord","build":12340,"recordSize":8,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Word","kind":"string","bits":32,"offset":4}],"source":"WoWDBDefs"},"declinedwordcases":{"name":"DeclinedWordCases","build":12340,"recordSize":16,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"DeclinedWordID","kind":"int","bits":32,"offset":4},{"name":"CaseIndex","kind":"int","bits":32,"offset":8},{"name":"DeclinedWord","kind":"string","bits":32,"offset":12}],"source":"WoWDBDefs"},"destructiblemodeldata":{"name":"DestructibleModelData","build":12340,"recordSize":76,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"State0ImpactEffectDoodadSet","kind":"int","bits":32,"offset":4},{"name":"State0AmbientDoodadSet","kind":"int","bits":32,"offset":8},{"name":"State1WMO","kind":"int","bits":32,"offset":12},{"name":"State1DestructionDoodadSet","kind":"int","bits":32,"offset":16},{"name":"State1ImpactEffectDoodadSet","kind":"int","bits":32,"offset":20},{"name":"State1AmbientDoodadSet","kind":"int","bits":32,"offset":24},{"name":"State2WMO","kind":"int","bits":32,"offset":28},{"name":"State2DestructionDoodadSet","kind":"int","bits":32,"offset":32},{"name":"State2ImpactEffectDoodadSet","kind":"int","bits":32,"offset":36},{"name":"State2AmbientDoodadSet","kind":"int","bits":32,"offset":40},{"name":"State3WMO","kind":"int","bits":32,"offset":44},{"name":"State3InitDoodadSet","kind":"int","bits":32,"offset":48},{"name":"State3AmbientDoodadSet","kind":"int","bits":32,"offset":52},{"name":"EjectDirection","kind":"int","bits":32,"offset":56},{"name":"RepairGroundFx","kind":"int","bits":32,"offset":60},{"name":"DoNotHighlight","kind":"int","bits":32,"offset":64},{"name":"HealEffect","kind":"int","bits":32,"offset":68},{"name":"HealEffectSpeed","kind":"int","bits":32,"offset":72}],"source":"WoWDBDefs"},"dungeonencounter":{"name":"DungeonEncounter","build":12340,"recordSize":92,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"MapID","kind":"int","bits":32,"offset":4},{"name":"Difficulty","kind":"int","bits":32,"offset":8},{"name":"OrderIndex","kind":"int","bits":32,"offset":12},{"name":"Bit","kind":"int","bits":32,"offset":16},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":20,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":24,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":28,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":32,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":36,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":40,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":44,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":48,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":52,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":56,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":60,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":64,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":68,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":72,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":76,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":80,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":84},{"name":"SpellIconID","kind":"int","bits":32,"offset":88}],"source":"WoWDBDefs"},"dungeonmap":{"name":"DungeonMap","build":12340,"recordSize":32,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"MapID","kind":"int","bits":32,"offset":4},{"name":"FloorIndex","kind":"int","bits":32,"offset":8},{"name":"MinX","kind":"float","bits":32,"offset":12},{"name":"MaxX","kind":"float","bits":32,"offset":16},{"name":"MinY","kind":"float","bits":32,"offset":20},{"name":"MaxY","kind":"float","bits":32,"offset":24},{"name":"ParentWorldMapID","kind":"int","bits":32,"offset":28}],"source":"WoWDBDefs"},"dungeonmapchunk":{"name":"DungeonMapChunk","build":12340,"recordSize":20,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"MapID","kind":"int","bits":32,"offset":4},{"name":"WMOGroupID","kind":"int","bits":32,"offset":8},{"name":"DungeonMapID","kind":"int","bits":32,"offset":12},{"name":"MinZ","kind":"float","bits":32,"offset":16}],"source":"WoWDBDefs"},"durabilitycosts":{"name":"DurabilityCosts","build":12340,"recordSize":120,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"WeaponSubClassCost_1","kind":"int","bits":32,"offset":4},{"name":"WeaponSubClassCost_2","kind":"int","bits":32,"offset":8},{"name":"WeaponSubClassCost_3","kind":"int","bits":32,"offset":12},{"name":"WeaponSubClassCost_4","kind":"int","bits":32,"offset":16},{"name":"WeaponSubClassCost_5","kind":"int","bits":32,"offset":20},{"name":"WeaponSubClassCost_6","kind":"int","bits":32,"offset":24},{"name":"WeaponSubClassCost_7","kind":"int","bits":32,"offset":28},{"name":"WeaponSubClassCost_8","kind":"int","bits":32,"offset":32},{"name":"WeaponSubClassCost_9","kind":"int","bits":32,"offset":36},{"name":"WeaponSubClassCost_10","kind":"int","bits":32,"offset":40},{"name":"WeaponSubClassCost_11","kind":"int","bits":32,"offset":44},{"name":"WeaponSubClassCost_12","kind":"int","bits":32,"offset":48},{"name":"WeaponSubClassCost_13","kind":"int","bits":32,"offset":52},{"name":"WeaponSubClassCost_14","kind":"int","bits":32,"offset":56},{"name":"WeaponSubClassCost_15","kind":"int","bits":32,"offset":60},{"name":"WeaponSubClassCost_16","kind":"int","bits":32,"offset":64},{"name":"WeaponSubClassCost_17","kind":"int","bits":32,"offset":68},{"name":"WeaponSubClassCost_18","kind":"int","bits":32,"offset":72},{"name":"WeaponSubClassCost_19","kind":"int","bits":32,"offset":76},{"name":"WeaponSubClassCost_20","kind":"int","bits":32,"offset":80},{"name":"WeaponSubClassCost_21","kind":"int","bits":32,"offset":84},{"name":"ArmorSubClassCost_1","kind":"int","bits":32,"offset":88},{"name":"ArmorSubClassCost_2","kind":"int","bits":32,"offset":92},{"name":"ArmorSubClassCost_3","kind":"int","bits":32,"offset":96},{"name":"ArmorSubClassCost_4","kind":"int","bits":32,"offset":100},{"name":"ArmorSubClassCost_5","kind":"int","bits":32,"offset":104},{"name":"ArmorSubClassCost_6","kind":"int","bits":32,"offset":108},{"name":"ArmorSubClassCost_7","kind":"int","bits":32,"offset":112},{"name":"ArmorSubClassCost_8","kind":"int","bits":32,"offset":116}],"source":"WoWDBDefs"},"durabilityquality":{"name":"DurabilityQuality","build":12340,"recordSize":8,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Data","kind":"float","bits":32,"offset":4}],"source":"WoWDBDefs"},"emotes":{"name":"Emotes","build":12340,"recordSize":28,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"EmoteSlashCommand","kind":"string","bits":32,"offset":4},{"name":"AnimID","kind":"int","bits":32,"offset":8},{"name":"EmoteFlags","kind":"int","bits":32,"offset":12},{"name":"EmoteSpecProc","kind":"int","bits":32,"offset":16},{"name":"EmoteSpecProcParam","kind":"int","bits":32,"offset":20},{"name":"EventSoundID","kind":"int","bits":32,"offset":24}],"source":"WoWDBDefs"},"emotestext":{"name":"EmotesText","build":12340,"recordSize":76,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Name","kind":"string","bits":32,"offset":4},{"name":"EmoteID","kind":"int","bits":32,"offset":8},{"name":"EmoteText_1","kind":"int","bits":32,"offset":12},{"name":"EmoteText_2","kind":"int","bits":32,"offset":16},{"name":"EmoteText_3","kind":"int","bits":32,"offset":20},{"name":"EmoteText_4","kind":"int","bits":32,"offset":24},{"name":"EmoteText_5","kind":"int","bits":32,"offset":28},{"name":"EmoteText_6","kind":"int","bits":32,"offset":32},{"name":"EmoteText_7","kind":"int","bits":32,"offset":36},{"name":"EmoteText_8","kind":"int","bits":32,"offset":40},{"name":"EmoteText_9","kind":"int","bits":32,"offset":44},{"name":"EmoteText_10","kind":"int","bits":32,"offset":48},{"name":"EmoteText_11","kind":"int","bits":32,"offset":52},{"name":"EmoteText_12","kind":"int","bits":32,"offset":56},{"name":"EmoteText_13","kind":"int","bits":32,"offset":60},{"name":"EmoteText_14","kind":"int","bits":32,"offset":64},{"name":"EmoteText_15","kind":"int","bits":32,"offset":68},{"name":"EmoteText_16","kind":"int","bits":32,"offset":72}],"source":"WoWDBDefs"},"emotestextdata":{"name":"EmotesTextData","build":12340,"recordSize":72,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Text_lang_enUS","kind":"string","bits":32,"offset":4,"locale":"enUS"},{"name":"Text_lang_enGB","kind":"string","bits":32,"offset":8,"locale":"enGB"},{"name":"Text_lang_koKR","kind":"string","bits":32,"offset":12,"locale":"koKR"},{"name":"Text_lang_frFR","kind":"string","bits":32,"offset":16,"locale":"frFR"},{"name":"Text_lang_deDE","kind":"string","bits":32,"offset":20,"locale":"deDE"},{"name":"Text_lang_enCN","kind":"string","bits":32,"offset":24,"locale":"enCN"},{"name":"Text_lang_zhCN","kind":"string","bits":32,"offset":28,"locale":"zhCN"},{"name":"Text_lang_enTW","kind":"string","bits":32,"offset":32,"locale":"enTW"},{"name":"Text_lang_zhTW","kind":"string","bits":32,"offset":36,"locale":"zhTW"},{"name":"Text_lang_esES","kind":"string","bits":32,"offset":40,"locale":"esES"},{"name":"Text_lang_esMX","kind":"string","bits":32,"offset":44,"locale":"esMX"},{"name":"Text_lang_ruRU","kind":"string","bits":32,"offset":48,"locale":"ruRU"},{"name":"Text_lang_ptPT","kind":"string","bits":32,"offset":52,"locale":"ptPT"},{"name":"Text_lang_ptBR","kind":"string","bits":32,"offset":56,"locale":"ptBR"},{"name":"Text_lang_itIT","kind":"string","bits":32,"offset":60,"locale":"itIT"},{"name":"Text_lang_Unk","kind":"string","bits":32,"offset":64,"locale":"Unk"},{"name":"Text_lang_Mask","kind":"uint","bits":32,"offset":68}],"source":"WoWDBDefs"},"emotestextsound":{"name":"EmotesTextSound","build":12340,"recordSize":20,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"EmotesTextID","kind":"int","bits":32,"offset":4},{"name":"RaceID","kind":"int","bits":32,"offset":8},{"name":"SexID","kind":"int","bits":32,"offset":12},{"name":"SoundID","kind":"int","bits":32,"offset":16}],"source":"WoWDBDefs"},"environmentaldamage":{"name":"EnvironmentalDamage","build":12340,"recordSize":12,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"EnumID","kind":"int","bits":32,"offset":4},{"name":"VisualkitID","kind":"int","bits":32,"offset":8}],"source":"WoWDBDefs"},"exhaustion":{"name":"Exhaustion","build":12340,"recordSize":92,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Xp","kind":"int","bits":32,"offset":4},{"name":"Factor","kind":"float","bits":32,"offset":8},{"name":"OutdoorHours","kind":"float","bits":32,"offset":12},{"name":"InnHours","kind":"float","bits":32,"offset":16},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":20,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":24,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":28,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":32,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":36,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":40,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":44,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":48,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":52,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":56,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":60,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":64,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":68,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":72,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":76,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":80,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":84},{"name":"Threshold","kind":"float","bits":32,"offset":88}],"source":"WoWDBDefs"},"faction":{"name":"Faction","build":12340,"recordSize":228,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"ReputationIndex","kind":"int","bits":32,"offset":4},{"name":"ReputationRaceMask_1","kind":"int","bits":32,"offset":8},{"name":"ReputationRaceMask_2","kind":"int","bits":32,"offset":12},{"name":"ReputationRaceMask_3","kind":"int","bits":32,"offset":16},{"name":"ReputationRaceMask_4","kind":"int","bits":32,"offset":20},{"name":"ReputationClassMask_1","kind":"int","bits":32,"offset":24},{"name":"ReputationClassMask_2","kind":"int","bits":32,"offset":28},{"name":"ReputationClassMask_3","kind":"int","bits":32,"offset":32},{"name":"ReputationClassMask_4","kind":"int","bits":32,"offset":36},{"name":"ReputationBase_1","kind":"int","bits":32,"offset":40},{"name":"ReputationBase_2","kind":"int","bits":32,"offset":44},{"name":"ReputationBase_3","kind":"int","bits":32,"offset":48},{"name":"ReputationBase_4","kind":"int","bits":32,"offset":52},{"name":"ReputationFlags_1","kind":"int","bits":32,"offset":56},{"name":"ReputationFlags_2","kind":"int","bits":32,"offset":60},{"name":"ReputationFlags_3","kind":"int","bits":32,"offset":64},{"name":"ReputationFlags_4","kind":"int","bits":32,"offset":68},{"name":"ParentFactionID","kind":"int","bits":32,"offset":72},{"name":"ParentFactionMod_1","kind":"float","bits":32,"offset":76},{"name":"ParentFactionMod_2","kind":"float","bits":32,"offset":80},{"name":"ParentFactionCap_1","kind":"int","bits":32,"offset":84},{"name":"ParentFactionCap_2","kind":"int","bits":32,"offset":88},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":92,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":96,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":100,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":104,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":108,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":112,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":116,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":120,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":124,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":128,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":132,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":136,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":140,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":144,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":148,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":152,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":156},{"name":"Description_lang_enUS","kind":"string","bits":32,"offset":160,"locale":"enUS"},{"name":"Description_lang_enGB","kind":"string","bits":32,"offset":164,"locale":"enGB"},{"name":"Description_lang_koKR","kind":"string","bits":32,"offset":168,"locale":"koKR"},{"name":"Description_lang_frFR","kind":"string","bits":32,"offset":172,"locale":"frFR"},{"name":"Description_lang_deDE","kind":"string","bits":32,"offset":176,"locale":"deDE"},{"name":"Description_lang_enCN","kind":"string","bits":32,"offset":180,"locale":"enCN"},{"name":"Description_lang_zhCN","kind":"string","bits":32,"offset":184,"locale":"zhCN"},{"name":"Description_lang_enTW","kind":"string","bits":32,"offset":188,"locale":"enTW"},{"name":"Description_lang_zhTW","kind":"string","bits":32,"offset":192,"locale":"zhTW"},{"name":"Description_lang_esES","kind":"string","bits":32,"offset":196,"locale":"esES"},{"name":"Description_lang_esMX","kind":"string","bits":32,"offset":200,"locale":"esMX"},{"name":"Description_lang_ruRU","kind":"string","bits":32,"offset":204,"locale":"ruRU"},{"name":"Description_lang_ptPT","kind":"string","bits":32,"offset":208,"locale":"ptPT"},{"name":"Description_lang_ptBR","kind":"string","bits":32,"offset":212,"locale":"ptBR"},{"name":"Description_lang_itIT","kind":"string","bits":32,"offset":216,"locale":"itIT"},{"name":"Description_lang_Unk","kind":"string","bits":32,"offset":220,"locale":"Unk"},{"name":"Description_lang_Mask","kind":"uint","bits":32,"offset":224}],"source":"WoWDBDefs"},"factiongroup":{"name":"FactionGroup","build":12340,"recordSize":80,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"MaskID","kind":"int","bits":32,"offset":4},{"name":"InternalName","kind":"string","bits":32,"offset":8},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":12,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":16,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":20,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":24,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":28,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":32,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":36,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":40,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":44,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":48,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":52,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":56,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":60,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":64,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":68,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":72,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":76}],"source":"WoWDBDefs"},"factiontemplate":{"name":"FactionTemplate","build":12340,"recordSize":56,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Faction","kind":"int","bits":32,"offset":4},{"name":"Flags","kind":"int","bits":32,"offset":8},{"name":"FactionGroup","kind":"int","bits":32,"offset":12},{"name":"FriendGroup","kind":"int","bits":32,"offset":16},{"name":"EnemyGroup","kind":"int","bits":32,"offset":20},{"name":"Enemies_1","kind":"int","bits":32,"offset":24},{"name":"Enemies_2","kind":"int","bits":32,"offset":28},{"name":"Enemies_3","kind":"int","bits":32,"offset":32},{"name":"Enemies_4","kind":"int","bits":32,"offset":36},{"name":"Friend_1","kind":"int","bits":32,"offset":40},{"name":"Friend_2","kind":"int","bits":32,"offset":44},{"name":"Friend_3","kind":"int","bits":32,"offset":48},{"name":"Friend_4","kind":"int","bits":32,"offset":52}],"source":"WoWDBDefs"},"filedata":{"name":"FileData","build":12340,"recordSize":12,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Filename","kind":"string","bits":32,"offset":4},{"name":"Filepath","kind":"string","bits":32,"offset":8}],"source":"WoWDBDefs"},"footprinttextures":{"name":"FootprintTextures","build":12340,"recordSize":8,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"FootstepFilename","kind":"string","bits":32,"offset":4}],"source":"WoWDBDefs"},"footstepterrainlookup":{"name":"FootstepTerrainLookup","build":12340,"recordSize":20,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"CreatureFootstepID","kind":"int","bits":32,"offset":4},{"name":"TerrainSoundID","kind":"int","bits":32,"offset":8},{"name":"SoundID","kind":"int","bits":32,"offset":12},{"name":"SoundIDSplash","kind":"int","bits":32,"offset":16}],"source":"WoWDBDefs"},"gameobjectartkit":{"name":"GameObjectArtKit","build":12340,"recordSize":32,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"TextureVariation_1","kind":"string","bits":32,"offset":4},{"name":"TextureVariation_2","kind":"string","bits":32,"offset":8},{"name":"TextureVariation_3","kind":"string","bits":32,"offset":12},{"name":"AttachModel_1","kind":"string","bits":32,"offset":16},{"name":"AttachModel_2","kind":"string","bits":32,"offset":20},{"name":"AttachModel_3","kind":"string","bits":32,"offset":24},{"name":"AttachModel_4","kind":"string","bits":32,"offset":28}],"source":"WoWDBDefs"},"gameobjectdisplayinfo":{"name":"GameObjectDisplayInfo","build":12340,"recordSize":76,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"ModelName","kind":"string","bits":32,"offset":4},{"name":"Sound_1","kind":"int","bits":32,"offset":8},{"name":"Sound_2","kind":"int","bits":32,"offset":12},{"name":"Sound_3","kind":"int","bits":32,"offset":16},{"name":"Sound_4","kind":"int","bits":32,"offset":20},{"name":"Sound_5","kind":"int","bits":32,"offset":24},{"name":"Sound_6","kind":"int","bits":32,"offset":28},{"name":"Sound_7","kind":"int","bits":32,"offset":32},{"name":"Sound_8","kind":"int","bits":32,"offset":36},{"name":"Sound_9","kind":"int","bits":32,"offset":40},{"name":"Sound_10","kind":"int","bits":32,"offset":44},{"name":"GeoBoxMin_1","kind":"float","bits":32,"offset":48},{"name":"GeoBoxMin_2","kind":"float","bits":32,"offset":52},{"name":"GeoBoxMin_3","kind":"float","bits":32,"offset":56},{"name":"GeoBoxMax_1","kind":"float","bits":32,"offset":60},{"name":"GeoBoxMax_2","kind":"float","bits":32,"offset":64},{"name":"GeoBoxMax_3","kind":"float","bits":32,"offset":68},{"name":"ObjectEffectPackageID","kind":"int","bits":32,"offset":72}],"source":"WoWDBDefs"},"gametables":{"name":"GameTables","build":12340,"recordSize":12,"columns":[{"name":"Name","kind":"string","bits":32,"offset":0},{"name":"NumRows","kind":"int","bits":32,"offset":4},{"name":"NumColumns","kind":"int","bits":32,"offset":8}],"source":"WoWDBDefs"},"gametips":{"name":"GameTips","build":12340,"recordSize":72,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Text_lang_enUS","kind":"string","bits":32,"offset":4,"locale":"enUS"},{"name":"Text_lang_enGB","kind":"string","bits":32,"offset":8,"locale":"enGB"},{"name":"Text_lang_koKR","kind":"string","bits":32,"offset":12,"locale":"koKR"},{"name":"Text_lang_frFR","kind":"string","bits":32,"offset":16,"locale":"frFR"},{"name":"Text_lang_deDE","kind":"string","bits":32,"offset":20,"locale":"deDE"},{"name":"Text_lang_enCN","kind":"string","bits":32,"offset":24,"locale":"enCN"},{"name":"Text_lang_zhCN","kind":"string","bits":32,"offset":28,"locale":"zhCN"},{"name":"Text_lang_enTW","kind":"string","bits":32,"offset":32,"locale":"enTW"},{"name":"Text_lang_zhTW","kind":"string","bits":32,"offset":36,"locale":"zhTW"},{"name":"Text_lang_esES","kind":"string","bits":32,"offset":40,"locale":"esES"},{"name":"Text_lang_esMX","kind":"string","bits":32,"offset":44,"locale":"esMX"},{"name":"Text_lang_ruRU","kind":"string","bits":32,"offset":48,"locale":"ruRU"},{"name":"Text_lang_ptPT","kind":"string","bits":32,"offset":52,"locale":"ptPT"},{"name":"Text_lang_ptBR","kind":"string","bits":32,"offset":56,"locale":"ptBR"},{"name":"Text_lang_itIT","kind":"string","bits":32,"offset":60,"locale":"itIT"},{"name":"Text_lang_Unk","kind":"string","bits":32,"offset":64,"locale":"Unk"},{"name":"Text_lang_Mask","kind":"uint","bits":32,"offset":68}],"source":"WoWDBDefs"},"gemproperties":{"name":"GemProperties","build":12340,"recordSize":20,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Enchant_ID","kind":"int","bits":32,"offset":4},{"name":"Maxcount_inv","kind":"int","bits":32,"offset":8},{"name":"Maxcount_item","kind":"int","bits":32,"offset":12},{"name":"Type","kind":"int","bits":32,"offset":16}],"source":"WoWDBDefs"},"glyphproperties":{"name":"GlyphProperties","build":12340,"recordSize":16,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"SpellID","kind":"int","bits":32,"offset":4},{"name":"GlyphSlotFlags","kind":"int","bits":32,"offset":8},{"name":"SpellIconID","kind":"int","bits":32,"offset":12}],"source":"WoWDBDefs"},"glyphslot":{"name":"GlyphSlot","build":12340,"recordSize":12,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Type","kind":"int","bits":32,"offset":4},{"name":"Tooltip","kind":"int","bits":32,"offset":8}],"source":"WoWDBDefs"},"gmsurveyanswers":{"name":"GMSurveyAnswers","build":12340,"recordSize":80,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Sort_Index","kind":"int","bits":32,"offset":4},{"name":"GMSurveyQuestionID","kind":"int","bits":32,"offset":8},{"name":"Answer_lang_enUS","kind":"string","bits":32,"offset":12,"locale":"enUS"},{"name":"Answer_lang_enGB","kind":"string","bits":32,"offset":16,"locale":"enGB"},{"name":"Answer_lang_koKR","kind":"string","bits":32,"offset":20,"locale":"koKR"},{"name":"Answer_lang_frFR","kind":"string","bits":32,"offset":24,"locale":"frFR"},{"name":"Answer_lang_deDE","kind":"string","bits":32,"offset":28,"locale":"deDE"},{"name":"Answer_lang_enCN","kind":"string","bits":32,"offset":32,"locale":"enCN"},{"name":"Answer_lang_zhCN","kind":"string","bits":32,"offset":36,"locale":"zhCN"},{"name":"Answer_lang_enTW","kind":"string","bits":32,"offset":40,"locale":"enTW"},{"name":"Answer_lang_zhTW","kind":"string","bits":32,"offset":44,"locale":"zhTW"},{"name":"Answer_lang_esES","kind":"string","bits":32,"offset":48,"locale":"esES"},{"name":"Answer_lang_esMX","kind":"string","bits":32,"offset":52,"locale":"esMX"},{"name":"Answer_lang_ruRU","kind":"string","bits":32,"offset":56,"locale":"ruRU"},{"name":"Answer_lang_ptPT","kind":"string","bits":32,"offset":60,"locale":"ptPT"},{"name":"Answer_lang_ptBR","kind":"string","bits":32,"offset":64,"locale":"ptBR"},{"name":"Answer_lang_itIT","kind":"string","bits":32,"offset":68,"locale":"itIT"},{"name":"Answer_lang_Unk","kind":"string","bits":32,"offset":72,"locale":"Unk"},{"name":"Answer_lang_Mask","kind":"uint","bits":32,"offset":76}],"source":"WoWDBDefs"},"gmsurveycurrentsurvey":{"name":"GMSurveyCurrentSurvey","build":12340,"recordSize":8,"columns":[{"name":"LANGID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"GMSURVEY_ID","kind":"int","bits":32,"offset":4}],"source":"WoWDBDefs"},"gmsurveyquestions":{"name":"GMSurveyQuestions","build":12340,"recordSize":72,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Question_lang_enUS","kind":"string","bits":32,"offset":4,"locale":"enUS"},{"name":"Question_lang_enGB","kind":"string","bits":32,"offset":8,"locale":"enGB"},{"name":"Question_lang_koKR","kind":"string","bits":32,"offset":12,"locale":"koKR"},{"name":"Question_lang_frFR","kind":"string","bits":32,"offset":16,"locale":"frFR"},{"name":"Question_lang_deDE","kind":"string","bits":32,"offset":20,"locale":"deDE"},{"name":"Question_lang_enCN","kind":"string","bits":32,"offset":24,"locale":"enCN"},{"name":"Question_lang_zhCN","kind":"string","bits":32,"offset":28,"locale":"zhCN"},{"name":"Question_lang_enTW","kind":"string","bits":32,"offset":32,"locale":"enTW"},{"name":"Question_lang_zhTW","kind":"string","bits":32,"offset":36,"locale":"zhTW"},{"name":"Question_lang_esES","kind":"string","bits":32,"offset":40,"locale":"esES"},{"name":"Question_lang_esMX","kind":"string","bits":32,"offset":44,"locale":"esMX"},{"name":"Question_lang_ruRU","kind":"string","bits":32,"offset":48,"locale":"ruRU"},{"name":"Question_lang_ptPT","kind":"string","bits":32,"offset":52,"locale":"ptPT"},{"name":"Question_lang_ptBR","kind":"string","bits":32,"offset":56,"locale":"ptBR"},{"name":"Question_lang_itIT","kind":"string","bits":32,"offset":60,"locale":"itIT"},{"name":"Question_lang_Unk","kind":"string","bits":32,"offset":64,"locale":"Unk"},{"name":"Question_lang_Mask","kind":"uint","bits":32,"offset":68}],"source":"WoWDBDefs"},"gmsurveysurveys":{"name":"GMSurveySurveys","build":12340,"recordSize":44,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Q_1","kind":"int","bits":32,"offset":4},{"name":"Q_2","kind":"int","bits":32,"offset":8},{"name":"Q_3","kind":"int","bits":32,"offset":12},{"name":"Q_4","kind":"int","bits":32,"offset":16},{"name":"Q_5","kind":"int","bits":32,"offset":20},{"name":"Q_6","kind":"int","bits":32,"offset":24},{"name":"Q_7","kind":"int","bits":32,"offset":28},{"name":"Q_8","kind":"int","bits":32,"offset":32},{"name":"Q_9","kind":"int","bits":32,"offset":36},{"name":"Q_10","kind":"int","bits":32,"offset":40}],"source":"WoWDBDefs"},"gmticketcategory":{"name":"GMTicketCategory","build":12340,"recordSize":72,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Category_lang_enUS","kind":"string","bits":32,"offset":4,"locale":"enUS"},{"name":"Category_lang_enGB","kind":"string","bits":32,"offset":8,"locale":"enGB"},{"name":"Category_lang_koKR","kind":"string","bits":32,"offset":12,"locale":"koKR"},{"name":"Category_lang_frFR","kind":"string","bits":32,"offset":16,"locale":"frFR"},{"name":"Category_lang_deDE","kind":"string","bits":32,"offset":20,"locale":"deDE"},{"name":"Category_lang_enCN","kind":"string","bits":32,"offset":24,"locale":"enCN"},{"name":"Category_lang_zhCN","kind":"string","bits":32,"offset":28,"locale":"zhCN"},{"name":"Category_lang_enTW","kind":"string","bits":32,"offset":32,"locale":"enTW"},{"name":"Category_lang_zhTW","kind":"string","bits":32,"offset":36,"locale":"zhTW"},{"name":"Category_lang_esES","kind":"string","bits":32,"offset":40,"locale":"esES"},{"name":"Category_lang_esMX","kind":"string","bits":32,"offset":44,"locale":"esMX"},{"name":"Category_lang_ruRU","kind":"string","bits":32,"offset":48,"locale":"ruRU"},{"name":"Category_lang_ptPT","kind":"string","bits":32,"offset":52,"locale":"ptPT"},{"name":"Category_lang_ptBR","kind":"string","bits":32,"offset":56,"locale":"ptBR"},{"name":"Category_lang_itIT","kind":"string","bits":32,"offset":60,"locale":"itIT"},{"name":"Category_lang_Unk","kind":"string","bits":32,"offset":64,"locale":"Unk"},{"name":"Category_lang_Mask","kind":"uint","bits":32,"offset":68}],"source":"WoWDBDefs"},"groundeffectdoodad":{"name":"GroundEffectDoodad","build":12340,"recordSize":12,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Doodadpath","kind":"string","bits":32,"offset":4},{"name":"Flags","kind":"int","bits":32,"offset":8}],"source":"WoWDBDefs"},"groundeffecttexture":{"name":"GroundEffectTexture","build":12340,"recordSize":44,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"DoodadID_1","kind":"int","bits":32,"offset":4},{"name":"DoodadID_2","kind":"int","bits":32,"offset":8},{"name":"DoodadID_3","kind":"int","bits":32,"offset":12},{"name":"DoodadID_4","kind":"int","bits":32,"offset":16},{"name":"DoodadWeight_1","kind":"int","bits":32,"offset":20},{"name":"DoodadWeight_2","kind":"int","bits":32,"offset":24},{"name":"DoodadWeight_3","kind":"int","bits":32,"offset":28},{"name":"DoodadWeight_4","kind":"int","bits":32,"offset":32},{"name":"Density","kind":"int","bits":32,"offset":36},{"name":"Sound","kind":"int","bits":32,"offset":40}],"source":"WoWDBDefs"},"gtbarbershopcostbase":{"name":"gtBarberShopCostBase","build":12340,"recordSize":4,"columns":[{"name":"Data","kind":"float","bits":32,"offset":0}],"source":"WoWDBDefs"},"gtchancetomeleecrit":{"name":"gtChanceToMeleeCrit","build":12340,"recordSize":4,"columns":[{"name":"Data","kind":"float","bits":32,"offset":0}],"source":"WoWDBDefs"},"gtchancetomeleecritbase":{"name":"gtChanceToMeleeCritBase","build":12340,"recordSize":4,"columns":[{"name":"Data","kind":"float","bits":32,"offset":0}],"source":"WoWDBDefs"},"gtchancetospellcrit":{"name":"gtChanceToSpellCrit","build":12340,"recordSize":4,"columns":[{"name":"Data","kind":"float","bits":32,"offset":0}],"source":"WoWDBDefs"},"gtchancetospellcritbase":{"name":"gtChanceToSpellCritBase","build":12340,"recordSize":4,"columns":[{"name":"Data","kind":"float","bits":32,"offset":0}],"source":"WoWDBDefs"},"gtcombatratings":{"name":"gtCombatRatings","build":12340,"recordSize":4,"columns":[{"name":"Data","kind":"float","bits":32,"offset":0}],"source":"WoWDBDefs"},"gtnpcmanacostscaler":{"name":"gtNPCManaCostScaler","build":12340,"recordSize":4,"columns":[{"name":"Data","kind":"float","bits":32,"offset":0}],"source":"WoWDBDefs"},"gtoctclasscombatratingscalar":{"name":"gtOCTClassCombatRatingScalar","build":12340,"recordSize":8,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Data","kind":"float","bits":32,"offset":4}],"source":"WoWDBDefs"},"gtoctregenhp":{"name":"gtOCTRegenHP","build":12340,"recordSize":4,"columns":[{"name":"Data","kind":"float","bits":32,"offset":0}],"source":"WoWDBDefs"},"gtoctregenmp":{"name":"gtOCTRegenMP","build":12340,"recordSize":4,"columns":[{"name":"Data","kind":"float","bits":32,"offset":0}],"source":"WoWDBDefs"},"gtregenhpperspt":{"name":"gtRegenHPPerSpt","build":12340,"recordSize":4,"columns":[{"name":"Data","kind":"float","bits":32,"offset":0}],"source":"WoWDBDefs"},"gtregenmpperspt":{"name":"gtRegenMPPerSpt","build":12340,"recordSize":4,"columns":[{"name":"Data","kind":"float","bits":32,"offset":0}],"source":"WoWDBDefs"},"helmetgeosetvisdata":{"name":"HelmetGeosetVisData","build":12340,"recordSize":32,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"HideGeoset_1","kind":"int","bits":32,"offset":4},{"name":"HideGeoset_2","kind":"int","bits":32,"offset":8},{"name":"HideGeoset_3","kind":"int","bits":32,"offset":12},{"name":"HideGeoset_4","kind":"int","bits":32,"offset":16},{"name":"HideGeoset_5","kind":"int","bits":32,"offset":20},{"name":"HideGeoset_6","kind":"int","bits":32,"offset":24},{"name":"HideGeoset_7","kind":"int","bits":32,"offset":28}],"source":"WoWDBDefs"},"holidaydescriptions":{"name":"HolidayDescriptions","build":12340,"recordSize":72,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Description_lang_enUS","kind":"string","bits":32,"offset":4,"locale":"enUS"},{"name":"Description_lang_enGB","kind":"string","bits":32,"offset":8,"locale":"enGB"},{"name":"Description_lang_koKR","kind":"string","bits":32,"offset":12,"locale":"koKR"},{"name":"Description_lang_frFR","kind":"string","bits":32,"offset":16,"locale":"frFR"},{"name":"Description_lang_deDE","kind":"string","bits":32,"offset":20,"locale":"deDE"},{"name":"Description_lang_enCN","kind":"string","bits":32,"offset":24,"locale":"enCN"},{"name":"Description_lang_zhCN","kind":"string","bits":32,"offset":28,"locale":"zhCN"},{"name":"Description_lang_enTW","kind":"string","bits":32,"offset":32,"locale":"enTW"},{"name":"Description_lang_zhTW","kind":"string","bits":32,"offset":36,"locale":"zhTW"},{"name":"Description_lang_esES","kind":"string","bits":32,"offset":40,"locale":"esES"},{"name":"Description_lang_esMX","kind":"string","bits":32,"offset":44,"locale":"esMX"},{"name":"Description_lang_ruRU","kind":"string","bits":32,"offset":48,"locale":"ruRU"},{"name":"Description_lang_ptPT","kind":"string","bits":32,"offset":52,"locale":"ptPT"},{"name":"Description_lang_ptBR","kind":"string","bits":32,"offset":56,"locale":"ptBR"},{"name":"Description_lang_itIT","kind":"string","bits":32,"offset":60,"locale":"itIT"},{"name":"Description_lang_Unk","kind":"string","bits":32,"offset":64,"locale":"Unk"},{"name":"Description_lang_Mask","kind":"uint","bits":32,"offset":68}],"source":"WoWDBDefs"},"holidaynames":{"name":"HolidayNames","build":12340,"recordSize":72,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":4,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":8,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":12,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":16,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":20,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":24,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":28,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":32,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":36,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":40,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":44,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":48,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":52,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":56,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":60,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":64,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":68}],"source":"WoWDBDefs"},"holidays":{"name":"Holidays","build":12340,"recordSize":220,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Duration_1","kind":"int","bits":32,"offset":4},{"name":"Duration_2","kind":"int","bits":32,"offset":8},{"name":"Duration_3","kind":"int","bits":32,"offset":12},{"name":"Duration_4","kind":"int","bits":32,"offset":16},{"name":"Duration_5","kind":"int","bits":32,"offset":20},{"name":"Duration_6","kind":"int","bits":32,"offset":24},{"name":"Duration_7","kind":"int","bits":32,"offset":28},{"name":"Duration_8","kind":"int","bits":32,"offset":32},{"name":"Duration_9","kind":"int","bits":32,"offset":36},{"name":"Duration_10","kind":"int","bits":32,"offset":40},{"name":"Date_1","kind":"int","bits":32,"offset":44},{"name":"Date_2","kind":"int","bits":32,"offset":48},{"name":"Date_3","kind":"int","bits":32,"offset":52},{"name":"Date_4","kind":"int","bits":32,"offset":56},{"name":"Date_5","kind":"int","bits":32,"offset":60},{"name":"Date_6","kind":"int","bits":32,"offset":64},{"name":"Date_7","kind":"int","bits":32,"offset":68},{"name":"Date_8","kind":"int","bits":32,"offset":72},{"name":"Date_9","kind":"int","bits":32,"offset":76},{"name":"Date_10","kind":"int","bits":32,"offset":80},{"name":"Date_11","kind":"int","bits":32,"offset":84},{"name":"Date_12","kind":"int","bits":32,"offset":88},{"name":"Date_13","kind":"int","bits":32,"offset":92},{"name":"Date_14","kind":"int","bits":32,"offset":96},{"name":"Date_15","kind":"int","bits":32,"offset":100},{"name":"Date_16","kind":"int","bits":32,"offset":104},{"name":"Date_17","kind":"int","bits":32,"offset":108},{"name":"Date_18","kind":"int","bits":32,"offset":112},{"name":"Date_19","kind":"int","bits":32,"offset":116},{"name":"Date_20","kind":"int","bits":32,"offset":120},{"name":"Date_21","kind":"int","bits":32,"offset":124},{"name":"Date_22","kind":"int","bits":32,"offset":128},{"name":"Date_23","kind":"int","bits":32,"offset":132},{"name":"Date_24","kind":"int","bits":32,"offset":136},{"name":"Date_25","kind":"int","bits":32,"offset":140},{"name":"Date_26","kind":"int","bits":32,"offset":144},{"name":"Region","kind":"int","bits":32,"offset":148},{"name":"Looping","kind":"int","bits":32,"offset":152},{"name":"CalendarFlags_1","kind":"int","bits":32,"offset":156},{"name":"CalendarFlags_2","kind":"int","bits":32,"offset":160},{"name":"CalendarFlags_3","kind":"int","bits":32,"offset":164},{"name":"CalendarFlags_4","kind":"int","bits":32,"offset":168},{"name":"CalendarFlags_5","kind":"int","bits":32,"offset":172},{"name":"CalendarFlags_6","kind":"int","bits":32,"offset":176},{"name":"CalendarFlags_7","kind":"int","bits":32,"offset":180},{"name":"CalendarFlags_8","kind":"int","bits":32,"offset":184},{"name":"CalendarFlags_9","kind":"int","bits":32,"offset":188},{"name":"CalendarFlags_10","kind":"int","bits":32,"offset":192},{"name":"HolidayNameID","kind":"int","bits":32,"offset":196},{"name":"HolidayDescriptionID","kind":"int","bits":32,"offset":200},{"name":"TextureFileName","kind":"string","bits":32,"offset":204},{"name":"Priority","kind":"int","bits":32,"offset":208},{"name":"CalendarFilterType","kind":"int","bits":32,"offset":212},{"name":"Flags","kind":"int","bits":32,"offset":216}],"source":"WoWDBDefs"},"item":{"name":"Item","build":12340,"recordSize":32,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"ClassID","kind":"int","bits":32,"offset":4},{"name":"SubclassID","kind":"int","bits":32,"offset":8},{"name":"Sound_override_subclassID","kind":"int","bits":32,"offset":12},{"name":"Material","kind":"int","bits":32,"offset":16},{"name":"DisplayInfoID","kind":"int","bits":32,"offset":20},{"name":"InventoryType","kind":"int","bits":32,"offset":24},{"name":"SheatheType","kind":"int","bits":32,"offset":28}],"source":"WoWDBDefs"},"itembagfamily":{"name":"ItemBagFamily","build":12340,"recordSize":72,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":4,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":8,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":12,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":16,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":20,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":24,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":28,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":32,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":36,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":40,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":44,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":48,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":52,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":56,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":60,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":64,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":68}],"source":"WoWDBDefs"},"itemclass":{"name":"ItemClass","build":12340,"recordSize":80,"columns":[{"name":"ClassID","kind":"int","bits":32,"offset":0},{"name":"SubclassMapID","kind":"int","bits":32,"offset":4},{"name":"Flags","kind":"int","bits":32,"offset":8},{"name":"ClassName_lang_enUS","kind":"string","bits":32,"offset":12,"locale":"enUS"},{"name":"ClassName_lang_enGB","kind":"string","bits":32,"offset":16,"locale":"enGB"},{"name":"ClassName_lang_koKR","kind":"string","bits":32,"offset":20,"locale":"koKR"},{"name":"ClassName_lang_frFR","kind":"string","bits":32,"offset":24,"locale":"frFR"},{"name":"ClassName_lang_deDE","kind":"string","bits":32,"offset":28,"locale":"deDE"},{"name":"ClassName_lang_enCN","kind":"string","bits":32,"offset":32,"locale":"enCN"},{"name":"ClassName_lang_zhCN","kind":"string","bits":32,"offset":36,"locale":"zhCN"},{"name":"ClassName_lang_enTW","kind":"string","bits":32,"offset":40,"locale":"enTW"},{"name":"ClassName_lang_zhTW","kind":"string","bits":32,"offset":44,"locale":"zhTW"},{"name":"ClassName_lang_esES","kind":"string","bits":32,"offset":48,"locale":"esES"},{"name":"ClassName_lang_esMX","kind":"string","bits":32,"offset":52,"locale":"esMX"},{"name":"ClassName_lang_ruRU","kind":"string","bits":32,"offset":56,"locale":"ruRU"},{"name":"ClassName_lang_ptPT","kind":"string","bits":32,"offset":60,"locale":"ptPT"},{"name":"ClassName_lang_ptBR","kind":"string","bits":32,"offset":64,"locale":"ptBR"},{"name":"ClassName_lang_itIT","kind":"string","bits":32,"offset":68,"locale":"itIT"},{"name":"ClassName_lang_Unk","kind":"string","bits":32,"offset":72,"locale":"Unk"},{"name":"ClassName_lang_Mask","kind":"uint","bits":32,"offset":76}],"source":"WoWDBDefs"},"itemcondextcosts":{"name":"ItemCondExtCosts","build":12340,"recordSize":16,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"CondExtendedCost","kind":"int","bits":32,"offset":4},{"name":"ItemExtendedCostEntry","kind":"int","bits":32,"offset":8},{"name":"ArenaSeason","kind":"int","bits":32,"offset":12}],"source":"WoWDBDefs"},"itemdisplayinfo":{"name":"ItemDisplayInfo","build":12340,"recordSize":100,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"ModelName_1","kind":"string","bits":32,"offset":4},{"name":"ModelName_2","kind":"string","bits":32,"offset":8},{"name":"ModelTexture_1","kind":"string","bits":32,"offset":12},{"name":"ModelTexture_2","kind":"string","bits":32,"offset":16},{"name":"InventoryIcon_1","kind":"string","bits":32,"offset":20},{"name":"InventoryIcon_2","kind":"string","bits":32,"offset":24},{"name":"GeosetGroup_1","kind":"int","bits":32,"offset":28},{"name":"GeosetGroup_2","kind":"int","bits":32,"offset":32},{"name":"GeosetGroup_3","kind":"int","bits":32,"offset":36},{"name":"Flags","kind":"int","bits":32,"offset":40},{"name":"SpellVisualID","kind":"int","bits":32,"offset":44},{"name":"GroupSoundIndex","kind":"int","bits":32,"offset":48},{"name":"HelmetGeosetVisID_1","kind":"int","bits":32,"offset":52},{"name":"HelmetGeosetVisID_2","kind":"int","bits":32,"offset":56},{"name":"Texture_1","kind":"string","bits":32,"offset":60},{"name":"Texture_2","kind":"string","bits":32,"offset":64},{"name":"Texture_3","kind":"string","bits":32,"offset":68},{"name":"Texture_4","kind":"string","bits":32,"offset":72},{"name":"Texture_5","kind":"string","bits":32,"offset":76},{"name":"Texture_6","kind":"string","bits":32,"offset":80},{"name":"Texture_7","kind":"string","bits":32,"offset":84},{"name":"Texture_8","kind":"string","bits":32,"offset":88},{"name":"ItemVisual","kind":"int","bits":32,"offset":92},{"name":"ParticleColorID","kind":"int","bits":32,"offset":96}],"source":"WoWDBDefs"},"itemextendedcost":{"name":"ItemExtendedCost","build":12340,"recordSize":64,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"HonorPoints","kind":"int","bits":32,"offset":4},{"name":"ArenaPoints","kind":"int","bits":32,"offset":8},{"name":"ArenaBracket","kind":"int","bits":32,"offset":12},{"name":"ItemID_1","kind":"int","bits":32,"offset":16},{"name":"ItemID_2","kind":"int","bits":32,"offset":20},{"name":"ItemID_3","kind":"int","bits":32,"offset":24},{"name":"ItemID_4","kind":"int","bits":32,"offset":28},{"name":"ItemID_5","kind":"int","bits":32,"offset":32},{"name":"ItemCount_1","kind":"int","bits":32,"offset":36},{"name":"ItemCount_2","kind":"int","bits":32,"offset":40},{"name":"ItemCount_3","kind":"int","bits":32,"offset":44},{"name":"ItemCount_4","kind":"int","bits":32,"offset":48},{"name":"ItemCount_5","kind":"int","bits":32,"offset":52},{"name":"RequiredArenaRating","kind":"int","bits":32,"offset":56},{"name":"ItemPurchaseGroup","kind":"int","bits":32,"offset":60}],"source":"WoWDBDefs"},"itemgroupsounds":{"name":"ItemGroupSounds","build":12340,"recordSize":20,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Sound_1","kind":"int","bits":32,"offset":4},{"name":"Sound_2","kind":"int","bits":32,"offset":8},{"name":"Sound_3","kind":"int","bits":32,"offset":12},{"name":"Sound_4","kind":"int","bits":32,"offset":16}],"source":"WoWDBDefs"},"itemlimitcategory":{"name":"ItemLimitCategory","build":12340,"recordSize":80,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":4,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":8,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":12,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":16,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":20,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":24,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":28,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":32,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":36,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":40,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":44,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":48,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":52,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":56,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":60,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":64,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":68},{"name":"Quantity","kind":"int","bits":32,"offset":72},{"name":"Flags","kind":"int","bits":32,"offset":76}],"source":"WoWDBDefs"},"itempetfood":{"name":"ItemPetFood","build":12340,"recordSize":72,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":4,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":8,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":12,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":16,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":20,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":24,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":28,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":32,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":36,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":40,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":44,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":48,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":52,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":56,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":60,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":64,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":68}],"source":"WoWDBDefs"},"itempurchasegroup":{"name":"ItemPurchaseGroup","build":12340,"recordSize":104,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"ItemID_1","kind":"int","bits":32,"offset":4},{"name":"ItemID_2","kind":"int","bits":32,"offset":8},{"name":"ItemID_3","kind":"int","bits":32,"offset":12},{"name":"ItemID_4","kind":"int","bits":32,"offset":16},{"name":"ItemID_5","kind":"int","bits":32,"offset":20},{"name":"ItemID_6","kind":"int","bits":32,"offset":24},{"name":"ItemID_7","kind":"int","bits":32,"offset":28},{"name":"ItemID_8","kind":"int","bits":32,"offset":32},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":36,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":40,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":44,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":48,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":52,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":56,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":60,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":64,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":68,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":72,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":76,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":80,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":84,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":88,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":92,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":96,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":100}],"source":"WoWDBDefs"},"itemrandomproperties":{"name":"ItemRandomProperties","build":12340,"recordSize":96,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Name","kind":"string","bits":32,"offset":4},{"name":"Enchantment_1","kind":"int","bits":32,"offset":8},{"name":"Enchantment_2","kind":"int","bits":32,"offset":12},{"name":"Enchantment_3","kind":"int","bits":32,"offset":16},{"name":"Enchantment_4","kind":"int","bits":32,"offset":20},{"name":"Enchantment_5","kind":"int","bits":32,"offset":24},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":28,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":32,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":36,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":40,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":44,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":48,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":52,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":56,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":60,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":64,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":68,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":72,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":76,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":80,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":84,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":88,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":92}],"source":"WoWDBDefs"},"itemrandomsuffix":{"name":"ItemRandomSuffix","build":12340,"recordSize":116,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":4,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":8,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":12,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":16,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":20,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":24,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":28,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":32,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":36,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":40,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":44,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":48,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":52,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":56,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":60,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":64,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":68},{"name":"InternalName","kind":"string","bits":32,"offset":72},{"name":"Enchantment_1","kind":"int","bits":32,"offset":76},{"name":"Enchantment_2","kind":"int","bits":32,"offset":80},{"name":"Enchantment_3","kind":"int","bits":32,"offset":84},{"name":"Enchantment_4","kind":"int","bits":32,"offset":88},{"name":"Enchantment_5","kind":"int","bits":32,"offset":92},{"name":"AllocationPct_1","kind":"int","bits":32,"offset":96},{"name":"AllocationPct_2","kind":"int","bits":32,"offset":100},{"name":"AllocationPct_3","kind":"int","bits":32,"offset":104},{"name":"AllocationPct_4","kind":"int","bits":32,"offset":108},{"name":"AllocationPct_5","kind":"int","bits":32,"offset":112}],"source":"WoWDBDefs"},"itemset":{"name":"ItemSet","build":12340,"recordSize":212,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":4,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":8,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":12,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":16,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":20,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":24,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":28,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":32,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":36,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":40,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":44,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":48,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":52,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":56,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":60,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":64,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":68},{"name":"ItemID_1","kind":"int","bits":32,"offset":72},{"name":"ItemID_2","kind":"int","bits":32,"offset":76},{"name":"ItemID_3","kind":"int","bits":32,"offset":80},{"name":"ItemID_4","kind":"int","bits":32,"offset":84},{"name":"ItemID_5","kind":"int","bits":32,"offset":88},{"name":"ItemID_6","kind":"int","bits":32,"offset":92},{"name":"ItemID_7","kind":"int","bits":32,"offset":96},{"name":"ItemID_8","kind":"int","bits":32,"offset":100},{"name":"ItemID_9","kind":"int","bits":32,"offset":104},{"name":"ItemID_10","kind":"int","bits":32,"offset":108},{"name":"ItemID_11","kind":"int","bits":32,"offset":112},{"name":"ItemID_12","kind":"int","bits":32,"offset":116},{"name":"ItemID_13","kind":"int","bits":32,"offset":120},{"name":"ItemID_14","kind":"int","bits":32,"offset":124},{"name":"ItemID_15","kind":"int","bits":32,"offset":128},{"name":"ItemID_16","kind":"int","bits":32,"offset":132},{"name":"ItemID_17","kind":"int","bits":32,"offset":136},{"name":"SetSpellID_1","kind":"int","bits":32,"offset":140},{"name":"SetSpellID_2","kind":"int","bits":32,"offset":144},{"name":"SetSpellID_3","kind":"int","bits":32,"offset":148},{"name":"SetSpellID_4","kind":"int","bits":32,"offset":152},{"name":"SetSpellID_5","kind":"int","bits":32,"offset":156},{"name":"SetSpellID_6","kind":"int","bits":32,"offset":160},{"name":"SetSpellID_7","kind":"int","bits":32,"offset":164},{"name":"SetSpellID_8","kind":"int","bits":32,"offset":168},{"name":"SetThreshold_1","kind":"int","bits":32,"offset":172},{"name":"SetThreshold_2","kind":"int","bits":32,"offset":176},{"name":"SetThreshold_3","kind":"int","bits":32,"offset":180},{"name":"SetThreshold_4","kind":"int","bits":32,"offset":184},{"name":"SetThreshold_5","kind":"int","bits":32,"offset":188},{"name":"SetThreshold_6","kind":"int","bits":32,"offset":192},{"name":"SetThreshold_7","kind":"int","bits":32,"offset":196},{"name":"SetThreshold_8","kind":"int","bits":32,"offset":200},{"name":"RequiredSkill","kind":"int","bits":32,"offset":204},{"name":"RequiredSkillRank","kind":"int","bits":32,"offset":208}],"source":"WoWDBDefs"},"itemsubclass":{"name":"ItemSubClass","build":12340,"recordSize":176,"columns":[{"name":"ClassID","kind":"int","bits":32,"offset":0},{"name":"SubClassID","kind":"int","bits":32,"offset":4},{"name":"PrerequisiteProficiency","kind":"int","bits":32,"offset":8},{"name":"PostrequisiteProficiency","kind":"int","bits":32,"offset":12},{"name":"Flags","kind":"int","bits":32,"offset":16},{"name":"DisplayFlags","kind":"int","bits":32,"offset":20},{"name":"WeaponParrySeq","kind":"int","bits":32,"offset":24},{"name":"WeaponReadySeq","kind":"int","bits":32,"offset":28},{"name":"WeaponAttackSeq","kind":"int","bits":32,"offset":32},{"name":"WeaponSwingSize","kind":"int","bits":32,"offset":36},{"name":"DisplayName_lang_enUS","kind":"string","bits":32,"offset":40,"locale":"enUS"},{"name":"DisplayName_lang_enGB","kind":"string","bits":32,"offset":44,"locale":"enGB"},{"name":"DisplayName_lang_koKR","kind":"string","bits":32,"offset":48,"locale":"koKR"},{"name":"DisplayName_lang_frFR","kind":"string","bits":32,"offset":52,"locale":"frFR"},{"name":"DisplayName_lang_deDE","kind":"string","bits":32,"offset":56,"locale":"deDE"},{"name":"DisplayName_lang_enCN","kind":"string","bits":32,"offset":60,"locale":"enCN"},{"name":"DisplayName_lang_zhCN","kind":"string","bits":32,"offset":64,"locale":"zhCN"},{"name":"DisplayName_lang_enTW","kind":"string","bits":32,"offset":68,"locale":"enTW"},{"name":"DisplayName_lang_zhTW","kind":"string","bits":32,"offset":72,"locale":"zhTW"},{"name":"DisplayName_lang_esES","kind":"string","bits":32,"offset":76,"locale":"esES"},{"name":"DisplayName_lang_esMX","kind":"string","bits":32,"offset":80,"locale":"esMX"},{"name":"DisplayName_lang_ruRU","kind":"string","bits":32,"offset":84,"locale":"ruRU"},{"name":"DisplayName_lang_ptPT","kind":"string","bits":32,"offset":88,"locale":"ptPT"},{"name":"DisplayName_lang_ptBR","kind":"string","bits":32,"offset":92,"locale":"ptBR"},{"name":"DisplayName_lang_itIT","kind":"string","bits":32,"offset":96,"locale":"itIT"},{"name":"DisplayName_lang_Unk","kind":"string","bits":32,"offset":100,"locale":"Unk"},{"name":"DisplayName_lang_Mask","kind":"uint","bits":32,"offset":104},{"name":"VerboseName_lang_enUS","kind":"string","bits":32,"offset":108,"locale":"enUS"},{"name":"VerboseName_lang_enGB","kind":"string","bits":32,"offset":112,"locale":"enGB"},{"name":"VerboseName_lang_koKR","kind":"string","bits":32,"offset":116,"locale":"koKR"},{"name":"VerboseName_lang_frFR","kind":"string","bits":32,"offset":120,"locale":"frFR"},{"name":"VerboseName_lang_deDE","kind":"string","bits":32,"offset":124,"locale":"deDE"},{"name":"VerboseName_lang_enCN","kind":"string","bits":32,"offset":128,"locale":"enCN"},{"name":"VerboseName_lang_zhCN","kind":"string","bits":32,"offset":132,"locale":"zhCN"},{"name":"VerboseName_lang_enTW","kind":"string","bits":32,"offset":136,"locale":"enTW"},{"name":"VerboseName_lang_zhTW","kind":"string","bits":32,"offset":140,"locale":"zhTW"},{"name":"VerboseName_lang_esES","kind":"string","bits":32,"offset":144,"locale":"esES"},{"name":"VerboseName_lang_esMX","kind":"string","bits":32,"offset":148,"locale":"esMX"},{"name":"VerboseName_lang_ruRU","kind":"string","bits":32,"offset":152,"locale":"ruRU"},{"name":"VerboseName_lang_ptPT","kind":"string","bits":32,"offset":156,"locale":"ptPT"},{"name":"VerboseName_lang_ptBR","kind":"string","bits":32,"offset":160,"locale":"ptBR"},{"name":"VerboseName_lang_itIT","kind":"string","bits":32,"offset":164,"locale":"itIT"},{"name":"VerboseName_lang_Unk","kind":"string","bits":32,"offset":168,"locale":"Unk"},{"name":"VerboseName_lang_Mask","kind":"uint","bits":32,"offset":172}],"source":"WoWDBDefs"},"itemsubclassmask":{"name":"ItemSubClassMask","build":12340,"recordSize":76,"columns":[{"name":"ClassID","kind":"int","bits":32,"offset":0},{"name":"Mask","kind":"int","bits":32,"offset":4},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":8,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":12,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":16,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":20,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":24,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":28,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":32,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":36,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":40,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":44,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":48,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":52,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":56,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":60,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":64,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":68,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":72}],"source":"WoWDBDefs"},"itemvisualeffects":{"name":"ItemVisualEffects","build":12340,"recordSize":8,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Model","kind":"string","bits":32,"offset":4}],"source":"WoWDBDefs"},"itemvisuals":{"name":"ItemVisuals","build":12340,"recordSize":24,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Slot_1","kind":"int","bits":32,"offset":4},{"name":"Slot_2","kind":"int","bits":32,"offset":8},{"name":"Slot_3","kind":"int","bits":32,"offset":12},{"name":"Slot_4","kind":"int","bits":32,"offset":16},{"name":"Slot_5","kind":"int","bits":32,"offset":20}],"source":"WoWDBDefs"},"languages":{"name":"Languages","build":12340,"recordSize":72,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":4,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":8,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":12,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":16,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":20,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":24,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":28,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":32,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":36,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":40,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":44,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":48,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":52,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":56,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":60,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":64,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":68}],"source":"WoWDBDefs"},"languagewords":{"name":"LanguageWords","build":12340,"recordSize":12,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"LanguageID","kind":"int","bits":32,"offset":4},{"name":"Word","kind":"string","bits":32,"offset":8}],"source":"WoWDBDefs"},"lfgdungeonexpansion":{"name":"LFGDungeonExpansion","build":12340,"recordSize":32,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Lfg_ID","kind":"int","bits":32,"offset":4},{"name":"Expansion_level","kind":"int","bits":32,"offset":8},{"name":"Random_ID","kind":"int","bits":32,"offset":12},{"name":"Hard_level_min","kind":"int","bits":32,"offset":16},{"name":"Hard_level_max","kind":"int","bits":32,"offset":20},{"name":"Target_level_min","kind":"int","bits":32,"offset":24},{"name":"Target_level_max","kind":"int","bits":32,"offset":28}],"source":"WoWDBDefs"},"lfgdungeongroup":{"name":"LFGDungeonGroup","build":12340,"recordSize":84,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":4,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":8,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":12,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":16,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":20,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":24,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":28,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":32,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":36,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":40,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":44,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":48,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":52,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":56,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":60,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":64,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":68},{"name":"Order_index","kind":"int","bits":32,"offset":72},{"name":"Parent_group_ID","kind":"int","bits":32,"offset":76},{"name":"TypeID","kind":"int","bits":32,"offset":80}],"source":"WoWDBDefs"},"lfgdungeons":{"name":"LFGDungeons","build":12340,"recordSize":196,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":4,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":8,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":12,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":16,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":20,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":24,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":28,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":32,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":36,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":40,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":44,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":48,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":52,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":56,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":60,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":64,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":68},{"name":"MinLevel","kind":"int","bits":32,"offset":72},{"name":"MaxLevel","kind":"int","bits":32,"offset":76},{"name":"Target_level","kind":"int","bits":32,"offset":80},{"name":"Target_level_min","kind":"int","bits":32,"offset":84},{"name":"Target_level_max","kind":"int","bits":32,"offset":88},{"name":"MapID","kind":"int","bits":32,"offset":92},{"name":"Difficulty","kind":"int","bits":32,"offset":96},{"name":"Flags","kind":"int","bits":32,"offset":100},{"name":"TypeID","kind":"int","bits":32,"offset":104},{"name":"Faction","kind":"int","bits":32,"offset":108},{"name":"TextureFilename","kind":"string","bits":32,"offset":112},{"name":"ExpansionLevel","kind":"int","bits":32,"offset":116},{"name":"Order_index","kind":"int","bits":32,"offset":120},{"name":"Group_ID","kind":"int","bits":32,"offset":124},{"name":"Description_lang_enUS","kind":"string","bits":32,"offset":128,"locale":"enUS"},{"name":"Description_lang_enGB","kind":"string","bits":32,"offset":132,"locale":"enGB"},{"name":"Description_lang_koKR","kind":"string","bits":32,"offset":136,"locale":"koKR"},{"name":"Description_lang_frFR","kind":"string","bits":32,"offset":140,"locale":"frFR"},{"name":"Description_lang_deDE","kind":"string","bits":32,"offset":144,"locale":"deDE"},{"name":"Description_lang_enCN","kind":"string","bits":32,"offset":148,"locale":"enCN"},{"name":"Description_lang_zhCN","kind":"string","bits":32,"offset":152,"locale":"zhCN"},{"name":"Description_lang_enTW","kind":"string","bits":32,"offset":156,"locale":"enTW"},{"name":"Description_lang_zhTW","kind":"string","bits":32,"offset":160,"locale":"zhTW"},{"name":"Description_lang_esES","kind":"string","bits":32,"offset":164,"locale":"esES"},{"name":"Description_lang_esMX","kind":"string","bits":32,"offset":168,"locale":"esMX"},{"name":"Description_lang_ruRU","kind":"string","bits":32,"offset":172,"locale":"ruRU"},{"name":"Description_lang_ptPT","kind":"string","bits":32,"offset":176,"locale":"ptPT"},{"name":"Description_lang_ptBR","kind":"string","bits":32,"offset":180,"locale":"ptBR"},{"name":"Description_lang_itIT","kind":"string","bits":32,"offset":184,"locale":"itIT"},{"name":"Description_lang_Unk","kind":"string","bits":32,"offset":188,"locale":"Unk"},{"name":"Description_lang_Mask","kind":"uint","bits":32,"offset":192}],"source":"WoWDBDefs"},"light":{"name":"Light","build":12340,"recordSize":60,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"ContinentID","kind":"int","bits":32,"offset":4},{"name":"GameCoords_1","kind":"float","bits":32,"offset":8},{"name":"GameCoords_2","kind":"float","bits":32,"offset":12},{"name":"GameCoords_3","kind":"float","bits":32,"offset":16},{"name":"GameFalloffStart","kind":"float","bits":32,"offset":20},{"name":"GameFalloffEnd","kind":"float","bits":32,"offset":24},{"name":"LightParamsID_1","kind":"int","bits":32,"offset":28},{"name":"LightParamsID_2","kind":"int","bits":32,"offset":32},{"name":"LightParamsID_3","kind":"int","bits":32,"offset":36},{"name":"LightParamsID_4","kind":"int","bits":32,"offset":40},{"name":"LightParamsID_5","kind":"int","bits":32,"offset":44},{"name":"LightParamsID_6","kind":"int","bits":32,"offset":48},{"name":"LightParamsID_7","kind":"int","bits":32,"offset":52},{"name":"LightParamsID_8","kind":"int","bits":32,"offset":56}],"source":"WoWDBDefs"},"lightfloatband":{"name":"LightFloatBand","build":12340,"recordSize":136,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Num","kind":"int","bits":32,"offset":4},{"name":"Time_1","kind":"int","bits":32,"offset":8},{"name":"Time_2","kind":"int","bits":32,"offset":12},{"name":"Time_3","kind":"int","bits":32,"offset":16},{"name":"Time_4","kind":"int","bits":32,"offset":20},{"name":"Time_5","kind":"int","bits":32,"offset":24},{"name":"Time_6","kind":"int","bits":32,"offset":28},{"name":"Time_7","kind":"int","bits":32,"offset":32},{"name":"Time_8","kind":"int","bits":32,"offset":36},{"name":"Time_9","kind":"int","bits":32,"offset":40},{"name":"Time_10","kind":"int","bits":32,"offset":44},{"name":"Time_11","kind":"int","bits":32,"offset":48},{"name":"Time_12","kind":"int","bits":32,"offset":52},{"name":"Time_13","kind":"int","bits":32,"offset":56},{"name":"Time_14","kind":"int","bits":32,"offset":60},{"name":"Time_15","kind":"int","bits":32,"offset":64},{"name":"Time_16","kind":"int","bits":32,"offset":68},{"name":"Data_1","kind":"float","bits":32,"offset":72},{"name":"Data_2","kind":"float","bits":32,"offset":76},{"name":"Data_3","kind":"float","bits":32,"offset":80},{"name":"Data_4","kind":"float","bits":32,"offset":84},{"name":"Data_5","kind":"float","bits":32,"offset":88},{"name":"Data_6","kind":"float","bits":32,"offset":92},{"name":"Data_7","kind":"float","bits":32,"offset":96},{"name":"Data_8","kind":"float","bits":32,"offset":100},{"name":"Data_9","kind":"float","bits":32,"offset":104},{"name":"Data_10","kind":"float","bits":32,"offset":108},{"name":"Data_11","kind":"float","bits":32,"offset":112},{"name":"Data_12","kind":"float","bits":32,"offset":116},{"name":"Data_13","kind":"float","bits":32,"offset":120},{"name":"Data_14","kind":"float","bits":32,"offset":124},{"name":"Data_15","kind":"float","bits":32,"offset":128},{"name":"Data_16","kind":"float","bits":32,"offset":132}],"source":"WoWDBDefs"},"lightintband":{"name":"LightIntBand","build":12340,"recordSize":136,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Num","kind":"int","bits":32,"offset":4},{"name":"Time_1","kind":"int","bits":32,"offset":8},{"name":"Time_2","kind":"int","bits":32,"offset":12},{"name":"Time_3","kind":"int","bits":32,"offset":16},{"name":"Time_4","kind":"int","bits":32,"offset":20},{"name":"Time_5","kind":"int","bits":32,"offset":24},{"name":"Time_6","kind":"int","bits":32,"offset":28},{"name":"Time_7","kind":"int","bits":32,"offset":32},{"name":"Time_8","kind":"int","bits":32,"offset":36},{"name":"Time_9","kind":"int","bits":32,"offset":40},{"name":"Time_10","kind":"int","bits":32,"offset":44},{"name":"Time_11","kind":"int","bits":32,"offset":48},{"name":"Time_12","kind":"int","bits":32,"offset":52},{"name":"Time_13","kind":"int","bits":32,"offset":56},{"name":"Time_14","kind":"int","bits":32,"offset":60},{"name":"Time_15","kind":"int","bits":32,"offset":64},{"name":"Time_16","kind":"int","bits":32,"offset":68},{"name":"Data_1","kind":"int","bits":32,"offset":72},{"name":"Data_2","kind":"int","bits":32,"offset":76},{"name":"Data_3","kind":"int","bits":32,"offset":80},{"name":"Data_4","kind":"int","bits":32,"offset":84},{"name":"Data_5","kind":"int","bits":32,"offset":88},{"name":"Data_6","kind":"int","bits":32,"offset":92},{"name":"Data_7","kind":"int","bits":32,"offset":96},{"name":"Data_8","kind":"int","bits":32,"offset":100},{"name":"Data_9","kind":"int","bits":32,"offset":104},{"name":"Data_10","kind":"int","bits":32,"offset":108},{"name":"Data_11","kind":"int","bits":32,"offset":112},{"name":"Data_12","kind":"int","bits":32,"offset":116},{"name":"Data_13","kind":"int","bits":32,"offset":120},{"name":"Data_14","kind":"int","bits":32,"offset":124},{"name":"Data_15","kind":"int","bits":32,"offset":128},{"name":"Data_16","kind":"int","bits":32,"offset":132}],"source":"WoWDBDefs"},"lightparams":{"name":"LightParams","build":12340,"recordSize":36,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"HighlightSky","kind":"int","bits":32,"offset":4},{"name":"LightSkyboxID","kind":"int","bits":32,"offset":8},{"name":"Glow","kind":"float","bits":32,"offset":12},{"name":"WaterShallowAlpha","kind":"float","bits":32,"offset":16},{"name":"WaterDeepAlpha","kind":"float","bits":32,"offset":20},{"name":"OceanShallowAlpha","kind":"float","bits":32,"offset":24},{"name":"OceanDeepAlpha","kind":"float","bits":32,"offset":28},{"name":"Flags","kind":"int","bits":32,"offset":32}],"source":"WoWDBDefs"},"lightskybox":{"name":"LightSkybox","build":12340,"recordSize":12,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Name","kind":"string","bits":32,"offset":4},{"name":"Flags","kind":"int","bits":32,"offset":8}],"source":"WoWDBDefs"},"liquidmaterial":{"name":"LiquidMaterial","build":12340,"recordSize":12,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"LVF","kind":"int","bits":32,"offset":4},{"name":"Flags","kind":"int","bits":32,"offset":8}],"source":"WoWDBDefs"},"liquidtype":{"name":"LiquidType","build":12340,"recordSize":180,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Name","kind":"string","bits":32,"offset":4},{"name":"Flags","kind":"int","bits":32,"offset":8},{"name":"SoundBank","kind":"int","bits":32,"offset":12},{"name":"SoundID","kind":"int","bits":32,"offset":16},{"name":"SpellID","kind":"int","bits":32,"offset":20},{"name":"MaxDarkenDepth","kind":"float","bits":32,"offset":24},{"name":"FogDarkenIntensity","kind":"float","bits":32,"offset":28},{"name":"AmbDarkenIntensity","kind":"float","bits":32,"offset":32},{"name":"DirDarkenIntensity","kind":"float","bits":32,"offset":36},{"name":"LightID","kind":"int","bits":32,"offset":40},{"name":"ParticleScale","kind":"float","bits":32,"offset":44},{"name":"ParticleMovement","kind":"int","bits":32,"offset":48},{"name":"ParticleTexSlots","kind":"int","bits":32,"offset":52},{"name":"MaterialID","kind":"int","bits":32,"offset":56},{"name":"Texture_1","kind":"string","bits":32,"offset":60},{"name":"Texture_2","kind":"string","bits":32,"offset":64},{"name":"Texture_3","kind":"string","bits":32,"offset":68},{"name":"Texture_4","kind":"string","bits":32,"offset":72},{"name":"Texture_5","kind":"string","bits":32,"offset":76},{"name":"Texture_6","kind":"string","bits":32,"offset":80},{"name":"Color_1","kind":"int","bits":32,"offset":84},{"name":"Color_2","kind":"int","bits":32,"offset":88},{"name":"Float_1","kind":"float","bits":32,"offset":92},{"name":"Float_2","kind":"float","bits":32,"offset":96},{"name":"Float_3","kind":"float","bits":32,"offset":100},{"name":"Float_4","kind":"float","bits":32,"offset":104},{"name":"Float_5","kind":"float","bits":32,"offset":108},{"name":"Float_6","kind":"float","bits":32,"offset":112},{"name":"Float_7","kind":"float","bits":32,"offset":116},{"name":"Float_8","kind":"float","bits":32,"offset":120},{"name":"Float_9","kind":"float","bits":32,"offset":124},{"name":"Float_10","kind":"float","bits":32,"offset":128},{"name":"Float_11","kind":"float","bits":32,"offset":132},{"name":"Float_12","kind":"float","bits":32,"offset":136},{"name":"Float_13","kind":"float","bits":32,"offset":140},{"name":"Float_14","kind":"float","bits":32,"offset":144},{"name":"Float_15","kind":"float","bits":32,"offset":148},{"name":"Float_16","kind":"float","bits":32,"offset":152},{"name":"Float_17","kind":"float","bits":32,"offset":156},{"name":"Float_18","kind":"float","bits":32,"offset":160},{"name":"Int_1","kind":"int","bits":32,"offset":164},{"name":"Int_2","kind":"int","bits":32,"offset":168},{"name":"Int_3","kind":"int","bits":32,"offset":172},{"name":"Int_4","kind":"int","bits":32,"offset":176}],"source":"WoWDBDefs"},"loadingscreens":{"name":"LoadingScreens","build":12340,"recordSize":16,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Name","kind":"string","bits":32,"offset":4},{"name":"FileName","kind":"string","bits":32,"offset":8},{"name":"HasWideScreen","kind":"int","bits":32,"offset":12}],"source":"WoWDBDefs"},"loadingscreentaxisplines":{"name":"LoadingScreenTaxiSplines","build":12340,"recordSize":76,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"PathID","kind":"int","bits":32,"offset":4},{"name":"Locx_1","kind":"float","bits":32,"offset":8},{"name":"Locx_2","kind":"float","bits":32,"offset":12},{"name":"Locx_3","kind":"float","bits":32,"offset":16},{"name":"Locx_4","kind":"float","bits":32,"offset":20},{"name":"Locx_5","kind":"float","bits":32,"offset":24},{"name":"Locx_6","kind":"float","bits":32,"offset":28},{"name":"Locx_7","kind":"float","bits":32,"offset":32},{"name":"Locx_8","kind":"float","bits":32,"offset":36},{"name":"Locy_1","kind":"float","bits":32,"offset":40},{"name":"Locy_2","kind":"float","bits":32,"offset":44},{"name":"Locy_3","kind":"float","bits":32,"offset":48},{"name":"Locy_4","kind":"float","bits":32,"offset":52},{"name":"Locy_5","kind":"float","bits":32,"offset":56},{"name":"Locy_6","kind":"float","bits":32,"offset":60},{"name":"Locy_7","kind":"float","bits":32,"offset":64},{"name":"Locy_8","kind":"float","bits":32,"offset":68},{"name":"LegIndex","kind":"int","bits":32,"offset":72}],"source":"WoWDBDefs"},"lock":{"name":"Lock","build":12340,"recordSize":132,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Type_1","kind":"int","bits":32,"offset":4},{"name":"Type_2","kind":"int","bits":32,"offset":8},{"name":"Type_3","kind":"int","bits":32,"offset":12},{"name":"Type_4","kind":"int","bits":32,"offset":16},{"name":"Type_5","kind":"int","bits":32,"offset":20},{"name":"Type_6","kind":"int","bits":32,"offset":24},{"name":"Type_7","kind":"int","bits":32,"offset":28},{"name":"Type_8","kind":"int","bits":32,"offset":32},{"name":"Index_1","kind":"int","bits":32,"offset":36},{"name":"Index_2","kind":"int","bits":32,"offset":40},{"name":"Index_3","kind":"int","bits":32,"offset":44},{"name":"Index_4","kind":"int","bits":32,"offset":48},{"name":"Index_5","kind":"int","bits":32,"offset":52},{"name":"Index_6","kind":"int","bits":32,"offset":56},{"name":"Index_7","kind":"int","bits":32,"offset":60},{"name":"Index_8","kind":"int","bits":32,"offset":64},{"name":"Skill_1","kind":"int","bits":32,"offset":68},{"name":"Skill_2","kind":"int","bits":32,"offset":72},{"name":"Skill_3","kind":"int","bits":32,"offset":76},{"name":"Skill_4","kind":"int","bits":32,"offset":80},{"name":"Skill_5","kind":"int","bits":32,"offset":84},{"name":"Skill_6","kind":"int","bits":32,"offset":88},{"name":"Skill_7","kind":"int","bits":32,"offset":92},{"name":"Skill_8","kind":"int","bits":32,"offset":96},{"name":"Action_1","kind":"int","bits":32,"offset":100},{"name":"Action_2","kind":"int","bits":32,"offset":104},{"name":"Action_3","kind":"int","bits":32,"offset":108},{"name":"Action_4","kind":"int","bits":32,"offset":112},{"name":"Action_5","kind":"int","bits":32,"offset":116},{"name":"Action_6","kind":"int","bits":32,"offset":120},{"name":"Action_7","kind":"int","bits":32,"offset":124},{"name":"Action_8","kind":"int","bits":32,"offset":128}],"source":"WoWDBDefs"},"locktype":{"name":"LockType","build":12340,"recordSize":212,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":4,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":8,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":12,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":16,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":20,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":24,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":28,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":32,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":36,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":40,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":44,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":48,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":52,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":56,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":60,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":64,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":68},{"name":"ResourceName_lang_enUS","kind":"string","bits":32,"offset":72,"locale":"enUS"},{"name":"ResourceName_lang_enGB","kind":"string","bits":32,"offset":76,"locale":"enGB"},{"name":"ResourceName_lang_koKR","kind":"string","bits":32,"offset":80,"locale":"koKR"},{"name":"ResourceName_lang_frFR","kind":"string","bits":32,"offset":84,"locale":"frFR"},{"name":"ResourceName_lang_deDE","kind":"string","bits":32,"offset":88,"locale":"deDE"},{"name":"ResourceName_lang_enCN","kind":"string","bits":32,"offset":92,"locale":"enCN"},{"name":"ResourceName_lang_zhCN","kind":"string","bits":32,"offset":96,"locale":"zhCN"},{"name":"ResourceName_lang_enTW","kind":"string","bits":32,"offset":100,"locale":"enTW"},{"name":"ResourceName_lang_zhTW","kind":"string","bits":32,"offset":104,"locale":"zhTW"},{"name":"ResourceName_lang_esES","kind":"string","bits":32,"offset":108,"locale":"esES"},{"name":"ResourceName_lang_esMX","kind":"string","bits":32,"offset":112,"locale":"esMX"},{"name":"ResourceName_lang_ruRU","kind":"string","bits":32,"offset":116,"locale":"ruRU"},{"name":"ResourceName_lang_ptPT","kind":"string","bits":32,"offset":120,"locale":"ptPT"},{"name":"ResourceName_lang_ptBR","kind":"string","bits":32,"offset":124,"locale":"ptBR"},{"name":"ResourceName_lang_itIT","kind":"string","bits":32,"offset":128,"locale":"itIT"},{"name":"ResourceName_lang_Unk","kind":"string","bits":32,"offset":132,"locale":"Unk"},{"name":"ResourceName_lang_Mask","kind":"uint","bits":32,"offset":136},{"name":"Verb_lang_enUS","kind":"string","bits":32,"offset":140,"locale":"enUS"},{"name":"Verb_lang_enGB","kind":"string","bits":32,"offset":144,"locale":"enGB"},{"name":"Verb_lang_koKR","kind":"string","bits":32,"offset":148,"locale":"koKR"},{"name":"Verb_lang_frFR","kind":"string","bits":32,"offset":152,"locale":"frFR"},{"name":"Verb_lang_deDE","kind":"string","bits":32,"offset":156,"locale":"deDE"},{"name":"Verb_lang_enCN","kind":"string","bits":32,"offset":160,"locale":"enCN"},{"name":"Verb_lang_zhCN","kind":"string","bits":32,"offset":164,"locale":"zhCN"},{"name":"Verb_lang_enTW","kind":"string","bits":32,"offset":168,"locale":"enTW"},{"name":"Verb_lang_zhTW","kind":"string","bits":32,"offset":172,"locale":"zhTW"},{"name":"Verb_lang_esES","kind":"string","bits":32,"offset":176,"locale":"esES"},{"name":"Verb_lang_esMX","kind":"string","bits":32,"offset":180,"locale":"esMX"},{"name":"Verb_lang_ruRU","kind":"string","bits":32,"offset":184,"locale":"ruRU"},{"name":"Verb_lang_ptPT","kind":"string","bits":32,"offset":188,"locale":"ptPT"},{"name":"Verb_lang_ptBR","kind":"string","bits":32,"offset":192,"locale":"ptBR"},{"name":"Verb_lang_itIT","kind":"string","bits":32,"offset":196,"locale":"itIT"},{"name":"Verb_lang_Unk","kind":"string","bits":32,"offset":200,"locale":"Unk"},{"name":"Verb_lang_Mask","kind":"uint","bits":32,"offset":204},{"name":"CursorName","kind":"string","bits":32,"offset":208}],"source":"WoWDBDefs"},"mailtemplate":{"name":"MailTemplate","build":12340,"recordSize":140,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Subject_lang_enUS","kind":"string","bits":32,"offset":4,"locale":"enUS"},{"name":"Subject_lang_enGB","kind":"string","bits":32,"offset":8,"locale":"enGB"},{"name":"Subject_lang_koKR","kind":"string","bits":32,"offset":12,"locale":"koKR"},{"name":"Subject_lang_frFR","kind":"string","bits":32,"offset":16,"locale":"frFR"},{"name":"Subject_lang_deDE","kind":"string","bits":32,"offset":20,"locale":"deDE"},{"name":"Subject_lang_enCN","kind":"string","bits":32,"offset":24,"locale":"enCN"},{"name":"Subject_lang_zhCN","kind":"string","bits":32,"offset":28,"locale":"zhCN"},{"name":"Subject_lang_enTW","kind":"string","bits":32,"offset":32,"locale":"enTW"},{"name":"Subject_lang_zhTW","kind":"string","bits":32,"offset":36,"locale":"zhTW"},{"name":"Subject_lang_esES","kind":"string","bits":32,"offset":40,"locale":"esES"},{"name":"Subject_lang_esMX","kind":"string","bits":32,"offset":44,"locale":"esMX"},{"name":"Subject_lang_ruRU","kind":"string","bits":32,"offset":48,"locale":"ruRU"},{"name":"Subject_lang_ptPT","kind":"string","bits":32,"offset":52,"locale":"ptPT"},{"name":"Subject_lang_ptBR","kind":"string","bits":32,"offset":56,"locale":"ptBR"},{"name":"Subject_lang_itIT","kind":"string","bits":32,"offset":60,"locale":"itIT"},{"name":"Subject_lang_Unk","kind":"string","bits":32,"offset":64,"locale":"Unk"},{"name":"Subject_lang_Mask","kind":"uint","bits":32,"offset":68},{"name":"Body_lang_enUS","kind":"string","bits":32,"offset":72,"locale":"enUS"},{"name":"Body_lang_enGB","kind":"string","bits":32,"offset":76,"locale":"enGB"},{"name":"Body_lang_koKR","kind":"string","bits":32,"offset":80,"locale":"koKR"},{"name":"Body_lang_frFR","kind":"string","bits":32,"offset":84,"locale":"frFR"},{"name":"Body_lang_deDE","kind":"string","bits":32,"offset":88,"locale":"deDE"},{"name":"Body_lang_enCN","kind":"string","bits":32,"offset":92,"locale":"enCN"},{"name":"Body_lang_zhCN","kind":"string","bits":32,"offset":96,"locale":"zhCN"},{"name":"Body_lang_enTW","kind":"string","bits":32,"offset":100,"locale":"enTW"},{"name":"Body_lang_zhTW","kind":"string","bits":32,"offset":104,"locale":"zhTW"},{"name":"Body_lang_esES","kind":"string","bits":32,"offset":108,"locale":"esES"},{"name":"Body_lang_esMX","kind":"string","bits":32,"offset":112,"locale":"esMX"},{"name":"Body_lang_ruRU","kind":"string","bits":32,"offset":116,"locale":"ruRU"},{"name":"Body_lang_ptPT","kind":"string","bits":32,"offset":120,"locale":"ptPT"},{"name":"Body_lang_ptBR","kind":"string","bits":32,"offset":124,"locale":"ptBR"},{"name":"Body_lang_itIT","kind":"string","bits":32,"offset":128,"locale":"itIT"},{"name":"Body_lang_Unk","kind":"string","bits":32,"offset":132,"locale":"Unk"},{"name":"Body_lang_Mask","kind":"uint","bits":32,"offset":136}],"source":"WoWDBDefs"},"map":{"name":"Map","build":12340,"recordSize":264,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Directory","kind":"string","bits":32,"offset":4},{"name":"InstanceType","kind":"int","bits":32,"offset":8},{"name":"Flags","kind":"int","bits":32,"offset":12},{"name":"PVP","kind":"int","bits":32,"offset":16},{"name":"MapName_lang_enUS","kind":"string","bits":32,"offset":20,"locale":"enUS"},{"name":"MapName_lang_enGB","kind":"string","bits":32,"offset":24,"locale":"enGB"},{"name":"MapName_lang_koKR","kind":"string","bits":32,"offset":28,"locale":"koKR"},{"name":"MapName_lang_frFR","kind":"string","bits":32,"offset":32,"locale":"frFR"},{"name":"MapName_lang_deDE","kind":"string","bits":32,"offset":36,"locale":"deDE"},{"name":"MapName_lang_enCN","kind":"string","bits":32,"offset":40,"locale":"enCN"},{"name":"MapName_lang_zhCN","kind":"string","bits":32,"offset":44,"locale":"zhCN"},{"name":"MapName_lang_enTW","kind":"string","bits":32,"offset":48,"locale":"enTW"},{"name":"MapName_lang_zhTW","kind":"string","bits":32,"offset":52,"locale":"zhTW"},{"name":"MapName_lang_esES","kind":"string","bits":32,"offset":56,"locale":"esES"},{"name":"MapName_lang_esMX","kind":"string","bits":32,"offset":60,"locale":"esMX"},{"name":"MapName_lang_ruRU","kind":"string","bits":32,"offset":64,"locale":"ruRU"},{"name":"MapName_lang_ptPT","kind":"string","bits":32,"offset":68,"locale":"ptPT"},{"name":"MapName_lang_ptBR","kind":"string","bits":32,"offset":72,"locale":"ptBR"},{"name":"MapName_lang_itIT","kind":"string","bits":32,"offset":76,"locale":"itIT"},{"name":"MapName_lang_Unk","kind":"string","bits":32,"offset":80,"locale":"Unk"},{"name":"MapName_lang_Mask","kind":"uint","bits":32,"offset":84},{"name":"AreaTableID","kind":"int","bits":32,"offset":88},{"name":"MapDescription0_lang_enUS","kind":"string","bits":32,"offset":92,"locale":"enUS"},{"name":"MapDescription0_lang_enGB","kind":"string","bits":32,"offset":96,"locale":"enGB"},{"name":"MapDescription0_lang_koKR","kind":"string","bits":32,"offset":100,"locale":"koKR"},{"name":"MapDescription0_lang_frFR","kind":"string","bits":32,"offset":104,"locale":"frFR"},{"name":"MapDescription0_lang_deDE","kind":"string","bits":32,"offset":108,"locale":"deDE"},{"name":"MapDescription0_lang_enCN","kind":"string","bits":32,"offset":112,"locale":"enCN"},{"name":"MapDescription0_lang_zhCN","kind":"string","bits":32,"offset":116,"locale":"zhCN"},{"name":"MapDescription0_lang_enTW","kind":"string","bits":32,"offset":120,"locale":"enTW"},{"name":"MapDescription0_lang_zhTW","kind":"string","bits":32,"offset":124,"locale":"zhTW"},{"name":"MapDescription0_lang_esES","kind":"string","bits":32,"offset":128,"locale":"esES"},{"name":"MapDescription0_lang_esMX","kind":"string","bits":32,"offset":132,"locale":"esMX"},{"name":"MapDescription0_lang_ruRU","kind":"string","bits":32,"offset":136,"locale":"ruRU"},{"name":"MapDescription0_lang_ptPT","kind":"string","bits":32,"offset":140,"locale":"ptPT"},{"name":"MapDescription0_lang_ptBR","kind":"string","bits":32,"offset":144,"locale":"ptBR"},{"name":"MapDescription0_lang_itIT","kind":"string","bits":32,"offset":148,"locale":"itIT"},{"name":"MapDescription0_lang_Unk","kind":"string","bits":32,"offset":152,"locale":"Unk"},{"name":"MapDescription0_lang_Mask","kind":"uint","bits":32,"offset":156},{"name":"MapDescription1_lang_enUS","kind":"string","bits":32,"offset":160,"locale":"enUS"},{"name":"MapDescription1_lang_enGB","kind":"string","bits":32,"offset":164,"locale":"enGB"},{"name":"MapDescription1_lang_koKR","kind":"string","bits":32,"offset":168,"locale":"koKR"},{"name":"MapDescription1_lang_frFR","kind":"string","bits":32,"offset":172,"locale":"frFR"},{"name":"MapDescription1_lang_deDE","kind":"string","bits":32,"offset":176,"locale":"deDE"},{"name":"MapDescription1_lang_enCN","kind":"string","bits":32,"offset":180,"locale":"enCN"},{"name":"MapDescription1_lang_zhCN","kind":"string","bits":32,"offset":184,"locale":"zhCN"},{"name":"MapDescription1_lang_enTW","kind":"string","bits":32,"offset":188,"locale":"enTW"},{"name":"MapDescription1_lang_zhTW","kind":"string","bits":32,"offset":192,"locale":"zhTW"},{"name":"MapDescription1_lang_esES","kind":"string","bits":32,"offset":196,"locale":"esES"},{"name":"MapDescription1_lang_esMX","kind":"string","bits":32,"offset":200,"locale":"esMX"},{"name":"MapDescription1_lang_ruRU","kind":"string","bits":32,"offset":204,"locale":"ruRU"},{"name":"MapDescription1_lang_ptPT","kind":"string","bits":32,"offset":208,"locale":"ptPT"},{"name":"MapDescription1_lang_ptBR","kind":"string","bits":32,"offset":212,"locale":"ptBR"},{"name":"MapDescription1_lang_itIT","kind":"string","bits":32,"offset":216,"locale":"itIT"},{"name":"MapDescription1_lang_Unk","kind":"string","bits":32,"offset":220,"locale":"Unk"},{"name":"MapDescription1_lang_Mask","kind":"uint","bits":32,"offset":224},{"name":"LoadingScreenID","kind":"int","bits":32,"offset":228},{"name":"MinimapIconScale","kind":"float","bits":32,"offset":232},{"name":"CorpseMapID","kind":"int","bits":32,"offset":236},{"name":"Corpse_1","kind":"float","bits":32,"offset":240},{"name":"Corpse_2","kind":"float","bits":32,"offset":244},{"name":"TimeOfDayOverride","kind":"int","bits":32,"offset":248},{"name":"ExpansionID","kind":"int","bits":32,"offset":252},{"name":"RaidOffset","kind":"int","bits":32,"offset":256},{"name":"MaxPlayers","kind":"int","bits":32,"offset":260}],"source":"WoWDBDefs"},"mapdifficulty":{"name":"MapDifficulty","build":12340,"recordSize":92,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"MapID","kind":"int","bits":32,"offset":4},{"name":"Difficulty","kind":"int","bits":32,"offset":8},{"name":"Message_lang_enUS","kind":"string","bits":32,"offset":12,"locale":"enUS"},{"name":"Message_lang_enGB","kind":"string","bits":32,"offset":16,"locale":"enGB"},{"name":"Message_lang_koKR","kind":"string","bits":32,"offset":20,"locale":"koKR"},{"name":"Message_lang_frFR","kind":"string","bits":32,"offset":24,"locale":"frFR"},{"name":"Message_lang_deDE","kind":"string","bits":32,"offset":28,"locale":"deDE"},{"name":"Message_lang_enCN","kind":"string","bits":32,"offset":32,"locale":"enCN"},{"name":"Message_lang_zhCN","kind":"string","bits":32,"offset":36,"locale":"zhCN"},{"name":"Message_lang_enTW","kind":"string","bits":32,"offset":40,"locale":"enTW"},{"name":"Message_lang_zhTW","kind":"string","bits":32,"offset":44,"locale":"zhTW"},{"name":"Message_lang_esES","kind":"string","bits":32,"offset":48,"locale":"esES"},{"name":"Message_lang_esMX","kind":"string","bits":32,"offset":52,"locale":"esMX"},{"name":"Message_lang_ruRU","kind":"string","bits":32,"offset":56,"locale":"ruRU"},{"name":"Message_lang_ptPT","kind":"string","bits":32,"offset":60,"locale":"ptPT"},{"name":"Message_lang_ptBR","kind":"string","bits":32,"offset":64,"locale":"ptBR"},{"name":"Message_lang_itIT","kind":"string","bits":32,"offset":68,"locale":"itIT"},{"name":"Message_lang_Unk","kind":"string","bits":32,"offset":72,"locale":"Unk"},{"name":"Message_lang_Mask","kind":"uint","bits":32,"offset":76},{"name":"RaidDuration","kind":"int","bits":32,"offset":80},{"name":"MaxPlayers","kind":"int","bits":32,"offset":84},{"name":"Difficultystring","kind":"string","bits":32,"offset":88}],"source":"WoWDBDefs"},"material":{"name":"Material","build":12340,"recordSize":20,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Flags","kind":"int","bits":32,"offset":4},{"name":"FoleySoundID","kind":"int","bits":32,"offset":8},{"name":"SheatheSoundID","kind":"int","bits":32,"offset":12},{"name":"UnsheatheSoundID","kind":"int","bits":32,"offset":16}],"source":"WoWDBDefs"},"movie":{"name":"Movie","build":12340,"recordSize":12,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Filename","kind":"string","bits":32,"offset":4},{"name":"Volume","kind":"int","bits":32,"offset":8}],"source":"WoWDBDefs"},"moviefiledata":{"name":"MovieFileData","build":12340,"recordSize":8,"columns":[{"name":"FileDataID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Resolution","kind":"int","bits":32,"offset":4}],"source":"WoWDBDefs"},"movievariation":{"name":"MovieVariation","build":12340,"recordSize":12,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"MovieID","kind":"int","bits":32,"offset":4},{"name":"FileDataID","kind":"int","bits":32,"offset":8}],"source":"WoWDBDefs"},"namegen":{"name":"NameGen","build":12340,"recordSize":16,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Name","kind":"string","bits":32,"offset":4},{"name":"RaceID","kind":"int","bits":32,"offset":8},{"name":"Sex","kind":"int","bits":32,"offset":12}],"source":"WoWDBDefs"},"namesprofanity":{"name":"NamesProfanity","build":12340,"recordSize":12,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Name","kind":"string","bits":32,"offset":4},{"name":"Language","kind":"int","bits":32,"offset":8}],"source":"WoWDBDefs"},"namesreserved":{"name":"NamesReserved","build":12340,"recordSize":12,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Name","kind":"string","bits":32,"offset":4},{"name":"Language","kind":"int","bits":32,"offset":8}],"source":"WoWDBDefs"},"npcsounds":{"name":"NPCSounds","build":12340,"recordSize":20,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"SoundID_1","kind":"int","bits":32,"offset":4},{"name":"SoundID_2","kind":"int","bits":32,"offset":8},{"name":"SoundID_3","kind":"int","bits":32,"offset":12},{"name":"SoundID_4","kind":"int","bits":32,"offset":16}],"source":"WoWDBDefs"},"objecteffect":{"name":"ObjectEffect","build":12340,"recordSize":48,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Name","kind":"string","bits":32,"offset":4},{"name":"ObjectEffectGroupID","kind":"int","bits":32,"offset":8},{"name":"TriggerType","kind":"int","bits":32,"offset":12},{"name":"EventType","kind":"int","bits":32,"offset":16},{"name":"EffectRecType","kind":"int","bits":32,"offset":20},{"name":"EffectRecID","kind":"int","bits":32,"offset":24},{"name":"Attachment","kind":"int","bits":32,"offset":28},{"name":"Offset_1","kind":"float","bits":32,"offset":32},{"name":"Offset_2","kind":"float","bits":32,"offset":36},{"name":"Offset_3","kind":"float","bits":32,"offset":40},{"name":"ObjectEffectModifierID","kind":"int","bits":32,"offset":44}],"source":"WoWDBDefs"},"objecteffectgroup":{"name":"ObjectEffectGroup","build":12340,"recordSize":8,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Name","kind":"string","bits":32,"offset":4}],"source":"WoWDBDefs"},"objecteffectmodifier":{"name":"ObjectEffectModifier","build":12340,"recordSize":32,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"InputType","kind":"int","bits":32,"offset":4},{"name":"MapType","kind":"int","bits":32,"offset":8},{"name":"OutputType","kind":"int","bits":32,"offset":12},{"name":"Param_1","kind":"float","bits":32,"offset":16},{"name":"Param_2","kind":"float","bits":32,"offset":20},{"name":"Param_3","kind":"float","bits":32,"offset":24},{"name":"Param_4","kind":"float","bits":32,"offset":28}],"source":"WoWDBDefs"},"objecteffectpackage":{"name":"ObjectEffectPackage","build":12340,"recordSize":8,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Name","kind":"string","bits":32,"offset":4}],"source":"WoWDBDefs"},"objecteffectpackageelem":{"name":"ObjectEffectPackageElem","build":12340,"recordSize":16,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"ObjectEffectPackageID","kind":"int","bits":32,"offset":4},{"name":"ObjectEffectGroupID","kind":"int","bits":32,"offset":8},{"name":"StateType","kind":"int","bits":32,"offset":12}],"source":"WoWDBDefs"},"overridespelldata":{"name":"OverrideSpellData","build":12340,"recordSize":48,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Spells_1","kind":"int","bits":32,"offset":4},{"name":"Spells_2","kind":"int","bits":32,"offset":8},{"name":"Spells_3","kind":"int","bits":32,"offset":12},{"name":"Spells_4","kind":"int","bits":32,"offset":16},{"name":"Spells_5","kind":"int","bits":32,"offset":20},{"name":"Spells_6","kind":"int","bits":32,"offset":24},{"name":"Spells_7","kind":"int","bits":32,"offset":28},{"name":"Spells_8","kind":"int","bits":32,"offset":32},{"name":"Spells_9","kind":"int","bits":32,"offset":36},{"name":"Spells_10","kind":"int","bits":32,"offset":40},{"name":"Flags","kind":"int","bits":32,"offset":44}],"source":"WoWDBDefs"},"package":{"name":"Package","build":12340,"recordSize":80,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Icon","kind":"string","bits":32,"offset":4},{"name":"Cost","kind":"int","bits":32,"offset":8},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":12,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":16,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":20,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":24,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":28,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":32,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":36,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":40,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":44,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":48,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":52,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":56,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":60,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":64,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":68,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":72,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":76}],"source":"WoWDBDefs"},"pagetextmaterial":{"name":"PageTextMaterial","build":12340,"recordSize":8,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Name","kind":"string","bits":32,"offset":4}],"source":"WoWDBDefs"},"paperdollitemframe":{"name":"PaperDollItemFrame","build":12340,"recordSize":12,"columns":[{"name":"ItemButtonName","kind":"string","bits":32,"offset":0},{"name":"SlotIcon","kind":"string","bits":32,"offset":4},{"name":"SlotNumber","kind":"int","bits":32,"offset":8}],"source":"WoWDBDefs"},"particlecolor":{"name":"ParticleColor","build":12340,"recordSize":40,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Start_1","kind":"int","bits":32,"offset":4},{"name":"Start_2","kind":"int","bits":32,"offset":8},{"name":"Start_3","kind":"int","bits":32,"offset":12},{"name":"MID_1","kind":"int","bits":32,"offset":16},{"name":"MID_2","kind":"int","bits":32,"offset":20},{"name":"MID_3","kind":"int","bits":32,"offset":24},{"name":"End_1","kind":"int","bits":32,"offset":28},{"name":"End_2","kind":"int","bits":32,"offset":32},{"name":"End_3","kind":"int","bits":32,"offset":36}],"source":"WoWDBDefs"},"petitiontype":{"name":"PetitionType","build":12340,"recordSize":12,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Name","kind":"string","bits":32,"offset":4},{"name":"Type","kind":"int","bits":32,"offset":8}],"source":"WoWDBDefs"},"petpersonality":{"name":"PetPersonality","build":12340,"recordSize":96,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":4,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":8,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":12,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":16,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":20,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":24,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":28,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":32,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":36,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":40,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":44,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":48,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":52,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":56,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":60,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":64,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":68},{"name":"HappinessThreshold_1","kind":"int","bits":32,"offset":72},{"name":"HappinessThreshold_2","kind":"int","bits":32,"offset":76},{"name":"HappinessThreshold_3","kind":"int","bits":32,"offset":80},{"name":"HappinessDamage_1","kind":"float","bits":32,"offset":84},{"name":"HappinessDamage_2","kind":"float","bits":32,"offset":88},{"name":"HappinessDamage_3","kind":"float","bits":32,"offset":92}],"source":"WoWDBDefs"},"powerdisplay":{"name":"PowerDisplay","build":12340,"recordSize":15,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"ActualType","kind":"int","bits":32,"offset":4},{"name":"GlobalStringBaseTag","kind":"string","bits":32,"offset":8},{"name":"Red","kind":"int","bits":8,"offset":12},{"name":"Green","kind":"int","bits":8,"offset":13},{"name":"Blue","kind":"int","bits":8,"offset":14}],"source":"WoWDBDefs"},"pvpdifficulty":{"name":"PVPDifficulty","build":12340,"recordSize":24,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"MapID","kind":"int","bits":32,"offset":4},{"name":"RangeIndex","kind":"int","bits":32,"offset":8},{"name":"MinLevel","kind":"int","bits":32,"offset":12},{"name":"MaxLevel","kind":"int","bits":32,"offset":16},{"name":"Difficulty","kind":"int","bits":32,"offset":20}],"source":"WoWDBDefs"},"questfactionreward":{"name":"QuestFactionReward","build":12340,"recordSize":44,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Difficulty_1","kind":"int","bits":32,"offset":4},{"name":"Difficulty_2","kind":"int","bits":32,"offset":8},{"name":"Difficulty_3","kind":"int","bits":32,"offset":12},{"name":"Difficulty_4","kind":"int","bits":32,"offset":16},{"name":"Difficulty_5","kind":"int","bits":32,"offset":20},{"name":"Difficulty_6","kind":"int","bits":32,"offset":24},{"name":"Difficulty_7","kind":"int","bits":32,"offset":28},{"name":"Difficulty_8","kind":"int","bits":32,"offset":32},{"name":"Difficulty_9","kind":"int","bits":32,"offset":36},{"name":"Difficulty_10","kind":"int","bits":32,"offset":40}],"source":"WoWDBDefs"},"questinfo":{"name":"QuestInfo","build":12340,"recordSize":72,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"InfoName_lang_enUS","kind":"string","bits":32,"offset":4,"locale":"enUS"},{"name":"InfoName_lang_enGB","kind":"string","bits":32,"offset":8,"locale":"enGB"},{"name":"InfoName_lang_koKR","kind":"string","bits":32,"offset":12,"locale":"koKR"},{"name":"InfoName_lang_frFR","kind":"string","bits":32,"offset":16,"locale":"frFR"},{"name":"InfoName_lang_deDE","kind":"string","bits":32,"offset":20,"locale":"deDE"},{"name":"InfoName_lang_enCN","kind":"string","bits":32,"offset":24,"locale":"enCN"},{"name":"InfoName_lang_zhCN","kind":"string","bits":32,"offset":28,"locale":"zhCN"},{"name":"InfoName_lang_enTW","kind":"string","bits":32,"offset":32,"locale":"enTW"},{"name":"InfoName_lang_zhTW","kind":"string","bits":32,"offset":36,"locale":"zhTW"},{"name":"InfoName_lang_esES","kind":"string","bits":32,"offset":40,"locale":"esES"},{"name":"InfoName_lang_esMX","kind":"string","bits":32,"offset":44,"locale":"esMX"},{"name":"InfoName_lang_ruRU","kind":"string","bits":32,"offset":48,"locale":"ruRU"},{"name":"InfoName_lang_ptPT","kind":"string","bits":32,"offset":52,"locale":"ptPT"},{"name":"InfoName_lang_ptBR","kind":"string","bits":32,"offset":56,"locale":"ptBR"},{"name":"InfoName_lang_itIT","kind":"string","bits":32,"offset":60,"locale":"itIT"},{"name":"InfoName_lang_Unk","kind":"string","bits":32,"offset":64,"locale":"Unk"},{"name":"InfoName_lang_Mask","kind":"uint","bits":32,"offset":68}],"source":"WoWDBDefs"},"questsort":{"name":"QuestSort","build":12340,"recordSize":72,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"SortName_lang_enUS","kind":"string","bits":32,"offset":4,"locale":"enUS"},{"name":"SortName_lang_enGB","kind":"string","bits":32,"offset":8,"locale":"enGB"},{"name":"SortName_lang_koKR","kind":"string","bits":32,"offset":12,"locale":"koKR"},{"name":"SortName_lang_frFR","kind":"string","bits":32,"offset":16,"locale":"frFR"},{"name":"SortName_lang_deDE","kind":"string","bits":32,"offset":20,"locale":"deDE"},{"name":"SortName_lang_enCN","kind":"string","bits":32,"offset":24,"locale":"enCN"},{"name":"SortName_lang_zhCN","kind":"string","bits":32,"offset":28,"locale":"zhCN"},{"name":"SortName_lang_enTW","kind":"string","bits":32,"offset":32,"locale":"enTW"},{"name":"SortName_lang_zhTW","kind":"string","bits":32,"offset":36,"locale":"zhTW"},{"name":"SortName_lang_esES","kind":"string","bits":32,"offset":40,"locale":"esES"},{"name":"SortName_lang_esMX","kind":"string","bits":32,"offset":44,"locale":"esMX"},{"name":"SortName_lang_ruRU","kind":"string","bits":32,"offset":48,"locale":"ruRU"},{"name":"SortName_lang_ptPT","kind":"string","bits":32,"offset":52,"locale":"ptPT"},{"name":"SortName_lang_ptBR","kind":"string","bits":32,"offset":56,"locale":"ptBR"},{"name":"SortName_lang_itIT","kind":"string","bits":32,"offset":60,"locale":"itIT"},{"name":"SortName_lang_Unk","kind":"string","bits":32,"offset":64,"locale":"Unk"},{"name":"SortName_lang_Mask","kind":"uint","bits":32,"offset":68}],"source":"WoWDBDefs"},"questxp":{"name":"QuestXP","build":12340,"recordSize":44,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Difficulty_1","kind":"int","bits":32,"offset":4},{"name":"Difficulty_2","kind":"int","bits":32,"offset":8},{"name":"Difficulty_3","kind":"int","bits":32,"offset":12},{"name":"Difficulty_4","kind":"int","bits":32,"offset":16},{"name":"Difficulty_5","kind":"int","bits":32,"offset":20},{"name":"Difficulty_6","kind":"int","bits":32,"offset":24},{"name":"Difficulty_7","kind":"int","bits":32,"offset":28},{"name":"Difficulty_8","kind":"int","bits":32,"offset":32},{"name":"Difficulty_9","kind":"int","bits":32,"offset":36},{"name":"Difficulty_10","kind":"int","bits":32,"offset":40}],"source":"WoWDBDefs"},"randproppoints":{"name":"RandPropPoints","build":12340,"recordSize":64,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Epic_1","kind":"int","bits":32,"offset":4},{"name":"Epic_2","kind":"int","bits":32,"offset":8},{"name":"Epic_3","kind":"int","bits":32,"offset":12},{"name":"Epic_4","kind":"int","bits":32,"offset":16},{"name":"Epic_5","kind":"int","bits":32,"offset":20},{"name":"Superior_1","kind":"int","bits":32,"offset":24},{"name":"Superior_2","kind":"int","bits":32,"offset":28},{"name":"Superior_3","kind":"int","bits":32,"offset":32},{"name":"Superior_4","kind":"int","bits":32,"offset":36},{"name":"Superior_5","kind":"int","bits":32,"offset":40},{"name":"Good_1","kind":"int","bits":32,"offset":44},{"name":"Good_2","kind":"int","bits":32,"offset":48},{"name":"Good_3","kind":"int","bits":32,"offset":52},{"name":"Good_4","kind":"int","bits":32,"offset":56},{"name":"Good_5","kind":"int","bits":32,"offset":60}],"source":"WoWDBDefs"},"resistances":{"name":"Resistances","build":12340,"recordSize":80,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Flags","kind":"int","bits":32,"offset":4},{"name":"FizzleSoundID","kind":"int","bits":32,"offset":8},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":12,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":16,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":20,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":24,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":28,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":32,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":36,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":40,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":44,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":48,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":52,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":56,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":60,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":64,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":68,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":72,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":76}],"source":"WoWDBDefs"},"scalingstatdistribution":{"name":"ScalingStatDistribution","build":12340,"recordSize":88,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"StatID_1","kind":"int","bits":32,"offset":4},{"name":"StatID_2","kind":"int","bits":32,"offset":8},{"name":"StatID_3","kind":"int","bits":32,"offset":12},{"name":"StatID_4","kind":"int","bits":32,"offset":16},{"name":"StatID_5","kind":"int","bits":32,"offset":20},{"name":"StatID_6","kind":"int","bits":32,"offset":24},{"name":"StatID_7","kind":"int","bits":32,"offset":28},{"name":"StatID_8","kind":"int","bits":32,"offset":32},{"name":"StatID_9","kind":"int","bits":32,"offset":36},{"name":"StatID_10","kind":"int","bits":32,"offset":40},{"name":"Bonus_1","kind":"int","bits":32,"offset":44},{"name":"Bonus_2","kind":"int","bits":32,"offset":48},{"name":"Bonus_3","kind":"int","bits":32,"offset":52},{"name":"Bonus_4","kind":"int","bits":32,"offset":56},{"name":"Bonus_5","kind":"int","bits":32,"offset":60},{"name":"Bonus_6","kind":"int","bits":32,"offset":64},{"name":"Bonus_7","kind":"int","bits":32,"offset":68},{"name":"Bonus_8","kind":"int","bits":32,"offset":72},{"name":"Bonus_9","kind":"int","bits":32,"offset":76},{"name":"Bonus_10","kind":"int","bits":32,"offset":80},{"name":"Maxlevel","kind":"int","bits":32,"offset":84}],"source":"WoWDBDefs"},"scalingstatvalues":{"name":"ScalingStatValues","build":12340,"recordSize":96,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Charlevel","kind":"int","bits":32,"offset":4},{"name":"ShoulderBudget","kind":"int","bits":32,"offset":8},{"name":"TrinketBudget","kind":"int","bits":32,"offset":12},{"name":"WeaponBudget1H","kind":"int","bits":32,"offset":16},{"name":"RangedBudget","kind":"int","bits":32,"offset":20},{"name":"ClothShoulderArmor","kind":"int","bits":32,"offset":24},{"name":"LeatherShoulderArmor","kind":"int","bits":32,"offset":28},{"name":"MailShoulderArmor","kind":"int","bits":32,"offset":32},{"name":"PlateShoulderArmor","kind":"int","bits":32,"offset":36},{"name":"WeaponDPS1H","kind":"int","bits":32,"offset":40},{"name":"WeaponDPS2H","kind":"int","bits":32,"offset":44},{"name":"SpellcasterDPS1H","kind":"int","bits":32,"offset":48},{"name":"SpellcasterDPS2H","kind":"int","bits":32,"offset":52},{"name":"RangedDPS","kind":"int","bits":32,"offset":56},{"name":"WandDPS","kind":"int","bits":32,"offset":60},{"name":"SpellPower","kind":"int","bits":32,"offset":64},{"name":"PrimaryBudget","kind":"int","bits":32,"offset":68},{"name":"TertiaryBudget","kind":"int","bits":32,"offset":72},{"name":"ClothCloakArmor","kind":"int","bits":32,"offset":76},{"name":"ClothChestArmor","kind":"int","bits":32,"offset":80},{"name":"LeatherChestArmor","kind":"int","bits":32,"offset":84},{"name":"MailChestArmor","kind":"int","bits":32,"offset":88},{"name":"PlateChestArmor","kind":"int","bits":32,"offset":92}],"source":"WoWDBDefs"},"screeneffect":{"name":"ScreenEffect","build":12340,"recordSize":40,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Name","kind":"string","bits":32,"offset":4},{"name":"Effect","kind":"int","bits":32,"offset":8},{"name":"Param_1","kind":"int","bits":32,"offset":12},{"name":"Param_2","kind":"int","bits":32,"offset":16},{"name":"Param_3","kind":"int","bits":32,"offset":20},{"name":"Param_4","kind":"int","bits":32,"offset":24},{"name":"LightParamsID","kind":"int","bits":32,"offset":28},{"name":"SoundAmbienceID","kind":"int","bits":32,"offset":32},{"name":"ZoneMusicID","kind":"int","bits":32,"offset":36}],"source":"WoWDBDefs"},"servermessages":{"name":"ServerMessages","build":12340,"recordSize":72,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Text_lang_enUS","kind":"string","bits":32,"offset":4,"locale":"enUS"},{"name":"Text_lang_enGB","kind":"string","bits":32,"offset":8,"locale":"enGB"},{"name":"Text_lang_koKR","kind":"string","bits":32,"offset":12,"locale":"koKR"},{"name":"Text_lang_frFR","kind":"string","bits":32,"offset":16,"locale":"frFR"},{"name":"Text_lang_deDE","kind":"string","bits":32,"offset":20,"locale":"deDE"},{"name":"Text_lang_enCN","kind":"string","bits":32,"offset":24,"locale":"enCN"},{"name":"Text_lang_zhCN","kind":"string","bits":32,"offset":28,"locale":"zhCN"},{"name":"Text_lang_enTW","kind":"string","bits":32,"offset":32,"locale":"enTW"},{"name":"Text_lang_zhTW","kind":"string","bits":32,"offset":36,"locale":"zhTW"},{"name":"Text_lang_esES","kind":"string","bits":32,"offset":40,"locale":"esES"},{"name":"Text_lang_esMX","kind":"string","bits":32,"offset":44,"locale":"esMX"},{"name":"Text_lang_ruRU","kind":"string","bits":32,"offset":48,"locale":"ruRU"},{"name":"Text_lang_ptPT","kind":"string","bits":32,"offset":52,"locale":"ptPT"},{"name":"Text_lang_ptBR","kind":"string","bits":32,"offset":56,"locale":"ptBR"},{"name":"Text_lang_itIT","kind":"string","bits":32,"offset":60,"locale":"itIT"},{"name":"Text_lang_Unk","kind":"string","bits":32,"offset":64,"locale":"Unk"},{"name":"Text_lang_Mask","kind":"uint","bits":32,"offset":68}],"source":"WoWDBDefs"},"sheathesoundlookups":{"name":"SheatheSoundLookups","build":12340,"recordSize":28,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"ClassID","kind":"int","bits":32,"offset":4},{"name":"SubclassID","kind":"int","bits":32,"offset":8},{"name":"Material","kind":"int","bits":32,"offset":12},{"name":"CheckMaterial","kind":"int","bits":32,"offset":16},{"name":"SheatheSound","kind":"int","bits":32,"offset":20},{"name":"UnsheatheSound","kind":"int","bits":32,"offset":24}],"source":"WoWDBDefs"},"skillcostsdata":{"name":"SkillCostsData","build":12340,"recordSize":20,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"SkillCostsID","kind":"int","bits":32,"offset":4},{"name":"Cost_1","kind":"int","bits":32,"offset":8},{"name":"Cost_2","kind":"int","bits":32,"offset":12},{"name":"Cost_3","kind":"int","bits":32,"offset":16}],"source":"WoWDBDefs"},"skillline":{"name":"SkillLine","build":12340,"recordSize":224,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"CategoryID","kind":"int","bits":32,"offset":4},{"name":"SkillCostsID","kind":"int","bits":32,"offset":8},{"name":"DisplayName_lang_enUS","kind":"string","bits":32,"offset":12,"locale":"enUS"},{"name":"DisplayName_lang_enGB","kind":"string","bits":32,"offset":16,"locale":"enGB"},{"name":"DisplayName_lang_koKR","kind":"string","bits":32,"offset":20,"locale":"koKR"},{"name":"DisplayName_lang_frFR","kind":"string","bits":32,"offset":24,"locale":"frFR"},{"name":"DisplayName_lang_deDE","kind":"string","bits":32,"offset":28,"locale":"deDE"},{"name":"DisplayName_lang_enCN","kind":"string","bits":32,"offset":32,"locale":"enCN"},{"name":"DisplayName_lang_zhCN","kind":"string","bits":32,"offset":36,"locale":"zhCN"},{"name":"DisplayName_lang_enTW","kind":"string","bits":32,"offset":40,"locale":"enTW"},{"name":"DisplayName_lang_zhTW","kind":"string","bits":32,"offset":44,"locale":"zhTW"},{"name":"DisplayName_lang_esES","kind":"string","bits":32,"offset":48,"locale":"esES"},{"name":"DisplayName_lang_esMX","kind":"string","bits":32,"offset":52,"locale":"esMX"},{"name":"DisplayName_lang_ruRU","kind":"string","bits":32,"offset":56,"locale":"ruRU"},{"name":"DisplayName_lang_ptPT","kind":"string","bits":32,"offset":60,"locale":"ptPT"},{"name":"DisplayName_lang_ptBR","kind":"string","bits":32,"offset":64,"locale":"ptBR"},{"name":"DisplayName_lang_itIT","kind":"string","bits":32,"offset":68,"locale":"itIT"},{"name":"DisplayName_lang_Unk","kind":"string","bits":32,"offset":72,"locale":"Unk"},{"name":"DisplayName_lang_Mask","kind":"uint","bits":32,"offset":76},{"name":"Description_lang_enUS","kind":"string","bits":32,"offset":80,"locale":"enUS"},{"name":"Description_lang_enGB","kind":"string","bits":32,"offset":84,"locale":"enGB"},{"name":"Description_lang_koKR","kind":"string","bits":32,"offset":88,"locale":"koKR"},{"name":"Description_lang_frFR","kind":"string","bits":32,"offset":92,"locale":"frFR"},{"name":"Description_lang_deDE","kind":"string","bits":32,"offset":96,"locale":"deDE"},{"name":"Description_lang_enCN","kind":"string","bits":32,"offset":100,"locale":"enCN"},{"name":"Description_lang_zhCN","kind":"string","bits":32,"offset":104,"locale":"zhCN"},{"name":"Description_lang_enTW","kind":"string","bits":32,"offset":108,"locale":"enTW"},{"name":"Description_lang_zhTW","kind":"string","bits":32,"offset":112,"locale":"zhTW"},{"name":"Description_lang_esES","kind":"string","bits":32,"offset":116,"locale":"esES"},{"name":"Description_lang_esMX","kind":"string","bits":32,"offset":120,"locale":"esMX"},{"name":"Description_lang_ruRU","kind":"string","bits":32,"offset":124,"locale":"ruRU"},{"name":"Description_lang_ptPT","kind":"string","bits":32,"offset":128,"locale":"ptPT"},{"name":"Description_lang_ptBR","kind":"string","bits":32,"offset":132,"locale":"ptBR"},{"name":"Description_lang_itIT","kind":"string","bits":32,"offset":136,"locale":"itIT"},{"name":"Description_lang_Unk","kind":"string","bits":32,"offset":140,"locale":"Unk"},{"name":"Description_lang_Mask","kind":"uint","bits":32,"offset":144},{"name":"SpellIconID","kind":"int","bits":32,"offset":148},{"name":"AlternateVerb_lang_enUS","kind":"string","bits":32,"offset":152,"locale":"enUS"},{"name":"AlternateVerb_lang_enGB","kind":"string","bits":32,"offset":156,"locale":"enGB"},{"name":"AlternateVerb_lang_koKR","kind":"string","bits":32,"offset":160,"locale":"koKR"},{"name":"AlternateVerb_lang_frFR","kind":"string","bits":32,"offset":164,"locale":"frFR"},{"name":"AlternateVerb_lang_deDE","kind":"string","bits":32,"offset":168,"locale":"deDE"},{"name":"AlternateVerb_lang_enCN","kind":"string","bits":32,"offset":172,"locale":"enCN"},{"name":"AlternateVerb_lang_zhCN","kind":"string","bits":32,"offset":176,"locale":"zhCN"},{"name":"AlternateVerb_lang_enTW","kind":"string","bits":32,"offset":180,"locale":"enTW"},{"name":"AlternateVerb_lang_zhTW","kind":"string","bits":32,"offset":184,"locale":"zhTW"},{"name":"AlternateVerb_lang_esES","kind":"string","bits":32,"offset":188,"locale":"esES"},{"name":"AlternateVerb_lang_esMX","kind":"string","bits":32,"offset":192,"locale":"esMX"},{"name":"AlternateVerb_lang_ruRU","kind":"string","bits":32,"offset":196,"locale":"ruRU"},{"name":"AlternateVerb_lang_ptPT","kind":"string","bits":32,"offset":200,"locale":"ptPT"},{"name":"AlternateVerb_lang_ptBR","kind":"string","bits":32,"offset":204,"locale":"ptBR"},{"name":"AlternateVerb_lang_itIT","kind":"string","bits":32,"offset":208,"locale":"itIT"},{"name":"AlternateVerb_lang_Unk","kind":"string","bits":32,"offset":212,"locale":"Unk"},{"name":"AlternateVerb_lang_Mask","kind":"uint","bits":32,"offset":216},{"name":"CanLink","kind":"int","bits":32,"offset":220}],"source":"WoWDBDefs"},"skilllineability":{"name":"SkillLineAbility","build":12340,"recordSize":56,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"SkillLine","kind":"int","bits":32,"offset":4},{"name":"Spell","kind":"int","bits":32,"offset":8},{"name":"RaceMask","kind":"int","bits":32,"offset":12},{"name":"ClassMask","kind":"int","bits":32,"offset":16},{"name":"ExcludeRace","kind":"int","bits":32,"offset":20},{"name":"ExcludeClass","kind":"int","bits":32,"offset":24},{"name":"MinSkillLineRank","kind":"int","bits":32,"offset":28},{"name":"SupercededBySpell","kind":"int","bits":32,"offset":32},{"name":"AcquireMethod","kind":"int","bits":32,"offset":36},{"name":"TrivialSkillLineRankHigh","kind":"int","bits":32,"offset":40},{"name":"TrivialSkillLineRankLow","kind":"int","bits":32,"offset":44},{"name":"CharacterPoints_1","kind":"int","bits":32,"offset":48},{"name":"CharacterPoints_2","kind":"int","bits":32,"offset":52}],"source":"WoWDBDefs"},"skilllinecategory":{"name":"SkillLineCategory","build":12340,"recordSize":76,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":4,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":8,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":12,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":16,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":20,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":24,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":28,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":32,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":36,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":40,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":44,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":48,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":52,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":56,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":60,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":64,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":68},{"name":"SortIndex","kind":"int","bits":32,"offset":72}],"source":"WoWDBDefs"},"skillraceclassinfo":{"name":"SkillRaceClassInfo","build":12340,"recordSize":32,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"SkillID","kind":"int","bits":32,"offset":4},{"name":"RaceMask","kind":"int","bits":32,"offset":8},{"name":"ClassMask","kind":"int","bits":32,"offset":12},{"name":"Flags","kind":"int","bits":32,"offset":16},{"name":"MinLevel","kind":"int","bits":32,"offset":20},{"name":"SkillTierID","kind":"int","bits":32,"offset":24},{"name":"SkillCostIndex","kind":"int","bits":32,"offset":28}],"source":"WoWDBDefs"},"skilltiers":{"name":"SkillTiers","build":12340,"recordSize":132,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Cost_1","kind":"int","bits":32,"offset":4},{"name":"Cost_2","kind":"int","bits":32,"offset":8},{"name":"Cost_3","kind":"int","bits":32,"offset":12},{"name":"Cost_4","kind":"int","bits":32,"offset":16},{"name":"Cost_5","kind":"int","bits":32,"offset":20},{"name":"Cost_6","kind":"int","bits":32,"offset":24},{"name":"Cost_7","kind":"int","bits":32,"offset":28},{"name":"Cost_8","kind":"int","bits":32,"offset":32},{"name":"Cost_9","kind":"int","bits":32,"offset":36},{"name":"Cost_10","kind":"int","bits":32,"offset":40},{"name":"Cost_11","kind":"int","bits":32,"offset":44},{"name":"Cost_12","kind":"int","bits":32,"offset":48},{"name":"Cost_13","kind":"int","bits":32,"offset":52},{"name":"Cost_14","kind":"int","bits":32,"offset":56},{"name":"Cost_15","kind":"int","bits":32,"offset":60},{"name":"Cost_16","kind":"int","bits":32,"offset":64},{"name":"Value_1","kind":"int","bits":32,"offset":68},{"name":"Value_2","kind":"int","bits":32,"offset":72},{"name":"Value_3","kind":"int","bits":32,"offset":76},{"name":"Value_4","kind":"int","bits":32,"offset":80},{"name":"Value_5","kind":"int","bits":32,"offset":84},{"name":"Value_6","kind":"int","bits":32,"offset":88},{"name":"Value_7","kind":"int","bits":32,"offset":92},{"name":"Value_8","kind":"int","bits":32,"offset":96},{"name":"Value_9","kind":"int","bits":32,"offset":100},{"name":"Value_10","kind":"int","bits":32,"offset":104},{"name":"Value_11","kind":"int","bits":32,"offset":108},{"name":"Value_12","kind":"int","bits":32,"offset":112},{"name":"Value_13","kind":"int","bits":32,"offset":116},{"name":"Value_14","kind":"int","bits":32,"offset":120},{"name":"Value_15","kind":"int","bits":32,"offset":124},{"name":"Value_16","kind":"int","bits":32,"offset":128}],"source":"WoWDBDefs"},"soundambience":{"name":"SoundAmbience","build":12340,"recordSize":12,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"AmbienceID_1","kind":"int","bits":32,"offset":4},{"name":"AmbienceID_2","kind":"int","bits":32,"offset":8}],"source":"WoWDBDefs"},"soundemitters":{"name":"SoundEmitters","build":12340,"recordSize":40,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Position_1","kind":"float","bits":32,"offset":4},{"name":"Position_2","kind":"float","bits":32,"offset":8},{"name":"Position_3","kind":"float","bits":32,"offset":12},{"name":"Direction_1","kind":"float","bits":32,"offset":16},{"name":"Direction_2","kind":"float","bits":32,"offset":20},{"name":"Direction_3","kind":"float","bits":32,"offset":24},{"name":"SoundEntryAdvancedID","kind":"int","bits":32,"offset":28},{"name":"MapID","kind":"int","bits":32,"offset":32},{"name":"Name","kind":"string","bits":32,"offset":36}],"source":"WoWDBDefs"},"soundentries":{"name":"SoundEntries","build":12340,"recordSize":120,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"SoundType","kind":"int","bits":32,"offset":4},{"name":"Name","kind":"string","bits":32,"offset":8},{"name":"File_1","kind":"string","bits":32,"offset":12},{"name":"File_2","kind":"string","bits":32,"offset":16},{"name":"File_3","kind":"string","bits":32,"offset":20},{"name":"File_4","kind":"string","bits":32,"offset":24},{"name":"File_5","kind":"string","bits":32,"offset":28},{"name":"File_6","kind":"string","bits":32,"offset":32},{"name":"File_7","kind":"string","bits":32,"offset":36},{"name":"File_8","kind":"string","bits":32,"offset":40},{"name":"File_9","kind":"string","bits":32,"offset":44},{"name":"File_10","kind":"string","bits":32,"offset":48},{"name":"Freq_1","kind":"int","bits":32,"offset":52},{"name":"Freq_2","kind":"int","bits":32,"offset":56},{"name":"Freq_3","kind":"int","bits":32,"offset":60},{"name":"Freq_4","kind":"int","bits":32,"offset":64},{"name":"Freq_5","kind":"int","bits":32,"offset":68},{"name":"Freq_6","kind":"int","bits":32,"offset":72},{"name":"Freq_7","kind":"int","bits":32,"offset":76},{"name":"Freq_8","kind":"int","bits":32,"offset":80},{"name":"Freq_9","kind":"int","bits":32,"offset":84},{"name":"Freq_10","kind":"int","bits":32,"offset":88},{"name":"DirectoryBase","kind":"string","bits":32,"offset":92},{"name":"VolumeFloat","kind":"float","bits":32,"offset":96},{"name":"Flags","kind":"int","bits":32,"offset":100},{"name":"MinDistance","kind":"float","bits":32,"offset":104},{"name":"DistanceCutoff","kind":"float","bits":32,"offset":108},{"name":"EAXDef","kind":"int","bits":32,"offset":112},{"name":"SoundEntriesAdvancedID","kind":"int","bits":32,"offset":116}],"source":"WoWDBDefs"},"soundentriesadvanced":{"name":"SoundEntriesAdvanced","build":12340,"recordSize":96,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"SoundEntryID","kind":"int","bits":32,"offset":4},{"name":"InnerRadius2D","kind":"float","bits":32,"offset":8},{"name":"TimeA","kind":"int","bits":32,"offset":12},{"name":"TimeB","kind":"int","bits":32,"offset":16},{"name":"TimeC","kind":"int","bits":32,"offset":20},{"name":"TimeD","kind":"int","bits":32,"offset":24},{"name":"RandomOffsetRange","kind":"int","bits":32,"offset":28},{"name":"Usage","kind":"int","bits":32,"offset":32},{"name":"TimeIntervalMin","kind":"int","bits":32,"offset":36},{"name":"TimeIntervalMax","kind":"int","bits":32,"offset":40},{"name":"VolumeSliderCategory","kind":"int","bits":32,"offset":44},{"name":"DuckToSFX","kind":"float","bits":32,"offset":48},{"name":"DuckToMusic","kind":"float","bits":32,"offset":52},{"name":"DuckToAmbience","kind":"float","bits":32,"offset":56},{"name":"InnerRadiusOfInfluence","kind":"float","bits":32,"offset":60},{"name":"OuterRadiusOfInfluence","kind":"float","bits":32,"offset":64},{"name":"TimeToDuck","kind":"int","bits":32,"offset":68},{"name":"TimeToUnduck","kind":"int","bits":32,"offset":72},{"name":"InsideAngle","kind":"float","bits":32,"offset":76},{"name":"OutsideAngle","kind":"float","bits":32,"offset":80},{"name":"OutsideVolume","kind":"float","bits":32,"offset":84},{"name":"OuterRadius2D","kind":"float","bits":32,"offset":88},{"name":"Name","kind":"string","bits":32,"offset":92}],"source":"WoWDBDefs"},"soundfilter":{"name":"SoundFilter","build":12340,"recordSize":8,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Name","kind":"string","bits":32,"offset":4}],"source":"WoWDBDefs"},"soundfilterelem":{"name":"SoundFilterElem","build":12340,"recordSize":52,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"SoundFilterID","kind":"int","bits":32,"offset":4},{"name":"OrderIndex","kind":"int","bits":32,"offset":8},{"name":"FilterType","kind":"int","bits":32,"offset":12},{"name":"Params_1","kind":"float","bits":32,"offset":16},{"name":"Params_2","kind":"float","bits":32,"offset":20},{"name":"Params_3","kind":"float","bits":32,"offset":24},{"name":"Params_4","kind":"float","bits":32,"offset":28},{"name":"Params_5","kind":"float","bits":32,"offset":32},{"name":"Params_6","kind":"float","bits":32,"offset":36},{"name":"Params_7","kind":"float","bits":32,"offset":40},{"name":"Params_8","kind":"float","bits":32,"offset":44},{"name":"Params_9","kind":"float","bits":32,"offset":48}],"source":"WoWDBDefs"},"soundproviderpreferences":{"name":"SoundProviderPreferences","build":12340,"recordSize":96,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Description","kind":"string","bits":32,"offset":4},{"name":"Flags","kind":"int","bits":32,"offset":8},{"name":"EAXEnvironmentSelection","kind":"int","bits":32,"offset":12},{"name":"EAXDecayTime","kind":"float","bits":32,"offset":16},{"name":"EAX2EnvironmentSize","kind":"float","bits":32,"offset":20},{"name":"EAX2EnvironmentDiffusion","kind":"float","bits":32,"offset":24},{"name":"EAX2Room","kind":"int","bits":32,"offset":28},{"name":"EAX2RoomHF","kind":"int","bits":32,"offset":32},{"name":"EAX2DecayHFRatio","kind":"float","bits":32,"offset":36},{"name":"EAX2Reflections","kind":"int","bits":32,"offset":40},{"name":"EAX2ReflectionsDelay","kind":"float","bits":32,"offset":44},{"name":"EAX2Reverb","kind":"int","bits":32,"offset":48},{"name":"EAX2ReverbDelay","kind":"float","bits":32,"offset":52},{"name":"EAX2RoomRolloff","kind":"float","bits":32,"offset":56},{"name":"EAX2AirAbsorption","kind":"float","bits":32,"offset":60},{"name":"EAX3RoomLF","kind":"int","bits":32,"offset":64},{"name":"EAX3DecayLFRatio","kind":"float","bits":32,"offset":68},{"name":"EAX3EchoTime","kind":"float","bits":32,"offset":72},{"name":"EAX3EchoDepth","kind":"float","bits":32,"offset":76},{"name":"EAX3ModulationTime","kind":"float","bits":32,"offset":80},{"name":"EAX3ModulationDepth","kind":"float","bits":32,"offset":84},{"name":"EAX3HFReference","kind":"float","bits":32,"offset":88},{"name":"EAX3LFReference","kind":"float","bits":32,"offset":92}],"source":"WoWDBDefs"},"soundsamplepreferences":{"name":"SoundSamplePreferences","build":12340,"recordSize":68,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Field_0_6_0_3592_001","kind":"int","bits":32,"offset":4},{"name":"Field_0_6_0_3592_002","kind":"int","bits":32,"offset":8},{"name":"EAX2SampleRoom","kind":"int","bits":32,"offset":12},{"name":"Field_0_6_0_3592_004","kind":"int","bits":32,"offset":16},{"name":"Field_0_6_0_3592_005","kind":"int","bits":32,"offset":20},{"name":"Field_0_6_0_3592_006","kind":"float","bits":32,"offset":24},{"name":"Field_0_6_0_3592_007","kind":"int","bits":32,"offset":28},{"name":"EAX2SampleOcclusionLFRatio","kind":"float","bits":32,"offset":32},{"name":"EAX2SampleOcclusionRoomRatio","kind":"float","bits":32,"offset":36},{"name":"Field_0_6_0_3592_010","kind":"int","bits":32,"offset":40},{"name":"EAX1EffectLevel","kind":"float","bits":32,"offset":44},{"name":"Field_0_6_0_3592_012","kind":"int","bits":32,"offset":48},{"name":"Field_0_6_0_3592_013","kind":"float","bits":32,"offset":52},{"name":"EAX3SampleExclusion","kind":"float","bits":32,"offset":56},{"name":"Field_0_6_0_3592_015","kind":"float","bits":32,"offset":60},{"name":"Field_0_6_0_3592_016","kind":"int","bits":32,"offset":64}],"source":"WoWDBDefs"},"soundwatertype":{"name":"SoundWaterType","build":12340,"recordSize":16,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"SoundType","kind":"int","bits":32,"offset":4},{"name":"SoundSubtype","kind":"int","bits":32,"offset":8},{"name":"SoundID","kind":"int","bits":32,"offset":12}],"source":"WoWDBDefs"},"spammessages":{"name":"SpamMessages","build":12340,"recordSize":8,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Text","kind":"string","bits":32,"offset":4}],"source":"WoWDBDefs"},"spell":{"name":"Spell","build":12340,"recordSize":936,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Category","kind":"int","bits":32,"offset":4},{"name":"DispelType","kind":"int","bits":32,"offset":8},{"name":"Mechanic","kind":"int","bits":32,"offset":12},{"name":"Attributes","kind":"int","bits":32,"offset":16},{"name":"AttributesEx","kind":"int","bits":32,"offset":20},{"name":"AttributesExB","kind":"int","bits":32,"offset":24},{"name":"AttributesExC","kind":"int","bits":32,"offset":28},{"name":"AttributesExD","kind":"int","bits":32,"offset":32},{"name":"AttributesExE","kind":"int","bits":32,"offset":36},{"name":"AttributesExF","kind":"int","bits":32,"offset":40},{"name":"AttributesExG","kind":"int","bits":32,"offset":44},{"name":"ShapeshiftMask_1","kind":"int","bits":32,"offset":48},{"name":"ShapeshiftMask_2","kind":"int","bits":32,"offset":52},{"name":"ShapeshiftExclude_1","kind":"int","bits":32,"offset":56},{"name":"ShapeshiftExclude_2","kind":"int","bits":32,"offset":60},{"name":"Targets","kind":"int","bits":32,"offset":64},{"name":"TargetCreatureType","kind":"int","bits":32,"offset":68},{"name":"RequiresSpellFocus","kind":"int","bits":32,"offset":72},{"name":"FacingCasterFlags","kind":"int","bits":32,"offset":76},{"name":"CasterAuraState","kind":"int","bits":32,"offset":80},{"name":"TargetAuraState","kind":"int","bits":32,"offset":84},{"name":"ExcludeCasterAuraState","kind":"int","bits":32,"offset":88},{"name":"ExcludeTargetAuraState","kind":"int","bits":32,"offset":92},{"name":"CasterAuraSpell","kind":"int","bits":32,"offset":96},{"name":"TargetAuraSpell","kind":"int","bits":32,"offset":100},{"name":"ExcludeCasterAuraSpell","kind":"int","bits":32,"offset":104},{"name":"ExcludeTargetAuraSpell","kind":"int","bits":32,"offset":108},{"name":"CastingTimeIndex","kind":"int","bits":32,"offset":112},{"name":"RecoveryTime","kind":"int","bits":32,"offset":116},{"name":"CategoryRecoveryTime","kind":"int","bits":32,"offset":120},{"name":"InterruptFlags","kind":"int","bits":32,"offset":124},{"name":"AuraInterruptFlags","kind":"int","bits":32,"offset":128},{"name":"ChannelInterruptFlags","kind":"int","bits":32,"offset":132},{"name":"ProcTypeMask","kind":"int","bits":32,"offset":136},{"name":"ProcChance","kind":"int","bits":32,"offset":140},{"name":"ProcCharges","kind":"int","bits":32,"offset":144},{"name":"MaxLevel","kind":"int","bits":32,"offset":148},{"name":"BaseLevel","kind":"int","bits":32,"offset":152},{"name":"SpellLevel","kind":"int","bits":32,"offset":156},{"name":"DurationIndex","kind":"int","bits":32,"offset":160},{"name":"PowerType","kind":"int","bits":32,"offset":164},{"name":"ManaCost","kind":"int","bits":32,"offset":168},{"name":"ManaCostPerLevel","kind":"int","bits":32,"offset":172},{"name":"ManaPerSecond","kind":"int","bits":32,"offset":176},{"name":"ManaPerSecondPerLevel","kind":"int","bits":32,"offset":180},{"name":"RangeIndex","kind":"int","bits":32,"offset":184},{"name":"Speed","kind":"float","bits":32,"offset":188},{"name":"ModalNextSpell","kind":"int","bits":32,"offset":192},{"name":"CumulativeAura","kind":"int","bits":32,"offset":196},{"name":"Totem_1","kind":"int","bits":32,"offset":200},{"name":"Totem_2","kind":"int","bits":32,"offset":204},{"name":"Reagent_1","kind":"int","bits":32,"offset":208},{"name":"Reagent_2","kind":"int","bits":32,"offset":212},{"name":"Reagent_3","kind":"int","bits":32,"offset":216},{"name":"Reagent_4","kind":"int","bits":32,"offset":220},{"name":"Reagent_5","kind":"int","bits":32,"offset":224},{"name":"Reagent_6","kind":"int","bits":32,"offset":228},{"name":"Reagent_7","kind":"int","bits":32,"offset":232},{"name":"Reagent_8","kind":"int","bits":32,"offset":236},{"name":"ReagentCount_1","kind":"int","bits":32,"offset":240},{"name":"ReagentCount_2","kind":"int","bits":32,"offset":244},{"name":"ReagentCount_3","kind":"int","bits":32,"offset":248},{"name":"ReagentCount_4","kind":"int","bits":32,"offset":252},{"name":"ReagentCount_5","kind":"int","bits":32,"offset":256},{"name":"ReagentCount_6","kind":"int","bits":32,"offset":260},{"name":"ReagentCount_7","kind":"int","bits":32,"offset":264},{"name":"ReagentCount_8","kind":"int","bits":32,"offset":268},{"name":"EquippedItemClass","kind":"int","bits":32,"offset":272},{"name":"EquippedItemSubclass","kind":"int","bits":32,"offset":276},{"name":"EquippedItemInvTypes","kind":"int","bits":32,"offset":280},{"name":"Effect_1","kind":"int","bits":32,"offset":284},{"name":"Effect_2","kind":"int","bits":32,"offset":288},{"name":"Effect_3","kind":"int","bits":32,"offset":292},{"name":"EffectDieSides_1","kind":"int","bits":32,"offset":296},{"name":"EffectDieSides_2","kind":"int","bits":32,"offset":300},{"name":"EffectDieSides_3","kind":"int","bits":32,"offset":304},{"name":"EffectRealPointsPerLevel_1","kind":"float","bits":32,"offset":308},{"name":"EffectRealPointsPerLevel_2","kind":"float","bits":32,"offset":312},{"name":"EffectRealPointsPerLevel_3","kind":"float","bits":32,"offset":316},{"name":"EffectBasePoints_1","kind":"int","bits":32,"offset":320},{"name":"EffectBasePoints_2","kind":"int","bits":32,"offset":324},{"name":"EffectBasePoints_3","kind":"int","bits":32,"offset":328},{"name":"EffectMechanic_1","kind":"int","bits":32,"offset":332},{"name":"EffectMechanic_2","kind":"int","bits":32,"offset":336},{"name":"EffectMechanic_3","kind":"int","bits":32,"offset":340},{"name":"ImplicitTargetA_1","kind":"int","bits":32,"offset":344},{"name":"ImplicitTargetA_2","kind":"int","bits":32,"offset":348},{"name":"ImplicitTargetA_3","kind":"int","bits":32,"offset":352},{"name":"ImplicitTargetB_1","kind":"int","bits":32,"offset":356},{"name":"ImplicitTargetB_2","kind":"int","bits":32,"offset":360},{"name":"ImplicitTargetB_3","kind":"int","bits":32,"offset":364},{"name":"EffectRadiusIndex_1","kind":"int","bits":32,"offset":368},{"name":"EffectRadiusIndex_2","kind":"int","bits":32,"offset":372},{"name":"EffectRadiusIndex_3","kind":"int","bits":32,"offset":376},{"name":"EffectAura_1","kind":"int","bits":32,"offset":380},{"name":"EffectAura_2","kind":"int","bits":32,"offset":384},{"name":"EffectAura_3","kind":"int","bits":32,"offset":388},{"name":"EffectAuraPeriod_1","kind":"int","bits":32,"offset":392},{"name":"EffectAuraPeriod_2","kind":"int","bits":32,"offset":396},{"name":"EffectAuraPeriod_3","kind":"int","bits":32,"offset":400},{"name":"EffectAmplitude_1","kind":"float","bits":32,"offset":404},{"name":"EffectAmplitude_2","kind":"float","bits":32,"offset":408},{"name":"EffectAmplitude_3","kind":"float","bits":32,"offset":412},{"name":"EffectChainTargets_1","kind":"int","bits":32,"offset":416},{"name":"EffectChainTargets_2","kind":"int","bits":32,"offset":420},{"name":"EffectChainTargets_3","kind":"int","bits":32,"offset":424},{"name":"EffectItemType_1","kind":"int","bits":32,"offset":428},{"name":"EffectItemType_2","kind":"int","bits":32,"offset":432},{"name":"EffectItemType_3","kind":"int","bits":32,"offset":436},{"name":"EffectMiscValue_1","kind":"int","bits":32,"offset":440},{"name":"EffectMiscValue_2","kind":"int","bits":32,"offset":444},{"name":"EffectMiscValue_3","kind":"int","bits":32,"offset":448},{"name":"EffectMiscValueB_1","kind":"int","bits":32,"offset":452},{"name":"EffectMiscValueB_2","kind":"int","bits":32,"offset":456},{"name":"EffectMiscValueB_3","kind":"int","bits":32,"offset":460},{"name":"EffectTriggerSpell_1","kind":"int","bits":32,"offset":464},{"name":"EffectTriggerSpell_2","kind":"int","bits":32,"offset":468},{"name":"EffectTriggerSpell_3","kind":"int","bits":32,"offset":472},{"name":"EffectPointsPerCombo_1","kind":"float","bits":32,"offset":476},{"name":"EffectPointsPerCombo_2","kind":"float","bits":32,"offset":480},{"name":"EffectPointsPerCombo_3","kind":"float","bits":32,"offset":484},{"name":"EffectSpellClassMaskA_1","kind":"int","bits":32,"offset":488},{"name":"EffectSpellClassMaskA_2","kind":"int","bits":32,"offset":492},{"name":"EffectSpellClassMaskA_3","kind":"int","bits":32,"offset":496},{"name":"EffectSpellClassMaskB_1","kind":"int","bits":32,"offset":500},{"name":"EffectSpellClassMaskB_2","kind":"int","bits":32,"offset":504},{"name":"EffectSpellClassMaskB_3","kind":"int","bits":32,"offset":508},{"name":"EffectSpellClassMaskC_1","kind":"int","bits":32,"offset":512},{"name":"EffectSpellClassMaskC_2","kind":"int","bits":32,"offset":516},{"name":"EffectSpellClassMaskC_3","kind":"int","bits":32,"offset":520},{"name":"SpellVisualID_1","kind":"int","bits":32,"offset":524},{"name":"SpellVisualID_2","kind":"int","bits":32,"offset":528},{"name":"SpellIconID","kind":"int","bits":32,"offset":532},{"name":"ActiveIconID","kind":"int","bits":32,"offset":536},{"name":"SpellPriority","kind":"int","bits":32,"offset":540},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":544,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":548,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":552,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":556,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":560,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":564,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":568,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":572,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":576,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":580,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":584,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":588,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":592,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":596,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":600,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":604,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":608},{"name":"NameSubtext_lang_enUS","kind":"string","bits":32,"offset":612,"locale":"enUS"},{"name":"NameSubtext_lang_enGB","kind":"string","bits":32,"offset":616,"locale":"enGB"},{"name":"NameSubtext_lang_koKR","kind":"string","bits":32,"offset":620,"locale":"koKR"},{"name":"NameSubtext_lang_frFR","kind":"string","bits":32,"offset":624,"locale":"frFR"},{"name":"NameSubtext_lang_deDE","kind":"string","bits":32,"offset":628,"locale":"deDE"},{"name":"NameSubtext_lang_enCN","kind":"string","bits":32,"offset":632,"locale":"enCN"},{"name":"NameSubtext_lang_zhCN","kind":"string","bits":32,"offset":636,"locale":"zhCN"},{"name":"NameSubtext_lang_enTW","kind":"string","bits":32,"offset":640,"locale":"enTW"},{"name":"NameSubtext_lang_zhTW","kind":"string","bits":32,"offset":644,"locale":"zhTW"},{"name":"NameSubtext_lang_esES","kind":"string","bits":32,"offset":648,"locale":"esES"},{"name":"NameSubtext_lang_esMX","kind":"string","bits":32,"offset":652,"locale":"esMX"},{"name":"NameSubtext_lang_ruRU","kind":"string","bits":32,"offset":656,"locale":"ruRU"},{"name":"NameSubtext_lang_ptPT","kind":"string","bits":32,"offset":660,"locale":"ptPT"},{"name":"NameSubtext_lang_ptBR","kind":"string","bits":32,"offset":664,"locale":"ptBR"},{"name":"NameSubtext_lang_itIT","kind":"string","bits":32,"offset":668,"locale":"itIT"},{"name":"NameSubtext_lang_Unk","kind":"string","bits":32,"offset":672,"locale":"Unk"},{"name":"NameSubtext_lang_Mask","kind":"uint","bits":32,"offset":676},{"name":"Description_lang_enUS","kind":"string","bits":32,"offset":680,"locale":"enUS"},{"name":"Description_lang_enGB","kind":"string","bits":32,"offset":684,"locale":"enGB"},{"name":"Description_lang_koKR","kind":"string","bits":32,"offset":688,"locale":"koKR"},{"name":"Description_lang_frFR","kind":"string","bits":32,"offset":692,"locale":"frFR"},{"name":"Description_lang_deDE","kind":"string","bits":32,"offset":696,"locale":"deDE"},{"name":"Description_lang_enCN","kind":"string","bits":32,"offset":700,"locale":"enCN"},{"name":"Description_lang_zhCN","kind":"string","bits":32,"offset":704,"locale":"zhCN"},{"name":"Description_lang_enTW","kind":"string","bits":32,"offset":708,"locale":"enTW"},{"name":"Description_lang_zhTW","kind":"string","bits":32,"offset":712,"locale":"zhTW"},{"name":"Description_lang_esES","kind":"string","bits":32,"offset":716,"locale":"esES"},{"name":"Description_lang_esMX","kind":"string","bits":32,"offset":720,"locale":"esMX"},{"name":"Description_lang_ruRU","kind":"string","bits":32,"offset":724,"locale":"ruRU"},{"name":"Description_lang_ptPT","kind":"string","bits":32,"offset":728,"locale":"ptPT"},{"name":"Description_lang_ptBR","kind":"string","bits":32,"offset":732,"locale":"ptBR"},{"name":"Description_lang_itIT","kind":"string","bits":32,"offset":736,"locale":"itIT"},{"name":"Description_lang_Unk","kind":"string","bits":32,"offset":740,"locale":"Unk"},{"name":"Description_lang_Mask","kind":"uint","bits":32,"offset":744},{"name":"AuraDescription_lang_enUS","kind":"string","bits":32,"offset":748,"locale":"enUS"},{"name":"AuraDescription_lang_enGB","kind":"string","bits":32,"offset":752,"locale":"enGB"},{"name":"AuraDescription_lang_koKR","kind":"string","bits":32,"offset":756,"locale":"koKR"},{"name":"AuraDescription_lang_frFR","kind":"string","bits":32,"offset":760,"locale":"frFR"},{"name":"AuraDescription_lang_deDE","kind":"string","bits":32,"offset":764,"locale":"deDE"},{"name":"AuraDescription_lang_enCN","kind":"string","bits":32,"offset":768,"locale":"enCN"},{"name":"AuraDescription_lang_zhCN","kind":"string","bits":32,"offset":772,"locale":"zhCN"},{"name":"AuraDescription_lang_enTW","kind":"string","bits":32,"offset":776,"locale":"enTW"},{"name":"AuraDescription_lang_zhTW","kind":"string","bits":32,"offset":780,"locale":"zhTW"},{"name":"AuraDescription_lang_esES","kind":"string","bits":32,"offset":784,"locale":"esES"},{"name":"AuraDescription_lang_esMX","kind":"string","bits":32,"offset":788,"locale":"esMX"},{"name":"AuraDescription_lang_ruRU","kind":"string","bits":32,"offset":792,"locale":"ruRU"},{"name":"AuraDescription_lang_ptPT","kind":"string","bits":32,"offset":796,"locale":"ptPT"},{"name":"AuraDescription_lang_ptBR","kind":"string","bits":32,"offset":800,"locale":"ptBR"},{"name":"AuraDescription_lang_itIT","kind":"string","bits":32,"offset":804,"locale":"itIT"},{"name":"AuraDescription_lang_Unk","kind":"string","bits":32,"offset":808,"locale":"Unk"},{"name":"AuraDescription_lang_Mask","kind":"uint","bits":32,"offset":812},{"name":"ManaCostPct","kind":"int","bits":32,"offset":816},{"name":"StartRecoveryCategory","kind":"int","bits":32,"offset":820},{"name":"StartRecoveryTime","kind":"int","bits":32,"offset":824},{"name":"MaxTargetLevel","kind":"int","bits":32,"offset":828},{"name":"SpellClassSet","kind":"int","bits":32,"offset":832},{"name":"SpellClassMask_1","kind":"int","bits":32,"offset":836},{"name":"SpellClassMask_2","kind":"int","bits":32,"offset":840},{"name":"SpellClassMask_3","kind":"int","bits":32,"offset":844},{"name":"MaxTargets","kind":"int","bits":32,"offset":848},{"name":"DefenseType","kind":"int","bits":32,"offset":852},{"name":"PreventionType","kind":"int","bits":32,"offset":856},{"name":"StanceBarOrder","kind":"int","bits":32,"offset":860},{"name":"EffectChainAmplitude_1","kind":"float","bits":32,"offset":864},{"name":"EffectChainAmplitude_2","kind":"float","bits":32,"offset":868},{"name":"EffectChainAmplitude_3","kind":"float","bits":32,"offset":872},{"name":"MinFactionID","kind":"int","bits":32,"offset":876},{"name":"MinReputation","kind":"int","bits":32,"offset":880},{"name":"RequiredAuraVision","kind":"int","bits":32,"offset":884},{"name":"RequiredTotemCategoryID_1","kind":"int","bits":32,"offset":888},{"name":"RequiredTotemCategoryID_2","kind":"int","bits":32,"offset":892},{"name":"RequiredAreasID","kind":"int","bits":32,"offset":896},{"name":"SchoolMask","kind":"int","bits":32,"offset":900},{"name":"RuneCostID","kind":"int","bits":32,"offset":904},{"name":"SpellMissileID","kind":"int","bits":32,"offset":908},{"name":"PowerDisplayID","kind":"int","bits":32,"offset":912},{"name":"EffectBonusCoefficient_1","kind":"float","bits":32,"offset":916},{"name":"EffectBonusCoefficient_2","kind":"float","bits":32,"offset":920},{"name":"EffectBonusCoefficient_3","kind":"float","bits":32,"offset":924},{"name":"DescriptionVariablesID","kind":"int","bits":32,"offset":928},{"name":"Difficulty","kind":"int","bits":32,"offset":932}],"source":"WoWDBDefs"},"spellcasttimes":{"name":"SpellCastTimes","build":12340,"recordSize":16,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Base","kind":"int","bits":32,"offset":4},{"name":"PerLevel","kind":"int","bits":32,"offset":8},{"name":"Minimum","kind":"int","bits":32,"offset":12}],"source":"WoWDBDefs"},"spellcategory":{"name":"SpellCategory","build":12340,"recordSize":8,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Flags","kind":"int","bits":32,"offset":4}],"source":"WoWDBDefs"},"spellchaineffects":{"name":"SpellChainEffects","build":12340,"recordSize":177,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"AvgSegLen","kind":"float","bits":32,"offset":4},{"name":"Width","kind":"float","bits":32,"offset":8},{"name":"NoiseScale","kind":"float","bits":32,"offset":12},{"name":"TexCoordScale","kind":"float","bits":32,"offset":16},{"name":"SegDuration","kind":"int","bits":32,"offset":20},{"name":"SegDelay","kind":"int","bits":32,"offset":24},{"name":"Texture","kind":"string","bits":32,"offset":28},{"name":"Flags","kind":"int","bits":32,"offset":32},{"name":"JointCount","kind":"int","bits":32,"offset":36},{"name":"JointOffsetRadius","kind":"float","bits":32,"offset":40},{"name":"JointsPerMinorJoint","kind":"int","bits":32,"offset":44},{"name":"MinorJointsPerMajorJoint","kind":"int","bits":32,"offset":48},{"name":"MinorJointScale","kind":"float","bits":32,"offset":52},{"name":"MajorJointScale","kind":"float","bits":32,"offset":56},{"name":"JointMoveSpeed","kind":"float","bits":32,"offset":60},{"name":"JointSmoothness","kind":"float","bits":32,"offset":64},{"name":"MinDurationBetweenJointJumps","kind":"float","bits":32,"offset":68},{"name":"MaxDurationBetweenJointJumps","kind":"float","bits":32,"offset":72},{"name":"WaveHeight","kind":"float","bits":32,"offset":76},{"name":"WaveFreq","kind":"float","bits":32,"offset":80},{"name":"WaveSpeed","kind":"float","bits":32,"offset":84},{"name":"MinWaveAngle","kind":"float","bits":32,"offset":88},{"name":"MaxWaveAngle","kind":"float","bits":32,"offset":92},{"name":"MinWaveSpin","kind":"float","bits":32,"offset":96},{"name":"MaxWaveSpin","kind":"float","bits":32,"offset":100},{"name":"ArcHeight","kind":"float","bits":32,"offset":104},{"name":"MinArcAngle","kind":"float","bits":32,"offset":108},{"name":"MaxArcAngle","kind":"float","bits":32,"offset":112},{"name":"MinArcSpin","kind":"float","bits":32,"offset":116},{"name":"MaxArcSpin","kind":"float","bits":32,"offset":120},{"name":"DelayBetweenEffects","kind":"float","bits":32,"offset":124},{"name":"MinFlickerOnDuration","kind":"float","bits":32,"offset":128},{"name":"MaxFlickerOnDuration","kind":"float","bits":32,"offset":132},{"name":"MinFlickerOffDuration","kind":"float","bits":32,"offset":136},{"name":"MaxFlickerOffDuration","kind":"float","bits":32,"offset":140},{"name":"PulseSpeed","kind":"float","bits":32,"offset":144},{"name":"PulseOnLength","kind":"float","bits":32,"offset":148},{"name":"PulseFadeLength","kind":"float","bits":32,"offset":152},{"name":"Alpha","kind":"int","bits":8,"offset":156},{"name":"Red","kind":"int","bits":8,"offset":157},{"name":"Green","kind":"int","bits":8,"offset":158},{"name":"Blue","kind":"int","bits":8,"offset":159},{"name":"BlendMode","kind":"int","bits":8,"offset":160},{"name":"Combo","kind":"string","bits":32,"offset":161},{"name":"RenderLayer","kind":"int","bits":32,"offset":165},{"name":"TextureLength","kind":"float","bits":32,"offset":169},{"name":"WavePhase","kind":"float","bits":32,"offset":173}],"source":"WoWDBDefs"},"spelldescriptionvariables":{"name":"SpellDescriptionVariables","build":12340,"recordSize":8,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Variables","kind":"string","bits":32,"offset":4}],"source":"WoWDBDefs"},"spelldifficulty":{"name":"SpellDifficulty","build":12340,"recordSize":20,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"DifficultySpellID_1","kind":"int","bits":32,"offset":4},{"name":"DifficultySpellID_2","kind":"int","bits":32,"offset":8},{"name":"DifficultySpellID_3","kind":"int","bits":32,"offset":12},{"name":"DifficultySpellID_4","kind":"int","bits":32,"offset":16}],"source":"WoWDBDefs"},"spelldispeltype":{"name":"SpellDispelType","build":12340,"recordSize":84,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":4,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":8,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":12,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":16,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":20,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":24,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":28,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":32,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":36,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":40,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":44,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":48,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":52,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":56,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":60,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":64,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":68},{"name":"Mask","kind":"int","bits":32,"offset":72},{"name":"ImmunityPossible","kind":"int","bits":32,"offset":76},{"name":"InternalName","kind":"string","bits":32,"offset":80}],"source":"WoWDBDefs"},"spellduration":{"name":"SpellDuration","build":12340,"recordSize":16,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Duration","kind":"int","bits":32,"offset":4},{"name":"DurationPerLevel","kind":"int","bits":32,"offset":8},{"name":"MaxDuration","kind":"int","bits":32,"offset":12}],"source":"WoWDBDefs"},"spelleffectcamerashakes":{"name":"SpellEffectCameraShakes","build":12340,"recordSize":16,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"CameraShake_1","kind":"int","bits":32,"offset":4},{"name":"CameraShake_2","kind":"int","bits":32,"offset":8},{"name":"CameraShake_3","kind":"int","bits":32,"offset":12}],"source":"WoWDBDefs"},"spellfocusobject":{"name":"SpellFocusObject","build":12340,"recordSize":72,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":4,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":8,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":12,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":16,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":20,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":24,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":28,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":32,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":36,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":40,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":44,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":48,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":52,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":56,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":60,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":64,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":68}],"source":"WoWDBDefs"},"spellicon":{"name":"SpellIcon","build":12340,"recordSize":8,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"TextureFilename","kind":"string","bits":32,"offset":4}],"source":"WoWDBDefs"},"spellitemenchantment":{"name":"SpellItemEnchantment","build":12340,"recordSize":152,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Charges","kind":"int","bits":32,"offset":4},{"name":"Effect_1","kind":"int","bits":32,"offset":8},{"name":"Effect_2","kind":"int","bits":32,"offset":12},{"name":"Effect_3","kind":"int","bits":32,"offset":16},{"name":"EffectPointsMin_1","kind":"int","bits":32,"offset":20},{"name":"EffectPointsMin_2","kind":"int","bits":32,"offset":24},{"name":"EffectPointsMin_3","kind":"int","bits":32,"offset":28},{"name":"EffectPointsMax_1","kind":"int","bits":32,"offset":32},{"name":"EffectPointsMax_2","kind":"int","bits":32,"offset":36},{"name":"EffectPointsMax_3","kind":"int","bits":32,"offset":40},{"name":"EffectArg_1","kind":"int","bits":32,"offset":44},{"name":"EffectArg_2","kind":"int","bits":32,"offset":48},{"name":"EffectArg_3","kind":"int","bits":32,"offset":52},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":56,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":60,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":64,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":68,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":72,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":76,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":80,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":84,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":88,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":92,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":96,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":100,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":104,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":108,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":112,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":116,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":120},{"name":"ItemVisual","kind":"int","bits":32,"offset":124},{"name":"Flags","kind":"int","bits":32,"offset":128},{"name":"Src_itemID","kind":"int","bits":32,"offset":132},{"name":"Condition_ID","kind":"int","bits":32,"offset":136},{"name":"RequiredSkillID","kind":"int","bits":32,"offset":140},{"name":"RequiredSkillRank","kind":"int","bits":32,"offset":144},{"name":"MinLevel","kind":"int","bits":32,"offset":148}],"source":"WoWDBDefs"},"spellitemenchantmentcondition":{"name":"SpellItemEnchantmentCondition","build":12340,"recordSize":64,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Lt_operandType_1","kind":"int","bits":8,"offset":4},{"name":"Lt_operandType_2","kind":"int","bits":8,"offset":5},{"name":"Lt_operandType_3","kind":"int","bits":8,"offset":6},{"name":"Lt_operandType_4","kind":"int","bits":8,"offset":7},{"name":"Lt_operandType_5","kind":"int","bits":8,"offset":8},{"name":"Lt_operand_1","kind":"int","bits":32,"offset":9},{"name":"Lt_operand_2","kind":"int","bits":32,"offset":13},{"name":"Lt_operand_3","kind":"int","bits":32,"offset":17},{"name":"Lt_operand_4","kind":"int","bits":32,"offset":21},{"name":"Lt_operand_5","kind":"int","bits":32,"offset":25},{"name":"Operator_1","kind":"int","bits":8,"offset":29},{"name":"Operator_2","kind":"int","bits":8,"offset":30},{"name":"Operator_3","kind":"int","bits":8,"offset":31},{"name":"Operator_4","kind":"int","bits":8,"offset":32},{"name":"Operator_5","kind":"int","bits":8,"offset":33},{"name":"Rt_operandType_1","kind":"int","bits":8,"offset":34},{"name":"Rt_operandType_2","kind":"int","bits":8,"offset":35},{"name":"Rt_operandType_3","kind":"int","bits":8,"offset":36},{"name":"Rt_operandType_4","kind":"int","bits":8,"offset":37},{"name":"Rt_operandType_5","kind":"int","bits":8,"offset":38},{"name":"Rt_operand_1","kind":"int","bits":32,"offset":39},{"name":"Rt_operand_2","kind":"int","bits":32,"offset":43},{"name":"Rt_operand_3","kind":"int","bits":32,"offset":47},{"name":"Rt_operand_4","kind":"int","bits":32,"offset":51},{"name":"Rt_operand_5","kind":"int","bits":32,"offset":55},{"name":"Logic_1","kind":"int","bits":8,"offset":59},{"name":"Logic_2","kind":"int","bits":8,"offset":60},{"name":"Logic_3","kind":"int","bits":8,"offset":61},{"name":"Logic_4","kind":"int","bits":8,"offset":62},{"name":"Logic_5","kind":"int","bits":8,"offset":63}],"source":"WoWDBDefs"},"spellmechanic":{"name":"SpellMechanic","build":12340,"recordSize":72,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"StateName_lang_enUS","kind":"string","bits":32,"offset":4,"locale":"enUS"},{"name":"StateName_lang_enGB","kind":"string","bits":32,"offset":8,"locale":"enGB"},{"name":"StateName_lang_koKR","kind":"string","bits":32,"offset":12,"locale":"koKR"},{"name":"StateName_lang_frFR","kind":"string","bits":32,"offset":16,"locale":"frFR"},{"name":"StateName_lang_deDE","kind":"string","bits":32,"offset":20,"locale":"deDE"},{"name":"StateName_lang_enCN","kind":"string","bits":32,"offset":24,"locale":"enCN"},{"name":"StateName_lang_zhCN","kind":"string","bits":32,"offset":28,"locale":"zhCN"},{"name":"StateName_lang_enTW","kind":"string","bits":32,"offset":32,"locale":"enTW"},{"name":"StateName_lang_zhTW","kind":"string","bits":32,"offset":36,"locale":"zhTW"},{"name":"StateName_lang_esES","kind":"string","bits":32,"offset":40,"locale":"esES"},{"name":"StateName_lang_esMX","kind":"string","bits":32,"offset":44,"locale":"esMX"},{"name":"StateName_lang_ruRU","kind":"string","bits":32,"offset":48,"locale":"ruRU"},{"name":"StateName_lang_ptPT","kind":"string","bits":32,"offset":52,"locale":"ptPT"},{"name":"StateName_lang_ptBR","kind":"string","bits":32,"offset":56,"locale":"ptBR"},{"name":"StateName_lang_itIT","kind":"string","bits":32,"offset":60,"locale":"itIT"},{"name":"StateName_lang_Unk","kind":"string","bits":32,"offset":64,"locale":"Unk"},{"name":"StateName_lang_Mask","kind":"uint","bits":32,"offset":68}],"source":"WoWDBDefs"},"spellmissile":{"name":"SpellMissile","build":12340,"recordSize":60,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Flags","kind":"int","bits":32,"offset":4},{"name":"DefaultPitchMin","kind":"float","bits":32,"offset":8},{"name":"DefaultPitchMax","kind":"float","bits":32,"offset":12},{"name":"DefaultSpeedMin","kind":"float","bits":32,"offset":16},{"name":"DefaultSpeedMax","kind":"float","bits":32,"offset":20},{"name":"RandomizeFacingMin","kind":"float","bits":32,"offset":24},{"name":"RandomizeFacingMax","kind":"float","bits":32,"offset":28},{"name":"RandomizePitchMin","kind":"float","bits":32,"offset":32},{"name":"RandomizePitchMax","kind":"float","bits":32,"offset":36},{"name":"RandomizeSpeedMin","kind":"float","bits":32,"offset":40},{"name":"RandomizeSpeedMax","kind":"float","bits":32,"offset":44},{"name":"Gravity","kind":"float","bits":32,"offset":48},{"name":"MaxDuration","kind":"float","bits":32,"offset":52},{"name":"CollisionRadius","kind":"float","bits":32,"offset":56}],"source":"WoWDBDefs"},"spellmissilemotion":{"name":"SpellMissileMotion","build":12340,"recordSize":20,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Name","kind":"string","bits":32,"offset":4},{"name":"ScriptBody","kind":"string","bits":32,"offset":8},{"name":"Flags","kind":"int","bits":32,"offset":12},{"name":"MissileCount","kind":"int","bits":32,"offset":16}],"source":"WoWDBDefs"},"spellradius":{"name":"SpellRadius","build":12340,"recordSize":16,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Radius","kind":"float","bits":32,"offset":4},{"name":"RadiusPerLevel","kind":"float","bits":32,"offset":8},{"name":"RadiusMax","kind":"float","bits":32,"offset":12}],"source":"WoWDBDefs"},"spellrange":{"name":"SpellRange","build":12340,"recordSize":160,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"RangeMin_1","kind":"float","bits":32,"offset":4},{"name":"RangeMin_2","kind":"float","bits":32,"offset":8},{"name":"RangeMax_1","kind":"float","bits":32,"offset":12},{"name":"RangeMax_2","kind":"float","bits":32,"offset":16},{"name":"Flags","kind":"int","bits":32,"offset":20},{"name":"DisplayName_lang_enUS","kind":"string","bits":32,"offset":24,"locale":"enUS"},{"name":"DisplayName_lang_enGB","kind":"string","bits":32,"offset":28,"locale":"enGB"},{"name":"DisplayName_lang_koKR","kind":"string","bits":32,"offset":32,"locale":"koKR"},{"name":"DisplayName_lang_frFR","kind":"string","bits":32,"offset":36,"locale":"frFR"},{"name":"DisplayName_lang_deDE","kind":"string","bits":32,"offset":40,"locale":"deDE"},{"name":"DisplayName_lang_enCN","kind":"string","bits":32,"offset":44,"locale":"enCN"},{"name":"DisplayName_lang_zhCN","kind":"string","bits":32,"offset":48,"locale":"zhCN"},{"name":"DisplayName_lang_enTW","kind":"string","bits":32,"offset":52,"locale":"enTW"},{"name":"DisplayName_lang_zhTW","kind":"string","bits":32,"offset":56,"locale":"zhTW"},{"name":"DisplayName_lang_esES","kind":"string","bits":32,"offset":60,"locale":"esES"},{"name":"DisplayName_lang_esMX","kind":"string","bits":32,"offset":64,"locale":"esMX"},{"name":"DisplayName_lang_ruRU","kind":"string","bits":32,"offset":68,"locale":"ruRU"},{"name":"DisplayName_lang_ptPT","kind":"string","bits":32,"offset":72,"locale":"ptPT"},{"name":"DisplayName_lang_ptBR","kind":"string","bits":32,"offset":76,"locale":"ptBR"},{"name":"DisplayName_lang_itIT","kind":"string","bits":32,"offset":80,"locale":"itIT"},{"name":"DisplayName_lang_Unk","kind":"string","bits":32,"offset":84,"locale":"Unk"},{"name":"DisplayName_lang_Mask","kind":"uint","bits":32,"offset":88},{"name":"DisplayNameShort_lang_enUS","kind":"string","bits":32,"offset":92,"locale":"enUS"},{"name":"DisplayNameShort_lang_enGB","kind":"string","bits":32,"offset":96,"locale":"enGB"},{"name":"DisplayNameShort_lang_koKR","kind":"string","bits":32,"offset":100,"locale":"koKR"},{"name":"DisplayNameShort_lang_frFR","kind":"string","bits":32,"offset":104,"locale":"frFR"},{"name":"DisplayNameShort_lang_deDE","kind":"string","bits":32,"offset":108,"locale":"deDE"},{"name":"DisplayNameShort_lang_enCN","kind":"string","bits":32,"offset":112,"locale":"enCN"},{"name":"DisplayNameShort_lang_zhCN","kind":"string","bits":32,"offset":116,"locale":"zhCN"},{"name":"DisplayNameShort_lang_enTW","kind":"string","bits":32,"offset":120,"locale":"enTW"},{"name":"DisplayNameShort_lang_zhTW","kind":"string","bits":32,"offset":124,"locale":"zhTW"},{"name":"DisplayNameShort_lang_esES","kind":"string","bits":32,"offset":128,"locale":"esES"},{"name":"DisplayNameShort_lang_esMX","kind":"string","bits":32,"offset":132,"locale":"esMX"},{"name":"DisplayNameShort_lang_ruRU","kind":"string","bits":32,"offset":136,"locale":"ruRU"},{"name":"DisplayNameShort_lang_ptPT","kind":"string","bits":32,"offset":140,"locale":"ptPT"},{"name":"DisplayNameShort_lang_ptBR","kind":"string","bits":32,"offset":144,"locale":"ptBR"},{"name":"DisplayNameShort_lang_itIT","kind":"string","bits":32,"offset":148,"locale":"itIT"},{"name":"DisplayNameShort_lang_Unk","kind":"string","bits":32,"offset":152,"locale":"Unk"},{"name":"DisplayNameShort_lang_Mask","kind":"uint","bits":32,"offset":156}],"source":"WoWDBDefs"},"spellrunecost":{"name":"SpellRuneCost","build":12340,"recordSize":20,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Blood","kind":"int","bits":32,"offset":4},{"name":"Unholy","kind":"int","bits":32,"offset":8},{"name":"Frost","kind":"int","bits":32,"offset":12},{"name":"RunicPower","kind":"int","bits":32,"offset":16}],"source":"WoWDBDefs"},"spellshapeshiftform":{"name":"SpellShapeshiftForm","build":12340,"recordSize":140,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"BonusActionBar","kind":"int","bits":32,"offset":4},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":8,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":12,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":16,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":20,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":24,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":28,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":32,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":36,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":40,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":44,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":48,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":52,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":56,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":60,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":64,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":68,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":72},{"name":"Flags","kind":"int","bits":32,"offset":76},{"name":"CreatureType","kind":"int","bits":32,"offset":80},{"name":"AttackIconID","kind":"int","bits":32,"offset":84},{"name":"CombatRoundTime","kind":"int","bits":32,"offset":88},{"name":"CreatureDisplayID_1","kind":"int","bits":32,"offset":92},{"name":"CreatureDisplayID_2","kind":"int","bits":32,"offset":96},{"name":"CreatureDisplayID_3","kind":"int","bits":32,"offset":100},{"name":"CreatureDisplayID_4","kind":"int","bits":32,"offset":104},{"name":"PresetSpellID_1","kind":"int","bits":32,"offset":108},{"name":"PresetSpellID_2","kind":"int","bits":32,"offset":112},{"name":"PresetSpellID_3","kind":"int","bits":32,"offset":116},{"name":"PresetSpellID_4","kind":"int","bits":32,"offset":120},{"name":"PresetSpellID_5","kind":"int","bits":32,"offset":124},{"name":"PresetSpellID_6","kind":"int","bits":32,"offset":128},{"name":"PresetSpellID_7","kind":"int","bits":32,"offset":132},{"name":"PresetSpellID_8","kind":"int","bits":32,"offset":136}],"source":"WoWDBDefs"},"spellvisual":{"name":"SpellVisual","build":12340,"recordSize":128,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"PrecastKit","kind":"int","bits":32,"offset":4},{"name":"CastKit","kind":"int","bits":32,"offset":8},{"name":"ImpactKit","kind":"int","bits":32,"offset":12},{"name":"StateKit","kind":"int","bits":32,"offset":16},{"name":"StateDoneKit","kind":"int","bits":32,"offset":20},{"name":"ChannelKit","kind":"int","bits":32,"offset":24},{"name":"HasMissile","kind":"int","bits":32,"offset":28},{"name":"MissileModel","kind":"int","bits":32,"offset":32},{"name":"MissilePathType","kind":"int","bits":32,"offset":36},{"name":"MissileDestinationAttachment","kind":"int","bits":32,"offset":40},{"name":"MissileSound","kind":"int","bits":32,"offset":44},{"name":"AnimEventSoundID","kind":"int","bits":32,"offset":48},{"name":"Flags","kind":"int","bits":32,"offset":52},{"name":"CasterImpactKit","kind":"int","bits":32,"offset":56},{"name":"TargetImpactKit","kind":"int","bits":32,"offset":60},{"name":"MissileAttachment","kind":"int","bits":32,"offset":64},{"name":"MissileFollowGroundHeight","kind":"int","bits":32,"offset":68},{"name":"MissileFollowGroundDropSpeed","kind":"int","bits":32,"offset":72},{"name":"MissileFollowGroundApproach","kind":"int","bits":32,"offset":76},{"name":"MissileFollowGroundFlags","kind":"int","bits":32,"offset":80},{"name":"MissileMotion","kind":"int","bits":32,"offset":84},{"name":"MissileTargetingKit","kind":"int","bits":32,"offset":88},{"name":"InstantAreaKit","kind":"int","bits":32,"offset":92},{"name":"ImpactAreaKit","kind":"int","bits":32,"offset":96},{"name":"PersistentAreaKit","kind":"int","bits":32,"offset":100},{"name":"MissileCastOffset_1","kind":"float","bits":32,"offset":104},{"name":"MissileCastOffset_2","kind":"float","bits":32,"offset":108},{"name":"MissileCastOffset_3","kind":"float","bits":32,"offset":112},{"name":"MissileImpactOffset_1","kind":"float","bits":32,"offset":116},{"name":"MissileImpactOffset_2","kind":"float","bits":32,"offset":120},{"name":"MissileImpactOffset_3","kind":"float","bits":32,"offset":124}],"source":"WoWDBDefs"},"spellvisualeffectname":{"name":"SpellVisualEffectName","build":12340,"recordSize":28,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Name","kind":"string","bits":32,"offset":4},{"name":"FileName","kind":"string","bits":32,"offset":8},{"name":"AreaEffectSize","kind":"float","bits":32,"offset":12},{"name":"Scale","kind":"float","bits":32,"offset":16},{"name":"MinAllowedScale","kind":"float","bits":32,"offset":20},{"name":"MaxAllowedScale","kind":"float","bits":32,"offset":24}],"source":"WoWDBDefs"},"spellvisualkit":{"name":"SpellVisualKit","build":12340,"recordSize":152,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"StartAnimID","kind":"int","bits":32,"offset":4},{"name":"AnimID","kind":"int","bits":32,"offset":8},{"name":"HeadEffect","kind":"int","bits":32,"offset":12},{"name":"ChestEffect","kind":"int","bits":32,"offset":16},{"name":"BaseEffect","kind":"int","bits":32,"offset":20},{"name":"LeftHandEffect","kind":"int","bits":32,"offset":24},{"name":"RightHandEffect","kind":"int","bits":32,"offset":28},{"name":"BreathEffect","kind":"int","bits":32,"offset":32},{"name":"LeftWeaponEffect","kind":"int","bits":32,"offset":36},{"name":"RightWeaponEffect","kind":"int","bits":32,"offset":40},{"name":"SpecialEffect_1","kind":"int","bits":32,"offset":44},{"name":"SpecialEffect_2","kind":"int","bits":32,"offset":48},{"name":"SpecialEffect_3","kind":"int","bits":32,"offset":52},{"name":"WorldEffect","kind":"int","bits":32,"offset":56},{"name":"SoundID","kind":"int","bits":32,"offset":60},{"name":"ShakeID","kind":"int","bits":32,"offset":64},{"name":"CharProc_1","kind":"int","bits":32,"offset":68},{"name":"CharProc_2","kind":"int","bits":32,"offset":72},{"name":"CharProc_3","kind":"int","bits":32,"offset":76},{"name":"CharProc_4","kind":"int","bits":32,"offset":80},{"name":"CharParamZero_1","kind":"float","bits":32,"offset":84},{"name":"CharParamZero_2","kind":"float","bits":32,"offset":88},{"name":"CharParamZero_3","kind":"float","bits":32,"offset":92},{"name":"CharParamZero_4","kind":"float","bits":32,"offset":96},{"name":"CharParamOne_1","kind":"float","bits":32,"offset":100},{"name":"CharParamOne_2","kind":"float","bits":32,"offset":104},{"name":"CharParamOne_3","kind":"float","bits":32,"offset":108},{"name":"CharParamOne_4","kind":"float","bits":32,"offset":112},{"name":"CharParamTwo_1","kind":"float","bits":32,"offset":116},{"name":"CharParamTwo_2","kind":"float","bits":32,"offset":120},{"name":"CharParamTwo_3","kind":"float","bits":32,"offset":124},{"name":"CharParamTwo_4","kind":"float","bits":32,"offset":128},{"name":"CharParamThree_1","kind":"float","bits":32,"offset":132},{"name":"CharParamThree_2","kind":"float","bits":32,"offset":136},{"name":"CharParamThree_3","kind":"float","bits":32,"offset":140},{"name":"CharParamThree_4","kind":"float","bits":32,"offset":144},{"name":"Flags","kind":"int","bits":32,"offset":148}],"source":"WoWDBDefs"},"spellvisualkitareamodel":{"name":"SpellVisualKitAreaModel","build":12340,"recordSize":12,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Name","kind":"string","bits":32,"offset":4},{"name":"EnumID","kind":"int","bits":32,"offset":8}],"source":"WoWDBDefs"},"spellvisualkitmodelattach":{"name":"SpellVisualKitModelAttach","build":12340,"recordSize":40,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"ParentSpellVisualKitID","kind":"int","bits":32,"offset":4},{"name":"SpellVisualEffectNameID","kind":"int","bits":32,"offset":8},{"name":"AttachmentID","kind":"int","bits":32,"offset":12},{"name":"Offset_1","kind":"float","bits":32,"offset":16},{"name":"Offset_2","kind":"float","bits":32,"offset":20},{"name":"Offset_3","kind":"float","bits":32,"offset":24},{"name":"Yaw","kind":"float","bits":32,"offset":28},{"name":"Pitch","kind":"float","bits":32,"offset":32},{"name":"Roll","kind":"float","bits":32,"offset":36}],"source":"WoWDBDefs"},"spellvisualprecasttransitions":{"name":"SpellVisualPrecastTransitions","build":12340,"recordSize":12,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"PrecastLoadAnimName","kind":"string","bits":32,"offset":4},{"name":"PrecastHoldAnimName","kind":"string","bits":32,"offset":8}],"source":"WoWDBDefs"},"stableslotprices":{"name":"StableSlotPrices","build":12340,"recordSize":8,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Cost","kind":"int","bits":32,"offset":4}],"source":"WoWDBDefs"},"startup_strings":{"name":"Startup_Strings","build":12340,"recordSize":76,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Name","kind":"string","bits":32,"offset":4},{"name":"Message_lang_enUS","kind":"string","bits":32,"offset":8,"locale":"enUS"},{"name":"Message_lang_enGB","kind":"string","bits":32,"offset":12,"locale":"enGB"},{"name":"Message_lang_koKR","kind":"string","bits":32,"offset":16,"locale":"koKR"},{"name":"Message_lang_frFR","kind":"string","bits":32,"offset":20,"locale":"frFR"},{"name":"Message_lang_deDE","kind":"string","bits":32,"offset":24,"locale":"deDE"},{"name":"Message_lang_enCN","kind":"string","bits":32,"offset":28,"locale":"enCN"},{"name":"Message_lang_zhCN","kind":"string","bits":32,"offset":32,"locale":"zhCN"},{"name":"Message_lang_enTW","kind":"string","bits":32,"offset":36,"locale":"enTW"},{"name":"Message_lang_zhTW","kind":"string","bits":32,"offset":40,"locale":"zhTW"},{"name":"Message_lang_esES","kind":"string","bits":32,"offset":44,"locale":"esES"},{"name":"Message_lang_esMX","kind":"string","bits":32,"offset":48,"locale":"esMX"},{"name":"Message_lang_ruRU","kind":"string","bits":32,"offset":52,"locale":"ruRU"},{"name":"Message_lang_ptPT","kind":"string","bits":32,"offset":56,"locale":"ptPT"},{"name":"Message_lang_ptBR","kind":"string","bits":32,"offset":60,"locale":"ptBR"},{"name":"Message_lang_itIT","kind":"string","bits":32,"offset":64,"locale":"itIT"},{"name":"Message_lang_Unk","kind":"string","bits":32,"offset":68,"locale":"Unk"},{"name":"Message_lang_Mask","kind":"uint","bits":32,"offset":72}],"source":"WoWDBDefs"},"stationery":{"name":"Stationery","build":12340,"recordSize":16,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"ItemID","kind":"int","bits":32,"offset":4},{"name":"Texture","kind":"string","bits":32,"offset":8},{"name":"Flags","kind":"int","bits":32,"offset":12}],"source":"WoWDBDefs"},"stringlookups":{"name":"StringLookups","build":12340,"recordSize":8,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"String","kind":"string","bits":32,"offset":4}],"source":"WoWDBDefs"},"summonproperties":{"name":"SummonProperties","build":12340,"recordSize":24,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Control","kind":"int","bits":32,"offset":4},{"name":"Faction","kind":"int","bits":32,"offset":8},{"name":"Title","kind":"int","bits":32,"offset":12},{"name":"Slot","kind":"int","bits":32,"offset":16},{"name":"Flags","kind":"int","bits":32,"offset":20}],"source":"WoWDBDefs"},"talent":{"name":"Talent","build":12340,"recordSize":92,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"TabID","kind":"int","bits":32,"offset":4},{"name":"TierID","kind":"int","bits":32,"offset":8},{"name":"ColumnIndex","kind":"int","bits":32,"offset":12},{"name":"SpellRank_1","kind":"int","bits":32,"offset":16},{"name":"SpellRank_2","kind":"int","bits":32,"offset":20},{"name":"SpellRank_3","kind":"int","bits":32,"offset":24},{"name":"SpellRank_4","kind":"int","bits":32,"offset":28},{"name":"SpellRank_5","kind":"int","bits":32,"offset":32},{"name":"SpellRank_6","kind":"int","bits":32,"offset":36},{"name":"SpellRank_7","kind":"int","bits":32,"offset":40},{"name":"SpellRank_8","kind":"int","bits":32,"offset":44},{"name":"SpellRank_9","kind":"int","bits":32,"offset":48},{"name":"PrereqTalent_1","kind":"int","bits":32,"offset":52},{"name":"PrereqTalent_2","kind":"int","bits":32,"offset":56},{"name":"PrereqTalent_3","kind":"int","bits":32,"offset":60},{"name":"PrereqRank_1","kind":"int","bits":32,"offset":64},{"name":"PrereqRank_2","kind":"int","bits":32,"offset":68},{"name":"PrereqRank_3","kind":"int","bits":32,"offset":72},{"name":"Flags","kind":"int","bits":32,"offset":76},{"name":"RequiredSpellID","kind":"int","bits":32,"offset":80},{"name":"CategoryMask_1","kind":"int","bits":32,"offset":84},{"name":"CategoryMask_2","kind":"int","bits":32,"offset":88}],"source":"WoWDBDefs"},"talenttab":{"name":"TalentTab","build":12340,"recordSize":96,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":4,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":8,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":12,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":16,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":20,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":24,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":28,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":32,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":36,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":40,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":44,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":48,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":52,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":56,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":60,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":64,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":68},{"name":"SpellIconID","kind":"int","bits":32,"offset":72},{"name":"RaceMask","kind":"int","bits":32,"offset":76},{"name":"ClassMask","kind":"int","bits":32,"offset":80},{"name":"CategoryEnumID","kind":"int","bits":32,"offset":84},{"name":"OrderIndex","kind":"int","bits":32,"offset":88},{"name":"BackgroundFile","kind":"string","bits":32,"offset":92}],"source":"WoWDBDefs"},"taxinodes":{"name":"TaxiNodes","build":12340,"recordSize":96,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"ContinentID","kind":"int","bits":32,"offset":4},{"name":"Pos_1","kind":"float","bits":32,"offset":8},{"name":"Pos_2","kind":"float","bits":32,"offset":12},{"name":"Pos_3","kind":"float","bits":32,"offset":16},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":20,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":24,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":28,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":32,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":36,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":40,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":44,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":48,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":52,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":56,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":60,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":64,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":68,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":72,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":76,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":80,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":84},{"name":"MountCreatureID_1","kind":"int","bits":32,"offset":88},{"name":"MountCreatureID_2","kind":"int","bits":32,"offset":92}],"source":"WoWDBDefs"},"taxipath":{"name":"TaxiPath","build":12340,"recordSize":16,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"FromTaxiNode","kind":"int","bits":32,"offset":4},{"name":"ToTaxiNode","kind":"int","bits":32,"offset":8},{"name":"Cost","kind":"int","bits":32,"offset":12}],"source":"WoWDBDefs"},"taxipathnode":{"name":"TaxiPathNode","build":12340,"recordSize":44,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"PathID","kind":"int","bits":32,"offset":4},{"name":"NodeIndex","kind":"int","bits":32,"offset":8},{"name":"ContinentID","kind":"int","bits":32,"offset":12},{"name":"Loc_1","kind":"float","bits":32,"offset":16},{"name":"Loc_2","kind":"float","bits":32,"offset":20},{"name":"Loc_3","kind":"float","bits":32,"offset":24},{"name":"Flags","kind":"int","bits":32,"offset":28},{"name":"Delay","kind":"int","bits":32,"offset":32},{"name":"ArrivalEventID","kind":"int","bits":32,"offset":36},{"name":"DepartureEventID","kind":"int","bits":32,"offset":40}],"source":"WoWDBDefs"},"teamcontributionpoints":{"name":"TeamContributionPoints","build":12340,"recordSize":8,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Data","kind":"float","bits":32,"offset":4}],"source":"WoWDBDefs"},"terraintype":{"name":"TerrainType","build":12340,"recordSize":24,"columns":[{"name":"TerrainID","kind":"int","bits":32,"offset":0},{"name":"TerrainDesc","kind":"string","bits":32,"offset":4},{"name":"FootstepSprayRun","kind":"int","bits":32,"offset":8},{"name":"FootstepSprayWalk","kind":"int","bits":32,"offset":12},{"name":"SoundID","kind":"int","bits":32,"offset":16},{"name":"Flags","kind":"int","bits":32,"offset":20}],"source":"WoWDBDefs"},"terraintypesounds":{"name":"TerrainTypeSounds","build":12340,"recordSize":4,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true}],"source":"WoWDBDefs"},"totemcategory":{"name":"TotemCategory","build":12340,"recordSize":80,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Name_lang_enUS","kind":"string","bits":32,"offset":4,"locale":"enUS"},{"name":"Name_lang_enGB","kind":"string","bits":32,"offset":8,"locale":"enGB"},{"name":"Name_lang_koKR","kind":"string","bits":32,"offset":12,"locale":"koKR"},{"name":"Name_lang_frFR","kind":"string","bits":32,"offset":16,"locale":"frFR"},{"name":"Name_lang_deDE","kind":"string","bits":32,"offset":20,"locale":"deDE"},{"name":"Name_lang_enCN","kind":"string","bits":32,"offset":24,"locale":"enCN"},{"name":"Name_lang_zhCN","kind":"string","bits":32,"offset":28,"locale":"zhCN"},{"name":"Name_lang_enTW","kind":"string","bits":32,"offset":32,"locale":"enTW"},{"name":"Name_lang_zhTW","kind":"string","bits":32,"offset":36,"locale":"zhTW"},{"name":"Name_lang_esES","kind":"string","bits":32,"offset":40,"locale":"esES"},{"name":"Name_lang_esMX","kind":"string","bits":32,"offset":44,"locale":"esMX"},{"name":"Name_lang_ruRU","kind":"string","bits":32,"offset":48,"locale":"ruRU"},{"name":"Name_lang_ptPT","kind":"string","bits":32,"offset":52,"locale":"ptPT"},{"name":"Name_lang_ptBR","kind":"string","bits":32,"offset":56,"locale":"ptBR"},{"name":"Name_lang_itIT","kind":"string","bits":32,"offset":60,"locale":"itIT"},{"name":"Name_lang_Unk","kind":"string","bits":32,"offset":64,"locale":"Unk"},{"name":"Name_lang_Mask","kind":"uint","bits":32,"offset":68},{"name":"TotemCategoryType","kind":"int","bits":32,"offset":72},{"name":"TotemCategoryMask","kind":"int","bits":32,"offset":76}],"source":"WoWDBDefs"},"transportanimation":{"name":"TransportAnimation","build":12340,"recordSize":28,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"TransportID","kind":"int","bits":32,"offset":4},{"name":"TimeIndex","kind":"int","bits":32,"offset":8},{"name":"Pos_1","kind":"float","bits":32,"offset":12},{"name":"Pos_2","kind":"float","bits":32,"offset":16},{"name":"Pos_3","kind":"float","bits":32,"offset":20},{"name":"SequenceID","kind":"int","bits":32,"offset":24}],"source":"WoWDBDefs"},"transportphysics":{"name":"TransportPhysics","build":12340,"recordSize":44,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"WaveAmp","kind":"float","bits":32,"offset":4},{"name":"WaveTimeScale","kind":"float","bits":32,"offset":8},{"name":"RollAmp","kind":"float","bits":32,"offset":12},{"name":"RollTimeScale","kind":"float","bits":32,"offset":16},{"name":"PitchAmp","kind":"float","bits":32,"offset":20},{"name":"PitchTimeScale","kind":"float","bits":32,"offset":24},{"name":"MaxBank","kind":"float","bits":32,"offset":28},{"name":"MaxBankTurnSpeed","kind":"float","bits":32,"offset":32},{"name":"SpeedDampThresh","kind":"float","bits":32,"offset":36},{"name":"SpeedDamp","kind":"float","bits":32,"offset":40}],"source":"WoWDBDefs"},"transportrotation":{"name":"TransportRotation","build":12340,"recordSize":28,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"GameObjectsID","kind":"int","bits":32,"offset":4},{"name":"TimeIndex","kind":"int","bits":32,"offset":8},{"name":"Rot_1","kind":"float","bits":32,"offset":12},{"name":"Rot_2","kind":"float","bits":32,"offset":16},{"name":"Rot_3","kind":"float","bits":32,"offset":20},{"name":"Rot_4","kind":"float","bits":32,"offset":24}],"source":"WoWDBDefs"},"uisoundlookups":{"name":"UISoundLookups","build":12340,"recordSize":12,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"SoundID","kind":"int","bits":32,"offset":4},{"name":"SoundName","kind":"string","bits":32,"offset":8}],"source":"WoWDBDefs"},"unitblood":{"name":"UnitBlood","build":12340,"recordSize":40,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"CombatBloodSpurtFront_1","kind":"int","bits":32,"offset":4},{"name":"CombatBloodSpurtFront_2","kind":"int","bits":32,"offset":8},{"name":"CombatBloodSpurtBack_1","kind":"int","bits":32,"offset":12},{"name":"CombatBloodSpurtBack_2","kind":"int","bits":32,"offset":16},{"name":"GroundBlood_1","kind":"string","bits":32,"offset":20},{"name":"GroundBlood_2","kind":"string","bits":32,"offset":24},{"name":"GroundBlood_3","kind":"string","bits":32,"offset":28},{"name":"GroundBlood_4","kind":"string","bits":32,"offset":32},{"name":"GroundBlood_5","kind":"string","bits":32,"offset":36}],"source":"WoWDBDefs"},"unitbloodlevels":{"name":"UnitBloodLevels","build":12340,"recordSize":16,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Violencelevel_1","kind":"int","bits":32,"offset":4},{"name":"Violencelevel_2","kind":"int","bits":32,"offset":8},{"name":"Violencelevel_3","kind":"int","bits":32,"offset":12}],"source":"WoWDBDefs"},"vehicle":{"name":"Vehicle","build":12340,"recordSize":160,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Flags","kind":"int","bits":32,"offset":4},{"name":"TurnSpeed","kind":"float","bits":32,"offset":8},{"name":"PitchSpeed","kind":"float","bits":32,"offset":12},{"name":"PitchMin","kind":"float","bits":32,"offset":16},{"name":"PitchMax","kind":"float","bits":32,"offset":20},{"name":"SeatID_1","kind":"int","bits":32,"offset":24},{"name":"SeatID_2","kind":"int","bits":32,"offset":28},{"name":"SeatID_3","kind":"int","bits":32,"offset":32},{"name":"SeatID_4","kind":"int","bits":32,"offset":36},{"name":"SeatID_5","kind":"int","bits":32,"offset":40},{"name":"SeatID_6","kind":"int","bits":32,"offset":44},{"name":"SeatID_7","kind":"int","bits":32,"offset":48},{"name":"SeatID_8","kind":"int","bits":32,"offset":52},{"name":"MouseLookOffsetPitch","kind":"float","bits":32,"offset":56},{"name":"CameraFadeDistScalarMin","kind":"float","bits":32,"offset":60},{"name":"CameraFadeDistScalarMax","kind":"float","bits":32,"offset":64},{"name":"CameraPitchOffset","kind":"float","bits":32,"offset":68},{"name":"FacingLimitRight","kind":"float","bits":32,"offset":72},{"name":"FacingLimitLeft","kind":"float","bits":32,"offset":76},{"name":"MsslTrgtTurnLingering","kind":"float","bits":32,"offset":80},{"name":"MsslTrgtPitchLingering","kind":"float","bits":32,"offset":84},{"name":"MsslTrgtMouseLingering","kind":"float","bits":32,"offset":88},{"name":"MsslTrgtEndOpacity","kind":"float","bits":32,"offset":92},{"name":"MsslTrgtArcSpeed","kind":"float","bits":32,"offset":96},{"name":"MsslTrgtArcRepeat","kind":"float","bits":32,"offset":100},{"name":"MsslTrgtArcWidth","kind":"float","bits":32,"offset":104},{"name":"MsslTrgtImpactRadius_1","kind":"float","bits":32,"offset":108},{"name":"MsslTrgtImpactRadius_2","kind":"float","bits":32,"offset":112},{"name":"MsslTrgtArcTexture","kind":"string","bits":32,"offset":116},{"name":"MsslTrgtImpactTexture","kind":"string","bits":32,"offset":120},{"name":"MsslTrgtImpactModel_1","kind":"string","bits":32,"offset":124},{"name":"MsslTrgtImpactModel_2","kind":"string","bits":32,"offset":128},{"name":"CameraYawOffset","kind":"float","bits":32,"offset":132},{"name":"UiLocomotionType","kind":"int","bits":32,"offset":136},{"name":"MsslTrgtImpactTexRadius","kind":"float","bits":32,"offset":140},{"name":"VehicleUIIndicatorID","kind":"int","bits":32,"offset":144},{"name":"PowerDisplayID_1","kind":"int","bits":32,"offset":148},{"name":"PowerDisplayID_2","kind":"int","bits":32,"offset":152},{"name":"PowerDisplayID_3","kind":"int","bits":32,"offset":156}],"source":"WoWDBDefs"},"vehicleseat":{"name":"VehicleSeat","build":12340,"recordSize":232,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Field_3_3_5_12213_001","kind":"float","bits":32,"offset":4},{"name":"AttachmentID","kind":"int","bits":32,"offset":8},{"name":"AttachmentOffset_1","kind":"float","bits":32,"offset":12},{"name":"AttachmentOffset_2","kind":"float","bits":32,"offset":16},{"name":"AttachmentOffset_3","kind":"float","bits":32,"offset":20},{"name":"Field_3_3_5_12213_004","kind":"float","bits":32,"offset":24},{"name":"EnterSpeed","kind":"float","bits":32,"offset":28},{"name":"EnterGravity","kind":"float","bits":32,"offset":32},{"name":"EnterMinDuration","kind":"float","bits":32,"offset":36},{"name":"EnterMaxDuration","kind":"float","bits":32,"offset":40},{"name":"EnterMinArcHeight","kind":"float","bits":32,"offset":44},{"name":"EnterMaxArcHeight","kind":"float","bits":32,"offset":48},{"name":"EnterAnimStart","kind":"int","bits":32,"offset":52},{"name":"EnterAnimLoop","kind":"int","bits":32,"offset":56},{"name":"RideAnimStart","kind":"int","bits":32,"offset":60},{"name":"RideAnimLoop","kind":"int","bits":32,"offset":64},{"name":"RideUpperAnimStart","kind":"int","bits":32,"offset":68},{"name":"RideUpperAnimLoop","kind":"int","bits":32,"offset":72},{"name":"Field_3_3_5_12213_017","kind":"float","bits":32,"offset":76},{"name":"ExitSpeed","kind":"float","bits":32,"offset":80},{"name":"ExitGravity","kind":"float","bits":32,"offset":84},{"name":"ExitMinDuration","kind":"float","bits":32,"offset":88},{"name":"ExitMaxDuration","kind":"float","bits":32,"offset":92},{"name":"ExitMinArcHeight","kind":"float","bits":32,"offset":96},{"name":"ExitMaxArcHeight","kind":"float","bits":32,"offset":100},{"name":"ExitAnimStart","kind":"int","bits":32,"offset":104},{"name":"ExitAnimLoop","kind":"int","bits":32,"offset":108},{"name":"ExitAnimEnd","kind":"int","bits":32,"offset":112},{"name":"Field_3_3_5_12213_027","kind":"float","bits":32,"offset":116},{"name":"PassengerPitch","kind":"float","bits":32,"offset":120},{"name":"Field_3_3_5_12213_029","kind":"float","bits":32,"offset":124},{"name":"PassengerAttachmentID","kind":"int","bits":32,"offset":128},{"name":"VehicleEnterAnim","kind":"int","bits":32,"offset":132},{"name":"VehicleExitAnim","kind":"int","bits":32,"offset":136},{"name":"VehicleRideAnimLoop","kind":"int","bits":32,"offset":140},{"name":"Field_3_3_5_12213_034","kind":"int","bits":32,"offset":144},{"name":"VehicleExitAnimBone","kind":"int","bits":32,"offset":148},{"name":"VehicleEnterAnimBone","kind":"int","bits":32,"offset":152},{"name":"Field_3_3_5_12213_037","kind":"float","bits":32,"offset":156},{"name":"Field_3_3_5_12213_038","kind":"float","bits":32,"offset":160},{"name":"VehicleAbilityDisplay","kind":"int","bits":32,"offset":164},{"name":"EnterUISoundID","kind":"int","bits":32,"offset":168},{"name":"Field_3_3_5_12213_041","kind":"int","bits":32,"offset":172},{"name":"UiSkin","kind":"int","bits":32,"offset":176},{"name":"Field_3_3_5_12213_043","kind":"float","bits":32,"offset":180},{"name":"Field_3_3_5_12213_044","kind":"float","bits":32,"offset":184},{"name":"Field_3_3_5_12213_045","kind":"float","bits":32,"offset":188},{"name":"Field_3_3_5_12213_046","kind":"int","bits":32,"offset":192},{"name":"Field_3_3_5_12213_047","kind":"float","bits":32,"offset":196},{"name":"Field_3_3_5_12213_048","kind":"float","bits":32,"offset":200},{"name":"Field_3_3_5_12213_049","kind":"float","bits":32,"offset":204},{"name":"Field_3_3_5_12213_050","kind":"float","bits":32,"offset":208},{"name":"Field_3_3_5_12213_051","kind":"float","bits":32,"offset":212},{"name":"Field_3_3_5_12213_052","kind":"float","bits":32,"offset":216},{"name":"Field_3_3_5_12213_053","kind":"float","bits":32,"offset":220},{"name":"Field_3_3_5_12213_054","kind":"float","bits":32,"offset":224},{"name":"Field_3_3_5_12213_055","kind":"float","bits":32,"offset":228}],"source":"WoWDBDefs"},"vehicleuiindicator":{"name":"VehicleUIIndicator","build":12340,"recordSize":8,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"BackgroundTexture","kind":"string","bits":32,"offset":4}],"source":"WoWDBDefs"},"vehicleuiindseat":{"name":"VehicleUIIndSeat","build":12340,"recordSize":20,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"VehicleUIIndicatorID","kind":"int","bits":32,"offset":4},{"name":"VirtualSeatIndex","kind":"int","bits":32,"offset":8},{"name":"XPos","kind":"float","bits":32,"offset":12},{"name":"YPos","kind":"float","bits":32,"offset":16}],"source":"WoWDBDefs"},"videohardware":{"name":"VideoHardware","build":12340,"recordSize":92,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"VendorID","kind":"int","bits":32,"offset":4},{"name":"DeviceID","kind":"int","bits":32,"offset":8},{"name":"FarclipIdx","kind":"int","bits":32,"offset":12},{"name":"TerrainLODDistIdx","kind":"int","bits":32,"offset":16},{"name":"TerrainShadowLOD","kind":"int","bits":32,"offset":20},{"name":"DetailDoodadDensityIdx","kind":"int","bits":32,"offset":24},{"name":"DetailDoodadAlpha","kind":"int","bits":32,"offset":28},{"name":"AnimatingDoodadIdx","kind":"int","bits":32,"offset":32},{"name":"Trilinear","kind":"int","bits":32,"offset":36},{"name":"NumLights","kind":"int","bits":32,"offset":40},{"name":"Specularity","kind":"int","bits":32,"offset":44},{"name":"WaterLODIdx","kind":"int","bits":32,"offset":48},{"name":"ParticleDensityIdx","kind":"int","bits":32,"offset":52},{"name":"UnitDrawDistIdx","kind":"int","bits":32,"offset":56},{"name":"SmallCullDistIdx","kind":"int","bits":32,"offset":60},{"name":"ResolutionIdx","kind":"int","bits":32,"offset":64},{"name":"BaseMipLevel","kind":"int","bits":32,"offset":68},{"name":"OglOverrides","kind":"string","bits":32,"offset":72},{"name":"D3dOverrides","kind":"string","bits":32,"offset":76},{"name":"FixLag","kind":"int","bits":32,"offset":80},{"name":"Multisample","kind":"int","bits":32,"offset":84},{"name":"Atlasdisable","kind":"int","bits":32,"offset":88}],"source":"WoWDBDefs"},"vocaluisounds":{"name":"VocalUISounds","build":12340,"recordSize":28,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"VocalUIEnum","kind":"int","bits":32,"offset":4},{"name":"RaceID","kind":"int","bits":32,"offset":8},{"name":"NormalSoundID_1","kind":"int","bits":32,"offset":12},{"name":"NormalSoundID_2","kind":"int","bits":32,"offset":16},{"name":"PissedSoundID_1","kind":"int","bits":32,"offset":20},{"name":"PissedSoundID_2","kind":"int","bits":32,"offset":24}],"source":"WoWDBDefs"},"weaponimpactsounds":{"name":"WeaponImpactSounds","build":12340,"recordSize":92,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"WeaponSubClassID","kind":"int","bits":32,"offset":4},{"name":"ParrySoundType","kind":"int","bits":32,"offset":8},{"name":"ImpactSoundID_1","kind":"int","bits":32,"offset":12},{"name":"ImpactSoundID_2","kind":"int","bits":32,"offset":16},{"name":"ImpactSoundID_3","kind":"int","bits":32,"offset":20},{"name":"ImpactSoundID_4","kind":"int","bits":32,"offset":24},{"name":"ImpactSoundID_5","kind":"int","bits":32,"offset":28},{"name":"ImpactSoundID_6","kind":"int","bits":32,"offset":32},{"name":"ImpactSoundID_7","kind":"int","bits":32,"offset":36},{"name":"ImpactSoundID_8","kind":"int","bits":32,"offset":40},{"name":"ImpactSoundID_9","kind":"int","bits":32,"offset":44},{"name":"ImpactSoundID_10","kind":"int","bits":32,"offset":48},{"name":"CritImpactSoundID_1","kind":"int","bits":32,"offset":52},{"name":"CritImpactSoundID_2","kind":"int","bits":32,"offset":56},{"name":"CritImpactSoundID_3","kind":"int","bits":32,"offset":60},{"name":"CritImpactSoundID_4","kind":"int","bits":32,"offset":64},{"name":"CritImpactSoundID_5","kind":"int","bits":32,"offset":68},{"name":"CritImpactSoundID_6","kind":"int","bits":32,"offset":72},{"name":"CritImpactSoundID_7","kind":"int","bits":32,"offset":76},{"name":"CritImpactSoundID_8","kind":"int","bits":32,"offset":80},{"name":"CritImpactSoundID_9","kind":"int","bits":32,"offset":84},{"name":"CritImpactSoundID_10","kind":"int","bits":32,"offset":88}],"source":"WoWDBDefs"},"weaponswingsounds2":{"name":"WeaponSwingSounds2","build":12340,"recordSize":16,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"SwingType","kind":"int","bits":32,"offset":4},{"name":"Crit","kind":"int","bits":32,"offset":8},{"name":"SoundID","kind":"int","bits":32,"offset":12}],"source":"WoWDBDefs"},"weather":{"name":"Weather","build":12340,"recordSize":32,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"AmbienceID","kind":"int","bits":32,"offset":4},{"name":"EffectType","kind":"int","bits":32,"offset":8},{"name":"TransitionSkyBox","kind":"float","bits":32,"offset":12},{"name":"EffectColor_1","kind":"float","bits":32,"offset":16},{"name":"EffectColor_2","kind":"float","bits":32,"offset":20},{"name":"EffectColor_3","kind":"float","bits":32,"offset":24},{"name":"EffectTexture","kind":"string","bits":32,"offset":28}],"source":"WoWDBDefs"},"wmoareatable":{"name":"WMOAreaTable","build":12340,"recordSize":112,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"WMOID","kind":"int","bits":32,"offset":4},{"name":"NameSetID","kind":"int","bits":32,"offset":8},{"name":"WMOGroupID","kind":"int","bits":32,"offset":12},{"name":"SoundProviderPref","kind":"int","bits":32,"offset":16},{"name":"SoundProviderPrefUnderwater","kind":"int","bits":32,"offset":20},{"name":"AmbienceID","kind":"int","bits":32,"offset":24},{"name":"ZoneMusic","kind":"int","bits":32,"offset":28},{"name":"IntroSound","kind":"int","bits":32,"offset":32},{"name":"Flags","kind":"int","bits":32,"offset":36},{"name":"AreaTableID","kind":"int","bits":32,"offset":40},{"name":"AreaName_lang_enUS","kind":"string","bits":32,"offset":44,"locale":"enUS"},{"name":"AreaName_lang_enGB","kind":"string","bits":32,"offset":48,"locale":"enGB"},{"name":"AreaName_lang_koKR","kind":"string","bits":32,"offset":52,"locale":"koKR"},{"name":"AreaName_lang_frFR","kind":"string","bits":32,"offset":56,"locale":"frFR"},{"name":"AreaName_lang_deDE","kind":"string","bits":32,"offset":60,"locale":"deDE"},{"name":"AreaName_lang_enCN","kind":"string","bits":32,"offset":64,"locale":"enCN"},{"name":"AreaName_lang_zhCN","kind":"string","bits":32,"offset":68,"locale":"zhCN"},{"name":"AreaName_lang_enTW","kind":"string","bits":32,"offset":72,"locale":"enTW"},{"name":"AreaName_lang_zhTW","kind":"string","bits":32,"offset":76,"locale":"zhTW"},{"name":"AreaName_lang_esES","kind":"string","bits":32,"offset":80,"locale":"esES"},{"name":"AreaName_lang_esMX","kind":"string","bits":32,"offset":84,"locale":"esMX"},{"name":"AreaName_lang_ruRU","kind":"string","bits":32,"offset":88,"locale":"ruRU"},{"name":"AreaName_lang_ptPT","kind":"string","bits":32,"offset":92,"locale":"ptPT"},{"name":"AreaName_lang_ptBR","kind":"string","bits":32,"offset":96,"locale":"ptBR"},{"name":"AreaName_lang_itIT","kind":"string","bits":32,"offset":100,"locale":"itIT"},{"name":"AreaName_lang_Unk","kind":"string","bits":32,"offset":104,"locale":"Unk"},{"name":"AreaName_lang_Mask","kind":"uint","bits":32,"offset":108}],"source":"WoWDBDefs"},"worldchunksounds":{"name":"WorldChunkSounds","build":12340,"recordSize":36,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"ChunkX","kind":"int","bits":32,"offset":4},{"name":"ChunkY","kind":"int","bits":32,"offset":8},{"name":"SubchunkX","kind":"int","bits":32,"offset":12},{"name":"SubchunkY","kind":"int","bits":32,"offset":16},{"name":"ZoneIntroMusicID","kind":"int","bits":32,"offset":20},{"name":"ZoneMusicID","kind":"int","bits":32,"offset":24},{"name":"SoundAmbienceID","kind":"int","bits":32,"offset":28},{"name":"SoundProviderPreferencesID","kind":"int","bits":32,"offset":32}],"source":"WoWDBDefs"},"worldmaparea":{"name":"WorldMapArea","build":12340,"recordSize":44,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"MapID","kind":"int","bits":32,"offset":4},{"name":"AreaID","kind":"int","bits":32,"offset":8},{"name":"AreaName","kind":"string","bits":32,"offset":12},{"name":"LocLeft","kind":"float","bits":32,"offset":16},{"name":"LocRight","kind":"float","bits":32,"offset":20},{"name":"LocTop","kind":"float","bits":32,"offset":24},{"name":"LocBottom","kind":"float","bits":32,"offset":28},{"name":"DisplayMapID","kind":"int","bits":32,"offset":32},{"name":"DefaultDungeonFloor","kind":"int","bits":32,"offset":36},{"name":"ParentWorldMapID","kind":"int","bits":32,"offset":40}],"source":"WoWDBDefs"},"worldmapcontinent":{"name":"WorldMapContinent","build":12340,"recordSize":56,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"MapID","kind":"int","bits":32,"offset":4},{"name":"LeftBoundary","kind":"int","bits":32,"offset":8},{"name":"RightBoundary","kind":"int","bits":32,"offset":12},{"name":"TopBoundary","kind":"int","bits":32,"offset":16},{"name":"BottomBoundary","kind":"int","bits":32,"offset":20},{"name":"ContinentOffset_1","kind":"float","bits":32,"offset":24},{"name":"ContinentOffset_2","kind":"float","bits":32,"offset":28},{"name":"Scale","kind":"float","bits":32,"offset":32},{"name":"TaxiMin_1","kind":"float","bits":32,"offset":36},{"name":"TaxiMin_2","kind":"float","bits":32,"offset":40},{"name":"TaxiMax_1","kind":"float","bits":32,"offset":44},{"name":"TaxiMax_2","kind":"float","bits":32,"offset":48},{"name":"WorldMapID","kind":"int","bits":32,"offset":52}],"source":"WoWDBDefs"},"worldmapoverlay":{"name":"WorldMapOverlay","build":12340,"recordSize":68,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"MapAreaID","kind":"int","bits":32,"offset":4},{"name":"AreaID_1","kind":"int","bits":32,"offset":8},{"name":"AreaID_2","kind":"int","bits":32,"offset":12},{"name":"AreaID_3","kind":"int","bits":32,"offset":16},{"name":"AreaID_4","kind":"int","bits":32,"offset":20},{"name":"MapPointX","kind":"int","bits":32,"offset":24},{"name":"MapPointY","kind":"int","bits":32,"offset":28},{"name":"TextureName","kind":"string","bits":32,"offset":32},{"name":"TextureWidth","kind":"int","bits":32,"offset":36},{"name":"TextureHeight","kind":"int","bits":32,"offset":40},{"name":"OffsetX","kind":"int","bits":32,"offset":44},{"name":"OffsetY","kind":"int","bits":32,"offset":48},{"name":"HitRectTop","kind":"int","bits":32,"offset":52},{"name":"HitRectLeft","kind":"int","bits":32,"offset":56},{"name":"HitRectBottom","kind":"int","bits":32,"offset":60},{"name":"HitRectRight","kind":"int","bits":32,"offset":64}],"source":"WoWDBDefs"},"worldmaptransforms":{"name":"WorldMapTransforms","build":12340,"recordSize":40,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"MapID","kind":"int","bits":32,"offset":4},{"name":"RegionMin_1","kind":"float","bits":32,"offset":8},{"name":"RegionMin_2","kind":"float","bits":32,"offset":12},{"name":"RegionMax_1","kind":"float","bits":32,"offset":16},{"name":"RegionMax_2","kind":"float","bits":32,"offset":20},{"name":"NewMapID","kind":"int","bits":32,"offset":24},{"name":"RegionOffset_1","kind":"float","bits":32,"offset":28},{"name":"RegionOffset_2","kind":"float","bits":32,"offset":32},{"name":"NewDungeonMapID","kind":"int","bits":32,"offset":36}],"source":"WoWDBDefs"},"worldsafelocs":{"name":"WorldSafeLocs","build":12340,"recordSize":88,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Continent","kind":"int","bits":32,"offset":4},{"name":"Loc_1","kind":"float","bits":32,"offset":8},{"name":"Loc_2","kind":"float","bits":32,"offset":12},{"name":"Loc_3","kind":"float","bits":32,"offset":16},{"name":"AreaName_lang_enUS","kind":"string","bits":32,"offset":20,"locale":"enUS"},{"name":"AreaName_lang_enGB","kind":"string","bits":32,"offset":24,"locale":"enGB"},{"name":"AreaName_lang_koKR","kind":"string","bits":32,"offset":28,"locale":"koKR"},{"name":"AreaName_lang_frFR","kind":"string","bits":32,"offset":32,"locale":"frFR"},{"name":"AreaName_lang_deDE","kind":"string","bits":32,"offset":36,"locale":"deDE"},{"name":"AreaName_lang_enCN","kind":"string","bits":32,"offset":40,"locale":"enCN"},{"name":"AreaName_lang_zhCN","kind":"string","bits":32,"offset":44,"locale":"zhCN"},{"name":"AreaName_lang_enTW","kind":"string","bits":32,"offset":48,"locale":"enTW"},{"name":"AreaName_lang_zhTW","kind":"string","bits":32,"offset":52,"locale":"zhTW"},{"name":"AreaName_lang_esES","kind":"string","bits":32,"offset":56,"locale":"esES"},{"name":"AreaName_lang_esMX","kind":"string","bits":32,"offset":60,"locale":"esMX"},{"name":"AreaName_lang_ruRU","kind":"string","bits":32,"offset":64,"locale":"ruRU"},{"name":"AreaName_lang_ptPT","kind":"string","bits":32,"offset":68,"locale":"ptPT"},{"name":"AreaName_lang_ptBR","kind":"string","bits":32,"offset":72,"locale":"ptBR"},{"name":"AreaName_lang_itIT","kind":"string","bits":32,"offset":76,"locale":"itIT"},{"name":"AreaName_lang_Unk","kind":"string","bits":32,"offset":80,"locale":"Unk"},{"name":"AreaName_lang_Mask","kind":"uint","bits":32,"offset":84}],"source":"WoWDBDefs"},"worldstateui":{"name":"WorldStateUI","build":12340,"recordSize":252,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"MapID","kind":"int","bits":32,"offset":4},{"name":"AreaID","kind":"int","bits":32,"offset":8},{"name":"PhaseShift","kind":"int","bits":32,"offset":12},{"name":"Icon","kind":"string","bits":32,"offset":16},{"name":"String_lang_enUS","kind":"string","bits":32,"offset":20,"locale":"enUS"},{"name":"String_lang_enGB","kind":"string","bits":32,"offset":24,"locale":"enGB"},{"name":"String_lang_koKR","kind":"string","bits":32,"offset":28,"locale":"koKR"},{"name":"String_lang_frFR","kind":"string","bits":32,"offset":32,"locale":"frFR"},{"name":"String_lang_deDE","kind":"string","bits":32,"offset":36,"locale":"deDE"},{"name":"String_lang_enCN","kind":"string","bits":32,"offset":40,"locale":"enCN"},{"name":"String_lang_zhCN","kind":"string","bits":32,"offset":44,"locale":"zhCN"},{"name":"String_lang_enTW","kind":"string","bits":32,"offset":48,"locale":"enTW"},{"name":"String_lang_zhTW","kind":"string","bits":32,"offset":52,"locale":"zhTW"},{"name":"String_lang_esES","kind":"string","bits":32,"offset":56,"locale":"esES"},{"name":"String_lang_esMX","kind":"string","bits":32,"offset":60,"locale":"esMX"},{"name":"String_lang_ruRU","kind":"string","bits":32,"offset":64,"locale":"ruRU"},{"name":"String_lang_ptPT","kind":"string","bits":32,"offset":68,"locale":"ptPT"},{"name":"String_lang_ptBR","kind":"string","bits":32,"offset":72,"locale":"ptBR"},{"name":"String_lang_itIT","kind":"string","bits":32,"offset":76,"locale":"itIT"},{"name":"String_lang_Unk","kind":"string","bits":32,"offset":80,"locale":"Unk"},{"name":"String_lang_Mask","kind":"uint","bits":32,"offset":84},{"name":"Tooltip_lang_enUS","kind":"string","bits":32,"offset":88,"locale":"enUS"},{"name":"Tooltip_lang_enGB","kind":"string","bits":32,"offset":92,"locale":"enGB"},{"name":"Tooltip_lang_koKR","kind":"string","bits":32,"offset":96,"locale":"koKR"},{"name":"Tooltip_lang_frFR","kind":"string","bits":32,"offset":100,"locale":"frFR"},{"name":"Tooltip_lang_deDE","kind":"string","bits":32,"offset":104,"locale":"deDE"},{"name":"Tooltip_lang_enCN","kind":"string","bits":32,"offset":108,"locale":"enCN"},{"name":"Tooltip_lang_zhCN","kind":"string","bits":32,"offset":112,"locale":"zhCN"},{"name":"Tooltip_lang_enTW","kind":"string","bits":32,"offset":116,"locale":"enTW"},{"name":"Tooltip_lang_zhTW","kind":"string","bits":32,"offset":120,"locale":"zhTW"},{"name":"Tooltip_lang_esES","kind":"string","bits":32,"offset":124,"locale":"esES"},{"name":"Tooltip_lang_esMX","kind":"string","bits":32,"offset":128,"locale":"esMX"},{"name":"Tooltip_lang_ruRU","kind":"string","bits":32,"offset":132,"locale":"ruRU"},{"name":"Tooltip_lang_ptPT","kind":"string","bits":32,"offset":136,"locale":"ptPT"},{"name":"Tooltip_lang_ptBR","kind":"string","bits":32,"offset":140,"locale":"ptBR"},{"name":"Tooltip_lang_itIT","kind":"string","bits":32,"offset":144,"locale":"itIT"},{"name":"Tooltip_lang_Unk","kind":"string","bits":32,"offset":148,"locale":"Unk"},{"name":"Tooltip_lang_Mask","kind":"uint","bits":32,"offset":152},{"name":"StateVariable","kind":"int","bits":32,"offset":156},{"name":"Type","kind":"int","bits":32,"offset":160},{"name":"DynamicIcon","kind":"string","bits":32,"offset":164},{"name":"DynamicTooltip_lang_enUS","kind":"string","bits":32,"offset":168,"locale":"enUS"},{"name":"DynamicTooltip_lang_enGB","kind":"string","bits":32,"offset":172,"locale":"enGB"},{"name":"DynamicTooltip_lang_koKR","kind":"string","bits":32,"offset":176,"locale":"koKR"},{"name":"DynamicTooltip_lang_frFR","kind":"string","bits":32,"offset":180,"locale":"frFR"},{"name":"DynamicTooltip_lang_deDE","kind":"string","bits":32,"offset":184,"locale":"deDE"},{"name":"DynamicTooltip_lang_enCN","kind":"string","bits":32,"offset":188,"locale":"enCN"},{"name":"DynamicTooltip_lang_zhCN","kind":"string","bits":32,"offset":192,"locale":"zhCN"},{"name":"DynamicTooltip_lang_enTW","kind":"string","bits":32,"offset":196,"locale":"enTW"},{"name":"DynamicTooltip_lang_zhTW","kind":"string","bits":32,"offset":200,"locale":"zhTW"},{"name":"DynamicTooltip_lang_esES","kind":"string","bits":32,"offset":204,"locale":"esES"},{"name":"DynamicTooltip_lang_esMX","kind":"string","bits":32,"offset":208,"locale":"esMX"},{"name":"DynamicTooltip_lang_ruRU","kind":"string","bits":32,"offset":212,"locale":"ruRU"},{"name":"DynamicTooltip_lang_ptPT","kind":"string","bits":32,"offset":216,"locale":"ptPT"},{"name":"DynamicTooltip_lang_ptBR","kind":"string","bits":32,"offset":220,"locale":"ptBR"},{"name":"DynamicTooltip_lang_itIT","kind":"string","bits":32,"offset":224,"locale":"itIT"},{"name":"DynamicTooltip_lang_Unk","kind":"string","bits":32,"offset":228,"locale":"Unk"},{"name":"DynamicTooltip_lang_Mask","kind":"uint","bits":32,"offset":232},{"name":"ExtendedUI","kind":"string","bits":32,"offset":236},{"name":"ExtendedUIStateVariable_1","kind":"int","bits":32,"offset":240},{"name":"ExtendedUIStateVariable_2","kind":"int","bits":32,"offset":244},{"name":"ExtendedUIStateVariable_3","kind":"int","bits":32,"offset":248}],"source":"WoWDBDefs"},"worldstatezonesounds":{"name":"WorldStateZoneSounds","build":12340,"recordSize":32,"columns":[{"name":"WorldStateID","kind":"int","bits":32,"offset":0},{"name":"WorldStateValue","kind":"int","bits":32,"offset":4},{"name":"AreaID","kind":"int","bits":32,"offset":8},{"name":"WMOAreaID","kind":"int","bits":32,"offset":12},{"name":"ZoneIntroMusicID","kind":"int","bits":32,"offset":16},{"name":"ZoneMusicID","kind":"int","bits":32,"offset":20},{"name":"SoundAmbienceID","kind":"int","bits":32,"offset":24},{"name":"SoundProviderPreferencesID","kind":"int","bits":32,"offset":28}],"source":"WoWDBDefs"},"wowerror_strings":{"name":"WowError_Strings","build":12340,"recordSize":76,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Name","kind":"string","bits":32,"offset":4},{"name":"Description_lang_enUS","kind":"string","bits":32,"offset":8,"locale":"enUS"},{"name":"Description_lang_enGB","kind":"string","bits":32,"offset":12,"locale":"enGB"},{"name":"Description_lang_koKR","kind":"string","bits":32,"offset":16,"locale":"koKR"},{"name":"Description_lang_frFR","kind":"string","bits":32,"offset":20,"locale":"frFR"},{"name":"Description_lang_deDE","kind":"string","bits":32,"offset":24,"locale":"deDE"},{"name":"Description_lang_enCN","kind":"string","bits":32,"offset":28,"locale":"enCN"},{"name":"Description_lang_zhCN","kind":"string","bits":32,"offset":32,"locale":"zhCN"},{"name":"Description_lang_enTW","kind":"string","bits":32,"offset":36,"locale":"enTW"},{"name":"Description_lang_zhTW","kind":"string","bits":32,"offset":40,"locale":"zhTW"},{"name":"Description_lang_esES","kind":"string","bits":32,"offset":44,"locale":"esES"},{"name":"Description_lang_esMX","kind":"string","bits":32,"offset":48,"locale":"esMX"},{"name":"Description_lang_ruRU","kind":"string","bits":32,"offset":52,"locale":"ruRU"},{"name":"Description_lang_ptPT","kind":"string","bits":32,"offset":56,"locale":"ptPT"},{"name":"Description_lang_ptBR","kind":"string","bits":32,"offset":60,"locale":"ptBR"},{"name":"Description_lang_itIT","kind":"string","bits":32,"offset":64,"locale":"itIT"},{"name":"Description_lang_Unk","kind":"string","bits":32,"offset":68,"locale":"Unk"},{"name":"Description_lang_Mask","kind":"uint","bits":32,"offset":72}],"source":"WoWDBDefs"},"zoneintromusictable":{"name":"ZoneIntroMusicTable","build":12340,"recordSize":20,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"Name","kind":"string","bits":32,"offset":4},{"name":"SoundID","kind":"int","bits":32,"offset":8},{"name":"Priority","kind":"int","bits":32,"offset":12},{"name":"MinDelayMinutes","kind":"int","bits":32,"offset":16}],"source":"WoWDBDefs"},"zonemusic":{"name":"ZoneMusic","build":12340,"recordSize":32,"columns":[{"name":"ID","kind":"int","bits":32,"offset":0,"isId":true},{"name":"SetName","kind":"string","bits":32,"offset":4},{"name":"SilenceIntervalMin_1","kind":"int","bits":32,"offset":8},{"name":"SilenceIntervalMin_2","kind":"int","bits":32,"offset":12},{"name":"SilenceIntervalMax_1","kind":"int","bits":32,"offset":16},{"name":"SilenceIntervalMax_2","kind":"int","bits":32,"offset":20},{"name":"Sounds_1","kind":"int","bits":32,"offset":24},{"name":"Sounds_2","kind":"int","bits":32,"offset":28}],"source":"WoWDBDefs"}}} diff --git a/vscode-dbc-editor/schemas/README.md b/vscode-dbc-editor/schemas/README.md new file mode 100644 index 0000000..9f86983 --- /dev/null +++ b/vscode-dbc-editor/schemas/README.md @@ -0,0 +1,12 @@ +# Build 12340 schemas + +`12340.json` is a build-specific transformation of the WoWDBDefs database definitions. + +- Source: https://github.com/wowdev/WoWDBDefs +- Data license: Creative Commons Attribution-ShareAlike 4.0 International +- Transformation: only the definition active for `3.3.5.12340` is retained; arrays and + pre-Cataclysm localized strings are expanded to physical WDBC columns. + +The schema data in this directory is distributed under CC BY-SA 4.0: +https://creativecommons.org/licenses/by-sa/4.0/ + diff --git a/vscode-dbc-editor/scripts/build-schema-bundle.mjs b/vscode-dbc-editor/scripts/build-schema-bundle.mjs new file mode 100644 index 0000000..a3540c2 --- /dev/null +++ b/vscode-dbc-editor/scripts/build-schema-bundle.mjs @@ -0,0 +1,121 @@ +import fs from "node:fs"; +import path from "node:path"; + +const inputDirectory = process.argv[2]; +const outputFile = process.argv[3] ?? path.resolve("schemas", "12340.json"); +const sourceCommit = process.argv[4]; + +if (!inputDirectory) { + throw new Error( + "Usage: node scripts/build-schema-bundle.mjs [output file] [source commit]" + ); +} + +const target = { expansion: 3, major: 3, minor: 5, build: 12340 }; +const locales = [ + "enUS", + "enGB", + "koKR", + "frFR", + "deDE", + "enCN", + "zhCN", + "enTW", + "zhTW", + "esES", + "esMX", + "ruRU", + "ptPT", + "ptBR", + "itIT", + "Unk" +]; + +const bundle = { + build: 12340, + version: "3.3.5.12340", + source: { + project: "WoWDBDefs", + url: "https://github.com/wowdev/WoWDBDefs", + license: "CC BY-SA 4.0", + ...(sourceCommit ? { commit: sourceCommit } : {}) + }, + tables: {} +}; + +for (const fileName of fs.readdirSync(inputDirectory).filter((name) => name.endsWith(".json"))) { + const definition = JSON.parse(fs.readFileSync(path.join(inputDirectory, fileName), "utf8")); + const version = definition.versionDefinitions.find((entry) => matches(entry, target)); + if (!version) continue; + + const tableName = path.basename(fileName, ".json"); + const columns = []; + let offset = 0; + + for (const field of version.definitions) { + if (field.isNonInline) continue; + const columnDefinition = definition.columnDefinitions[field.name]; + if (!columnDefinition) { + throw new Error(`${tableName}: missing column definition '${field.name}'.`); + } + + const arrayLength = field.arrLength || 1; + for (let arrayIndex = 0; arrayIndex < arrayLength; arrayIndex += 1) { + const baseName = arrayLength > 1 ? `${field.name}_${arrayIndex + 1}` : field.name; + if (columnDefinition.type === "locstring") { + for (const locale of locales) { + columns.push({ name: `${baseName}_${locale}`, kind: "string", bits: 32, offset, locale }); + offset += 4; + } + columns.push({ name: `${baseName}_Mask`, kind: "uint", bits: 32, offset }); + offset += 4; + continue; + } + + const column = makeColumn(baseName, columnDefinition.type, field, offset); + if (field.isID) column.isId = true; + columns.push(column); + offset += column.bits / 8; + } + } + + bundle.tables[tableName.toLowerCase()] = { + name: tableName, + build: 12340, + recordSize: offset, + columns, + source: "WoWDBDefs" + }; +} + +fs.mkdirSync(path.dirname(outputFile), { recursive: true }); +fs.writeFileSync(outputFile, `${JSON.stringify(bundle)}\n`); +process.stdout.write(`Wrote ${Object.keys(bundle.tables).length} schemas to ${outputFile}\n`); + +function makeColumn(name, type, field, offset) { + if (type === "string") return { name, kind: "string", bits: 32, offset }; + if (type === "float") return { name, kind: "float", bits: 32, offset }; + if (type !== "int") throw new Error(`Unsupported DBD type '${type}' for '${name}'.`); + + const bits = field.size || 32; + if (![8, 16, 32, 64].includes(bits)) { + throw new Error(`Unsupported integer size ${bits} for '${name}'.`); + } + return { name, kind: field.isSigned ? "int" : "uint", bits, offset }; +} + +function matches(version, build) { + if (version.builds.some((candidate) => compareBuilds(candidate, build) === 0)) return true; + return version.buildRanges.some( + (range) => compareBuilds(range.minBuild, build) <= 0 && compareBuilds(build, range.maxBuild) <= 0 + ); +} + +function compareBuilds(left, right) { + for (const key of ["expansion", "major", "minor", "build"]) { + const difference = left[key] - right[key]; + if (difference !== 0) return difference; + } + return 0; +} + diff --git a/vscode-dbc-editor/src/dbc/codec.ts b/vscode-dbc-editor/src/dbc/codec.ts new file mode 100644 index 0000000..ba976d9 --- /dev/null +++ b/vscode-dbc-editor/src/dbc/codec.ts @@ -0,0 +1,179 @@ +import { DbcColumn, WdbcHeader } from "./types"; + +const HEADER_SIZE = 20; +const textDecoder = new TextDecoder("utf-8"); +const textEncoder = new TextEncoder(); + +export function parseHeader(bytes: Uint8Array): WdbcHeader { + if (bytes.byteLength < HEADER_SIZE) { + throw new Error("The file is too small to contain a WDBC header."); + } + + const magic = textDecoder.decode(bytes.subarray(0, 4)); + if (magic !== "WDBC") { + throw new Error(`Unsupported DBC signature '${magic}'. Only WDBC files are supported.`); + } + + const view = dataView(bytes); + const header: WdbcHeader = { + magic: "WDBC", + recordCount: view.getUint32(4, true), + fieldCount: view.getUint32(8, true), + recordSize: view.getUint32(12, true), + stringBlockSize: view.getUint32(16, true) + }; + + const recordsEnd = HEADER_SIZE + header.recordCount * header.recordSize; + const expectedSize = recordsEnd + header.stringBlockSize; + if (!Number.isSafeInteger(recordsEnd) || expectedSize !== bytes.byteLength) { + throw new Error( + `Invalid WDBC size: header expects ${expectedSize} bytes, file contains ${bytes.byteLength}.` + ); + } + + if (header.recordSize === 0 && header.recordCount > 0) { + throw new Error("Invalid WDBC header: record size is zero."); + } + + return header; +} + +export function readCell( + bytes: Uint8Array, + header: WdbcHeader, + originalRow: number, + column: DbcColumn +): string { + const recordOffset = HEADER_SIZE + originalRow * header.recordSize + column.offset; + const view = dataView(bytes); + + if (column.kind === "string") { + const stringOffset = view.getUint32(recordOffset, true); + return readString(bytes, header, stringOffset); + } + + if (column.kind === "float") { + const value = view.getFloat32(recordOffset, true); + return Object.is(value, -0) ? "-0" : String(value); + } + + if (column.bits === 64) { + return column.kind === "int" + ? view.getBigInt64(recordOffset, true).toString() + : view.getBigUint64(recordOffset, true).toString(); + } + + if (column.kind === "int") { + if (column.bits === 8) return String(view.getInt8(recordOffset)); + if (column.bits === 16) return String(view.getInt16(recordOffset, true)); + return String(view.getInt32(recordOffset, true)); + } + + if (column.bits === 8) return String(view.getUint8(recordOffset)); + if (column.bits === 16) return String(view.getUint16(recordOffset, true)); + return String(view.getUint32(recordOffset, true)); +} + +export function normalizeCellInput(column: DbcColumn, rawValue: unknown): string { + const value = String(rawValue ?? ""); + if (column.kind === "string") { + if (value.includes("\0")) throw new Error("DBC strings cannot contain a NUL character."); + return value; + } + + if (column.kind === "float") { + const normalized = value.trim(); + if (["NaN", "Infinity", "+Infinity", "-Infinity"].includes(normalized)) { + return normalized === "+Infinity" ? "Infinity" : normalized; + } + const parsed = Number(normalized); + if (!Number.isFinite(parsed)) { + throw new Error(`'${value}' is not a valid 32-bit floating-point value.`); + } + const float32 = Math.fround(parsed); + if (!Number.isFinite(float32)) { + throw new Error(`'${value}' is outside the finite 32-bit floating-point range.`); + } + return Object.is(float32, -0) ? "-0" : String(float32); + } + + const normalized = value.trim(); + if (!/^[+-]?\d+$/.test(normalized)) { + throw new Error(`'${value}' is not a valid integer.`); + } + + const parsed = BigInt(normalized); + const bits = BigInt(column.bits); + const min = column.kind === "int" ? -(1n << (bits - 1n)) : 0n; + const max = column.kind === "int" ? (1n << (bits - 1n)) - 1n : (1n << bits) - 1n; + if (parsed < min || parsed > max) { + throw new Error(`Value must be between ${min} and ${max}.`); + } + + return parsed.toString(); +} + +export function writeCell( + target: Uint8Array, + absoluteOffset: number, + column: DbcColumn, + value: string +): void { + if (column.kind === "string") { + throw new Error("String columns must be written as string-table offsets."); + } + + const view = dataView(target); + if (column.kind === "float") { + view.setFloat32(absoluteOffset, Number(value), true); + return; + } + + const integer = BigInt(value); + if (column.bits === 64) { + if (column.kind === "int") view.setBigInt64(absoluteOffset, integer, true); + else view.setBigUint64(absoluteOffset, integer, true); + return; + } + + const numeric = Number(integer); + if (column.kind === "int") { + if (column.bits === 8) view.setInt8(absoluteOffset, numeric); + else if (column.bits === 16) view.setInt16(absoluteOffset, numeric, true); + else view.setInt32(absoluteOffset, numeric, true); + } else if (column.bits === 8) { + view.setUint8(absoluteOffset, numeric); + } else if (column.bits === 16) { + view.setUint16(absoluteOffset, numeric, true); + } else { + view.setUint32(absoluteOffset, numeric, true); + } +} + +export function writeUint32(target: Uint8Array, offset: number, value: number): void { + dataView(target).setUint32(offset, value, true); +} + +export function encodeString(value: string): Uint8Array { + return textEncoder.encode(value); +} + +export function headerSize(): number { + return HEADER_SIZE; +} + +function readString(bytes: Uint8Array, header: WdbcHeader, offset: number): string { + if (offset >= header.stringBlockSize) { + return ``; + } + + const start = HEADER_SIZE + header.recordCount * header.recordSize + offset; + const blockEnd = start + (header.stringBlockSize - offset); + let end = start; + while (end < blockEnd && bytes[end] !== 0) end += 1; + return textDecoder.decode(bytes.subarray(start, end)); +} + +function dataView(bytes: Uint8Array): DataView { + return new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength); +} diff --git a/vscode-dbc-editor/src/dbc/document.ts b/vscode-dbc-editor/src/dbc/document.ts new file mode 100644 index 0000000..9e2e182 --- /dev/null +++ b/vscode-dbc-editor/src/dbc/document.ts @@ -0,0 +1,70 @@ +import * as vscode from "vscode"; +import { SchemaRegistry } from "./schema"; +import { DbcTable } from "./table"; + +export class DbcDocument implements vscode.CustomDocument { + private readonly disposeEmitter = new vscode.EventEmitter(); + private readonly changeEmitter = new vscode.EventEmitter(); + + public table: DbcTable; + public readonly onDidDispose = this.disposeEmitter.event; + public readonly onDidChangeContent = this.changeEmitter.event; + + private constructor( + public readonly uri: vscode.Uri, + table: DbcTable, + private readonly schemas: SchemaRegistry + ) { + this.table = table; + } + + public static async create( + uri: vscode.Uri, + backupId: string | undefined, + schemas: SchemaRegistry + ): Promise { + const sourceUri = backupId ? vscode.Uri.parse(backupId) : uri; + const bytes = await vscode.workspace.fs.readFile(sourceUri); + return new DbcDocument(uri, createTable(uri, bytes, schemas), schemas); + } + + public async reload(): Promise { + const bytes = await vscode.workspace.fs.readFile(this.uri); + this.table = createTable(this.uri, bytes, this.schemas); + this.notifyChanged(); + } + + public notifyChanged(): void { + this.changeEmitter.fire(); + } + + public dispose(): void { + this.disposeEmitter.fire(); + this.disposeEmitter.dispose(); + this.changeEmitter.dispose(); + } +} + +function createTable(uri: vscode.Uri, bytes: Uint8Array, schemas: SchemaRegistry): DbcTable { + const header = parseHeaderForSchema(bytes); + const resolved = schemas.resolve(uri.path, header); + return new DbcTable(bytes, resolved.schema, resolved.warning); +} + +function parseHeaderForSchema(bytes: Uint8Array) { + // Kept local to avoid exposing a partially initialized document if parsing fails. + const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength); + if (bytes.byteLength < 20) throw new Error("The file is too small to contain a WDBC header."); + const magic = new TextDecoder("utf-8").decode(bytes.subarray(0, 4)); + if (magic !== "WDBC") { + throw new Error(`Unsupported DBC signature '${magic}'. Only WDBC files are supported.`); + } + return { + magic: "WDBC" as const, + recordCount: view.getUint32(4, true), + fieldCount: view.getUint32(8, true), + recordSize: view.getUint32(12, true), + stringBlockSize: view.getUint32(16, true) + }; +} + diff --git a/vscode-dbc-editor/src/dbc/schema.ts b/vscode-dbc-editor/src/dbc/schema.ts new file mode 100644 index 0000000..e4ae5ac --- /dev/null +++ b/vscode-dbc-editor/src/dbc/schema.ts @@ -0,0 +1,55 @@ +import * as fs from "node:fs"; +import * as path from "node:path"; +import { DbcColumn, DbcSchema, DbcSchemaBundle, WdbcHeader } from "./types"; + +export class SchemaRegistry { + private readonly bundle: DbcSchemaBundle; + + public constructor(extensionPath: string) { + const schemaPath = path.join(extensionPath, "schemas", "12340.json"); + this.bundle = JSON.parse(fs.readFileSync(schemaPath, "utf8")) as DbcSchemaBundle; + } + + public resolve(fileName: string, header: WdbcHeader): { schema: DbcSchema; warning?: string } { + const tableName = path.basename(fileName, path.extname(fileName)); + const known = this.bundle.tables[tableName.toLowerCase()]; + + if (known && known.recordSize === header.recordSize) { + return { schema: known }; + } + + const warning = known + ? `Schema '${known.name}' expects ${known.recordSize} bytes per record, but this file uses ${header.recordSize}. Raw columns are shown to prevent data corruption.` + : `No build 12340 schema was found for '${tableName}'. Raw 32-bit columns are shown.`; + return { schema: rawSchema(tableName, header.recordSize), warning }; + } + + public get tableCount(): number { + return Object.keys(this.bundle.tables).length; + } +} + +export function rawSchema(name: string, recordSize: number): DbcSchema { + const columns: DbcColumn[] = []; + const fullFields = Math.floor(recordSize / 4); + for (let index = 0; index < fullFields; index += 1) { + columns.push({ + name: `Field_${String(index).padStart(3, "0")}`, + kind: "uint", + bits: 32, + offset: index * 4 + }); + } + + for (let offset = fullFields * 4; offset < recordSize; offset += 1) { + columns.push({ + name: `Byte_${String(offset).padStart(3, "0")}`, + kind: "uint", + bits: 8, + offset + }); + } + + return { name, build: 12340, recordSize, columns, source: "raw fallback" }; +} + diff --git a/vscode-dbc-editor/src/dbc/table.ts b/vscode-dbc-editor/src/dbc/table.ts new file mode 100644 index 0000000..87ab575 --- /dev/null +++ b/vscode-dbc-editor/src/dbc/table.ts @@ -0,0 +1,232 @@ +import { + encodeString, + headerSize, + normalizeCellInput, + parseHeader, + readCell, + writeCell, + writeUint32 +} from "./codec"; +import { DbcColumn, DbcSchema, PageData, RowRef, WdbcHeader } from "./types"; + +export class DbcTable { + public readonly header: WdbcHeader; + public readonly schema: DbcSchema; + public readonly warning?: string; + public readonly rows: RowRef[]; + + private readonly source: Uint8Array; + + public constructor(source: Uint8Array, schema: DbcSchema, warning?: string) { + this.header = parseHeader(source); + if (schema.recordSize !== this.header.recordSize) { + throw new Error( + `Schema record size ${schema.recordSize} does not match WDBC record size ${this.header.recordSize}.` + ); + } + + this.source = source; + this.schema = schema; + this.warning = warning; + this.rows = Array.from({ length: this.header.recordCount }, (_, originalIndex) => ({ + originalIndex, + edits: new Map() + })); + } + + public getCell(rowIndex: number, columnIndex: number): string { + const row = this.requireRow(rowIndex); + const column = this.requireColumn(columnIndex); + const edited = row.edits.get(columnIndex); + if (edited !== undefined) return edited; + if (row.originalIndex === null) return defaultValue(column); + return readCell(this.source, this.header, row.originalIndex, column); + } + + public setCell(rowIndex: number, columnIndex: number, rawValue: unknown): { oldValue: string; value: string } { + const row = this.requireRow(rowIndex); + const column = this.requireColumn(columnIndex); + const oldValue = this.getCell(rowIndex, columnIndex); + const value = normalizeCellInput(column, rawValue); + + if (column.isId && value !== oldValue) this.assertUniqueId(rowIndex, columnIndex, value); + + const baseValue = + row.originalIndex === null + ? defaultValue(column) + : readCell(this.source, this.header, row.originalIndex, column); + if (value === baseValue) row.edits.delete(columnIndex); + else row.edits.set(columnIndex, value); + + return { oldValue, value }; + } + + public appendRow(): number { + const row: RowRef = { originalIndex: null, edits: new Map() }; + const idColumn = this.schema.columns.findIndex((column) => column.isId); + if (idColumn >= 0) { + const column = this.schema.columns[idColumn]!; + row.edits.set(idColumn, normalizeCellInput(column, this.nextId(idColumn))); + } + this.rows.push(row); + return this.rows.length - 1; + } + + public duplicateRow(rowIndex: number): number { + this.requireRow(rowIndex); + const duplicate: RowRef = { originalIndex: null, edits: new Map() }; + for (let columnIndex = 0; columnIndex < this.schema.columns.length; columnIndex += 1) { + duplicate.edits.set(columnIndex, this.getCell(rowIndex, columnIndex)); + } + + const idColumn = this.schema.columns.findIndex((column) => column.isId); + if (idColumn >= 0) { + const column = this.schema.columns[idColumn]!; + duplicate.edits.set(idColumn, normalizeCellInput(column, this.nextId(idColumn))); + } + this.rows.splice(rowIndex + 1, 0, duplicate); + return rowIndex + 1; + } + + public deleteRow(rowIndex: number): RowRef { + const [removed] = this.rows.splice(rowIndex, 1); + if (!removed) throw new Error(`Row ${rowIndex + 1} does not exist.`); + return removed; + } + + public insertRow(rowIndex: number, row: RowRef): void { + if (rowIndex < 0 || rowIndex > this.rows.length) { + throw new Error(`Cannot insert row at index ${rowIndex}.`); + } + this.rows.splice(rowIndex, 0, row); + } + + public getPage(page: number, pageSize: number, query = ""): PageData { + const safePageSize = Math.max(1, Math.min(500, Math.trunc(pageSize))); + const matchingRows = query.trim() ? this.search(query) : undefined; + const totalRows = matchingRows?.length ?? this.rows.length; + const totalPages = Math.max(1, Math.ceil(totalRows / safePageSize)); + const safePage = Math.max(0, Math.min(Math.trunc(page), totalPages - 1)); + const start = safePage * safePageSize; + const rowIndices = matchingRows + ? matchingRows.slice(start, start + safePageSize) + : Array.from( + { length: Math.max(0, Math.min(safePageSize, totalRows - start)) }, + (_, index) => start + index + ); + + return { + page: safePage, + pageSize: safePageSize, + totalRows, + totalPages, + rowIndices, + rows: rowIndices.map((rowIndex) => + this.schema.columns.map((_, columnIndex) => this.getCell(rowIndex, columnIndex)) + ) + }; + } + + public serialize(): Uint8Array { + const recordBytes = Buffer.alloc(this.rows.length * this.header.recordSize); + const stringParts: Buffer[] = [Buffer.from([0])]; + const stringOffsets = new Map([["", 0]]); + let stringBlockSize = 1; + const recordsStart = headerSize(); + + for (let rowIndex = 0; rowIndex < this.rows.length; rowIndex += 1) { + const row = this.rows[rowIndex]!; + const targetRecordOffset = rowIndex * this.header.recordSize; + if (row.originalIndex !== null) { + const sourceStart = recordsStart + row.originalIndex * this.header.recordSize; + recordBytes.set( + this.source.subarray(sourceStart, sourceStart + this.header.recordSize), + targetRecordOffset + ); + } + + for (let columnIndex = 0; columnIndex < this.schema.columns.length; columnIndex += 1) { + const column = this.schema.columns[columnIndex]!; + const absoluteOffset = targetRecordOffset + column.offset; + if (column.kind === "string") { + const value = this.getCell(rowIndex, columnIndex); + let stringOffset = stringOffsets.get(value); + if (stringOffset === undefined) { + const encoded = encodeString(value); + stringOffset = stringBlockSize; + stringOffsets.set(value, stringOffset); + stringParts.push(Buffer.from(encoded), Buffer.from([0])); + stringBlockSize += encoded.byteLength + 1; + } + writeUint32(recordBytes, absoluteOffset, stringOffset); + } else if (row.originalIndex === null || row.edits.has(columnIndex)) { + writeCell(recordBytes, absoluteOffset, column, this.getCell(rowIndex, columnIndex)); + } + } + } + + const header = Buffer.alloc(headerSize()); + header.write("WDBC", 0, "ascii"); + writeUint32(header, 4, this.rows.length); + writeUint32(header, 8, this.header.fieldCount); + writeUint32(header, 12, this.header.recordSize); + writeUint32(header, 16, stringBlockSize); + return Buffer.concat([header, recordBytes, ...stringParts]); + } + + private search(rawQuery: string): number[] { + const query = rawQuery.toLocaleLowerCase(); + let columns = this.schema.columns + .map((column, index) => ({ column, index })) + .filter( + ({ column }) => + column.isId || + (column.kind === "string" && + (column.locale === undefined || column.locale === "ruRU" || column.locale === "enUS")) + ) + .map(({ index }) => index); + + if (columns.length === 0) columns = this.schema.columns.map((_, index) => index); + + const matches: number[] = []; + for (let rowIndex = 0; rowIndex < this.rows.length; rowIndex += 1) { + if (columns.some((columnIndex) => this.getCell(rowIndex, columnIndex).toLocaleLowerCase().includes(query))) { + matches.push(rowIndex); + } + } + return matches; + } + + private nextId(columnIndex: number): string { + let max = -1n; + for (let rowIndex = 0; rowIndex < this.rows.length; rowIndex += 1) { + const value = BigInt(this.getCell(rowIndex, columnIndex)); + if (value > max) max = value; + } + return (max + 1n).toString(); + } + + private assertUniqueId(rowIndex: number, columnIndex: number, value: string): void { + for (let index = 0; index < this.rows.length; index += 1) { + if (index !== rowIndex && this.getCell(index, columnIndex) === value) { + throw new Error(`ID ${value} is already used by row ${index + 1}.`); + } + } + } + + private requireRow(rowIndex: number): RowRef { + const row = this.rows[rowIndex]; + if (!row) throw new Error(`Row ${rowIndex + 1} does not exist.`); + return row; + } + + private requireColumn(columnIndex: number): DbcColumn { + const column = this.schema.columns[columnIndex]; + if (!column) throw new Error(`Column ${columnIndex + 1} does not exist.`); + return column; + } +} + +function defaultValue(column: DbcColumn): string { + return column.kind === "string" ? "" : "0"; +} diff --git a/vscode-dbc-editor/src/dbc/types.ts b/vscode-dbc-editor/src/dbc/types.ts new file mode 100644 index 0000000..394bf3a --- /dev/null +++ b/vscode-dbc-editor/src/dbc/types.ts @@ -0,0 +1,68 @@ +export type IntegerBits = 8 | 16 | 32 | 64; + +export type DbcColumn = + | { + name: string; + kind: "int" | "uint"; + bits: IntegerBits; + offset: number; + isId?: boolean; + } + | { + name: string; + kind: "float"; + bits: 32; + offset: number; + isId?: boolean; + } + | { + name: string; + kind: "string"; + bits: 32; + offset: number; + locale?: string; + isId?: boolean; + }; + +export interface DbcSchema { + name: string; + build: 12340; + recordSize: number; + columns: DbcColumn[]; + source?: string; +} + +export interface DbcSchemaBundle { + build: 12340; + version: "3.3.5.12340"; + source: { + project: string; + url: string; + license: string; + commit?: string; + }; + tables: Record; +} + +export interface WdbcHeader { + magic: "WDBC"; + recordCount: number; + fieldCount: number; + recordSize: number; + stringBlockSize: number; +} + +export interface RowRef { + originalIndex: number | null; + edits: Map; +} + +export interface PageData { + page: number; + pageSize: number; + totalRows: number; + totalPages: number; + rowIndices: number[]; + rows: string[][]; +} + diff --git a/vscode-dbc-editor/src/editorProvider.ts b/vscode-dbc-editor/src/editorProvider.ts new file mode 100644 index 0000000..d61ca30 --- /dev/null +++ b/vscode-dbc-editor/src/editorProvider.ts @@ -0,0 +1,322 @@ +import * as path from "node:path"; +import * as vscode from "vscode"; +import { DbcDocument } from "./dbc/document"; +import { RowRef } from "./dbc/types"; +import { SchemaRegistry } from "./dbc/schema"; + +interface ViewState { + page: number; + query: string; +} + +interface WebviewMessage { + type?: string; + page?: number; + query?: string; + rowIndex?: number; + columnIndex?: number; + value?: unknown; +} + +export class DbcEditorProvider implements vscode.CustomEditorProvider { + public static readonly viewType = "moonwell.dbcEditor"; + + private readonly changeEmitter = new vscode.EventEmitter< + vscode.CustomDocumentEditEvent + >(); + public readonly onDidChangeCustomDocument = this.changeEmitter.event; + + private readonly schemas: SchemaRegistry; + + public constructor(private readonly context: vscode.ExtensionContext) { + this.schemas = new SchemaRegistry(context.extensionPath); + } + + public async openCustomDocument( + uri: vscode.Uri, + openContext: vscode.CustomDocumentOpenContext, + _token: vscode.CancellationToken + ): Promise { + return DbcDocument.create(uri, openContext.backupId, this.schemas); + } + + public async resolveCustomEditor( + document: DbcDocument, + webviewPanel: vscode.WebviewPanel, + _token: vscode.CancellationToken + ): Promise { + const mediaRoot = vscode.Uri.joinPath(this.context.extensionUri, "media"); + webviewPanel.webview.options = { + enableScripts: true, + localResourceRoots: [mediaRoot] + }; + webviewPanel.webview.html = this.html(webviewPanel.webview, mediaRoot); + + const state: ViewState = { page: 0, query: "" }; + const refresh = () => this.postPage(document, webviewPanel.webview, state); + const changeSubscription = document.onDidChangeContent(refresh); + webviewPanel.onDidDispose(() => changeSubscription.dispose()); + + webviewPanel.webview.onDidReceiveMessage(async (message: WebviewMessage) => { + try { + switch (message.type) { + case "ready": + await this.postInit(document, webviewPanel.webview, state); + break; + case "page": + state.page = message.page ?? 0; + state.query = message.query ?? ""; + await refresh(); + break; + case "edit": + await this.editCell(document, message); + break; + case "addRow": + state.query = ""; + state.page = Number.MAX_SAFE_INTEGER; + this.addRow(document); + break; + case "duplicateRow": + this.duplicateRow(document, requireIndex(message.rowIndex, "row")); + break; + case "deleteRow": + this.deleteRow(document, requireIndex(message.rowIndex, "row")); + break; + } + } catch (error) { + const text = error instanceof Error ? error.message : String(error); + const rowIndex = message.rowIndex; + const columnIndex = message.columnIndex; + const currentValue = + Number.isInteger(rowIndex) && + Number.isInteger(columnIndex) && + rowIndex !== undefined && + columnIndex !== undefined && + rowIndex >= 0 && + columnIndex >= 0 && + rowIndex < document.table.rows.length && + columnIndex < document.table.schema.columns.length + ? document.table.getCell(rowIndex, columnIndex) + : undefined; + await webviewPanel.webview.postMessage({ + type: "error", + message: text, + rowIndex, + columnIndex, + currentValue + }); + } + }); + } + + public async saveCustomDocument( + document: DbcDocument, + _cancellation: vscode.CancellationToken + ): Promise { + const createBackup = vscode.workspace + .getConfiguration("moonwellDbc") + .get("createBackupOnSave", true); + if (createBackup && document.uri.scheme === "file") { + const backupUri = document.uri.with({ path: `${document.uri.path}.bak` }); + await vscode.workspace.fs.copy(document.uri, backupUri, { overwrite: true }); + } + await vscode.workspace.fs.writeFile(document.uri, document.table.serialize()); + } + + public async saveCustomDocumentAs( + document: DbcDocument, + destination: vscode.Uri, + _cancellation: vscode.CancellationToken + ): Promise { + await vscode.workspace.fs.writeFile(destination, document.table.serialize()); + } + + public async revertCustomDocument( + document: DbcDocument, + _cancellation: vscode.CancellationToken + ): Promise { + await document.reload(); + } + + public async backupCustomDocument( + document: DbcDocument, + context: vscode.CustomDocumentBackupContext, + _cancellation: vscode.CancellationToken + ): Promise { + await vscode.workspace.fs.writeFile(context.destination, document.table.serialize()); + return { + id: context.destination.toString(), + delete: async () => { + try { + await vscode.workspace.fs.delete(context.destination); + } catch { + // VS Code may already have removed an obsolete hot-exit backup. + } + } + }; + } + + private async postInit( + document: DbcDocument, + webview: vscode.Webview, + state: ViewState + ): Promise { + await webview.postMessage({ + type: "init", + fileName: path.basename(document.uri.fsPath || document.uri.path), + schemaName: document.table.schema.name, + warning: document.table.warning, + schemaCount: this.schemas.tableCount, + header: document.table.header, + columns: document.table.schema.columns.map((column) => ({ + name: column.name, + kind: column.kind, + bits: column.bits, + isId: Boolean(column.isId), + locale: column.kind === "string" ? column.locale : undefined + })) + }); + await this.postPage(document, webview, state); + } + + private async postPage( + document: DbcDocument, + webview: vscode.Webview, + state: ViewState + ): Promise { + const pageSize = vscode.workspace.getConfiguration("moonwellDbc").get("pageSize", 100); + const page = document.table.getPage(state.page, pageSize, state.query); + state.page = page.page; + await webview.postMessage({ type: "page", query: state.query, ...page }); + } + + private async editCell(document: DbcDocument, message: WebviewMessage): Promise { + const rowIndex = requireIndex(message.rowIndex, "row"); + const columnIndex = requireIndex(message.columnIndex, "column"); + const result = document.table.setCell(rowIndex, columnIndex, message.value); + if (result.oldValue === result.value) { + document.notifyChanged(); + return; + } + + const columnName = document.table.schema.columns[columnIndex]?.name ?? `column ${columnIndex + 1}`; + this.changeEmitter.fire({ + document, + label: `Edit ${columnName}`, + undo: async () => { + document.table.setCell(rowIndex, columnIndex, result.oldValue); + document.notifyChanged(); + }, + redo: async () => { + document.table.setCell(rowIndex, columnIndex, result.value); + document.notifyChanged(); + } + }); + document.notifyChanged(); + } + + private addRow(document: DbcDocument): void { + const rowIndex = document.table.appendRow(); + const row = document.table.rows[rowIndex]!; + this.emitRowEdit(document, "Add DBC row", rowIndex, row, true); + document.notifyChanged(); + } + + private duplicateRow(document: DbcDocument, sourceIndex: number): void { + const rowIndex = document.table.duplicateRow(sourceIndex); + const row = document.table.rows[rowIndex]!; + this.emitRowEdit(document, "Duplicate DBC row", rowIndex, row, true); + document.notifyChanged(); + } + + private deleteRow(document: DbcDocument, rowIndex: number): void { + const row = document.table.deleteRow(rowIndex); + this.emitRowEdit(document, "Delete DBC row", rowIndex, row, false); + document.notifyChanged(); + } + + private emitRowEdit( + document: DbcDocument, + label: string, + rowIndex: number, + row: RowRef, + inserted: boolean + ): void { + this.changeEmitter.fire({ + document, + label, + undo: async () => { + if (inserted) document.table.deleteRow(rowIndex); + else document.table.insertRow(rowIndex, row); + document.notifyChanged(); + }, + redo: async () => { + if (inserted) document.table.insertRow(rowIndex, row); + else document.table.deleteRow(rowIndex); + document.notifyChanged(); + } + }); + } + + private html(webview: vscode.Webview, mediaRoot: vscode.Uri): string { + const nonce = getNonce(); + const scriptUri = webview.asWebviewUri(vscode.Uri.joinPath(mediaRoot, "editor.js")); + const styleUri = webview.asWebviewUri(vscode.Uri.joinPath(mediaRoot, "editor.css")); + return ` + + + + + + + DBC Editor + + +
+
+ DBC Editor + +
+
+ + + + + + + +
+ +
+
+
+
+ + + +
+
+
+ + Page of 1 + + + +
+ + +`; + } +} + +function requireIndex(value: number | undefined, label: string): number { + if (!Number.isInteger(value) || value === undefined || value < 0) { + throw new Error(`Invalid ${label} index.`); + } + return value; +} + +function getNonce(): string { + const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + return Array.from({ length: 32 }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join(""); +} diff --git a/vscode-dbc-editor/src/extension.ts b/vscode-dbc-editor/src/extension.ts new file mode 100644 index 0000000..a9b76c6 --- /dev/null +++ b/vscode-dbc-editor/src/extension.ts @@ -0,0 +1,15 @@ +import * as vscode from "vscode"; +import { DbcEditorProvider } from "./editorProvider"; + +export function activate(context: vscode.ExtensionContext): void { + const provider = new DbcEditorProvider(context); + context.subscriptions.push( + vscode.window.registerCustomEditorProvider(DbcEditorProvider.viewType, provider, { + webviewOptions: { retainContextWhenHidden: false }, + supportsMultipleEditorsPerDocument: false + }) + ); +} + +export function deactivate(): void {} + diff --git a/vscode-dbc-editor/test/codec.test.ts b/vscode-dbc-editor/test/codec.test.ts new file mode 100644 index 0000000..91cb322 --- /dev/null +++ b/vscode-dbc-editor/test/codec.test.ts @@ -0,0 +1,81 @@ +import assert from "node:assert/strict"; +import test from "node:test"; +import { DbcTable } from "../src/dbc/table"; +import { DbcSchema } from "../src/dbc/types"; + +const schema: DbcSchema = { + name: "Synthetic", + build: 12340, + recordSize: 12, + columns: [ + { name: "ID", kind: "int", bits: 32, offset: 0, isId: true }, + { name: "Scale", kind: "float", bits: 32, offset: 4 }, + { name: "Name", kind: "string", bits: 32, offset: 8 } + ] +}; + +test("reads, edits and writes WDBC records and strings", () => { + const table = new DbcTable(makeFixture(), schema); + assert.equal(table.header.recordCount, 2); + assert.equal(table.getCell(0, 0), "1"); + assert.equal(table.getCell(0, 1), "1.5"); + assert.equal(table.getCell(0, 2), "hello"); + assert.equal(table.getCell(1, 2), "world"); + + table.setCell(0, 1, "2.25"); + table.setCell(0, 2, "Привет"); + table.setCell(1, 0, "42"); + + const reparsed = new DbcTable(table.serialize(), schema); + assert.equal(reparsed.getCell(0, 1), "2.25"); + assert.equal(reparsed.getCell(0, 2), "Привет"); + assert.equal(reparsed.getCell(1, 0), "42"); + assert.equal(reparsed.getCell(1, 2), "world"); +}); + +test("adds, duplicates and deletes rows with unique generated IDs", () => { + const table = new DbcTable(makeFixture(), schema); + const added = table.appendRow(); + assert.equal(added, 2); + assert.equal(table.getCell(added, 0), "3"); + assert.equal(table.getCell(added, 2), ""); + + const duplicate = table.duplicateRow(0); + assert.equal(duplicate, 1); + assert.equal(table.getCell(duplicate, 0), "4"); + assert.equal(table.getCell(duplicate, 2), "hello"); + + const removed = table.deleteRow(duplicate); + assert.equal(table.rows.length, 3); + table.insertRow(duplicate, removed); + assert.equal(table.getCell(duplicate, 0), "4"); + + const reparsed = new DbcTable(table.serialize(), schema); + assert.equal(reparsed.header.recordCount, 4); +}); + +test("validates integer ranges and duplicate IDs", () => { + const table = new DbcTable(makeFixture(), schema); + assert.throws(() => table.setCell(0, 0, "2"), /already used/); + assert.throws(() => table.setCell(0, 0, "2147483648"), /between/); + assert.throws(() => table.setCell(0, 1, "not-a-float"), /floating-point/); +}); + +function makeFixture(): Uint8Array { + const strings = Buffer.from("\0hello\0world\0", "utf8"); + const bytes = Buffer.alloc(20 + 24 + strings.length); + bytes.write("WDBC", 0, "ascii"); + bytes.writeUInt32LE(2, 4); + bytes.writeUInt32LE(3, 8); + bytes.writeUInt32LE(12, 12); + bytes.writeUInt32LE(strings.length, 16); + bytes.writeInt32LE(1, 20); + bytes.writeFloatLE(1.5, 24); + bytes.writeUInt32LE(1, 28); + bytes.writeInt32LE(2, 32); + bytes.writeFloatLE(-3.25, 36); + bytes.writeUInt32LE(7, 40); + strings.copy(bytes, 44); + return bytes; +} + diff --git a/vscode-dbc-editor/test/project-files.test.ts b/vscode-dbc-editor/test/project-files.test.ts new file mode 100644 index 0000000..7e5a19c --- /dev/null +++ b/vscode-dbc-editor/test/project-files.test.ts @@ -0,0 +1,73 @@ +import assert from "node:assert/strict"; +import fs from "node:fs"; +import path from "node:path"; +import test from "node:test"; +import { parseHeader } from "../src/dbc/codec"; +import { DbcTable } from "../src/dbc/table"; +import { DbcSchemaBundle } from "../src/dbc/types"; + +const extensionRoot = path.resolve(__dirname, ".."); +const projectRoot = path.resolve(extensionRoot, ".."); +const bundle = JSON.parse( + fs.readFileSync(path.join(extensionRoot, "schemas", "12340.json"), "utf8") +) as DbcSchemaBundle; + +const projectDbcs = [ + "assets/dbc/3.3.5a/CreatureModelData.dbc", + "assets/dbc/3.3.5a/CreatureDisplayInfo.dbc", + "src/Data/ruRU/patch-ruRU-Z/DBFilesClient/SpellVisualKitModelAttach.dbc", + "src/Data/ruRU/patch-ruRU-Z/DBFilesClient/Spell.dbc", + "src/Data/ruRU/patch-ruRU-Z/DBFilesClient/CreatureDisplayInfoExtra.dbc", + "src/Data/ruRU/patch-ruRU-Z/DBFilesClient/BarberShopStyle.dbc", + "src/Data/ruRU/patch-ruRU-5/DBFilesClient/Achievement.dbc", + "src/Data/patch-Z/DBFilesClient/LFGDungeons.dbc", + "src/Data/patch-Z/DBFilesClient/ItemDisplayInfo.dbc", + "src/Data/patch-Z/DBFilesClient/Item.dbc" +]; + +test("bundled build 12340 schemas match every project DBC record size", () => { + for (const relativePath of projectDbcs) { + const fullPath = path.join(projectRoot, ...relativePath.split("/")); + const bytes = fs.readFileSync(fullPath); + const header = parseHeader(bytes); + const tableName = path.basename(relativePath, ".dbc").toLowerCase(); + const schema = bundle.tables[tableName]; + assert.ok(schema, `Missing schema for ${relativePath}`); + assert.equal(schema.recordSize, header.recordSize, `Record size mismatch for ${relativePath}`); + } +}); + +test("opens every project DBC with named columns", () => { + for (const relativePath of projectDbcs) { + const fullPath = path.join(projectRoot, ...relativePath.split("/")); + const bytes = fs.readFileSync(fullPath); + const tableName = path.basename(relativePath, ".dbc").toLowerCase(); + const schema = bundle.tables[tableName]!; + const table = new DbcTable(bytes, schema); + const page = table.getPage(0, 1); + assert.equal(page.rows.length, table.header.recordCount > 0 ? 1 : 0); + assert.equal(page.rows[0]?.length ?? schema.columns.length, schema.columns.length); + } +}); + +test("round-trips project numeric and localized-string tables", () => { + for (const relativePath of [projectDbcs[2]!, projectDbcs[5]!]) { + const fullPath = path.join(projectRoot, ...relativePath.split("/")); + const bytes = fs.readFileSync(fullPath); + const tableName = path.basename(relativePath, ".dbc").toLowerCase(); + const schema = bundle.tables[tableName]!; + const source = new DbcTable(bytes, schema); + const reparsed = new DbcTable(source.serialize(), schema); + assert.equal(reparsed.header.recordCount, source.header.recordCount); + + for (const rowIndex of [0, Math.floor(source.rows.length / 2), source.rows.length - 1]) { + for (let columnIndex = 0; columnIndex < schema.columns.length; columnIndex += 1) { + assert.equal( + reparsed.getCell(rowIndex, columnIndex), + source.getCell(rowIndex, columnIndex), + `${relativePath}, row ${rowIndex + 1}, ${schema.columns[columnIndex]!.name}` + ); + } + } + } +}); diff --git a/vscode-dbc-editor/tsconfig.json b/vscode-dbc-editor/tsconfig.json new file mode 100644 index 0000000..ce850fa --- /dev/null +++ b/vscode-dbc-editor/tsconfig.json @@ -0,0 +1,17 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "CommonJS", + "moduleResolution": "Node", + "lib": ["ES2022", "DOM"], + "strict": true, + "noUncheckedIndexedAccess": true, + "noImplicitOverride": true, + "esModuleInterop": true, + "skipLibCheck": true, + "types": ["node", "vscode"], + "resolveJsonModule": true + }, + "include": ["src/**/*.ts", "test/**/*.ts"] +} +