```dataviewjs
const NUM_HEX_FIELDS = 16;
const codeElements = [];
for (let i = 0; i < NUM_HEX_FIELDS + 1; i++) {
const p = dv.paragraph("```\n```");
const pre = p.querySelector("pre");
const code = pre.querySelector("code");
const button = pre.querySelector("button.copy-code-button");
button.addEventListener("click", () => {
navigator.clipboard.writeText(code.innerText);
generate();
});
codeElements.push(code);
}
function generate() {
const anyUuid = crypto.randomUUID();
codeElements[0].innerText = anyUuid;
const uuids = Array(NUM_HEX_FIELDS).fill(undefined);
while (uuids.some(uuid => uuid === undefined)) {
const uuid = crypto.randomUUID();
const index = parseInt(uuid[0], 16);
uuids[index] = uuid;
}
for (let i = 0; i < NUM_HEX_FIELDS; i++) {
codeElements[i + 1].innerText = uuids[i];
}
}
generate();
```